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