KeyboardTextsSet.java revision d4a6869d38e8740471620c08b844977bd29356b2
1/* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.inputmethod.keyboard.internal; 18 19import android.content.Context; 20import android.content.res.Resources; 21 22import com.android.inputmethod.annotations.UsedForTesting; 23import com.android.inputmethod.latin.utils.CollectionUtils; 24 25import java.util.HashMap; 26 27/** 28 * !!!!! DO NOT EDIT THIS FILE !!!!! 29 * 30 * This file is generated by tools/maketext. The base template file is 31 * tools/maketext/res/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.tmpl 32 * 33 * This file must be updated when any text resources in keyboard layout files have been changed. 34 * These text resources are referred as "!text/<resource_name>" in keyboard XML definitions, 35 * and should be defined in 36 * tools/maketext/res/values-<locale>/donottranslate-more-keys.xml 37 * 38 * To update this file, please run the following commands. 39 * $ cd $ANDROID_BUILD_TOP 40 * $ mmm packages/inputmethods/LatinIME/tools/maketext 41 * $ maketext -java packages/inputmethods/LatinIME/java/src 42 * 43 * The updated source file will be generated to the following path (this file). 44 * packages/inputmethods/LatinIME/java/src/com/android/inputmethod/keyboard/internal/ 45 * KeyboardTextsSet.java 46 */ 47public final class KeyboardTextsSet { 48 // Language to texts map. 49 private static final HashMap<String, String[]> sLocaleToTextsMap = CollectionUtils.newHashMap(); 50 private static final HashMap<String, Integer> sNameToIdsMap = CollectionUtils.newHashMap(); 51 52 private String[] mTexts; 53 // Resource name to text map. 54 private HashMap<String, String> mResourceNameToTextsMap = CollectionUtils.newHashMap(); 55 56 public void setLanguage(final String language) { 57 mTexts = sLocaleToTextsMap.get(language); 58 if (mTexts == null) { 59 mTexts = LANGUAGE_DEFAULT; 60 } 61 } 62 63 public void loadStringResources(final Context context) { 64 final int referenceId = context.getApplicationInfo().labelRes; 65 loadStringResourcesInternal(context, RESOURCE_NAMES, referenceId); 66 } 67 68 @UsedForTesting 69 void loadStringResourcesInternal(final Context context, final String[] resourceNames, 70 final int referenceId) { 71 final Resources res = context.getResources(); 72 final String packageName = res.getResourcePackageName(referenceId); 73 for (final String resName : resourceNames) { 74 final int resId = res.getIdentifier(resName, "string", packageName); 75 mResourceNameToTextsMap.put(resName, res.getString(resId)); 76 } 77 } 78 79 public String getText(final String name) { 80 String text = mResourceNameToTextsMap.get(name); 81 if (text != null) { 82 return text; 83 } 84 final Integer id = sNameToIdsMap.get(name); 85 if (id == null) throw new RuntimeException("Unknown label: " + name); 86 text = (id < mTexts.length) ? mTexts[id] : null; 87 return (text == null) ? LANGUAGE_DEFAULT[id] : text; 88 } 89 90 private static final String[] RESOURCE_NAMES = { 91 // These texts' name should be aligned with the @string/<name> in values/strings.xml. 92 // Labels for action. 93 "label_go_key", 94 // "label_search_key", 95 "label_send_key", 96 "label_next_key", 97 "label_done_key", 98 "label_previous_key", 99 // Other labels. 100 "label_pause_key", 101 "label_wait_key", 102 }; 103 104 private static final String[] NAMES = { 105 /* 0 */ "more_keys_for_a", 106 /* 1 */ "more_keys_for_e", 107 /* 2 */ "more_keys_for_i", 108 /* 3 */ "more_keys_for_o", 109 /* 4 */ "more_keys_for_u", 110 /* 5 */ "more_keys_for_s", 111 /* 6 */ "more_keys_for_n", 112 /* 7 */ "more_keys_for_c", 113 /* 8 */ "more_keys_for_y", 114 /* 9 */ "more_keys_for_d", 115 /* 10 */ "more_keys_for_r", 116 /* 11 */ "more_keys_for_t", 117 /* 12 */ "more_keys_for_z", 118 /* 13 */ "more_keys_for_k", 119 /* 14 */ "more_keys_for_l", 120 /* 15 */ "more_keys_for_g", 121 /* 16 */ "more_keys_for_v", 122 /* 17 */ "more_keys_for_h", 123 /* 18 */ "more_keys_for_j", 124 /* 19 */ "more_keys_for_w", 125 /* 20 */ "keylabel_for_nordic_row1_11", 126 /* 21 */ "keylabel_for_nordic_row2_10", 127 /* 22 */ "keylabel_for_nordic_row2_11", 128 /* 23 */ "more_keys_for_nordic_row2_10", 129 /* 24 */ "more_keys_for_nordic_row2_11", 130 /* 25 */ "keylabel_for_east_slavic_row1_9", 131 /* 26 */ "keylabel_for_east_slavic_row1_12", 132 /* 27 */ "keylabel_for_east_slavic_row2_1", 133 /* 28 */ "keylabel_for_east_slavic_row2_11", 134 /* 29 */ "keylabel_for_east_slavic_row3_5", 135 /* 30 */ "more_keys_for_cyrillic_u", 136 /* 31 */ "more_keys_for_cyrillic_ka", 137 /* 32 */ "more_keys_for_cyrillic_en", 138 /* 33 */ "more_keys_for_cyrillic_ghe", 139 /* 34 */ "more_keys_for_east_slavic_row2_1", 140 /* 35 */ "more_keys_for_cyrillic_a", 141 /* 36 */ "more_keys_for_cyrillic_o", 142 /* 37 */ "more_keys_for_cyrillic_soft_sign", 143 /* 38 */ "more_keys_for_east_slavic_row2_11", 144 /* 39 */ "keylabel_for_south_slavic_row1_6", 145 /* 40 */ "keylabel_for_south_slavic_row2_11", 146 /* 41 */ "keylabel_for_south_slavic_row3_1", 147 /* 42 */ "keylabel_for_south_slavic_row3_8", 148 /* 43 */ "more_keys_for_cyrillic_ie", 149 /* 44 */ "more_keys_for_cyrillic_i", 150 /* 45 */ "label_to_alpha_key", 151 /* 46 */ "single_quotes", 152 /* 47 */ "double_quotes", 153 /* 48 */ "single_angle_quotes", 154 /* 49 */ "double_angle_quotes", 155 /* 50 */ "more_keys_for_currency_dollar", 156 /* 51 */ "keylabel_for_currency_generic", 157 /* 52 */ "more_keys_for_currency_generic", 158 /* 53 */ "more_keys_for_punctuation", 159 /* 54 */ "more_keys_for_star", 160 /* 55 */ "more_keys_for_bullet", 161 /* 56 */ "more_keys_for_plus", 162 /* 57 */ "more_keys_for_left_parenthesis", 163 /* 58 */ "more_keys_for_right_parenthesis", 164 /* 59 */ "more_keys_for_less_than", 165 /* 60 */ "more_keys_for_greater_than", 166 /* 61 */ "more_keys_for_arabic_diacritics", 167 /* 62 */ "keyhintlabel_for_arabic_diacritics", 168 /* 63 */ "keylabel_for_symbols_1", 169 /* 64 */ "keylabel_for_symbols_2", 170 /* 65 */ "keylabel_for_symbols_3", 171 /* 66 */ "keylabel_for_symbols_4", 172 /* 67 */ "keylabel_for_symbols_5", 173 /* 68 */ "keylabel_for_symbols_6", 174 /* 69 */ "keylabel_for_symbols_7", 175 /* 70 */ "keylabel_for_symbols_8", 176 /* 71 */ "keylabel_for_symbols_9", 177 /* 72 */ "keylabel_for_symbols_0", 178 /* 73 */ "label_to_symbol_key", 179 /* 74 */ "label_to_symbol_with_microphone_key", 180 /* 75 */ "additional_more_keys_for_symbols_1", 181 /* 76 */ "additional_more_keys_for_symbols_2", 182 /* 77 */ "additional_more_keys_for_symbols_3", 183 /* 78 */ "additional_more_keys_for_symbols_4", 184 /* 79 */ "additional_more_keys_for_symbols_5", 185 /* 80 */ "additional_more_keys_for_symbols_6", 186 /* 81 */ "additional_more_keys_for_symbols_7", 187 /* 82 */ "additional_more_keys_for_symbols_8", 188 /* 83 */ "additional_more_keys_for_symbols_9", 189 /* 84 */ "additional_more_keys_for_symbols_0", 190 /* 85 */ "more_keys_for_symbols_1", 191 /* 86 */ "more_keys_for_symbols_2", 192 /* 87 */ "more_keys_for_symbols_3", 193 /* 88 */ "more_keys_for_symbols_4", 194 /* 89 */ "more_keys_for_symbols_5", 195 /* 90 */ "more_keys_for_symbols_6", 196 /* 91 */ "more_keys_for_symbols_7", 197 /* 92 */ "more_keys_for_symbols_8", 198 /* 93 */ "more_keys_for_symbols_9", 199 /* 94 */ "more_keys_for_symbols_0", 200 /* 95 */ "keylabel_for_comma", 201 /* 96 */ "more_keys_for_comma", 202 /* 97 */ "keylabel_for_symbols_question", 203 /* 98 */ "keylabel_for_symbols_semicolon", 204 /* 99 */ "keylabel_for_symbols_percent", 205 /* 100 */ "more_keys_for_symbols_exclamation", 206 /* 101 */ "more_keys_for_symbols_question", 207 /* 102 */ "more_keys_for_symbols_semicolon", 208 /* 103 */ "more_keys_for_symbols_percent", 209 /* 104 */ "keylabel_for_tablet_comma", 210 /* 105 */ "keyhintlabel_for_tablet_comma", 211 /* 106 */ "more_keys_for_tablet_comma", 212 /* 107 */ "keyhintlabel_for_tablet_period", 213 /* 108 */ "more_keys_for_tablet_period", 214 /* 109 */ "keylabel_for_apostrophe", 215 /* 110 */ "keyhintlabel_for_apostrophe", 216 /* 111 */ "more_keys_for_apostrophe", 217 /* 112 */ "more_keys_for_q", 218 /* 113 */ "more_keys_for_x", 219 /* 114 */ "keylabel_for_q", 220 /* 115 */ "keylabel_for_w", 221 /* 116 */ "keylabel_for_y", 222 /* 117 */ "keylabel_for_x", 223 /* 118 */ "keylabel_for_spanish_row2_10", 224 /* 119 */ "more_keys_for_am_pm", 225 /* 120 */ "settings_as_more_key", 226 /* 121 */ "shortcut_as_more_key", 227 /* 122 */ "action_next_as_more_key", 228 /* 123 */ "action_previous_as_more_key", 229 /* 124 */ "label_to_more_symbol_key", 230 /* 125 */ "label_to_more_symbol_for_tablet_key", 231 /* 126 */ "label_tab_key", 232 /* 127 */ "label_to_phone_numeric_key", 233 /* 128 */ "label_to_phone_symbols_key", 234 /* 129 */ "label_time_am", 235 /* 130 */ "label_time_pm", 236 /* 131 */ "label_to_symbol_key_pcqwerty", 237 /* 132 */ "keylabel_for_popular_domain", 238 /* 133 */ "more_keys_for_popular_domain", 239 /* 134 */ "more_keys_for_smiley", 240 /* 135 */ "single_laqm_raqm", 241 /* 136 */ "single_laqm_raqm_rtl", 242 /* 137 */ "single_raqm_laqm", 243 /* 138 */ "double_laqm_raqm", 244 /* 139 */ "double_laqm_raqm_rtl", 245 /* 140 */ "double_raqm_laqm", 246 /* 141 */ "single_lqm_rqm", 247 /* 142 */ "single_9qm_lqm", 248 /* 143 */ "single_9qm_rqm", 249 /* 144 */ "double_lqm_rqm", 250 /* 145 */ "double_9qm_lqm", 251 /* 146 */ "double_9qm_rqm", 252 /* 147 */ "more_keys_for_single_quote", 253 /* 148 */ "more_keys_for_double_quote", 254 /* 149 */ "more_keys_for_tablet_double_quote", 255 }; 256 257 private static final String EMPTY = ""; 258 259 /* Default texts */ 260 private static final String[] LANGUAGE_DEFAULT = { 261 /* 0~ */ 262 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, 263 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, 264 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, 265 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, 266 /* ~44 */ 267 // Label for "switch to alphabetic" key. 268 /* 45 */ "ABC", 269 /* 46 */ "!text/single_lqm_rqm", 270 /* 47 */ "!text/double_lqm_rqm", 271 /* 48 */ "!text/single_laqm_raqm", 272 /* 49 */ "!text/double_laqm_raqm", 273 // U+00A2: "¢" CENT SIGN 274 // U+00A3: "£" POUND SIGN 275 // U+20AC: "€" EURO SIGN 276 // U+00A5: "¥" YEN SIGN 277 // U+20B1: "₱" PESO SIGN 278 /* 50 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", 279 /* 51 */ "$", 280 /* 52 */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1", 281 /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)", 282 // U+2020: "†" DAGGER 283 // U+2021: "‡" DOUBLE DAGGER 284 // U+2605: "★" BLACK STAR 285 /* 54 */ "\u2020,\u2021,\u2605", 286 // U+266A: "♪" EIGHTH NOTE 287 // U+2665: "♥" BLACK HEART SUIT 288 // U+2660: "♠" BLACK SPADE SUIT 289 // U+2666: "♦" BLACK DIAMOND SUIT 290 // U+2663: "♣" BLACK CLUB SUIT 291 /* 55 */ "\u266A,\u2665,\u2660,\u2666,\u2663", 292 // U+00B1: "±" PLUS-MINUS SIGN 293 /* 56 */ "\u00B1", 294 // The all letters need to be mirrored are found at 295 // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt 296 /* 57 */ "!fixedColumnOrder!3,<,{,[", 297 /* 58 */ "!fixedColumnOrder!3,>,},]", 298 // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK 299 // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 300 // U+2264: "≤" LESS-THAN OR EQUAL TO 301 // U+2265: "≥" GREATER-THAN EQUAL TO 302 // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 303 // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 304 /* 59 */ "!fixedColumnOrder!3,\u2039,\u2264,\u00AB", 305 /* 60 */ "!fixedColumnOrder!3,\u203A,\u2265,\u00BB", 306 /* 61 */ EMPTY, 307 /* 62 */ EMPTY, 308 /* 63 */ "1", 309 /* 64 */ "2", 310 /* 65 */ "3", 311 /* 66 */ "4", 312 /* 67 */ "5", 313 /* 68 */ "6", 314 /* 69 */ "7", 315 /* 70 */ "8", 316 /* 71 */ "9", 317 /* 72 */ "0", 318 // Label for "switch to symbols" key. 319 /* 73 */ "?123", 320 // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" 321 // part because it'll be appended by the code. 322 /* 74 */ "123", 323 /* 75~ */ 324 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, 325 /* ~84 */ 326 // U+00B9: "¹" SUPERSCRIPT ONE 327 // U+00BD: "½" VULGAR FRACTION ONE HALF 328 // U+2153: "⅓" VULGAR FRACTION ONE THIRD 329 // U+00BC: "¼" VULGAR FRACTION ONE QUARTER 330 // U+215B: "⅛" VULGAR FRACTION ONE EIGHTH 331 /* 85 */ "\u00B9,\u00BD,\u2153,\u00BC,\u215B", 332 // U+00B2: "²" SUPERSCRIPT TWO 333 // U+2154: "⅔" VULGAR FRACTION TWO THIRDS 334 /* 86 */ "\u00B2,\u2154", 335 // U+00B3: "³" SUPERSCRIPT THREE 336 // U+00BE: "¾" VULGAR FRACTION THREE QUARTERS 337 // U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS 338 /* 87 */ "\u00B3,\u00BE,\u215C", 339 // U+2074: "⁴" SUPERSCRIPT FOUR 340 /* 88 */ "\u2074", 341 // U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS 342 /* 89 */ "\u215D", 343 /* 90 */ EMPTY, 344 // U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS 345 /* 91 */ "\u215E", 346 /* 92 */ EMPTY, 347 /* 93 */ EMPTY, 348 // U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N 349 // U+2205: "∅" EMPTY SET 350 /* 94 */ "\u207F,\u2205", 351 /* 95 */ ",", 352 /* 96 */ EMPTY, 353 /* 97 */ "?", 354 /* 98 */ ";", 355 /* 99 */ "%", 356 // U+00A1: "¡" INVERTED EXCLAMATION MARK 357 /* 100 */ "\u00A1", 358 // U+00BF: "¿" INVERTED QUESTION MARK 359 /* 101 */ "\u00BF", 360 /* 102 */ EMPTY, 361 // U+2030: "‰" PER MILLE SIGN 362 /* 103 */ "\u2030", 363 /* 104 */ ",", 364 /* 105 */ "!", 365 /* 106 */ "!", 366 /* 107 */ "?", 367 /* 108 */ "?", 368 /* 109 */ "\'", 369 /* 110 */ "\"", 370 /* 111 */ "\"", 371 /* 112 */ EMPTY, 372 /* 113 */ EMPTY, 373 /* 114 */ "q", 374 /* 115 */ "w", 375 /* 116 */ "y", 376 /* 117 */ "x", 377 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 378 /* 118 */ "\u00F1", 379 /* 119 */ "!fixedColumnOrder!2,!hasLabels!,!text/label_time_am,!text/label_time_pm", 380 /* 120 */ "!icon/settings_key|!code/key_settings", 381 /* 121 */ "!icon/shortcut_key|!code/key_shortcut", 382 /* 122 */ "!hasLabels!,!text/label_next_key|!code/key_action_next", 383 /* 123 */ "!hasLabels!,!text/label_previous_key|!code/key_action_previous", 384 // Label for "switch to more symbol" modifier key. Must be short to fit on key! 385 /* 124 */ "= \\ <", 386 // Label for "switch to more symbol" modifier key on tablets. Must be short to fit on key! 387 /* 125 */ "~ \\ {", 388 // Label for "Tab" key. Must be short to fit on key! 389 /* 126 */ "Tab", 390 // Label for "switch to phone numeric" key. Must be short to fit on key! 391 /* 127 */ "123", 392 // Label for "switch to phone symbols" key. Must be short to fit on key! 393 // U+FF0A: "*" FULLWIDTH ASTERISK 394 // U+FF03: "#" FULLWIDTH NUMBER SIGN 395 /* 128 */ "\uFF0A\uFF03", 396 // Key label for "ante meridiem" 397 /* 129 */ "AM", 398 // Key label for "post meridiem" 399 /* 130 */ "PM", 400 // Label for "switch to symbols" key on PC QWERTY layout 401 /* 131 */ "Sym", 402 /* 132 */ ".com", 403 // popular web domains for the locale - most popular, displayed on the keyboard 404 /* 133 */ "!hasLabels!,.net,.org,.gov,.edu", 405 /* 134 */ "!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ ", 406 // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK 407 // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 408 // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 409 // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 410 // The following characters don't need BIDI mirroring. 411 // U+2018: "‘" LEFT SINGLE QUOTATION MARK 412 // U+2019: "’" RIGHT SINGLE QUOTATION MARK 413 // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK 414 // U+201C: "“" LEFT DOUBLE QUOTATION MARK 415 // U+201D: "”" RIGHT DOUBLE QUOTATION MARK 416 // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK 417 // Abbreviations are: 418 // laqm: LEFT-POINTING ANGLE QUOTATION MARK 419 // raqm: RIGHT-POINTING ANGLE QUOTATION MARK 420 // rtl: Right-To-Left script order 421 // lqm: LEFT QUOTATION MARK 422 // rqm: RIGHT QUOTATION MARK 423 // 9qm: LOW-9 QUOTATION MARK 424 // The following each quotation mark pair consist of 425 // <opening quotation mark>, <closing quotation mark> 426 // and is named after (single|double)_<opening quotation mark>_<closing quotation mark>. 427 /* 135 */ "\u2039,\u203A", 428 /* 136 */ "\u2039|\u203A,\u203A|\u2039", 429 /* 137 */ "\u203A,\u2039", 430 /* 138 */ "\u00AB,\u00BB", 431 /* 139 */ "\u00AB|\u00BB,\u00BB|\u00AB", 432 /* 140 */ "\u00BB,\u00AB", 433 // The following each quotation mark triplet consists of 434 // <another quotation mark>, <opening quotation mark>, <closing quotation mark> 435 // and is named after (single|double)_<opening quotation mark>_<closing quotation mark>. 436 /* 141 */ "\u201A,\u2018,\u2019", 437 /* 142 */ "\u2019,\u201A,\u2018", 438 /* 143 */ "\u2018,\u201A,\u2019", 439 /* 144 */ "\u201E,\u201C,\u201D", 440 /* 145 */ "\u201D,\u201E,\u201C", 441 /* 146 */ "\u201C,\u201E,\u201D", 442 /* 147 */ "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes", 443 /* 148 */ "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes", 444 /* 149 */ "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes", 445 }; 446 447 /* Language af: Afrikaans */ 448 private static final String[] LANGUAGE_af = { 449 // This is the same as Dutch except more keys of y and demoting vowels with diaeresis. 450 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 451 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 452 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 453 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 454 // U+00E6: "æ" LATIN SMALL LETTER AE 455 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 456 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 457 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 458 /* 0 */ "\u00E1,\u00E2,\u00E4,\u00E0,\u00E6,\u00E3,\u00E5,\u0101", 459 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 460 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 461 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 462 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 463 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 464 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 465 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 466 /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", 467 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 468 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 469 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 470 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 471 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 472 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 473 // U+0133: "ij" LATIN SMALL LIGATURE IJ 474 /* 2 */ "\u00ED,\u00EC,\u00EF,\u00EE,\u012F,\u012B,\u0133", 475 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 476 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 477 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 478 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 479 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 480 // U+0153: "œ" LATIN SMALL LIGATURE OE 481 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 482 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 483 /* 3 */ "\u00F3,\u00F4,\u00F6,\u00F2,\u00F5,\u0153,\u00F8,\u014D", 484 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 485 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 486 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 487 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 488 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 489 /* 4 */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B", 490 /* 5 */ null, 491 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 492 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 493 /* 6 */ "\u00F1,\u0144", 494 /* 7 */ null, 495 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 496 // U+0133: "ij" LATIN SMALL LIGATURE IJ 497 /* 8 */ "\u00FD,\u0133", 498 }; 499 500 /* Language ar: Arabic */ 501 private static final String[] LANGUAGE_ar = { 502 /* 0~ */ 503 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 504 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 505 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 506 /* ~44 */ 507 // Label for "switch to alphabetic" key. 508 // U+0623: "ا" ARABIC LETTER ALEF 509 // U+200C: ZERO WIDTH NON-JOINER 510 // U+0628: "ب" ARABIC LETTER BEH 511 // U+062C: "پ" ARABIC LETTER PEH 512 /* 45 */ "\u0623\u200C\u0628\u200C\u062C", 513 /* 46 */ null, 514 /* 47 */ null, 515 /* 48 */ "!text/single_laqm_raqm_rtl", 516 /* 49 */ "!text/double_laqm_raqm_rtl", 517 /* 50~ */ 518 null, null, null, 519 /* ~52 */ 520 // U+061F: "؟" ARABIC QUESTION MARK 521 // U+060C: "،" ARABIC COMMA 522 // U+061B: "؛" ARABIC SEMICOLON 523 /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\u060C,\u061F,@,&,\\%,+,\u061B,/,(,)", 524 // U+2605: "★" BLACK STAR 525 // U+066D: "٭" ARABIC FIVE POINTED STAR 526 /* 54 */ "\u2605,\u066D", 527 // U+266A: "♪" EIGHTH NOTE 528 /* 55 */ "\u266A", 529 /* 56 */ null, 530 // The all letters need to be mirrored are found at 531 // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt 532 // U+FD3E: "﴾" ORNATE LEFT PARENTHESIS 533 // U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS 534 /* 57 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", 535 /* 58 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", 536 // U+2264: "≤" LESS-THAN OR EQUAL TO 537 // U+2265: "≥" GREATER-THAN EQUAL TO 538 // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 539 // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 540 // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK 541 // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 542 /* 59 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", 543 /* 60 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", 544 // U+0655: "ٕ" ARABIC HAMZA BELOW 545 // U+0654: "ٔ" ARABIC HAMZA ABOVE 546 // U+0652: "ْ" ARABIC SUKUN 547 // U+064D: "ٍ" ARABIC KASRATAN 548 // U+064C: "ٌ" ARABIC DAMMATAN 549 // U+064B: "ً" ARABIC FATHATAN 550 // U+0651: "ّ" ARABIC SHADDA 551 // U+0656: "ٖ" ARABIC SUBSCRIPT ALEF 552 // U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF 553 // U+0653: "ٓ" ARABIC MADDAH ABOVE 554 // U+0650: "ِ" ARABIC KASRA 555 // U+064F: "ُ" ARABIC DAMMA 556 // U+064E: "َ" ARABIC FATHA 557 // U+0640: "ـ" ARABIC TATWEEL 558 // In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. 559 // Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly. 560 /* 61 */ "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064D|\u064D, \u064C|\u064C, \u064B|\u064B, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064F|\u064F, \u064E|\u064E,\u0640\u0640\u0640|\u0640", 561 /* 62 */ "\u0651", 562 // U+0661: "١" ARABIC-INDIC DIGIT ONE 563 /* 63 */ "\u0661", 564 // U+0662: "٢" ARABIC-INDIC DIGIT TWO 565 /* 64 */ "\u0662", 566 // U+0663: "٣" ARABIC-INDIC DIGIT THREE 567 /* 65 */ "\u0663", 568 // U+0664: "٤" ARABIC-INDIC DIGIT FOUR 569 /* 66 */ "\u0664", 570 // U+0665: "٥" ARABIC-INDIC DIGIT FIVE 571 /* 67 */ "\u0665", 572 // U+0666: "٦" ARABIC-INDIC DIGIT SIX 573 /* 68 */ "\u0666", 574 // U+0667: "٧" ARABIC-INDIC DIGIT SEVEN 575 /* 69 */ "\u0667", 576 // U+0668: "٨" ARABIC-INDIC DIGIT EIGHT 577 /* 70 */ "\u0668", 578 // U+0669: "٩" ARABIC-INDIC DIGIT NINE 579 /* 71 */ "\u0669", 580 // U+0660: "٠" ARABIC-INDIC DIGIT ZERO 581 /* 72 */ "\u0660", 582 // Label for "switch to symbols" key. 583 // U+061F: "؟" ARABIC QUESTION MARK 584 /* 73 */ "\u0663\u0662\u0661\u061F", 585 // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" 586 // part because it'll be appended by the code. 587 /* 74 */ "\u0663\u0662\u0661", 588 /* 75 */ "1", 589 /* 76 */ "2", 590 /* 77 */ "3", 591 /* 78 */ "4", 592 /* 79 */ "5", 593 /* 80 */ "6", 594 /* 81 */ "7", 595 /* 82 */ "8", 596 /* 83 */ "9", 597 // U+066B: "٫" ARABIC DECIMAL SEPARATOR 598 // U+066C: "٬" ARABIC THOUSANDS SEPARATOR 599 /* 84 */ "0,\u066B,\u066C", 600 /* 85~ */ 601 null, null, null, null, null, null, null, null, null, null, 602 /* ~94 */ 603 // U+060C: "،" ARABIC COMMA 604 /* 95 */ "\u060C", 605 /* 96 */ "\\,", 606 /* 97 */ "\u061F", 607 /* 98 */ "\u061B", 608 // U+066A: "٪" ARABIC PERCENT SIGN 609 /* 99 */ "\u066A", 610 /* 100 */ null, 611 /* 101 */ "?", 612 /* 102 */ ";", 613 // U+2030: "‰" PER MILLE SIGN 614 /* 103 */ "\\%,\u2030", 615 /* 104~ */ 616 null, null, null, null, null, 617 /* ~108 */ 618 // U+060C: "،" ARABIC COMMA 619 // U+061B: "؛" ARABIC SEMICOLON 620 // U+061F: "؟" ARABIC QUESTION MARK 621 /* 109 */ "\u060C", 622 /* 110 */ "\u061F", 623 /* 111 */ "\u061F,\u061B,!,:,-,/,\',\"", 624 }; 625 626 /* Language az: Azerbaijani */ 627 private static final String[] LANGUAGE_az = { 628 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 629 /* 0 */ "\u00E2", 630 // U+0259: "ə" LATIN SMALL LETTER SCHWA 631 /* 1 */ "\u0259", 632 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 633 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 634 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 635 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 636 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 637 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 638 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 639 /* 2 */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B", 640 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 641 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 642 // U+0153: "œ" LATIN SMALL LIGATURE OE 643 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 644 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 645 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 646 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 647 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 648 /* 3 */ "\u00F6,\u00F4,\u0153,\u00F2,\u00F3,\u00F5,\u00F8,\u014D", 649 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 650 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 651 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 652 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 653 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 654 /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", 655 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 656 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 657 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 658 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 659 /* 5 */ "\u015F,\u00DF,\u015B,\u0161", 660 /* 6 */ null, 661 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 662 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 663 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 664 /* 7 */ "\u00E7,\u0107,\u010D", 665 /* 8~ */ 666 null, null, null, null, null, null, null, 667 /* ~14 */ 668 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 669 /* 15 */ "\u011F", 670 }; 671 672 /* Language be: Belarusian */ 673 private static final String[] LANGUAGE_be = { 674 /* 0~ */ 675 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 676 null, null, null, null, null, null, null, null, null, null, 677 /* ~24 */ 678 // U+045E: "ў" CYRILLIC SMALL LETTER SHORT U 679 /* 25 */ "\u045E", 680 // U+0451: "ё" CYRILLIC SMALL LETTER IO 681 /* 26 */ "\u0451", 682 // U+044B: "ы" CYRILLIC SMALL LETTER YERU 683 /* 27 */ "\u044B", 684 // U+044D: "э" CYRILLIC SMALL LETTER E 685 /* 28 */ "\u044D", 686 // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 687 /* 29 */ "\u0456", 688 /* 30~ */ 689 null, null, null, null, null, null, null, 690 /* ~36 */ 691 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 692 /* 37 */ "\u044A", 693 /* 38~ */ 694 null, null, null, null, null, 695 /* ~42 */ 696 // U+0451: "ё" CYRILLIC SMALL LETTER IO 697 /* 43 */ "\u0451", 698 /* 44 */ null, 699 // Label for "switch to alphabetic" key. 700 // U+0410: "А" CYRILLIC CAPITAL LETTER A 701 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 702 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 703 /* 45 */ "\u0410\u0411\u0412", 704 /* 46 */ "!text/single_9qm_lqm", 705 /* 47 */ "!text/double_9qm_lqm", 706 }; 707 708 /* Language bg: Bulgarian */ 709 private static final String[] LANGUAGE_bg = { 710 /* 0~ */ 711 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 712 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 713 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 714 /* ~44 */ 715 // Label for "switch to alphabetic" key. 716 // U+0410: "А" CYRILLIC CAPITAL LETTER A 717 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 718 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 719 /* 45 */ "\u0410\u0411\u0412", 720 /* 46 */ null, 721 // single_quotes of Bulgarian is default single_quotes_right_left. 722 /* 47 */ "!text/double_9qm_lqm", 723 }; 724 725 /* Language ca: Catalan */ 726 private static final String[] LANGUAGE_ca = { 727 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 728 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 729 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 730 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 731 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 732 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 733 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 734 // U+00E6: "æ" LATIN SMALL LETTER AE 735 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 736 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 737 /* 0 */ "\u00E0,\u00E1,\u00E4,\u00E2,\u00E3,\u00E5,\u0105,\u00E6,\u0101,\u00AA", 738 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 739 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 740 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 741 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 742 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 743 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 744 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 745 /* 1 */ "\u00E8,\u00E9,\u00EB,\u00EA,\u0119,\u0117,\u0113", 746 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 747 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 748 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 749 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 750 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 751 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 752 /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B", 753 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 754 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 755 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 756 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 757 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 758 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 759 // U+0153: "œ" LATIN SMALL LIGATURE OE 760 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 761 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 762 /* 3 */ "\u00F2,\u00F3,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA", 763 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 764 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 765 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 766 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 767 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 768 /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", 769 /* 5 */ null, 770 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 771 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 772 /* 6 */ "\u00F1,\u0144", 773 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 774 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 775 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 776 /* 7 */ "\u00E7,\u0107,\u010D", 777 /* 8~ */ 778 null, null, null, null, null, null, 779 /* ~13 */ 780 // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT 781 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 782 /* 14 */ "\u0140,\u0142", 783 }; 784 785 /* Language cs: Czech */ 786 private static final String[] LANGUAGE_cs = { 787 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 788 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 789 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 790 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 791 // U+00E6: "æ" LATIN SMALL LETTER AE 792 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 793 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 794 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 795 /* 0 */ "\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", 796 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 797 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 798 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 799 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 800 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 801 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 802 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 803 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 804 /* 1 */ "\u00E9,\u011B,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", 805 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 806 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 807 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 808 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 809 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 810 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 811 /* 2 */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B", 812 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 813 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 814 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 815 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 816 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 817 // U+0153: "œ" LATIN SMALL LIGATURE OE 818 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 819 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 820 /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", 821 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 822 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 823 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 824 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 825 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 826 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 827 /* 4 */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B", 828 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 829 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 830 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 831 /* 5 */ "\u0161,\u00DF,\u015B", 832 // U+0148: "ň" LATIN SMALL LETTER N WITH CARON 833 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 834 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 835 /* 6 */ "\u0148,\u00F1,\u0144", 836 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 837 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 838 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 839 /* 7 */ "\u010D,\u00E7,\u0107", 840 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 841 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 842 /* 8 */ "\u00FD,\u00FF", 843 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 844 /* 9 */ "\u010F", 845 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 846 /* 10 */ "\u0159", 847 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 848 /* 11 */ "\u0165", 849 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 850 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 851 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 852 /* 12 */ "\u017E,\u017A,\u017C", 853 /* 13~ */ 854 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 855 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 856 null, null, null, 857 /* ~45 */ 858 /* 46 */ "!text/single_9qm_lqm", 859 /* 47 */ "!text/double_9qm_lqm", 860 /* 48 */ "!text/single_raqm_laqm", 861 /* 49 */ "!text/double_raqm_laqm", 862 }; 863 864 /* Language da: Danish */ 865 private static final String[] LANGUAGE_da = { 866 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 867 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 868 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 869 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 870 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 871 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 872 /* 0 */ "\u00E1,\u00E4,\u00E0,\u00E2,\u00E3,\u0101", 873 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 874 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 875 /* 1 */ "\u00E9,\u00EB", 876 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 877 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 878 /* 2 */ "\u00ED,\u00EF", 879 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 880 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 881 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 882 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 883 // U+0153: "œ" LATIN SMALL LIGATURE OE 884 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 885 /* 3 */ "\u00F3,\u00F4,\u00F2,\u00F5,\u0153,\u014D", 886 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 887 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 888 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 889 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 890 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 891 /* 4 */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B", 892 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 893 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 894 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 895 /* 5 */ "\u00DF,\u015B,\u0161", 896 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 897 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 898 /* 6 */ "\u00F1,\u0144", 899 /* 7 */ null, 900 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 901 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 902 /* 8 */ "\u00FD,\u00FF", 903 // U+00F0: "ð" LATIN SMALL LETTER ETH 904 /* 9 */ "\u00F0", 905 /* 10~ */ 906 null, null, null, null, 907 /* ~13 */ 908 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 909 /* 14 */ "\u0142", 910 /* 15~ */ 911 null, null, null, null, null, 912 /* ~19 */ 913 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 914 /* 20 */ "\u00E5", 915 // U+00E6: "æ" LATIN SMALL LETTER AE 916 /* 21 */ "\u00E6", 917 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 918 /* 22 */ "\u00F8", 919 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 920 /* 23 */ "\u00E4", 921 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 922 /* 24 */ "\u00F6", 923 /* 25~ */ 924 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 925 null, null, null, null, null, null, 926 /* ~45 */ 927 /* 46 */ "!text/single_9qm_lqm", 928 /* 47 */ "!text/double_9qm_lqm", 929 /* 48 */ "!text/single_raqm_laqm", 930 /* 49 */ "!text/double_raqm_laqm", 931 }; 932 933 /* Language de: German */ 934 private static final String[] LANGUAGE_de = { 935 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 936 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 937 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 938 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 939 // U+00E6: "æ" LATIN SMALL LETTER AE 940 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 941 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 942 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 943 /* 0 */ "\u00E4,\u00E2,\u00E0,\u00E1,\u00E6,\u00E3,\u00E5,\u0101", 944 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 945 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 946 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 947 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 948 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 949 /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0117", 950 /* 2 */ null, 951 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 952 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 953 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 954 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 955 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 956 // U+0153: "œ" LATIN SMALL LIGATURE OE 957 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 958 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 959 /* 3 */ "\u00F6,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u00F8,\u014D", 960 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 961 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 962 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 963 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 964 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 965 /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", 966 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 967 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 968 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 969 /* 5 */ "\u00DF,\u015B,\u0161", 970 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 971 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 972 /* 6 */ "\u00F1,\u0144", 973 /* 7~ */ 974 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 975 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 976 null, null, null, null, null, null, null, null, null, 977 /* ~45 */ 978 /* 46 */ "!text/single_9qm_lqm", 979 /* 47 */ "!text/double_9qm_lqm", 980 /* 48 */ "!text/single_raqm_laqm", 981 /* 49 */ "!text/double_raqm_laqm", 982 }; 983 984 /* Language el: Greek */ 985 private static final String[] LANGUAGE_el = { 986 /* 0~ */ 987 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 988 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 989 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 990 /* ~44 */ 991 // Label for "switch to alphabetic" key. 992 // U+0391: "Α" GREEK CAPITAL LETTER ALPHA 993 // U+0392: "Β" GREEK CAPITAL LETTER BETA 994 // U+0393: "Γ" GREEK CAPITAL LETTER GAMMA 995 /* 45 */ "\u0391\u0392\u0393", 996 }; 997 998 /* Language en: English */ 999 private static final String[] LANGUAGE_en = { 1000 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1001 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1002 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1003 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1004 // U+00E6: "æ" LATIN SMALL LETTER AE 1005 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1006 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1007 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1008 /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", 1009 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1010 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1011 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1012 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1013 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1014 /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113", 1015 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1016 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1017 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1018 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1019 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1020 /* 2 */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC", 1021 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1022 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1023 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1024 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1025 // U+0153: "œ" LATIN SMALL LIGATURE OE 1026 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1027 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1028 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1029 /* 3 */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8,\u014D,\u00F5", 1030 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1031 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1032 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1033 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1034 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1035 /* 4 */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B", 1036 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 1037 /* 5 */ "\u00DF", 1038 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 1039 /* 6 */ "\u00F1", 1040 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 1041 /* 7 */ "\u00E7", 1042 }; 1043 1044 /* Language eo: Esperanto */ 1045 private static final String[] LANGUAGE_eo = { 1046 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1047 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1048 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1049 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1050 // U+00E6: "æ" LATIN SMALL LETTER AE 1051 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1052 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1053 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1054 // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE 1055 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 1056 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 1057 /* 0 */ "\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101,\u0103,\u0105,\u00AA", 1058 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1059 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 1060 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1061 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1062 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1063 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1064 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1065 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1066 /* 1 */ "\u00E9,\u011B,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", 1067 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1068 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1069 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1070 // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE 1071 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1072 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1073 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1074 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 1075 // U+0133: "ij" LATIN SMALL LIGATURE IJ 1076 /* 2 */ "\u00ED,\u00EE,\u00EF,\u0129,\u00EC,\u012F,\u012B,\u0131,\u0133", 1077 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1078 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1079 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1080 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1081 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1082 // U+0153: "œ" LATIN SMALL LIGATURE OE 1083 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1084 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1085 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 1086 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 1087 /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D,\u0151,\u00BA", 1088 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1089 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 1090 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1091 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1092 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1093 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1094 // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE 1095 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 1096 // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK 1097 // U+00B5: "µ" MICRO SIGN 1098 /* 4 */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B,\u0169,\u0171,\u0173,\u00B5", 1099 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 1100 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 1101 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 1102 // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW 1103 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 1104 /* 5 */ "\u00DF,\u0161,\u015B,\u0219,\u015F", 1105 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 1106 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 1107 // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA 1108 // U+0148: "ň" LATIN SMALL LETTER N WITH CARON 1109 // U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 1110 // U+014B: "ŋ" LATIN SMALL LETTER ENG 1111 /* 6 */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B", 1112 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 1113 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 1114 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 1115 // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE 1116 /* 7 */ "\u0107,\u010D,\u00E7,\u010B", 1117 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 1118 // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX 1119 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 1120 // U+00FE: "þ" LATIN SMALL LETTER THORN 1121 /* 8 */ "y,\u00FD,\u0177,\u00FF,\u00FE", 1122 // U+00F0: "ð" LATIN SMALL LETTER ETH 1123 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 1124 // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE 1125 /* 9 */ "\u00F0,\u010F,\u0111", 1126 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 1127 // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE 1128 // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA 1129 /* 10 */ "\u0159,\u0155,\u0157", 1130 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 1131 // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW 1132 // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA 1133 // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE 1134 /* 11 */ "\u0165,\u021B,\u0163,\u0167", 1135 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 1136 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 1137 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 1138 /* 12 */ "\u017A,\u017C,\u017E", 1139 // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA 1140 // U+0138: "ĸ" LATIN SMALL LETTER KRA 1141 /* 13 */ "\u0137,\u0138", 1142 // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE 1143 // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA 1144 // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON 1145 // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT 1146 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 1147 /* 14 */ "\u013A,\u013C,\u013E,\u0140,\u0142", 1148 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 1149 // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE 1150 // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA 1151 /* 15 */ "\u011F,\u0121,\u0123", 1152 // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX 1153 /* 16 */ "w,\u0175", 1154 // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX 1155 // U+0127: "ħ" LATIN SMALL LETTER H WITH STROKE 1156 /* 17 */ "\u0125,\u0127", 1157 /* 18 */ null, 1158 // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX 1159 /* 19 */ "w,\u0175", 1160 /* 20~ */ 1161 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1162 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1163 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1164 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1165 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1166 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1167 null, null, 1168 /* ~111 */ 1169 /* 112 */ "q", 1170 /* 113 */ "x", 1171 // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX 1172 /* 114 */ "\u015D", 1173 // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX 1174 /* 115 */ "\u011D", 1175 // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE 1176 /* 116 */ "\u016D", 1177 // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX 1178 /* 117 */ "\u0109", 1179 // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX 1180 /* 118 */ "\u0135", 1181 }; 1182 1183 /* Language es: Spanish */ 1184 private static final String[] LANGUAGE_es = { 1185 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1186 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1187 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1188 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1189 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1190 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1191 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 1192 // U+00E6: "æ" LATIN SMALL LETTER AE 1193 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1194 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 1195 /* 0 */ "\u00E1,\u00E0,\u00E4,\u00E2,\u00E3,\u00E5,\u0105,\u00E6,\u0101,\u00AA", 1196 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1197 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1198 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1199 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1200 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1201 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1202 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1203 /* 1 */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113", 1204 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1205 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1206 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1207 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1208 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1209 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1210 /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B", 1211 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1212 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1213 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1214 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1215 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1216 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1217 // U+0153: "œ" LATIN SMALL LIGATURE OE 1218 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1219 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 1220 /* 3 */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA", 1221 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1222 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1223 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1224 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1225 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1226 /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", 1227 /* 5 */ null, 1228 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 1229 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 1230 /* 6 */ "\u00F1,\u0144", 1231 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 1232 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 1233 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 1234 /* 7 */ "\u00E7,\u0107,\u010D", 1235 /* 8~ */ 1236 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1237 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1238 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1239 /* ~52 */ 1240 // U+00A1: "¡" INVERTED EXCLAMATION MARK 1241 // U+00BF: "¿" INVERTED QUESTION MARK 1242 /* 53 */ "!fixedColumnOrder!9,\u00A1,\",\',#,-,:,!,\\,,?,\u00BF,@,&,\\%,+,;,/,(,)", 1243 /* 54~ */ 1244 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1245 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1246 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1247 null, null, null, null, null, null, null, 1248 /* ~105 */ 1249 // U+00A1: "¡" INVERTED EXCLAMATION MARK 1250 /* 106 */ "!,\u00A1", 1251 /* 107 */ null, 1252 // U+00BF: "¿" INVERTED QUESTION MARK 1253 /* 108 */ "?,\u00BF", 1254 /* 109 */ "\"", 1255 /* 110 */ "\'", 1256 /* 111 */ "\'", 1257 }; 1258 1259 /* Language et: Estonian */ 1260 private static final String[] LANGUAGE_et = { 1261 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1262 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1263 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1264 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1265 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1266 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1267 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1268 // U+00E6: "æ" LATIN SMALL LETTER AE 1269 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 1270 /* 0 */ "\u00E4,\u0101,\u00E0,\u00E1,\u00E2,\u00E3,\u00E5,\u00E6,\u0105", 1271 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1272 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1273 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1274 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1275 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1276 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1277 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1278 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 1279 /* 1 */ "\u0113,\u00E8,\u0117,\u00E9,\u00EA,\u00EB,\u0119,\u011B", 1280 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1281 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1282 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1283 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1284 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1285 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1286 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 1287 /* 2 */ "\u012B,\u00EC,\u012F,\u00ED,\u00EE,\u00EF,\u0131", 1288 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1289 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1290 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1291 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1292 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1293 // U+0153: "œ" LATIN SMALL LIGATURE OE 1294 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 1295 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1296 /* 3 */ "\u00F6,\u00F5,\u00F2,\u00F3,\u00F4,\u0153,\u0151,\u00F8", 1297 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1298 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1299 // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK 1300 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1301 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1302 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1303 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 1304 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 1305 /* 4 */ "\u00FC,\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u016F,\u0171", 1306 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 1307 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 1308 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 1309 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 1310 /* 5 */ "\u0161,\u00DF,\u015B,\u015F", 1311 // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA 1312 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 1313 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 1314 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 1315 /* 6 */ "\u0146,\u00F1,\u0144,\u0144", 1316 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 1317 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 1318 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 1319 /* 7 */ "\u010D,\u00E7,\u0107", 1320 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 1321 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 1322 /* 8 */ "\u00FD,\u00FF", 1323 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 1324 /* 9 */ "\u010F", 1325 // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA 1326 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 1327 // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE 1328 /* 10 */ "\u0157,\u0159,\u0155", 1329 // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA 1330 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 1331 /* 11 */ "\u0163,\u0165", 1332 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 1333 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 1334 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 1335 /* 12 */ "\u017E,\u017C,\u017A", 1336 // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA 1337 /* 13 */ "\u0137", 1338 // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA 1339 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 1340 // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE 1341 // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON 1342 /* 14 */ "\u013C,\u0142,\u013A,\u013E", 1343 // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA 1344 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 1345 /* 15 */ "\u0123,\u011F", 1346 /* 16~ */ 1347 null, null, null, null, 1348 /* ~19 */ 1349 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1350 /* 20 */ "\u00FC", 1351 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1352 /* 21 */ "\u00F6", 1353 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1354 /* 22 */ "\u00E4", 1355 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1356 /* 23 */ "\u00F5", 1357 /* 24~ */ 1358 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1359 null, null, null, null, null, null, null, 1360 /* ~45 */ 1361 /* 46 */ "!text/single_9qm_lqm", 1362 /* 47 */ "!text/double_9qm_lqm", 1363 }; 1364 1365 /* Language fa: Persian */ 1366 private static final String[] LANGUAGE_fa = { 1367 /* 0~ */ 1368 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1369 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1370 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1371 /* ~44 */ 1372 // Label for "switch to alphabetic" key. 1373 // U+0627: "ا" ARABIC LETTER ALEF 1374 // U+200C: ZERO WIDTH NON-JOINER 1375 // U+0628: "ب" ARABIC LETTER BEH 1376 // U+067E: "پ" ARABIC LETTER PEH 1377 /* 45 */ "\u0627\u200C\u0628\u200C\u067E", 1378 /* 46 */ null, 1379 /* 47 */ null, 1380 /* 48 */ "!text/single_laqm_raqm_rtl", 1381 /* 49 */ "!text/double_laqm_raqm_rtl", 1382 /* 50~ */ 1383 null, null, null, 1384 /* ~52 */ 1385 // U+061F: "؟" ARABIC QUESTION MARK 1386 // U+060C: "،" ARABIC COMMA 1387 // U+061B: "؛" ARABIC SEMICOLON 1388 /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\u060C,\u061F,@,&,\\%,+,\u061B,/,(,)", 1389 // U+2605: "★" BLACK STAR 1390 // U+066D: "٭" ARABIC FIVE POINTED STAR 1391 /* 54 */ "\u2605,\u066D", 1392 // U+266A: "♪" EIGHTH NOTE 1393 /* 55 */ "\u266A", 1394 /* 56 */ null, 1395 // The all letters need to be mirrored are found at 1396 // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt 1397 // U+FD3E: "﴾" ORNATE LEFT PARENTHESIS 1398 // U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS 1399 /* 57 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", 1400 /* 58 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", 1401 // U+2264: "≤" LESS-THAN OR EQUAL TO 1402 // U+2265: "≥" GREATER-THAN EQUAL TO 1403 // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 1404 // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 1405 // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK 1406 // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 1407 /* 59 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,<|>", 1408 /* 60 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,>|<", 1409 // U+0655: "ٕ" ARABIC HAMZA BELOW 1410 // U+0652: "ْ" ARABIC SUKUN 1411 // U+0651: "ّ" ARABIC SHADDA 1412 // U+064C: "ٌ" ARABIC DAMMATAN 1413 // U+064D: "ٍ" ARABIC KASRATAN 1414 // U+064B: "ً" ARABIC FATHATAN 1415 // U+0654: "ٔ" ARABIC HAMZA ABOVE 1416 // U+0656: "ٖ" ARABIC SUBSCRIPT ALEF 1417 // U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF 1418 // U+0653: "ٓ" ARABIC MADDAH ABOVE 1419 // U+064F: "ُ" ARABIC DAMMA 1420 // U+0650: "ِ" ARABIC KASRA 1421 // U+064E: "َ" ARABIC FATHA 1422 // U+0640: "ـ" ARABIC TATWEEL 1423 // In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. 1424 // Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly. 1425 /* 61 */ "!fixedColumnOrder!7, \u0655|\u0655, \u0652|\u0652, \u0651|\u0651, \u064C|\u064C, \u064D|\u064D, \u064B|\u064B, \u0654|\u0654, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u064F|\u064F, \u0650|\u0650, \u064E|\u064E,\u0640\u0640\u0640|\u0640", 1426 /* 62 */ "\u064B", 1427 // U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE 1428 /* 63 */ "\u06F1", 1429 // U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO 1430 /* 64 */ "\u06F2", 1431 // U+06F3: "۳" EXTENDED ARABIC-INDIC DIGIT THREE 1432 /* 65 */ "\u06F3", 1433 // U+06F4: "۴" EXTENDED ARABIC-INDIC DIGIT FOUR 1434 /* 66 */ "\u06F4", 1435 // U+06F5: "۵" EXTENDED ARABIC-INDIC DIGIT FIVE 1436 /* 67 */ "\u06F5", 1437 // U+06F6: "۶" EXTENDED ARABIC-INDIC DIGIT SIX 1438 /* 68 */ "\u06F6", 1439 // U+06F7: "۷" EXTENDED ARABIC-INDIC DIGIT SEVEN 1440 /* 69 */ "\u06F7", 1441 // U+06F8: "۸" EXTENDED ARABIC-INDIC DIGIT EIGHT 1442 /* 70 */ "\u06F8", 1443 // U+06F9: "۹" EXTENDED ARABIC-INDIC DIGIT NINE 1444 /* 71 */ "\u06F9", 1445 // U+06F0: "۰" EXTENDED ARABIC-INDIC DIGIT ZERO 1446 /* 72 */ "\u06F0", 1447 // Label for "switch to symbols" key. 1448 // U+061F: "؟" ARABIC QUESTION MARK 1449 /* 73 */ "\u06F3\u06F2\u06F1\u061F", 1450 // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" 1451 // part because it'll be appended by the code. 1452 /* 74 */ "\u06F3\u06F2\u06F1", 1453 /* 75 */ "1", 1454 /* 76 */ "2", 1455 /* 77 */ "3", 1456 /* 78 */ "4", 1457 /* 79 */ "5", 1458 /* 80 */ "6", 1459 /* 81 */ "7", 1460 /* 82 */ "8", 1461 /* 83 */ "9", 1462 // U+066B: "٫" ARABIC DECIMAL SEPARATOR 1463 // U+066C: "٬" ARABIC THOUSANDS SEPARATOR 1464 /* 84 */ "0,\u066B,\u066C", 1465 /* 85~ */ 1466 null, null, null, null, null, null, null, null, null, null, 1467 /* ~94 */ 1468 // U+060C: "،" ARABIC COMMA 1469 /* 95 */ "\u060C", 1470 /* 96 */ "\\,", 1471 /* 97 */ "\u061F", 1472 /* 98 */ "\u061B", 1473 // U+066A: "٪" ARABIC PERCENT SIGN 1474 /* 99 */ "\u066A", 1475 /* 100 */ null, 1476 /* 101 */ "?", 1477 /* 102 */ ";", 1478 // U+2030: "‰" PER MILLE SIGN 1479 /* 103 */ "\\%,\u2030", 1480 // U+060C: "،" ARABIC COMMA 1481 // U+061B: "؛" ARABIC SEMICOLON 1482 // U+061F: "؟" ARABIC QUESTION MARK 1483 // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 1484 // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 1485 /* 104 */ "\u060C", 1486 /* 105 */ "!", 1487 /* 106 */ "!,\\,", 1488 /* 107 */ "\u061F", 1489 /* 108 */ "\u061F,?", 1490 /* 109 */ "\u060C", 1491 /* 110 */ "\u061F", 1492 /* 111 */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\u00AB|\u00BB,\u00BB|\u00AB", 1493 }; 1494 1495 /* Language fi: Finnish */ 1496 private static final String[] LANGUAGE_fi = { 1497 // U+00E6: "æ" LATIN SMALL LETTER AE 1498 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1499 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1500 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1501 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1502 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1503 /* 0 */ "\u00E6,\u00E0,\u00E1,\u00E2,\u00E3,\u0101", 1504 /* 1 */ null, 1505 /* 2 */ null, 1506 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1507 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1508 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1509 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1510 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1511 // U+0153: "œ" LATIN SMALL LIGATURE OE 1512 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1513 /* 3 */ "\u00F8,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D", 1514 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1515 /* 4 */ "\u00FC", 1516 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 1517 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 1518 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 1519 /* 5 */ "\u0161,\u00DF,\u015B", 1520 /* 6~ */ 1521 null, null, null, null, null, null, 1522 /* ~11 */ 1523 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 1524 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 1525 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 1526 /* 12 */ "\u017E,\u017A,\u017C", 1527 /* 13~ */ 1528 null, null, null, null, null, null, null, 1529 /* ~19 */ 1530 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1531 /* 20 */ "\u00E5", 1532 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1533 /* 21 */ "\u00F6", 1534 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1535 /* 22 */ "\u00E4", 1536 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1537 /* 23 */ "\u00F8", 1538 // U+00E6: "æ" LATIN SMALL LETTER AE 1539 /* 24 */ "\u00E6", 1540 }; 1541 1542 /* Language fr: French */ 1543 private static final String[] LANGUAGE_fr = { 1544 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1545 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1546 // U+00E6: "æ" LATIN SMALL LETTER AE 1547 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1548 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1549 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1550 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1551 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1552 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 1553 /* 0 */ "\u00E0,\u00E2,%,\u00E6,\u00E1,\u00E4,\u00E3,\u00E5,\u0101,\u00AA", 1554 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1555 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1556 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1557 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1558 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1559 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1560 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1561 /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,%,\u0119,\u0117,\u0113", 1562 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1563 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1564 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1565 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1566 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1567 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1568 /* 2 */ "\u00EE,%,\u00EF,\u00EC,\u00ED,\u012F,\u012B", 1569 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1570 // U+0153: "œ" LATIN SMALL LIGATURE OE 1571 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1572 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1573 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1574 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1575 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1576 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1577 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 1578 /* 3 */ "\u00F4,\u0153,%,\u00F6,\u00F2,\u00F3,\u00F5,\u00F8,\u014D,\u00BA", 1579 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1580 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1581 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1582 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1583 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1584 /* 4 */ "\u00F9,\u00FB,%,\u00FC,\u00FA,\u016B", 1585 /* 5 */ null, 1586 /* 6 */ null, 1587 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 1588 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 1589 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 1590 /* 7 */ "\u00E7,\u0107,\u010D", 1591 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 1592 /* 8 */ "%,\u00FF", 1593 }; 1594 1595 /* Language hi: Hindi */ 1596 private static final String[] LANGUAGE_hi = { 1597 /* 0~ */ 1598 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1599 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1600 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1601 /* ~44 */ 1602 // Label for "switch to alphabetic" key. 1603 // U+0915: "क" DEVANAGARI LETTER KA 1604 // U+0916: "ख" DEVANAGARI LETTER KHA 1605 // U+0917: "ग" DEVANAGARI LETTER GA 1606 /* 45 */ "\u0915\u0916\u0917", 1607 /* 46~ */ 1608 null, null, null, null, null, 1609 /* ~50 */ 1610 // U+20B9: "₹" INDIAN RUPEE SIGN 1611 /* 51 */ "\u20B9", 1612 /* 52~ */ 1613 null, null, null, null, null, null, null, null, null, null, null, 1614 /* ~62 */ 1615 // U+0967: "१" DEVANAGARI DIGIT ONE 1616 /* 63 */ "\u0967", 1617 // U+0968: "२" DEVANAGARI DIGIT TWO 1618 /* 64 */ "\u0968", 1619 // U+0969: "३" DEVANAGARI DIGIT THREE 1620 /* 65 */ "\u0969", 1621 // U+096A: "४" DEVANAGARI DIGIT FOUR 1622 /* 66 */ "\u096A", 1623 // U+096B: "५" DEVANAGARI DIGIT FIVE 1624 /* 67 */ "\u096B", 1625 // U+096C: "६" DEVANAGARI DIGIT SIX 1626 /* 68 */ "\u096C", 1627 // U+096D: "७" DEVANAGARI DIGIT SEVEN 1628 /* 69 */ "\u096D", 1629 // U+096E: "८" DEVANAGARI DIGIT EIGHT 1630 /* 70 */ "\u096E", 1631 // U+096F: "९" DEVANAGARI DIGIT NINE 1632 /* 71 */ "\u096F", 1633 // U+0966: "०" DEVANAGARI DIGIT ZERO 1634 /* 72 */ "\u0966", 1635 // Label for "switch to symbols" key. 1636 /* 73 */ "?\u0967\u0968\u0969", 1637 // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" 1638 // part because it'll be appended by the code. 1639 /* 74 */ "\u0967\u0968\u0969", 1640 /* 75 */ "1", 1641 /* 76 */ "2", 1642 /* 77 */ "3", 1643 /* 78 */ "4", 1644 /* 79 */ "5", 1645 /* 80 */ "6", 1646 /* 81 */ "7", 1647 /* 82 */ "8", 1648 /* 83 */ "9", 1649 /* 84 */ "0", 1650 }; 1651 1652 /* Language hr: Croatian */ 1653 private static final String[] LANGUAGE_hr = { 1654 /* 0~ */ 1655 null, null, null, null, null, 1656 /* ~4 */ 1657 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 1658 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 1659 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 1660 /* 5 */ "\u0161,\u015B,\u00DF", 1661 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 1662 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 1663 /* 6 */ "\u00F1,\u0144", 1664 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 1665 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 1666 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 1667 /* 7 */ "\u010D,\u0107,\u00E7", 1668 /* 8 */ null, 1669 // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE 1670 /* 9 */ "\u0111", 1671 /* 10 */ null, 1672 /* 11 */ null, 1673 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 1674 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 1675 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 1676 /* 12 */ "\u017E,\u017A,\u017C", 1677 /* 13~ */ 1678 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1679 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1680 null, null, null, 1681 /* ~45 */ 1682 /* 46 */ "!text/single_9qm_rqm", 1683 /* 47 */ "!text/double_9qm_rqm", 1684 /* 48 */ "!text/single_raqm_laqm", 1685 /* 49 */ "!text/double_raqm_laqm", 1686 }; 1687 1688 /* Language hu: Hungarian */ 1689 private static final String[] LANGUAGE_hu = { 1690 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1691 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1692 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1693 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1694 // U+00E6: "æ" LATIN SMALL LETTER AE 1695 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1696 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1697 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1698 /* 0 */ "\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", 1699 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1700 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1701 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1702 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1703 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1704 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1705 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1706 /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", 1707 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1708 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1709 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1710 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1711 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1712 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1713 /* 2 */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B", 1714 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1715 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1716 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 1717 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1718 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1719 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1720 // U+0153: "œ" LATIN SMALL LIGATURE OE 1721 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1722 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1723 /* 3 */ "\u00F3,\u00F6,\u0151,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", 1724 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1725 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1726 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 1727 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1728 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1729 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1730 /* 4 */ "\u00FA,\u00FC,\u0171,\u00FB,\u00F9,\u016B", 1731 /* 5~ */ 1732 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1733 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1734 null, null, null, null, null, null, null, null, null, null, null, 1735 /* ~45 */ 1736 /* 46 */ "!text/single_9qm_rqm", 1737 /* 47 */ "!text/double_9qm_rqm", 1738 /* 48 */ "!text/single_raqm_laqm", 1739 /* 49 */ "!text/double_raqm_laqm", 1740 }; 1741 1742 /* Language is: Icelandic */ 1743 private static final String[] LANGUAGE_is = { 1744 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1745 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1746 // U+00E6: "æ" LATIN SMALL LETTER AE 1747 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1748 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1749 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1750 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1751 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1752 /* 0 */ "\u00E1,\u00E4,\u00E6,\u00E5,\u00E0,\u00E2,\u00E3,\u0101", 1753 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1754 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1755 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1756 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1757 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1758 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1759 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1760 /* 1 */ "\u00E9,\u00EB,\u00E8,\u00EA,\u0119,\u0117,\u0113", 1761 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1762 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1763 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1764 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1765 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1766 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1767 /* 2 */ "\u00ED,\u00EF,\u00EE,\u00EC,\u012F,\u012B", 1768 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1769 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1770 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1771 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1772 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1773 // U+0153: "œ" LATIN SMALL LIGATURE OE 1774 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1775 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1776 /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", 1777 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1778 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1779 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1780 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1781 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1782 /* 4 */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B", 1783 /* 5~ */ 1784 null, null, null, 1785 /* ~7 */ 1786 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 1787 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 1788 /* 8 */ "\u00FD,\u00FF", 1789 // U+00F0: "ð" LATIN SMALL LETTER ETH 1790 /* 9 */ "\u00F0", 1791 /* 10 */ null, 1792 // U+00FE: "þ" LATIN SMALL LETTER THORN 1793 /* 11 */ "\u00FE", 1794 /* 12~ */ 1795 null, null, null, null, null, null, null, null, 1796 /* ~19 */ 1797 // U+00F0: "ð" LATIN SMALL LETTER ETH 1798 /* 20 */ "\u00F0", 1799 // U+00E6: "æ" LATIN SMALL LETTER AE 1800 /* 21 */ "\u00E6", 1801 // U+00FE: "þ" LATIN SMALL LETTER THORN 1802 /* 22 */ "\u00FE", 1803 /* 23~ */ 1804 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1805 null, null, null, null, null, null, null, null, 1806 /* ~45 */ 1807 /* 46 */ "!text/single_9qm_lqm", 1808 /* 47 */ "!text/double_9qm_lqm", 1809 }; 1810 1811 /* Language it: Italian */ 1812 private static final String[] LANGUAGE_it = { 1813 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 1814 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 1815 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 1816 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 1817 // U+00E6: "æ" LATIN SMALL LETTER AE 1818 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 1819 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 1820 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 1821 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 1822 /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101,\u00AA", 1823 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 1824 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 1825 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 1826 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 1827 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 1828 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 1829 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 1830 /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u0117,\u0113", 1831 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 1832 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 1833 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 1834 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 1835 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 1836 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 1837 /* 2 */ "\u00EC,\u00ED,\u00EE,\u00EF,\u012F,\u012B", 1838 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 1839 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 1840 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 1841 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 1842 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 1843 // U+0153: "œ" LATIN SMALL LIGATURE OE 1844 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 1845 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 1846 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 1847 /* 3 */ "\u00F2,\u00F3,\u00F4,\u00F6,\u00F5,\u0153,\u00F8,\u014D,\u00BA", 1848 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 1849 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 1850 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 1851 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 1852 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 1853 /* 4 */ "\u00F9,\u00FA,\u00FB,\u00FC,\u016B", 1854 }; 1855 1856 /* Language iw: Hebrew */ 1857 private static final String[] LANGUAGE_iw = { 1858 /* 0~ */ 1859 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1860 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1861 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1862 /* ~44 */ 1863 // Label for "switch to alphabetic" key. 1864 // U+05D0: "א" HEBREW LETTER ALEF 1865 // U+05D1: "ב" HEBREW LETTER BET 1866 // U+05D2: "ג" HEBREW LETTER GIMEL 1867 /* 45 */ "\u05D0\u05D1\u05D2", 1868 // The following characters don't need BIDI mirroring. 1869 // U+2018: "‘" LEFT SINGLE QUOTATION MARK 1870 // U+2019: "’" RIGHT SINGLE QUOTATION MARK 1871 // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK 1872 // U+201C: "“" LEFT DOUBLE QUOTATION MARK 1873 // U+201D: "”" RIGHT DOUBLE QUOTATION MARK 1874 // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK 1875 /* 46 */ "\u2018,\u2019,\u201A", 1876 /* 47 */ "\u201C,\u201D,\u201E", 1877 /* 48 */ "!text/single_laqm_raqm_rtl", 1878 /* 49 */ "!text/double_laqm_raqm_rtl", 1879 /* 50~ */ 1880 null, null, null, null, 1881 /* ~53 */ 1882 // U+2605: "★" BLACK STAR 1883 /* 54 */ "\u2605", 1884 /* 55 */ null, 1885 // U+00B1: "±" PLUS-MINUS SIGN 1886 // U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN 1887 /* 56 */ "\u00B1,\uFB29", 1888 // The all letters need to be mirrored are found at 1889 // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt 1890 /* 57 */ "!fixedColumnOrder!3,<|>,{|},[|]", 1891 /* 58 */ "!fixedColumnOrder!3,>|<,}|{,]|[", 1892 // U+2264: "≤" LESS-THAN OR EQUAL TO 1893 // U+2265: "≥" GREATER-THAN EQUAL TO 1894 // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 1895 // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 1896 // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK 1897 // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 1898 /* 59 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", 1899 /* 60 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", 1900 }; 1901 1902 /* Language ka: Georgian */ 1903 private static final String[] LANGUAGE_ka = { 1904 /* 0~ */ 1905 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1906 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1907 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1908 /* ~44 */ 1909 // Label for "switch to alphabetic" key. 1910 // U+10D0: "ა" GEORGIAN LETTER AN 1911 // U+10D1: "ბ" GEORGIAN LETTER BAN 1912 // U+10D2: "გ" GEORGIAN LETTER GAN 1913 /* 45 */ "\u10D0\u10D1\u10D2", 1914 /* 46 */ "!text/single_9qm_lqm", 1915 /* 47 */ "!text/double_9qm_lqm", 1916 }; 1917 1918 /* Language kk: Kazakh */ 1919 private static final String[] LANGUAGE_kk = { 1920 /* 0~ */ 1921 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1922 null, null, null, null, null, null, null, null, null, null, 1923 /* ~24 */ 1924 // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA 1925 /* 25 */ "\u0449", 1926 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 1927 /* 26 */ "\u044A", 1928 // U+044B: "ы" CYRILLIC SMALL LETTER YERU 1929 /* 27 */ "\u044B", 1930 // U+044D: "э" CYRILLIC SMALL LETTER E 1931 /* 28 */ "\u044D", 1932 // U+0438: "и" CYRILLIC SMALL LETTER I 1933 /* 29 */ "\u0438", 1934 // U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U 1935 // U+04B1: "ұ" CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE 1936 /* 30 */ "\u04AF,\u04B1", 1937 // U+049B: "қ" CYRILLIC SMALL LETTER KA WITH DESCENDER 1938 /* 31 */ "\u049B", 1939 // U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER 1940 /* 32 */ "\u04A3", 1941 // U+0493: "ғ" CYRILLIC SMALL LETTER GHE WITH STROKE 1942 /* 33 */ "\u0493", 1943 // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 1944 /* 34 */ "\u0456", 1945 // U+04D9: "ә" CYRILLIC SMALL LETTER SCHWA 1946 /* 35 */ "\u04D9", 1947 // U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O 1948 /* 36 */ "\u04E9", 1949 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 1950 /* 37 */ "\u044A", 1951 // U+04BB: "һ" CYRILLIC SMALL LETTER SHHA 1952 /* 38 */ "\u04BB", 1953 /* 39~ */ 1954 null, null, null, null, 1955 /* ~42 */ 1956 // U+0451: "ё" CYRILLIC SMALL LETTER IO 1957 /* 43 */ "\u0451", 1958 /* 44 */ null, 1959 // Label for "switch to alphabetic" key. 1960 // U+0410: "А" CYRILLIC CAPITAL LETTER A 1961 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 1962 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 1963 /* 45 */ "\u0410\u0411\u0412", 1964 }; 1965 1966 /* Language ky: Kirghiz */ 1967 private static final String[] LANGUAGE_ky = { 1968 /* 0~ */ 1969 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1970 null, null, null, null, null, null, null, null, null, null, 1971 /* ~24 */ 1972 // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA 1973 /* 25 */ "\u0449", 1974 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 1975 /* 26 */ "\u044A", 1976 // U+044B: "ы" CYRILLIC SMALL LETTER YERU 1977 /* 27 */ "\u044B", 1978 // U+044D: "э" CYRILLIC SMALL LETTER E 1979 /* 28 */ "\u044D", 1980 // U+0438: "и" CYRILLIC SMALL LETTER I 1981 /* 29 */ "\u0438", 1982 // U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U 1983 /* 30 */ "\u04AF", 1984 /* 31 */ null, 1985 // U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER 1986 /* 32 */ "\u04A3", 1987 /* 33~ */ 1988 null, null, null, 1989 /* ~35 */ 1990 // U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O 1991 /* 36 */ "\u04E9", 1992 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 1993 /* 37 */ "\u044A", 1994 /* 38~ */ 1995 null, null, null, null, null, 1996 /* ~42 */ 1997 // U+0451: "ё" CYRILLIC SMALL LETTER IO 1998 /* 43 */ "\u0451", 1999 /* 44 */ null, 2000 // Label for "switch to alphabetic" key. 2001 // U+0410: "А" CYRILLIC CAPITAL LETTER A 2002 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 2003 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 2004 /* 45 */ "\u0410\u0411\u0412", 2005 }; 2006 2007 /* Language lt: Lithuanian */ 2008 private static final String[] LANGUAGE_lt = { 2009 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 2010 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2011 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2012 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2013 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2014 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2015 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2016 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2017 // U+00E6: "æ" LATIN SMALL LETTER AE 2018 /* 0 */ "\u0105,\u00E4,\u0101,\u00E0,\u00E1,\u00E2,\u00E3,\u00E5,\u00E6", 2019 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2020 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2021 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2022 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2023 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2024 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2025 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2026 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 2027 /* 1 */ "\u0117,\u0119,\u0113,\u00E8,\u00E9,\u00EA,\u00EB,\u011B", 2028 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2029 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2030 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2031 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2032 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2033 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2034 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 2035 /* 2 */ "\u012F,\u012B,\u00EC,\u00ED,\u00EE,\u00EF,\u0131", 2036 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2037 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2038 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2039 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2040 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2041 // U+0153: "œ" LATIN SMALL LIGATURE OE 2042 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 2043 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2044 /* 3 */ "\u00F6,\u00F5,\u00F2,\u00F3,\u00F4,\u0153,\u0151,\u00F8", 2045 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2046 // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK 2047 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2048 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2049 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2050 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2051 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2052 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 2053 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 2054 /* 4 */ "\u016B,\u0173,\u00FC,\u016B,\u00F9,\u00FA,\u00FB,\u016F,\u0171", 2055 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2056 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2057 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2058 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 2059 /* 5 */ "\u0161,\u00DF,\u015B,\u015F", 2060 // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA 2061 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2062 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2063 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2064 /* 6 */ "\u0146,\u00F1,\u0144,\u0144", 2065 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2066 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2067 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2068 /* 7 */ "\u010D,\u00E7,\u0107", 2069 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 2070 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 2071 /* 8 */ "\u00FD,\u00FF", 2072 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 2073 /* 9 */ "\u010F", 2074 // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA 2075 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 2076 // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE 2077 /* 10 */ "\u0157,\u0159,\u0155", 2078 // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA 2079 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 2080 /* 11 */ "\u0163,\u0165", 2081 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 2082 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 2083 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 2084 /* 12 */ "\u017E,\u017C,\u017A", 2085 // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA 2086 /* 13 */ "\u0137", 2087 // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA 2088 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 2089 // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE 2090 // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON 2091 /* 14 */ "\u013C,\u0142,\u013A,\u013E", 2092 // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA 2093 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 2094 /* 15 */ "\u0123,\u011F", 2095 /* 16~ */ 2096 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2097 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2098 /* ~45 */ 2099 /* 46 */ "!text/single_9qm_lqm", 2100 /* 47 */ "!text/double_9qm_lqm", 2101 }; 2102 2103 /* Language lv: Latvian */ 2104 private static final String[] LANGUAGE_lv = { 2105 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2106 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2107 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2108 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2109 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2110 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2111 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2112 // U+00E6: "æ" LATIN SMALL LETTER AE 2113 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 2114 /* 0 */ "\u0101,\u00E0,\u00E1,\u00E2,\u00E3,\u00E4,\u00E5,\u00E6,\u0105", 2115 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2116 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2117 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2118 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2119 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2120 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2121 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2122 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 2123 /* 1 */ "\u0113,\u0117,\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u011B", 2124 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2125 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2126 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2127 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2128 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2129 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2130 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 2131 /* 2 */ "\u012B,\u012F,\u00EC,\u00ED,\u00EE,\u00EF,\u0131", 2132 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2133 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2134 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2135 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2136 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2137 // U+0153: "œ" LATIN SMALL LIGATURE OE 2138 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 2139 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2140 /* 3 */ "\u00F2,\u00F3,\u00F4,\u00F5,\u00F6,\u0153,\u0151,\u00F8", 2141 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2142 // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK 2143 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2144 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2145 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2146 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2147 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 2148 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 2149 /* 4 */ "\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u00FC,\u016F,\u0171", 2150 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2151 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2152 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2153 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 2154 /* 5 */ "\u0161,\u00DF,\u015B,\u015F", 2155 // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA 2156 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2157 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2158 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2159 /* 6 */ "\u0146,\u00F1,\u0144,\u0144", 2160 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2161 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2162 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2163 /* 7 */ "\u010D,\u00E7,\u0107", 2164 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 2165 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 2166 /* 8 */ "\u00FD,\u00FF", 2167 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 2168 /* 9 */ "\u010F", 2169 // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA 2170 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 2171 // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE 2172 /* 10 */ "\u0157,\u0159,\u0155", 2173 // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA 2174 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 2175 /* 11 */ "\u0163,\u0165", 2176 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 2177 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 2178 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 2179 /* 12 */ "\u017E,\u017C,\u017A", 2180 // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA 2181 /* 13 */ "\u0137", 2182 // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA 2183 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 2184 // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE 2185 // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON 2186 /* 14 */ "\u013C,\u0142,\u013A,\u013E", 2187 // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA 2188 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 2189 /* 15 */ "\u0123,\u011F", 2190 /* 16~ */ 2191 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2192 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2193 /* ~45 */ 2194 /* 46 */ "!text/single_9qm_lqm", 2195 /* 47 */ "!text/double_9qm_lqm", 2196 }; 2197 2198 /* Language mk: Macedonian */ 2199 private static final String[] LANGUAGE_mk = { 2200 /* 0~ */ 2201 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2202 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2203 null, null, null, null, null, null, null, null, null, 2204 /* ~38 */ 2205 // U+0455: "ѕ" CYRILLIC SMALL LETTER DZE 2206 /* 39 */ "\u0455", 2207 // U+045C: "ќ" CYRILLIC SMALL LETTER KJE 2208 /* 40 */ "\u045C", 2209 // U+0437: "з" CYRILLIC SMALL LETTER ZE 2210 /* 41 */ "\u0437", 2211 // U+0453: "ѓ" CYRILLIC SMALL LETTER GJE 2212 /* 42 */ "\u0453", 2213 // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE 2214 /* 43 */ "\u0450", 2215 // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE 2216 /* 44 */ "\u045D", 2217 // Label for "switch to alphabetic" key. 2218 // U+0410: "А" CYRILLIC CAPITAL LETTER A 2219 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 2220 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 2221 /* 45 */ "\u0410\u0411\u0412", 2222 /* 46 */ "!text/single_9qm_lqm", 2223 /* 47 */ "!text/double_9qm_lqm", 2224 }; 2225 2226 /* Language mn: Mongolian */ 2227 private static final String[] LANGUAGE_mn = { 2228 /* 0~ */ 2229 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2230 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2231 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2232 /* ~44 */ 2233 // Label for "switch to alphabetic" key. 2234 // U+0410: "А" CYRILLIC CAPITAL LETTER A 2235 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 2236 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 2237 /* 45 */ "\u0410\u0411\u0412", 2238 /* 46~ */ 2239 null, null, null, null, null, 2240 /* ~50 */ 2241 // U+20AE: "₮" TUGRIK SIGN 2242 /* 51 */ "\u20AE", 2243 }; 2244 2245 /* Language nb: Norwegian Bokmål */ 2246 private static final String[] LANGUAGE_nb = { 2247 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2248 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2249 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2250 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2251 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2252 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2253 /* 0 */ "\u00E0,\u00E4,\u00E1,\u00E2,\u00E3,\u0101", 2254 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2255 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2256 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2257 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2258 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2259 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2260 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2261 /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", 2262 /* 2 */ null, 2263 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2264 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2265 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2266 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2267 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2268 // U+0153: "œ" LATIN SMALL LIGATURE OE 2269 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2270 /* 3 */ "\u00F4,\u00F2,\u00F3,\u00F6,\u00F5,\u0153,\u014D", 2271 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2272 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2273 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2274 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2275 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2276 /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", 2277 /* 5~ */ 2278 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2279 /* ~19 */ 2280 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2281 /* 20 */ "\u00E5", 2282 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2283 /* 21 */ "\u00F8", 2284 // U+00E6: "æ" LATIN SMALL LETTER AE 2285 /* 22 */ "\u00E6", 2286 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2287 /* 23 */ "\u00F6", 2288 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2289 /* 24 */ "\u00E4", 2290 /* 25~ */ 2291 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2292 null, null, null, null, null, null, 2293 /* ~45 */ 2294 /* 46 */ "!text/single_9qm_rqm", 2295 /* 47 */ "!text/double_9qm_rqm", 2296 }; 2297 2298 /* Language nl: Dutch */ 2299 private static final String[] LANGUAGE_nl = { 2300 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2301 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2302 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2303 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2304 // U+00E6: "æ" LATIN SMALL LETTER AE 2305 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2306 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2307 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2308 /* 0 */ "\u00E1,\u00E4,\u00E2,\u00E0,\u00E6,\u00E3,\u00E5,\u0101", 2309 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2310 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2311 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2312 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2313 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2314 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2315 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2316 /* 1 */ "\u00E9,\u00EB,\u00EA,\u00E8,\u0119,\u0117,\u0113", 2317 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2318 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2319 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2320 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2321 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2322 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2323 // U+0133: "ij" LATIN SMALL LIGATURE IJ 2324 /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B,\u0133", 2325 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2326 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2327 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2328 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2329 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2330 // U+0153: "œ" LATIN SMALL LIGATURE OE 2331 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2332 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2333 /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", 2334 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2335 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2336 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2337 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2338 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2339 /* 4 */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B", 2340 /* 5 */ null, 2341 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2342 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2343 /* 6 */ "\u00F1,\u0144", 2344 /* 7 */ null, 2345 // U+0133: "ij" LATIN SMALL LIGATURE IJ 2346 /* 8 */ "\u0133", 2347 /* 9~ */ 2348 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2349 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2350 null, null, null, null, null, null, null, 2351 /* ~45 */ 2352 /* 46 */ "!text/single_9qm_rqm", 2353 /* 47 */ "!text/double_9qm_rqm", 2354 }; 2355 2356 /* Language pl: Polish */ 2357 private static final String[] LANGUAGE_pl = { 2358 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 2359 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2360 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2361 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2362 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2363 // U+00E6: "æ" LATIN SMALL LETTER AE 2364 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2365 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2366 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2367 /* 0 */ "\u0105,\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", 2368 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2369 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2370 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2371 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2372 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2373 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2374 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2375 /* 1 */ "\u0119,\u00E8,\u00E9,\u00EA,\u00EB,\u0117,\u0113", 2376 /* 2 */ null, 2377 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2378 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2379 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2380 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2381 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2382 // U+0153: "œ" LATIN SMALL LIGATURE OE 2383 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2384 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2385 /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", 2386 /* 4 */ null, 2387 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2388 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2389 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2390 /* 5 */ "\u015B,\u00DF,\u0161", 2391 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2392 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2393 /* 6 */ "\u0144,\u00F1", 2394 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2395 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2396 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2397 /* 7 */ "\u0107,\u00E7,\u010D", 2398 /* 8~ */ 2399 null, null, null, null, 2400 /* ~11 */ 2401 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 2402 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 2403 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 2404 /* 12 */ "\u017C,\u017A,\u017E", 2405 /* 13 */ null, 2406 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 2407 /* 14 */ "\u0142", 2408 /* 15~ */ 2409 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2410 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2411 null, 2412 /* ~45 */ 2413 /* 46 */ "!text/single_9qm_rqm", 2414 /* 47 */ "!text/double_9qm_rqm", 2415 }; 2416 2417 /* Language pt: Portuguese */ 2418 private static final String[] LANGUAGE_pt = { 2419 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2420 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2421 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2422 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2423 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2424 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2425 // U+00E6: "æ" LATIN SMALL LETTER AE 2426 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 2427 /* 0 */ "\u00E1,\u00E3,\u00E0,\u00E2,\u00E4,\u00E5,\u00E6,\u00AA", 2428 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2429 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2430 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2431 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2432 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2433 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2434 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2435 /* 1 */ "\u00E9,\u00EA,\u00E8,\u0119,\u0117,\u0113,\u00EB", 2436 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2437 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2438 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2439 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2440 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2441 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2442 /* 2 */ "\u00ED,\u00EE,\u00EC,\u00EF,\u012F,\u012B", 2443 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2444 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2445 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2446 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2447 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2448 // U+0153: "œ" LATIN SMALL LIGATURE OE 2449 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2450 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2451 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 2452 /* 3 */ "\u00F3,\u00F5,\u00F4,\u00F2,\u00F6,\u0153,\u00F8,\u014D,\u00BA", 2453 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2454 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2455 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2456 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2457 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2458 /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", 2459 /* 5 */ null, 2460 /* 6 */ null, 2461 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2462 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2463 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2464 /* 7 */ "\u00E7,\u010D,\u0107", 2465 }; 2466 2467 /* Language rm: Raeto-Romance */ 2468 private static final String[] LANGUAGE_rm = { 2469 /* 0~ */ 2470 null, null, null, 2471 /* ~2 */ 2472 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2473 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2474 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2475 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2476 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2477 // U+0153: "œ" LATIN SMALL LIGATURE OE 2478 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2479 /* 3 */ "\u00F2,\u00F3,\u00F6,\u00F4,\u00F5,\u0153,\u00F8", 2480 }; 2481 2482 /* Language ro: Romanian */ 2483 private static final String[] LANGUAGE_ro = { 2484 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2485 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2486 // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE 2487 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2488 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2489 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2490 // U+00E6: "æ" LATIN SMALL LETTER AE 2491 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2492 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2493 /* 0 */ "\u00E2,\u00E3,\u0103,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101", 2494 /* 1 */ null, 2495 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2496 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2497 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2498 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2499 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2500 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2501 /* 2 */ "\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B", 2502 /* 3 */ null, 2503 /* 4 */ null, 2504 // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW 2505 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2506 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2507 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2508 /* 5 */ "\u0219,\u00DF,\u015B,\u0161", 2509 /* 6~ */ 2510 null, null, null, null, null, 2511 /* ~10 */ 2512 // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW 2513 /* 11 */ "\u021B", 2514 /* 12~ */ 2515 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2516 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2517 null, null, null, null, 2518 /* ~45 */ 2519 /* 46 */ "!text/single_9qm_rqm", 2520 /* 47 */ "!text/double_9qm_rqm", 2521 }; 2522 2523 /* Language ru: Russian */ 2524 private static final String[] LANGUAGE_ru = { 2525 /* 0~ */ 2526 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2527 null, null, null, null, null, null, null, null, null, null, 2528 /* ~24 */ 2529 // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA 2530 /* 25 */ "\u0449", 2531 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 2532 /* 26 */ "\u044A", 2533 // U+044B: "ы" CYRILLIC SMALL LETTER YERU 2534 /* 27 */ "\u044B", 2535 // U+044D: "э" CYRILLIC SMALL LETTER E 2536 /* 28 */ "\u044D", 2537 // U+0438: "и" CYRILLIC SMALL LETTER I 2538 /* 29 */ "\u0438", 2539 /* 30~ */ 2540 null, null, null, null, null, null, null, 2541 /* ~36 */ 2542 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 2543 /* 37 */ "\u044A", 2544 /* 38~ */ 2545 null, null, null, null, null, 2546 /* ~42 */ 2547 // U+0451: "ё" CYRILLIC SMALL LETTER IO 2548 /* 43 */ "\u0451", 2549 /* 44 */ null, 2550 // Label for "switch to alphabetic" key. 2551 // U+0410: "А" CYRILLIC CAPITAL LETTER A 2552 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 2553 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 2554 /* 45 */ "\u0410\u0411\u0412", 2555 /* 46 */ "!text/single_9qm_lqm", 2556 /* 47 */ "!text/double_9qm_lqm", 2557 }; 2558 2559 /* Language sk: Slovak */ 2560 private static final String[] LANGUAGE_sk = { 2561 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2562 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2563 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2564 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2565 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2566 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2567 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2568 // U+00E6: "æ" LATIN SMALL LETTER AE 2569 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 2570 /* 0 */ "\u00E1,\u00E4,\u0101,\u00E0,\u00E2,\u00E3,\u00E5,\u00E6,\u0105", 2571 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2572 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 2573 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2574 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2575 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2576 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2577 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2578 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2579 /* 1 */ "\u00E9,\u011B,\u0113,\u0117,\u00E8,\u00EA,\u00EB,\u0119", 2580 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2581 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2582 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2583 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2584 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2585 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2586 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 2587 /* 2 */ "\u00ED,\u012B,\u012F,\u00EC,\u00EE,\u00EF,\u0131", 2588 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2589 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2590 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2591 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2592 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2593 // U+0153: "œ" LATIN SMALL LIGATURE OE 2594 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 2595 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2596 /* 3 */ "\u00F4,\u00F3,\u00F6,\u00F2,\u00F5,\u0153,\u0151,\u00F8", 2597 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2598 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 2599 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2600 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2601 // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK 2602 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2603 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2604 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 2605 /* 4 */ "\u00FA,\u016F,\u00FC,\u016B,\u0173,\u00F9,\u00FB,\u0171", 2606 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2607 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2608 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2609 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 2610 /* 5 */ "\u0161,\u00DF,\u015B,\u015F", 2611 // U+0148: "ň" LATIN SMALL LETTER N WITH CARON 2612 // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA 2613 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2614 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2615 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2616 /* 6 */ "\u0148,\u0146,\u00F1,\u0144,\u0144", 2617 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2618 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2619 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2620 /* 7 */ "\u010D,\u00E7,\u0107", 2621 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 2622 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 2623 /* 8 */ "\u00FD,\u00FF", 2624 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 2625 /* 9 */ "\u010F", 2626 // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE 2627 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 2628 // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA 2629 /* 10 */ "\u0155,\u0159,\u0157", 2630 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 2631 // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA 2632 /* 11 */ "\u0165,\u0163", 2633 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 2634 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 2635 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 2636 /* 12 */ "\u017E,\u017C,\u017A", 2637 // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA 2638 /* 13 */ "\u0137", 2639 // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON 2640 // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE 2641 // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA 2642 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 2643 /* 14 */ "\u013E,\u013A,\u013C,\u0142", 2644 // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA 2645 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 2646 /* 15 */ "\u0123,\u011F", 2647 /* 16~ */ 2648 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2649 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2650 /* ~45 */ 2651 /* 46 */ "!text/single_9qm_lqm", 2652 /* 47 */ "!text/double_9qm_lqm", 2653 /* 48 */ "!text/single_raqm_laqm", 2654 /* 49 */ "!text/double_raqm_laqm", 2655 }; 2656 2657 /* Language sl: Slovenian */ 2658 private static final String[] LANGUAGE_sl = { 2659 /* 0~ */ 2660 null, null, null, null, null, 2661 /* ~4 */ 2662 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2663 /* 5 */ "\u0161", 2664 /* 6 */ null, 2665 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2666 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2667 /* 7 */ "\u010D,\u0107", 2668 /* 8 */ null, 2669 // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE 2670 /* 9 */ "\u0111", 2671 /* 10 */ null, 2672 /* 11 */ null, 2673 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 2674 /* 12 */ "\u017E", 2675 /* 13~ */ 2676 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2677 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2678 null, null, null, 2679 /* ~45 */ 2680 /* 46 */ "!text/single_9qm_lqm", 2681 /* 47 */ "!text/double_9qm_lqm", 2682 /* 48 */ "!text/single_raqm_laqm", 2683 /* 49 */ "!text/double_raqm_laqm", 2684 }; 2685 2686 /* Language sr: Serbian */ 2687 private static final String[] LANGUAGE_sr = { 2688 /* 0~ */ 2689 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2690 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2691 null, null, null, null, null, null, null, null, null, 2692 /* ~38 */ 2693 // TODO: Move these to sr-Latn once we can handle IETF language tag with script name specified. 2694 // BEGIN: More keys definitions for Serbian (Latin) 2695 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2696 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2697 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2698 // <string name="more_keys_for_s">š,ß,ś</string> 2699 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2700 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2701 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2702 // <string name="more_keys_for_c">č,ç,ć</string> 2703 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 2704 // <string name="more_keys_for_d">ď</string> 2705 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 2706 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 2707 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 2708 // <string name="more_keys_for_z">ž,ź,ż</string> 2709 // END: More keys definitions for Serbian (Latin) 2710 // BEGIN: More keys definitions for Serbian (Cyrillic) 2711 // U+0437: "з" CYRILLIC SMALL LETTER ZE 2712 /* 39 */ "\u0437", 2713 // U+045B: "ћ" CYRILLIC SMALL LETTER TSHE 2714 /* 40 */ "\u045B", 2715 // U+0455: "ѕ" CYRILLIC SMALL LETTER DZE 2716 /* 41 */ "\u0455", 2717 // U+0452: "ђ" CYRILLIC SMALL LETTER DJE 2718 /* 42 */ "\u0452", 2719 // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE 2720 /* 43 */ "\u0450", 2721 // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE 2722 /* 44 */ "\u045D", 2723 // END: More keys definitions for Serbian (Cyrillic) 2724 // Label for "switch to alphabetic" key. 2725 // U+0410: "А" CYRILLIC CAPITAL LETTER A 2726 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 2727 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 2728 /* 45 */ "\u0410\u0411\u0412", 2729 /* 46 */ "!text/single_9qm_lqm", 2730 /* 47 */ "!text/double_9qm_lqm", 2731 /* 48 */ "!text/single_raqm_laqm", 2732 /* 49 */ "!text/double_raqm_laqm", 2733 }; 2734 2735 /* Language sv: Swedish */ 2736 private static final String[] LANGUAGE_sv = { 2737 /* 0 */ null, 2738 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2739 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2740 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2741 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2742 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2743 /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119", 2744 /* 2 */ null, 2745 // U+0153: "œ" LATIN SMALL LIGATURE OE 2746 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2747 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2748 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2749 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2750 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2751 /* 3 */ "\u0153,\u00F4,\u00F2,\u00F3,\u00F5,\u014D", 2752 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2753 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2754 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2755 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2756 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2757 /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", 2758 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2759 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2760 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2761 /* 5 */ "\u00DF,\u015B,\u0161", 2762 /* 6~ */ 2763 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2764 /* ~19 */ 2765 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2766 /* 20 */ "\u00E5", 2767 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2768 /* 21 */ "\u00F6", 2769 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2770 /* 22 */ "\u00E4", 2771 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2772 /* 23 */ "\u00F8", 2773 // U+00E6: "æ" LATIN SMALL LETTER AE 2774 /* 24 */ "\u00E6", 2775 /* 25~ */ 2776 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2777 null, null, null, null, null, null, null, null, 2778 /* ~47 */ 2779 /* 48 */ "!text/single_raqm_laqm", 2780 /* 49 */ "!text/double_raqm_laqm", 2781 }; 2782 2783 /* Language sw: Swahili */ 2784 private static final String[] LANGUAGE_sw = { 2785 // This is the same as English except more_keys_for_g. 2786 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2787 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2788 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2789 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2790 // U+00E6: "æ" LATIN SMALL LETTER AE 2791 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2792 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2793 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2794 /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", 2795 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2796 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2797 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2798 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2799 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2800 /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113", 2801 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2802 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2803 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2804 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2805 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2806 /* 2 */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC", 2807 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2808 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2809 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2810 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2811 // U+0153: "œ" LATIN SMALL LIGATURE OE 2812 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2813 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2814 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2815 /* 3 */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8,\u014D,\u00F5", 2816 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2817 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2818 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2819 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2820 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2821 /* 4 */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B", 2822 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2823 /* 5 */ "\u00DF", 2824 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2825 /* 6 */ "\u00F1", 2826 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2827 /* 7 */ "\u00E7", 2828 /* 8~ */ 2829 null, null, null, null, null, null, null, 2830 /* ~14 */ 2831 /* 15 */ "g\'", 2832 }; 2833 2834 /* Language th: Thai */ 2835 private static final String[] LANGUAGE_th = { 2836 /* 0~ */ 2837 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2838 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2839 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2840 /* ~44 */ 2841 // Label for "switch to alphabetic" key. 2842 // U+0E01: "ก" THAI CHARACTER KO KAI 2843 // U+0E02: "ข" THAI CHARACTER KHO KHAI 2844 // U+0E04: "ค" THAI CHARACTER KHO KHWAI 2845 /* 45 */ "\u0E01\u0E02\u0E04", 2846 /* 46~ */ 2847 null, null, null, null, null, 2848 /* ~50 */ 2849 // U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT 2850 /* 51 */ "\u0E3F", 2851 }; 2852 2853 /* Language tl: Tagalog */ 2854 private static final String[] LANGUAGE_tl = { 2855 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 2856 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2857 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 2858 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2859 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 2860 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 2861 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 2862 // U+00E6: "æ" LATIN SMALL LETTER AE 2863 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 2864 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 2865 /* 0 */ "\u00E1,\u00E0,\u00E4,\u00E2,\u00E3,\u00E5,\u0105,\u00E6,\u0101,\u00AA", 2866 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 2867 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 2868 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 2869 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 2870 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 2871 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 2872 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 2873 /* 1 */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113", 2874 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2875 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2876 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2877 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2878 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2879 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2880 /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B", 2881 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2882 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2883 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2884 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2885 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2886 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2887 // U+0153: "œ" LATIN SMALL LIGATURE OE 2888 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2889 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 2890 /* 3 */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA", 2891 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2892 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2893 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2894 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2895 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2896 /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", 2897 /* 5 */ null, 2898 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 2899 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 2900 /* 6 */ "\u00F1,\u0144", 2901 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2902 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2903 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2904 /* 7 */ "\u00E7,\u0107,\u010D", 2905 }; 2906 2907 /* Language tr: Turkish */ 2908 private static final String[] LANGUAGE_tr = { 2909 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 2910 /* 0 */ "\u00E2", 2911 /* 1 */ null, 2912 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 2913 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 2914 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 2915 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 2916 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 2917 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 2918 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 2919 /* 2 */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B", 2920 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 2921 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 2922 // U+0153: "œ" LATIN SMALL LIGATURE OE 2923 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 2924 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 2925 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 2926 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 2927 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 2928 /* 3 */ "\u00F6,\u00F4,\u0153,\u00F2,\u00F3,\u00F5,\u00F8,\u014D", 2929 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 2930 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 2931 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 2932 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 2933 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 2934 /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", 2935 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 2936 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 2937 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 2938 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 2939 /* 5 */ "\u015F,\u00DF,\u015B,\u0161", 2940 /* 6 */ null, 2941 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 2942 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 2943 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 2944 /* 7 */ "\u00E7,\u0107,\u010D", 2945 /* 8~ */ 2946 null, null, null, null, null, null, null, 2947 /* ~14 */ 2948 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 2949 /* 15 */ "\u011F", 2950 }; 2951 2952 /* Language uk: Ukrainian */ 2953 private static final String[] LANGUAGE_uk = { 2954 /* 0~ */ 2955 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2956 null, null, null, null, null, null, null, null, null, null, 2957 /* ~24 */ 2958 // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA 2959 /* 25 */ "\u0449", 2960 // U+0457: "ї" CYRILLIC SMALL LETTER YI 2961 /* 26 */ "\u0457", 2962 // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 2963 /* 27 */ "\u0456", 2964 // U+0454: "є" CYRILLIC SMALL LETTER UKRAINIAN IE 2965 /* 28 */ "\u0454", 2966 // U+0438: "и" CYRILLIC SMALL LETTER I 2967 /* 29 */ "\u0438", 2968 /* 30~ */ 2969 null, null, null, 2970 /* ~32 */ 2971 // U+0491: "ґ" CYRILLIC SMALL LETTER GHE WITH UPTURN 2972 /* 33 */ "\u0491", 2973 // U+0457: "ї" CYRILLIC SMALL LETTER YI 2974 /* 34 */ "\u0457", 2975 /* 35 */ null, 2976 /* 36 */ null, 2977 // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN 2978 /* 37 */ "\u044A", 2979 /* 38~ */ 2980 null, null, null, null, null, null, null, 2981 /* ~44 */ 2982 // Label for "switch to alphabetic" key. 2983 // U+0410: "А" CYRILLIC CAPITAL LETTER A 2984 // U+0411: "Б" CYRILLIC CAPITAL LETTER BE 2985 // U+0412: "В" CYRILLIC CAPITAL LETTER VE 2986 /* 45 */ "\u0410\u0411\u0412", 2987 /* 46 */ "!text/single_9qm_lqm", 2988 /* 47 */ "!text/double_9qm_lqm", 2989 /* 48~ */ 2990 null, null, null, 2991 /* ~50 */ 2992 // U+20B4: "₴" HRYVNIA SIGN 2993 /* 51 */ "\u20B4", 2994 }; 2995 2996 /* Language vi: Vietnamese */ 2997 private static final String[] LANGUAGE_vi = { 2998 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 2999 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 3000 // U+1EA3: "ả" LATIN SMALL LETTER A WITH HOOK ABOVE 3001 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 3002 // U+1EA1: "ạ" LATIN SMALL LETTER A WITH DOT BELOW 3003 // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE 3004 // U+1EB1: "ằ" LATIN SMALL LETTER A WITH BREVE AND GRAVE 3005 // U+1EAF: "ắ" LATIN SMALL LETTER A WITH BREVE AND ACUTE 3006 // U+1EB3: "ẳ" LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE 3007 // U+1EB5: "ẵ" LATIN SMALL LETTER A WITH BREVE AND TILDE 3008 // U+1EB7: "ặ" LATIN SMALL LETTER A WITH BREVE AND DOT BELOW 3009 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 3010 // U+1EA7: "ầ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE 3011 // U+1EA5: "ấ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 3012 // U+1EA9: "ẩ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 3013 // U+1EAB: "ẫ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE 3014 // U+1EAD: "ậ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW 3015 /* 0 */ "\u00E0,\u00E1,\u1EA3,\u00E3,\u1EA1,\u0103,\u1EB1,\u1EAF,\u1EB3,\u1EB5,\u1EB7,\u00E2,\u1EA7,\u1EA5,\u1EA9,\u1EAB,\u1EAD", 3016 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 3017 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 3018 // U+1EBB: "ẻ" LATIN SMALL LETTER E WITH HOOK ABOVE 3019 // U+1EBD: "ẽ" LATIN SMALL LETTER E WITH TILDE 3020 // U+1EB9: "ẹ" LATIN SMALL LETTER E WITH DOT BELOW 3021 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 3022 // U+1EC1: "ề" LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE 3023 // U+1EBF: "ế" LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE 3024 // U+1EC3: "ể" LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 3025 // U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE 3026 // U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW 3027 /* 1 */ "\u00E8,\u00E9,\u1EBB,\u1EBD,\u1EB9,\u00EA,\u1EC1,\u1EBF,\u1EC3,\u1EC5,\u1EC7", 3028 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 3029 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 3030 // U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE 3031 // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE 3032 // U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW 3033 /* 2 */ "\u00EC,\u00ED,\u1EC9,\u0129,\u1ECB", 3034 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 3035 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 3036 // U+1ECF: "ỏ" LATIN SMALL LETTER O WITH HOOK ABOVE 3037 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 3038 // U+1ECD: "ọ" LATIN SMALL LETTER O WITH DOT BELOW 3039 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 3040 // U+1ED3: "ồ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE 3041 // U+1ED1: "ố" LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE 3042 // U+1ED5: "ổ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 3043 // U+1ED7: "ỗ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE 3044 // U+1ED9: "ộ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW 3045 // U+01A1: "ơ" LATIN SMALL LETTER O WITH HORN 3046 // U+1EDD: "ờ" LATIN SMALL LETTER O WITH HORN AND GRAVE 3047 // U+1EDB: "ớ" LATIN SMALL LETTER O WITH HORN AND ACUTE 3048 // U+1EDF: "ở" LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE 3049 // U+1EE1: "ỡ" LATIN SMALL LETTER O WITH HORN AND TILDE 3050 // U+1EE3: "ợ" LATIN SMALL LETTER O WITH HORN AND DOT BELOW 3051 /* 3 */ "\u00F2,\u00F3,\u1ECF,\u00F5,\u1ECD,\u00F4,\u1ED3,\u1ED1,\u1ED5,\u1ED7,\u1ED9,\u01A1,\u1EDD,\u1EDB,\u1EDF,\u1EE1,\u1EE3", 3052 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 3053 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 3054 // U+1EE7: "ủ" LATIN SMALL LETTER U WITH HOOK ABOVE 3055 // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE 3056 // U+1EE5: "ụ" LATIN SMALL LETTER U WITH DOT BELOW 3057 // U+01B0: "ư" LATIN SMALL LETTER U WITH HORN 3058 // U+1EEB: "ừ" LATIN SMALL LETTER U WITH HORN AND GRAVE 3059 // U+1EE9: "ứ" LATIN SMALL LETTER U WITH HORN AND ACUTE 3060 // U+1EED: "ử" LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE 3061 // U+1EEF: "ữ" LATIN SMALL LETTER U WITH HORN AND TILDE 3062 // U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW 3063 /* 4 */ "\u00F9,\u00FA,\u1EE7,\u0169,\u1EE5,\u01B0,\u1EEB,\u1EE9,\u1EED,\u1EEF,\u1EF1", 3064 /* 5~ */ 3065 null, null, null, 3066 /* ~7 */ 3067 // U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE 3068 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 3069 // U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE 3070 // U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE 3071 // U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW 3072 /* 8 */ "\u1EF3,\u00FD,\u1EF7,\u1EF9,\u1EF5", 3073 // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE 3074 /* 9 */ "\u0111", 3075 /* 10~ */ 3076 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 3077 null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 3078 null, null, null, null, null, null, null, null, null, null, null, 3079 /* ~50 */ 3080 // U+20AB: "₫" DONG SIGN 3081 /* 51 */ "\u20AB", 3082 }; 3083 3084 /* Language zu: Zulu */ 3085 private static final String[] LANGUAGE_zu = { 3086 // This is the same as English 3087 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 3088 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 3089 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 3090 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 3091 // U+00E6: "æ" LATIN SMALL LETTER AE 3092 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 3093 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 3094 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 3095 /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", 3096 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 3097 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 3098 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 3099 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 3100 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 3101 /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113", 3102 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 3103 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 3104 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 3105 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 3106 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 3107 /* 2 */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC", 3108 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 3109 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 3110 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 3111 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 3112 // U+0153: "œ" LATIN SMALL LIGATURE OE 3113 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 3114 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 3115 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 3116 /* 3 */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8,\u014D,\u00F5", 3117 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 3118 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 3119 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 3120 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 3121 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 3122 /* 4 */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B", 3123 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 3124 /* 5 */ "\u00DF", 3125 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 3126 /* 6 */ "\u00F1", 3127 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 3128 /* 7 */ "\u00E7", 3129 }; 3130 3131 /* Language zz: No language */ 3132 private static final String[] LANGUAGE_zz = { 3133 // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE 3134 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE 3135 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX 3136 // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE 3137 // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS 3138 // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE 3139 // U+00E6: "æ" LATIN SMALL LETTER AE 3140 // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON 3141 // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE 3142 // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK 3143 // U+00AA: "ª" FEMININE ORDINAL INDICATOR 3144 /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E3,\u00E4,\u00E5,\u00E6,\u00E3,\u00E5,\u0101,\u0103,\u0105,\u00AA", 3145 // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE 3146 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE 3147 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX 3148 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS 3149 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON 3150 // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE 3151 // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE 3152 // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK 3153 // U+011B: "ě" LATIN SMALL LETTER E WITH CARON 3154 /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113,\u0115,\u0117,\u0119,\u011B", 3155 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE 3156 // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE 3157 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX 3158 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS 3159 // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE 3160 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON 3161 // U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE 3162 // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK 3163 // U+0131: "ı" LATIN SMALL LETTER DOTLESS I 3164 // U+0133: "ij" LATIN SMALL LIGATURE IJ 3165 /* 2 */ "\u00EC,\u00ED,\u00EE,\u00EF,\u0129,\u012B,\u012D,\u012F,\u0131,\u0133", 3166 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE 3167 // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE 3168 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX 3169 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE 3170 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS 3171 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE 3172 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON 3173 // U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE 3174 // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE 3175 // U+0153: "œ" LATIN SMALL LIGATURE OE 3176 // U+00BA: "º" MASCULINE ORDINAL INDICATOR 3177 /* 3 */ "\u00F2,\u00F3,\u00F4,\u00F5,\u00F6,\u00F8,\u014D,\u014F,\u0151,\u0153,\u00BA", 3178 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE 3179 // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE 3180 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX 3181 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS 3182 // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE 3183 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON 3184 // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE 3185 // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE 3186 // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE 3187 // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK 3188 /* 4 */ "\u00F9,\u00FA,\u00FB,\u00FC,\u0169,\u016B,\u016D,\u016F,\u0171,\u0173", 3189 // U+00DF: "ß" LATIN SMALL LETTER SHARP S 3190 // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE 3191 // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX 3192 // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA 3193 // U+0161: "š" LATIN SMALL LETTER S WITH CARON 3194 // U+017F: "ſ" LATIN SMALL LETTER LONG S 3195 /* 5 */ "\u00DF,\u015B,\u015D,\u015F,\u0161,\u017F", 3196 // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE 3197 // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE 3198 // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA 3199 // U+0148: "ň" LATIN SMALL LETTER N WITH CARON 3200 // U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 3201 // U+014B: "ŋ" LATIN SMALL LETTER ENG 3202 /* 6 */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B", 3203 // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA 3204 // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE 3205 // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX 3206 // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE 3207 // U+010D: "č" LATIN SMALL LETTER C WITH CARON 3208 /* 7 */ "\u00E7,\u0107,\u0109,\u010B,\u010D", 3209 // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE 3210 // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX 3211 // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS 3212 // U+0133: "ij" LATIN SMALL LIGATURE IJ 3213 /* 8 */ "\u00FD,\u0177,\u00FF,\u0133", 3214 // U+010F: "ď" LATIN SMALL LETTER D WITH CARON 3215 // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE 3216 // U+00F0: "ð" LATIN SMALL LETTER ETH 3217 /* 9 */ "\u010F,\u0111,\u00F0", 3218 // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE 3219 // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA 3220 // U+0159: "ř" LATIN SMALL LETTER R WITH CARON 3221 /* 10 */ "\u0155,\u0157,\u0159", 3222 // U+00FE: "þ" LATIN SMALL LETTER THORN 3223 // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA 3224 // U+0165: "ť" LATIN SMALL LETTER T WITH CARON 3225 // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE 3226 /* 11 */ "\u00FE,\u0163,\u0165,\u0167", 3227 // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE 3228 // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE 3229 // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON 3230 /* 12 */ "\u017A,\u017C,\u017E", 3231 // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA 3232 // U+0138: "ĸ" LATIN SMALL LETTER KRA 3233 /* 13 */ "\u0137,\u0138", 3234 // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE 3235 // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA 3236 // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON 3237 // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT 3238 // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE 3239 /* 14 */ "\u013A,\u013C,\u013E,\u0140,\u0142", 3240 // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX 3241 // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE 3242 // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE 3243 // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA 3244 /* 15 */ "\u011D,\u011F,\u0121,\u0123", 3245 /* 16 */ null, 3246 // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX 3247 /* 17 */ "\u0125", 3248 // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX 3249 /* 18 */ "\u0135", 3250 // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX 3251 /* 19 */ "\u0175", 3252 }; 3253 3254 private static final Object[] LANGUAGES_AND_TEXTS = { 3255 "DEFAULT", LANGUAGE_DEFAULT, /* default */ 3256 "af", LANGUAGE_af, /* Afrikaans */ 3257 "ar", LANGUAGE_ar, /* Arabic */ 3258 "az", LANGUAGE_az, /* Azerbaijani */ 3259 "be", LANGUAGE_be, /* Belarusian */ 3260 "bg", LANGUAGE_bg, /* Bulgarian */ 3261 "ca", LANGUAGE_ca, /* Catalan */ 3262 "cs", LANGUAGE_cs, /* Czech */ 3263 "da", LANGUAGE_da, /* Danish */ 3264 "de", LANGUAGE_de, /* German */ 3265 "el", LANGUAGE_el, /* Greek */ 3266 "en", LANGUAGE_en, /* English */ 3267 "eo", LANGUAGE_eo, /* Esperanto */ 3268 "es", LANGUAGE_es, /* Spanish */ 3269 "et", LANGUAGE_et, /* Estonian */ 3270 "fa", LANGUAGE_fa, /* Persian */ 3271 "fi", LANGUAGE_fi, /* Finnish */ 3272 "fr", LANGUAGE_fr, /* French */ 3273 "hi", LANGUAGE_hi, /* Hindi */ 3274 "hr", LANGUAGE_hr, /* Croatian */ 3275 "hu", LANGUAGE_hu, /* Hungarian */ 3276 "is", LANGUAGE_is, /* Icelandic */ 3277 "it", LANGUAGE_it, /* Italian */ 3278 "iw", LANGUAGE_iw, /* Hebrew */ 3279 "ka", LANGUAGE_ka, /* Georgian */ 3280 "kk", LANGUAGE_kk, /* Kazakh */ 3281 "ky", LANGUAGE_ky, /* Kirghiz */ 3282 "lt", LANGUAGE_lt, /* Lithuanian */ 3283 "lv", LANGUAGE_lv, /* Latvian */ 3284 "mk", LANGUAGE_mk, /* Macedonian */ 3285 "mn", LANGUAGE_mn, /* Mongolian */ 3286 "nb", LANGUAGE_nb, /* Norwegian Bokmål */ 3287 "nl", LANGUAGE_nl, /* Dutch */ 3288 "pl", LANGUAGE_pl, /* Polish */ 3289 "pt", LANGUAGE_pt, /* Portuguese */ 3290 "rm", LANGUAGE_rm, /* Raeto-Romance */ 3291 "ro", LANGUAGE_ro, /* Romanian */ 3292 "ru", LANGUAGE_ru, /* Russian */ 3293 "sk", LANGUAGE_sk, /* Slovak */ 3294 "sl", LANGUAGE_sl, /* Slovenian */ 3295 "sr", LANGUAGE_sr, /* Serbian */ 3296 "sv", LANGUAGE_sv, /* Swedish */ 3297 "sw", LANGUAGE_sw, /* Swahili */ 3298 "th", LANGUAGE_th, /* Thai */ 3299 "tl", LANGUAGE_tl, /* Tagalog */ 3300 "tr", LANGUAGE_tr, /* Turkish */ 3301 "uk", LANGUAGE_uk, /* Ukrainian */ 3302 "vi", LANGUAGE_vi, /* Vietnamese */ 3303 "zu", LANGUAGE_zu, /* Zulu */ 3304 "zz", LANGUAGE_zz, /* No language */ 3305 }; 3306 3307 static { 3308 int id = 0; 3309 for (final String name : NAMES) { 3310 sNameToIdsMap.put(name, id++); 3311 } 3312 3313 for (int i = 0; i < LANGUAGES_AND_TEXTS.length; i += 2) { 3314 final String language = (String)LANGUAGES_AND_TEXTS[i]; 3315 final String[] texts = (String[])LANGUAGES_AND_TEXTS[i + 1]; 3316 sLocaleToTextsMap.put(language, texts); 3317 } 3318 } 3319} 3320