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