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