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