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