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