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