diff options
Diffstat (limited to 'java')
144 files changed, 3938 insertions, 3714 deletions
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index c5ecca2f2..a0bef12f7 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Matig"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressief"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Baie aggressief"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Volgende woordvoorstelle"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Gebruik vorige woord om voorstelle te verbeter"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Volgende woordvoorspelling"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Gebruik vorige woord ook vir voorspelling"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Gestoor"</string> <string name="label_go_key" msgid="1635148082137219148">"Gaan"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Sleutelbordtema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engels (VK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Geen taal (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Bruikbaarheidstudie-modus"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Sleuteldruk se vibrasie-tydsduurinstellings"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Sleuteldruk se klankvolume-instellings"</string> diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml index 3450bec2f..2d898aac6 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"መጠነኛ"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"ኃይለኛ"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"በጣም ቁጡ"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"የቀጣይ ቃል አስተያየቶች"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"ምክሮችን ለማሻሻል ቀዳሚ ቃል ተጠቀም"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"የቀጣይ ቃል ግምት"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"ለትንበያ የቀደመ ቃል እንዲሁ ተጠቀም"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : ተቀምጧል"</string> <string name="label_go_key" msgid="1635148082137219148">"ሂድ"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"የቁልፍ ሰሌዳ ገጽታ"</string> <string name="subtype_en_GB" msgid="88170601942311355">"እንግሊዘኛ (የታላቋ ብሪታንያ)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"እንግሊዘኛ (ዩ.ኤስ)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"ቋንቋ አልባ (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"የተገልጋይነት ጥናት ሁነታ"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"ቁልፍ ተጫን በቅንጅቶች ወቅት ንዝረት"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"ቁልፍ ተጫን የድምጽ መጠን ቅንጅቶች"</string> diff --git a/java/res/values-ar/donottranslate-more-keys.xml b/java/res/values-ar/donottranslate-more-keys.xml deleted file mode 100644 index 402e17160..000000000 --- a/java/res/values-ar/donottranslate-more-keys.xml +++ /dev/null @@ -1,144 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+061F: "؟" ARABIC QUESTION MARK - U+060C: "،" ARABIC COMMA - U+061B: "؛" ARABIC SEMICOLON --> - <!-- U+0650: "ِ" ARABIC KASRA - U+064E: "َ" ARABIC FATHA - U+064D: "ٍ" ARABIC KASRATAN - U+064B: "ً" ARABIC FATHATAN - U+0656: "ٖ" ARABIC SUBSCRIPT ALEF - U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF - U+0655: "ٕ" ARABIC HAMZA BELOW - U+0654: "ٔ" ARABIC HAMZA ABOVE --> - <!-- U+064F: "ُ" ARABIC DAMMA - U+064C: "ٌ" ARABIC DAMMATAN - U+0651: "ّ" ARABIC SHADDA - U+0652: "ْ" ARABIC SUKUN - U+0653: "ٓ" ARABIC MADDAH ABOVE - U+0640: "ـ" ARABIC TATWEEL --> - <!-- In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. --> - <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',-,:,!,؟,،,؛,ِ,َ,ٍ,ً,ٖ,ٰ,ٕ,ٔ,ُ,ٌ,ّ,ْ,ٓ,ـــ|ـ,/"</string> - <string name="keyhintlabel_for_punctuation">ً</string> - <!-- U+0661: "١" ARABIC-INDIC DIGIT ONE --> - <string name="keylabel_for_symbols_1">١</string> - <!-- U+0662: "٢" ARABIC-INDIC DIGIT TWO --> - <string name="keylabel_for_symbols_2">٢</string> - <!-- U+0663: "٣" ARABIC-INDIC DIGIT THREE --> - <string name="keylabel_for_symbols_3">٣</string> - <!-- U+0664: "٤" ARABIC-INDIC DIGIT FOUR --> - <string name="keylabel_for_symbols_4">٤</string> - <!-- U+0665: "٥" ARABIC-INDIC DIGIT FIVE --> - <string name="keylabel_for_symbols_5">٥</string> - <!-- U+0666: "٦" ARABIC-INDIC DIGIT SIX --> - <string name="keylabel_for_symbols_6">٦</string> - <!-- U+0667: "٧" ARABIC-INDIC DIGIT SEVEN --> - <string name="keylabel_for_symbols_7">٧</string> - <!-- U+0668: "٨" ARABIC-INDIC DIGIT EIGHT --> - <string name="keylabel_for_symbols_8">٨</string> - <!-- U+0669: "٩" ARABIC-INDIC DIGIT NINE --> - <string name="keylabel_for_symbols_9">٩</string> - <!-- U+0660: "٠" ARABIC-INDIC DIGIT ZERO --> - <string name="keylabel_for_symbols_0">٠</string> - <string name="additional_more_keys_for_symbols_1">1</string> - <string name="additional_more_keys_for_symbols_2">2</string> - <string name="additional_more_keys_for_symbols_3">3</string> - <string name="additional_more_keys_for_symbols_4">4</string> - <string name="additional_more_keys_for_symbols_5">5</string> - <string name="additional_more_keys_for_symbols_6">6</string> - <string name="additional_more_keys_for_symbols_7">7</string> - <string name="additional_more_keys_for_symbols_8">8</string> - <string name="additional_more_keys_for_symbols_9">9</string> - <!-- U+066B: "٫" ARABIC DECIMAL SEPARATOR - U+066C: "٬" ARABIC THOUSANDS SEPARATOR --> - <string name="additional_more_keys_for_symbols_0">0,٫,٬</string> - <!-- U+060C: "،" ARABIC COMMA --> - <string name="keylabel_for_comma">،</string> - <string name="more_keys_for_comma">"\\,"</string> - <string name="keylabel_for_symbols_question">؟</string> - <string name="keylabel_for_symbols_semicolon">؛</string> - <!-- U+066A: "٪" ARABIC PERCENT SIGN --> - <string name="keylabel_for_symbols_percent">٪</string> - <string name="more_keys_for_symbols_question">\?</string> - <string name="more_keys_for_symbols_semicolon">;</string> - <!-- U+2030: "‰" PER MILLE SIGN --> - <string name="more_keys_for_symbols_percent">%,‰</string> - <!-- U+060C: "،" ARABIC COMMA - U+061B: "؛" ARABIC SEMICOLON - U+061F: "؟" ARABIC QUESTION MARK --> - <string name="keylabel_for_apostrophe">،</string> - <string name="keylabel_for_dash">"."</string> - <string name="keyhintlabel_for_apostrophe">؟</string> - <string name="keyhintlabel_for_dash">ً</string> - <string name="more_keys_for_apostrophe">"؟,؛,!,:,-,/,\',\""</string> - <!-- U+0651: "ّ" ARABIC SHADDA - U+0652: "ْ" ARABIC SUKUN - U+064C: "ٌ" ARABIC DAMMATAN - U+0653: "ٓ" ARABIC MADDAH ABOVE - U+064F: "ُ" ARABIC DAMMA --> - <!-- U+0650: "ِ" ARABIC KASRA - U+064E: "َ" ARABIC FATHA - U+064B: "ً" ARABIC FATHATAN - U+0640: "ـ" ARABIC TATWEEL - U+064D: "ٍ" ARABIC KASRATAN --> - <!-- U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF - U+0656: "ٖ" ARABIC SUBSCRIPT ALEF - U+0654: "ٔ" ARABIC HAMZA ABOVE - U+0655: "ٕ" ARABIC HAMZA BELOW --> - <!-- In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. --> - <string name="more_keys_for_dash">"ّ,ْ,ٌ,ٓ,ُ,ِ,َ,ً,ـــ|ـ,ٍ,ٔ,ٖ,ٕ,ٰ"</string> - <!-- U+266A: "♪" EIGHTH NOTE --> - <string name="more_keys_for_bullet">♪</string> - <!-- U+2605: "★" BLACK STAR - U+066D: "٭" ARABIC FIVE POINTED STAR --> - <string name="more_keys_for_star">★,٭</string> - <!-- The all letters need to be mirrored are found at - http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> - <!-- U+FD3E: "﴾" ORNATE LEFT PARENTHESIS - U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS --> - <!-- TODO: DroidSansArabic lacks the glyph of U+FD3E ORNATE LEFT PARENTHESIS --> - <!-- TODO: DroidSansArabic lacks the glyph of U+FD3F ORNATE RIGHT PARENTHESIS --> - <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!4,﴾|﴿,<|>,{|},[|]</string> - <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!4,﴿|﴾,>|<,}|{,]|[</string> - <!-- U+2264: "≤" LESS-THAN OR EQUAL TO - U+2265: "≥" GREATER-THAN EQUAL TO - U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK - U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - The following characters don't need BIDI mirroring. - U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <string name="more_keys_for_less_than">!fixedColumnOrder!3,‹|›,≤|≥,«|»</string> - <string name="more_keys_for_greater_than">!fixedColumnOrder!3,›|‹,≥|≤,»|«</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> --> - <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«,‘,’,‚,‛</string> -</resources> diff --git a/java/res/values-ar/keycodes.xml b/java/res/values-ar/keycodes.xml deleted file mode 100644 index 1f65a7cad..000000000 --- a/java/res/values-ar/keycodes.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0029: ")" RIGHT PARENTHESIS --> - <integer name="keycode_for_left_parenthesis">0x0029</integer> - <!-- U+0028: "(" LEFT PARENTHESIS --> - <integer name="keycode_for_right_parenthesis">0x0028</integer> - <!-- U+003E: ">" GREATER-THAN SIGN --> - <integer name="keycode_for_less_than">0x003E</integer> - <!-- U+003C: "<" LESS-THAN SIGN --> - <integer name="keycode_for_greater_than">0x003C</integer> - <!-- U+005D: "]" RIGHT SQUARE BRACKET --> - <integer name="keycode_for_left_square_bracket">0x005D</integer> - <!-- U+005B: "[" LEFT SQUARE BRACKET --> - <integer name="keycode_for_right_square_bracket">0x005B</integer> - <!-- U+007D: "}" RIGHT CURLY BRACKET --> - <integer name="keycode_for_left_curly_bracket">0x007D</integer> - <!-- U+007B: "{" LEFT CURLY BRACKET --> - <integer name="keycode_for_right_curly_bracket">0x007B</integer> -</resources> diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index 76a077859..d07a65b42 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"معتدل"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"حاد"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"شديد الصرامة"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"اقتراحات الكلمات التالية"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"استخدام الكلمة السابقة لتحسين الاقتراحات"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"التنبؤ بالكلمات التالي"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"استخدام الكلمة السابقة أيضًا للتنبؤ"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : تم الحفظ"</string> <string name="label_go_key" msgid="1635148082137219148">"تنفيذ"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"مظهر لوحة المفاتيح"</string> <string name="subtype_en_GB" msgid="88170601942311355">"الإنجليزية (المملكة المتحدة)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"الإنجليزية (الولايات المتحدة)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"بدون لغة (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"وضع سهولة الاستخدام"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"إعدادات مدة اهتزاز الضغط على المفاتيح"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"إعدادات مستوى صوت الضغط على المفاتيح"</string> diff --git a/java/res/values-be/donottranslate-more-keys.xml b/java/res/values-be/donottranslate-more-keys.xml deleted file mode 100644 index 835553a1f..000000000 --- a/java/res/values-be/donottranslate-more-keys.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+045E: "ў" CYRILLIC SMALL LETTER SHORT U --> - <string name="keylabel_for_east_slavic_row1_9">ў</string> - <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU --> - <string name="keylabel_for_east_slavic_row2_1">ы</string> - <!-- U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I --> - <string name="keylabel_for_east_slavic_row3_5">і</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_ha">ъ</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_soft_sign">ъ</string> -</resources> diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml index bcf4152d9..7a2ce94f3 100644 --- a/java/res/values-be/strings.xml +++ b/java/res/values-be/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Сціплы"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агрэсіўны"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Вельмі агрэсіўны"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Падказкi для наступнага слова"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Выкарыстаць папярэдняе слова, каб палепшыць прапановы"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Падказка наступнага слова"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Выкарыстанне папярэдняга слова для падказак"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Захаваныя"</string> <string name="label_go_key" msgid="1635148082137219148">"Пачаць"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Тэма клавіятуры"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Англійская (ЗК)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Англійская (ЗША)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Мова не выбрана (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Рэжым даследвання выкарыстальнасці"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Налады працягласцi вiбрацыi пры нацiску"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Налады гучнасцi пры нацiску"</string> diff --git a/java/res/values-ca/donottranslate-more-keys.xml b/java/res/values-ca/donottranslate-more-keys.xml deleted file mode 100644 index baa23bf9c..000000000 --- a/java/res/values-ca/donottranslate-more-keys.xml +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK - U+00E6: "æ" LATIN SMALL LETTER AE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00AA: "ª" FEMININE ORDINAL INDICATOR --> - <string name="more_keys_for_a">à,á,ä,â,ã,å,ą,æ,ā,ª</string> - <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">è,é,ë,ê,ę,ė,ē</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">í,ï,ì,î,į,ī</string> - <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+00BA: "º" MASCULINE ORDINAL INDICATOR --> - <string name="more_keys_for_o">ò,ó,ö,ô,õ,ø,œ,ō,º</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,ù,û,ū</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ñ,ń</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+010D: "č" LATIN SMALL LETTER C WITH CARON --> - <string name="more_keys_for_c">ç,ć,č</string> - <!-- U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT - U+0142: "ł" LATIN SMALL LETTER L WITH STROKE --> - <string name="more_keys_for_l">ŀ,ł</string> -</resources> diff --git a/java/res/values-cs/donottranslate-more-keys.xml b/java/res/values-cs/donottranslate-more-keys.xml deleted file mode 100644 index 9af6794df..000000000 --- a/java/res/values-cs/donottranslate-more-keys.xml +++ /dev/null @@ -1,87 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+011B: "ě" LATIN SMALL LETTER E WITH CARON - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,ě,è,ê,ë,ę,ė,ē</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">í,î,ï,ì,į,ī</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ů,û,ü,ù,ū</string> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE --> - <string name="more_keys_for_s">š,ß,ś</string> - <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON - U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ň,ñ,ń</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">č,ç,ć</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON --> - <string name="more_keys_for_d">ď</string> - <!-- U+0159: "ř" LATIN SMALL LETTER R WITH CARON --> - <string name="more_keys_for_r">ř</string> - <!-- U+0165: "ť" LATIN SMALL LETTER T WITH CARON --> - <string name="more_keys_for_t">ť</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE --> - <string name="more_keys_for_z">ž,ź,ż</string> -</resources> diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index a2395d90b..17073d249 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mírné"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivní"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Velmi agresivní"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Návrhy dalšího slova"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Použít předchozí slovo ke zlepšení návrhů"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Návrh dalšího slova"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Použít předchozí slovo také pro odhad"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Uloženo"</string> <string name="label_go_key" msgid="1635148082137219148">"Přejít"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Motiv klávesnice"</string> <string name="subtype_en_GB" msgid="88170601942311355">"angličtina (Spojené království)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"angličtina (USA)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Žádný jazyk (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Režim studie použitelnosti"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Nastavení trvání vibrace při stisku klávesy"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Nastavení hlasitosti zvuku při stisknutí klávesy"</string> diff --git a/java/res/values-da/donottranslate-more-keys.xml b/java/res/values-da/donottranslate-more-keys.xml deleted file mode 100644 index acc0c534d..000000000 --- a/java/res/values-da/donottranslate-more-keys.xml +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">á,ä,à,â,ã,ā</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS --> - <string name="more_keys_for_e">é,ë</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS --> - <string name="more_keys_for_i">í,ï</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ó,ô,ò,õ,œ,ō</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,û,ù,ū</string> - <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">ß,ś,š</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ñ,ń</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+00F0: "ð" LATIN SMALL LETTER ETH --> - <string name="more_keys_for_d">ð</string> - <!-- U+0142: "ł" LATIN SMALL LETTER L WITH STROKE --> - <string name="more_keys_for_l">ł</string> - <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE --> - <string name="keylabel_for_nordic_row1_11">å</string> - <!-- U+00E6: "æ" LATIN SMALL LETTER AE --> - <string name="keylabel_for_nordic_row2_10">æ</string> - <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="keylabel_for_nordic_row2_11">ø</string> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS --> - <string name="more_keys_for_nordic_row2_10">ä</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS --> - <string name="more_keys_for_nordic_row2_11">ö</string> -</resources> diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index f4e617c47..cd5266017 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderat"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressiv"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Meget aggressiv"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Forslag til næste ord"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Brug forrige ord til at forbedre forslag"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Forudsigelse af næste ord"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Brug også tidligere ord til forudsigelse"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Gemt"</string> <string name="label_go_key" msgid="1635148082137219148">"Gå"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannien)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ingen sprog (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tilstand for brugsstudie"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Indstillinger for varighed af vibration ved tastetryk"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Indstillinger for lydstyrke ved tastetryk"</string> diff --git a/java/res/values-de/donottranslate-more-keys.xml b/java/res/values-de/donottranslate-more-keys.xml deleted file mode 100644 index 562e574eb..000000000 --- a/java/res/values-de/donottranslate-more-keys.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">ä,â,à,á,æ,ã,å,ā</string> - <!-- U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE --> - <string name="more_keys_for_e">ė</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ö,ô,ò,ó,õ,œ,ø,ō</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ü,û,ù,ú,ū</string> - <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">ß,ś,š</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ñ,ń</string> -</resources> diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index af2833e19..ef86365f1 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Modest"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressive"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Very aggressive"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Next word suggestions"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Use previous word to improve suggestion"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Next word prediction"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Use previous word also for prediction"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Saved"</string> <string name="label_go_key" msgid="1635148082137219148">"Go"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Keyboard theme"</string> <string name="subtype_en_GB" msgid="88170601942311355">"English (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"English (US)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"No language (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Usability study mode"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Key-press vibration duration settings"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Key-press sound volume settings"</string> diff --git a/java/res/values-en/donottranslate-more-keys.xml b/java/res/values-en/donottranslate-more-keys.xml deleted file mode 100644 index 6e43e86d7..000000000 --- a/java/res/values-en/donottranslate-more-keys.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā</string> - <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">è,é,ê,ë,ă</string> - <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE --> - <string name="more_keys_for_i">î,ï,í,ī,ì</string> - <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE --> - <string name="more_keys_for_o">ô,ö,ò,ó,œ,øō,õ</string> - <!-- U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">û,ü,ù,ú,ū</string> - <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S --> - <string name="more_keys_for_s">ß</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE --> - <string name="more_keys_for_n">ñ</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA --> - <string name="more_keys_for_c">ç</string> -</resources> diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index 91150518b..75b1fb47e 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderado"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muy agresivo"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Sugerencias para la palabra siguiente"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Utiliza la palabra anterior para mejorar las sugerencias."</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Predicción de la palabra siguiente"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Usar la palabra anterior también para predicción."</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema del teclado"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Inglés (Reino Unido)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Inglés (EE.UU.)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ningún idioma (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modo de estudio de usabilidad"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Configuración de la duración de vibraciones al presionar las teclas"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Configuración del volumen de sonio al presionar las teclas"</string> diff --git a/java/res/values-es/donottranslate-more-keys.xml b/java/res/values-es/donottranslate-more-keys.xml deleted file mode 100644 index f56b1d54f..000000000 --- a/java/res/values-es/donottranslate-more-keys.xml +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK - U+00E6: "æ" LATIN SMALL LETTER AE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00AA: "ª" FEMININE ORDINAL INDICATOR --> - <string name="more_keys_for_a">á,à,ä,â,ã,å,ą,æ,ā,ª</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,è,ë,ê,ę,ė,ē</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">í,ï,ì,î,į,ī</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+00BA: "º" MASCULINE ORDINAL INDICATOR --> - <string name="more_keys_for_o">ó,ò,ö,ô,õ,ø,œ,ō,º</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,ù,û,ū</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ñ,ń</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+010D: "č" LATIN SMALL LETTER C WITH CARON --> - <string name="more_keys_for_c">ç,ć,č</string> - <!-- U+00A1: "¡" INVERTED EXCLAMATION MARK - U+00BF: "¿" INVERTED QUESTION MARK --> - <string name="more_keys_for_punctuation">"!fixedColumnOrder!7,#,-,¡,!,¿,\\,,\?,\\%,+,;,:,/,(,),\@,&,\",\'"</string> -</resources> diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index 470a1158e..222cd532a 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Parcial"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muy agresiva"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Sugerencias de la siguiente palabra"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Usar palabra anterior para mejorar las sugerencias"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Predicción de la siguiente palabra"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Utilizar también la palabra anterior para realizar la predicción"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema de teclado"</string> <string name="subtype_en_GB" msgid="88170601942311355">"inglés (Reino Unido)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"inglés (EE.UU.)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ningún idioma (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modo de estudio de usabilidad"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Ajustes de duración de vibración al pulsar tecla"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Volumen de sonido al pulsar tecla"</string> diff --git a/java/res/values-et/donottranslate-more-keys.xml b/java/res/values-et/donottranslate-more-keys.xml deleted file mode 100644 index 69cf654a6..000000000 --- a/java/res/values-et/donottranslate-more-keys.xml +++ /dev/null @@ -1,114 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E6: "æ" LATIN SMALL LETTER AE - U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK --> - <string name="more_keys_for_a">ä,ā,à,á,â,ã,å,æ,ą</string> - <!-- U+0113: "ē" LATIN SMALL LETTER E WITH MACRON - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+011B: "ě" LATIN SMALL LETTER E WITH CARON --> - <string name="more_keys_for_e">ē,è,ė,é,ê,ë,ę,ě</string> - <!-- U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+0131: "ı" LATIN SMALL LETTER DOTLESS I --> - <string name="more_keys_for_i">ī,ì,į,í,î,ï,ı</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+0153: "œ" LATIN SMALL LIGATURE OE - U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_o">ö,õ,ò,ó,ô,œ,ő,ø</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON - U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE - U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <string name="more_keys_for_u">ü,ū,ų,ù,ú,û,ů,ű</string> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA --> - <string name="more_keys_for_s">š,ß,ś,ş</string> - <!-- U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA - U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ņ,ñ,ń,ń</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">č,ç,ć</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON --> - <string name="more_keys_for_d">ď</string> - <!-- U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA - U+0159: "ř" LATIN SMALL LETTER R WITH CARON - U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE --> - <string name="more_keys_for_r">ŗ,ř,ŕ</string> - <!-- U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA - U+0165: "ť" LATIN SMALL LETTER T WITH CARON --> - <string name="more_keys_for_t">ţ,ť</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE --> - <string name="more_keys_for_z">ž,ż,ź</string> - <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA --> - <string name="more_keys_for_k">ķ</string> - <!-- U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA - U+0142: "ł" LATIN SMALL LETTER L WITH STROKE - U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE - U+013E: "ľ" LATIN SMALL LETTER L WITH CARON --> - <string name="more_keys_for_l">ļ,ł,ĺ,ľ</string> - <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA - U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE --> - <string name="more_keys_for_g">ģ,ğ</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS --> - <string name="keylabel_for_nordic_row1_11">ü</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS --> - <string name="keylabel_for_nordic_row2_10">ö</string> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS --> - <string name="keylabel_for_nordic_row2_11">ä</string> - <!-- U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE --> - <string name="more_keys_for_nordic_row2_10">õ</string> -</resources> diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml index 8835917a1..cb21b4c9c 100644 --- a/java/res/values-et/strings.xml +++ b/java/res/values-et/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mõõdukas"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressiivne"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Väga agressiivne"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Järgmise sõna soovitused"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Kasuta soovituste täiustamiseks eelmist sõna"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Järgmise sõna ennustus"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Kasuta ennustuseks ka eelmist sõna"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : salvestatud"</string> <string name="label_go_key" msgid="1635148082137219148">"Mine"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Klaviatuuri teema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Inglise (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Inglise (USA)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Keel puudub (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Kasutatavuse uurimisrežiim"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Klahvivajutuse vibratsiooni kestuse seaded"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Klahvivajutuse helitugevuse seaded"</string> diff --git a/java/res/values-fa/donottranslate-more-keys.xml b/java/res/values-fa/donottranslate-more-keys.xml deleted file mode 100644 index 1da1c1889..000000000 --- a/java/res/values-fa/donottranslate-more-keys.xml +++ /dev/null @@ -1,146 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+061F: "؟" ARABIC QUESTION MARK - U+060C: "،" ARABIC COMMA - U+061B: "؛" ARABIC SEMICOLON --> - <!-- U+0650: "ِ" ARABIC KASRA - U+064E: "َ" ARABIC FATHA - U+064D: "ٍ" ARABIC KASRATAN - U+064B: "ً" ARABIC FATHATAN - U+0656: "ٖ" ARABIC SUBSCRIPT ALEF - U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF - U+0655: "ٕ" ARABIC HAMZA BELOW - U+0654: "ٔ" ARABIC HAMZA ABOVE --> - <!-- U+064F: "ُ" ARABIC DAMMA - U+064C: "ٌ" ARABIC DAMMATAN - U+0651: "ّ" ARABIC SHADDA - U+0652: "ْ" ARABIC SUKUN - U+0653: "ٓ" ARABIC MADDAH ABOVE - U+0640: "ـ" ARABIC TATWEEL --> - <!-- In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. --> - <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',-,:,!,؟,،,؛,ِ,َ,ٍ,ً,ٖ,ٰ,ٕ,ٔ,ُ,ٌ,ّ,ْ,ٓ,ـــ|ـ,/"</string> - <string name="keyhintlabel_for_punctuation">ً</string> - <!-- U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE --> - <string name="keylabel_for_symbols_1">۱</string> - <!-- U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO --> - <string name="keylabel_for_symbols_2">۲</string> - <!-- U+06F3: "۳" EXTENDED ARABIC-INDIC DIGIT THREE --> - <string name="keylabel_for_symbols_3">۳</string> - <!-- U+06F4: "۴" EXTENDED ARABIC-INDIC DIGIT FOUR --> - <string name="keylabel_for_symbols_4">۴</string> - <!-- U+06F5: "۵" EXTENDED ARABIC-INDIC DIGIT FIVE --> - <string name="keylabel_for_symbols_5">۵</string> - <!-- U+06F6: "۶" EXTENDED ARABIC-INDIC DIGIT SIX --> - <string name="keylabel_for_symbols_6">۶</string> - <!-- U+06F7: "۷" EXTENDED ARABIC-INDIC DIGIT SEVEN --> - <string name="keylabel_for_symbols_7">۷</string> - <!-- U+06F8: "۸" EXTENDED ARABIC-INDIC DIGIT EIGHT --> - <string name="keylabel_for_symbols_8">۸</string> - <!-- U+06F9: "۹" EXTENDED ARABIC-INDIC DIGIT NINE --> - <string name="keylabel_for_symbols_9">۹</string> - <!-- U+06F0: "۰" EXTENDED ARABIC-INDIC DIGIT ZERO --> - <string name="keylabel_for_symbols_0">۰</string> - <string name="additional_more_keys_for_symbols_1">1</string> - <string name="additional_more_keys_for_symbols_2">2</string> - <string name="additional_more_keys_for_symbols_3">3</string> - <string name="additional_more_keys_for_symbols_4">4</string> - <string name="additional_more_keys_for_symbols_5">5</string> - <string name="additional_more_keys_for_symbols_6">6</string> - <string name="additional_more_keys_for_symbols_7">7</string> - <string name="additional_more_keys_for_symbols_8">8</string> - <string name="additional_more_keys_for_symbols_9">9</string> - <!-- U+066B: "٫" ARABIC DECIMAL SEPARATOR - U+066C: "٬" ARABIC THOUSANDS SEPARATOR --> - <string name="additional_more_keys_for_symbols_0">0,٫,٬</string> - <!-- U+060C: "،" ARABIC COMMA --> - <string name="keylabel_for_comma">،</string> - <string name="more_keys_for_comma">"\\,"</string> - <string name="keylabel_for_symbols_question">؟</string> - <string name="keylabel_for_symbols_semicolon">؛</string> - <!-- U+066A: "٪" ARABIC PERCENT SIGN --> - <string name="keylabel_for_symbols_percent">٪</string> - <string name="more_keys_for_symbols_question">\?</string> - <string name="more_keys_for_symbols_semicolon">;</string> - <!-- U+2030: "‰" PER MILLE SIGN --> - <string name="more_keys_for_symbols_percent">%,‰</string> - <!-- U+060C: "،" ARABIC COMMA - U+061B: "؛" ARABIC SEMICOLON - U+061F: "؟" ARABIC QUESTION MARK --> - <string name="keylabel_for_tablet_comma">"،"</string> - <string name="keyhintlabel_for_tablet_comma">"!"</string> - <string name="more_keys_for_tablet_comma">"!,\\,"</string> - <string name="keyhintlabel_for_tablet_period">"؟"</string> - <string name="more_keys_for_tablet_period">"؟,\?"</string> - <string name="keyhintlabel_for_dash">ً</string> - <string name="more_keys_for_apostrophe">"؟,؛,!,:,-,/,\',\""</string> - <!-- U+0651: "ّ" ARABIC SHADDA - U+0652: "ْ" ARABIC SUKUN - U+064C: "ٌ" ARABIC DAMMATAN - U+0653: "ٓ" ARABIC MADDAH ABOVE - U+064F: "ُ" ARABIC DAMMA --> - <!-- U+0650: "ِ" ARABIC KASRA - U+064E: "َ" ARABIC FATHA - U+064B: "ً" ARABIC FATHATAN - U+0640: "ـ" ARABIC TATWEEL - U+064D: "ٍ" ARABIC KASRATAN --> - <!-- U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF - U+0656: "ٖ" ARABIC SUBSCRIPT ALEF - U+0654: "ٔ" ARABIC HAMZA ABOVE - U+0655: "ٕ" ARABIC HAMZA BELOW --> - <!-- In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. --> - <string name="more_keys_for_dash">"ّ,ْ,ٌ,ٓ,ُ,ِ,َ,ً,ـــ|ـ,ٍ,ٔ,ٖ,ٕ,_,ٰ"</string> - <!-- U+266A: "♪" EIGHTH NOTE --> - <string name="more_keys_for_bullet">♪</string> - <!-- U+2605: "★" BLACK STAR - U+066D: "٭" ARABIC FIVE POINTED STAR --> - <string name="more_keys_for_star">★,٭</string> - <!-- The all letters need to be mirrored are found at - http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> - <!-- U+FD3E: "﴾" ORNATE LEFT PARENTHESIS - U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS --> - <!-- TODO: DroidSansArabic lacks the glyph of U+FD3E ORNATE LEFT PARENTHESIS --> - <!-- TODO: DroidSansArabic lacks the glyph of U+FD3F ORNATE RIGHT PARENTHESIS --> - <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!4,﴾|﴿,<|>,{|},[|]</string> - <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!4,﴿|﴾,>|<,}|{,]|[</string> - <!-- U+2264: "≤" LESS-THAN OR EQUAL TO - U+2265: "≥" GREATER-THAN EQUAL TO - U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK - U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - The following characters don't need BIDI mirroring. - U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <string name="more_keys_for_less_than">!fixedColumnOrder!3,‹|›,≤|≥,«|»</string> - <string name="more_keys_for_greater_than">!fixedColumnOrder!3,›|‹,≥|≤,»|«</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> --> - <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«,‘,’,‚,‛</string> -</resources> diff --git a/java/res/values-fa/keycodes.xml b/java/res/values-fa/keycodes.xml deleted file mode 100644 index 1f65a7cad..000000000 --- a/java/res/values-fa/keycodes.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0029: ")" RIGHT PARENTHESIS --> - <integer name="keycode_for_left_parenthesis">0x0029</integer> - <!-- U+0028: "(" LEFT PARENTHESIS --> - <integer name="keycode_for_right_parenthesis">0x0028</integer> - <!-- U+003E: ">" GREATER-THAN SIGN --> - <integer name="keycode_for_less_than">0x003E</integer> - <!-- U+003C: "<" LESS-THAN SIGN --> - <integer name="keycode_for_greater_than">0x003C</integer> - <!-- U+005D: "]" RIGHT SQUARE BRACKET --> - <integer name="keycode_for_left_square_bracket">0x005D</integer> - <!-- U+005B: "[" LEFT SQUARE BRACKET --> - <integer name="keycode_for_right_square_bracket">0x005B</integer> - <!-- U+007D: "}" RIGHT CURLY BRACKET --> - <integer name="keycode_for_left_curly_bracket">0x007D</integer> - <!-- U+007B: "{" LEFT CURLY BRACKET --> - <integer name="keycode_for_right_curly_bracket">0x007B</integer> -</resources> diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index 6951ab4a9..5a6302fe3 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"متوسط"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"فعال"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"بسیار پرخاشگرانه"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"پیشنهادات کلمه بعدی"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"برای بهبود پیشنهاد از کلمه قبلی استفاده شود"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"پیش بینی کلمه بعدی"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"استفاده از کلمه قبلی برای پیش بینی"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : ذخیره شد"</string> <string name="label_go_key" msgid="1635148082137219148">"برو"</string> @@ -125,8 +122,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"طرح زمینه صفحه کلید"</string> <string name="subtype_en_GB" msgid="88170601942311355">"انگیسی (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"انگیسی (US)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"هیچ کدام از زبانها (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"حالت بررسی قابلیت استفاده"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"تنظیمات مدت زمان لرزش فشار کلید"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"تنظیمات میزان صدای فشار کلید"</string> diff --git a/java/res/values-fi/donottranslate-more-keys.xml b/java/res/values-fi/donottranslate-more-keys.xml deleted file mode 100644 index 25b785845..000000000 --- a/java/res/values-fi/donottranslate-more-keys.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E6: "æ" LATIN SMALL LETTER AE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">æ,à,á,â,ã,ā</string> - <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ø,ô,ò,ó,õ,œ,ō</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS --> - <string name="more_keys_for_u">ü</string> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE --> - <string name="more_keys_for_s">š,ß,ś</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE --> - <string name="more_keys_for_z">ž,ź,ż</string> - <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE --> - <string name="keylabel_for_nordic_row1_11">å</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS --> - <string name="keylabel_for_nordic_row2_10">ö</string> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS --> - <string name="keylabel_for_nordic_row2_11">ä</string> - <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_nordic_row2_10">ø</string> - <!-- U+00E6: "æ" LATIN SMALL LETTER AE --> - <string name="more_keys_for_nordic_row2_11">æ</string> -</resources> diff --git a/java/res/values-fr/donottranslate-more-keys.xml b/java/res/values-fr/donottranslate-more-keys.xml deleted file mode 100644 index 7b11a183d..000000000 --- a/java/res/values-fr/donottranslate-more-keys.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00AA: "ª" FEMININE ORDINAL INDICATOR --> - <string name="more_keys_for_a">à,â,%,æ,á,ä,ã,å,ā,ª</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,è,ê,ë,%,ę,ė,ē</string> - <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">î,%,ï,ì,í,į,ī</string> - <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+00BA: "º" MASCULINE ORDINAL INDICATOR --> - <string name="more_keys_for_o">ô,œ,%,ö,ò,ó,õ,ø,ō,º</string> - <!-- U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ù,û,%,ü,ú,ū</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+010D: "č" LATIN SMALL LETTER C WITH CARON --> - <string name="more_keys_for_c">ç,ć,č</string> - <!-- U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">%,ÿ</string> -</resources> diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index bf018c1bd..96aadfb25 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Simple"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Proactive"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Très exigeante"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Suggestions pour le mot suivant"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Améliorer les suggestions grâce au mot précédent"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Prédiction du mot suivant"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Utiliser le mot précédent pour la prédiction"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : enregistré"</string> <string name="label_go_key" msgid="1635148082137219148">"OK"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Thème du clavier"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Anglais (Royaume-Uni)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Pas de langue (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Mode d\'étude de l\'utilisabilité"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Durée de vibration à chaque pression"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Volume sonore à chaque pression"</string> diff --git a/java/res/values-hi/donottranslate-more-keys.xml b/java/res/values-hi/donottranslate-more-keys.xml deleted file mode 100644 index 19bcb9dda..000000000 --- a/java/res/values-hi/donottranslate-more-keys.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0967: "१" DEVANAGARI DIGIT ONE --> - <string name="keylabel_for_symbols_1">१</string> - <!-- U+0968: "२" DEVANAGARI DIGIT TWO --> - <string name="keylabel_for_symbols_2">२</string> - <!-- U+0969: "३" DEVANAGARI DIGIT THREE --> - <string name="keylabel_for_symbols_3">३</string> - <!-- U+096A: "४" DEVANAGARI DIGIT FOUR --> - <string name="keylabel_for_symbols_4">४</string> - <!-- U+096B: "५" DEVANAGARI DIGIT FIVE --> - <string name="keylabel_for_symbols_5">५</string> - <!-- U+096C: "६" DEVANAGARI DIGIT SIX --> - <string name="keylabel_for_symbols_6">६</string> - <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN --> - <string name="keylabel_for_symbols_7">७</string> - <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT --> - <string name="keylabel_for_symbols_8">८</string> - <!-- U+096F: "९" DEVANAGARI DIGIT NINE --> - <string name="keylabel_for_symbols_9">९</string> - <!-- U+0966: "०" DEVANAGARI DIGIT ZERO --> - <string name="keylabel_for_symbols_0">०</string> - <string name="additional_more_keys_for_symbols_1">1</string> - <string name="additional_more_keys_for_symbols_2">2</string> - <string name="additional_more_keys_for_symbols_3">3</string> - <string name="additional_more_keys_for_symbols_4">4</string> - <string name="additional_more_keys_for_symbols_5">5</string> - <string name="additional_more_keys_for_symbols_6">6</string> - <string name="additional_more_keys_for_symbols_7">7</string> - <string name="additional_more_keys_for_symbols_8">8</string> - <string name="additional_more_keys_for_symbols_9">9</string> - <string name="additional_more_keys_for_symbols_0">0</string> -</resources> diff --git a/java/res/values-hr/donottranslate-more-keys.xml b/java/res/values-hr/donottranslate-more-keys.xml deleted file mode 100644 index 9b4005d0d..000000000 --- a/java/res/values-hr/donottranslate-more-keys.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+00DF: "ß" LATIN SMALL LETTER SHARP S --> - <string name="more_keys_for_s">š,ś,ß</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ñ,ń</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE --> - <string name="more_keys_for_z">ž,ź,ż</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA --> - <string name="more_keys_for_c">č,ć,ç</string> - <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE --> - <string name="more_keys_for_d">đ</string> -</resources> diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index feb3b5fde..093b22ea0 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Skromno"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivno"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Vrlo agresivno"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Prijedlozi za sljedeću riječ"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Upotrijebi prethodnu riječ radi poboljšanja prijedloga"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Predviđanje sljedeće riječi"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Upotrijebite prethodnu riječ i za predviđanje"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Spremljeno"</string> <string name="label_go_key" msgid="1635148082137219148">"Idi"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engleski (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engleski (SAD)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nema jezika (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Način studije upotrebljivosti"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Postavke trajanja vibracije kod pritiska tipke"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Postavke glasnoće zvuka kod pritiska tipke"</string> diff --git a/java/res/values-hu/donottranslate-more-keys.xml b/java/res/values-hu/donottranslate-more-keys.xml deleted file mode 100644 index 48259104b..000000000 --- a/java/res/values-hu/donottranslate-more-keys.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,è,ê,ë,ę,ė,ē</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">í,î,ï,ì,į,ī</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ó,ö,ő,ô,ò,õ,œ,ø,ō</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,ű,û,ù,ū</string> -</resources> diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index dcdcc594a..a414821a6 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mérsékelt"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresszív"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Nagyon agresszív"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Következő szóra vonatkozó javaslatok"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Javaslatok fejlesztése az előző szó használatával"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Következő szó előrejelzése"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Az előző szó használata a prediktív bevitelhez is"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : mentve"</string> <string name="label_go_key" msgid="1635148082137219148">"Ugrás"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Billentyűzettéma"</string> <string name="subtype_en_GB" msgid="88170601942311355">"angol (brit)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"angol (amerikai)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nincs nyelv (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Használhatósági teszt"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Gombnyomás rezgési időtartamának beállításai"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Gombnyomás hangerejének beállításai"</string> diff --git a/java/res/values-is/donottranslate-more-keys.xml b/java/res/values-is/donottranslate-more-keys.xml deleted file mode 100644 index 284aae930..000000000 --- a/java/res/values-is/donottranslate-more-keys.xml +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">á,ä,æ,å,à,â,ã,ā</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,ë,è,ê,ę,ė,ē</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">í,ï,î,ì,į,ī</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,û,ù,ū</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+00F0: "ð" LATIN SMALL LETTER ETH --> - <string name="more_keys_for_d">ð</string> - <!-- U+00FE: "þ" LATIN SMALL LETTER THORN --> - <string name="more_keys_for_t">þ</string> - <!-- U+00F0: "ð" LATIN SMALL LETTER ETH --> - <string name="keylabel_for_nordic_row1_11">ð</string> - <!-- U+00E6: "æ" LATIN SMALL LETTER AE --> - <string name="keylabel_for_nordic_row2_10">æ</string> - <!-- U+00FE: "þ" LATIN SMALL LETTER THORN --> - <string name="keylabel_for_nordic_row2_11">þ</string> -</resources> diff --git a/java/res/values-it/donottranslate-more-keys.xml b/java/res/values-it/donottranslate-more-keys.xml deleted file mode 100644 index 17dd03108..000000000 --- a/java/res/values-it/donottranslate-more-keys.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00AA: "ª" FEMININE ORDINAL INDICATOR --> - <string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā,ª</string> - <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">è,é,ê,ë,ę,ė,ē</string> - <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">ì,í,î,ï,į,ī</string> - <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+00BA: "º" MASCULINE ORDINAL INDICATOR --> - <string name="more_keys_for_o">ò,ó,ô,ö,õ,œ,ø,ō,º</string> - <!-- U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ù,ú,û,ü,ū</string> -</resources> diff --git a/java/res/values-iw/donottranslate-more-keys.xml b/java/res/values-iw/donottranslate-more-keys.xml deleted file mode 100644 index ad209edde..000000000 --- a/java/res/values-iw/donottranslate-more-keys.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+2605: "★" BLACK STAR --> - <string name="more_keys_for_star">★</string> - <!-- U+00B1: "±" PLUS-MINUS SIGN - U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN --> - <string name="more_keys_for_plus">±,﬩</string> - <!-- The all letters need to be mirrored are found at - http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> - <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!3,<|>,{|},[|]</string> - <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!3,>|<,}|{,]|[</string> - <!-- U+2264: "≤" LESS-THAN OR EQUAL TO - U+2265: "≥" GREATER-THAN EQUAL TO - U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK - U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - The following characters don't need BIDI mirroring. - U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <string name="more_keys_for_less_than">!fixedColumnOrder!3,‹|›,≤|≥,«|»</string> - <string name="more_keys_for_greater_than">!fixedColumnOrder!3,›|‹,≥|≤,»|«</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> --> - <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«,‘,’,‚,‛</string> -</resources> diff --git a/java/res/values-iw/keycodes.xml b/java/res/values-iw/keycodes.xml deleted file mode 100644 index 1f65a7cad..000000000 --- a/java/res/values-iw/keycodes.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0029: ")" RIGHT PARENTHESIS --> - <integer name="keycode_for_left_parenthesis">0x0029</integer> - <!-- U+0028: "(" LEFT PARENTHESIS --> - <integer name="keycode_for_right_parenthesis">0x0028</integer> - <!-- U+003E: ">" GREATER-THAN SIGN --> - <integer name="keycode_for_less_than">0x003E</integer> - <!-- U+003C: "<" LESS-THAN SIGN --> - <integer name="keycode_for_greater_than">0x003C</integer> - <!-- U+005D: "]" RIGHT SQUARE BRACKET --> - <integer name="keycode_for_left_square_bracket">0x005D</integer> - <!-- U+005B: "[" LEFT SQUARE BRACKET --> - <integer name="keycode_for_right_square_bracket">0x005B</integer> - <!-- U+007D: "}" RIGHT CURLY BRACKET --> - <integer name="keycode_for_left_curly_bracket">0x007D</integer> - <!-- U+007B: "{" LEFT CURLY BRACKET --> - <integer name="keycode_for_right_curly_bracket">0x007B</integer> -</resources> diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index 71fbb3470..569f71d40 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"מצומצם"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"מחמיר"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"מחמיר מאוד"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"הצעות המילה הבאה"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"השתמש במילה הקודמת כדי לשפר את ההצעות"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"חיזוי המילה הבאה"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"השתמש במילה הקודמת גם עבור חיזוי"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : נשמרה"</string> <string name="label_go_key" msgid="1635148082137219148">"בצע"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"עיצוב מקלדת"</string> <string name="subtype_en_GB" msgid="88170601942311355">"אנגלית (בריטניה)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"אנגלית (ארה\"ב)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"אין שפה (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"מצב מחקר שימושיות"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"הגדרות משך רטט בלחיצה על מקש"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"הגדרות עוצמת קול בלחיצה על מקש"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 703dca7e3..8c20b46ad 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"中"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"強"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"最も強い"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"次の入力候補"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"直前の単語から入力候補を予測します"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"次の入力候補を予測"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"前の語句も予測に使用"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:保存しました"</string> <string name="label_go_key" msgid="1635148082137219148">"実行"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"キーボードのテーマ"</string> <string name="subtype_en_GB" msgid="88170601942311355">"英語(英国)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"英語(米国)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"言語設定なし(QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"使いやすさの研究モード"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"キー操作バイブの振動時間の設定"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"キー操作音の音量設定"</string> diff --git a/java/res/values-ky/donottranslate-more-keys.xml b/java/res/values-ky/donottranslate-more-keys.xml deleted file mode 100644 index fd90248b2..000000000 --- a/java/res/values-ky/donottranslate-more-keys.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA --> - <string name="keylabel_for_east_slavic_row1_9">щ</string> - <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU --> - <string name="keylabel_for_east_slavic_row2_1">ы</string> - <!-- U+0438: "и" CYRILLIC SMALL LETTER I --> - <string name="keylabel_for_east_slavic_row3_5">и</string> - <!-- U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U --> - <string name="more_keys_for_cyrillic_u">ү</string> - <!-- U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER --> - <string name="more_keys_for_cyrillic_en">ң</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_ha">ъ</string> - <!-- U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O --> - <string name="more_keys_for_cyrillic_o">ө</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_soft_sign">ъ</string> -</resources> diff --git a/java/res/values-ky/strings.xml b/java/res/values-ky/strings.xml new file mode 100644 index 000000000..85925257c --- /dev/null +++ b/java/res/values-ky/strings.xml @@ -0,0 +1,221 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for english_ime_name (7252517407088836577) --> + <skip /> + <!-- no translation found for aosp_android_keyboard_ime_name (7877134937939182296) --> + <skip /> + <!-- no translation found for english_ime_settings (6661589557206947774) --> + <skip /> + <!-- no translation found for english_ime_input_options (3909945612939668554) --> + <skip /> + <!-- no translation found for spell_checker_service_name (7338064335159755926) --> + <skip /> + <!-- no translation found for aosp_spell_checker_service_name (6985142605330377819) --> + <skip /> + <!-- no translation found for android_spell_checker_settings (5822324635435443689) --> + <skip /> + <!-- no translation found for use_contacts_for_spellchecking_option_title (5374120998125353898) --> + <skip /> + <!-- no translation found for use_contacts_for_spellchecking_option_summary (8754413382543307713) --> + <skip /> + <!-- no translation found for vibrate_on_keypress (5258079494276955460) --> + <skip /> + <!-- no translation found for sound_on_keypress (6093592297198243644) --> + <skip /> + <!-- no translation found for popup_on_keypress (123894815723512944) --> + <skip /> + <!-- no translation found for general_category (1859088467017573195) --> + <skip /> + <!-- no translation found for correction_category (2236750915056607613) --> + <skip /> + <!-- no translation found for misc_category (6894192814868233453) --> + <skip /> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (4487980456152830271) --> + <skip /> + <!-- no translation found for include_other_imes_in_language_switch_list (4533689960308565519) --> + <skip /> + <!-- no translation found for include_other_imes_in_language_switch_list_summary (840637129103317635) --> + <skip /> + <!-- no translation found for suppress_language_switch_key (8003788410354806368) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> + <!-- no translation found for enable_span_insert (7204653105667167620) --> + <skip /> + <!-- no translation found for enable_span_insert_summary (2947317657871394467) --> + <skip /> + <!-- no translation found for auto_cap (1719746674854628252) --> + <skip /> + <!-- no translation found for configure_dictionaries_title (4238652338556902049) --> + <skip /> + <!-- no translation found for main_dictionary (4798763781818361168) --> + <skip /> + <!-- no translation found for prefs_show_suggestions (8026799663445531637) --> + <skip /> + <!-- no translation found for prefs_show_suggestions_summary (1583132279498502825) --> + <skip /> + <!-- no translation found for prefs_suggestion_visibility_show_name (3219916594067551303) --> + <skip /> + <!-- no translation found for prefs_suggestion_visibility_show_only_portrait_name (3551821800439659812) --> + <skip /> + <!-- no translation found for prefs_suggestion_visibility_hide_name (6309143926422234673) --> + <skip /> + <!-- no translation found for auto_correction (4979925752001319458) --> + <skip /> + <!-- no translation found for auto_correction_summary (5625751551134658006) --> + <skip /> + <!-- no translation found for auto_correction_threshold_mode_off (8470882665417944026) --> + <skip /> + <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) --> + <skip /> + <!-- no translation found for auto_correction_threshold_mode_aggeressive (3524029103734923819) --> + <skip /> + <!-- no translation found for auto_correction_threshold_mode_very_aggeressive (3386782235540547678) --> + <skip /> + <!-- no translation found for bigram_suggestion (8169311444438922902) --> + <skip /> + <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> + <skip /> + <!-- no translation found for bigram_prediction (3216364899483135294) --> + <skip /> + <!-- no translation found for bigram_prediction_summary (1747261921174300098) --> + <skip /> + <!-- no translation found for added_word (8993883354622484372) --> + <skip /> + <string name="label_go_key" msgid="1635148082137219148">"Баруу"</string> + <string name="label_next_key" msgid="362972844525672568">"Кийин"</string> + <string name="label_previous_key" msgid="1211868118071386787">"Мурун"</string> + <string name="label_done_key" msgid="2441578748772529288">"Даяр"</string> + <string name="label_send_key" msgid="2815056534433717444">"Жибер"</string> + <string name="label_to_alpha_key" msgid="4793983863798817523">"АБВ"</string> + <!-- no translation found for label_to_symbol_key (8516904117128967293) --> + <skip /> + <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) --> + <skip /> + <!-- no translation found for label_pause_key (181098308428035340) --> + <skip /> + <!-- no translation found for label_wait_key (6402152600878093134) --> + <skip /> + <!-- no translation found for spoken_use_headphones (896961781287283493) --> + <skip /> + <!-- no translation found for spoken_current_text_is (2485723011272583845) --> + <skip /> + <!-- no translation found for spoken_no_text_entered (7479685225597344496) --> + <skip /> + <!-- no translation found for spoken_description_unknown (3197434010402179157) --> + <skip /> + <!-- no translation found for spoken_description_shift (244197883292549308) --> + <skip /> + <!-- no translation found for spoken_description_shift_shifted (1681877323344195035) --> + <skip /> + <!-- no translation found for spoken_description_caps_lock (3276478269526304432) --> + <skip /> + <!-- no translation found for spoken_description_delete (8740376944276199801) --> + <skip /> + <!-- no translation found for spoken_description_to_symbol (5486340107500448969) --> + <skip /> + <!-- no translation found for spoken_description_to_alpha (23129338819771807) --> + <skip /> + <!-- no translation found for spoken_description_to_numeric (591752092685161732) --> + <skip /> + <!-- no translation found for spoken_description_settings (4627462689603838099) --> + <skip /> + <!-- no translation found for spoken_description_tab (2667716002663482248) --> + <skip /> + <!-- no translation found for spoken_description_space (2582521050049860859) --> + <skip /> + <!-- no translation found for spoken_description_mic (615536748882611950) --> + <skip /> + <!-- no translation found for spoken_description_smiley (2256309826200113918) --> + <skip /> + <!-- no translation found for spoken_description_return (8178083177238315647) --> + <skip /> + <!-- no translation found for spoken_description_dot (40711082435231673) --> + <skip /> + <!-- no translation found for spoken_description_shiftmode_on (5700440798609574589) --> + <skip /> + <!-- no translation found for spoken_description_shiftmode_locked (593175803181701830) --> + <skip /> + <!-- no translation found for spoken_description_shiftmode_off (657219998449174808) --> + <skip /> + <!-- no translation found for spoken_description_mode_symbol (7183343879909747642) --> + <skip /> + <!-- no translation found for spoken_description_mode_alpha (3528307674390156956) --> + <skip /> + <!-- no translation found for spoken_description_mode_phone (6520207943132026264) --> + <skip /> + <!-- no translation found for spoken_description_mode_phone_shift (5499629753962641227) --> + <skip /> + <!-- no translation found for voice_input (3583258583521397548) --> + <skip /> + <!-- no translation found for voice_input_modes_main_keyboard (3360660341121083174) --> + <skip /> + <!-- no translation found for voice_input_modes_symbols_keyboard (7203213240786084067) --> + <skip /> + <!-- no translation found for voice_input_modes_off (3745699748218082014) --> + <skip /> + <!-- no translation found for voice_input_modes_summary_main_keyboard (6586544292900314339) --> + <skip /> + <!-- no translation found for voice_input_modes_summary_symbols_keyboard (5233725927281932391) --> + <skip /> + <!-- no translation found for voice_input_modes_summary_off (63875609591897607) --> + <skip /> + <!-- no translation found for configure_input_method (373356270290742459) --> + <skip /> + <!-- no translation found for language_selection_title (1651299598555326750) --> + <skip /> + <!-- no translation found for select_language (3693815588777926848) --> + <skip /> + <!-- no translation found for hint_add_to_dictionary (573678656946085380) --> + <skip /> + <!-- no translation found for has_dictionary (6071847973466625007) --> + <skip /> + <!-- no translation found for prefs_enable_log (6620424505072963557) --> + <skip /> + <!-- no translation found for prefs_description_log (5827825607258246003) --> + <skip /> + <!-- no translation found for keyboard_layout (8451164783510487501) --> + <skip /> + <!-- no translation found for subtype_en_GB (88170601942311355) --> + <skip /> + <!-- no translation found for subtype_en_US (6160452336634534239) --> + <skip /> + <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> + <skip /> + <!-- no translation found for prefs_usability_study_mode (1261130555134595254) --> + <skip /> + <!-- no translation found for prefs_keypress_vibration_duration_settings (1829950405285211668) --> + <skip /> + <!-- no translation found for prefs_keypress_sound_volume_settings (5875933757082305040) --> + <skip /> +</resources> diff --git a/java/res/values-lt/donottranslate-more-keys.xml b/java/res/values-lt/donottranslate-more-keys.xml deleted file mode 100644 index 1491d954e..000000000 --- a/java/res/values-lt/donottranslate-more-keys.xml +++ /dev/null @@ -1,107 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E6: "æ" LATIN SMALL LETTER AE --> - <string name="more_keys_for_a">ą,ä,ā,à,á,â,ã,å,æ</string> - <!-- U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+011B: "ě" LATIN SMALL LETTER E WITH CARON --> - <string name="more_keys_for_e">ė,ę,ē,è,é,ê,ë,ě</string> - <!-- U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+0131: "ı" LATIN SMALL LETTER DOTLESS I --> - <string name="more_keys_for_i">į,ī,ì,í,î,ï,ı</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+0153: "œ" LATIN SMALL LIGATURE OE - U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_o">ö,õ,ò,ó,ô,œ,ő,ø</string> - <!-- U+016B: "ū" LATIN SMALL LETTER U WITH MACRON - U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE - U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <string name="more_keys_for_u">ū,ų,ü,ū,ù,ú,û,ů,ű</string> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA --> - <string name="more_keys_for_s">š,ß,ś,ş</string> - <!-- U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA - U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ņ,ñ,ń,ń</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">č,ç,ć</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON --> - <string name="more_keys_for_d">ď</string> - <!-- U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA - U+0159: "ř" LATIN SMALL LETTER R WITH CARON - U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE --> - <string name="more_keys_for_r">ŗ,ř,ŕ</string> - <!-- U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA - U+0165: "ť" LATIN SMALL LETTER T WITH CARON --> - <string name="more_keys_for_t">ţ,ť</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE --> - <string name="more_keys_for_z">ž,ż,ź</string> - <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA --> - <string name="more_keys_for_k">ķ</string> - <!-- U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA - U+0142: "ł" LATIN SMALL LETTER L WITH STROKE - U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE - U+013E: "ľ" LATIN SMALL LETTER L WITH CARON --> - <string name="more_keys_for_l">ļ,ł,ĺ,ľ</string> - <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA - U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE --> - <string name="more_keys_for_g">ģ,ğ</string> -</resources> diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index aa8c1b730..b08d059f0 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Vidutinis"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Atkaklus"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Labai agresyviai"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Kito žodžio pasiūlymai"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Naudoti ankstesnį žodį pasiūlymams patobulinti"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Kito žodžio numatymas"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Numatant naudoti ir ankstesnį žodį"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: išsaugota"</string> <string name="label_go_key" msgid="1635148082137219148">"Pradėti"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Klaviatūros tema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Anglų k. (JK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Anglų k. (JAV)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nėra kalbos (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tinkamumo tyrimo režimas"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Vibracijos paspaudus mygtuką trukmės nustatymai"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Garso paspaudus mygtuką garsumo nustatymai"</string> diff --git a/java/res/values-lv/donottranslate-more-keys.xml b/java/res/values-lv/donottranslate-more-keys.xml deleted file mode 100644 index d0a44480a..000000000 --- a/java/res/values-lv/donottranslate-more-keys.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E6: "æ" LATIN SMALL LETTER AE - U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK --> - <string name="more_keys_for_a">ā,à,á,â,ã,ä,å,æ,ą</string> - <!-- U+0113: "ē" LATIN SMALL LETTER E WITH MACRON - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+011B: "ě" LATIN SMALL LETTER E WITH CARON --> - <string name="more_keys_for_e">ē,ė,è,é,ê,ë,ę,ě</string> - <!-- U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+0131: "ı" LATIN SMALL LETTER DOTLESS I --> - <string name="more_keys_for_i">ī,į,ì,í,î,ï,ı</string> - <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+0153: "œ" LATIN SMALL LIGATURE OE - U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_o">ò,ó,ô,õ,ö,œ,ő,ø</string> - <!-- U+016B: "ū" LATIN SMALL LETTER U WITH MACRON - U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE - U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <string name="more_keys_for_u">ū,ų,ù,ú,û,ü,ů,ű</string> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA --> - <string name="more_keys_for_s">š,ß,ś,ş</string> - <!-- U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA - U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ņ,ñ,ń,ń</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">č,ç,ć</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON --> - <string name="more_keys_for_d">ď</string> - <!-- U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA - U+0159: "ř" LATIN SMALL LETTER R WITH CARON - U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE --> - <string name="more_keys_for_r">ŗ,ř,ŕ</string> - <!-- U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA - U+0165: "ť" LATIN SMALL LETTER T WITH CARON --> - <string name="more_keys_for_t">ţ,ť</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE --> - <string name="more_keys_for_z">ž,ż,ź</string> - <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA --> - <string name="more_keys_for_k">ķ</string> - <!-- U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA - U+0142: "ł" LATIN SMALL LETTER L WITH STROKE - U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE - U+013E: "ľ" LATIN SMALL LETTER L WITH CARON --> - <string name="more_keys_for_l">ļ,ł,ĺ,ľ</string> - <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA - U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE --> - <string name="more_keys_for_g">ģ,ğ</string> -</resources> diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index bc6a7be9d..c8023404f 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mērena"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresīva"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Ļoti radikāla"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Nākamā vārda ieteikumi"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Ieteikumu uzlabošanai izmantot iepriekšējo vārdu"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Nākamā vārda prognozēšana"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Izmantot iepriekšējo vārdu arī prognozēm"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: saglabāts"</string> <string name="label_go_key" msgid="1635148082137219148">"Sākt"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tastatūras motīvs"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Angļu valoda (Lielbritānija)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Angļu valoda (ASV)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nav valodas (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Lietojamības izpētes režīms"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Taustiņu nospiešanas vibrācijas ilguma iestatījumi"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Taustiņu nospiešanas skaņas skaļuma iestatījumi"</string> diff --git a/java/res/values-mk/donottranslate-more-keys.xml b/java/res/values-mk/donottranslate-more-keys.xml deleted file mode 100644 index d0cccf61b..000000000 --- a/java/res/values-mk/donottranslate-more-keys.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0455: "ѕ" CYRILLIC SMALL LETTER DZE --> - <string name="keylabel_for_south_slavic_row1_6">ѕ</string> - <!-- U+045C: "ќ" CYRILLIC SMALL LETTER KJE --> - <string name="keylabel_for_south_slavic_row2_11">ќ</string> - <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE --> - <string name="keylabel_for_south_slavic_row3_1">з</string> - <!-- U+0453: "ѓ" CYRILLIC SMALL LETTER GJE --> - <string name="keylabel_for_south_slavic_row3_8">ѓ</string> - <!-- U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE --> - <string name="more_keys_for_cyrillic_ie">ѐ</string> - <!-- U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE --> - <string name="more_keys_for_cyrillic_i">ѝ</string> - <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- <string name="more_keys_for_double_quote">!fixedColumnOrder!6,„,“,”,‟,«,»</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!5,„,“,”,«,»</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> --> - <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!5,„,“,”,«,»,‘,’,‚,‛</string> -</resources> diff --git a/java/res/values-nb/donottranslate-more-keys.xml b/java/res/values-nb/donottranslate-more-keys.xml deleted file mode 100644 index 49e6d5faf..000000000 --- a/java/res/values-nb/donottranslate-more-keys.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">à,ä,á,â,ã,ā</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,è,ê,ë,ę,ė,ē</string> - <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ô,ò,ó,ö,õ,œ,ō</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ü,û,ù,ú,ū</string> - <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE --> - <string name="keylabel_for_nordic_row1_11">å</string> - <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="keylabel_for_nordic_row2_10">ø</string> - <!-- U+00E6: "æ" LATIN SMALL LETTER AE --> - <string name="keylabel_for_nordic_row2_11">æ</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS --> - <string name="more_keys_for_nordic_row2_10">ö</string> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS --> - <string name="more_keys_for_nordic_row2_11">ä</string> -</resources> diff --git a/java/res/values-nl/donottranslate-more-keys.xml b/java/res/values-nl/donottranslate-more-keys.xml deleted file mode 100644 index 73768aff2..000000000 --- a/java/res/values-nl/donottranslate-more-keys.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">á,ä,â,à,æ,ã,å,ā</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">é,ë,ê,è,ę,ė,ē</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+0133: "ij" LATIN SMALL LIGATURE IJ --> - <string name="more_keys_for_i">í,ï,ì,î,į,ī,ij</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,û,ù,ū</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ñ,ń</string> - <!-- U+0133: "ij" LATIN SMALL LIGATURE IJ --> - <string name="more_keys_for_y">ij</string> -</resources> diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index ad59c2f95..7ba51bc7e 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Normaal"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressief"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Zeer agressief"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Volgende woordsuggesties"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Vorig woord gebruiken om suggesties te verbeteren"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Volgende woordvoorspelling"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Het voorgaande woord ook voor voorspelling gebruiken"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: opgeslagen"</string> <string name="label_go_key" msgid="1635148082137219148">"Start"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Toetsenbordthema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engels (GB)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Geen taal (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modus voor gebruiksvriendelijkheidsonderzoek"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Instellingen voor trillingsduur bij druk op een toets"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Instellingen voor geluidsvolume bij druk op een toets"</string> diff --git a/java/res/values-pl/donottranslate-more-keys.xml b/java/res/values-pl/donottranslate-more-keys.xml deleted file mode 100644 index 0f8a59bd6..000000000 --- a/java/res/values-pl/donottranslate-more-keys.xml +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">ą,á,à,â,ä,æ,ã,å,ā</string> - <!-- U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON --> - <string name="more_keys_for_e">ę,è,é,ê,ë,ė,ē</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string> - <!-- U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">ś,ß,š</string> - <!-- U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE - U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE --> - <string name="more_keys_for_n">ń,ñ</string> - <!-- U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+010D: "č" LATIN SMALL LETTER C WITH CARON --> - <string name="more_keys_for_c">ć,ç,č</string> - <!-- U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE - U+017E: "ž" LATIN SMALL LETTER Z WITH CARON --> - <string name="more_keys_for_z">ż,ź,ž</string> - <!-- U+0142: "ł" LATIN SMALL LETTER L WITH STROKE --> - <string name="more_keys_for_l">ł</string> -</resources> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index 3440c5c0c..49f751813 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Umiarkowana"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresywna"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Bardzo agresywna"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Sugestie kolejnych słów"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Używaj poprzedniego wyrazu, by polepszyć sugestie"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Przewidywanie następnego wyrazu"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Przewiduj również na podstawie poprzedniego słowa"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Zapisano"</string> <string name="label_go_key" msgid="1635148082137219148">"OK"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Motyw klawiatury"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Angielska (Wielka Brytania)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Angielska (Stany Zjednoczone)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Brak języka (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tryb badania przydatności"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Czas trwania wibracji przy naciśnięciu"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Głośność dźwięku przy naciśnięciu"</string> diff --git a/java/res/values-pt/donottranslate-more-keys.xml b/java/res/values-pt/donottranslate-more-keys.xml deleted file mode 100644 index 0c9065f27..000000000 --- a/java/res/values-pt/donottranslate-more-keys.xml +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E6: "æ" LATIN SMALL LETTER AE - U+00AA: "ª" FEMININE ORDINAL INDICATOR --> - <string name="more_keys_for_a">á,ã,à,â,ä,å,æ,ª</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS --> - <string name="more_keys_for_e">é,ê,è,ę,ė,ē,ë</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">í,î,ì,ï,į,ī</string> - <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+00BA: "º" MASCULINE ORDINAL INDICATOR --> - <string name="more_keys_for_o">ó,õ,ô,ò,ö,œ,ø,ō,º</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ú,ü,ù,û,ū</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">ç,č,ć</string> -</resources> diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index 3fe58a808..196988845 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderado"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressivo"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muito agressivo"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Sugestões para a palavra seguinte"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Usar palavra anterior para melhorar as sugestões"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Previsão da palavra seguinte"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Use também a palavra anterior para prever"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Salvo"</string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Inglês (Reino Unido)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Inglês (EUA)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nenhum idioma (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modo de estudo de utilização"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Configurações de duração da vibração ao tocar a tecla"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Configurações do volume ao tocar a tecla"</string> diff --git a/java/res/values-rm/donottranslate-more-keys.xml b/java/res/values-rm/donottranslate-more-keys.xml deleted file mode 100644 index aa0d7f817..000000000 --- a/java/res/values-rm/donottranslate-more-keys.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_o">ò,ó,ö,ô,õ,œ,ø</string> -</resources> diff --git a/java/res/values-ro/donottranslate-more-keys.xml b/java/res/values-ro/donottranslate-more-keys.xml deleted file mode 100644 index 44613cf85..000000000 --- a/java/res/values-ro/donottranslate-more-keys.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+0103: "ă" LATIN SMALL LETTER A WITH BREVE - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E6: "æ" LATIN SMALL LETTER AE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON --> - <string name="more_keys_for_a">â,ã,ă,à,á,ä,æ,å,ā</string> - <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">î,ï,ì,í,į,ī</string> - <!-- U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">ș,ß,ś,š</string> - <!-- U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW --> - <string name="more_keys_for_t">ț</string> -</resources> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index dd830ce6d..80a65585d 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderată"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivă"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Foarte agresiv"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Sugestii pentru cuvântul următor"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Utilizaţi cuvântul anterior pentru a îmbunătăţi sugestiile"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Predicţia cuvântului următor"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Se utilizează şi cuvântul precedent pentru predicţii"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: salvat"</string> <string name="label_go_key" msgid="1635148082137219148">"OK"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Temă pentru tastatură"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engleză (Marea Britanie)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engleză (S.U.A.)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nicio limbă (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modul Studiu privind utilizarea"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Setări pentru durata vibrării la apăsarea tastei"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Setări pentru volumul sunetului la apăsarea tastei"</string> diff --git a/java/res/values-ru/donottranslate-more-keys.xml b/java/res/values-ru/donottranslate-more-keys.xml deleted file mode 100644 index 0bb57074c..000000000 --- a/java/res/values-ru/donottranslate-more-keys.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA --> - <string name="keylabel_for_east_slavic_row1_9">щ</string> - <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU --> - <string name="keylabel_for_east_slavic_row2_1">ы</string> - <!-- U+0438: "и" CYRILLIC SMALL LETTER I --> - <string name="keylabel_for_east_slavic_row3_5">и</string> - <!-- U+0451: "ё" CYRILLIC SMALL LETTER IO --> - <string name="more_keys_for_cyrillic_ye">ё</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_ha">ъ</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_soft_sign">ъ</string> -</resources> diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index 13d3ae14a..4910df04a 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умеренное"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Активное"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Очень активно"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Предложения для следующего слова"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Использовать предыдущее слово, чтобы улучшить предложения"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Подсказка для следующего слова"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Использовать предыдущее слово для прогнозирования"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: сохранено"</string> <string name="label_go_key" msgid="1635148082137219148">"Поиск"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Тема клавиатуры"</string> <string name="subtype_en_GB" msgid="88170601942311355">"английский (Великобритания)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"английский (США)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Нет языка (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Режим проверки удобства использования"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Настройки вибросигнала при нажатии клавиш"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Настройки громкости звука при нажатии клавиш"</string> diff --git a/java/res/values-sk/donottranslate-more-keys.xml b/java/res/values-sk/donottranslate-more-keys.xml deleted file mode 100644 index f6e1e8d72..000000000 --- a/java/res/values-sk/donottranslate-more-keys.xml +++ /dev/null @@ -1,107 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E6: "æ" LATIN SMALL LETTER AE - U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK --> - <string name="more_keys_for_a">á,ä,ā,à,â,ã,å,æ,ą</string> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+011B: "ě" LATIN SMALL LETTER E WITH CARON - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK --> - <string name="more_keys_for_e">é,ě,ē,ė,è,ê,ë,ę</string> - <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+0131: "ı" LATIN SMALL LETTER DOTLESS I --> - <string name="more_keys_for_i">í,ī,į,ì,î,ï,ı</string> - <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_o">ô,ó,ö,ò,õ,œ,ő,ø</string> - <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON - U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <string name="more_keys_for_u">ú,ů,ü,ū,ų,ù,û,ű</string> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA --> - <string name="more_keys_for_s">š,ß,ś,ş</string> - <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON - U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA - U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE --> - <string name="more_keys_for_n">ň,ņ,ñ,ń,ń</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">č,ç,ć</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS --> - <string name="more_keys_for_y">ý,ÿ</string> - <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON --> - <string name="more_keys_for_d">ď</string> - <!-- U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE - U+0159: "ř" LATIN SMALL LETTER R WITH CARON - U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA --> - <string name="more_keys_for_r">ŕ,ř,ŗ</string> - <!-- U+0165: "ť" LATIN SMALL LETTER T WITH CARON - U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA --> - <string name="more_keys_for_t">ť,ţ</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE - U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE --> - <string name="more_keys_for_z">ž,ż,ź</string> - <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA --> - <string name="more_keys_for_k">ķ</string> - <!-- U+013E: "ľ" LATIN SMALL LETTER L WITH CARON - U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE - U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA - U+0142: "ł" LATIN SMALL LETTER L WITH STROKE --> - <string name="more_keys_for_l">ľ,ĺ,ļ,ł</string> - <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA - U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE --> - <string name="more_keys_for_g">ģ,ğ</string> -</resources> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index a8f108e2e..57bc3a0f4 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mierne"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresívne"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Veľmi agresívna"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Návrhy ďalšieho slova"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Na zlepšenie návrhov použiť predchádzajúce slovo"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Odhad ďalšieho slova"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Použiť predchádzajúce slovo aj pre predpoveď"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Uložené"</string> <string name="label_go_key" msgid="1635148082137219148">"Hľadať"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Motív klávesnice"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Anglická klávesnica (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Anglická klávesnica (US)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Žiadny jazyk (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Režim štúdie použiteľnosti"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Nastavenia trvania vibrovania pri stlačení klávesu"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Nastavenia hlasitosti zvuku pri stlačení klávesu"</string> diff --git a/java/res/values-sl/donottranslate-more-keys.xml b/java/res/values-sl/donottranslate-more-keys.xml deleted file mode 100644 index ccff2ac29..000000000 --- a/java/res/values-sl/donottranslate-more-keys.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">š</string> - <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE --> - <string name="more_keys_for_c">č,ć</string> - <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE --> - <string name="more_keys_for_d">đ</string> - <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON --> - <string name="more_keys_for_z">ž</string> -</resources> diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index 9dc484424..890877fb3 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Zmerno"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Strogo"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Zelo strogo"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Predlogi naslednje besede"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Predloge izboljšaj s prejšnjo besedo"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Predvidevanje naslednje besede"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Uporabi prejšnjo besedo tudi za predvidevanje"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: shranjeno"</string> <string name="label_go_key" msgid="1635148082137219148">"Pojdi"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string> <string name="subtype_en_GB" msgid="88170601942311355">"angleščina (Združeno kraljestvo)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"angleščina (ZDA)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ni jezika (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Način za preučevanje uporabnosti"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Nastavitve za trajanje vibriranja ob pritisku tipke"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Nastavitve za glasnost zvoka ob pritisku tipke"</string> diff --git a/java/res/values-sr/donottranslate-more-keys.xml b/java/res/values-sr/donottranslate-more-keys.xml deleted file mode 100644 index e85d3d7a2..000000000 --- a/java/res/values-sr/donottranslate-more-keys.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE --> - <string name="keylabel_for_south_slavic_row1_6">з</string> - <!-- U+045B: "ћ" CYRILLIC SMALL LETTER TSHE --> - <string name="keylabel_for_south_slavic_row2_11">ћ</string> - <!-- U+0455: "ѕ" CYRILLIC SMALL LETTER DZE --> - <string name="keylabel_for_south_slavic_row3_1">ѕ</string> - <!-- U+0452: "ђ" CYRILLIC SMALL LETTER DJE --> - <string name="keylabel_for_south_slavic_row3_8">ђ</string> - <!-- U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE --> - <string name="more_keys_for_cyrillic_ie">ѐ</string> - <!-- U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE --> - <string name="more_keys_for_cyrillic_i">ѝ</string> - <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- <string name="more_keys_for_double_quote">!fixedColumnOrder!6,„,“,”,‟,«,»</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!5,„,“,”,«,»</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> --> - <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!5,„,“,”,«,»,‘,’,‚,‛</string> -</resources> diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index b70f285c2..f21abd272 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умерено"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агресивно"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Веома агресивно"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Предлози за следећу реч"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Користи претходну реч за побољшање предлога"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Предвиђање следеће речи"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Користи претходну реч и за предвиђање"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Сачувано"</string> <string name="label_go_key" msgid="1635148082137219148">"Иди"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Тема тастатуре"</string> <string name="subtype_en_GB" msgid="88170601942311355">"енглески (УК)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"енглески (САД)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Нема језика (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Режим за студију могућности коришћења"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Подешавања трајања вибрације при притиску на тастере"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Подешавања јачине звука при притиску на тастере"</string> diff --git a/java/res/values-sv/donottranslate-more-keys.xml b/java/res/values-sv/donottranslate-more-keys.xml deleted file mode 100644 index d479191f4..000000000 --- a/java/res/values-sv/donottranslate-more-keys.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK --> - <string name="more_keys_for_e">é,è,ê,ë,ę</string> - <!-- U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">œ,ô,ò,ó,õ,ō</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ü,û,ù,ú,ū</string> - <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">ß,ś,š</string> - <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE --> - <string name="keylabel_for_nordic_row1_11">å</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS --> - <string name="keylabel_for_nordic_row2_10">ö</string> - <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS --> - <string name="keylabel_for_nordic_row2_11">ä</string> - <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE --> - <string name="more_keys_for_nordic_row2_10">ø</string> - <!-- U+00E6: "æ" LATIN SMALL LETTER AE --> - <string name="more_keys_for_nordic_row2_11">æ</string> -</resources> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index 32bca0257..918fa42c1 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Måttlig"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressiv"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Mycket aggressivt"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Föreslå nästa ord"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Förbättra förslagen med föregående ord"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Förutspå nästa ord"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Använd även föregående ord för att ge förslag"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: sparat"</string> <string name="label_go_key" msgid="1635148082137219148">"Kör"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tangentbordstema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engelskt (brittiskt)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engelskt (amerikanskt)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Inget språk (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Läge för studie av användbarhet"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Inställningar för vibrationslängd vid knapptryck"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Volyminställningar för knappljud"</string> diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml index 1a835f1af..39ecc02f7 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Ya wastani"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Ya hima"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Changamfu zaidi"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Mapendekezo ya neno lifuatalo"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Tumia neno la awali ili kuboresha mapendekezo"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Utabiri wa neno lifuatalo"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Tumia neno la awali pia kwa udadisi"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Imehifadhiwa"</string> <string name="label_go_key" msgid="1635148082137219148">"Nenda"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Maandhari ya kibodi"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Kiingereza cha (Uingereza)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Kiingereza cha (Marekani)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Hakuna lugha (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modi ya uchunguzi wa utumizi"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Bonyeza mipangilio ya kipindi cha mtetemo"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Bonyeza mipangilio ya nguvu za sauti"</string> diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index 3595796de..87838ad36 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -71,7 +71,7 @@ <string name="label_previous_key" msgid="1211868118071386787">"ก่อนหน้า"</string> <string name="label_done_key" msgid="2441578748772529288">"เสร็จสิ้น"</string> <string name="label_send_key" msgid="2815056534433717444">"ส่ง"</string> - <string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string> + <string name="label_to_alpha_key" msgid="4793983863798817523">"กขค"</string> <string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string> <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string> <string name="label_pause_key" msgid="181098308428035340">"หยุดชั่วคราว"</string> diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index bf6712c19..2bf661f3d 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Modest"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresibo"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Napaka-agresibo"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Mga paghuhula sa susunod na salita"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Gamitin ang naunang salita para mapahusay ang mga suhestiyon"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Paghuhula sa susunod na salita"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Gamitin ang nakaraang salita para din sa hula"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Na-save"</string> <string name="label_go_key" msgid="1635148082137219148">"Punta"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema ng keyboard"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Ingles (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Ingles (Estados Unidos)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Walang wika (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Study mode ng pagiging kapaki-pakinabang"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Mga setting ng tagal ng vibration ng keypress"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Mga setting ng volume ng tunog ng keypress"</string> diff --git a/java/res/values-tr/donottranslate-more-keys.xml b/java/res/values-tr/donottranslate-more-keys.xml deleted file mode 100644 index 1161811d4..000000000 --- a/java/res/values-tr/donottranslate-more-keys.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX --> - <string name="more_keys_for_a">â</string> - <!-- U+0131: "ı" LATIN SMALL LETTER DOTLESS I - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON --> - <string name="more_keys_for_i">ı,î,ï,ì,í,į,ī</string> - <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON --> - <string name="more_keys_for_o">ö,ô,œ,ò,ó,õ,ø,ō</string> - <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON --> - <string name="more_keys_for_u">ü,û,ù,ú,ū</string> - <!-- U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA - U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+0161: "š" LATIN SMALL LETTER S WITH CARON --> - <string name="more_keys_for_s">ş,ß,ś,š</string> - <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE --> - <string name="more_keys_for_g">ğ</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+010D: "č" LATIN SMALL LETTER C WITH CARON --> - <string name="more_keys_for_c">ç,ć,č</string> -</resources> diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index 5e79d8267..abca6324c 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Ölçülü"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresif"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Çok geniş ölçekte"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Sonraki kelime önerileri"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Önerileri geliştirmek için önceki kelimeyi kullan"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Sonraki kelime tahmini"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Önceki kelimeyi de tahmin için kullan"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kaydedildi"</string> <string name="label_go_key" msgid="1635148082137219148">"Git"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Klavye teması"</string> <string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (BK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"İngilizce (ABD)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Dil yok (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Kullanılabilirlik çalışması modu"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Tuşa basma titreşim süresi ayarları"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Tuşa basma ses düzeyi ayarları"</string> diff --git a/java/res/values-uk/donottranslate-more-keys.xml b/java/res/values-uk/donottranslate-more-keys.xml deleted file mode 100644 index 32397049a..000000000 --- a/java/res/values-uk/donottranslate-more-keys.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA --> - <string name="keylabel_for_east_slavic_row1_9">щ</string> - <!-- U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I --> - <string name="keylabel_for_east_slavic_row2_1">і</string> - <!-- U+0438: "и" CYRILLIC SMALL LETTER I --> - <string name="keylabel_for_east_slavic_row3_5">и</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_ha">ъ</string> - <!-- U+0457: "ї" CYRILLIC SMALL LETTER YI --> - <string name="more_keys_for_east_slavic_row2_1">ї</string> - <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN --> - <string name="more_keys_for_cyrillic_soft_sign">ъ</string> -</resources> diff --git a/java/res/values-vi/donottranslate-more-keys.xml b/java/res/values-vi/donottranslate-more-keys.xml deleted file mode 100644 index 6ef1c6bc5..000000000 --- a/java/res/values-vi/donottranslate-more-keys.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2011, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+1EA3: "ả" LATIN SMALL LETTER A WITH HOOK ABOVE - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+1EA1: "ạ" LATIN SMALL LETTER A WITH DOT BELOW - U+0103: "ă" LATIN SMALL LETTER A WITH BREVE - U+1EB1: "ằ" LATIN SMALL LETTER A WITH BREVE AND GRAVE - U+1EAF: "ắ" LATIN SMALL LETTER A WITH BREVE AND ACUTE - U+1EB3: "ẳ" LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE - U+1EB5: "ẵ" LATIN SMALL LETTER A WITH BREVE AND TILDE - U+1EB7: "ặ" LATIN SMALL LETTER A WITH BREVE AND DOT BELOW - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+1EA7: "ầ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE - U+1EA5: "ấ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE - U+1EA9: "ẩ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE - U+1EAB: "ẫ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE - U+1EAD: "ậ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW --> - <string name="more_keys_for_a">à,á,ả,ã,ạ,ă,ằ,ắ,ẳ,ẵ,ặ,â,ầ,ấ,ẩ,ẫ,ậ</string> - <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+1EBB: "ẻ" LATIN SMALL LETTER E WITH HOOK ABOVE - U+1EBD: "ẽ" LATIN SMALL LETTER E WITH TILDE - U+1EB9: "ẹ" LATIN SMALL LETTER E WITH DOT BELOW - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+1EC1: "ề" LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE - U+1EBF: "ế" LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE - U+1EC3: "ể" LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE - U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE - U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW --> - <string name="more_keys_for_e">è,é,ẻ,ẽ,ẹ,ê,ề,ế,ể,ễ,ệ</string> - <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE - U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE - U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW --> - <string name="more_keys_for_i">ì,í,ỉ,ĩ,ị</string> - <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+1ECF: "ỏ" LATIN SMALL LETTER O WITH HOOK ABOVE - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+1ECD: "ọ" LATIN SMALL LETTER O WITH DOT BELOW - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+1ED3: "ồ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE - U+1ED1: "ố" LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE - U+1ED5: "ổ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE - U+1ED7: "ỗ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE - U+1ED9: "ộ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW - U+01A1: "ơ" LATIN SMALL LETTER O WITH HORN - U+1EDD: "ờ" LATIN SMALL LETTER O WITH HORN AND GRAVE - U+1EDB: "ớ" LATIN SMALL LETTER O WITH HORN AND ACUTE - U+1EDF: "ở" LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE - U+1EE1: "ỡ" LATIN SMALL LETTER O WITH HORN AND TILDE - U+1EE3: "ợ" LATIN SMALL LETTER O WITH HORN AND DOT BELOW --> - <string name="more_keys_for_o">ò,ó,ỏ,õ,ọ,ô,ồ,ố,ổ,ỗ,ộ,ơ,ờ,ớ,ở,ỡ,ợ</string> - <!-- U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+1EE7: "ủ" LATIN SMALL LETTER U WITH HOOK ABOVE - U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE - U+1EE5: "ụ" LATIN SMALL LETTER U WITH DOT BELOW - U+01B0: "ư" LATIN SMALL LETTER U WITH HORN - U+1EEB: "ừ" LATIN SMALL LETTER U WITH HORN AND GRAVE - U+1EE9: "ứ" LATIN SMALL LETTER U WITH HORN AND ACUTE - U+1EED: "ử" LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE - U+1EEF: "ữ" LATIN SMALL LETTER U WITH HORN AND TILDE - U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW --> - <string name="more_keys_for_u">ù,ú,ủ,ũ,ụ,ư,ừ,ứ,ử,ữ,ự</string> - <!-- U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE - U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE - U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE - U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW --> - <string name="more_keys_for_y">ỳ,ý,ỷ,ỹ,ỵ</string> - <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE --> - <string name="more_keys_for_d">đ</string> -</resources> diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 8bdc29ca5..362882e67 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Đơn giản"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Linh hoạt"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Rất linh hoạt"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Đề xuất từ tiếp theo"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Sử dụng từ trước đó để cải tiến đề xuất"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Dự đoán từ tiếp theo"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Cũng sử dụng từ trước đó để dự đoán"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Đã lưu"</string> <string name="label_go_key" msgid="1635148082137219148">"Tìm"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Chủ đề bàn phím"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Tiếng Anh (Anh)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Tiếng Anh (Mỹ)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Không có ngôn ngữ (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Chế độ nghiên cứu tính khả dụng"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Cài đặt thời gian rung khi nhấn phím"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Cài đặt âm lượng khi nhấn phím"</string> diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index 7fa505c8a..73cec6e51 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"小改"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"大改"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"改动极大"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"下一字词建议"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"使用上一字词改进建议"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"下一字词预测"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"结合前一个字词进行预测"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:已保存"</string> <string name="label_go_key" msgid="1635148082137219148">"开始"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"键盘主题"</string> <string name="subtype_en_GB" msgid="88170601942311355">"英语(英国)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"英语(美国)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"无语言(QWERTY 键盘)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"可用性研究模式"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"按键振动持续时间设置"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"按键音量设置"</string> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index 961054855..9691d5965 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -61,12 +61,9 @@ <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Thobekile"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Bukhali"</string> <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Nobudlova kakhulu"</string> - <!-- no translation found for bigram_suggestion (8169311444438922902) --> - <skip /> - <!-- no translation found for bigram_suggestion_summary (6635527607242625713) --> - <skip /> - <!-- no translation found for bigram_prediction (3216364899483135294) --> - <skip /> + <string name="bigram_suggestion" msgid="8169311444438922902">"Iziphakamiso zegama elilandelayo"</string> + <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Sebenzisa igama elandulele ukuthuthukisa okusikiselwayo"</string> + <string name="bigram_prediction" msgid="3216364899483135294">"Ukuqagela kwegama elilandelayo"</string> <string name="bigram_prediction_summary" msgid="1747261921174300098">"Sebenzisa igama langaphambilini ukuze uqagele"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kulondoloziwe"</string> <string name="label_go_key" msgid="1635148082137219148">"Iya"</string> @@ -121,8 +118,7 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Indikimba yekhibhodi"</string> <string name="subtype_en_GB" msgid="88170601942311355">"i-English(UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"i-English (US)"</string> - <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) --> - <skip /> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Akunalimi (QWERTY)"</string> <string name="prefs_usability_study_mode" msgid="1261130555134595254">"Imodi yesitadi yokusebenziseka"</string> <string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Izilungiselelo ze-keypress vibration duraton"</string> <string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Izilungiselelo zevolumu yomsindo wekeypress"</string> diff --git a/java/res/values-zz/donottranslate-more-keys.xml b/java/res/values-zz/donottranslate-more-keys.xml deleted file mode 100644 index eb984a469..000000000 --- a/java/res/values-zz/donottranslate-more-keys.xml +++ /dev/null @@ -1,139 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE - U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE - U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX - U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS - U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE - U+00E6: "æ" LATIN SMALL LETTER AE - U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - U+0103: "ă" LATIN SMALL LETTER A WITH BREVE - U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK - U+00AA: "ª" FEMININE ORDINAL INDICATOR --> - <string name="more_keys_for_a">à,á,â,ã,ä,å,æ,ã,å,ā,ă,ą,ª</string> - <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE - U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE - U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX - U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS - U+0113: "ē" LATIN SMALL LETTER E WITH MACRON - U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE - U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE - U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK - U+011B: "ě" LATIN SMALL LETTER E WITH CARON --> - <string name="more_keys_for_e">è,é,ê,ë,ē,ĕ,ė,ę,ě</string> - <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE - U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE - U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX - U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS - U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE - U+012B: "ī" LATIN SMALL LETTER I WITH MACRON - U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE - U+012F: "į" LATIN SMALL LETTER I WITH OGONEK - U+0131: "ı" LATIN SMALL LETTER DOTLESS I - U+0133: "ij" LATIN SMALL LIGATURE IJ --> - <string name="more_keys_for_i">ì,í,î,ï,ĩ,ī,ĭ,į,ı,ij</string> - <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE - U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE - U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX - U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE - U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS - U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE - U+014D: "ō" LATIN SMALL LETTER O WITH MACRON - U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE - U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE - U+0153: "œ" LATIN SMALL LIGATURE OE - U+00BA: "º" MASCULINE ORDINAL INDICATOR --> - <string name="more_keys_for_o">ò,ó,ô,õ,ö,ø,ō,ŏ,ő,œ,º</string> - <!-- U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE - U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE - U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX - U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS - U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE - U+016B: "ū" LATIN SMALL LETTER U WITH MACRON - U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE - U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE - U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE - U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK --> - <string name="more_keys_for_u">ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų</string> - <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S - U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE - U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX - U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA - U+0161: "š" LATIN SMALL LETTER S WITH CARON - U+017F: "ſ" LATIN SMALL LETTER LONG S --> - <string name="more_keys_for_s">ß,ś,ŝ,ş,š,ſ</string> - <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE - U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA - U+0148: "ň" LATIN SMALL LETTER N WITH CARON - U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE - U+014B: "ŋ" LATIN SMALL LETTER ENG --> - <string name="more_keys_for_n">ñ,ń,ņ,ň,ʼn,ŋ</string> - <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA - U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE - U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX - U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE - U+010D: "č" LATIN SMALL LETTER C WITH CARON --> - <string name="more_keys_for_c">ç,ć,ĉ,ċ,č</string> - <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE - U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX - U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS - U+0133: "ij" LATIN SMALL LIGATURE IJ --> - <string name="more_keys_for_y">ý,ŷ,ÿ,ij</string> - <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON - U+0111: "đ" LATIN SMALL LETTER D WITH STROKE - U+00F0: "ð" LATIN SMALL LETTER ETH --> - <string name="more_keys_for_d">ď,đ,ð</string> - <!-- U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE - U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA - U+0159: "ř" LATIN SMALL LETTER R WITH CARON --> - <string name="more_keys_for_r">ŕ,ŗ,ř</string> - <!-- U+00FE: "þ" LATIN SMALL LETTER THORN - U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA - U+0165: "ť" LATIN SMALL LETTER T WITH CARON - U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE --> - <string name="more_keys_for_t">þ,ţ,ť,ŧ</string> - <!-- U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE - U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE - U+017E: "ž" LATIN SMALL LETTER Z WITH CARON --> - <string name="more_keys_for_z">ź,ż,ž</string> - <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA - U+0138: "ĸ" LATIN SMALL LETTER KRA --> - <string name="more_keys_for_k">ķ,ĸ</string> - <!-- U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE - U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA - U+013E: "ľ" LATIN SMALL LETTER L WITH CARON - U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT - U+0142: "ł" LATIN SMALL LETTER L WITH STROKE --> - <string name="more_keys_for_l">ĺ,ļ,ľ,ŀ,ł</string> - <!-- U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX - U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE - U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE - U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA --> - <string name="more_keys_for_g">ĝ,ğ,ġ,ģ</string> - <!-- U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX --> - <string name="more_keys_for_h">ĥ</string> - <!-- U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX --> - <string name="more_keys_for_j">ĵ</string> - <!-- U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX --> - <string name="more_keys_for_w">ŵ</string> -</resources> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 39d50e348..4ec184334 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -229,10 +229,14 @@ </declare-styleable> <declare-styleable name="Keyboard_Key"> - <!-- The unicode value that this key outputs. --> - <attr name="code" format="integer" /> - <!-- The alternate unicode value that this key outputs while typing. --> - <attr name="altCode" format="integer" /> + <!-- The unicode value that this key outputs. + Code value represented in hexadecimal prefixed with "0x" or code value reference using + "!code/<code_name>" notation. --> + <attr name="code" format="string" /> + <!-- The alternate unicode value that this key outputs while typing. + Code value represented in hexadecimal prefixed with "0x" or code value reference using + "!code/<code_name>" notation. --> + <attr name="altCode" format="string" /> <!-- The keys to display in the more keys keyboard. --> <attr name="moreKeys" format="string" /> <!-- The keys to display in the more keys keyboard in addition to moreKeys. @@ -271,10 +275,11 @@ <flag name="alignLeft" value="0x01" /> <flag name="alignRight" value="0x02" /> <flag name="alignLeftOfCenter" value="0x08" /> - <flag name="largeLetter" value="0x10" /> - <flag name="fontNormal" value="0x20" /> - <flag name="fontMonoSpace" value="0x40" /> + <flag name="fontNormal" value="0x10" /> + <flag name="fontMonoSpace" value="0x20" /> + <flag name="followKeyLargeLetterRatio" value="0x40" /> <flag name="followKeyLetterRatio" value="0x80" /> + <flag name="followKeyLabelRatio" value="0xC0" /> <flag name="followKeyHintLabelRatio" value="0x100" /> <flag name="hasPopupHint" value="0x200" /> <flag name="hasShiftedLetterHint" value="0x400" /> @@ -296,6 +301,7 @@ <flag name="disableAdditionalMoreKeys" value="0x80000000" /> </attr> <!-- The icon to display on the key instead of the label. --> + <!-- TODO: Use string format !icon/name. --> <attr name="keyIcon" format="enum"> <!-- This should be aligned with the KeyboardIconsSet.ICON_* --> <enum name="iconUndefined" value="0" /> @@ -315,11 +321,13 @@ <enum name="iconZwjKey" value="16" /> </attr> <!-- The icon for disabled key --> + <!-- TODO: Use string format !icon/name. --> <attr name="keyIconDisabled" format="enum"> <!-- This should be aligned with the KeyboardIconsSet.ICON_* --> <enum name="iconDisabledShortcutKey" value="12" /> </attr> <!-- The icon to show in the popup preview. --> + <!-- TODO: Use string format !icon/name. --> <attr name="keyIconPreview" format="enum"> <!-- This should be aligned with the KeyboardIconsSet.ICON_* --> <enum name="iconPreviewTabKey" value="13" /> diff --git a/java/res/values/donottranslate-more-keys.xml b/java/res/values/donottranslate-more-keys.xml deleted file mode 100644 index f50dd4f40..000000000 --- a/java/res/values/donottranslate-more-keys.xml +++ /dev/null @@ -1,187 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="more_keys_for_a"></string> - <string name="more_keys_for_e"></string> - <string name="more_keys_for_i"></string> - <string name="more_keys_for_o"></string> - <string name="more_keys_for_u"></string> - <string name="more_keys_for_s"></string> - <string name="more_keys_for_n"></string> - <string name="more_keys_for_c"></string> - <string name="more_keys_for_y"></string> - <string name="more_keys_for_d"></string> - <string name="more_keys_for_r"></string> - <string name="more_keys_for_t"></string> - <string name="more_keys_for_z"></string> - <string name="more_keys_for_k"></string> - <string name="more_keys_for_l"></string> - <string name="more_keys_for_g"></string> - <string name="more_keys_for_v"></string> - <string name="more_keys_for_h"></string> - <string name="more_keys_for_j"></string> - <string name="more_keys_for_w"></string> - <string name="keylabel_for_nordic_row1_11"></string> - <string name="keylabel_for_nordic_row2_10"></string> - <string name="keylabel_for_nordic_row2_11"></string> - <string name="more_keys_for_nordic_row2_10"></string> - <string name="more_keys_for_nordic_row2_11"></string> - <string name="keylabel_for_east_slavic_row1_9"></string> - <string name="keylabel_for_east_slavic_row2_1"></string> - <string name="keylabel_for_east_slavic_row3_5"></string> - <string name="more_keys_for_cyrillic_u"></string> - <string name="more_keys_for_cyrillic_ye"></string> - <string name="more_keys_for_cyrillic_en"></string> - <string name="more_keys_for_cyrillic_ha"></string> - <string name="more_keys_for_east_slavic_row2_1"></string> - <string name="more_keys_for_cyrillic_o"></string> - <string name="more_keys_for_cyrillic_soft_sign"></string> - <string name="keylabel_for_south_slavic_row1_6"></string> - <string name="keylabel_for_south_slavic_row2_11"></string> - <string name="keylabel_for_south_slavic_row3_1"></string> - <string name="keylabel_for_south_slavic_row3_8"></string> - <string name="more_keys_for_cyrillic_ie"></string> - <string name="more_keys_for_cyrillic_i"></string> - <!-- U+00A2: "¢" CENT SIGN - U+00A3: "£" POUND SIGN - U+20AC: "€" EURO SIGN - U+00A5: "¥" YEN SIGN - U+20B1: "₱" PESO SIGN --> - <string name="more_keys_for_currency_dollar">¢,£,€,¥,₱</string> - <string name="more_keys_for_currency_euro">¢,£,$,¥,₱</string> - <string name="more_keys_for_currency_pound">¢,$,€,¥,₱</string> - <string name="more_keys_for_currency_general">¢,$,€,£,¥,₱</string> - <string name="more_keys_for_smiley">"!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ "</string> - <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',#,-,:,!,\\,,\?,\@,&,\\%,+,;,/,(,)"</string> - <string name="keyhintlabel_for_punctuation"></string> - <string name="keylabel_for_popular_domain">".com"</string> - <!-- popular web domains for the locale - most popular, displayed on the keyboard --> - <string name="more_keys_for_popular_domain">"!hasLabels!,.net,.org,.gov,.edu"</string> - <string name="keylabel_for_symbols_1">1</string> - <string name="keylabel_for_symbols_2">2</string> - <string name="keylabel_for_symbols_3">3</string> - <string name="keylabel_for_symbols_4">4</string> - <string name="keylabel_for_symbols_5">5</string> - <string name="keylabel_for_symbols_6">6</string> - <string name="keylabel_for_symbols_7">7</string> - <string name="keylabel_for_symbols_8">8</string> - <string name="keylabel_for_symbols_9">9</string> - <string name="keylabel_for_symbols_0">0</string> - <string name="additional_more_keys_for_symbols_1"></string> - <string name="additional_more_keys_for_symbols_2"></string> - <string name="additional_more_keys_for_symbols_3"></string> - <string name="additional_more_keys_for_symbols_4"></string> - <string name="additional_more_keys_for_symbols_5"></string> - <string name="additional_more_keys_for_symbols_6"></string> - <string name="additional_more_keys_for_symbols_7"></string> - <string name="additional_more_keys_for_symbols_8"></string> - <string name="additional_more_keys_for_symbols_9"></string> - <string name="additional_more_keys_for_symbols_0"></string> - <!-- U+00B9: "¹" SUPERSCRIPT ONE - U+00BD: "½" VULGAR FRACTION ONE HALF - U+2153: "⅓" VULGAR FRACTION ONE THIRD - U+00BC: "¼" VULGAR FRACTION ONE QUARTER - U+215B: "⅛" VULGAR FRACTION ONE EIGHTH --> - <string name="more_keys_for_symbols_1">¹,½,⅓,¼,⅛</string> - <!-- U+00B2: "²" SUPERSCRIPT TWO - U+2154: "⅔" VULGAR FRACTION TWO THIRDS --> - <string name="more_keys_for_symbols_2">²,⅔</string> - <!-- U+00B3: "³" SUPERSCRIPT THREE - U+00BE: "¾" VULGAR FRACTION THREE QUARTERS - U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS --> - <string name="more_keys_for_symbols_3">³,¾,⅜</string> - <!-- U+2074: "⁴" SUPERSCRIPT FOUR --> - <string name="more_keys_for_symbols_4">⁴</string> - <!-- U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS --> - <string name="more_keys_for_symbols_5">⅝</string> - <string name="more_keys_for_symbols_6"></string> - <!-- U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS --> - <string name="more_keys_for_symbols_7">⅞</string> - <string name="more_keys_for_symbols_8"></string> - <string name="more_keys_for_symbols_9"></string> - <!-- U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N - U+2205: "∅" EMPTY SET --> - <string name="more_keys_for_symbols_0">ⁿ,∅</string> - <string name="more_keys_for_am_pm">!fixedColumnOrder!2,!hasLabels!,\@string/label_time_am,\@string/label_time_pm</string> - <string name="settings_as_more_key">\@icon/settingsKey|\@integer/key_settings</string> - <string name="keylabel_for_comma">,</string> - <string name="more_keys_for_comma"></string> - <string name="action_next_as_more_key">!hasLabels!,\@string/label_next_key|\@integer/key_action_next</string> - <string name="action_previous_as_more_key">!hasLabels!,\@string/label_previous_key|\@integer/key_action_previous</string> - <string name="keylabel_for_symbols_question">\?</string> - <string name="keylabel_for_symbols_semicolon">;</string> - <string name="keylabel_for_symbols_percent">%</string> - <!-- U+00BF: "¿" INVERTED QUESTION MARK --> - <string name="more_keys_for_symbols_question">¿</string> - <string name="more_keys_for_symbols_semicolon"></string> - <!-- U+2030: "‰" PER MILLE SIGN --> - <string name="more_keys_for_symbols_percent">‰</string> - <string name="keylabel_for_tablet_comma">,</string> - <string name="keyhintlabel_for_tablet_comma">!</string> - <string name="more_keys_for_tablet_comma">!</string> - <string name="keyhintlabel_for_tablet_period">\?</string> - <string name="more_keys_for_tablet_period">\?</string> - <string name="keylabel_for_apostrophe">\'</string> - <string name="keylabel_for_dash">-</string> - <string name="keyhintlabel_for_apostrophe">\"</string> - <string name="keyhintlabel_for_dash">_</string> - <string name="more_keys_for_apostrophe">\"</string> - <string name="more_keys_for_dash">_</string> - <!-- U+266A: "♪" EIGHTH NOTE - U+2665: "♥" BLACK HEART SUIT - U+2660: "♠" BLACK SPADE SUIT - U+2666: "♦" BLACK DIAMOND SUIT - U+2663: "♣" BLACK CLUB SUIT --> - <string name="more_keys_for_bullet">♪,♥,♠,♦,♣</string> - <!-- U+2020: "†" DAGGER - U+2021: "‡" DOUBLE DAGGER - U+2605: "★" BLACK STAR --> - <string name="more_keys_for_star">†,‡,★</string> - <!-- U+00B1: "±" PLUS-MINUS SIGN --> - <string name="more_keys_for_plus">±</string> - <!-- The all letters need to be mirrored are found at - http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> - <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!3,<,{,[</string> - <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!3,>,},]</string> - <!-- U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK - U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - U+2264: "≤" LESS-THAN OR EQUAL TO - U+2265: "≥" GREATER-THAN EQUAL TO - U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - The following characters don't need BIDI mirroring. - U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <string name="more_keys_for_less_than">!fixedColumnOrder!3,‹,≤,«</string> - <string name="more_keys_for_greater_than">!fixedColumnOrder!3,›,≥,»</string> - <string name="more_keys_for_single_quote">!fixedColumnOrder!4,‘,’,‚,‛</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- <string name="more_keys_for_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!4,“,”,«,»</string> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> --> - <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!4,“,”,«,»,‘,’,‚,‛</string> -</resources> diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml index 9c8bd3cd4..bfe42327c 100644 --- a/java/res/values/donottranslate.xml +++ b/java/res/values/donottranslate.xml @@ -45,24 +45,6 @@ <!-- <string name="layout_switch_back_symbols">\"\'‘’‚‛“”„‟«»</string> --> <string name="layout_switch_back_symbols"></string> - <!-- Label for "switch to more symbol" modifier key. Must be short to fit on key! --> - <string name="label_to_more_symbol_key">= \\ <</string> - <!-- Label for "switch to more symbol" modifier key on tablets. Must be short to fit on key! --> - <string name="label_to_more_symbol_for_tablet_key">~ \\ {</string> - - <!-- Label for "Tab" key. Must be short to fit on key! --> - <string name="label_tab_key">Tab</string> - <!-- Label for "switch to phone numeric" key. Must be short to fit on key! --> - <string name="label_to_phone_numeric_key">123</string> - <!-- Label for "switch to phone symbols" key. Must be short to fit on key! --> - <!-- U+FF0A: "*" FULLWIDTH ASTERISK - U+FF03: "#" FULLWIDTH NUMBER SIGN --> - <string name="label_to_phone_symbols_key">*#</string> - <!-- Key label for "ante meridiem" --> - <string name="label_time_am">"AM"</string> - <!-- Key label for "post meridiem" --> - <string name="label_time_pm">"PM"</string> - <!-- Always show the suggestion strip --> <string name="prefs_suggestion_visibility_show_value">0</string> <!-- Show the suggestion strip only on portrait mode --> diff --git a/java/res/values/keycodes.xml b/java/res/values/keycodes.xml deleted file mode 100644 index f42495a75..000000000 --- a/java/res/values/keycodes.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2009, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<resources> - <!-- These code should be aligned with Keyboard.CODE_*. --> - <integer name="key_tab">9</integer> - <integer name="key_enter">10</integer> - <integer name="key_space">32</integer> - <integer name="key_shift">-1</integer> - <integer name="key_switch_alpha_symbol">-2</integer> - <integer name="key_output_text">-3</integer> - <integer name="key_delete">-4</integer> - <integer name="key_settings">-5</integer> - <integer name="key_shortcut">-6</integer> - <integer name="key_action_enter">-7</integer> - <integer name="key_action_next">-8</integer> - <integer name="key_action_previous">-9</integer> - <integer name="key_language_switch">-10</integer> - <integer name="key_unspecified">-11</integer> - <!-- U+0028: "(" LEFT PARENTHESIS --> - <integer name="keycode_for_left_parenthesis">0x0028</integer> - <!-- U+0029: ")" RIGHT PARENTHESIS --> - <integer name="keycode_for_right_parenthesis">0x0029</integer> - <!-- U+003C: "<" LESS-THAN SIGN --> - <integer name="keycode_for_less_than">0x003C</integer> - <!-- U+003E: ">" GREATER-THAN SIGN --> - <integer name="keycode_for_greater_than">0x003E</integer> - <!-- U+005B: "[" LEFT SQUARE BRACKET --> - <integer name="keycode_for_left_square_bracket">0x005B</integer> - <!-- U+005D: "]" RIGHT SQUARE BRACKET --> - <integer name="keycode_for_right_square_bracket">0x005D</integer> - <!-- U+007B: "{" LEFT CURLY BRACKET --> - <integer name="keycode_for_left_curly_bracket">0x007B</integer> - <!-- U+007D: "}" RIGHT CURLY BRACKET --> - <integer name="keycode_for_right_curly_bracket">0x007D</integer> -</resources> diff --git a/java/res/xml-sw600dp/key_shortcut.xml b/java/res/xml-sw600dp/key_shortcut.xml index d4c45ad22..2114c67bd 100644 --- a/java/res/xml-sw600dp/key_shortcut.xml +++ b/java/res/xml-sw600dp/key_shortcut.xml @@ -29,7 +29,7 @@ <Key latin:keyStyle="shortcutKeyStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/settings_as_more_key" + latin:moreKeys="!label/settings_as_more_key" latin:keyWidth="fillBoth" /> </case> <case diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml index 45e22fce3..e0676e890 100644 --- a/java/res/xml-sw600dp/key_styles_common.xml +++ b/java/res/xml-sw600dp/key_styles_common.xml @@ -42,7 +42,7 @@ > <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKeyShifted" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOff" /> @@ -52,7 +52,7 @@ > <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKeyShifted" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOn" /> @@ -60,7 +60,7 @@ <default> <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKey" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOff" /> @@ -68,7 +68,7 @@ </switch> <key-style latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" + latin:code="!code/key_delete" latin:keyIcon="iconDeleteKey" latin:keyActionFlags="isRepeatable|noKeyPreview" latin:backgroundType="functional" /> @@ -76,7 +76,7 @@ latin:keyboardLayout="@xml/key_styles_enter" /> <key-style latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" + latin:code="!code/key_space" latin:keyActionFlags="noKeyPreview" /> <!-- U+200C: ZERO WIDTH NON-JOINER U+200D: ZERO WIDTH JOINER --> @@ -84,7 +84,7 @@ latin:styleName="zwnjKeyStyle" latin:code="0x200C" latin:keyIcon="iconZwnjKey" - latin:moreKeys="\@icon/zwjKey|‍" + latin:moreKeys="!icon/zwjKey|‍" latin:keyLabelFlags="hasPopupHint" latin:keyActionFlags="noKeyPreview" /> <key-style @@ -92,10 +92,10 @@ latin:keyLabel=":-)" latin:keyOutputText=":-) " latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/more_keys_for_smiley" /> + latin:moreKeys="!label/more_keys_for_smiley" /> <key-style latin:styleName="shortcutKeyStyle" - latin:code="@integer/key_shortcut" + latin:code="!code/key_shortcut" latin:keyIcon="iconShortcutKey" latin:keyIconDisabled="iconDisabledShortcutKey" latin:keyLabelFlags="preserveCase" @@ -103,7 +103,7 @@ latin:backgroundType="functional" /> <key-style latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" + latin:code="!code/key_settings" latin:keyIcon="iconSettingsKey" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping" latin:backgroundType="functional" /> @@ -114,7 +114,7 @@ > <key-style latin:styleName="tabKeyStyle" - latin:code="@integer/key_action_previous" + latin:code="!code/key_action_previous" latin:keyIcon="iconTabKey" latin:keyIconPreview="iconPreviewTabKey" latin:backgroundType="functional" /> @@ -122,7 +122,7 @@ <default> <key-style latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" + latin:code="!code/key_tab" latin:keyIcon="iconTabKey" latin:keyIconPreview="iconPreviewTabKey" latin:backgroundType="functional" /> @@ -130,36 +130,36 @@ </switch> <key-style latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_symbol_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="toAlphaKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_alpha_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_alpha_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="toMoreSymbolKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_to_more_symbol_for_tablet_key" + latin:code="!code/key_shift" + latin:keyLabel="!label/label_to_more_symbol_for_tablet_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="backFromMoreSymbolKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_to_symbol_key" + latin:code="!code/key_shift" + latin:keyLabel="!label/label_to_symbol_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="comKeyStyle" - latin:keyLabel="@string/keylabel_for_popular_domain" + latin:keyLabel="!label/keylabel_for_popular_domain" latin:keyLabelFlags="fontNormal|hasPopupHint|preserveCase" - latin:keyOutputText="@string/keylabel_for_popular_domain" - latin:moreKeys="@string/more_keys_for_popular_domain" /> + latin:keyOutputText="!label/keylabel_for_popular_domain" + latin:moreKeys="!label/more_keys_for_popular_domain" /> </merge> diff --git a/java/res/xml-sw600dp/keys_apostrophe_dash.xml b/java/res/xml-sw600dp/keys_apostrophe_dash.xml index a53c1e4ab..faaae50c9 100644 --- a/java/res/xml-sw600dp/keys_apostrophe_dash.xml +++ b/java/res/xml-sw600dp/keys_apostrophe_dash.xml @@ -39,9 +39,9 @@ </case> <default> <Key - latin:keyLabel="@string/keylabel_for_apostrophe" - latin:keyHintLabel="@string/keyhintlabel_for_apostrophe" - latin:moreKeys="@string/more_keys_for_apostrophe" + latin:keyLabel="!label/keylabel_for_apostrophe" + latin:keyHintLabel="!label/keyhintlabel_for_apostrophe" + latin:moreKeys="!label/more_keys_for_apostrophe" latin:keyStyle="hasShiftedLetterHintStyle" /> </default> </switch> @@ -54,9 +54,9 @@ </case> <default> <Key - latin:keyLabel="@string/keylabel_for_dash" - latin:keyHintLabel="@string/keyhintlabel_for_dash" - latin:moreKeys="@string/more_keys_for_dash" + latin:keyLabel="!label/keylabel_for_dash" + latin:keyHintLabel="!label/keyhintlabel_for_dash" + latin:moreKeys="!label/more_keys_for_dash" latin:keyStyle="hasShiftedLetterHintStyle" /> </default> </switch> diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/keys_comma_period.xml index f5f307be6..4a83cc817 100644 --- a/java/res/xml-sw600dp/keys_comma_period.xml +++ b/java/res/xml-sw600dp/keys_comma_period.xml @@ -32,14 +32,14 @@ </case> <default> <Key - latin:keyLabel="@string/keylabel_for_tablet_comma" - latin:keyHintLabel="@string/keyhintlabel_for_tablet_comma" - latin:moreKeys="@string/more_keys_for_tablet_comma" + latin:keyLabel="!label/keylabel_for_tablet_comma" + latin:keyHintLabel="!label/keyhintlabel_for_tablet_comma" + latin:moreKeys="!label/more_keys_for_tablet_comma" latin:keyStyle="hasShiftedLetterHintStyle" /> <Key latin:keyLabel="." - latin:keyHintLabel="@string/keyhintlabel_for_tablet_period" - latin:moreKeys="@string/more_keys_for_tablet_period" + latin:keyHintLabel="!label/keyhintlabel_for_tablet_period" + latin:moreKeys="!label/more_keys_for_tablet_period" latin:keyStyle="hasShiftedLetterHintStyle" /> </default> </switch> diff --git a/java/res/xml-sw600dp/rowkeys_symbols2.xml b/java/res/xml-sw600dp/rowkeys_symbols2.xml index e0121a35c..fd774168f 100644 --- a/java/res/xml-sw600dp/rowkeys_symbols2.xml +++ b/java/res/xml-sw600dp/rowkeys_symbols2.xml @@ -26,13 +26,13 @@ <Key latin:keyStyle="currencyKeyStyle" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_percent" - latin:moreKeys="@string/more_keys_for_symbols_percent" /> + latin:keyLabel="!label/keylabel_for_symbols_percent" + latin:moreKeys="!label/more_keys_for_symbols_percent" /> <Key latin:keyLabel="&" /> <Key latin:keyLabel="*" - latin:moreKeys="@string/more_keys_for_star" /> + latin:moreKeys="!label/more_keys_for_star" /> <!-- U+2013: "–" EN DASH U+2014: "—" EM DASH --> <Key @@ -40,7 +40,7 @@ latin:moreKeys="_,–,—" /> <Key latin:keyLabel="+" - latin:moreKeys="@string/more_keys_for_plus" /> + latin:moreKeys="!label/more_keys_for_plus" /> <include latin:keyboardLayout="@xml/keys_parentheses" /> </merge> diff --git a/java/res/xml-sw600dp/rowkeys_symbols3.xml b/java/res/xml-sw600dp/rowkeys_symbols3.xml index 9293352cf..536ac05a2 100644 --- a/java/res/xml-sw600dp/rowkeys_symbols3.xml +++ b/java/res/xml-sw600dp/rowkeys_symbols3.xml @@ -41,11 +41,11 @@ </default> </switch> <Key - latin:keyLabel="@string/keylabel_for_symbols_semicolon" - latin:moreKeys="@string/more_keys_for_symbols_semicolon" /> + latin:keyLabel="!label/keylabel_for_symbols_semicolon" + latin:moreKeys="!label/more_keys_for_symbols_semicolon" /> <Key - latin:keyLabel="@string/keylabel_for_comma" - latin:moreKeys="@string/more_keys_for_comma" /> + latin:keyLabel="!label/keylabel_for_comma" + latin:moreKeys="!label/more_keys_for_comma" /> <Key latin:keyLabel="." /> <!-- U+00A1: "¡" INVERTED EXCLAMATION MARK --> @@ -53,6 +53,6 @@ latin:keyLabel="!" latin:moreKeys="¡" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_question" - latin:moreKeys="@string/more_keys_for_symbols_question" /> + latin:keyLabel="!label/keylabel_for_symbols_question" + latin:moreKeys="!label/more_keys_for_symbols_question" /> </merge> diff --git a/java/res/xml-sw600dp/rowkeys_symbols_shift1.xml b/java/res/xml-sw600dp/rowkeys_symbols_shift1.xml index 356ee2f0e..914a4499b 100644 --- a/java/res/xml-sw600dp/rowkeys_symbols_shift1.xml +++ b/java/res/xml-sw600dp/rowkeys_symbols_shift1.xml @@ -30,7 +30,7 @@ <!-- U+2022: "•" BULLET --> <Key latin:keyLabel="•" - latin:moreKeys="@string/more_keys_for_bullet" /> + latin:moreKeys="!label/more_keys_for_bullet" /> <!-- U+221A: "√" SQUARE ROOT --> <Key latin:keyLabel="√" /> diff --git a/java/res/xml-sw600dp/rows_number_normal.xml b/java/res/xml-sw600dp/rows_number_normal.xml index be5776b20..00fda2899 100644 --- a/java/res/xml-sw600dp/rows_number_normal.xml +++ b/java/res/xml-sw600dp/rows_number_normal.xml @@ -70,7 +70,7 @@ <Key latin:keyLabel="," latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="@string/more_keys_for_am_pm" + latin:moreKeys="!label/more_keys_for_am_pm" latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> </case> diff --git a/java/res/xml-sw600dp/rows_symbols4.xml b/java/res/xml-sw600dp/rows_symbols4.xml index bfc9b2cf6..afa2652ea 100644 --- a/java/res/xml-sw600dp/rows_symbols4.xml +++ b/java/res/xml-sw600dp/rows_symbols4.xml @@ -37,7 +37,7 @@ latin:keyWidth="39.750%p" /> <Key latin:keyLabel=""" - latin:moreKeys="@string/more_keys_for_tablet_double_quote" /> + latin:moreKeys="!label/more_keys_for_tablet_double_quote" /> <Key latin:keyLabel="_" /> <Spacer diff --git a/java/res/xml-sw768dp/key_styles_common.xml b/java/res/xml-sw768dp/key_styles_common.xml index e1c236912..c3e2fd93d 100644 --- a/java/res/xml-sw768dp/key_styles_common.xml +++ b/java/res/xml-sw768dp/key_styles_common.xml @@ -41,7 +41,7 @@ > <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKeyShifted" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOff" /> @@ -51,7 +51,7 @@ > <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKeyShifted" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOn" /> @@ -59,7 +59,7 @@ <default> <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKey" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOff" /> @@ -67,7 +67,7 @@ </switch> <key-style latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" + latin:code="!code/key_delete" latin:keyIcon="iconDeleteKey" latin:keyActionFlags="isRepeatable|noKeyPreview" latin:backgroundType="functional" /> @@ -75,7 +75,7 @@ latin:keyboardLayout="@xml/key_styles_enter" /> <key-style latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" + latin:code="!code/key_space" latin:keyActionFlags="noKeyPreview" /> <!-- U+200C: ZERO WIDTH NON-JOINER U+200D: ZERO WIDTH JOINER --> @@ -83,7 +83,7 @@ latin:styleName="zwnjKeyStyle" latin:code="0x200C" latin:keyIcon="iconZwnjKey" - latin:moreKeys="\@icon/zwjKey|‍" + latin:moreKeys="!icon/zwjKey|‍" latin:keyLabelFlags="hasPopupHint" latin:keyActionFlags="noKeyPreview" /> <key-style @@ -91,10 +91,10 @@ latin:keyLabel=":-)" latin:keyOutputText=":-) " latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/more_keys_for_smiley" /> + latin:moreKeys="!label/more_keys_for_smiley" /> <key-style latin:styleName="shortcutKeyStyle" - latin:code="@integer/key_shortcut" + latin:code="!code/key_shortcut" latin:keyIcon="iconShortcutKey" latin:keyIconDisabled="iconDisabledShortcutKey" latin:keyLabelFlags="preserveCase" @@ -102,7 +102,7 @@ latin:backgroundType="functional" /> <key-style latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" + latin:code="!code/key_settings" latin:keyIcon="iconSettingsKey" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping" latin:backgroundType="functional" /> @@ -113,52 +113,52 @@ > <key-style latin:styleName="tabKeyStyle" - latin:code="@integer/key_action_previous" - latin:keyLabel="@string/label_tab_key" + latin:code="!code/key_action_previous" + latin:keyLabel="!label/label_tab_key" latin:keyLabelFlags="fontNormal|preserveCase" latin:backgroundType="functional" /> </case> <default> <key-style latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" + latin:code="!code/key_tab" + latin:keyLabel="!label/label_tab_key" latin:keyLabelFlags="fontNormal|preserveCase" latin:backgroundType="functional" /> </default> </switch> <key-style latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_symbol_key" latin:keyLabelFlags="fontNormal|preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="toAlphaKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_alpha_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_alpha_key" latin:keyLabelFlags="fontNormal|preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="toMoreSymbolKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_to_more_symbol_for_tablet_key" + latin:code="!code/key_shift" + latin:keyLabel="!label/label_to_more_symbol_for_tablet_key" latin:keyLabelFlags="fontNormal|preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="backFromMoreSymbolKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_to_symbol_key" + latin:code="!code/key_shift" + latin:keyLabel="!label/label_to_symbol_key" latin:keyLabelFlags="fontNormal|preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="comKeyStyle" - latin:keyLabel="@string/keylabel_for_popular_domain" + latin:keyLabel="!label/keylabel_for_popular_domain" latin:keyLabelFlags="fontNormal|hasPopupHint|preserveCase" - latin:keyOutputText="@string/keylabel_for_popular_domain" - latin:moreKeys="@string/more_keys_for_popular_domain" /> + latin:keyOutputText="!label/keylabel_for_popular_domain" + latin:moreKeys="!label/more_keys_for_popular_domain" /> </merge> diff --git a/java/res/xml-sw768dp/keys_apostrophe_dash.xml b/java/res/xml-sw768dp/keys_apostrophe_dash.xml index a53c1e4ab..faaae50c9 100644 --- a/java/res/xml-sw768dp/keys_apostrophe_dash.xml +++ b/java/res/xml-sw768dp/keys_apostrophe_dash.xml @@ -39,9 +39,9 @@ </case> <default> <Key - latin:keyLabel="@string/keylabel_for_apostrophe" - latin:keyHintLabel="@string/keyhintlabel_for_apostrophe" - latin:moreKeys="@string/more_keys_for_apostrophe" + latin:keyLabel="!label/keylabel_for_apostrophe" + latin:keyHintLabel="!label/keyhintlabel_for_apostrophe" + latin:moreKeys="!label/more_keys_for_apostrophe" latin:keyStyle="hasShiftedLetterHintStyle" /> </default> </switch> @@ -54,9 +54,9 @@ </case> <default> <Key - latin:keyLabel="@string/keylabel_for_dash" - latin:keyHintLabel="@string/keyhintlabel_for_dash" - latin:moreKeys="@string/more_keys_for_dash" + latin:keyLabel="!label/keylabel_for_dash" + latin:keyHintLabel="!label/keyhintlabel_for_dash" + latin:moreKeys="!label/more_keys_for_dash" latin:keyStyle="hasShiftedLetterHintStyle" /> </default> </switch> diff --git a/java/res/xml-sw768dp/rows_number_normal.xml b/java/res/xml-sw768dp/rows_number_normal.xml index 2eeb6c9d4..f868cbb8b 100644 --- a/java/res/xml-sw768dp/rows_number_normal.xml +++ b/java/res/xml-sw768dp/rows_number_normal.xml @@ -72,7 +72,7 @@ <Key latin:keyLabel="," latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="@string/more_keys_for_am_pm" + latin:moreKeys="!label/more_keys_for_am_pm" latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> </case> diff --git a/java/res/xml-sw768dp/rows_symbols4.xml b/java/res/xml-sw768dp/rows_symbols4.xml index 19b36d690..dd1647b95 100644 --- a/java/res/xml-sw768dp/rows_symbols4.xml +++ b/java/res/xml-sw768dp/rows_symbols4.xml @@ -37,7 +37,7 @@ latin:keyWidth="37.500%p" /> <Key latin:keyLabel=""" - latin:moreKeys="@string/more_keys_for_tablet_double_quote" /> + latin:moreKeys="!label/more_keys_for_tablet_double_quote" /> <Key latin:keyLabel="_" /> <switch> diff --git a/java/res/xml/key_azerty_quote.xml b/java/res/xml/key_azerty_quote.xml index 966ae6f21..b8c51d30f 100644 --- a/java/res/xml/key_azerty_quote.xml +++ b/java/res/xml/key_azerty_quote.xml @@ -31,7 +31,7 @@ <default> <Key latin:keyLabel="\'" - latin:moreKeys="\@string/more_keys_for_single_quote" /> + latin:moreKeys="!label/more_keys_for_single_quote" /> </default> </switch> </merge> diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml index 8d01091d6..ec011d08b 100644 --- a/java/res/xml/key_styles_common.xml +++ b/java/res/xml/key_styles_common.xml @@ -35,7 +35,7 @@ <key-style latin:styleName="f1MoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/settings_as_more_key" + latin:moreKeys="!label/settings_as_more_key" latin:backgroundType="functional" /> </default> </switch> @@ -46,7 +46,7 @@ > <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKeyShifted" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOff" /> @@ -56,7 +56,7 @@ > <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKeyShifted" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOn" /> @@ -64,7 +64,7 @@ <default> <key-style latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" + latin:code="!code/key_shift" latin:keyIcon="iconShiftKey" latin:keyActionFlags="noKeyPreview" latin:backgroundType="stickyOff" /> @@ -72,7 +72,7 @@ </switch> <key-style latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" + latin:code="!code/key_delete" latin:keyIcon="iconDeleteKey" latin:keyActionFlags="isRepeatable|noKeyPreview" latin:backgroundType="functional" /> @@ -98,13 +98,13 @@ latin:keyLabel=":-)" latin:keyOutputText=":-) " latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="@string/more_keys_for_smiley" + latin:moreKeys="!label/more_keys_for_smiley" latin:backgroundType="functional" /> </case> </switch> <key-style latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" + latin:code="!code/key_space" latin:keyActionFlags="noKeyPreview|enableLongPress" latin:backgroundType="functional" /> <!-- U+200C: ZERO WIDTH NON-JOINER @@ -113,29 +113,29 @@ latin:styleName="zwnjKeyStyle" latin:code="0x200C" latin:keyIcon="iconZwnjKey" - latin:moreKeys="\@icon/zwjKey|‍" + latin:moreKeys="!icon/zwjKey|‍" latin:keyLabelFlags="hasPopupHint" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="shortcutKeyStyle" - latin:code="@integer/key_shortcut" + latin:code="!code/key_shortcut" latin:keyIcon="iconShortcutKey" latin:keyIconDisabled="iconDisabledShortcutKey" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping" - latin:altCode="@integer/key_space" + latin:altCode="!code/key_space" latin:parentStyle="f1MoreKeysStyle" /> <key-style latin:styleName="languageSwitchKeyStyle" - latin:code="@integer/key_language_switch" + latin:code="!code/key_language_switch" latin:keyIcon="iconLanguageSwitchKey" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress" - latin:altCode="@integer/key_space" + latin:altCode="!code/key_space" latin:backgroundType="functional" /> <key-style latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" + latin:code="!code/key_tab" latin:keyIcon="iconTabKey" latin:keyIconPreview="iconPreviewTabKey" latin:backgroundType="functional" /> @@ -143,7 +143,7 @@ laid out as normal letter key. --> <key-style latin:styleName="nonSpecialBackgroundTabKeyStyle" - latin:code="@integer/key_tab" + latin:code="!code/key_tab" latin:keyIcon="iconTabKey" latin:keyIconPreview="iconPreviewTabKey" /> <switch> @@ -156,9 +156,9 @@ > <key-style latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" + latin:code="!code/key_switch_alpha_symbol" latin:keyIcon="iconShortcutForLabel" - latin:keyLabel="@string/label_to_symbol_with_microphone_key" + latin:keyLabel="!label/label_to_symbol_with_microphone_key" latin:keyLabelFlags="withIconRight|preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> @@ -166,8 +166,8 @@ <default> <key-style latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_symbol_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> @@ -175,30 +175,30 @@ </switch> <key-style latin:styleName="toAlphaKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_alpha_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_alpha_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="toMoreSymbolKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_to_more_symbol_key" + latin:code="!code/key_shift" + latin:keyLabel="!label/label_to_more_symbol_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="backFromMoreSymbolKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_to_symbol_key" + latin:code="!code/key_shift" + latin:keyLabel="!label/label_to_symbol_key" latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="punctuationKeyStyle" latin:keyLabel="." - latin:keyHintLabel="@string/keyhintlabel_for_punctuation" + latin:keyHintLabel="!label/keyhintlabel_for_punctuation" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/more_keys_for_punctuation" + latin:moreKeys="!label/more_keys_for_punctuation" latin:backgroundType="functional" /> </merge> diff --git a/java/res/xml/key_styles_currency.xml b/java/res/xml/key_styles_currency.xml index bd1d959e4..6057d5bd7 100644 --- a/java/res/xml/key_styles_currency.xml +++ b/java/res/xml/key_styles_currency.xml @@ -86,7 +86,7 @@ <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="₪" - latin:moreKeys="@string/more_keys_for_currency_general" /> + latin:moreKeys="!label/more_keys_for_currency_general" /> <key-style latin:styleName="moreCurrency1KeyStyle" latin:keyLabel="£" /> @@ -112,7 +112,7 @@ <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="﷼" - latin:moreKeys="@string/more_keys_for_currency_general" /> + latin:moreKeys="!label/more_keys_for_currency_general" /> <key-style latin:styleName="moreCurrency1KeyStyle" latin:keyLabel="£" /> @@ -138,7 +138,7 @@ <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="£" - latin:moreKeys="@string/more_keys_for_currency_pound" /> + latin:moreKeys="!label/more_keys_for_currency_pound" /> <key-style latin:styleName="moreCurrency1KeyStyle" latin:keyLabel="€" /> diff --git a/java/res/xml/key_styles_currency_dollar.xml b/java/res/xml/key_styles_currency_dollar.xml index 8dd849879..704970a56 100644 --- a/java/res/xml/key_styles_currency_dollar.xml +++ b/java/res/xml/key_styles_currency_dollar.xml @@ -26,7 +26,7 @@ <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="$" - latin:moreKeys="@string/more_keys_for_currency_dollar" /> + latin:moreKeys="!label/more_keys_for_currency_dollar" /> <key-style latin:styleName="moreCurrency1KeyStyle" latin:keyLabel="£" /> diff --git a/java/res/xml/key_styles_currency_euro.xml b/java/res/xml/key_styles_currency_euro.xml index 0573e0991..074d4c0c2 100644 --- a/java/res/xml/key_styles_currency_euro.xml +++ b/java/res/xml/key_styles_currency_euro.xml @@ -26,7 +26,7 @@ <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="€" - latin:moreKeys="@string/more_keys_for_currency_euro" /> + latin:moreKeys="!abel/more_keys_for_currency_euro" /> <key-style latin:styleName="moreCurrency1KeyStyle" latin:keyLabel="£" /> diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml index e15a0bec7..f4c7ad46b 100644 --- a/java/res/xml/key_styles_enter.xml +++ b/java/res/xml/key_styles_enter.xml @@ -30,7 +30,7 @@ <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/action_previous_as_more_key" /> + latin:moreKeys="!label/action_previous_as_more_key" /> </case> <case latin:imeAction="actionNext" @@ -46,7 +46,7 @@ <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/action_next_as_more_key" /> + latin:moreKeys="!label/action_next_as_more_key" /> </case> <case latin:imeAction="actionPrevious" @@ -63,7 +63,7 @@ <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,@string/action_previous_as_more_key,@string/action_next_as_more_key" /> + latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!label/action_previous_as_more_key,!label/action_next_as_more_key" /> </case> <case latin:navigateNext="true" @@ -72,7 +72,7 @@ <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/action_next_as_more_key" /> + latin:moreKeys="!label/action_next_as_more_key" /> </case> <case latin:navigateNext="false" @@ -81,7 +81,7 @@ <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="@string/action_previous_as_more_key" /> + latin:moreKeys="!label/action_previous_as_more_key" /> </case> <!-- naviagteNext="false" and navigatePrevious="false" --> <default> @@ -92,15 +92,15 @@ <!-- Enter key style --> <key-style latin:styleName="defaultEnterKeyStyle" - latin:code="@integer/key_enter" + latin:code="!code/key_enter" latin:keyIcon="iconReturnKey" - latin:keyLabelFlags="autoXScale|preserveCase" + latin:keyLabelFlags="autoXScale|preserveCase|followKeyLabelRatio" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" latin:parentStyle="navigateMoreKeysStyle" /> <key-style latin:styleName="defaultActionKeyStyle" - latin:code="@integer/key_action_enter" + latin:code="!code/key_action_enter" latin:keyIcon="iconUndefined" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> @@ -119,7 +119,7 @@ > <key-style latin:styleName="enterKeyStyle" - latin:keyLabel="@string/label_go_key" + latin:keyLabel="!label/label_go_key" latin:parentStyle="defaultActionKeyStyle" /> </case> <case @@ -127,7 +127,7 @@ > <key-style latin:styleName="enterKeyStyle" - latin:keyLabel="@string/label_next_key" + latin:keyLabel="!label/label_next_key" latin:parentStyle="defaultActionKeyStyle" /> </case> <case @@ -135,7 +135,7 @@ > <key-style latin:styleName="enterKeyStyle" - latin:keyLabel="@string/label_previous_key" + latin:keyLabel="!label/label_previous_key" latin:parentStyle="defaultActionKeyStyle" /> </case> <case @@ -143,7 +143,7 @@ > <key-style latin:styleName="enterKeyStyle" - latin:keyLabel="@string/label_done_key" + latin:keyLabel="!label/label_done_key" latin:parentStyle="defaultActionKeyStyle" /> </case> <case @@ -151,7 +151,7 @@ > <key-style latin:styleName="enterKeyStyle" - latin:keyLabel="@string/label_send_key" + latin:keyLabel="!label/label_send_key" latin:parentStyle="defaultActionKeyStyle" /> </case> <case diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml index 1fc21694d..16cfa8492 100644 --- a/java/res/xml/key_styles_number.xml +++ b/java/res/xml/key_styles_number.xml @@ -26,7 +26,7 @@ latin:keyActionFlags="noKeyPreview" /> <key-style latin:styleName="numKeyStyle" - latin:keyLabelFlags="largeLetter|followKeyLetterRatio" + latin:keyLabelFlags="followKeyLargeLetterRatio" latin:parentStyle="numKeyBaseStyle" /> <key-style latin:styleName="numModeKeyStyle" @@ -34,7 +34,7 @@ latin:parentStyle="numKeyBaseStyle" /> <key-style latin:styleName="numFunctionalKeyStyle" - latin:keyLabelFlags="largeLetter|followKeyLetterRatio" + latin:keyLabelFlags="followKeyLargeLetterRatio" latin:backgroundType="functional" latin:parentStyle="numKeyBaseStyle" /> <key-style @@ -99,26 +99,26 @@ <!-- Only for non-tablet device --> <key-style latin:styleName="numPhoneToSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_phone_symbols_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_phone_symbols_key" latin:parentStyle="numModeKeyStyle" /> <key-style latin:styleName="numPhoneToNumericKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_phone_numeric_key" + latin:code="!code/key_switch_alpha_symbol" + latin:keyLabel="!label/label_to_phone_numeric_key" latin:parentStyle="numModeKeyStyle" /> <!-- U+002C: "," COMMA --> <key-style latin:styleName="numPauseKeyStyle" latin:code="0x002C" - latin:keyLabel="@string/label_pause_key" + latin:keyLabel="!label/label_pause_key" latin:keyLabelFlags="followKeyHintLabelRatio|autoXScale" latin:parentStyle="numKeyBaseStyle" /> <!-- U+003B: ";" SEMICOLON --> <key-style latin:styleName="numWaitKeyStyle" latin:code="0x003B" - latin:keyLabel="@string/label_wait_key" + latin:keyLabel="!label/label_wait_key" latin:keyLabelFlags="followKeyHintLabelRatio|autoXScale" latin:parentStyle="numKeyBaseStyle" /> <key-style @@ -127,7 +127,7 @@ latin:parentStyle="tabKeyStyle" /> <key-style latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" + latin:code="!code/key_space" latin:keyIcon="iconSpaceKeyForNumberLayout" latin:keyActionFlags="enableLongPress" latin:parentStyle="numKeyBaseStyle" /> diff --git a/java/res/xml/keys_curly_brackets.xml b/java/res/xml/keys_curly_brackets.xml index d21a09281..6a4b1a945 100644 --- a/java/res/xml/keys_curly_brackets.xml +++ b/java/res/xml/keys_curly_brackets.xml @@ -23,8 +23,8 @@ > <Key latin:keyLabel="{" - latin:code="@integer/keycode_for_left_curly_bracket" /> + latin:code="!code/key_left_curly_bracket" /> <Key latin:keyLabel="}" - latin:code="@integer/keycode_for_right_curly_bracket" /> + latin:code="!code/key_right_curly_bracket" /> </merge> diff --git a/java/res/xml/keys_less_greater.xml b/java/res/xml/keys_less_greater.xml index 8961d9ce6..7c154cb0d 100644 --- a/java/res/xml/keys_less_greater.xml +++ b/java/res/xml/keys_less_greater.xml @@ -23,10 +23,10 @@ > <Key latin:keyLabel="<" - latin:code="@integer/keycode_for_less_than" - latin:moreKeys="@string/more_keys_for_less_than" /> + latin:code="!code/key_less_than" + latin:moreKeys="!label/more_keys_for_less_than" /> <Key latin:keyLabel=">" - latin:code="@integer/keycode_for_greater_than" - latin:moreKeys="@string/more_keys_for_greater_than" /> + latin:code="!code/key_greater_than" + latin:moreKeys="!label/more_keys_for_greater_than" /> </merge> diff --git a/java/res/xml/keys_parentheses.xml b/java/res/xml/keys_parentheses.xml index 6853bf167..17d72859c 100644 --- a/java/res/xml/keys_parentheses.xml +++ b/java/res/xml/keys_parentheses.xml @@ -23,10 +23,10 @@ > <Key latin:keyLabel="(" - latin:code="@integer/keycode_for_left_parenthesis" - latin:moreKeys="@string/more_keys_for_left_parenthesis" /> + latin:code="!code/key_left_parenthesis" + latin:moreKeys="!label/more_keys_for_left_parenthesis" /> <Key latin:keyLabel=")" - latin:code="@integer/keycode_for_right_parenthesis" - latin:moreKeys="@string/more_keys_for_right_parenthesis" /> + latin:code="!code/key_right_parenthesis" + latin:moreKeys="!label/more_keys_for_right_parenthesis" /> </merge> diff --git a/java/res/xml/keys_square_brackets.xml b/java/res/xml/keys_square_brackets.xml index 44387c3bf..5c128fd0c 100644 --- a/java/res/xml/keys_square_brackets.xml +++ b/java/res/xml/keys_square_brackets.xml @@ -23,8 +23,8 @@ > <Key latin:keyLabel="[" - latin:code="@integer/keycode_for_left_square_bracket" /> + latin:code="!code/key_left_square_bracket" /> <Key latin:keyLabel="]" - latin:code="@integer/keycode_for_right_square_bracket" /> + latin:code="!code/key_right_square_bracket" /> </merge> diff --git a/java/res/xml/row_qwerty4.xml b/java/res/xml/row_qwerty4.xml index b2b47e9b5..c08518079 100644 --- a/java/res/xml/row_qwerty4.xml +++ b/java/res/xml/row_qwerty4.xml @@ -51,9 +51,9 @@ <!-- latin:hasShortcutKey="false" --> <default> <Key - latin:keyLabel="@string/keylabel_for_comma" + latin:keyLabel="!label/keylabel_for_comma" latin:keyLabelFlags="hasPopupHint" - latin:additionalMoreKeys="@string/more_keys_for_comma" + latin:additionalMoreKeys="!label/more_keys_for_comma" latin:keyStyle="f1MoreKeysStyle" /> </default> </switch> diff --git a/java/res/xml/rowkeys_azerty1.xml b/java/res/xml/rowkeys_azerty1.xml index 99834321f..50a0162de 100644 --- a/java/res/xml/rowkeys_azerty1.xml +++ b/java/res/xml/rowkeys_azerty1.xml @@ -25,47 +25,47 @@ latin:keyLabel="a" latin:keyHintLabel="1" latin:additionalMoreKeys="1" - latin:moreKeys="@string/more_keys_for_a" /> + latin:moreKeys="!label/more_keys_for_a" /> <Key latin:keyLabel="z" latin:keyHintLabel="2" latin:additionalMoreKeys="2" - latin:moreKeys="@string/more_keys_for_z" /> + latin:moreKeys="!label/more_keys_for_z" /> <Key latin:keyLabel="e" latin:keyHintLabel="3" latin:additionalMoreKeys="3" - latin:moreKeys="@string/more_keys_for_e" /> + latin:moreKeys="!label/more_keys_for_e" /> <Key latin:keyLabel="r" latin:keyHintLabel="4" latin:additionalMoreKeys="4" - latin:moreKeys="@string/more_keys_for_r" /> + latin:moreKeys="!label/more_keys_for_r" /> <Key latin:keyLabel="t" latin:keyHintLabel="5" latin:additionalMoreKeys="5" - latin:moreKeys="@string/more_keys_for_t" /> + latin:moreKeys="!label/more_keys_for_t" /> <Key latin:keyLabel="y" latin:keyHintLabel="6" latin:additionalMoreKeys="6" - latin:moreKeys="@string/more_keys_for_y" /> + latin:moreKeys="!label/more_keys_for_y" /> <Key latin:keyLabel="u" latin:keyHintLabel="7" latin:additionalMoreKeys="7" - latin:moreKeys="@string/more_keys_for_u" /> + latin:moreKeys="!label/more_keys_for_u" /> <Key latin:keyLabel="i" latin:keyHintLabel="8" latin:additionalMoreKeys="8" - latin:moreKeys="@string/more_keys_for_i" /> + latin:moreKeys="!label/more_keys_for_i" /> <Key latin:keyLabel="o" latin:keyHintLabel="9" latin:additionalMoreKeys="9" - latin:moreKeys="@string/more_keys_for_o" /> + latin:moreKeys="!label/more_keys_for_o" /> <Key latin:keyLabel="p" latin:keyHintLabel="0" diff --git a/java/res/xml/rowkeys_azerty2.xml b/java/res/xml/rowkeys_azerty2.xml index ff0b06240..f453c2432 100644 --- a/java/res/xml/rowkeys_azerty2.xml +++ b/java/res/xml/rowkeys_azerty2.xml @@ -25,27 +25,27 @@ latin:keyLabel="q" /> <Key latin:keyLabel="s" - latin:moreKeys="@string/more_keys_for_s" /> + latin:moreKeys="!label/more_keys_for_s" /> <Key latin:keyLabel="d" - latin:moreKeys="@string/more_keys_for_d" /> + latin:moreKeys="!label/more_keys_for_d" /> <Key latin:keyLabel="f" /> <Key latin:keyLabel="g" - latin:moreKeys="@string/more_keys_for_g" /> + latin:moreKeys="!label/more_keys_for_g" /> <Key latin:keyLabel="h" - latin:moreKeys="@string/more_keys_for_h" /> + latin:moreKeys="!label/more_keys_for_h" /> <Key latin:keyLabel="j" - latin:moreKeys="@string/more_keys_for_j" /> + latin:moreKeys="!label/more_keys_for_j" /> <Key latin:keyLabel="k" - latin:moreKeys="@string/more_keys_for_k" /> + latin:moreKeys="!label/more_keys_for_k" /> <Key latin:keyLabel="l" - latin:moreKeys="@string/more_keys_for_l" /> + latin:moreKeys="!label/more_keys_for_l" /> <Key latin:keyLabel="m" /> </merge> diff --git a/java/res/xml/rowkeys_azerty3.xml b/java/res/xml/rowkeys_azerty3.xml index b81c3c5a1..35e9b195f 100644 --- a/java/res/xml/rowkeys_azerty3.xml +++ b/java/res/xml/rowkeys_azerty3.xml @@ -23,20 +23,20 @@ > <Key latin:keyLabel="w" - latin:moreKeys="@string/more_keys_for_w" /> + latin:moreKeys="!label/more_keys_for_w" /> <Key latin:keyLabel="x" /> <Key latin:keyLabel="c" - latin:moreKeys="@string/more_keys_for_c" /> + latin:moreKeys="!label/more_keys_for_c" /> <Key latin:keyLabel="v" - latin:moreKeys="@string/more_keys_for_v" /> + latin:moreKeys="!label/more_keys_for_v" /> <Key latin:keyLabel="b" /> <Key latin:keyLabel="n" - latin:moreKeys="@string/more_keys_for_n" /> + latin:moreKeys="!label/more_keys_for_n" /> <include latin:keyboardLayout="@xml/key_azerty_quote" /> </merge> diff --git a/java/res/xml/rowkeys_east_slavic1.xml b/java/res/xml/rowkeys_east_slavic1.xml index 04c6ef6ab..dd83c0250 100644 --- a/java/res/xml/rowkeys_east_slavic1.xml +++ b/java/res/xml/rowkeys_east_slavic1.xml @@ -36,7 +36,7 @@ latin:keyLabel="у" latin:keyHintLabel="3" latin:additionalMoreKeys="3" - latin:moreKeys="@string/more_keys_for_cyrillic_u" /> + latin:moreKeys="!label/more_keys_for_cyrillic_u" /> <!-- U+043A: "к" CYRILLIC SMALL LETTER KA --> <Key latin:keyLabel="к" @@ -47,13 +47,13 @@ latin:keyLabel="е" latin:keyHintLabel="5" latin:additionalMoreKeys="5" - latin:moreKeys="@string/more_keys_for_cyrillic_ye" /> + latin:moreKeys="!label/more_keys_for_cyrillic_ye" /> <!-- U+043D: "н" CYRILLIC SMALL LETTER EN --> <Key latin:keyLabel="н" latin:keyHintLabel="6" latin:additionalMoreKeys="6" - latin:moreKeys="@string/more_keys_for_cyrillic_en" /> + latin:moreKeys="!label/more_keys_for_cyrillic_en" /> <!-- U+0433: "г" CYRILLIC SMALL LETTER GHE --> <Key latin:keyLabel="г" @@ -65,7 +65,7 @@ latin:keyHintLabel="8" latin:additionalMoreKeys="8" /> <Key - latin:keyLabel="@string/keylabel_for_east_slavic_row1_9" + latin:keyLabel="!label/keylabel_for_east_slavic_row1_9" latin:keyHintLabel="9" latin:additionalMoreKeys="9" /> <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE --> @@ -76,5 +76,5 @@ <!-- U+0445: "х" CYRILLIC SMALL LETTER HA --> <Key latin:keyLabel="х" - latin:moreKeys="@string/more_keys_for_cyrillic_ha" /> + latin:moreKeys="!label/more_keys_for_cyrillic_ha" /> </merge> diff --git a/java/res/xml/rowkeys_east_slavic2.xml b/java/res/xml/rowkeys_east_slavic2.xml index 57b037367..75d7d939d 100644 --- a/java/res/xml/rowkeys_east_slavic2.xml +++ b/java/res/xml/rowkeys_east_slavic2.xml @@ -25,8 +25,8 @@ <Key latin:keyLabel="ф" /> <Key - latin:keyLabel="@string/keylabel_for_east_slavic_row2_1" - latin:moreKeys="@string/more_keys_for_east_slavic_row2_1" /> + latin:keyLabel="!label/keylabel_for_east_slavic_row2_1" + latin:moreKeys="!label/more_keys_for_east_slavic_row2_1" /> <!-- U+0432: "в" CYRILLIC SMALL LETTER VE --> <Key latin:keyLabel="в" /> @@ -42,7 +42,7 @@ <!-- U+043E: "о" CYRILLIC SMALL LETTER O --> <Key latin:keyLabel="о" - latin:moreKeys="@string/more_keys_for_cyrillic_o" /> + latin:moreKeys="!label/more_keys_for_cyrillic_o" /> <!-- U+043B: "л" CYRILLIC SMALL LETTER EL --> <Key latin:keyLabel="л" /> diff --git a/java/res/xml/rowkeys_east_slavic3.xml b/java/res/xml/rowkeys_east_slavic3.xml index b0f7aed7b..a05e92d44 100644 --- a/java/res/xml/rowkeys_east_slavic3.xml +++ b/java/res/xml/rowkeys_east_slavic3.xml @@ -34,14 +34,14 @@ <Key latin:keyLabel="м" /> <Key - latin:keyLabel="@string/keylabel_for_east_slavic_row3_5" /> + latin:keyLabel="!label/keylabel_for_east_slavic_row3_5" /> <!-- U+0442: "т" CYRILLIC SMALL LETTER TE --> <Key latin:keyLabel="т" /> <!-- U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN --> <Key latin:keyLabel="ь" - latin:moreKeys="@string/more_keys_for_cyrillic_soft_sign" /> + latin:moreKeys="!label/more_keys_for_cyrillic_soft_sign" /> <!-- U+0431: "б" CYRILLIC SMALL LETTER BE --> <Key latin:keyLabel="б" /> diff --git a/java/res/xml/rowkeys_nordic1.xml b/java/res/xml/rowkeys_nordic1.xml index 056895f1f..ff29369d7 100644 --- a/java/res/xml/rowkeys_nordic1.xml +++ b/java/res/xml/rowkeys_nordic1.xml @@ -24,5 +24,5 @@ <include latin:keyboardLayout="@xml/rowkeys_qwerty1" /> <Key - latin:keyLabel="@string/keylabel_for_nordic_row1_11" /> + latin:keyLabel="!label/keylabel_for_nordic_row1_11" /> </merge> diff --git a/java/res/xml/rowkeys_nordic2.xml b/java/res/xml/rowkeys_nordic2.xml index 0033ea1bb..52bb2f18f 100644 --- a/java/res/xml/rowkeys_nordic2.xml +++ b/java/res/xml/rowkeys_nordic2.xml @@ -24,9 +24,9 @@ <include latin:keyboardLayout="@xml/rowkeys_qwerty2" /> <Key - latin:keyLabel="@string/keylabel_for_nordic_row2_10" - latin:moreKeys="@string/more_keys_for_nordic_row2_10" /> + latin:keyLabel="!label/keylabel_for_nordic_row2_10" + latin:moreKeys="!label/more_keys_for_nordic_row2_10" /> <Key - latin:keyLabel="@string/keylabel_for_nordic_row2_11" - latin:moreKeys="@string/more_keys_for_nordic_row2_11" /> + latin:keyLabel="!label/keylabel_for_nordic_row2_11" + latin:moreKeys="!label/more_keys_for_nordic_row2_11" /> </merge> diff --git a/java/res/xml/rowkeys_qwerty1.xml b/java/res/xml/rowkeys_qwerty1.xml index 19067a70c..8fb60db74 100644 --- a/java/res/xml/rowkeys_qwerty1.xml +++ b/java/res/xml/rowkeys_qwerty1.xml @@ -29,42 +29,42 @@ latin:keyLabel="w" latin:keyHintLabel="2" latin:additionalMoreKeys="2" - latin:moreKeys="@string/more_keys_for_w" /> + latin:moreKeys="!label/more_keys_for_w" /> <Key latin:keyLabel="e" latin:keyHintLabel="3" latin:additionalMoreKeys="3" - latin:moreKeys="@string/more_keys_for_e" /> + latin:moreKeys="!label/more_keys_for_e" /> <Key latin:keyLabel="r" latin:keyHintLabel="4" latin:additionalMoreKeys="4" - latin:moreKeys="@string/more_keys_for_r" /> + latin:moreKeys="!label/more_keys_for_r" /> <Key latin:keyLabel="t" latin:keyHintLabel="5" latin:additionalMoreKeys="5" - latin:moreKeys="@string/more_keys_for_t" /> + latin:moreKeys="!label/more_keys_for_t" /> <Key latin:keyLabel="y" latin:keyHintLabel="6" latin:additionalMoreKeys="6" - latin:moreKeys="@string/more_keys_for_y" /> + latin:moreKeys="!label/more_keys_for_y" /> <Key latin:keyLabel="u" latin:keyHintLabel="7" latin:additionalMoreKeys="7" - latin:moreKeys="@string/more_keys_for_u" /> + latin:moreKeys="!label/more_keys_for_u" /> <Key latin:keyLabel="i" latin:keyHintLabel="8" latin:additionalMoreKeys="8" - latin:moreKeys="@string/more_keys_for_i" /> + latin:moreKeys="!label/more_keys_for_i" /> <Key latin:keyLabel="o" latin:keyHintLabel="9" latin:additionalMoreKeys="9" - latin:moreKeys="@string/more_keys_for_o" /> + latin:moreKeys="!label/more_keys_for_o" /> <Key latin:keyLabel="p" latin:keyHintLabel="0" diff --git a/java/res/xml/rowkeys_qwerty2.xml b/java/res/xml/rowkeys_qwerty2.xml index 2fa8214a8..a29f331bc 100644 --- a/java/res/xml/rowkeys_qwerty2.xml +++ b/java/res/xml/rowkeys_qwerty2.xml @@ -23,28 +23,28 @@ > <Key latin:keyLabel="a" - latin:moreKeys="@string/more_keys_for_a" /> + latin:moreKeys="!label/more_keys_for_a" /> <Key latin:keyLabel="s" - latin:moreKeys="@string/more_keys_for_s" /> + latin:moreKeys="!label/more_keys_for_s" /> <Key latin:keyLabel="d" - latin:moreKeys="@string/more_keys_for_d" /> + latin:moreKeys="!label/more_keys_for_d" /> <Key latin:keyLabel="f" /> <Key latin:keyLabel="g" - latin:moreKeys="@string/more_keys_for_g" /> + latin:moreKeys="!label/more_keys_for_g" /> <Key latin:keyLabel="h" - latin:moreKeys="@string/more_keys_for_h" /> + latin:moreKeys="!label/more_keys_for_h" /> <Key latin:keyLabel="j" - latin:moreKeys="@string/more_keys_for_j" /> + latin:moreKeys="!label/more_keys_for_j" /> <Key latin:keyLabel="k" - latin:moreKeys="@string/more_keys_for_k" /> + latin:moreKeys="!label/more_keys_for_k" /> <Key latin:keyLabel="l" - latin:moreKeys="@string/more_keys_for_l" /> + latin:moreKeys="!label/more_keys_for_l" /> </merge> diff --git a/java/res/xml/rowkeys_qwerty3.xml b/java/res/xml/rowkeys_qwerty3.xml index 932ea6f65..afe43f6e4 100644 --- a/java/res/xml/rowkeys_qwerty3.xml +++ b/java/res/xml/rowkeys_qwerty3.xml @@ -23,20 +23,20 @@ > <Key latin:keyLabel="z" - latin:moreKeys="@string/more_keys_for_z" /> + latin:moreKeys="!label/more_keys_for_z" /> <Key latin:keyLabel="x" /> <Key latin:keyLabel="c" - latin:moreKeys="@string/more_keys_for_c" /> + latin:moreKeys="!label/more_keys_for_c" /> <Key latin:keyLabel="v" - latin:moreKeys="@string/more_keys_for_v" /> + latin:moreKeys="!label/more_keys_for_v" /> <Key latin:keyLabel="b" /> <Key latin:keyLabel="n" - latin:moreKeys="@string/more_keys_for_n" /> + latin:moreKeys="!label/more_keys_for_n" /> <Key latin:keyLabel="m" /> </merge> diff --git a/java/res/xml/rowkeys_qwertz1.xml b/java/res/xml/rowkeys_qwertz1.xml index 3e11a7ab4..12788968a 100644 --- a/java/res/xml/rowkeys_qwertz1.xml +++ b/java/res/xml/rowkeys_qwertz1.xml @@ -29,42 +29,42 @@ latin:keyLabel="w" latin:keyHintLabel="2" latin:additionalMoreKeys="2" - latin:moreKeys="@string/more_keys_for_w" /> + latin:moreKeys="!label/more_keys_for_w" /> <Key latin:keyLabel="e" latin:keyHintLabel="3" latin:additionalMoreKeys="3" - latin:moreKeys="@string/more_keys_for_e" /> + latin:moreKeys="!label/more_keys_for_e" /> <Key latin:keyLabel="r" latin:keyHintLabel="4" latin:additionalMoreKeys="4" - latin:moreKeys="@string/more_keys_for_r" /> + latin:moreKeys="!label/more_keys_for_r" /> <Key latin:keyLabel="t" latin:keyHintLabel="5" latin:additionalMoreKeys="5" - latin:moreKeys="@string/more_keys_for_t" /> + latin:moreKeys="!label/more_keys_for_t" /> <Key latin:keyLabel="z" latin:keyHintLabel="6" latin:additionalMoreKeys="6" - latin:moreKeys="@string/more_keys_for_z" /> + latin:moreKeys="!label/more_keys_for_z" /> <Key latin:keyLabel="u" latin:keyHintLabel="7" latin:additionalMoreKeys="7" - latin:moreKeys="@string/more_keys_for_u" /> + latin:moreKeys="!label/more_keys_for_u" /> <Key latin:keyLabel="i" latin:keyHintLabel="8" latin:additionalMoreKeys="8" - latin:moreKeys="@string/more_keys_for_i" /> + latin:moreKeys="!label/more_keys_for_i" /> <Key latin:keyLabel="o" latin:keyHintLabel="9" latin:additionalMoreKeys="9" - latin:moreKeys="@string/more_keys_for_o" /> + latin:moreKeys="!label/more_keys_for_o" /> <Key latin:keyLabel="p" latin:keyHintLabel="0" diff --git a/java/res/xml/rowkeys_qwertz3.xml b/java/res/xml/rowkeys_qwertz3.xml index d37cee67f..e969665a5 100644 --- a/java/res/xml/rowkeys_qwertz3.xml +++ b/java/res/xml/rowkeys_qwertz3.xml @@ -23,20 +23,20 @@ > <Key latin:keyLabel="y" - latin:moreKeys="@string/more_keys_for_y" /> + latin:moreKeys="!label/more_keys_for_y" /> <Key latin:keyLabel="x" /> <Key latin:keyLabel="c" - latin:moreKeys="@string/more_keys_for_c" /> + latin:moreKeys="!label/more_keys_for_c" /> <Key latin:keyLabel="v" - latin:moreKeys="@string/more_keys_for_v" /> + latin:moreKeys="!label/more_keys_for_v" /> <Key latin:keyLabel="b" /> <Key latin:keyLabel="n" - latin:moreKeys="@string/more_keys_for_n" /> + latin:moreKeys="!label/more_keys_for_n" /> <Key latin:keyLabel="m" /> </merge> diff --git a/java/res/xml/rowkeys_south_slavic1.xml b/java/res/xml/rowkeys_south_slavic1.xml index e3cb89c67..7c9a3bc92 100644 --- a/java/res/xml/rowkeys_south_slavic1.xml +++ b/java/res/xml/rowkeys_south_slavic1.xml @@ -36,7 +36,7 @@ latin:keyLabel="е" latin:keyHintLabel="3" latin:additionalMoreKeys="3" - latin:moreKeys="@string/more_keys_for_cyrillic_ie" /> + latin:moreKeys="!label/more_keys_for_cyrillic_ie" /> <!-- U+0440: "р" CYRILLIC SMALL LETTER ER --> <Key latin:keyLabel="р" @@ -48,7 +48,7 @@ latin:keyHintLabel="5" latin:additionalMoreKeys="5" /> <Key - latin:keyLabel="@string/keylabel_for_south_slavic_row1_6" + latin:keyLabel="!label/keylabel_for_south_slavic_row1_6" latin:keyHintLabel="6" latin:additionalMoreKeys="6" /> <!-- U+0443: "у" CYRILLIC SMALL LETTER U --> @@ -61,7 +61,7 @@ latin:keyLabel="и" latin:keyHintLabel="8" latin:additionalMoreKeys="8" - latin:moreKeys="@string/more_keys_for_cyrillic_i" /> + latin:moreKeys="!label/more_keys_for_cyrillic_i" /> <!-- U+043E: "о" CYRILLIC SMALL LETTER O --> <Key latin:keyLabel="о" diff --git a/java/res/xml/rowkeys_south_slavic2.xml b/java/res/xml/rowkeys_south_slavic2.xml index 5a7ecd46e..e4892085d 100644 --- a/java/res/xml/rowkeys_south_slavic2.xml +++ b/java/res/xml/rowkeys_south_slavic2.xml @@ -52,5 +52,5 @@ <Key latin:keyLabel="ч" /> <Key - latin:keyLabel="@string/keylabel_for_south_slavic_row2_11" /> + latin:keyLabel="!label/keylabel_for_south_slavic_row2_11" /> </merge> diff --git a/java/res/xml/rowkeys_south_slavic3.xml b/java/res/xml/rowkeys_south_slavic3.xml index 97ff51ee1..d668ddf39 100644 --- a/java/res/xml/rowkeys_south_slavic3.xml +++ b/java/res/xml/rowkeys_south_slavic3.xml @@ -22,7 +22,7 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Key - latin:keyLabel="@string/keylabel_for_south_slavic_row3_1" /> + latin:keyLabel="!label/keylabel_for_south_slavic_row3_1" /> <!-- U+045F: "џ" CYRILLIC SMALL LETTER DZHE --> <Key latin:keyLabel="џ" /> @@ -42,7 +42,7 @@ <Key latin:keyLabel="м" /> <Key - latin:keyLabel="@string/keylabel_for_south_slavic_row3_8" /> + latin:keyLabel="!label/keylabel_for_south_slavic_row3_8" /> <!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE --> <Key latin:keyLabel="ж" /> diff --git a/java/res/xml/rowkeys_symbols1.xml b/java/res/xml/rowkeys_symbols1.xml index f6d6243d1..f9f8bb16c 100644 --- a/java/res/xml/rowkeys_symbols1.xml +++ b/java/res/xml/rowkeys_symbols1.xml @@ -22,43 +22,43 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Key - latin:keyLabel="@string/keylabel_for_symbols_1" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_1" - latin:moreKeys="@string/more_keys_for_symbols_1" /> + latin:keyLabel="!label/keylabel_for_symbols_1" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_1" + latin:moreKeys="!label/more_keys_for_symbols_1" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_2" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_2" - latin:moreKeys="@string/more_keys_for_symbols_2" /> + latin:keyLabel="!label/keylabel_for_symbols_2" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_2" + latin:moreKeys="!label/more_keys_for_symbols_2" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_3" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_3" - latin:moreKeys="@string/more_keys_for_symbols_3" /> + latin:keyLabel="!label/keylabel_for_symbols_3" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_3" + latin:moreKeys="!label/more_keys_for_symbols_3" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_4" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_4" - latin:moreKeys="@string/more_keys_for_symbols_4" /> + latin:keyLabel="!label/keylabel_for_symbols_4" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_4" + latin:moreKeys="!label/more_keys_for_symbols_4" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_5" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_5" - latin:moreKeys="@string/more_keys_for_symbols_5" /> + latin:keyLabel="!label/keylabel_for_symbols_5" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_5" + latin:moreKeys="!label/more_keys_for_symbols_5" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_6" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_6" - latin:moreKeys="@string/more_keys_for_symbols_6" /> + latin:keyLabel="!label/keylabel_for_symbols_6" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_6" + latin:moreKeys="!label/more_keys_for_symbols_6" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_7" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_7" - latin:moreKeys="@string/more_keys_for_symbols_7" /> + latin:keyLabel="!label/keylabel_for_symbols_7" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_7" + latin:moreKeys="!label/more_keys_for_symbols_7" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_8" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_8" - latin:moreKeys="@string/more_keys_for_symbols_8" /> + latin:keyLabel="!label/keylabel_for_symbols_8" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_8" + latin:moreKeys="!label/more_keys_for_symbols_8" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_9" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_9" - latin:moreKeys="@string/more_keys_for_symbols_9" /> + latin:keyLabel="!label/keylabel_for_symbols_9" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_9" + latin:moreKeys="!label/more_keys_for_symbols_9" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_0" - latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_0" - latin:moreKeys="@string/more_keys_for_symbols_0" /> + latin:keyLabel="!label/keylabel_for_symbols_0" + latin:additionalMoreKeys="!label/additional_more_keys_for_symbols_0" + latin:moreKeys="!label/more_keys_for_symbols_0" /> </merge> diff --git a/java/res/xml/rowkeys_symbols2.xml b/java/res/xml/rowkeys_symbols2.xml index 1092421d8..47865a989 100644 --- a/java/res/xml/rowkeys_symbols2.xml +++ b/java/res/xml/rowkeys_symbols2.xml @@ -28,21 +28,21 @@ <Key latin:keyStyle="currencyKeyStyle" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_percent" - latin:moreKeys="@string/more_keys_for_symbols_percent" /> + latin:keyLabel="!label/keylabel_for_symbols_percent" + latin:moreKeys="!label/more_keys_for_symbols_percent" /> <Key latin:keyLabel="&" /> <Key latin:keyLabel="*" - latin:moreKeys="@string/more_keys_for_star" /> + latin:moreKeys="!label/more_keys_for_star" /> <!-- U+2013: "–" EN DASH - U+2014: "—" EM DASH --> + U+2014: "—" EM DASH --> <Key latin:keyLabel="-" latin:moreKeys="_,–,—" /> <Key latin:keyLabel="+" - latin:moreKeys="@string/more_keys_for_plus" /> + latin:moreKeys="!label/more_keys_for_plus" /> <include latin:keyboardLayout="@xml/keys_parentheses" /> </merge> diff --git a/java/res/xml/rowkeys_symbols3.xml b/java/res/xml/rowkeys_symbols3.xml index 1a484d416..4cef6b255 100644 --- a/java/res/xml/rowkeys_symbols3.xml +++ b/java/res/xml/rowkeys_symbols3.xml @@ -31,20 +31,20 @@ latin:moreKeys="¡" /> <Key latin:keyLabel=""" - latin:moreKeys="@string/more_keys_for_double_quote" /> + latin:moreKeys="!label/more_keys_for_double_quote" /> <Key latin:keyLabel="\'" - latin:moreKeys="@string/more_keys_for_single_quote" /> + latin:moreKeys="!label/more_keys_for_single_quote" /> <Key latin:keyLabel=":" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_semicolon" - latin:moreKeys="@string/more_keys_for_symbols_semicolon" /> + latin:keyLabel="!label/keylabel_for_symbols_semicolon" + latin:moreKeys="!label/more_keys_for_symbols_semicolon" /> <Key latin:keyLabel="/" /> <Key - latin:keyLabel="@string/keylabel_for_symbols_question" - latin:moreKeys="@string/more_keys_for_symbols_question" /> + latin:keyLabel="!label/keylabel_for_symbols_question" + latin:moreKeys="!label/more_keys_for_symbols_question" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" diff --git a/java/res/xml/rowkeys_symbols_shift1.xml b/java/res/xml/rowkeys_symbols_shift1.xml index cc00aebcd..af3e87e88 100644 --- a/java/res/xml/rowkeys_symbols_shift1.xml +++ b/java/res/xml/rowkeys_symbols_shift1.xml @@ -30,7 +30,7 @@ <!-- U+2022: "•" BULLET --> <Key latin:keyLabel="•" - latin:moreKeys="@string/more_keys_for_bullet" /> + latin:moreKeys="!label/more_keys_for_bullet" /> <!-- U+221A: "√" SQUARE ROOT --> <Key latin:keyLabel="√" /> diff --git a/java/res/xml/rows_number_normal.xml b/java/res/xml/rows_number_normal.xml index 6f9429cd8..7015bb2d6 100644 --- a/java/res/xml/rows_number_normal.xml +++ b/java/res/xml/rows_number_normal.xml @@ -61,7 +61,7 @@ <Key latin:keyLabel="." latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="@string/more_keys_for_am_pm" + latin:moreKeys="!label/more_keys_for_am_pm" latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" /> </case> diff --git a/java/res/xml/rows_symbols4.xml b/java/res/xml/rows_symbols4.xml index 3e26650e8..de7e043e8 100644 --- a/java/res/xml/rows_symbols4.xml +++ b/java/res/xml/rows_symbols4.xml @@ -37,9 +37,9 @@ <!-- latin:hasShortcutKey="false" --> <default> <Key - latin:keyLabel="@string/keylabel_for_comma" + latin:keyLabel="!label/keylabel_for_comma" latin:keyLabelFlags="hasPopupHint" - latin:additionalMoreKeys="@string/more_keys_for_comma" + latin:additionalMoreKeys="!label/more_keys_for_comma" latin:keyStyle="f1MoreKeysStyle" /> </default> </switch> diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 0a2b010b6..fa7ec5cbf 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -26,6 +26,7 @@ import android.util.Log; import android.util.Xml; import com.android.inputmethod.keyboard.internal.KeySpecParser; +import com.android.inputmethod.keyboard.internal.KeySpecParser.MoreKeySpec; import com.android.inputmethod.keyboard.internal.KeyStyles; import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; @@ -59,10 +60,12 @@ public class Key { private static final int LABEL_FLAGS_ALIGN_LEFT = 0x01; private static final int LABEL_FLAGS_ALIGN_RIGHT = 0x02; private static final int LABEL_FLAGS_ALIGN_LEFT_OF_CENTER = 0x08; - private static final int LABEL_FLAGS_LARGE_LETTER = 0x10; - private static final int LABEL_FLAGS_FONT_NORMAL = 0x20; - private static final int LABEL_FLAGS_FONT_MONO_SPACE = 0x40; - public static final int LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO = 0x80; + private static final int LABEL_FLAGS_FONT_NORMAL = 0x10; + private static final int LABEL_FLAGS_FONT_MONO_SPACE = 0x20; + private static final int LABEL_FLAGS_FOLLOW_KEY_RATIO_MASK = 0x1C0; + private static final int LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO = 0x40; + private static final int LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO = 0x80; + private static final int LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO = 0xC0; private static final int LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO = 0x100; private static final int LABEL_FLAGS_HAS_POPUP_HINT = 0x200; private static final int LABEL_FLAGS_HAS_SHIFTED_LETTER_HINT = 0x400; @@ -104,7 +107,7 @@ public class Key { /** Text to output when pressed. This can be multiple characters, like ".com" */ public final CharSequence mOutputText; /** More keys */ - public final String[] mMoreKeys; + public final MoreKeySpec[] mMoreKeys; /** More keys column number and flags */ private final int mMoreKeysColumnAndFlags; private static final int MORE_KEYS_COLUMN_MASK = 0x000000ff; @@ -140,15 +143,12 @@ public class Key { private boolean mEnabled = true; /** - * This constructor is being used only for key in more keys keyboard. + * This constructor is being used only for keys in more keys keyboard. */ - public Key(Resources res, Keyboard.Params params, String moreKeySpec, - int x, int y, int width, int height, int labelFlags) { - this(params, KeySpecParser.getLabel(moreKeySpec), null, - KeySpecParser.getIconId(moreKeySpec), - KeySpecParser.getCode(res, moreKeySpec), - KeySpecParser.getOutputText(moreKeySpec), - x, y, width, height, labelFlags); + public Key(Keyboard.Params params, MoreKeySpec moreKeySpec, int x, int y, int width, int height, + int labelFlags) { + this(params, moreKeySpec.mLabel, null, moreKeySpec.mIconId, moreKeySpec.mCode, + moreKeySpec.mOutputText, x, y, width, height, labelFlags); } /** @@ -191,11 +191,11 @@ public class Key { * @param row the row that this key belongs to. row's x-coordinate will be the right edge of * this key. * @param parser the XML parser containing the attributes for this key - * @param keyStyles active key styles set * @throws XmlPullParserException */ public Key(Resources res, Keyboard.Params params, Keyboard.Builder.Row row, - XmlPullParser parser, KeyStyles keyStyles) throws XmlPullParserException { + XmlPullParser parser) throws XmlPullParserException { + final KeyStyles keyStyles = params.mKeyStyles; final float horizontalGap = isSpacer() ? 0 : params.mHorizontalGap; final int keyHeight = row.mRowHeight; mVerticalGap = params.mVerticalGap; @@ -212,7 +212,7 @@ public class Key { throw new XmlParseUtils.ParseException( "Unknown key style: " + styleName, parser); } else { - style = KeyStyles.getEmptyKeyStyle(); + style = keyStyles.getEmptyKeyStyle(); } final float keyXPos = row.getKeyX(keyAttr); @@ -278,13 +278,15 @@ public class Key { moreKeys = KeySpecParser.insertAddtionalMoreKeys(moreKeys, additionalMoreKeys); if (moreKeys != null) { actionFlags |= ACTION_FLAGS_ENABLE_LONG_PRESS; + mMoreKeys = new MoreKeySpec[moreKeys.length]; for (int i = 0; i < moreKeys.length; i++) { - moreKeys[i] = adjustCaseOfStringForKeyboardId( - moreKeys[i], preserveCase, params.mId); + mMoreKeys[i] = new MoreKeySpec(adjustCaseOfStringForKeyboardId( + moreKeys[i], preserveCase, params.mId), params.mCodesSet); } + } else { + mMoreKeys = null; } mActionFlags = actionFlags; - mMoreKeys = moreKeys; if ((mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0) { mLabel = params.mId.mCustomActionLabel; @@ -300,8 +302,9 @@ public class Key { } String outputText = adjustCaseOfStringForKeyboardId(style.getString( keyAttr, R.styleable.Keyboard_Key_keyOutputText), preserveCase, params.mId); - final int code = style.getInt( - keyAttr, R.styleable.Keyboard_Key_code, Keyboard.CODE_UNSPECIFIED); + final int code = KeySpecParser.parseCode(style.getString( + keyAttr, R.styleable.Keyboard_Key_code), + params.mCodesSet, Keyboard.CODE_UNSPECIFIED); // Choose the first letter of the label as primary code if not specified. if (code == Keyboard.CODE_UNSPECIFIED && TextUtils.isEmpty(outputText) && !TextUtils.isEmpty(mLabel)) { @@ -331,9 +334,10 @@ public class Key { mCode = adjustCaseOfCodeForKeyboardId(code, preserveCase, params.mId); } mOutputText = outputText; - mAltCode = adjustCaseOfCodeForKeyboardId(style.getInt(keyAttr, - R.styleable.Keyboard_Key_altCode, Keyboard.CODE_UNSPECIFIED), preserveCase, - params.mId); + mAltCode = adjustCaseOfCodeForKeyboardId(KeySpecParser.parseCode(style.getString( + keyAttr, R.styleable.Keyboard_Key_altCode), + params.mCodesSet, Keyboard.CODE_UNSPECIFIED), + preserveCase, params.mId); mHashCode = computeHashCode(this); keyAttr.recycle(); @@ -496,16 +500,17 @@ public class Key { } public int selectTextSize(int letter, int largeLetter, int label, int hintLabel) { - if (StringUtils.codePointCount(mLabel) > 1 - && (mLabelFlags & (LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO - | LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO)) == 0) { - return label; - } else if ((mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO) != 0) { - return hintLabel; - } else if ((mLabelFlags & LABEL_FLAGS_LARGE_LETTER) != 0) { + switch (mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_RATIO_MASK) { + case LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO: return largeLetter; - } else { + case LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO: return letter; + case LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO: + return label; + case LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO: + return hintLabel; + default: // No follow key ratio flag specified. + return StringUtils.codePointCount(mLabel) == 1 ? letter : label; } } @@ -561,6 +566,12 @@ public class Key { return (mMoreKeysColumnAndFlags & MORE_KEYS_FLAGS_HAS_LABELS) != 0; } + public int getMoreKeyLabelFlags() { + return hasLabelsInMoreKeys() + ? LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO + : LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO; + } + public boolean needsDividersInMoreKeys() { return (mMoreKeysColumnAndFlags & MORE_KEYS_FLAGS_NEEDS_DIVIDERS) != 0; } @@ -707,8 +718,8 @@ public class Key { public static class Spacer extends Key { public Spacer(Resources res, Keyboard.Params params, Keyboard.Builder.Row row, - XmlPullParser parser, KeyStyles keyStyles) throws XmlPullParserException { - super(res, params, row, parser, keyStyles); + XmlPullParser parser) throws XmlPullParserException { + super(res, params, row, parser); } /** diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 950b5e99b..58225e95d 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -28,9 +28,13 @@ import android.util.Xml; import android.view.InflateException; import com.android.inputmethod.keyboard.internal.KeyStyles; +import com.android.inputmethod.keyboard.internal.KeyboardCodesSet; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; +import com.android.inputmethod.keyboard.internal.KeyboardLabelsSet; import com.android.inputmethod.latin.LatinImeLogger; +import com.android.inputmethod.latin.LocaleUtils.RunInLocale; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.SubtypeLocale; import com.android.inputmethod.latin.Utils; import com.android.inputmethod.latin.XmlParseUtils; @@ -42,6 +46,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import java.util.Locale; /** * Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard @@ -238,6 +243,9 @@ public class Keyboard { public final ArrayList<Key> mShiftKeys = new ArrayList<Key>(); public final ArrayList<Key> mAltCodeKeysWhileTyping = new ArrayList<Key>(); public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet(); + public final KeyboardCodesSet mCodesSet = new KeyboardCodesSet(); + public final KeyboardLabelsSet mLabelsSet = new KeyboardLabelsSet(); + public final KeyStyles mKeyStyles = new KeyStyles(mLabelsSet); public KeyboardLayoutSet.KeysCache mKeysCache; @@ -498,7 +506,6 @@ public class Keyboard { private boolean mLeftEdge; private boolean mTopEdge; private Key mRightEdgeKey = null; - private final KeyStyles mKeyStyles = new KeyStyles(); /** * Container for keys in the keyboard. All keys in a row are at the same Y-coordinate. @@ -775,6 +782,20 @@ public class Keyboard { params.mThemeId = keyboardAttr.getInt(R.styleable.Keyboard_themeId, 0); params.mIconsSet.loadIcons(keyboardAttr); + final String language = params.mId.mLocale.getLanguage(); + params.mCodesSet.setLanguage(language); + params.mLabelsSet.setLanguage(language); + final RunInLocale<Void> job = new RunInLocale<Void>() { + @Override + protected Void job(Resources res) { + params.mLabelsSet.loadStringResources(mContext); + return null; + } + }; + // Null means the current system locale. + final Locale locale = language.equals(SubtypeLocale.NO_LANGUAGE) + ? null : params.mId.mLocale; + job.runInLocale(mResources, locale); final int resourceId = keyboardAttr.getResourceId( R.styleable.Keyboard_touchPositionCorrectionData, 0); @@ -884,7 +905,7 @@ public class Keyboard { XmlParseUtils.checkEndTag(TAG_KEY, parser); if (DEBUG) startEndTag("<%s /> skipped", TAG_KEY); } else { - final Key key = new Key(mResources, mParams, row, parser, mKeyStyles); + final Key key = new Key(mResources, mParams, row, parser); if (DEBUG) { startEndTag("<%s%s %s moreKeys=%s />", TAG_KEY, (key.isEnabled() ? "" : " disabled"), key, @@ -901,8 +922,7 @@ public class Keyboard { XmlParseUtils.checkEndTag(TAG_SPACER, parser); if (DEBUG) startEndTag("<%s /> skipped", TAG_SPACER); } else { - final Key.Spacer spacer = new Key.Spacer( - mResources, mParams, row, parser, mKeyStyles); + final Key.Spacer spacer = new Key.Spacer(mResources, mParams, row, parser); if (DEBUG) startEndTag("<%s />", TAG_SPACER); XmlParseUtils.checkEndTag(TAG_SPACER, parser); endKey(spacer); @@ -1207,7 +1227,7 @@ public class Keyboard { skip ? " skipped" : ""); } if (!skip) - mKeyStyles.parseKeyStyleAttributes(keyStyleAttr, keyAttrs, parser); + mParams.mKeyStyles.parseKeyStyleAttributes(keyStyleAttr, keyAttrs, parser); } finally { keyStyleAttr.recycle(); keyAttrs.recycle(); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java index 51cd90549..803a2948e 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java @@ -29,12 +29,10 @@ import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.compat.EditorInfoCompatUtils; import com.android.inputmethod.keyboard.KeyboardLayoutSet.Params.ElementParams; -import com.android.inputmethod.keyboard.internal.KeySpecParser; import com.android.inputmethod.latin.InputTypeUtils; import com.android.inputmethod.latin.LatinIME; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.LocaleUtils; -import com.android.inputmethod.latin.LocaleUtils.RunInLocale; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.StringUtils; import com.android.inputmethod.latin.SubtypeLocale; @@ -65,9 +63,7 @@ public class KeyboardLayoutSet { private static final String DEFAULT_KEYBOARD_LAYOUT_SET = "qwerty"; private static final char KEYBOARD_LAYOUT_SET_LOCALE_DELIMITER = ':'; - private static final String KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX = "xml/keyboard_layout_set_"; - private static final int DEFAULT_KEYBOARD_LAYOUT_SET_RESOURCE_ID = - R.xml.keyboard_layout_set_qwerty; + private static final String KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX = "keyboard_layout_set_"; private final Context mContext; private final Params mParams; @@ -185,14 +181,7 @@ public class KeyboardLayoutSet { builder.setAutoGenerate(sKeysCache); } final int keyboardXmlId = elementParams.mKeyboardXmlId; - final RunInLocale<Void> job = new RunInLocale<Void>() { - @Override - protected Void job(Resources res) { - builder.load(keyboardXmlId, id); - return null; - } - }; - job.runInLocale(context.getResources(), id.mLocale); + builder.load(keyboardXmlId, id); builder.setTouchPositionCorrectionEnabled(mParams.mTouchPositionCorrectionEnabled); builder.setProximityCharsCorrectionEnabled( elementParams.mProximityCharsCorrectionEnabled); @@ -319,21 +308,15 @@ public class KeyboardLayoutSet { throw new RuntimeException("Screen geometry is not specified"); if (mParams.mLocale == null) throw new RuntimeException("KeyboardLayoutSet subtype is not specified"); + final String packageName = mResources.getResourcePackageName( + R.xml.keyboard_layout_set_qwerty); final String keyboardLayoutSetName = mParams.mKeyboardLayoutSetName; - final int xmlId = KeySpecParser.getResourceId( - mResources, keyboardLayoutSetName, DEFAULT_KEYBOARD_LAYOUT_SET_RESOURCE_ID); - final RunInLocale<Void> job = new RunInLocale<Void>() { - @Override - protected Void job(Resources res) { - try { - parseKeyboardLayoutSet(res, xmlId); - } catch (Exception e) { - throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName); - } - return null; - } - }; - job.runInLocale(mResources, mParams.mLocale); + final int xmlId = mResources.getIdentifier(keyboardLayoutSetName, "xml", packageName); + try { + parseKeyboardLayoutSet(mResources, xmlId); + } catch (Exception e) { + throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName); + } return new KeyboardLayoutSet(mContext, mParams); } diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index 98da1eb65..5ebf92cf7 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -41,7 +41,6 @@ import com.android.inputmethod.accessibility.AccessibilityUtils; import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy; import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy; import com.android.inputmethod.keyboard.PointerTracker.TimerProxy; -import com.android.inputmethod.keyboard.internal.KeySpecParser; import com.android.inputmethod.latin.LatinIME; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; @@ -560,7 +559,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke } final int primaryCode = parentKey.mCode; if (parentKey.hasEmbeddedMoreKey()) { - final int embeddedCode = KeySpecParser.getCode(getResources(), parentKey.mMoreKeys[0]); + final int embeddedCode = parentKey.mMoreKeys[0].mCode; tracker.onLongPressed(); invokeCodeInput(embeddedCode); invokeReleaseKey(primaryCode); diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java index 72a5d0f05..7154086e2 100644 --- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java @@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard; import android.graphics.Paint; import android.graphics.drawable.Drawable; -import com.android.inputmethod.keyboard.internal.KeySpecParser; +import com.android.inputmethod.keyboard.internal.KeySpecParser.MoreKeySpec; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.StringUtils; @@ -301,8 +301,8 @@ public class MoreKeysKeyboard extends Keyboard { ? view.mKeyDrawParams.mKeyLabelSize : view.mKeyDrawParams.mKeyLetterSize); int maxWidth = minKeyWidth; - for (String moreKeySpec : parentKey.mMoreKeys) { - final String label = KeySpecParser.getLabel(moreKeySpec); + for (final MoreKeySpec spec : parentKey.mMoreKeys) { + final String label = spec.mLabel; // If the label is single letter, minKeyWidth is enough to hold the label. if (label != null && StringUtils.codePointCount(label) > 1) { final int width = (int)view.getLabelWidth(label, paint) + padding; @@ -332,17 +332,14 @@ public class MoreKeysKeyboard extends Keyboard { @Override public MoreKeysKeyboard build() { final MoreKeysKeyboardParams params = mParams; - // moreKeyFlags == 0 means that the rendered text size will be determined by its - // label's code point count. - final int moreKeyFlags = mParentKey.hasLabelsInMoreKeys() ? 0 - : Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO; - final String[] moreKeys = mParentKey.mMoreKeys; + final int moreKeyFlags = mParentKey.getMoreKeyLabelFlags(); + final MoreKeySpec[] moreKeys = mParentKey.mMoreKeys; for (int n = 0; n < moreKeys.length; n++) { - final String moreKeySpec = moreKeys[n]; + final MoreKeySpec moreKeySpec = moreKeys[n]; final int row = n / params.mNumColumns; final int x = params.getX(n, row); final int y = params.getY(row); - final Key key = new Key(mResources, params, moreKeySpec, x, y, + final Key key = new Key(params, moreKeySpec, x, y, params.mDefaultKeyWidth, params.mDefaultRowHeight, moreKeyFlags); params.markAsEdgeKey(key, row); params.onAddKey(key); diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java index 4abd887f0..2981a8e5c 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java @@ -16,28 +16,30 @@ package com.android.inputmethod.keyboard.internal; -import android.content.res.Resources; import android.text.TextUtils; import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.latin.LatinImeLogger; -import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.StringUtils; import java.util.ArrayList; import java.util.Arrays; /** - * String parser of moreKeys attribute of Key. - * The string is comma separated texts each of which represents one "more key". - * - String resource can be embedded into specification @string/name. This is done before parsing - * comma. + * The string parser of more keys specification. + * The specification is comma separated texts each of which represents one "more key". + * The specification might have label or string resource reference in it. These references are + * expanded before parsing comma. + * - Label reference should be a string representation of label (!label/label_name) + * - String resource reference should be a string representation of resource (!label/resource_name) * Each "more key" specification is one of the following: - * - A single letter (Letter) * - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText). - * - Icon followed by keyOutputText or code (@icon/icon_name|@integer/key_code) + * - Icon followed by keyOutputText or code (!icon/icon_name|!code/code_name) + * - Icon should be a string representation of icon (!icon/icon_name). + * - Code should be a code point presented by hexadecimal string prefixed with "0x", or a string + * representation of code (!code/code_name). * Special character, comma ',' backslash '\', and bar '|' can be escaped by '\' character. - * Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well. + * Note that the '\' is also parsed by XML parser and CSV parser as well. * See {@link KeyboardIconsSet} about icon_name. */ public class KeySpecParser { @@ -48,14 +50,27 @@ public class KeySpecParser { // Constants for parsing. private static int COMMA = ','; private static final char ESCAPE_CHAR = '\\'; - private static final char PREFIX_AT = '@'; - private static final char SUFFIX_SLASH = '/'; - private static final String PREFIX_STRING = PREFIX_AT + "string" + SUFFIX_SLASH; private static final char LABEL_END = '|'; - private static final String PREFIX_ICON = PREFIX_AT + "icon" + SUFFIX_SLASH; - private static final String PREFIX_CODE = PREFIX_AT + "integer" + SUFFIX_SLASH; + private static final String PREFIX_LABEL = "!label/"; + private static final String PREFIX_ICON = "!icon/"; + private static final String PREFIX_CODE = "!code/"; + private static final String PREFIX_HEX = "0x"; private static final String ADDITIONAL_MORE_KEY_MARKER = "%"; + public static class MoreKeySpec { + public final int mCode; + public final String mLabel; + public final String mOutputText; + public final int mIconId; + + public MoreKeySpec(final String moreKeySpec, final KeyboardCodesSet codesSet) { + mCode = getCode(moreKeySpec, codesSet); + mLabel = getLabel(moreKeySpec); + mOutputText = getOutputText(moreKeySpec); + mIconId = getIconId(moreKeySpec); + } + } + private KeySpecParser() { // Intentional empty constructor for utility class. } @@ -144,7 +159,7 @@ public class KeySpecParser { return parseEscape(moreKeySpec.substring(end + /* LABEL_END */1)); } - public static String getOutputText(String moreKeySpec) { + private static String getOutputText(String moreKeySpec) { if (hasCode(moreKeySpec)) { return null; } @@ -168,17 +183,13 @@ public class KeySpecParser { return (StringUtils.codePointCount(label) == 1) ? null : label; } - public static int getCode(Resources res, String moreKeySpec) { + private static int getCode(String moreKeySpec, KeyboardCodesSet codesSet) { if (hasCode(moreKeySpec)) { final int end = indexOfLabelEnd(moreKeySpec, 0); if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0) { throw new KeySpecParserError("Multiple " + LABEL_END + ": " + moreKeySpec); } - final int resId = getResourceId(res, - moreKeySpec.substring(end + /* LABEL_END */1 + /* PREFIX_AT */1), - R.string.english_ime_name); - final int code = res.getInteger(resId); - return code; + return parseCode(moreKeySpec.substring(end + 1), codesSet, Keyboard.CODE_UNSPECIFIED); } final String outputText = getOutputTextInternal(moreKeySpec); if (outputText != null) { @@ -197,7 +208,18 @@ public class KeySpecParser { return Keyboard.CODE_OUTPUT_TEXT; } - public static int getIconId(String moreKeySpec) { + public static int parseCode(String text, KeyboardCodesSet codesSet, int defCode) { + if (text == null) return defCode; + if (text.startsWith(PREFIX_CODE)) { + return codesSet.getCode(text.substring(PREFIX_CODE.length())); + } else if (text.startsWith(PREFIX_HEX)) { + return Integer.parseInt(text.substring(PREFIX_HEX.length()), 16); + } else { + return Integer.parseInt(text); + } + } + + private static int getIconId(String moreKeySpec) { if (hasIcon(moreKeySpec)) { final int end = moreKeySpec.indexOf(LABEL_END, PREFIX_ICON.length()); final String name = moreKeySpec.substring(PREFIX_ICON.length(), end); @@ -318,17 +340,7 @@ public class KeySpecParser { } } - public static int getResourceId(Resources res, String name, int packageNameResId) { - String packageName = res.getResourcePackageName(packageNameResId); - int resId = res.getIdentifier(name, null, packageName); - if (resId == 0) { - throw new RuntimeException("Unknown resource: " + name); - } - return resId; - } - - private static String resolveStringResource(String rawText, Resources res, - int packageNameResId) { + public static String resolveLabelReference(String rawText, KeyboardLabelsSet labelsSet) { int level = 0; String text = rawText; StringBuilder sb; @@ -339,21 +351,20 @@ public class KeySpecParser { } final int size = text.length(); - if (size < PREFIX_STRING.length()) { + if (size < PREFIX_LABEL.length()) { return text; } sb = null; for (int pos = 0; pos < size; pos++) { final char c = text.charAt(pos); - if (c == PREFIX_AT && text.startsWith(PREFIX_STRING, pos)) { + if (text.startsWith(PREFIX_LABEL, pos) && labelsSet != null) { if (sb == null) { sb = new StringBuilder(text.substring(0, pos)); } - final int end = searchResourceNameEnd(text, pos + PREFIX_STRING.length()); - final String resName = text.substring(pos + 1, end); - final int resId = getResourceId(res, resName, packageNameResId); - sb.append(res.getString(resId)); + final int end = searchLabelNameEnd(text, pos + PREFIX_LABEL.length()); + final String name = text.substring(pos + PREFIX_LABEL.length(), end); + sb.append(labelsSet.getLabel(name)); pos = end - 1; } else if (c == ESCAPE_CHAR) { if (sb != null) { @@ -374,7 +385,7 @@ public class KeySpecParser { return text; } - private static int searchResourceNameEnd(String text, int start) { + private static int searchLabelNameEnd(String text, int start) { final int size = text.length(); for (int pos = start; pos < size; pos++) { final char c = text.charAt(pos); @@ -387,8 +398,8 @@ public class KeySpecParser { return size; } - public static String[] parseCsvString(String rawText, Resources res, int packageNameResId) { - final String text = resolveStringResource(rawText, res, packageNameResId); + public static String[] parseCsvString(String rawText, KeyboardLabelsSet labelsSet) { + final String text = resolveLabelReference(rawText, labelsSet); final int size = text.length(); if (size == 0) { return null; diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java index 9e5c227eb..8e0b21607 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java @@ -34,24 +34,55 @@ public class KeyStyles { private final HashMap<String, DeclaredKeyStyle> mStyles = new HashMap<String, DeclaredKeyStyle>(); - private static final KeyStyle EMPTY_KEY_STYLE = new EmptyKeyStyle(); - public interface KeyStyle { - public String[] getStringArray(TypedArray a, int index); - public String getString(TypedArray a, int index); - public int getInt(TypedArray a, int index, int defaultValue); - public int getFlag(TypedArray a, int index); + private final KeyboardLabelsSet mLabelsSet; + private final KeyStyle mEmptyKeyStyle; + + public KeyStyles(KeyboardLabelsSet labelsSet) { + mLabelsSet = labelsSet; + mEmptyKeyStyle = new EmptyKeyStyle(labelsSet); + } + + public static abstract class KeyStyle { + protected final KeyboardLabelsSet mLabelsSet; + + public KeyStyle(KeyboardLabelsSet labelsSet) { + mLabelsSet = labelsSet; + } + + public abstract String[] getStringArray(TypedArray a, int index); + public abstract String getString(TypedArray a, int index); + public abstract int getInt(TypedArray a, int index, int defaultValue); + public abstract int getFlag(TypedArray a, int index); + + protected String parseString(TypedArray a, int index) { + if (a.hasValue(index)) { + return KeySpecParser.resolveLabelReference(a.getString(index), mLabelsSet); + } + return null; + } + + protected String[] parseStringArray(TypedArray a, int index) { + if (a.hasValue(index)) { + return KeySpecParser.parseCsvString(a.getString(index), mLabelsSet); + } + return null; + } } - static class EmptyKeyStyle implements KeyStyle { + private static class EmptyKeyStyle extends KeyStyle { + public EmptyKeyStyle(KeyboardLabelsSet labelsSet) { + super(labelsSet); + } + @Override public String[] getStringArray(TypedArray a, int index) { - return KeyStyles.parseStringArray(a, index); + return parseStringArray(a, index); } @Override public String getString(TypedArray a, int index) { - return a.getString(index); + return parseString(a, index); } @Override @@ -65,9 +96,13 @@ public class KeyStyles { } } - static class DeclaredKeyStyle implements KeyStyle { + private static class DeclaredKeyStyle extends KeyStyle { private final HashMap<Integer, Object> mStyleAttributes = new HashMap<Integer, Object>(); + public DeclaredKeyStyle(KeyboardLabelsSet labelsSet) { + super(labelsSet); + } + @Override public String[] getStringArray(TypedArray a, int index) { if (a.hasValue(index)) { @@ -79,7 +114,7 @@ public class KeyStyles { @Override public String getString(TypedArray a, int index) { if (a.hasValue(index)) { - return a.getString(index); + return parseString(a, index); } return (String)mStyleAttributes.get(index); } @@ -102,8 +137,8 @@ public class KeyStyles { void readKeyAttributes(TypedArray keyAttr) { // TODO: Currently not all Key attributes can be declared as style. - readInt(keyAttr, R.styleable.Keyboard_Key_code); - readInt(keyAttr, R.styleable.Keyboard_Key_altCode); + readString(keyAttr, R.styleable.Keyboard_Key_code); + readString(keyAttr, R.styleable.Keyboard_Key_altCode); readString(keyAttr, R.styleable.Keyboard_Key_keyLabel); readString(keyAttr, R.styleable.Keyboard_Key_keyOutputText); readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel); @@ -120,7 +155,7 @@ public class KeyStyles { private void readString(TypedArray a, int index) { if (a.hasValue(index)) { - mStyleAttributes.put(index, a.getString(index)); + mStyleAttributes.put(index, parseString(a, index)); } } @@ -131,16 +166,15 @@ public class KeyStyles { } private void readFlag(TypedArray a, int index) { - final Integer value = (Integer)mStyleAttributes.get(index); if (a.hasValue(index)) { + final Integer value = (Integer)mStyleAttributes.get(index); mStyleAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0)); } } private void readStringArray(TypedArray a, int index) { - final String[] value = parseStringArray(a, index); - if (value != null) { - mStyleAttributes.put(index, value); + if (a.hasValue(index)) { + mStyleAttributes.put(index, parseStringArray(a, index)); } } @@ -149,14 +183,6 @@ public class KeyStyles { } } - static String[] parseStringArray(TypedArray a, int index) { - if (a.hasValue(index)) { - return KeySpecParser.parseCsvString( - a.getString(index), a.getResources(), R.string.english_ime_name); - } - return null; - } - public void parseKeyStyleAttributes(TypedArray keyStyleAttr, TypedArray keyAttrs, XmlPullParser parser) throws XmlPullParserException { final String styleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_styleName); @@ -169,7 +195,7 @@ public class KeyStyles { } } - final DeclaredKeyStyle style = new DeclaredKeyStyle(); + final DeclaredKeyStyle style = new DeclaredKeyStyle(mLabelsSet); if (keyStyleAttr.hasValue(R.styleable.Keyboard_KeyStyle_parentStyle)) { final String parentStyle = keyStyleAttr.getString( R.styleable.Keyboard_KeyStyle_parentStyle); @@ -188,7 +214,7 @@ public class KeyStyles { return mStyles.get(styleName); } - public static KeyStyle getEmptyKeyStyle() { - return EMPTY_KEY_STYLE; + public KeyStyle getEmptyKeyStyle() { + return mEmptyKeyStyle; } } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java new file mode 100644 index 000000000..736a96c56 --- /dev/null +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.android.inputmethod.keyboard.internal; + +import com.android.inputmethod.keyboard.Keyboard; + +import java.util.HashMap; + +public class KeyboardCodesSet { + private static final HashMap<String, int[]> sLanguageToCodesMap = + new HashMap<String, int[]>(); + private static final HashMap<String, Integer> sNameToIdMap = new HashMap<String, Integer>(); + + private int[] mCodes = DEFAULT; + + public void setLanguage(final String language) { + final int[] codes = sLanguageToCodesMap.get(language); + mCodes = (codes != null) ? codes : DEFAULT; + } + + public int getCode(final String name) { + final Integer id = sNameToIdMap.get(name); + if (id == null) throw new RuntimeException("Unknown key code: " + name); + return mCodes[id]; + } + + private static final String[] ID_TO_NAME = { + "key_tab", + "key_enter", + "key_space", + "key_shift", + "key_switch_alpha_symbol", + "key_output_text", + "key_delete", + "key_settings", + "key_shortcut", + "key_action_enter", + "key_action_next", + "key_action_previous", + "key_language_switch", + "key_unspecified", + "key_left_parenthesis", + "key_right_parenthesis", + "key_less_than", + "key_greater_than", + "key_left_square_bracket", + "key_right_square_bracket", + "key_left_curly_bracket", + "key_right_curly_bracket", + }; + + private static final int CODE_LEFT_PARENTHESIS = '('; + private static final int CODE_RIGHT_PARENTHESIS = ')'; + private static final int CODE_LESS_THAN_SIGN = '<'; + private static final int CODE_GREATER_THAN_SIGN = '>'; + private static final int CODE_LEFT_SQUARE_BRACKET = '['; + private static final int CODE_RIGHT_SQUARE_BRACKET = ']'; + private static final int CODE_LEFT_CURLY_BRACKET = '{'; + private static final int CODE_RIGHT_CURLY_BRACKET = '}'; + + private static final int[] DEFAULT = { + Keyboard.CODE_TAB, + Keyboard.CODE_ENTER, + Keyboard.CODE_SPACE, + Keyboard.CODE_SHIFT, + Keyboard.CODE_SWITCH_ALPHA_SYMBOL, + Keyboard.CODE_OUTPUT_TEXT, + Keyboard.CODE_DELETE, + Keyboard.CODE_SETTINGS, + Keyboard.CODE_SHORTCUT, + Keyboard.CODE_ACTION_ENTER, + Keyboard.CODE_ACTION_NEXT, + Keyboard.CODE_ACTION_PREVIOUS, + Keyboard.CODE_LANGUAGE_SWITCH, + Keyboard.CODE_UNSPECIFIED, + CODE_LEFT_PARENTHESIS, + CODE_RIGHT_PARENTHESIS, + CODE_LESS_THAN_SIGN, + CODE_GREATER_THAN_SIGN, + CODE_LEFT_SQUARE_BRACKET, + CODE_RIGHT_SQUARE_BRACKET, + CODE_LEFT_CURLY_BRACKET, + CODE_RIGHT_CURLY_BRACKET, + }; + + private static final int[] RTL = { + DEFAULT[0], + DEFAULT[1], + DEFAULT[2], + DEFAULT[3], + DEFAULT[4], + DEFAULT[5], + DEFAULT[6], + DEFAULT[7], + DEFAULT[8], + DEFAULT[9], + DEFAULT[10], + DEFAULT[11], + DEFAULT[12], + DEFAULT[13], + CODE_RIGHT_PARENTHESIS, + CODE_LEFT_PARENTHESIS, + CODE_GREATER_THAN_SIGN, + CODE_LESS_THAN_SIGN, + CODE_RIGHT_SQUARE_BRACKET, + CODE_LEFT_SQUARE_BRACKET, + CODE_RIGHT_CURLY_BRACKET, + CODE_LEFT_CURLY_BRACKET, + }; + + private static final String LANGUAGE_DEFAULT = "DEFAULT"; + private static final String LANGUAGE_ARABIC = "ar"; + private static final String LANGUAGE_PERSIAN = "fa"; + private static final String LANGUAGE_HEBREW = "iw"; + + private static final Object[] LANGUAGE_AND_CODES = { + LANGUAGE_DEFAULT, DEFAULT, + LANGUAGE_ARABIC, RTL, + LANGUAGE_PERSIAN, RTL, + LANGUAGE_HEBREW, RTL, + }; + + static { + for (int i = 0; i < ID_TO_NAME.length; i++) { + sNameToIdMap.put(ID_TO_NAME[i], i); + } + + for (int i = 0; i < LANGUAGE_AND_CODES.length; i += 2) { + final String language = (String)LANGUAGE_AND_CODES[i]; + final int[] codes = (int[])LANGUAGE_AND_CODES[i + 1]; + sLanguageToCodesMap.put(language, codes); + } + } +} diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java new file mode 100644 index 000000000..a46f3bf1b --- /dev/null +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java @@ -0,0 +1,2477 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.android.inputmethod.keyboard.internal; + +import android.content.Context; +import android.content.res.Resources; + +import com.android.inputmethod.latin.R; + +import java.util.HashMap; + +/** + * !!!!! DO NOT EDIT THIS FILE !!!!! + * This file is generated by tools/makelabel. + */ +public final class KeyboardLabelsSet { + // Language to labels map. + private static final HashMap<String, String[]> sLocaleToLabelsMap = + new HashMap<String, String[]>(); + private static final HashMap<String, Integer> sNameToIdMap = new HashMap<String, Integer>(); + + private String[] mLabels; + // Resource name to label map. + private HashMap<String, String> mResourceNameToLabelsMap = new HashMap<String, String>(); + + public void setLanguage(final String language) { + mLabels = sLocaleToLabelsMap.get(language); + if (mLabels == null) { + mLabels = LANGUAGE_DEFAULT; + } + } + + public void loadStringResources(Context context) { + loadStringResourcesInternal(context, RESOURCE_NAMES, R.string.english_ime_name); + } + + /* package for test */ + void loadStringResourcesInternal(Context context, final String[] resourceNames, + int referenceId) { + final Resources res = context.getResources(); + final String packageName = res.getResourcePackageName(referenceId); + for (final String resName : resourceNames) { + final int resId = res.getIdentifier(resName, "string", packageName); + mResourceNameToLabelsMap.put(resName, res.getString(resId)); + } + } + + public String getLabel(final String name) { + if (mResourceNameToLabelsMap.containsKey(name)) { + return mResourceNameToLabelsMap.get(name); + } + final Integer id = sNameToIdMap.get(name); + if (id == null) throw new RuntimeException("Unknown label: " + name); + final String label = (id < mLabels.length) ? mLabels[id] : null; + return (label == null) ? LANGUAGE_DEFAULT[id] : label; + } + + private static final String[] RESOURCE_NAMES = { + // These labels' name should be aligned with the @string/<name> in values/strings.xml. + // Labels for action. + "label_go_key", + // "label_search_key", + "label_send_key", + "label_next_key", + "label_done_key", + "label_previous_key", + // Other labels. + "label_to_alpha_key", + "label_to_symbol_key", + "label_to_symbol_with_microphone_key", + "label_pause_key", + "label_wait_key", + }; + + private static final String[] NAMES = { + /* 0 */ "more_keys_for_a", + /* 1 */ "more_keys_for_e", + /* 2 */ "more_keys_for_i", + /* 3 */ "more_keys_for_o", + /* 4 */ "more_keys_for_u", + /* 5 */ "more_keys_for_s", + /* 6 */ "more_keys_for_n", + /* 7 */ "more_keys_for_c", + /* 8 */ "more_keys_for_y", + /* 9 */ "more_keys_for_d", + /* 10 */ "more_keys_for_r", + /* 11 */ "more_keys_for_t", + /* 12 */ "more_keys_for_z", + /* 13 */ "more_keys_for_k", + /* 14 */ "more_keys_for_l", + /* 15 */ "more_keys_for_g", + /* 16 */ "more_keys_for_v", + /* 17 */ "more_keys_for_h", + /* 18 */ "more_keys_for_j", + /* 19 */ "more_keys_for_w", + /* 20 */ "keylabel_for_nordic_row1_11", + /* 21 */ "keylabel_for_nordic_row2_10", + /* 22 */ "keylabel_for_nordic_row2_11", + /* 23 */ "more_keys_for_nordic_row2_10", + /* 24 */ "more_keys_for_nordic_row2_11", + /* 25 */ "keylabel_for_east_slavic_row1_9", + /* 26 */ "keylabel_for_east_slavic_row2_1", + /* 27 */ "keylabel_for_east_slavic_row3_5", + /* 28 */ "more_keys_for_cyrillic_u", + /* 29 */ "more_keys_for_cyrillic_ye", + /* 30 */ "more_keys_for_cyrillic_en", + /* 31 */ "more_keys_for_cyrillic_ha", + /* 32 */ "more_keys_for_east_slavic_row2_1", + /* 33 */ "more_keys_for_cyrillic_o", + /* 34 */ "more_keys_for_cyrillic_soft_sign", + /* 35 */ "keylabel_for_south_slavic_row1_6", + /* 36 */ "keylabel_for_south_slavic_row2_11", + /* 37 */ "keylabel_for_south_slavic_row3_1", + /* 38 */ "keylabel_for_south_slavic_row3_8", + /* 39 */ "more_keys_for_cyrillic_ie", + /* 40 */ "more_keys_for_cyrillic_i", + /* 41 */ "more_keys_for_single_quote", + /* 42 */ "more_keys_for_double_quote", + /* 43 */ "more_keys_for_tablet_double_quote", + /* 44 */ "more_keys_for_currency_dollar", + /* 45 */ "more_keys_for_currency_euro", + /* 46 */ "more_keys_for_currency_pound", + /* 47 */ "more_keys_for_currency_general", + /* 48 */ "more_keys_for_smiley", + /* 49 */ "more_keys_for_punctuation", + /* 50 */ "keyhintlabel_for_punctuation", + /* 51 */ "keylabel_for_popular_domain", + /* 52 */ "more_keys_for_popular_domain", + /* 53 */ "keylabel_for_symbols_1", + /* 54 */ "keylabel_for_symbols_2", + /* 55 */ "keylabel_for_symbols_3", + /* 56 */ "keylabel_for_symbols_4", + /* 57 */ "keylabel_for_symbols_5", + /* 58 */ "keylabel_for_symbols_6", + /* 59 */ "keylabel_for_symbols_7", + /* 60 */ "keylabel_for_symbols_8", + /* 61 */ "keylabel_for_symbols_9", + /* 62 */ "keylabel_for_symbols_0", + /* 63 */ "additional_more_keys_for_symbols_1", + /* 64 */ "additional_more_keys_for_symbols_2", + /* 65 */ "additional_more_keys_for_symbols_3", + /* 66 */ "additional_more_keys_for_symbols_4", + /* 67 */ "additional_more_keys_for_symbols_5", + /* 68 */ "additional_more_keys_for_symbols_6", + /* 69 */ "additional_more_keys_for_symbols_7", + /* 70 */ "additional_more_keys_for_symbols_8", + /* 71 */ "additional_more_keys_for_symbols_9", + /* 72 */ "additional_more_keys_for_symbols_0", + /* 73 */ "more_keys_for_symbols_1", + /* 74 */ "more_keys_for_symbols_2", + /* 75 */ "more_keys_for_symbols_3", + /* 76 */ "more_keys_for_symbols_4", + /* 77 */ "more_keys_for_symbols_5", + /* 78 */ "more_keys_for_symbols_6", + /* 79 */ "more_keys_for_symbols_7", + /* 80 */ "more_keys_for_symbols_8", + /* 81 */ "more_keys_for_symbols_9", + /* 82 */ "more_keys_for_symbols_0", + /* 83 */ "more_keys_for_am_pm", + /* 84 */ "settings_as_more_key", + /* 85 */ "keylabel_for_comma", + /* 86 */ "more_keys_for_comma", + /* 87 */ "action_next_as_more_key", + /* 88 */ "action_previous_as_more_key", + /* 89 */ "keylabel_for_symbols_question", + /* 90 */ "keylabel_for_symbols_semicolon", + /* 91 */ "keylabel_for_symbols_percent", + /* 92 */ "more_keys_for_symbols_question", + /* 93 */ "more_keys_for_symbols_semicolon", + /* 94 */ "more_keys_for_symbols_percent", + /* 95 */ "keylabel_for_tablet_comma", + /* 96 */ "keyhintlabel_for_tablet_comma", + /* 97 */ "more_keys_for_tablet_comma", + /* 98 */ "keyhintlabel_for_tablet_period", + /* 99 */ "more_keys_for_tablet_period", + /* 100 */ "keylabel_for_apostrophe", + /* 101 */ "keylabel_for_dash", + /* 102 */ "keyhintlabel_for_apostrophe", + /* 103 */ "keyhintlabel_for_dash", + /* 104 */ "more_keys_for_apostrophe", + /* 105 */ "more_keys_for_dash", + /* 106 */ "more_keys_for_bullet", + /* 107 */ "more_keys_for_star", + /* 108 */ "more_keys_for_plus", + /* 109 */ "more_keys_for_left_parenthesis", + /* 110 */ "more_keys_for_right_parenthesis", + /* 111 */ "more_keys_for_less_than", + /* 112 */ "more_keys_for_greater_than", + /* 113 */ "label_to_more_symbol_key", + /* 114 */ "label_to_more_symbol_for_tablet_key", + /* 115 */ "label_tab_key", + /* 116 */ "label_to_phone_numeric_key", + /* 117 */ "label_to_phone_symbols_key", + /* 118 */ "label_time_am", + /* 119 */ "label_time_pm", + }; + + private static final String EMPTY = ""; + + /* Default labels */ + private static final String[] LANGUAGE_DEFAULT = { + /* 0~ */ + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, + EMPTY, EMPTY, + /* ~40 */ + /* 41 */ "!fixedColumnOrder!4,\u2018,\u2019,\u201A,\u201B", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. <string name="more_keys_for_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»</string> + /* 42 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB,\u00BB", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> + /* 43 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB,\u00BB,\u2018,\u2019,\u201A,\u201B", + // U+00A2: "¢" CENT SIGN + // U+00A3: "£" POUND SIGN + // U+20AC: "€" EURO SIGN + // U+00A5: "¥" YEN SIGN + // U+20B1: "₱" PESO SIGN + /* 44 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", + /* 45 */ "\u00A2,\u00A3,$,\u00A5,\u20B1", + /* 46 */ "\u00A2,$,\u20AC,\u00A5,\u20B1", + /* 47 */ "\u00A2,$,\u20AC,\u00A3,\u00A5,\u20B1", + /* 48 */ "!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ ", + /* 49 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)", + /* 50 */ EMPTY, + /* 51 */ ".com", + // popular web domains for the locale - most popular, displayed on the keyboard + /* 52 */ "!hasLabels!,.net,.org,.gov,.edu", + /* 53 */ "1", + /* 54 */ "2", + /* 55 */ "3", + /* 56 */ "4", + /* 57 */ "5", + /* 58 */ "6", + /* 59 */ "7", + /* 60 */ "8", + /* 61 */ "9", + /* 62 */ "0", + /* 63~ */ + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, + /* ~72 */ + // U+00B9: "¹" SUPERSCRIPT ONE + // U+00BD: "½" VULGAR FRACTION ONE HALF + // U+2153: "⅓" VULGAR FRACTION ONE THIRD + // U+00BC: "¼" VULGAR FRACTION ONE QUARTER + // U+215B: "⅛" VULGAR FRACTION ONE EIGHTH + /* 73 */ "\u00B9,\u00BD,\u2153,\u00BC,\u215B", + // U+00B2: "²" SUPERSCRIPT TWO + // U+2154: "⅔" VULGAR FRACTION TWO THIRDS + /* 74 */ "\u00B2,\u2154", + // U+00B3: "³" SUPERSCRIPT THREE + // U+00BE: "¾" VULGAR FRACTION THREE QUARTERS + // U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS + /* 75 */ "\u00B3,\u00BE,\u215C", + // U+2074: "⁴" SUPERSCRIPT FOUR + /* 76 */ "\u2074", + // U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS + /* 77 */ "\u215D", + /* 78 */ EMPTY, + // U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS + /* 79 */ "\u215E", + /* 80 */ EMPTY, + /* 81 */ EMPTY, + // U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N + // U+2205: "∅" EMPTY SET + /* 82 */ "\u207F,\u2205", + /* 83 */ "!fixedColumnOrder!2,!hasLabels!,!label/label_time_am,!label/label_time_pm", + /* 84 */ "!icon/settingsKey|!code/key_settings", + /* 85 */ ",", + /* 86 */ EMPTY, + /* 87 */ "!hasLabels!,!label/label_next_key|!code/key_action_next", + /* 88 */ "!hasLabels!,!label/label_previous_key|!code/key_action_previous", + /* 89 */ "?", + /* 90 */ ";", + /* 91 */ "%", + // U+00BF: "¿" INVERTED QUESTION MARK + /* 92 */ "\u00BF", + /* 93 */ EMPTY, + // U+2030: "‰" PER MILLE SIGN + /* 94 */ "\u2030", + /* 95 */ ",", + /* 96 */ "!", + /* 97 */ "!", + /* 98 */ "?", + /* 99 */ "?", + /* 100 */ "\'", + /* 101 */ "-", + /* 102 */ "\"", + /* 103 */ "_", + /* 104 */ "\"", + /* 105 */ "_", + // U+266A: "♪" EIGHTH NOTE + // U+2665: "♥" BLACK HEART SUIT + // U+2660: "♠" BLACK SPADE SUIT + // U+2666: "♦" BLACK DIAMOND SUIT + // U+2663: "♣" BLACK CLUB SUIT + /* 106 */ "\u266A,\u2665,\u2660,\u2666,\u2663", + // U+2020: "†" DAGGER + // U+2021: "‡" DOUBLE DAGGER + // U+2605: "★" BLACK STAR + /* 107 */ "\u2020,\u2021,\u2605", + // U+00B1: "±" PLUS-MINUS SIGN + /* 108 */ "\u00B1", + // The all letters need to be mirrored are found at + // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt + /* 109 */ "!fixedColumnOrder!3,<,{,[", + /* 110 */ "!fixedColumnOrder!3,>,},]", + // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK + // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + // U+2264: "≤" LESS-THAN OR EQUAL TO + // U+2265: "≥" GREATER-THAN EQUAL TO + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + // The following characters don't need BIDI mirroring. + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK + /* 111 */ "!fixedColumnOrder!3,\u2039,\u2264,\u00AB", + /* 112 */ "!fixedColumnOrder!3,\u203A,\u2265,\u00BB", + // Label for "switch to more symbol" modifier key. Must be short to fit on key! + /* 113 */ "= \\ <", + // Label for "switch to more symbol" modifier key on tablets. Must be short to fit on key! + /* 114 */ "~ \\ {", + // Label for "Tab" key. Must be short to fit on key! + /* 115 */ "Tab", + // Label for "switch to phone numeric" key. Must be short to fit on key! + /* 116 */ "123", + // Label for "switch to phone symbols" key. Must be short to fit on key! U+FF0A: "*" FULLWIDTH ASTERISK + // U+FF03: "#" FULLWIDTH NUMBER SIGN + /* 117 */ "\uFF0A\uFF03", + // Key label for "ante meridiem" + /* 118 */ "AM", + // Key label for "post meridiem" + /* 119 */ "PM", + }; + + /* Language ar: Arabic */ + private static final String[] LANGUAGE_ar = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~41 */ + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> + /* 42 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> + /* 43 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", + /* 44~ */ + null, null, null, null, null, + /* ~48 */ + // U+061F: "؟" ARABIC QUESTION MARK + // U+060C: "،" ARABIC COMMA + // U+061B: "؛" ARABIC SEMICOLON U+0650: "ِ" ARABIC KASRA + // U+064E: "َ" ARABIC FATHA + // U+064D: "ٍ" ARABIC KASRATAN + // U+064B: "ً" ARABIC FATHATAN + // U+0656: "ٖ" ARABIC SUBSCRIPT ALEF + // U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF + // U+0655: "ٕ" ARABIC HAMZA BELOW + // U+0654: "ٔ" ARABIC HAMZA ABOVE U+064F: "ُ" ARABIC DAMMA + // U+064C: "ٌ" ARABIC DAMMATAN + // U+0651: "ّ" ARABIC SHADDA + // U+0652: "ْ" ARABIC SUKUN + // U+0653: "ٓ" ARABIC MADDAH ABOVE + // U+0640: "ـ" ARABIC TATWEEL In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. + /* 49 */ "!fixedColumnOrder!8,\",\',-,:,!,\u061F,\u060C,\u061B,\u0650,\u064E,\u064D,\u064B,\u0656,\u0670,\u0655,\u0654,\u064F,\u064C,\u0651,\u0652,\u0653,\u0640\u0640\u0640|\u0640,/", + /* 50 */ "\u064B", + /* 51 */ null, + /* 52 */ null, + // U+0661: "١" ARABIC-INDIC DIGIT ONE + /* 53 */ "\u0661", + // U+0662: "٢" ARABIC-INDIC DIGIT TWO + /* 54 */ "\u0662", + // U+0663: "٣" ARABIC-INDIC DIGIT THREE + /* 55 */ "\u0663", + // U+0664: "٤" ARABIC-INDIC DIGIT FOUR + /* 56 */ "\u0664", + // U+0665: "٥" ARABIC-INDIC DIGIT FIVE + /* 57 */ "\u0665", + // U+0666: "٦" ARABIC-INDIC DIGIT SIX + /* 58 */ "\u0666", + // U+0667: "٧" ARABIC-INDIC DIGIT SEVEN + /* 59 */ "\u0667", + // U+0668: "٨" ARABIC-INDIC DIGIT EIGHT + /* 60 */ "\u0668", + // U+0669: "٩" ARABIC-INDIC DIGIT NINE + /* 61 */ "\u0669", + // U+0660: "٠" ARABIC-INDIC DIGIT ZERO + /* 62 */ "\u0660", + /* 63 */ "1", + /* 64 */ "2", + /* 65 */ "3", + /* 66 */ "4", + /* 67 */ "5", + /* 68 */ "6", + /* 69 */ "7", + /* 70 */ "8", + /* 71 */ "9", + // U+066B: "٫" ARABIC DECIMAL SEPARATOR + // U+066C: "٬" ARABIC THOUSANDS SEPARATOR + /* 72 */ "0,\u066B,\u066C", + /* 73~ */ + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~84 */ + // U+060C: "،" ARABIC COMMA + /* 85 */ "\u060C", + /* 86 */ "\\,", + /* 87 */ null, + /* 88 */ null, + /* 89 */ "\u061F", + /* 90 */ "\u061B", + // U+066A: "٪" ARABIC PERCENT SIGN + /* 91 */ "\u066A", + /* 92 */ "?", + /* 93 */ ";", + // U+2030: "‰" PER MILLE SIGN + /* 94 */ "%,\u2030", + /* 95~ */ + null, null, null, null, null, + /* ~99 */ + // U+060C: "،" ARABIC COMMA + // U+061B: "؛" ARABIC SEMICOLON + // U+061F: "؟" ARABIC QUESTION MARK + /* 100 */ "\u060C", + /* 101 */ ".", + /* 102 */ "\u061F", + /* 103 */ "\u064B", + /* 104 */ "\u061F,\u061B,!,:,-,/,\',\"", + // U+0651: "ّ" ARABIC SHADDA + // U+0652: "ْ" ARABIC SUKUN + // U+064C: "ٌ" ARABIC DAMMATAN + // U+0653: "ٓ" ARABIC MADDAH ABOVE + // U+064F: "ُ" ARABIC DAMMA U+0650: "ِ" ARABIC KASRA + // U+064E: "َ" ARABIC FATHA + // U+064B: "ً" ARABIC FATHATAN + // U+0640: "ـ" ARABIC TATWEEL + // U+064D: "ٍ" ARABIC KASRATAN U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF + // U+0656: "ٖ" ARABIC SUBSCRIPT ALEF + // U+0654: "ٔ" ARABIC HAMZA ABOVE + // U+0655: "ٕ" ARABIC HAMZA BELOW In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. + /* 105 */ "\u0651,\u0652,\u064C,\u0653,\u064F,\u0650,\u064E,\u064B,\u0640\u0640\u0640|\u0640,\u064D,\u0654,\u0656,\u0655,\u0670", + // U+266A: "♪" EIGHTH NOTE + /* 106 */ "\u266A", + // U+2605: "★" BLACK STAR + // U+066D: "٭" ARABIC FIVE POINTED STAR + /* 107 */ "\u2605,\u066D", + /* 108 */ null, + // The all letters need to be mirrored are found at + // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt U+FD3E: "﴾" ORNATE LEFT PARENTHESIS + // U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS TODO: DroidSansArabic lacks the glyph of U+FD3E ORNATE LEFT PARENTHESIS TODO: DroidSansArabic lacks the glyph of U+FD3F ORNATE RIGHT PARENTHESIS + /* 109 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", + /* 110 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", + // U+2264: "≤" LESS-THAN OR EQUAL TO + // U+2265: "≥" GREATER-THAN EQUAL TO + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK + // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + // The following characters don't need BIDI mirroring. + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK + /* 111 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", + /* 112 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + }; + + /* Language be: Belarusian */ + private static final String[] LANGUAGE_be = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, + /* ~24 */ + // U+045E: "ў" CYRILLIC SMALL LETTER SHORT U + /* 25 */ "\u045E", + // U+044B: "ы" CYRILLIC SMALL LETTER YERU + /* 26 */ "\u044B", + // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + /* 27 */ "\u0456", + /* 28~ */ + null, null, null, + /* ~30 */ + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 31 */ "\u044A", + /* 32 */ null, + /* 33 */ null, + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 34 */ "\u044A", + }; + + /* Language ca: Catalan */ + private static final String[] LANGUAGE_ca = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00AA: "ª" FEMININE ORDINAL INDICATOR + /* 0 */ "\u00E0,\u00E1,\u00E4,\u00E2,\u00E3,\u00E5,\u0105,\u00E6,\u0101,\u00AA", + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E8,\u00E9,\u00EB,\u00EA,\u0119,\u0117,\u0113", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B", + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+00BA: "º" MASCULINE ORDINAL INDICATOR + /* 3 */ "\u00F2,\u00F3,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", + /* 5 */ null, + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u00F1,\u0144", + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + /* 7 */ "\u00E7,\u0107,\u010D", + /* 8~ */ + null, null, null, null, null, null, + /* ~13 */ + // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + /* 14 */ "\u0140,\u0142", + }; + + /* Language cs: Czech */ + private static final String[] LANGUAGE_cs = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+011B: "ě" LATIN SMALL LETTER E WITH CARON + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u011B,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B", + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + /* 5 */ "\u0161,\u00DF,\u015B", + // U+0148: "ň" LATIN SMALL LETTER N WITH CARON + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u0148,\u00F1,\u0144", + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u010D,\u00E7,\u0107", + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+010F: "ď" LATIN SMALL LETTER D WITH CARON + /* 9 */ "\u010F", + // U+0159: "ř" LATIN SMALL LETTER R WITH CARON + /* 10 */ "\u0159", + // U+0165: "ť" LATIN SMALL LETTER T WITH CARON + /* 11 */ "\u0165", + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + /* 12 */ "\u017E,\u017A,\u017C", + }; + + /* Language da: Danish */ + private static final String[] LANGUAGE_da = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E1,\u00E4,\u00E0,\u00E2,\u00E3,\u0101", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + /* 1 */ "\u00E9,\u00EB", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + /* 2 */ "\u00ED,\u00EF", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F3,\u00F4,\u00F2,\u00F5,\u0153,\u014D", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B", + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u00DF,\u015B,\u0161", + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u00F1,\u0144", + /* 7 */ null, + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+00F0: "ð" LATIN SMALL LETTER ETH + /* 9 */ "\u00F0", + /* 10~ */ + null, null, null, null, + /* ~13 */ + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + /* 14 */ "\u0142", + /* 15~ */ + null, null, null, null, null, + /* ~19 */ + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + /* 20 */ "\u00E5", + // U+00E6: "æ" LATIN SMALL LETTER AE + /* 21 */ "\u00E6", + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 22 */ "\u00F8", + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + /* 23 */ "\u00E4", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + /* 24 */ "\u00F6", + }; + + /* Language de: German */ + private static final String[] LANGUAGE_de = { + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E4,\u00E2,\u00E0,\u00E1,\u00E6,\u00E3,\u00E5,\u0101", + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + /* 1 */ "\u0117", + /* 2 */ null, + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F6,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u00F8,\u014D", + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u00DF,\u015B,\u0161", + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u00F1,\u0144", + }; + + /* Language en: English */ + private static final String[] LANGUAGE_en = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0103", + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + /* 2 */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC", + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + /* 3 */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8\u014D,\u00F5", + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B", + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + /* 5 */ "\u00DF", + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + /* 6 */ "\u00F1", + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + /* 7 */ "\u00E7", + }; + + /* Language es: Spanish */ + private static final String[] LANGUAGE_es = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00AA: "ª" FEMININE ORDINAL INDICATOR + /* 0 */ "\u00E1,\u00E0,\u00E4,\u00E2,\u00E3,\u00E5,\u0105,\u00E6,\u0101,\u00AA", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+00BA: "º" MASCULINE ORDINAL INDICATOR + /* 3 */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", + /* 5 */ null, + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u00F1,\u0144", + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + /* 7 */ "\u00E7,\u0107,\u010D", + /* 8~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, + /* ~48 */ + // U+00A1: "¡" INVERTED EXCLAMATION MARK + // U+00BF: "¿" INVERTED QUESTION MARK + /* 49 */ "!fixedColumnOrder!7,#,-,\u00A1,!,\u00BF,\\,,?,\\%,+,;,:,/,(,),@,&,\",\'", + }; + + /* Language et: Estonian */ + private static final String[] LANGUAGE_et = { + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + /* 0 */ "\u00E4,\u0101,\u00E0,\u00E1,\u00E2,\u00E3,\u00E5,\u00E6,\u0105", + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+011B: "ě" LATIN SMALL LETTER E WITH CARON + /* 1 */ "\u0113,\u00E8,\u0117,\u00E9,\u00EA,\u00EB,\u0119,\u011B", + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+0131: "ı" LATIN SMALL LETTER DOTLESS I + /* 2 */ "\u012B,\u00EC,\u012F,\u00ED,\u00EE,\u00EF,\u0131", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 3 */ "\u00F6,\u00F5,\u00F2,\u00F3,\u00F4,\u0153,\u0151,\u00F8", + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE + // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE + /* 4 */ "\u00FC,\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u016F,\u0171", + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA + /* 5 */ "\u0161,\u00DF,\u015B,\u015F", + // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u0146,\u00F1,\u0144,\u0144", + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u010D,\u00E7,\u0107", + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+010F: "ď" LATIN SMALL LETTER D WITH CARON + /* 9 */ "\u010F", + // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA + // U+0159: "ř" LATIN SMALL LETTER R WITH CARON + // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE + /* 10 */ "\u0157,\u0159,\u0155", + // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA + // U+0165: "ť" LATIN SMALL LETTER T WITH CARON + /* 11 */ "\u0163,\u0165", + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + /* 12 */ "\u017E,\u017C,\u017A", + // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA + /* 13 */ "\u0137", + // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE + // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON + /* 14 */ "\u013C,\u0142,\u013A,\u013E", + // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA + // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE + /* 15 */ "\u0123,\u011F", + /* 16~ */ + null, null, null, null, + /* ~19 */ + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + /* 20 */ "\u00FC", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + /* 21 */ "\u00F6", + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + /* 22 */ "\u00E4", + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + /* 23 */ "\u00F5", + }; + + /* Language fa: Persian */ + private static final String[] LANGUAGE_fa = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~41 */ + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> + /* 42 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> + /* 43 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", + /* 44~ */ + null, null, null, null, null, + /* ~48 */ + // U+061F: "؟" ARABIC QUESTION MARK + // U+060C: "،" ARABIC COMMA + // U+061B: "؛" ARABIC SEMICOLON U+0650: "ِ" ARABIC KASRA + // U+064E: "َ" ARABIC FATHA + // U+064D: "ٍ" ARABIC KASRATAN + // U+064B: "ً" ARABIC FATHATAN + // U+0656: "ٖ" ARABIC SUBSCRIPT ALEF + // U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF + // U+0655: "ٕ" ARABIC HAMZA BELOW + // U+0654: "ٔ" ARABIC HAMZA ABOVE U+064F: "ُ" ARABIC DAMMA + // U+064C: "ٌ" ARABIC DAMMATAN + // U+0651: "ّ" ARABIC SHADDA + // U+0652: "ْ" ARABIC SUKUN + // U+0653: "ٓ" ARABIC MADDAH ABOVE + // U+0640: "ـ" ARABIC TATWEEL In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. + /* 49 */ "!fixedColumnOrder!8,\",\',-,:,!,\u061F,\u060C,\u061B,\u0650,\u064E,\u064D,\u064B,\u0656,\u0670,\u0655,\u0654,\u064F,\u064C,\u0651,\u0652,\u0653,\u0640\u0640\u0640|\u0640,/", + /* 50 */ "\u064B", + /* 51 */ null, + /* 52 */ null, + // U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE + /* 53 */ "\u06F1", + // U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO + /* 54 */ "\u06F2", + // U+06F3: "۳" EXTENDED ARABIC-INDIC DIGIT THREE + /* 55 */ "\u06F3", + // U+06F4: "۴" EXTENDED ARABIC-INDIC DIGIT FOUR + /* 56 */ "\u06F4", + // U+06F5: "۵" EXTENDED ARABIC-INDIC DIGIT FIVE + /* 57 */ "\u06F5", + // U+06F6: "۶" EXTENDED ARABIC-INDIC DIGIT SIX + /* 58 */ "\u06F6", + // U+06F7: "۷" EXTENDED ARABIC-INDIC DIGIT SEVEN + /* 59 */ "\u06F7", + // U+06F8: "۸" EXTENDED ARABIC-INDIC DIGIT EIGHT + /* 60 */ "\u06F8", + // U+06F9: "۹" EXTENDED ARABIC-INDIC DIGIT NINE + /* 61 */ "\u06F9", + // U+06F0: "۰" EXTENDED ARABIC-INDIC DIGIT ZERO + /* 62 */ "\u06F0", + /* 63 */ "1", + /* 64 */ "2", + /* 65 */ "3", + /* 66 */ "4", + /* 67 */ "5", + /* 68 */ "6", + /* 69 */ "7", + /* 70 */ "8", + /* 71 */ "9", + // U+066B: "٫" ARABIC DECIMAL SEPARATOR + // U+066C: "٬" ARABIC THOUSANDS SEPARATOR + /* 72 */ "0,\u066B,\u066C", + /* 73~ */ + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~84 */ + // U+060C: "،" ARABIC COMMA + /* 85 */ "\u060C", + /* 86 */ "\\,", + /* 87 */ null, + /* 88 */ null, + /* 89 */ "\u061F", + /* 90 */ "\u061B", + // U+066A: "٪" ARABIC PERCENT SIGN + /* 91 */ "\u066A", + /* 92 */ "?", + /* 93 */ ";", + // U+2030: "‰" PER MILLE SIGN + /* 94 */ "%,\u2030", + // U+060C: "،" ARABIC COMMA + // U+061B: "؛" ARABIC SEMICOLON + // U+061F: "؟" ARABIC QUESTION MARK + /* 95 */ "\u060C", + /* 96 */ "!", + /* 97 */ "!,\\,", + /* 98 */ "\u061F", + /* 99 */ "\u061F,?", + /* 100~ */ + null, null, null, + /* ~102 */ + /* 103 */ "\u064B", + /* 104 */ "\u061F,\u061B,!,:,-,/,\',\"", + // U+0651: "ّ" ARABIC SHADDA + // U+0652: "ْ" ARABIC SUKUN + // U+064C: "ٌ" ARABIC DAMMATAN + // U+0653: "ٓ" ARABIC MADDAH ABOVE + // U+064F: "ُ" ARABIC DAMMA U+0650: "ِ" ARABIC KASRA + // U+064E: "َ" ARABIC FATHA + // U+064B: "ً" ARABIC FATHATAN + // U+0640: "ـ" ARABIC TATWEEL + // U+064D: "ٍ" ARABIC KASRATAN U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF + // U+0656: "ٖ" ARABIC SUBSCRIPT ALEF + // U+0654: "ٔ" ARABIC HAMZA ABOVE + // U+0655: "ٕ" ARABIC HAMZA BELOW In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. + /* 105 */ "\u0651,\u0652,\u064C,\u0653,\u064F,\u0650,\u064E,\u064B,\u0640\u0640\u0640|\u0640,\u064D,\u0654,\u0656,\u0655,_,\u0670", + // U+266A: "♪" EIGHTH NOTE + /* 106 */ "\u266A", + // U+2605: "★" BLACK STAR + // U+066D: "٭" ARABIC FIVE POINTED STAR + /* 107 */ "\u2605,\u066D", + /* 108 */ null, + // The all letters need to be mirrored are found at + // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt U+FD3E: "﴾" ORNATE LEFT PARENTHESIS + // U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS TODO: DroidSansArabic lacks the glyph of U+FD3E ORNATE LEFT PARENTHESIS TODO: DroidSansArabic lacks the glyph of U+FD3F ORNATE RIGHT PARENTHESIS + /* 109 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", + /* 110 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", + // U+2264: "≤" LESS-THAN OR EQUAL TO + // U+2265: "≥" GREATER-THAN EQUAL TO + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK + // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + // The following characters don't need BIDI mirroring. + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK + /* 111 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", + /* 112 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + }; + + /* Language fi: Finnish */ + private static final String[] LANGUAGE_fi = { + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E6,\u00E0,\u00E1,\u00E2,\u00E3,\u0101", + /* 1 */ null, + /* 2 */ null, + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F8,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D", + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + /* 4 */ "\u00FC", + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + /* 5 */ "\u0161,\u00DF,\u015B", + /* 6~ */ + null, null, null, null, null, null, + /* ~11 */ + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + /* 12 */ "\u017E,\u017A,\u017C", + /* 13~ */ + null, null, null, null, null, null, null, + /* ~19 */ + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + /* 20 */ "\u00E5", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + /* 21 */ "\u00F6", + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + /* 22 */ "\u00E4", + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 23 */ "\u00F8", + // U+00E6: "æ" LATIN SMALL LETTER AE + /* 24 */ "\u00E6", + }; + + /* Language fr: French */ + private static final String[] LANGUAGE_fr = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00AA: "ª" FEMININE ORDINAL INDICATOR + /* 0 */ "\u00E0,\u00E2,%,\u00E6,\u00E1,\u00E4,\u00E3,\u00E5,\u0101,\u00AA", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,%,\u0119,\u0117,\u0113", + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00EE,%,\u00EF,\u00EC,\u00ED,\u012F,\u012B", + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+00BA: "º" MASCULINE ORDINAL INDICATOR + /* 3 */ "\u00F4,\u0153,%,\u00F6,\u00F2,\u00F3,\u00F5,\u00F8,\u014D,\u00BA", + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00F9,\u00FB,%,\u00FC,\u00FA,\u016B", + /* 5 */ null, + /* 6 */ null, + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + /* 7 */ "\u00E7,\u0107,\u010D", + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "%,\u00FF", + }; + + /* Language hi: Hindi */ + private static final String[] LANGUAGE_hi = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, + /* ~52 */ + // U+0967: "१" DEVANAGARI DIGIT ONE + /* 53 */ "\u0967", + // U+0968: "२" DEVANAGARI DIGIT TWO + /* 54 */ "\u0968", + // U+0969: "३" DEVANAGARI DIGIT THREE + /* 55 */ "\u0969", + // U+096A: "४" DEVANAGARI DIGIT FOUR + /* 56 */ "\u096A", + // U+096B: "५" DEVANAGARI DIGIT FIVE + /* 57 */ "\u096B", + // U+096C: "६" DEVANAGARI DIGIT SIX + /* 58 */ "\u096C", + // U+096D: "७" DEVANAGARI DIGIT SEVEN + /* 59 */ "\u096D", + // U+096E: "८" DEVANAGARI DIGIT EIGHT + /* 60 */ "\u096E", + // U+096F: "९" DEVANAGARI DIGIT NINE + /* 61 */ "\u096F", + // U+0966: "०" DEVANAGARI DIGIT ZERO + /* 62 */ "\u0966", + /* 63 */ "1", + /* 64 */ "2", + /* 65 */ "3", + /* 66 */ "4", + /* 67 */ "5", + /* 68 */ "6", + /* 69 */ "7", + /* 70 */ "8", + /* 71 */ "9", + /* 72 */ "0", + }; + + /* Language hr: Croatian */ + private static final String[] LANGUAGE_hr = { + /* 0~ */ + null, null, null, null, null, + /* ~4 */ + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + /* 5 */ "\u0161,\u015B,\u00DF", + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u00F1,\u0144", + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + /* 7 */ "\u010D,\u0107,\u00E7", + /* 8 */ null, + // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE + /* 9 */ "\u0111", + /* 10 */ null, + /* 11 */ null, + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + /* 12 */ "\u017E,\u017A,\u017C", + }; + + /* Language hu: Hungarian */ + private static final String[] LANGUAGE_hu = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F3,\u00F6,\u0151,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u0171,\u00FB,\u00F9,\u016B", + }; + + /* Language is: Icelandic */ + private static final String[] LANGUAGE_is = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E1,\u00E4,\u00E6,\u00E5,\u00E0,\u00E2,\u00E3,\u0101", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u00EB,\u00E8,\u00EA,\u0119,\u0117,\u0113", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00ED,\u00EF,\u00EE,\u00EC,\u012F,\u012B", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B", + /* 5~ */ + null, null, null, + /* ~7 */ + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+00F0: "ð" LATIN SMALL LETTER ETH + /* 9 */ "\u00F0", + /* 10 */ null, + // U+00FE: "þ" LATIN SMALL LETTER THORN + /* 11 */ "\u00FE", + /* 12~ */ + null, null, null, null, null, null, null, null, + /* ~19 */ + // U+00F0: "ð" LATIN SMALL LETTER ETH + /* 20 */ "\u00F0", + // U+00E6: "æ" LATIN SMALL LETTER AE + /* 21 */ "\u00E6", + // U+00FE: "þ" LATIN SMALL LETTER THORN + /* 22 */ "\u00FE", + }; + + /* Language it: Italian */ + private static final String[] LANGUAGE_it = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00AA: "ª" FEMININE ORDINAL INDICATOR + /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101,\u00AA", + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u0117,\u0113", + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00EC,\u00ED,\u00EE,\u00EF,\u012F,\u012B", + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+00BA: "º" MASCULINE ORDINAL INDICATOR + /* 3 */ "\u00F2,\u00F3,\u00F4,\u00F6,\u00F5,\u0153,\u00F8,\u014D,\u00BA", + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00F9,\u00FA,\u00FB,\u00FC,\u016B", + }; + + /* Language iw: Hebrew */ + private static final String[] LANGUAGE_iw = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~41 */ + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> + /* 42 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> + /* 43 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", + /* 44~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, + /* ~106 */ + // U+2605: "★" BLACK STAR + /* 107 */ "\u2605", + // U+00B1: "±" PLUS-MINUS SIGN + // U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN + /* 108 */ "\u00B1,\uFB29", + // The all letters need to be mirrored are found at + // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt + /* 109 */ "!fixedColumnOrder!3,<|>,{|},[|]", + /* 110 */ "!fixedColumnOrder!3,>|<,}|{,]|[", + // U+2264: "≤" LESS-THAN OR EQUAL TO + // U+2265: "≥" GREATER-THAN EQUAL TO + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK + // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + // The following characters don't need BIDI mirroring. + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK + /* 111 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", + /* 112 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + }; + + /* Language ky: Kirghiz */ + private static final String[] LANGUAGE_ky = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, + /* ~24 */ + // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA + /* 25 */ "\u0449", + // U+044B: "ы" CYRILLIC SMALL LETTER YERU + /* 26 */ "\u044B", + // U+0438: "и" CYRILLIC SMALL LETTER I + /* 27 */ "\u0438", + // U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U + /* 28 */ "\u04AF", + /* 29 */ null, + // U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER + /* 30 */ "\u04A3", + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 31 */ "\u044A", + /* 32 */ null, + // U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O + /* 33 */ "\u04E9", + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 34 */ "\u044A", + }; + + /* Language lt: Lithuanian */ + private static final String[] LANGUAGE_lt = { + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E6: "æ" LATIN SMALL LETTER AE + /* 0 */ "\u0105,\u00E4,\u0101,\u00E0,\u00E1,\u00E2,\u00E3,\u00E5,\u00E6", + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+011B: "ě" LATIN SMALL LETTER E WITH CARON + /* 1 */ "\u0117,\u0119,\u0113,\u00E8,\u00E9,\u00EA,\u00EB,\u011B", + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+0131: "ı" LATIN SMALL LETTER DOTLESS I + /* 2 */ "\u012F,\u012B,\u00EC,\u00ED,\u00EE,\u00EF,\u0131", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 3 */ "\u00F6,\u00F5,\u00F2,\u00F3,\u00F4,\u0153,\u0151,\u00F8", + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE + // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE + /* 4 */ "\u016B,\u0173,\u00FC,\u016B,\u00F9,\u00FA,\u00FB,\u016F,\u0171", + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA + /* 5 */ "\u0161,\u00DF,\u015B,\u015F", + // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u0146,\u00F1,\u0144,\u0144", + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u010D,\u00E7,\u0107", + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+010F: "ď" LATIN SMALL LETTER D WITH CARON + /* 9 */ "\u010F", + // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA + // U+0159: "ř" LATIN SMALL LETTER R WITH CARON + // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE + /* 10 */ "\u0157,\u0159,\u0155", + // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA + // U+0165: "ť" LATIN SMALL LETTER T WITH CARON + /* 11 */ "\u0163,\u0165", + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + /* 12 */ "\u017E,\u017C,\u017A", + // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA + /* 13 */ "\u0137", + // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE + // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON + /* 14 */ "\u013C,\u0142,\u013A,\u013E", + // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA + // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE + /* 15 */ "\u0123,\u011F", + }; + + /* Language lv: Latvian */ + private static final String[] LANGUAGE_lv = { + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + /* 0 */ "\u0101,\u00E0,\u00E1,\u00E2,\u00E3,\u00E4,\u00E5,\u00E6,\u0105", + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+011B: "ě" LATIN SMALL LETTER E WITH CARON + /* 1 */ "\u0113,\u0117,\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u011B", + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+0131: "ı" LATIN SMALL LETTER DOTLESS I + /* 2 */ "\u012B,\u012F,\u00EC,\u00ED,\u00EE,\u00EF,\u0131", + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 3 */ "\u00F2,\u00F3,\u00F4,\u00F5,\u00F6,\u0153,\u0151,\u00F8", + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE + // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE + /* 4 */ "\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u00FC,\u016F,\u0171", + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA + /* 5 */ "\u0161,\u00DF,\u015B,\u015F", + // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u0146,\u00F1,\u0144,\u0144", + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u010D,\u00E7,\u0107", + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+010F: "ď" LATIN SMALL LETTER D WITH CARON + /* 9 */ "\u010F", + // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA + // U+0159: "ř" LATIN SMALL LETTER R WITH CARON + // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE + /* 10 */ "\u0157,\u0159,\u0155", + // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA + // U+0165: "ť" LATIN SMALL LETTER T WITH CARON + /* 11 */ "\u0163,\u0165", + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + /* 12 */ "\u017E,\u017C,\u017A", + // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA + /* 13 */ "\u0137", + // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE + // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON + /* 14 */ "\u013C,\u0142,\u013A,\u013E", + // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA + // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE + /* 15 */ "\u0123,\u011F", + }; + + /* Language mk: Macedonian */ + private static final String[] LANGUAGE_mk = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, + /* ~34 */ + // U+0455: "ѕ" CYRILLIC SMALL LETTER DZE + /* 35 */ "\u0455", + // U+045C: "ќ" CYRILLIC SMALL LETTER KJE + /* 36 */ "\u045C", + // U+0437: "з" CYRILLIC SMALL LETTER ZE + /* 37 */ "\u0437", + // U+0453: "ѓ" CYRILLIC SMALL LETTER GJE + /* 38 */ "\u0453", + // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE + /* 39 */ "\u0450", + // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE + /* 40 */ "\u045D", + /* 41 */ null, + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. <string name="more_keys_for_double_quote">!fixedColumnOrder!6,„,“,”,‟,«,»</string> + /* 42 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> + /* 43 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB,\u2018,\u2019,\u201A,\u201B", + }; + + /* Language nb: Norwegian Bokmål */ + private static final String[] LANGUAGE_nb = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E0,\u00E4,\u00E1,\u00E2,\u00E3,\u0101", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113", + /* 2 */ null, + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F4,\u00F2,\u00F3,\u00F6,\u00F5,\u0153,\u014D", + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", + /* 5~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~19 */ + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + /* 20 */ "\u00E5", + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 21 */ "\u00F8", + // U+00E6: "æ" LATIN SMALL LETTER AE + /* 22 */ "\u00E6", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + /* 23 */ "\u00F6", + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + /* 24 */ "\u00E4", + }; + + /* Language nl: Dutch */ + private static final String[] LANGUAGE_nl = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E1,\u00E4,\u00E2,\u00E0,\u00E6,\u00E3,\u00E5,\u0101", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u00E9,\u00EB,\u00EA,\u00E8,\u0119,\u0117,\u0113", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+0133: "ij" LATIN SMALL LIGATURE IJ + /* 2 */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B,\u0133", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B", + /* 5 */ null, + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u00F1,\u0144", + /* 7 */ null, + // U+0133: "ij" LATIN SMALL LIGATURE IJ + /* 8 */ "\u0133", + }; + + /* Language pl: Polish */ + private static final String[] LANGUAGE_pl = { + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u0105,\u00E1,\u00E0,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101", + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + /* 1 */ "\u0119,\u00E8,\u00E9,\u00EA,\u00EB,\u0117,\u0113", + /* 2 */ null, + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D", + /* 4 */ null, + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u015B,\u00DF,\u0161", + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + /* 6 */ "\u0144,\u00F1", + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + /* 7 */ "\u0107,\u00E7,\u010D", + /* 8~ */ + null, null, null, null, + /* ~11 */ + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + /* 12 */ "\u017C,\u017A,\u017E", + /* 13 */ null, + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + /* 14 */ "\u0142", + }; + + /* Language pt: Portuguese */ + private static final String[] LANGUAGE_pt = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00AA: "ª" FEMININE ORDINAL INDICATOR + /* 0 */ "\u00E1,\u00E3,\u00E0,\u00E2,\u00E4,\u00E5,\u00E6,\u00AA", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + /* 1 */ "\u00E9,\u00EA,\u00E8,\u0119,\u0117,\u0113,\u00EB", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00ED,\u00EE,\u00EC,\u00EF,\u012F,\u012B", + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+00BA: "º" MASCULINE ORDINAL INDICATOR + /* 3 */ "\u00F3,\u00F5,\u00F4,\u00F2,\u00F6,\u0153,\u00F8,\u014D,\u00BA", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B", + /* 5 */ null, + /* 6 */ null, + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u00E7,\u010D,\u0107", + }; + + /* Language rm: Raeto-Romance */ + private static final String[] LANGUAGE_rm = { + /* 0~ */ + null, null, null, + /* ~2 */ + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 3 */ "\u00F2,\u00F3,\u00F6,\u00F4,\u00F5,\u0153,\u00F8", + }; + + /* Language ro: Romanian */ + private static final String[] LANGUAGE_ro = { + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + /* 0 */ "\u00E2,\u00E3,\u0103,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101", + /* 1 */ null, + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B", + /* 3 */ null, + /* 4 */ null, + // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u0219,\u00DF,\u015B,\u0161", + /* 6~ */ + null, null, null, null, null, + /* ~10 */ + // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW + /* 11 */ "\u021B", + }; + + /* Language ru: Russian */ + private static final String[] LANGUAGE_ru = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, + /* ~24 */ + // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA + /* 25 */ "\u0449", + // U+044B: "ы" CYRILLIC SMALL LETTER YERU + /* 26 */ "\u044B", + // U+0438: "и" CYRILLIC SMALL LETTER I + /* 27 */ "\u0438", + /* 28 */ null, + // U+0451: "ё" CYRILLIC SMALL LETTER IO + /* 29 */ "\u0451", + /* 30 */ null, + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 31 */ "\u044A", + /* 32 */ null, + /* 33 */ null, + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 34 */ "\u044A", + }; + + /* Language sk: Slovak */ + private static final String[] LANGUAGE_sk = { + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + /* 0 */ "\u00E1,\u00E4,\u0101,\u00E0,\u00E2,\u00E3,\u00E5,\u00E6,\u0105", + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+011B: "ě" LATIN SMALL LETTER E WITH CARON + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + /* 1 */ "\u00E9,\u011B,\u0113,\u0117,\u00E8,\u00EA,\u00EB,\u0119", + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+0131: "ı" LATIN SMALL LETTER DOTLESS I + /* 2 */ "\u00ED,\u012B,\u012F,\u00EC,\u00EE,\u00EF,\u0131", + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 3 */ "\u00F4,\u00F3,\u00F6,\u00F2,\u00F5,\u0153,\u0151,\u00F8", + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE + /* 4 */ "\u00FA,\u016F,\u00FC,\u016B,\u0173,\u00F9,\u00FB,\u0171", + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA + /* 5 */ "\u0161,\u00DF,\u015B,\u015F", + // U+0148: "ň" LATIN SMALL LETTER N WITH CARON + // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + /* 6 */ "\u0148,\u0146,\u00F1,\u0144,\u0144", + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u010D,\u00E7,\u0107", + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + /* 8 */ "\u00FD,\u00FF", + // U+010F: "ď" LATIN SMALL LETTER D WITH CARON + /* 9 */ "\u010F", + // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE + // U+0159: "ř" LATIN SMALL LETTER R WITH CARON + // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA + /* 10 */ "\u0155,\u0159,\u0157", + // U+0165: "ť" LATIN SMALL LETTER T WITH CARON + // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA + /* 11 */ "\u0165,\u0163", + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + /* 12 */ "\u017E,\u017C,\u017A", + // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA + /* 13 */ "\u0137", + // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON + // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE + // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + /* 14 */ "\u013E,\u013A,\u013C,\u0142", + // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA + // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE + /* 15 */ "\u0123,\u011F", + }; + + /* Language sl: Slovenian */ + private static final String[] LANGUAGE_sl = { + /* 0~ */ + null, null, null, null, null, + /* ~4 */ + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u0161", + /* 6 */ null, + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + /* 7 */ "\u010D,\u0107", + /* 8 */ null, + // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE + /* 9 */ "\u0111", + /* 10 */ null, + /* 11 */ null, + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + /* 12 */ "\u017E", + }; + + /* Language sr: Serbian */ + private static final String[] LANGUAGE_sr = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, + /* ~34 */ + // U+0437: "з" CYRILLIC SMALL LETTER ZE + /* 35 */ "\u0437", + // U+045B: "ћ" CYRILLIC SMALL LETTER TSHE + /* 36 */ "\u045B", + // U+0455: "ѕ" CYRILLIC SMALL LETTER DZE + /* 37 */ "\u0455", + // U+0452: "ђ" CYRILLIC SMALL LETTER DJE + /* 38 */ "\u0452", + // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE + /* 39 */ "\u0450", + // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE + /* 40 */ "\u045D", + /* 41 */ null, + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. <string name="more_keys_for_double_quote">!fixedColumnOrder!6,„,“,”,‟,«,»</string> + /* 42 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB", + // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> + /* 43 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB,\u2018,\u2019,\u201A,\u201B", + }; + + /* Language sv: Swedish */ + private static final String[] LANGUAGE_sv = { + /* 0 */ null, + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + /* 1 */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119", + /* 2 */ null, + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u0153,\u00F4,\u00F2,\u00F3,\u00F5,\u014D", + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u00DF,\u015B,\u0161", + /* 6~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~19 */ + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + /* 20 */ "\u00E5", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + /* 21 */ "\u00F6", + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + /* 22 */ "\u00E4", + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + /* 23 */ "\u00F8", + // U+00E6: "æ" LATIN SMALL LETTER AE + /* 24 */ "\u00E6", + }; + + /* Language tr: Turkish */ + private static final String[] LANGUAGE_tr = { + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + /* 0 */ "\u00E2", + /* 1 */ null, + // U+0131: "ı" LATIN SMALL LETTER DOTLESS I + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + /* 2 */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B", + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + /* 3 */ "\u00F6,\u00F4,\u0153,\u00F2,\u00F3,\u00F5,\u00F8,\u014D", + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + /* 4 */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B", + // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + /* 5 */ "\u015F,\u00DF,\u015B,\u0161", + /* 6 */ null, + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + /* 7 */ "\u00E7,\u0107,\u010D", + /* 8~ */ + null, null, null, null, null, null, null, + /* ~14 */ + // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE + /* 15 */ "\u011F", + }; + + /* Language uk: Ukrainian */ + private static final String[] LANGUAGE_uk = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, + /* ~24 */ + // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA + /* 25 */ "\u0449", + // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + /* 26 */ "\u0456", + // U+0438: "и" CYRILLIC SMALL LETTER I + /* 27 */ "\u0438", + /* 28~ */ + null, null, null, + /* ~30 */ + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 31 */ "\u044A", + // U+0457: "ї" CYRILLIC SMALL LETTER YI + /* 32 */ "\u0457", + /* 33 */ null, + // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN + /* 34 */ "\u044A", + }; + + /* Language vi: Vietnamese */ + private static final String[] LANGUAGE_vi = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+1EA3: "ả" LATIN SMALL LETTER A WITH HOOK ABOVE + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+1EA1: "ạ" LATIN SMALL LETTER A WITH DOT BELOW + // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE + // U+1EB1: "ằ" LATIN SMALL LETTER A WITH BREVE AND GRAVE + // U+1EAF: "ắ" LATIN SMALL LETTER A WITH BREVE AND ACUTE + // U+1EB3: "ẳ" LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE + // U+1EB5: "ẵ" LATIN SMALL LETTER A WITH BREVE AND TILDE + // U+1EB7: "ặ" LATIN SMALL LETTER A WITH BREVE AND DOT BELOW + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+1EA7: "ầ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE + // U+1EA5: "ấ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE + // U+1EA9: "ẩ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE + // U+1EAB: "ẫ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE + // U+1EAD: "ậ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW + /* 0 */ "\u00E0,\u00E1,\u1EA3,\u00E3,\u1EA1,\u0103,\u1EB1,\u1EAF,\u1EB3,\u1EB5,\u1EB7,\u00E2,\u1EA7,\u1EA5,\u1EA9,\u1EAB,\u1EAD", + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+1EBB: "ẻ" LATIN SMALL LETTER E WITH HOOK ABOVE + // U+1EBD: "ẽ" LATIN SMALL LETTER E WITH TILDE + // U+1EB9: "ẹ" LATIN SMALL LETTER E WITH DOT BELOW + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+1EC1: "ề" LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE + // U+1EBF: "ế" LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE + // U+1EC3: "ể" LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE + // U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE + // U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW + /* 1 */ "\u00E8,\u00E9,\u1EBB,\u1EBD,\u1EB9,\u00EA,\u1EC1,\u1EBF,\u1EC3,\u1EC5,\u1EC7", + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE + // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE + // U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW + /* 2 */ "\u00EC,\u00ED,\u1EC9,\u0129,\u1ECB", + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+1ECF: "ỏ" LATIN SMALL LETTER O WITH HOOK ABOVE + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+1ECD: "ọ" LATIN SMALL LETTER O WITH DOT BELOW + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+1ED3: "ồ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE + // U+1ED1: "ố" LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE + // U+1ED5: "ổ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE + // U+1ED7: "ỗ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE + // U+1ED9: "ộ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW + // U+01A1: "ơ" LATIN SMALL LETTER O WITH HORN + // U+1EDD: "ờ" LATIN SMALL LETTER O WITH HORN AND GRAVE + // U+1EDB: "ớ" LATIN SMALL LETTER O WITH HORN AND ACUTE + // U+1EDF: "ở" LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE + // U+1EE1: "ỡ" LATIN SMALL LETTER O WITH HORN AND TILDE + // U+1EE3: "ợ" LATIN SMALL LETTER O WITH HORN AND DOT BELOW + /* 3 */ "\u00F2,\u00F3,\u1ECF,\u00F5,\u1ECD,\u00F4,\u1ED3,\u1ED1,\u1ED5,\u1ED7,\u1ED9,\u01A1,\u1EDD,\u1EDB,\u1EDF,\u1EE1,\u1EE3", + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+1EE7: "ủ" LATIN SMALL LETTER U WITH HOOK ABOVE + // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE + // U+1EE5: "ụ" LATIN SMALL LETTER U WITH DOT BELOW + // U+01B0: "ư" LATIN SMALL LETTER U WITH HORN + // U+1EEB: "ừ" LATIN SMALL LETTER U WITH HORN AND GRAVE + // U+1EE9: "ứ" LATIN SMALL LETTER U WITH HORN AND ACUTE + // U+1EED: "ử" LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE + // U+1EEF: "ữ" LATIN SMALL LETTER U WITH HORN AND TILDE + // U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW + /* 4 */ "\u00F9,\u00FA,\u1EE7,\u0169,\u1EE5,\u01B0,\u1EEB,\u1EE9,\u1EED,\u1EEF,\u1EF1", + /* 5~ */ + null, null, null, + /* ~7 */ + // U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE + // U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE + // U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW + /* 8 */ "\u1EF3,\u00FD,\u1EF7,\u1EF9,\u1EF5", + // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE + /* 9 */ "\u0111", + }; + + /* Language zz: No language */ + private static final String[] LANGUAGE_zz = { + // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE + // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE + // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX + // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE + // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS + // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE + // U+00E6: "æ" LATIN SMALL LETTER AE + // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON + // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE + // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK + // U+00AA: "ª" FEMININE ORDINAL INDICATOR + /* 0 */ "\u00E0,\u00E1,\u00E2,\u00E3,\u00E4,\u00E5,\u00E6,\u00E3,\u00E5,\u0101,\u0103,\u0105,\u00AA", + // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE + // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE + // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX + // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS + // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON + // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE + // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE + // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK + // U+011B: "ě" LATIN SMALL LETTER E WITH CARON + /* 1 */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113,\u0115,\u0117,\u0119,\u011B", + // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE + // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE + // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX + // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS + // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE + // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON + // U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE + // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK + // U+0131: "ı" LATIN SMALL LETTER DOTLESS I + // U+0133: "ij" LATIN SMALL LIGATURE IJ + /* 2 */ "\u00EC,\u00ED,\u00EE,\u00EF,\u0129,\u012B,\u012D,\u012F,\u0131,\u0133", + // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE + // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE + // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX + // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE + // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS + // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE + // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON + // U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE + // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE + // U+0153: "œ" LATIN SMALL LIGATURE OE + // U+00BA: "º" MASCULINE ORDINAL INDICATOR + /* 3 */ "\u00F2,\u00F3,\u00F4,\u00F5,\u00F6,\u00F8,\u014D,\u014F,\u0151,\u0153,\u00BA", + // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE + // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE + // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX + // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS + // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE + // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON + // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE + // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE + // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE + // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK + /* 4 */ "\u00F9,\u00FA,\u00FB,\u00FC,\u0169,\u016B,\u016D,\u016F,\u0171,\u0173", + // U+00DF: "ß" LATIN SMALL LETTER SHARP S + // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE + // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX + // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA + // U+0161: "š" LATIN SMALL LETTER S WITH CARON + // U+017F: "ſ" LATIN SMALL LETTER LONG S + /* 5 */ "\u00DF,\u015B,\u015D,\u015F,\u0161,\u017F", + // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE + // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE + // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA + // U+0148: "ň" LATIN SMALL LETTER N WITH CARON + // U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + // U+014B: "ŋ" LATIN SMALL LETTER ENG + /* 6 */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B", + // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA + // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE + // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX + // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE + // U+010D: "č" LATIN SMALL LETTER C WITH CARON + /* 7 */ "\u00E7,\u0107,\u0109,\u010B,\u010D", + // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE + // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX + // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS + // U+0133: "ij" LATIN SMALL LIGATURE IJ + /* 8 */ "\u00FD,\u0177,\u00FF,\u0133", + // U+010F: "ď" LATIN SMALL LETTER D WITH CARON + // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE + // U+00F0: "ð" LATIN SMALL LETTER ETH + /* 9 */ "\u010F,\u0111,\u00F0", + // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE + // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA + // U+0159: "ř" LATIN SMALL LETTER R WITH CARON + /* 10 */ "\u0155,\u0157,\u0159", + // U+00FE: "þ" LATIN SMALL LETTER THORN + // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA + // U+0165: "ť" LATIN SMALL LETTER T WITH CARON + // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE + /* 11 */ "\u00FE,\u0163,\u0165,\u0167", + // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE + // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE + // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON + /* 12 */ "\u017A,\u017C,\u017E", + // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA + // U+0138: "ĸ" LATIN SMALL LETTER KRA + /* 13 */ "\u0137,\u0138", + // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE + // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA + // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON + // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT + // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE + /* 14 */ "\u013A,\u013C,\u013E,\u0140,\u0142", + // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX + // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE + // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE + // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA + /* 15 */ "\u011D,\u011F,\u0121,\u0123", + /* 16 */ null, + // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX + /* 17 */ "\u0125", + // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX + /* 18 */ "\u0135", + // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX + /* 19 */ "\u0175", + }; + + private static final Object[] LANGUAGES_AND_LABELS = { + "DEFAULT", LANGUAGE_DEFAULT, /* default */ + "ar", LANGUAGE_ar, /* Arabic */ + "be", LANGUAGE_be, /* Belarusian */ + "ca", LANGUAGE_ca, /* Catalan */ + "cs", LANGUAGE_cs, /* Czech */ + "da", LANGUAGE_da, /* Danish */ + "de", LANGUAGE_de, /* German */ + "en", LANGUAGE_en, /* English */ + "es", LANGUAGE_es, /* Spanish */ + "et", LANGUAGE_et, /* Estonian */ + "fa", LANGUAGE_fa, /* Persian */ + "fi", LANGUAGE_fi, /* Finnish */ + "fr", LANGUAGE_fr, /* French */ + "hi", LANGUAGE_hi, /* Hindi */ + "hr", LANGUAGE_hr, /* Croatian */ + "hu", LANGUAGE_hu, /* Hungarian */ + "is", LANGUAGE_is, /* Icelandic */ + "it", LANGUAGE_it, /* Italian */ + "iw", LANGUAGE_iw, /* Hebrew */ + "ky", LANGUAGE_ky, /* Kirghiz */ + "lt", LANGUAGE_lt, /* Lithuanian */ + "lv", LANGUAGE_lv, /* Latvian */ + "mk", LANGUAGE_mk, /* Macedonian */ + "nb", LANGUAGE_nb, /* Norwegian Bokmål */ + "nl", LANGUAGE_nl, /* Dutch */ + "pl", LANGUAGE_pl, /* Polish */ + "pt", LANGUAGE_pt, /* Portuguese */ + "rm", LANGUAGE_rm, /* Raeto-Romance */ + "ro", LANGUAGE_ro, /* Romanian */ + "ru", LANGUAGE_ru, /* Russian */ + "sk", LANGUAGE_sk, /* Slovak */ + "sl", LANGUAGE_sl, /* Slovenian */ + "sr", LANGUAGE_sr, /* Serbian */ + "sv", LANGUAGE_sv, /* Swedish */ + "tr", LANGUAGE_tr, /* Turkish */ + "uk", LANGUAGE_uk, /* Ukrainian */ + "vi", LANGUAGE_vi, /* Vietnamese */ + "zz", LANGUAGE_zz, /* No language */ + }; + + static { + int id = 0; + for (final String name : NAMES) { + sNameToIdMap.put(name, id++); + } + + for (int i = 0; i < LANGUAGES_AND_LABELS.length; i += 2) { + final String language = (String)LANGUAGES_AND_LABELS[i]; + final String[] labels = (String[])LANGUAGES_AND_LABELS[i + 1]; + sLocaleToLabelsMap.put(language, labels); + } + } +} diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index cc7540e4e..2d958e17d 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -17,11 +17,8 @@ package com.android.inputmethod.latin; import android.content.Context; -import android.content.res.AssetFileDescriptor; -import android.content.res.Resources; import com.android.inputmethod.keyboard.ProximityInfo; -import com.android.inputmethod.latin.LocaleUtils.RunInLocale; import java.util.Arrays; import java.util.Locale; diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java index e4d839690..b0c2adc79 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java @@ -20,11 +20,8 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.AssetFileDescriptor; -import android.content.res.Resources; import android.util.Log; -import com.android.inputmethod.latin.LocaleUtils.RunInLocale; - import java.io.File; import java.util.ArrayList; import java.util.Locale; @@ -155,14 +152,8 @@ class BinaryDictionaryGetter { * Returns a file address from a resource, or null if it cannot be opened. */ private static AssetFileAddress loadFallbackResource(final Context context, - final int fallbackResId, final Locale locale) { - final RunInLocale<AssetFileDescriptor> job = new RunInLocale<AssetFileDescriptor>() { - @Override - protected AssetFileDescriptor job(Resources res) { - return res.openRawResourceFd(fallbackResId); - } - }; - final AssetFileDescriptor afd = job.runInLocale(context.getResources(), locale); + final int fallbackResId) { + final AssetFileDescriptor afd = context.getResources().openRawResourceFd(fallbackResId); if (afd == null) { Log.e(TAG, "Found the resource but cannot read it. Is it compressed? resId=" + fallbackResId); @@ -264,13 +255,13 @@ class BinaryDictionaryGetter { * - Uses a content provider to get a public dictionary set, as per the protocol described * in BinaryDictionaryFileDumper. * If that fails: - * - Gets a file name from the fallback resource passed as an argument. + * - Gets a file name from the built-in dictionary for this locale, if any. * If that fails: * - Returns null. * @return The list of addresses of valid dictionary files, or null. */ public static ArrayList<AssetFileAddress> getDictionaryFiles(final Locale locale, - final Context context, final int fallbackResId) { + final Context context) { // cacheWordListsFromContentProvider returns the list of files it copied to local // storage, but we don't really care about what was copied NOW: what we want is the @@ -299,8 +290,9 @@ class BinaryDictionaryGetter { } if (!foundMainDict && dictPackSettings.isWordListActive(mainDictId)) { - final AssetFileAddress fallbackAsset = loadFallbackResource(context, fallbackResId, - locale); + final int fallbackResId = + DictionaryFactory.getMainDictionaryResourceId(context.getResources(), locale); + final AssetFileAddress fallbackAsset = loadFallbackResource(context, fallbackResId); if (null != fallbackAsset) { fileList.add(fallbackAsset); } diff --git a/java/src/com/android/inputmethod/latin/DictionaryFactory.java b/java/src/com/android/inputmethod/latin/DictionaryFactory.java index fedb45407..bf05f3bc3 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFactory.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFactory.java @@ -21,8 +21,6 @@ import android.content.res.AssetFileDescriptor; import android.content.res.Resources; import android.util.Log; -import com.android.inputmethod.latin.LocaleUtils.RunInLocale; - import java.io.File; import java.util.ArrayList; import java.util.LinkedList; @@ -38,24 +36,22 @@ public class DictionaryFactory { * Initializes a dictionary from a dictionary pack, with explicit flags. * * This searches for a content provider providing a dictionary pack for the specified - * locale. If none is found, it falls back to using the resource passed as fallBackResId - * as a dictionary. + * locale. If none is found, it falls back to the built-in dictionary - if any. * @param context application context for reading resources * @param locale the locale for which to create the dictionary - * @param fallbackResId the id of the resource to use as a fallback if no pack is found * @param useFullEditDistance whether to use the full edit distance in suggestions * @return an initialized instance of DictionaryCollection */ public static DictionaryCollection createDictionaryFromManager(final Context context, - final Locale locale, final int fallbackResId, final boolean useFullEditDistance) { + final Locale locale, final boolean useFullEditDistance) { if (null == locale) { Log.e(TAG, "No locale defined for dictionary"); - return new DictionaryCollection(createBinaryDictionary(context, fallbackResId, locale)); + return new DictionaryCollection(createBinaryDictionary(context, locale)); } final LinkedList<Dictionary> dictList = new LinkedList<Dictionary>(); final ArrayList<AssetFileAddress> assetFileList = - BinaryDictionaryGetter.getDictionaryFiles(locale, context, fallbackResId); + BinaryDictionaryGetter.getDictionaryFiles(locale, context); if (null != assetFileList) { for (final AssetFileAddress f : assetFileList) { final BinaryDictionary binaryDictionary = @@ -77,17 +73,14 @@ public class DictionaryFactory { * Initializes a dictionary from a dictionary pack, with default flags. * * This searches for a content provider providing a dictionary pack for the specified - * locale. If none is found, it falls back to using the resource passed as fallBackResId - * as a dictionary. + * locale. If none is found, it falls back to the built-in dictionary, if any. * @param context application context for reading resources * @param locale the locale for which to create the dictionary - * @param fallbackResId the id of the resource to use as a fallback if no pack is found * @return an initialized instance of DictionaryCollection */ public static DictionaryCollection createDictionaryFromManager(final Context context, - final Locale locale, final int fallbackResId) { - return createDictionaryFromManager(context, locale, fallbackResId, - false /* useFullEditDistance */); + final Locale locale) { + return createDictionaryFromManager(context, locale, false /* useFullEditDistance */); } /** @@ -98,16 +91,11 @@ public class DictionaryFactory { * @return an initialized instance of BinaryDictionary */ protected static BinaryDictionary createBinaryDictionary(final Context context, - final int resId, final Locale locale) { + final Locale locale) { AssetFileDescriptor afd = null; try { - final RunInLocale<AssetFileDescriptor> job = new RunInLocale<AssetFileDescriptor>() { - @Override - protected AssetFileDescriptor job(Resources res) { - return res.openRawResourceFd(resId); - } - }; - afd = job.runInLocale(context.getResources(), locale); + final int resId = getMainDictionaryResourceId(context.getResources(), locale); + afd = context.getResources().openRawResourceFd(resId); if (afd == null) { Log.e(TAG, "Found the resource but it is compressed. resId=" + resId); return null; @@ -123,7 +111,7 @@ public class DictionaryFactory { return new BinaryDictionary(context, sourceDir, afd.getStartOffset(), afd.getLength(), false /* useFullEditDistance */, locale); } catch (android.content.res.Resources.NotFoundException e) { - Log.e(TAG, "Could not find the resource. resId=" + resId); + Log.e(TAG, "Could not find the resource"); return null; } finally { if (null != afd) { @@ -163,41 +151,31 @@ public class DictionaryFactory { * @return whether a (non-placeholder) dictionary is available or not. */ public static boolean isDictionaryAvailable(Context context, Locale locale) { - final RunInLocale<Boolean> job = new RunInLocale<Boolean>() { - @Override - protected Boolean job(Resources res) { - final int resourceId = getMainDictionaryResourceId(res); - final AssetFileDescriptor afd = res.openRawResourceFd(resourceId); - final boolean hasDictionary = isFullDictionary(afd); - try { - if (null != afd) afd.close(); - } catch (java.io.IOException e) { - /* Um, what can we do here exactly? */ - } - return hasDictionary; - } - }; - return job.runInLocale(context.getResources(), locale); + final Resources res = context.getResources(); + final int resourceId = getMainDictionaryResourceId(res, locale); + final AssetFileDescriptor afd = res.openRawResourceFd(resourceId); + final boolean hasDictionary = isFullDictionary(afd); + try { + if (null != afd) afd.close(); + } catch (java.io.IOException e) { + /* Um, what can we do here exactly? */ + } + return hasDictionary; } // TODO: Do not use the size of the dictionary as an unique dictionary ID. public static Long getDictionaryId(final Context context, final Locale locale) { - final RunInLocale<Long> job = new RunInLocale<Long>() { - @Override - protected Long job(Resources res) { - final int resourceId = getMainDictionaryResourceId(res); - final AssetFileDescriptor afd = res.openRawResourceFd(resourceId); - final Long size = (afd != null && afd.getLength() > PLACEHOLDER_LENGTH) - ? afd.getLength() - : null; - try { - if (null != afd) afd.close(); - } catch (java.io.IOException e) { - } - return size; - } - }; - return job.runInLocale(context.getResources(), locale); + final Resources res = context.getResources(); + final int resourceId = getMainDictionaryResourceId(res, locale); + final AssetFileDescriptor afd = res.openRawResourceFd(resourceId); + final Long size = (afd != null && afd.getLength() > PLACEHOLDER_LENGTH) + ? afd.getLength() + : null; + try { + if (null != afd) afd.close(); + } catch (java.io.IOException e) { + } + return size; } // TODO: Find the Right Way to find out whether the resource is a placeholder or not. @@ -214,13 +192,32 @@ public class DictionaryFactory { return (afd != null && afd.getLength() > PLACEHOLDER_LENGTH); } + private static final String DEFAULT_MAIN_DICT = "main"; + private static final String MAIN_DICT_PREFIX = "main_"; + /** * Returns a main dictionary resource id + * @param locale dictionary locale * @return main dictionary resource id */ - public static int getMainDictionaryResourceId(Resources res) { - final String MAIN_DIC_NAME = "main"; - String packageName = LatinIME.class.getPackage().getName(); - return res.getIdentifier(MAIN_DIC_NAME, "raw", packageName); + public static int getMainDictionaryResourceId(Resources res, Locale locale) { + final String packageName = LatinIME.class.getPackage().getName(); + int resId; + + // Try to find main_language_country dictionary. + if (!locale.getCountry().isEmpty()) { + final String dictLanguageCountry = MAIN_DICT_PREFIX + locale.toString().toLowerCase(); + if ((resId = res.getIdentifier(dictLanguageCountry, "raw", packageName)) != 0) { + return resId; + } + } + + // Try to find main_language dictionary. + final String dictLanguage = MAIN_DICT_PREFIX + locale.getLanguage(); + if ((resId = res.getIdentifier(dictLanguage, "raw", packageName)) != 0) { + return resId; + } + + return res.getIdentifier(DEFAULT_MAIN_DICT, "raw", packageName); } } diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java new file mode 100644 index 000000000..53e8b74de --- /dev/null +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -0,0 +1,393 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package com.android.inputmethod.latin; + +import android.content.Context; +import android.os.SystemClock; +import android.util.Log; + +import com.android.inputmethod.keyboard.ProximityInfo; +import com.android.inputmethod.latin.makedict.BinaryDictInputOutput; +import com.android.inputmethod.latin.makedict.FusionDictionary; +import com.android.inputmethod.latin.makedict.FusionDictionary.Node; +import com.android.inputmethod.latin.makedict.UnsupportedFormatException; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.concurrent.locks.ReentrantLock; + +/** + * Abstract base class for an expandable dictionary that can be created and updated dynamically + * during runtime. When updated it automatically generates a new binary dictionary to handle future + * queries in native code. This binary dictionary is written to internal storage, and potentially + * shared across multiple ExpandableBinaryDictionary instances. Updates to each dictionary filename + * are controlled across multiple instances to ensure that only one instance can update the same + * dictionary at the same time. + */ +abstract public class ExpandableBinaryDictionary extends Dictionary { + + /** Used for Log actions from this class */ + private static final String TAG = ExpandableBinaryDictionary.class.getSimpleName(); + + /** Whether to print debug output to log */ + private static boolean DEBUG = false; + + /** + * The maximum length of a word in this dictionary. This is the same value as the binary + * dictionary. + */ + protected static final int MAX_WORD_LENGTH = BinaryDictionary.MAX_WORD_LENGTH; + + /** + * A static map of locks, each of which controls access to a single binary dictionary file. They + * ensure that only one instance can update the same dictionary at the same time. The key for + * this map is the filename and the value is the shared dictionary controller associated with + * that filename. + */ + private static final HashMap<String, DictionaryController> sSharedDictionaryControllers = + new HashMap<String, DictionaryController>(); + + /** The application context. */ + protected final Context mContext; + + /** + * The binary dictionary generated dynamically from the fusion dictionary. This is used to + * answer unigram and bigram queries. + */ + private BinaryDictionary mBinaryDictionary; + + /** The expandable fusion dictionary used to generate the binary dictionary. */ + private FusionDictionary mFusionDictionary; + + /** The dictionary type id. */ + public final int mDicTypeId; + + /** + * The name of this dictionary, used as the filename for storing the binary dictionary. Multiple + * dictionary instances with the same filename is supported, with access controlled by + * DictionaryController. + */ + private final String mFilename; + + /** Controls access to the shared binary dictionary file across multiple instances. */ + private final DictionaryController mSharedDictionaryController; + + /** Controls access to the local binary dictionary for this instance. */ + private final DictionaryController mLocalDictionaryController = new DictionaryController(); + + /** + * Abstract method for loading the unigrams and bigrams of a given dictionary in a background + * thread. + */ + protected abstract void loadDictionaryAsync(); + + /** + * Gets the shared dictionary controller for the given filename. + */ + private static synchronized DictionaryController getSharedDictionaryController( + String filename) { + DictionaryController controller = sSharedDictionaryControllers.get(filename); + if (controller == null) { + controller = new DictionaryController(); + sSharedDictionaryControllers.put(filename, controller); + } + return controller; + } + + /** + * Creates a new expandable binary dictionary. + * + * @param context The application context of the parent. + * @param filename The filename for this binary dictionary. Multiple dictionaries with the same + * filename is supported. + * @param dictType The type of this dictionary. + */ + public ExpandableBinaryDictionary( + final Context context, final String filename, final int dictType) { + mDicTypeId = dictType; + mFilename = filename; + mContext = context; + mBinaryDictionary = null; + mSharedDictionaryController = getSharedDictionaryController(filename); + clearFusionDictionary(); + } + + /** + * Closes and cleans up the binary dictionary. + */ + @Override + public void close() { + // Ensure that no other threads are accessing the local binary dictionary. + mLocalDictionaryController.lock(); + try { + if (mBinaryDictionary != null) { + mBinaryDictionary.close(); + mBinaryDictionary = null; + } + } finally { + mLocalDictionaryController.unlock(); + } + } + + /** + * Clears the fusion dictionary on the Java side. Note: Does not modify the binary dictionary on + * the native side. + */ + public void clearFusionDictionary() { + mFusionDictionary = new FusionDictionary(new Node(), new FusionDictionary.DictionaryOptions( + new HashMap<String, String>(), false, false)); + } + + /** + * Adds a word unigram to the fusion dictionary. Call updateBinaryDictionary when all changes + * are done to update the binary dictionary. + */ + // TODO: Create "cache dictionary" to cache fresh words for frequently updated dictionaries, + // considering performance regression. + protected void addWord(final String word, final int frequency) { + mFusionDictionary.add(word, frequency, null, null); + } + + /** + * Sets a word bigram in the fusion dictionary. Call updateBinaryDictionary when all changes are + * done to update the binary dictionary. + */ + // TODO: Create "cache dictionary" to cache fresh bigrams for frequently updated dictionaries, + // considering performance regression. + protected void setBigram(final String prevWord, final String word, final int frequency) { + mFusionDictionary.setBigram(prevWord, word, frequency); + } + + @Override + public void getWords(final WordComposer codes, final WordCallback callback, + final ProximityInfo proximityInfo) { + asyncReloadDictionaryIfRequired(); + getWordsInner(codes, callback, proximityInfo); + } + + protected final void getWordsInner(final WordComposer codes, final WordCallback callback, + final ProximityInfo proximityInfo) { + // Ensure that there are no concurrent calls to getWords. If there are, do nothing and + // return. + if (mLocalDictionaryController.tryLock()) { + try { + if (mBinaryDictionary != null) { + mBinaryDictionary.getWords(codes, callback, proximityInfo); + } + } finally { + mLocalDictionaryController.unlock(); + } + } + } + + @Override + public void getBigrams(final WordComposer codes, final CharSequence previousWord, + final WordCallback callback) { + asyncReloadDictionaryIfRequired(); + getBigramsInner(codes, previousWord, callback); + } + + protected void getBigramsInner(final WordComposer codes, final CharSequence previousWord, + final WordCallback callback) { + if (mLocalDictionaryController.tryLock()) { + try { + if (mBinaryDictionary != null) { + mBinaryDictionary.getBigrams(codes, previousWord, callback); + } + } finally { + mLocalDictionaryController.unlock(); + } + } + } + + @Override + public boolean isValidWord(final CharSequence word) { + asyncReloadDictionaryIfRequired(); + return isValidWordInner(word); + } + + protected boolean isValidWordInner(final CharSequence word) { + if (mLocalDictionaryController.tryLock()) { + try { + if (mBinaryDictionary != null) { + return mBinaryDictionary.isValidWord(word); + } + } finally { + mLocalDictionaryController.unlock(); + } + } + return false; + } + + /** + * Load the current binary dictionary from internal storage in a background thread. If no binary + * dictionary exists, this method will generate one. + */ + protected void loadDictionary() { + mLocalDictionaryController.mLastUpdateRequestTime = SystemClock.uptimeMillis(); + asyncReloadDictionaryIfRequired(); + } + + /** + * Loads the current binary dictionary from internal storage. Assumes the dictionary file + * exists. + */ + protected void loadBinaryDictionary() { + if (DEBUG) { + Log.d(TAG, "Loading binary dictionary: request=" + + mSharedDictionaryController.mLastUpdateRequestTime + " update=" + + mSharedDictionaryController.mLastUpdateTime); + } + + final File file = new File(mContext.getFilesDir(), mFilename); + final String filename = file.getAbsolutePath(); + final long length = file.length(); + + // Build the new binary dictionary + final BinaryDictionary newBinaryDictionary = + new BinaryDictionary(mContext, filename, 0, length, true /* useFullEditDistance */, + null); + + if (mBinaryDictionary != null) { + // Ensure all threads accessing the current dictionary have finished before swapping in + // the new one. + final BinaryDictionary oldBinaryDictionary = mBinaryDictionary; + mLocalDictionaryController.lock(); + mBinaryDictionary = newBinaryDictionary; + mLocalDictionaryController.unlock(); + oldBinaryDictionary.close(); + } else { + mBinaryDictionary = newBinaryDictionary; + } + } + + /** + * Generates and writes a new binary dictionary based on the contents of the fusion dictionary. + */ + private void generateBinaryDictionary() { + if (DEBUG) { + Log.d(TAG, "Generating binary dictionary: request=" + + mSharedDictionaryController.mLastUpdateRequestTime + " update=" + + mSharedDictionaryController.mLastUpdateTime); + } + + loadDictionaryAsync(); + + final File file = new File(mContext.getFilesDir(), mFilename); + FileOutputStream out = null; + try { + out = new FileOutputStream(file); + BinaryDictInputOutput.writeDictionaryBinary(out, mFusionDictionary, 1); + out.flush(); + out.close(); + clearFusionDictionary(); + } catch (IOException e) { + Log.e(TAG, "IO exception while writing file: " + e); + } catch (UnsupportedFormatException e) { + Log.e(TAG, "Unsupported format: " + e); + } finally { + if (out != null) { + try { + out.close(); + } catch (IOException e) { + // ignore + } + } + } + } + + /** + * Sets whether or not the dictionary is out of date and requires a reload. + */ + protected void setRequiresReload(final boolean reload) { + final long time = reload ? SystemClock.uptimeMillis() : 0; + mSharedDictionaryController.mLastUpdateRequestTime = time; + mLocalDictionaryController.mLastUpdateRequestTime = time; + if (DEBUG) { + Log.d(TAG, "Reload request: request=" + time + " update=" + + mSharedDictionaryController.mLastUpdateTime); + } + } + + /** + * Reloads the dictionary if required. Reload will occur asynchronously in a separate thread. + */ + void asyncReloadDictionaryIfRequired() { + new AsyncReloadDictionaryTask().start(); + } + + /** + * Reloads the dictionary if required. Access is controlled on a per dictionary file basis and + * supports concurrent calls from multiple instances that share the same dictionary file. + */ + protected final void syncReloadDictionaryIfRequired() { + if (mBinaryDictionary != null && !mLocalDictionaryController.isOutOfDate()) { + return; + } + + // Ensure that only one thread attempts to read or write to the shared binary dictionary + // file at the same time. + mSharedDictionaryController.lock(); + try { + final long time = SystemClock.uptimeMillis(); + if (mSharedDictionaryController.isOutOfDate() || !dictionaryFileExists()) { + // If the shared dictionary file does not exist or is out of date, the first + // instance that acquires the lock will generate a new one. + mSharedDictionaryController.mLastUpdateTime = time; + mLocalDictionaryController.mLastUpdateTime = time; + generateBinaryDictionary(); + loadBinaryDictionary(); + } else if (mLocalDictionaryController.isOutOfDate()) { + // Otherwise, if only the local dictionary for this instance is out of date, load + // the shared dictionary from file. + mLocalDictionaryController.mLastUpdateTime = time; + loadBinaryDictionary(); + } + } finally { + mSharedDictionaryController.unlock(); + } + } + + private boolean dictionaryFileExists() { + final File file = new File(mContext.getFilesDir(), mFilename); + return file.exists(); + } + + /** + * Thread class for asynchronously reloading and rewriting the binary dictionary. + */ + private class AsyncReloadDictionaryTask extends Thread { + @Override + public void run() { + syncReloadDictionaryIfRequired(); + } + } + + /** + * Lock for controlling access to a given binary dictionary and for tracking whether the + * dictionary is out of date. Can be shared across multiple dictionary instances that access the + * same filename. + */ + private static class DictionaryController extends ReentrantLock { + private volatile long mLastUpdateTime = 0; + private volatile long mLastUpdateRequestTime = 0; + + private boolean isOutOfDate() { + return (mLastUpdateRequestTime > mLastUpdateTime); + } + } +} diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index e0fa2f838..7cdeef897 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -493,37 +493,28 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final String localeStr = mSubtypeSwitcher.getInputLocaleStr(); final Locale keyboardLocale = mSubtypeSwitcher.getInputLocale(); - final Context context = this; - final RunInLocale<Void> job = new RunInLocale<Void>() { - @Override - protected Void job(Resources res) { - final ContactsDictionary oldContactsDictionary; - if (mSuggest != null) { - oldContactsDictionary = mSuggest.getContactsDictionary(); - mSuggest.close(); - } else { - oldContactsDictionary = null; - } + final ContactsDictionary oldContactsDictionary; + if (mSuggest != null) { + oldContactsDictionary = mSuggest.getContactsDictionary(); + mSuggest.close(); + } else { + oldContactsDictionary = null; + } - int mainDicResId = DictionaryFactory.getMainDictionaryResourceId(res); - mSuggest = new Suggest(context, mainDicResId, keyboardLocale); - if (mSettingsValues.mAutoCorrectEnabled) { - mSuggest.setAutoCorrectionThreshold(mSettingsValues.mAutoCorrectionThreshold); - } + mSuggest = new Suggest(this, keyboardLocale); + if (mSettingsValues.mAutoCorrectEnabled) { + mSuggest.setAutoCorrectionThreshold(mSettingsValues.mAutoCorrectionThreshold); + } - mUserDictionary = new UserDictionary(context, localeStr); - mSuggest.setUserDictionary(mUserDictionary); - mIsUserDictionaryAvailable = mUserDictionary.isEnabled(); + mUserDictionary = new UserDictionary(this, localeStr); + mSuggest.setUserDictionary(mUserDictionary); + mIsUserDictionaryAvailable = mUserDictionary.isEnabled(); - resetContactsDictionary(oldContactsDictionary); + resetContactsDictionary(oldContactsDictionary); - mUserHistoryDictionary - = new UserHistoryDictionary(context, localeStr, Suggest.DIC_USER_HISTORY); - mSuggest.setUserHistoryDictionary(mUserHistoryDictionary); - return null; - } - }; - job.runInLocale(mResources, keyboardLocale); + mUserHistoryDictionary = new UserHistoryDictionary( + this, localeStr, Suggest.DIC_USER_HISTORY); + mSuggest.setUserHistoryDictionary(mUserHistoryDictionary); } /** @@ -559,9 +550,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } /* package private */ void resetSuggestMainDict() { - final Locale keyboardLocale = mSubtypeSwitcher.getInputLocale(); - int mainDicResId = DictionaryFactory.getMainDictionaryResourceId(mResources); - mSuggest.resetMainDict(this, mainDicResId, keyboardLocale); + mSuggest.resetMainDict(this, mSubtypeSwitcher.getInputLocale()); } @Override diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java index 49ab7f9d7..526acf128 100644 --- a/java/src/com/android/inputmethod/latin/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/SettingsValues.java @@ -97,7 +97,7 @@ public class SettingsValues { } } final String[] suggestPuncsSpec = KeySpecParser.parseCsvString( - res.getString(R.string.suggested_punctuations), res, R.string.english_ime_name); + res.getString(R.string.suggested_punctuations), null); mSuggestPuncList = createSuggestPuncList(suggestPuncsSpec); mSymbolsExcludedFromWordSeparators = res.getString(R.string.symbols_excluded_from_word_separators); diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index fa6664b1a..c3f3bd598 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -104,8 +104,8 @@ public class Suggest implements Dictionary.WordCallback { private static final int MINIMUM_SAFETY_NET_CHAR_LENGTH = 4; - public Suggest(final Context context, final int dictionaryResId, final Locale locale) { - initAsynchronously(context, dictionaryResId, locale); + public Suggest(final Context context, final Locale locale) { + initAsynchronously(context, locale); } /* package for test */ Suggest(final Context context, final File dictionary, @@ -119,9 +119,8 @@ public class Suggest implements Dictionary.WordCallback { addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_WHITELIST, mWhiteListDictionary); } - private void initAsynchronously(final Context context, final int dictionaryResId, - final Locale locale) { - resetMainDict(context, dictionaryResId, locale); + private void initAsynchronously(final Context context, final Locale locale) { + resetMainDict(context, locale); // TODO: read the whitelist and init the pool asynchronously too. // initPool should be done asynchronously now that the pool is thread-safe. @@ -146,14 +145,13 @@ public class Suggest implements Dictionary.WordCallback { } } - public void resetMainDict(final Context context, final int dictionaryResId, - final Locale locale) { + public void resetMainDict(final Context context, final Locale locale) { mMainDict = null; new Thread("InitializeBinaryDictionary") { @Override public void run() { final Dictionary newMainDict = DictionaryFactory.createDictionaryFromManager( - context, locale, dictionaryResId); + context, locale); mMainDict = newMainDict; addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_MAIN, newMainDict); addOrReplaceDictionary(mBigramDictionaries, DICT_KEY_MAIN, newMainDict); diff --git a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java index 7bb307662..bb3ba8651 100644 --- a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java +++ b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java @@ -38,6 +38,7 @@ public class WhitelistDictionary extends ExpandableDictionary { // TODO: Conform to the async load contact of ExpandableDictionary public WhitelistDictionary(final Context context, final Locale locale) { super(context, Suggest.DIC_WHITELIST); + // TODO: Move whitelist dictionary into main dictionary. final RunInLocale<Void> job = new RunInLocale<Void>() { @Override protected Void job(Resources res) { diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java index 97296147f..576fbe696 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -386,10 +386,8 @@ public class AndroidSpellCheckerService extends SpellCheckerService final int script = getScriptFromLocale(locale); final ProximityInfo proximityInfo = ProximityInfo.createSpellCheckerProximityInfo( SpellCheckerProximityInfo.getProximityForScript(script)); - final Resources resources = getResources(); - final int fallbackResourceId = DictionaryFactory.getMainDictionaryResourceId(resources); final DictionaryCollection dictionaryCollection = - DictionaryFactory.createDictionaryFromManager(this, locale, fallbackResourceId, + DictionaryFactory.createDictionaryFromManager(this, locale, true /* useFullEditDistance */); final String localeStr = locale.toString(); Dictionary userDictionary = mUserDictionaries.get(localeStr); |