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