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