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