Merge "Import translations. DO NOT MERGE"
diff --git a/java/res/layout/suggestions_strip.xml b/java/res/layout/suggestions_strip.xml
index b962abe..0b61499 100644
--- a/java/res/layout/suggestions_strip.xml
+++ b/java/res/layout/suggestions_strip.xml
@@ -52,7 +52,6 @@
android:layout_height="match_parent">
<TextView
android:id="@+id/important_notice_title"
- android:text="@string/important_notice_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6sp"
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index d9e7d2d..c1c13fb 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Laai tans…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Hoofwoordeboek"</string>
<string name="cancel" msgid="6830980399865683324">"Kanselleer"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installeer"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Kanselleer"</string>
<string name="delete_dict" msgid="756853268088330054">"Vee uit"</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index f4feac6..ce8b3ca 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"የይለፍቃል ቁልፎች ጮክ በለው ሲነገሩ ለመስማት የጆሮ ማዳመጫ ሰካ::"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"የአሁኑ ፅሁፍ %s ነው"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"ምንም ፅሁፍ አልገባም"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>ን ወደ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> ያርመዋል"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ራስ-ሰር እርማት ያከናውናል"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"የቁልፍ ኮድ%d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"ቀይር"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"ቅያር በርቷል (ለማሰናክል ንካ)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"የስልክ ሁኔታ ላይ"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"የስልክ ምልክቶች ሁኔታ ላይ"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"የቁልፍ ሰሌዳ ተደብቋል"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"የ<xliff:g id="KEYBOARD_MODE">%s</xliff:g> ቁልፍሰሌዳ በማሳየት ላይ"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"ቀን"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"ቀን እና ሰዓት"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"ኢሜይል"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"እንግሊዘኛ (የታላቋ ብሪታንያ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"እንግሊዘኛ (ዩ.ኤስ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ስፓኒሽኛ (ዩኤስ)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"እንግሊዝኛ (ዩኬ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"እንግሊዝኛ (አሜሪካ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ስፓኒሽ (አሜሪካ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ተለምዷዊ)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"ምንም ቋንቋ (ፊደላት)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"ፊደላት (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"ፊደላት (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ውጫዊ የመዝገበቃላት ፋይል አንብብ"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"በውርዶች አቃፊው ውስጥ ምንም የመዝገበ-ፋይሎች የሉም"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"የሚጭኑት የመዝገበ-ቃላት ፋይል ይምረጡ"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"እውን ይሄ ፋይል ለ<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ይጫን?"</string>
<string name="error" msgid="8940763624668513648">"ስህተት ተከስቶ ነበር"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"የእውቂያዎች መዝገበ-ቃላትን ያራግፉ"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"የግል መዝገበ-ቃላትን ያራግፉ"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"አድስ"</string>
<string name="last_update" msgid="730467549913588780">"ለመጨረሻ ጊዜ የተዘመነው"</string>
<string name="message_updating" msgid="4457761393932375219">"ዝማኔዎችን በመፈለግ ላይ"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"በመጫን ላይ…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"ዋና መዝገበ-ቃላት"</string>
<string name="cancel" msgid="6830980399865683324">"ሰርዝ"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"ጫን"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"ሰርዝ"</string>
<string name="delete_dict" msgid="756853268088330054">"ሰርዝ"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"በተንቀሳቃሽ መሣሪያዎ ላይ ለተመረጠው ቋንቋ የሚሆን መዝገበ-ቃላት ይገኛል።<br/> የትየባ ተሞክሮዎን ለማሻሻል የ<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> መዝገበ-ቃላቱን <b>እንዲያወርዱ</b> እንመክራለን።<br/> <br/> ማውረድ በ3ጂ ላይ አንድ ወይም ሁለት ደቂቃ ሊወስድ ይችላል። <b>ያልተገደበ የውሂብ ዕቅድ</b> ከሌለዎት ክፍያዎች መከፈል ሊኖርባቸው ይችላል።<br/> የትኛው የውሂብ ዕቅድ እንዳለዎት እርግጠኛ ካልሆኑ ውርዱን በራስ-ሰር ለመጀመር የWi-Fi ግንኙነት እንዲፈልጉ እንመክራለን።<br/> <br/> ጠቃሚ ምክር፦ የተንቀሳቃሽ መሣሪያዎ <b>ቅንብሮች</b> ምናሌ ውስጥ ወዳለው <b>ቋንቋ እና ግብዓት</b> በመሄድ መዝገበ-ቃላትን ማውረድና ማስወገድ ይችላሉ።"</string>
<string name="download_over_metered" msgid="1643065851159409546">"አሁን አውርድ (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> ሜባ)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"በWi-Fi አውርድ"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"የ<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> መዝገበ-ቃላት ማግኘት ይችላል"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"ለመገምገምና ለማውረድ ይጫኑ"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"በማውረድ ላይ፦ ለ<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> የሚሰጡ ጥቆማዎች በቅርቡ ዝግጁ ይሆናሉ።"</string>
<string name="version_text" msgid="2715354215568469385">"ሥሪት <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"አክል"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"ወደ መዝገበ-ቃላት አክል"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index 55689ee..645db88 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"جارٍ التحميل…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"القاموس الرئيسي"</string>
<string name="cancel" msgid="6830980399865683324">"إلغاء"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"تثبيت"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"إلغاء"</string>
<string name="delete_dict" msgid="756853268088330054">"حذف"</string>
diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml
index 673f159..638b8e9 100644
--- a/java/res/values-az-rAZ/strings.xml
+++ b/java/res/values-az-rAZ/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Parolu səsli eşitmək üçün qulaqcığı taxın"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Cari mətn %s\'dir"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Mətn daxil edilməyib"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sözünü <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> sözü ilə əvəzləyərək düzəldir"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> avto-korreksiyanı həyata keçirir"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"%d açar kodu"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Sürüşdürmə"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Sürüşdürmə aktivdir (deaktiv etmək üçün klikləyin)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefon rejimi"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefon simvol rejimi"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Gizlədilmiş klaviatura"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> klaviaturası göstərilir"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"tarix"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"gün və tarix"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"E-poçt"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"İngilis (BK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"İngilis (ABŞ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"İspan (ABŞ)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"İngilis (Britaniya) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"İngilis (Amerika) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"İspan (Amerika) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Ənənəvi)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Dil yoxdur (Əlifba)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Əlifba (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Əlifba (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Xarici lüğət faylını oxuyun"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Endirmə Qovluğunda heç bir lüğət faylı yoxdur"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Yükləmək üçün lüğət faylı seçin"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> üçün faylı quraşdırmaq istədiyinizə əminsiniz?"</string>
<string name="error" msgid="8940763624668513648">"Xəta var idi"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Kontaktlar lüğətini toplayın"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Şəxsi lüğəti toplayın"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Təzələ"</string>
<string name="last_update" msgid="730467549913588780">"Son yeniləmə"</string>
<string name="message_updating" msgid="4457761393932375219">"Güncəlləmələr yoxlanılır"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Yüklənir..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Əsas lüğət"</string>
<string name="cancel" msgid="6830980399865683324">"Ləğv et"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Quraşdırın"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Ləğv et"</string>
<string name="delete_dict" msgid="756853268088330054">"Sil"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Mobil telefonunuzda seçilmiş dilin əlçatımlı lüğəti var. Daha rahat yazmaq üçün <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> lüğətini endirməyinizi məsləhət görürük. Lüğətin endirilməsi 3G üzərindən bir-iki dəqiqə vaxt ala bilər. Limitsiz data planınızın olmadığı halda, data ödənişləri də tətbiq edilə bilər. Əgər hansı data planına malik olmağınıza əmin deyilsinizsə, Sizə Wi-Fi bağlantısı üzərindən avtomatik endirməyi məsləhət görürük. İpucu: Lüğətləri endirmək və ya sistemdən silmək üçün mobil cihazınızın menyusunda Ayarlar>Dil>Daxiletmə bölməsinə keçə bilərsiniz."</string>
<string name="download_over_metered" msgid="1643065851159409546">"İndi endirin (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi ilə endir"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> üçün lüğət əlçatımlıdır"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Nəzərdən keçirmək və endirmək üçün klikləyin"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Endirmə: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> üçün təkliflər tezliklə hazır olacaq."</string>
<string name="version_text" msgid="2715354215568469385">"<xliff:g id="VERSION_NUMBER">%1$s</xliff:g> nömrəli versiya"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Əlavə edin"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Lüğətə əlavə edin"</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index 641be3c..395513d 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Зарежда се…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Основен речник"</string>
<string name="cancel" msgid="6830980399865683324">"Отказ"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Инсталиране"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Отказ"</string>
<string name="delete_dict" msgid="756853268088330054">"Изтриване"</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 0c61857..0729153 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"S\'està carregant..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Diccionari principal"</string>
<string name="cancel" msgid="6830980399865683324">"Cancel·la"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instal·la"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancel·la"</string>
<string name="delete_dict" msgid="756853268088330054">"Suprimeix"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index 1208e19..25313f3 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Načítání…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Hlavní slovník"</string>
<string name="cancel" msgid="6830980399865683324">"Zrušit"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalovat"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Zrušit"</string>
<string name="delete_dict" msgid="756853268088330054">"Smazat"</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index ab7a637..e9891c8 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Indlæser…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Hovedordbog"</string>
<string name="cancel" msgid="6830980399865683324">"Annuller"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installer"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Annuller"</string>
<string name="delete_dict" msgid="756853268088330054">"Slet"</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index f6e53c5..750a312 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Wird geladen…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Allgemeines Wörterbuch"</string>
<string name="cancel" msgid="6830980399865683324">"Abbrechen"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installieren"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Abbrechen"</string>
<string name="delete_dict" msgid="756853268088330054">"Löschen"</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 976f091..6bbbb38 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Φόρτωση…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Κύριο λεξικό"</string>
<string name="cancel" msgid="6830980399865683324">"Ακύρωση"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Εγκατάσταση"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Ακύρωση"</string>
<string name="delete_dict" msgid="756853268088330054">"Διαγραφή"</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 28e53a1..c5c3d8c 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Loading…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Main dictionary"</string>
<string name="cancel" msgid="6830980399865683324">"Cancel"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Install"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancel"</string>
<string name="delete_dict" msgid="756853268088330054">"Delete"</string>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index 28e53a1..c5c3d8c 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Loading…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Main dictionary"</string>
<string name="cancel" msgid="6830980399865683324">"Cancel"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Install"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancel"</string>
<string name="delete_dict" msgid="756853268088330054">"Delete"</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index 98efbd5..db93ae2 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Cargando…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Diccionario principal"</string>
<string name="cancel" msgid="6830980399865683324">"Cancelar"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalar"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancelar"</string>
<string name="delete_dict" msgid="756853268088330054">"Eliminar"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index 0116c63..6f74185 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Cargando…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Diccionario principal"</string>
<string name="cancel" msgid="6830980399865683324">"Cancelar"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalar"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancelar"</string>
<string name="delete_dict" msgid="756853268088330054">"Eliminar"</string>
diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml
index ee9bf17..b77ac36 100644
--- a/java/res/values-et-rEE/strings.xml
+++ b/java/res/values-et-rEE/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Ühendage peakomplekt, et kuulata paroole."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Praegune tekst on %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Teksti ei ole sisestatud"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> parandab sõna <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> järgmiselt: <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> teeb automaatse paranduse"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Klahvi kood: %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Tõstuklahv"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Tõstuklahv sees (puudutage keelamiseks)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefonirežiim"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefoni sümbolite režiim"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klaviatuur on peidetud"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Näitab klaviatuuri režiimil <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"kuupäev"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"kuupäev ja kellaaeg"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"e-post"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Inglise (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglise (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"hispaania (USA)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglise (Ühendk.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglise (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Hispaania (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditsiooniline)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Keel puudub (tähestik)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Tähestik (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Tähestik (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Välise sõnastikufaili lugemine"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Kaustas Allalaadimised pole ühtegi sõnastikufaili"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Installitava sõnastikufaili valimine"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Kas soovite tõesti installida faili <xliff:g id="LANGUAGE_NAME">%s</xliff:g> keele jaoks?"</string>
<string name="error" msgid="8940763624668513648">"Ilmnes viga"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Kontaktisõnastiku tõmmistamine"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Isikliku sõnastiku tõmmistamine"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Värskenda"</string>
<string name="last_update" msgid="730467549913588780">"Viimati värskendatud"</string>
<string name="message_updating" msgid="4457761393932375219">"Värskenduste otsimine"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Laadimine …"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Peamine sõnastik"</string>
<string name="cancel" msgid="6830980399865683324">"Tühista"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installi"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Tühista"</string>
<string name="delete_dict" msgid="756853268088330054">"Kustuta"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Mobiilseadmes valitud keelele on saadaval sõnastik.<br/> Teksti mugavamaks sisestamiseks soovitame <b>alla laadida</b> <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> keele sõnastiku.<br/> <br/> 3G kaudu allalaadimisele võib kuluda minut või paar. Kui te ei kasuta <b>piiramatut andmepaketti</b>, võivad rakenduda tasud.<br/> Kui te ei tea, millist andmepaketti kasutate, soovitame allalaadimise automaatseks käivitamiseks leida WiFi-ühenduse.<br/> <br/> Nõuanne: sõnastikke saate alla laadida ja eemaldada, tehes mobiilseadme menüüs <b>Seaded</b> valiku <b>Keel ja sisend</b>."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Laadi kohe alla (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Laadi alla WiFi kaudu"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Sõnastik on saadaval <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> keeles"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Vajutage ülevaatamiseks ja allalaadimiseks"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Allalaadimine: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> keele soovitused on peagi saadaval."</string>
<string name="version_text" msgid="2715354215568469385">"Versioon <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Lisa"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Sõnaraamatusse lisamine"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 61ce785..7710930 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -81,10 +81,8 @@
<!-- no translation found for spoken_current_text_is (2485723011272583845) -->
<skip />
<string name="spoken_no_text_entered" msgid="7479685225597344496">"متنی وارد نشده است"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g>، <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> را به <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> تصحیح میکند"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> تصحیح خودکار را انجام میدهد"</string>
<!-- String.format failed for translation -->
<!-- no translation found for spoken_description_unknown (3197434010402179157) -->
<skip />
@@ -114,8 +112,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"حالت تلفن"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"حالت نمادهای تلفن"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"صفحه کلید پنهان شد"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"در حال نمایش صفحهکلید <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"تاریخ"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"تاریخ و زمان"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"ایمیل"</string>
@@ -139,14 +136,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"انگلیسی (بریتانیا)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"انگلیسی (امریکا)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"اسپانیایی (آمریکا)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"انگلیسی (انگلستان) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"انگلیسی (آمریکا) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"اسپانیایی (آمریکا) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (سنتی)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"بدون زبان (حروف الفبا)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"حروف الفبا (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"حروف الفبا (QWERTZ)"</string>
@@ -176,13 +169,12 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"خواندن فایل فرهنگ لغت خارجی"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"فایل فرهنگ لغتی در پوشه دانلودها وجود ندارد"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"یک فایل فرهنگ لغت برای نصب انتخاب کنید"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"این فایل واقعاً برای <xliff:g id="LANGUAGE_NAME">%s</xliff:g> نصب شود؟"</string>
<string name="error" msgid="8940763624668513648">"خطایی روی داد"</string>
- <string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"کپی واژهنامه مخاطبین"</string>
- <string name="prefs_dump_user_dict" msgid="294870685041741951">"کپی واژهنامه شخصی"</string>
- <string name="prefs_dump_user_history_dict" msgid="6821075152449554628">"کپی واژهنامه سابقه کاربر"</string>
- <string name="prefs_dump_personalization_dict" msgid="7558387996151745284">"کپی واژهنامه شخصیسازی"</string>
+ <string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"ایجاد فهرست کلی واژهنامه مخاطبین"</string>
+ <string name="prefs_dump_user_dict" msgid="294870685041741951">"ایجاد فهرست کلی واژهنامه شخصی"</string>
+ <string name="prefs_dump_user_history_dict" msgid="6821075152449554628">"ایجاد فهرست کلی واژهنامه سابقه کاربر"</string>
+ <string name="prefs_dump_personalization_dict" msgid="7558387996151745284">"ایجاد فهرست کلی واژهنامه شخصیسازی"</string>
<string name="button_default" msgid="3988017840431881491">"پیشفرض"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"به <xliff:g id="APPLICATION_NAME">%s</xliff:g> خوش آمدید"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"با ورودی اشارهای"</string>
@@ -220,22 +212,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"بازخوانی"</string>
<string name="last_update" msgid="730467549913588780">"آخرین بهروزرسانی"</string>
<string name="message_updating" msgid="4457761393932375219">"در حال بررسی بهروزرسانیها"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"در حال بارگیری…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"فرهنگ لغت اصلی"</string>
<string name="cancel" msgid="6830980399865683324">"لغو"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"نصب"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"لغو"</string>
<string name="delete_dict" msgid="756853268088330054">"حذف"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"برای زبان انتخاب شده در دستگاه همراه شما فرهنگ لغتی در دسترس است.<br/> توصیه میکنیم برای بهبود بخشیدن به تجربه تایپ کردنتان، فرهنگ لغت <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> را <b>دانلود کنید</b>.<br/> <br/> دانلود از طریق 3G ممکن است یک یا دو دقیقه طول بکشد. اگر <b>طرح داده نامحدود</b> نداشته باشید، ممکن است هزینههایی برای شما اعمال شوند.<br/> اگر مطمئن نیستید چه طرح دادهای دارید٬ توصیه میکنیم یک اتصال Wi-Fi بیابید تا دانلود به طور خودکار شروع شود.<br/> <br/> نکته: با رفتن به بخش <b>زبان و ورودی</b> در منوی <b>تنظیمات</b> دستگاهتان، فرهنگهای لغت را دانلود یا حذف کنید."</string>
<string name="download_over_metered" msgid="1643065851159409546">"هماکنون بارگیری شود (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> مگابایت)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"دانلود ازطریق Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"یک فرهنگ لغت برای <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> در دسترس است"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"برای مرور و دانلود فشار دهید"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"در حال دانلود کردن: پیشنهادات برای <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> به زودی آماده خواهند شد."</string>
<string name="version_text" msgid="2715354215568469385">"نسخه <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"افرودن"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"افزودن به فرهنگ لغت"</string>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index b2701fc..60e8d79 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Liitä kuulokkeet, niin kuulet mitä näppäimiä painat kirjoittaessasi salasanaa."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Nykyinen teksti on %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Ei kirjoitettua tekstiä"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korjaa sanan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sanaksi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> suorittaa automaattisen korjauksen"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Näppäimen koodi %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Vaihto"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Vaihto päällä (poista käytöstä napauttamalla)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Puhelintila"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Puhelinsymbolit-tila"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Näppäimistö on piilotettu"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Näytetään näppäimistö <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"päivämäärä"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"päivämäärä ja aika"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"sähköposti"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"englanti (Iso-Britannia)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"englanti (Yhdysvallat)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"espanja (Yhdysvallat)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"englanti (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"englanti (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"espanja (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (perinteinen)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Ei kieltä (aakkoset)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Aakkoset (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Aakkoset (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lue ulkoista sanakirjatiedostoa"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Lataukset-kansiossa ei ole sanakirjatiedostoja"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Valitse asennettava sanakirjatiedosto"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Haluatko asentaa tämän tiedoston kielelle <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Tapahtui virhe"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Vedosta yhteystietosanakirja"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Vedosta oma sanakirja"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Päivitä"</string>
<string name="last_update" msgid="730467549913588780">"Päivitetty viimeksi"</string>
<string name="message_updating" msgid="4457761393932375219">"Tarkistetaan päivityksiä"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Ladataan…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Pääsanakirja"</string>
<string name="cancel" msgid="6830980399865683324">"Peruuta"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Asenna"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Peruuta"</string>
<string name="delete_dict" msgid="756853268088330054">"Poista"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Laitteesi käyttökielelle on saatavilla sanakirja.<br/> Suosittelemme <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>-sanakirjan <b>lataamista</b>, sillä se helpottaa laitteella kirjoittamista.<br/> <br/> Lataus kestää useimmiten muutaman minuutin 3G-yhteydellä. Latauksesta saatetaan periä maksu, ellei käytössäsi ole <b>rajoittamatonta tiedonsiirtopakettia</b>.<br/> Jos et ole varma tiedonsiirtosopimuksesi tyypistä, etsi käyttöösi wifi-yhteys, niin lataus alkaa automaattisesti.<br/> <br/> Vinkki: voit ladata ja poistaa sanakirjoja mobiililaitteesi <b>Asetukset</b>-valikon <b>Kieli ja syöttötapa</b> -osiossa."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Lataa nyt (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> Mt)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Lataa wifi-yhteydellä"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Sanakirja on saatavilla kielelle <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Paina tätä, jos haluat tarkastella kohdetta ja ladata sen"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Ladataan: kielen <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ehdotukset ovat pian käytettävissä."</string>
<string name="version_text" msgid="2715354215568469385">"Versio <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Lisää"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Lisää sanakirjaan"</string>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index 6173497..3ccabaa 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Branchez des écouteurs pour entendre l\'énoncé à haute voix des touches lors de la saisie du mot de passe."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Le texte actuel est %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Aucun texte saisi"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet de remplacer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> par <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Code touche %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Maj"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Touche Maj activée (appuyer pour désactiver)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode Téléphone"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode Symboles du téléphone"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Clavier masqué"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Affichage du clavier <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"Date"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"Date et heure"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"Courriel"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Anglais (britannique)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Espagnol (États-Unis)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"anglais (Royaume-Uni) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"anglais (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"espagnol (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionnel)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Aucune langue (alphabet)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet latin (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet latin (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lire un fichier de dictionnaire externe"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Aucun fichier de dictionnaire dans le dossier \"Téléchargements\""</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Sélectionner un fichier de dictionnaire à installer"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Installer ce fichier pour la langue « <xliff:g id="LANGUAGE_NAME">%s</xliff:g> »?"</string>
<string name="error" msgid="8940763624668513648">"Une erreur s\'est produite"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Vider le dictionnaire des contacts"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Vider le dictionnaire personnel"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Actualiser"</string>
<string name="last_update" msgid="730467549913588780">"Dernière mise à jour"</string>
<string name="message_updating" msgid="4457761393932375219">"Recherche de mises à jour en cours…"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Chargement en cours…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Dictionnaire principal"</string>
<string name="cancel" msgid="6830980399865683324">"Annuler"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installer"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Annuler"</string>
<string name="delete_dict" msgid="756853268088330054">"Supprimer"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Un dictionnaire est offert pour la langue sélectionnée sur votre appareil mobile.<br/> Nous vous invitons à <b>télécharger</b> le dictionnaire pour la langue <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> pour faciliter votre réaction de texte.<br/> <br/> Le téléchargement peut prendre une à deux minutes par connexion 3G. Des frais peuvent s\'appliquer si vous ne disposez pas d\'un <b>forfait Internet illimité</b>.<br/> Si vous n\'êtes pas sûr de votre forfait, nous vous conseillons d\'utiliser une connexion Wi-Fi pour lancer automatiquement le téléchargement.<br/> <br/> Astuce : Vous pouvez télécharger et supprimer des dictionnaires dans la section <b>Langue et entrée</b> du menu <b>Paramètres</b> de votre appareil mobile."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Télécharger (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> Mo)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Télécharger via Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Un dictionnaire est offert pour la langue suivante : <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Appuyez ici pour consulter et télécharger le dictionnaire."</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Téléchargement en cours… Les suggestions seront bientôt offertes pour la langue suivante : <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>."</string>
<string name="version_text" msgid="2715354215568469385">"Version <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Ajouter"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Ajouter au dictionnaire"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index 29be6ca..3790836 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Branchez des écouteurs pour entendre l\'énoncé à haute voix des touches lors de la saisie du mot de passe."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Le texte actuel est %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Aucun texte saisi"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet de remplacer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> par <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique."</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Code touche %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Maj"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Touche Maj activée (appuyer pour désactiver)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode Téléphone"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode Symboles du téléphone"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Clavier masqué"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Affichage du clavier <xliff:g id="KEYBOARD_MODE">%s</xliff:g>."</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"Date"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"Date et heure"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"Adresse e-mail"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Anglais (Royaume-Uni)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Espagnol (États-Unis)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"anglais (Royaume-Uni) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"anglais (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"espagnol (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionnel)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Aucune langue (latin)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet latin (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet latin (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lire un fichier de dictionnaire externe"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Aucun fichier de dictionnaire dans le dossier \"Téléchargements\""</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Sélectionner un fichier de dictionnaire à installer"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Installer ce fichier pour la langue \"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>\" ?"</string>
<string name="error" msgid="8940763624668513648">"Une erreur s\'est produite"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Supprimer dictionnaire des contacts"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Supprimer le dictionnaire personnel"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Actualiser"</string>
<string name="last_update" msgid="730467549913588780">"Dernière mise à jour"</string>
<string name="message_updating" msgid="4457761393932375219">"Recherche de mises à jour en cours…"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Chargement en cours…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Dictionnaire principal"</string>
<string name="cancel" msgid="6830980399865683324">"Annuler"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installer"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Annuler"</string>
<string name="delete_dict" msgid="756853268088330054">"Supprimer"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Un dictionnaire est disponible pour la langue sélectionnée sur votre appareil mobile.<br/> Nous vous invitons à <b>télécharger</b> le dictionnaire pour cette langue : <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>. Cela facilitera votre saisie.<br/> <br/> Le téléchargement peut prendre une à deux minutes via une connexion 3G. Des frais peuvent s\'appliquer si vous n\'avez pas un <b>forfait Internet illimité</b>.<br/> Si vous avez un doute concernant le type de forfait dont vous disposez, nous vous conseillons d\'utiliser le Wi-Fi pour lancer automatiquement le téléchargement.<br/> <br/> Astuce : Vous pouvez télécharger et supprimer des dictionnaires sous <b>Langue et saisie</b>, dans le menu <b>Paramètres</b> de votre appareil mobile."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Télécharger (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> Mo)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Télécharger via Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Un dictionnaire est disponible pour la langue suivante : <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>."</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Appuyez ici pour consulter et télécharger le dictionnaire."</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Téléchargement en cours… Les suggestions seront bientôt disponibles pour la langue suivante : <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>."</string>
<string name="version_text" msgid="2715354215568469385">"Version <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Ajouter"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Ajouter au dictionnaire"</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index 58a31c1..eecd411 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"ज़ोर से बोली गई पासवर्ड कुंजियां सुनने के लिए हेडसेट प्लग इन करें."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"वर्तमान पाठ %s है"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"कोई पाठ दर्ज नहीं किया गया"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> को सुधार कर <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> करता है"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वत: सुधार करता है"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"कुंजी कोड %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"शिफ़्ट"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift चालू (अक्षम करने के लिए टैप करें)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"फ़ोन मोड"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"फ़ोन प्रतीक मोड"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"कीबोर्ड छिपा हुआ है"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> कीबोर्ड दिखाया जा रहा है"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"दिनांक"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"दिनांक और समय"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"ईमेल"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"अंग्रेज़ी (यूके)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"अंग्रेज़ी (यूएस)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"स्पेनिश (यूएस)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"अंग्रेज़ी (यूके) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"अंग्रेज़ी (यूएस) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"स्पेनिश (यूएस) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (पारंपरिक)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"भाषा उपलब्ध नहीं है (लैटिन वर्णाक्षर)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"वर्णाक्षर (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"वर्णाक्षर (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाहरी शब्दकोश फ़ाइल पढ़ें"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फ़ोल्डर में कोई शब्दकोश फ़ाइल नहीं है"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"इंस्टॉल करने के लिए कोई शब्दकोश फ़ाइल चुनें"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"क्या वाकई <xliff:g id="LANGUAGE_NAME">%s</xliff:g> के लिए यह फ़ाइल इंस्टॉल करें?"</string>
<string name="error" msgid="8940763624668513648">"कोई त्रुटि हुई थी"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"संपर्क शब्दकोश डंप करें"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"व्यक्तिगत शब्दकोश डंप करें"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"रीफ़्रेश करें"</string>
<string name="last_update" msgid="730467549913588780">"अंतिम बार का नई जानकारी"</string>
<string name="message_updating" msgid="4457761393932375219">"नई जानकारी देखा जा रहा हैं"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"लोड हो रहा है…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"मुख्य डिक्शनरी"</string>
<string name="cancel" msgid="6830980399865683324">"रद्द करें"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"इंस्टॉल करें"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"रद्द करें"</string>
<string name="delete_dict" msgid="756853268088330054">"हटाएं"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्दकोश उपलब्ध है.<br/> हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्दकोश <b>डाउनलोड करने</b> की अनुशंसा करते हैं.<br/> <br/> 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास <b>असीमित डेटा योजना</b> नहीं है, तो शुल्क लागू हो सकते हैं.<br/> यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए Wi-Fi कनेक्शन ढूंढने की अनुशंसा करते हैं.<br/> <br/> युक्ति: आप अपने मोबाइल उपकरण के <b>सेटिंग</b> मेनू में <b>भाषा और इनपुट</b> पर जाकर शब्दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string>
<string name="download_over_metered" msgid="1643065851159409546">"अभी डाउनलोड करें (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi से डाउनलोड करें"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए एक शब्दकोश उपलब्ध है"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"समीक्षा करने और डाउनलोड करने के लिए दबाएं"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"डाउनलोड प्रारंभ हो रहा है: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए सुझाव जल्दी ही उपलब्ध होंगे."</string>
<string name="version_text" msgid="2715354215568469385">"संस्करण <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"जोड़ें"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"शब्दकोश में जोड़ें"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 4e828cf..579ed25 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Učitavanje…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Glavni rječnik"</string>
<string name="cancel" msgid="6830980399865683324">"Odustani"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instaliraj"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Odustani"</string>
<string name="delete_dict" msgid="756853268088330054">"Izbriši"</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index e94bd98..aca6a94 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -211,10 +211,12 @@
<string name="message_loading" msgid="5638680861387748936">"Betöltés…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Fő szótár"</string>
<string name="cancel" msgid="6830980399865683324">"Mégse"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Telepítés"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Mégse"</string>
<string name="delete_dict" msgid="756853268088330054">"Törlés"</string>
- <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"A mobileszközön kiválasztott nyelvhez szótár érhető el.<br/> A gépelési élmény javításához javasoljuk a(z) <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> szótár <b>letöltését.<br/> <br/> A letöltés 3G hálózaton keresztül néhány percig tart. Ha <b>előfizetése nem korlátlan</b>, a letöltés költségekkel járhat.<br/> Ha nem biztos abban, hogy milyen adatcsomagot használ, javasoljuk, hogy keressen egy Wi-Fi-kapcsolatot a letöltés automatikus elindításához.<br/> <br/> Tipp: szótárakat a mobileszköz <b>Beállítások</b> menüjében a <b>Nyelv és bevitel</b> részben tölthet le és távolíthat el."</string>
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"A mobileszközön kiválasztott nyelvhez szótár érhető el.<br/> A gépelési élmény javításához javasoljuk a(z) <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> szótár <b>letöltését.<br/> <br/> A letöltés 3G hálózaton keresztül néhány percig tart. Ha <b>előfizetése nem korlátlan</b>, a letöltés költségekkel járhat.<br/> Ha nem biztos abban, hogy milyen adatcsomagot használ, javasoljuk, hogy keressen egy Wi-Fi-kapcsolatot a letöltés automatikus elindításához.<br/> <br/> Tipp: szótárakat a mobileszköz a <b>Beállítások</b> menü <b>Nyelv és bevitel</b> részében tölthet le és távolíthat el."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Töltse le most (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Letöltés Wi-Fivel"</string>
<string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> nyelvhez van rendelkezésre álló szótár"</string>
diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml
index 5ba8c4e..a891933 100644
--- a/java/res/values-hy-rAM/strings.xml
+++ b/java/res/values-hy-rAM/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Բեռնում..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Հիմնական բառարան"</string>
<string name="cancel" msgid="6830980399865683324">"Չեղարկել"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Տեղադրել"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Չեղարկել"</string>
<string name="delete_dict" msgid="756853268088330054">"Ջնջել"</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index afed130..b144fe2 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -211,10 +211,12 @@
<string name="message_loading" msgid="5638680861387748936">"Memuat…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Kamus utama"</string>
<string name="cancel" msgid="6830980399865683324">"Batal"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Pasang"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Batal"</string>
<string name="delete_dict" msgid="756853268088330054">"Hapus"</string>
- <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Bahasa pilihan pada perangkat seluler Anda memiliki kamus yang tersedia.<br/> Sebaiknya <b>unduh</b> kamus <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> untuk meningkatkan pengalaman pengetikan.<br/> <br/> Unduhan dapat berlangsung selama satu atau dua menit melalui 3G. Mungkin dikenakan tagihan data jika Anda tidak memiliki <b>paket data tak terbatas</b>.<br/> Jika Anda tidak yakin paket data mana yang Anda miliki, sebaiknya cari sambungan Wi-Fi untuk memulai unduhan secara otomatis.<br/> <br/> Kiat: Anda dapat mengunduh dan menghapus kamus dengan membuka <b>Bahasa & masukan</b> di menu <b>Setelan</b> perangkat seluler Anda."</string>
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Tersedia kamus untuk bahasa pilihan pada perangkat seluler Anda.<br/> Sebaiknya <b>unduh</b> kamus <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> untuk meningkatkan pengalaman pengetikan.<br/> <br/> Unduhan dapat berlangsung selama satu atau dua menit melalui 3G. Mungkin dikenakan biaya data jika tidak memiliki <b>paket data tak terbatas</b>.<br/> Jika tidak yakin dengan jenis paket data Anda, sebaiknya cari koneksi Wi-Fi untuk memulai unduhan secara otomatis.<br/> <br/> Kiat: Anda dapat mengunduh dan menghapus kamus dengan membuka <b>Bahasa & masukan</b> di menu <b>Setelan</b> perangkat seluler Anda."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Unduh sekarang (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Unduh melalui Wi-Fi"</string>
<string name="dict_available_notification_title" msgid="4583842811218581658">"Kamus tersedia untuk <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 47ae61a..8c15a95 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Caricamento..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Dizionario principale"</string>
<string name="cancel" msgid="6830980399865683324">"Annulla"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installa"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Annulla"</string>
<string name="delete_dict" msgid="756853268088330054">"Elimina"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 27ed135..942d6dc 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"טוען…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"מילון ראשי"</string>
<string name="cancel" msgid="6830980399865683324">"בטל"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"התקן"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"בטל"</string>
<string name="delete_dict" msgid="756853268088330054">"מחק"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index a27e3a4..244f20f 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"パスワードのキーが音声出力されるのでヘッドセットを接続してください。"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"現在のテキスト:%s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"テキストが入力されていません"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g>は<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>を<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>に修正します"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g>で自動修正が実行されます"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"キーコード:%d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift有効(タップして解除)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"電話モード"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"電話記号モード"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"キーボードは非表示です"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g>のキーワードを表示しています"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"日付"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"日時"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"メールアドレス"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"英語 (英国)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英語 (米国)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"スペイン語 (米国)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英語(英国)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英語(米国)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"スペイン語(米国)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(繁体)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"言語なし(アルファベット)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"アルファベット(QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"アルファベット(QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"外部辞書ファイルの読み取り"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ダウンロードフォルダに辞書ファイルはありません"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"インストールする辞書ファイルの選択"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"この<xliff:g id="LANGUAGE_NAME">%s</xliff:g>のファイルをインストールしますか?"</string>
<string name="error" msgid="8940763624668513648">"エラーが発生しました"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"連絡先辞書のダンプ"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"単語リストのダンプ"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"更新"</string>
<string name="last_update" msgid="730467549913588780">"最終更新"</string>
<string name="message_updating" msgid="4457761393932375219">"アップデートを確認しています"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"読み込んでいます…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"メイン辞書"</string>
<string name="cancel" msgid="6830980399865683324">"キャンセル"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"インストール"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"キャンセル"</string>
<string name="delete_dict" msgid="756853268088330054">"削除"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"お使いの携帯端末で選択した言語に対応する辞書があります。<br/>入力機能をより快適にご利用いただくため、<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>の辞書の<b>ダウンロード</b>をおすすめします。<br/> <br/>3G経由の場合、ダウンロードに要する時間は1~2分です。<b>定額制のデータプラン</b>をご利用でない場合は通信料が発生する可能性があります。<br/>ご利用のデータプランが不明な場合は、自動的にダウンロードが開始されるWi-Fi接続を探すことをおすすめします。<br/> <br/>ヒント: 辞書のダウンロードや削除は、お使いの携帯端末の[<b>設定</b>]メニューの[<b>言語と入力</b>]で行えます。"</string>
<string name="download_over_metered" msgid="1643065851159409546">"今すぐダウンロード(<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi経由でダウンロード"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>の辞書を利用できます"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"押すと確認/ダウンロードできます"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"ダウンロード中: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>の入力候補をまもなく利用できます。"</string>
<string name="version_text" msgid="2715354215568469385">"バージョン<xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"追加"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"辞書に追加"</string>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index 2bdb1b8..ddfed88 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"შეაერთეთ ყურსაცვამი, რათა მოისმინოთ აკრეფილი პაროლის კლავიშების სახელები."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"მიმდინარე ტექსტი არის %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"ტექსტი არ შეყვანილა"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> შეასწორებს <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ს <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>-ად"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ასრულებს ავტოკორექციას"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"კლავიატურის კოდი %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift ჩართულია (შეეხეთ გამოსართავად)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"ტელეფონის რეჟიმი"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"ტელეფონის სიმბოლოების რეჟიმი"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"კლავიატურა დამალულია"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"ნაჩვენებია <xliff:g id="KEYBOARD_MODE">%s</xliff:g> კლავიატურა"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"თარიღი"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"თარიღი და დრო"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"ელფოსტა"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"ინგლისური (გართ. სამ.)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ინგლისური (აშშ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ესპანური (აშშ)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ინგლისური (გაერთ.სამ.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ინგლისური (აშშ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ესპანური (აშშ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ტრადიციული)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"ენის გარეშე (ანბანი)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"ანბანი (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"ანბანი (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"გარე ლექსიკონის ფაილის წაკითხვა"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ჩამოტვირთვების საქაღალდეში ლექსიკონის ფაილები არ არის"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ინსტალაციისათვის აირჩიეთ ლექსიკონის ფაილი"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ნამდვილად გსურთ ამ ფაილის <xliff:g id="LANGUAGE_NAME">%s</xliff:g>-ისთვის ინსტალაცია?"</string>
<string name="error" msgid="8940763624668513648">"წარმოიშვა შეცდომა"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"კონტაქტების საქაღალდის ჩამოწერა"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"პერსონალური საქაღალდის ჩამოწერა"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"განახლება"</string>
<string name="last_update" msgid="730467549913588780">"ბოლო განახლება"</string>
<string name="message_updating" msgid="4457761393932375219">"მიმდინარეობს განახლებების შემოწმება"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"იტვირთება..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"მთავარი ლექსიკონი"</string>
<string name="cancel" msgid="6830980399865683324">"გაუქმება"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"ინსტალაცია"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"გაუქმება"</string>
<string name="delete_dict" msgid="756853268088330054">"წაშლა"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"თქვენ მიერ მობილურ მოწყობილობაზე არჩეული ენისთვის ხელმისაწვდომია ლექსიკონი.<br/> გირჩევთ, <b>ჩამოტვირთოთ</b> <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ლექსიკონი, რათა გაიმარტივოთ ტექსტის შეყვანა.<br/> <br/> ჩამოტვირთვას შესაძლოა დასჭირდეს ერთი ან ორი წუთი 3G სისწრაფეზე. თუ <b> მობილური ინტერნეტის ტარიფი</b>.<br/&gt ულიმიტო არ გაქვთ, შესაძლოა გადახდა მოგიწიოთ; თუ არ ხართ დარწმუნებული მობილური ინტერნეტის აქტიური ტარიფის შესახებ, გირჩევთ, იპოვოთ Wi-Fi კავშირი და ავტომატურად დაიწყოთ ჩამოტვირთვა.<br/> <br/> რჩევა: ლექსიკონების ჩამოტვირთვა და ამოშლა შეიძლებასექციიდან <b>ენა და შეყვანა</b> თქვენი მობილური მოწყობილობის <b>პარამეტრების</b> მენიუში."</string>
<string name="download_over_metered" msgid="1643065851159409546">"ახლა ჩამოტვირთვა (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>მბაიტი)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi კავშირზე ჩამოტვირთვა"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>-სთვის ხელმისაწვდომია ლექსიკონი"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"დააჭირეთ განხილვას და ჩამოტვირთეთ"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"იტვირთება: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>-ის შემოთავაზებები მალე მომზადდება."</string>
<string name="version_text" msgid="2715354215568469385">"ვერსია <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"დამატება"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"ლექსიკონში დამატება"</string>
diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml
index 142607c..00e407c 100644
--- a/java/res/values-km-rKH/strings.xml
+++ b/java/res/values-km-rKH/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"ដោតកាស ដើម្បីស្ដាប់ពាក្យសម្ងាត់។"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"អត្ថបទបច្ចុប្បន្នគឺ %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"គ្មានអត្ថបទបានបញ្ចូល"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> កែ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ទៅជា <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> អនុវត្តការកែស្វ័យប្រវត្តិ"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"កូដគ្រាប់ចុច %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"បើក Shift (ប៉ះដើម្បីបិទ)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"របៀបទូរស័ព្ទ"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"របៀបនិមិត្តសញ្ញាទូរស័ព្ទ"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"បានលាក់ក្ដារចុច"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"បង្ហាញក្ដារចុច <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"កាលបរិច្ឆេទ"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"កាលបរិច្ឆេទ និងពេលវេលា"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"អ៊ីមែល"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"អង់គ្លេស (អង់គ្លេស)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"អង់គ្លេស (សហរដ្ឋអាមេរិក)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"អេស្ប៉ាញ (សហរដ្ឋអាមេរិក)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"អង់គ្លេស (ចក្រភពអង់គ្លេស) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"អង់គ្លេស (អាមេរិក) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"អេស្ប៉ាញ (អាមេរិក) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (អក្សរពេញ)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"គ្មានភាសា (អក្សរក្រម)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"តាមលំដាប់អក្សរក្រម (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"តាមលំដាប់អក្សរក្រម (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"អានឯកសារវចនានុក្រមខាងក្រៅ"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"គ្មានឯកសារវចនានុក្រមនៅក្នុងថតទាញយក"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ជ្រើសឯកសារវចនានុក្រម ដើម្បីដំឡើង"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ពិតជាដំឡើងឯកសារនេះសម្រាប់ <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"មានកំហុស"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"បោះបង់វចនានុក្រមទំនាក់ទំនង"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"បោះបង់វចនានុក្រមផ្ទាល់ខ្លួន"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"ផ្ទុកឡើងវិញ"</string>
<string name="last_update" msgid="730467549913588780">"បានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ"</string>
<string name="message_updating" msgid="4457761393932375219">"ពិនិត្យមើលបច្ចុប្បន្នភាព"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"កំពុងផ្ទុក..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"វចនានុក្រមចម្បង"</string>
<string name="cancel" msgid="6830980399865683324">"បោះបង់"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"ដំឡើង"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"បោះបង់"</string>
<string name="delete_dict" msgid="756853268088330054">"លុប"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"ភាសាដែលបានជ្រើសនៅលើឧបករណ៍ចល័តមានវចនានុក្រមអាចប្រើបាន។<br/> យើងផ្ដល់អនុសាសន៍ឲ្យ <b>ទាញយក</b> វចនានុក្រមភាសា <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ដើម្បីបង្កើនបទពិសោធន៍វាយបញ្ចូលរបស់អ្នក។<br/> <br/> ការទាញយកអាចចំណាយពេលប្រហែលពីរនាទីនៅតាម 3G។ ការគិតថ្លៃអាចអនុវត្តប្រសិនបើអ្នកមិនប្រើ <b>ផែនការទិន្នន័យគ្មានដែនកំណត់</b>.<br/> បើអ្នកមិនប្រាកដថាផែនការណាមួយដែលអ្នកមាន យើងផ្ដល់អនុសាសន៍ឲ្យភ្ជាប់វ៉ាយហ្វាយ ដើម្បីចាប់ផ្ដើមទាញយកដោយស្វ័យប្រវត្តិ។<br/> <br/> ជំនួយ៖ អ្នកអាចទាញយក និងលុបវចនានុក្រមដោយចូលទៅ <b>ភាសា & ការបញ្ចូល</b> នៅក្នុងម៉ឺនុយ <b>ការកំណត់</b> សម្រាប់ឧបករណ៍ចល័ត។"</string>
<string name="download_over_metered" msgid="1643065851159409546">"ទាញយកឥឡូវនេះ (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> មេកាបៃ)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"ទាញយកតាមវ៉ាយហ្វាយ"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"វចនានុក្រមអាចប្រើបានសម្រាប់ <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"ចុច ដើម្បីពិនិត្យមើលឡើងវិញ និងទាញយក"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"ទាញយក៖ ការស្នើសម្រាប់ <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> នឹងរួចរាល់ក្នុងពេលឆាប់ៗនេះ។"</string>
<string name="version_text" msgid="2715354215568469385">"កំណែ <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"បន្ថែម"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"បន្ថែមទៅវចនានុក្រម"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index 0cf0b10..88aa05e 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"비밀번호 키를 음성으로 들으려면 헤드셋을 연결하세요."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"입력한 텍스트: %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"입력한 텍스트 없음"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g>을(를) 누르면 <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>을(를) <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>(으)로 수정합니다."</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g>을(를) 누르면 자동 수정됩니다."</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"키 코드 %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"시프트 키"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift 사용(사용하지 않으려면 탭하세요.)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"다이얼 모드"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"전화 기호 모드"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"키보드 숨김"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> 키보드 표시"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"날짜"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"날짜 및 시간"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"이메일"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"영어(영국)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"영어(미국)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"스페인어(미국)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"영어(영국)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"영어(미국)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"스페인어(미국)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(일반)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"언어 없음(알파벳)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"알파벳(QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"알파벳(QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"외부 사전 파일 읽기"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"다운로드 폴더에 사전 파일이 없음"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"설치할 사전 파일 선택"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"이 파일을 <xliff:g id="LANGUAGE_NAME">%s</xliff:g>(으)로 설치하시겠습니까?"</string>
<string name="error" msgid="8940763624668513648">"오류 발생"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"연락처 사전 덤프"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"개인 사전 덤프"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"새로고침"</string>
<string name="last_update" msgid="730467549913588780">"최종 업데이트"</string>
<string name="message_updating" msgid="4457761393932375219">"업데이트를 확인하는 중"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"로드 중..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"기본 사전"</string>
<string name="cancel" msgid="6830980399865683324">"취소"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"설치"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"취소"</string>
<string name="delete_dict" msgid="756853268088330054">"삭제"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"휴대기기에서 선택한 언어로 사용할 수 있는 사전이 있습니다.<br/> <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> 사전을 <b>다운로드</b>하여 입력 환경을 개선해 보세요.<br/> <br/> 3G로 다운로드하는 경우 1-2분 정도 걸립니다. <b>무제한 데이터 요금제</b>가 아닌 경우 요금이 청구될 수 있습니다.<br/> 사용 중인 데이터 요금제를 잘 모르는 경우 Wi-Fi에 연결할 수 있는 곳을 찾아 자동 다운로드를 시작하는 것이 좋습니다.<br/> <br/> 도움말: 사전을 다운로드하거나 삭제하려면 휴대기기의 <b>설정</b> 메뉴에 있는 <b>언어 및 입력</b>으로 이동하면 됩니다."</string>
<string name="download_over_metered" msgid="1643065851159409546">"지금 다운로드(<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi를 통해 다운로드"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> 사전을 사용할 수 있습니다."</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"검토하고 다운로드하려면 누르세요."</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"다운로드 중: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>에 대한 추천항목이 곧 준비됩니다."</string>
<string name="version_text" msgid="2715354215568469385">"버전 <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"추가"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"사전에 추가"</string>
diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml
index 881358f..b5703dc 100644
--- a/java/res/values-lo-rLA/strings.xml
+++ b/java/res/values-lo-rLA/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"ກຳລັງໂຫຼດ..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"ວັດຈະນານຸກົມຫຼັກ"</string>
<string name="cancel" msgid="6830980399865683324">"ຍົກເລີກ"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"ຕິດຕັ້ງ"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"ຍົກເລີກ"</string>
<string name="delete_dict" msgid="756853268088330054">"ລຶບ"</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index 3f504e4..cf7300d 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Prijunkite ausines, kad išgirstumėte sakomus slaptažodžio klavišus."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Dabartinis tekstas yra %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Nėra įvesto teksto"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> pataiso <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> į <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> atlieka automatinį taisymą"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Klavišo kodas %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Antrojo lygio klavišas"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Įjungtas antrasis lygis (palieskite, kad išjungtumėte)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefono režimas"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefono simbolių režimas"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klaviatūra paslėpta"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Klaviatūra rodoma režimu „<xliff:g id="KEYBOARD_MODE">%s</xliff:g>“"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"datos"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"datos ir laiko"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"el. pašto"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Anglų k. (JK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglų k. (JAV)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Ispanų k. (JAV)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Anglų (JK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Anglų (JAV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Ispanų (JAV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicinė)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Kalbos nėra (abėcėlė)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abėcėlė (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abėcėlė (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Skaityti išorinį žodyno failą"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Atsisiuntimų aplanke nėra žodyno failų"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pasirinkite diegiamą žodyno failą"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ar tikrai įdiegti šį failą <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Įvyko klaida"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Iškelti kontaktų žodyną"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Iškelti asmeninį žodyną"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Atnaujinti"</string>
<string name="last_update" msgid="730467549913588780">"Paskutinį kartą atnaujinta"</string>
<string name="message_updating" msgid="4457761393932375219">"Ieškoma naujinių"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Įkeliama…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Pagrindinis žodynas"</string>
<string name="cancel" msgid="6830980399865683324">"Atšaukti"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Įdiegti"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Atšaukti"</string>
<string name="delete_dict" msgid="756853268088330054">"Ištrinti"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Galimas jūsų mobiliajame įrenginyje pasirinktos kalbos žodynas.<br/> Rekomenduojame <b>atsisiųsti</b> <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> žodyną, kad patobulintumėte teksto įvedimą.<br/> <br/> Naudojant 3G ryšį atsisiuntimas užtruks vieną ar dvi minutes. Jei naudojate ne <b>neribotų duomenų planą</b>, gali būti taikomi mokesčiai.<br/> Jei nesate tikri, kurį duomenų planą naudojate, rekomenduojame rasti „Wi-Fi“ ryšį, kad atsisiuntimas būtų pradėtas automatiškai.<br/> <br/> Patarimas: žodynus galite atsisiųsti ir pašalinti apsilankę mobiliojo įrenginio skiltyje <b>Kalba ir įvestis</b>, esančioje meniu <b>Nustatymai</b>."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Atsisiųsti dabar (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Atsisiųsti per „Wi-Fi“"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Galimas <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> žodynas"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Paspauskite, kad peržiūrėtumėte ir atsisiųstumėte"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Atsisiunčiama. Netrukus bus galimi <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> pasiūlymai."</string>
<string name="version_text" msgid="2715354215568469385">"<xliff:g id="VERSION_NUMBER">%1$s</xliff:g> versija"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Pridėti"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Pridėti prie žodyno"</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index 55f002d..fc4700f 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Pievienojiet austiņas, lai dzirdētu paroles rakstzīmes."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Pašreizējais teksts ir %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Nav ievadīts teksts"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"Nospiežot taustiņu <xliff:g id="KEY_NAME">%1$s</xliff:g>, “<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>” tiek labots uz “<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>”."</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"Taustiņam <xliff:g id="KEY_NAME">%1$s</xliff:g> ir automātiskas labošanas funkcija."</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Taustiņu kods %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Pārslēgšanas taustiņš"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Pārslēgšanas taustiņš iespējots (pieskarieties, lai atspējotu)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Tālruņa režīms"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Tālruņa simbolu režīms"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastatūra ir paslēpta"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Tiek rādīts tastatūras režīms <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"datums"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"datums un laiks"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"e-pasts"</string>
@@ -135,14 +132,10 @@
<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>
<string name="subtype_es_US" msgid="5583145191430180200">"Spāņu (ASV)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Angļu (Lielbritānija) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Angļu (ASV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spāņu (ASV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicionālā)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Nav valodas (alfabēts)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabēts (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabēts (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ārējās vārdnīcas faila nolasīšana"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Mapē Lejupielādes nav neviena vārdnīcas faila."</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Instalējamā vārdnīcas faila atlasīšana"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vai tiešām instalēt šo failu šādai valodai: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Radās kļūda"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Kontaktpersonu vārdnīcas izmete"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Personiskās vārdnīcas izmete"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Atsvaidzināt"</string>
<string name="last_update" msgid="730467549913588780">"Pēdējo reizi atjaunināts"</string>
<string name="message_updating" msgid="4457761393932375219">"Notiek pārbaude, vai ir pieejami atjauninājumi."</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Notiek ielāde…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Galvenā vārdnīca"</string>
<string name="cancel" msgid="6830980399865683324">"Atcelt"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalēt"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Atcelt"</string>
<string name="delete_dict" msgid="756853268088330054">"Dzēst"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Mobilajā ierīcē atlasītajai valodai ir pieejama vārdnīca.<br/> Ieteicams <b>lejupielādēt</b> šo vārdnīcu (<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>), lai uzlabotu rakstīšanas iespējas.<br/> <br/> Lejupielāde, izmantojot 3G tīklu, ilgs tikai dažas minūtes. Ja nelietojat <b>neierobežotu datu plānu</b>, var tikt piemērota maksa.<br/> Ja nezināt, kādu datu plānu lietojat, ieteicams atrast Wi-Fi savienojumu, lai automātiski sāktu lejupielādi.<br/> <br/> Padoms: vārdnīcas var lejupielādēt un noņemt sadaļā <b>Valoda un ievade</b>, kas atrodas mobilās ierīces izvēlnē <b>Iestatījumi</b>."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Lejupielādēt tūlīt (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Lejupielādēt, izmantojot Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Ir pieejama vārdnīca šādai valodai: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Nospiediet, lai pārskatītu un lejupielādētu"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Notiek lejupielāde. Drīz būs pieejami ieteikumi šādai valodai: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>."</string>
<string name="version_text" msgid="2715354215568469385">"Versija <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Pievienot"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Pievienot vārdnīcai"</string>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index a3ce365..952cd5a 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Ачаалж байна..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Үндсэн толь бичиг"</string>
<string name="cancel" msgid="6830980399865683324">"Цуцлах"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Суулгах"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Цуцлах"</string>
<string name="delete_dict" msgid="756853268088330054">"Устгах"</string>
diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml
index 5f42b7c..23fa268 100644
--- a/java/res/values-ms-rMY/strings.xml
+++ b/java/res/values-ms-rMY/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Pasangkan set kepala untuk mendengar kekunci kata laluan disebut dengan kuat."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Teks semasa adalah %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Tiada teks dimasukkan"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> membetulkan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan auto pembetulan"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Kod kunci %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Kunci anjak dihidupkan (ketik untuk melumpuhkan)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mod telefon"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mod simbol telefon"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Papan kekunci tersembunyi"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Menunjukkan papan kekunci <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"tarikh"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"tarikh dan masa"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"e-mel"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Bahasa Inggeris (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Bahasa Inggeris (Australia)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Bahasa Sepanyol (AS)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Bahasa Inggeris (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Bahasa Inggeris (AS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Bahasa Sepanyol (AS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradisional)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Tiada bahasa (Abjad)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abjad (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abjad (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Baca fail kamus luaran"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Tiada fail kamus dalam folder Muat Turun"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pilih fail kamus untuk dipasang"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Betul-betul pasang fail ini untuk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Berlaku ralat"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Buang kamus kenalan"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Buang kamus peribadi"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Muatkan semula"</string>
<string name="last_update" msgid="730467549913588780">"Kali terakhir dikemas kini"</string>
<string name="message_updating" msgid="4457761393932375219">"Menyemak kemas kini"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Memuatkan…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Kamus utama"</string>
<string name="cancel" msgid="6830980399865683324">"Batal"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Pasang"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Batal"</string>
<string name="delete_dict" msgid="756853268088330054">"Padam"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Bahasa pilihan pada peranti mudah alih anda sudah mempunyai kamus yang tersedia.<br/> Kami mengesyorkan <b>memuat turun</b> kamus <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> untuk memperbaik pengalaman menaip anda.<br/> <br/> Muat turun boleh mengambil masa satu atau dua minit melalui 3G. Caj mungkin dikenakan jika anda tidak mempunyai <b>pelan data tanpa had</b>.<br/> Jika anda tidak pasti jenis pelan data yang anda gunakan, kami mengesyorkan agar anda mencari sambungan Wi-Fi untuk mula memuat turun secara automatik.<br/> <br/> Petua: Anda boleh memuat turun dan mengalih keluar kamus dengan pergi ke menu <b>Bahasa& input</b> dalam <b>Tetapan</b> peranti mudah alih anda."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Muat turun sekarang (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Muat turun melalui Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Kamus tersedia untuk <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Tekan untuk mengulas dan memuat turun"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Memuat turun: cadangan untuk <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> akan sedia tidak lama lagi."</string>
<string name="version_text" msgid="2715354215568469385">"Versi <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"tambah"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Tambah ke kamus"</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 0af4e62..b7a3d68 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Laster inn …"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Hovedordliste"</string>
<string name="cancel" msgid="6830980399865683324">"Avbryt"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installer"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Avbryt"</string>
<string name="delete_dict" msgid="756853268088330054">"Slett"</string>
diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml
index 800a934..07df7b4 100644
--- a/java/res/values-ne-rNP/strings.xml
+++ b/java/res/values-ne-rNP/strings.xml
@@ -80,7 +80,7 @@
<string name="spoken_current_text_is" msgid="2485723011272583845">"वर्तमान पाठ %s हो"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"कुनै पाठ प्रविष्टि गरिएको छैन"</string>
<string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> सही <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> गर्न <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
- <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वतः सच्याउने प्रदर्शन"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g>ले स्वतः सच्याउने गर्छ"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"कुञ्जी कोड %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"सिफ्ट"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"सिप्ट सक्रिय (असक्षम पार्न ट्याप गर्नुहोस्)"</string>
@@ -108,7 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"फोन मोड"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"फोन प्रतिक मोड"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"किबोर्ड लुकाइएको छ"</string>
- <string name="announce_keyboard_mode" msgid="7486740369324538848">"Showing <xliff:g id="KEYBOARD_MODE">%s</xliff:g> कुञ्जीपाटी"</string>
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> किबोर्ड देखाउँदै"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"मिति"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"मिति र समय"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"इमेल"</string>
@@ -133,8 +133,8 @@
<string name="subtype_en_US" msgid="6160452336634534239">"अंग्रेजी (युएस्)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"स्पेनिस (युएस्)"</string>
<string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"अंग्रेजी (बेलायत) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
- <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"अंग्रेजी (अमेरिका) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
- <string name="subtype_with_layout_es_US" msgid="510930471167541338">"स्पेनी (अमेरिका) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"अंग्रेजी (अमेरिका) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"स्पेनेली (अमेरिका) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
<string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (परम्परागत)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"कुनै भाषा होइन (वर्णमाला)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"वर्णमाला (QWERTY)"</string>
@@ -165,7 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाह्य शब्दकोश फाइल पढ्नुहोस्"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फोल्डरमा कुनै शब्दकोश फाइलहरू छैनन्।"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"स्थापना गर्न कुनै शब्दकोश फाइल चयन गर्नुहोस्"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"वास्तवमा लागि यो फाइल स्थापना <xliff:g id="LANGUAGE_NAME">%s</xliff:g> ?"</string>
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"वास्तवमै <xliff:g id="LANGUAGE_NAME">%s</xliff:g> को लागि यो फाइल स्थापना गर्नुहुन्छ?"</string>
<string name="error" msgid="8940763624668513648">"कुनै त्रुटि भयो"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"सम्पर्क शब्दकोश डम्प गर्नुहोस्"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"व्यक्तिगत शब्दकोश डम्प गर्नुहोस्"</string>
@@ -211,15 +211,17 @@
<string name="message_loading" msgid="5638680861387748936">"लोड हुँदै..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"मुख्य शब्दकोश"</string>
<string name="cancel" msgid="6830980399865683324">"रद्द गर्नुहोस्"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"स्थापना गर्नुहोस्"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"रद्द गर्नुहोस्"</string>
<string name="delete_dict" msgid="756853268088330054">"मेट्नुहोस्"</string>
- <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आफ्नो मोबाइल उपकरणमा चयन गरिएको भाषामा शब्दकोश उपलब्ध छ। <br/> हामी डाउनलोड गर्न </ b> ले सिफारिस गर्छन् <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> आफ्नो टाइपिङ अनुभव सुधार्न शब्दकोश। यो विचारको यस डाउनलोड 3G मा एक वा दुई मिनेट लिन सक्छ। तपाईं एक <b> असीमित डेटा योजना </ b> छैन भने शुल्क लागू हुन सक्छ। तपाईं हामी सुरु गर्न वाइफाइ जडान खोज्न सिफारिस, जो तपाईं डेटा योजना छैन भने <br/> को स्वतः डाउनलोड सल्लाह:। तपाईं डाउनलोड र <b> सेटिङ </ b> मेनु मा </ b> भाषा र इनपुट <b> जाने शब्दकोशलाई हटाउन सक्नुहुन्छ आफ्नो मोबाइल उपकरणको।"</string>
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"तपाईँको मोबाइल उपकरणमा चयन गरिएको भाषाको शब्दकोश उपलब्ध छ। <br/> तपाईँको टाइप गर्ने अनुभव सुधार गर्न हामी <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>को शब्दकोश <b> डाउनलोड गर्न </b> सिफारिस गर्दछौँ। यो डाउनलोड गर्न 3G मा एक वा दुई मिनेट लिन सक्छ। तपाईँ एक <b> तपाईँको असीमित डेटा योजना </b> छैन भने शुल्क लागू हुन सक्छ। तपाईँसँग कुन डेटा योजना छ भन्ने निश्चित छैन भने Wi-Fi जडान गरेर स्वचालित डाउनलोड गर्न हामी सिफारिस गर्दछौँ। युक्ति: तपाईँ आफ्नो मोबाइल उपकरणको </b> भाषा र इनपुट <b> <b>सेटिङ </b> मेनुमा गएर शब्दकोशलाई डाउनलोड र हटाउन सक्नुहुन्छ।"</string>
<string name="download_over_metered" msgid="1643065851159409546">"(अब डाउनलोड गर्नुहोस्<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"वाइ-फाइको माध्ययमद्वार डाउनलोड गर्नुहोस्"</string>
- <string name="dict_available_notification_title" msgid="4583842811218581658">"एक शब्दकोश लागि उपलब्ध छ <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>को लागि एउटा शब्दकोश उपलब्ध छ"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"समीक्षा गर्न थिच्नुहोस् र डाउनलोड गर्नुहोस्"</string>
- <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Downloading: लागि सुझाव <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> चाँडै नै तयार हुनेछ।"</string>
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"डाउनलोड गर्दै: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>को लागि सुझावहरू चाँडै नै तयार हुने छ।"</string>
<string name="version_text" msgid="2715354215568469385">"संस्करण <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"थप्नुहोस्"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"शब्दकोशमा थप्नुहोस्"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index 4835f7e..f1e4d08 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -211,10 +211,12 @@
<string name="message_loading" msgid="5638680861387748936">"Laden…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Algemeen woordenboek"</string>
<string name="cancel" msgid="6830980399865683324">"Annuleren"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installeren"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Annuleren"</string>
<string name="delete_dict" msgid="756853268088330054">"Verwijderen"</string>
- <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Er is een woordenboek voor de geselecteerde taal beschikbaar op uw mobiele apparaat.<br/> We raden u aan het woordenboek voor het <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> te <b>downloaden</b> om uw typvaardigheid te verbeteren.<br/> <br/> De download kan één of twee minuten duren via 3G. Er kunnen kosten worden berekend als u geen <b>onbeperkt gegevensabonnement</b> heeft.<br/> Als u niet zeker weet welk gegevensabonnement u heeft, raden we u aan een wifi-verbinding te zoeken om de download automatisch te starten.<br/> <br/> Tip: u kunt woordenboeken downloaden en verwijderen via <b>Taal en invoer</b> in het menu <b>Instellingen</b> van uw mobiele apparaat."</string>
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Er is een woordenboek beschikbaar voor de geselecteerde taal op uw mobiele apparaat.<br/> We raden u aan het woordenboek voor het <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> te <b>downloaden</b> om uw typvaardigheid te verbeteren.<br/> <br/> De download kan één of twee minuten duren via 3G. Er kunnen kosten worden berekend als u geen <b>onbeperkt gegevensabonnement</b> heeft.<br/> Als u niet zeker weet welk gegevensabonnement u heeft, raden we u aan een wifi-verbinding te zoeken om de download automatisch te starten.<br/> <br/> Tip: u kunt woordenboeken downloaden en verwijderen via <b>Taal en invoer</b> in het menu <b>Instellingen</b> van uw mobiele apparaat."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Nu downloaden (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Downloaden via wifi"</string>
<string name="dict_available_notification_title" msgid="4583842811218581658">"Er is een woordenboek beschikbaar voor het <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index 5d30113..b24e343 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Wczytuję…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Słownik główny"</string>
<string name="cancel" msgid="6830980399865683324">"Anuluj"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Zainstaluj"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Anuluj"</string>
<string name="delete_dict" msgid="756853268088330054">"Usuń"</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index 69d995b..081fbba 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"A carregar…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Dicionário principal"</string>
<string name="cancel" msgid="6830980399865683324">"Cancelar"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalar"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancelar"</string>
<string name="delete_dict" msgid="756853268088330054">"Eliminar"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index 057c3b4..8271db2 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Conecte um fone de ouvido para ouvir as chaves de senha em voz alta."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"O texto atual é %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Nenhum texto digitado"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> para <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> realiza correção automática"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Código de tecla %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift ativado (toque para desativar)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modo de telefone"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modo de símbolos de telefone"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Teclado oculto"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Mostrando teclado <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"data"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"data e hora"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"inglês (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"inglês (EUA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"espanhol (EUA)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglês (Reino Unido) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglês (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Espanhol (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Nenhum idioma (alfabeto)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler arquivo de dicionário externo"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nenhum arquivo de dicionário na pasta Downloads"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecione um arquivo de dicionário para instalar"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Deseja instalar este arquivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Ocorreu um erro"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Despejar dicionário de contatos"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Despejar dicionário pessoal"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Atualizar"</string>
<string name="last_update" msgid="730467549913588780">"Última atualização"</string>
<string name="message_updating" msgid="4457761393932375219">"Verificando atualizações"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Carregando…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Dicionário principal"</string>
<string name="cancel" msgid="6830980399865683324">"Cancelar"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalar"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Cancelar"</string>
<string name="delete_dict" msgid="756853268088330054">"Excluir"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"O idioma selecionado em seu dispositivo móvel tem um dicionário disponível.<br/> Recomendamos <b>fazer o download</b> do dicionário de <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> para melhorar sua experiência de digitação.<br/> O download pode levar um ou dois minutos por conexão 3G. Tarifas podem ser aplicáveis caso você não tenha um <b>plano de dados ilimitado</b>.<br/> Se você não tem certeza quanto a seu plano de dados, recomendamos encontrar uma conexão Wi-Fi para iniciar o download automaticamente.<br/> Dica: você pode fazer o download de dicionários e removê-los acessando <b>Idioma e entrada</b> no menu <b>Configurações</b> do dispositivo móvel."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Fazer o download agora (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Fazer o download por Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Há um dicionário disponível para <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Pressione para consultar e fazer o download"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Download em andamento: as sugestões para <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> estarão disponíveis em breve."</string>
<string name="version_text" msgid="2715354215568469385">"Versão <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Adicionar"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Adicionar ao dicionário"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 54354b1..f021492 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Conectaţi un set căşti-microfon pentru a auzi tastele apăsate când introduceţi parola."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Textul curent este %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Nu a fost introdus text"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corectează <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> cu <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> efectuează corectare automată"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Tasta cu codul %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Tasta Shift este activată (apăsaţi pentru a o dezactiva)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modul Telefon"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modul Telefon cu simboluri"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastatura este ascunsă"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Se afișează tastatura pentru <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"date"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"date și ore"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"adrese de e-mail"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"engleză (Regatul Unit)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"engleză (S.U.A.)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"spaniolă (S.U.A.)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engleză (Regatul Unit) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engleză (S.U.A.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spaniolă (S.U.A.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradițională)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Nicio limbă (alfabet)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Citiți fișierul de dicționar extern"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nu există fișiere dicționar în dosarul Descărcări"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selectați un fișier dicționar de instalat"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Doriți să instalați acest fișier pentru <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"A apărut o eroare"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Eliminați dicționar pers. cont."</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Eliminați dicționar personal"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Actualizați"</string>
<string name="last_update" msgid="730467549913588780">"Data ultimei modificări"</string>
<string name="message_updating" msgid="4457761393932375219">"Se verifică existența actualizărilor"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Se încarcă..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Dicționar principal"</string>
<string name="cancel" msgid="6830980399865683324">"Anulaţi"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Instalați"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Anulați"</string>
<string name="delete_dict" msgid="756853268088330054">"Ștergeți"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Pentru limba selectată pe dispozitivul dvs. mobil este disponibil un dicționar.<br/> Vă recomandăm să <b>descărcați</b> dicționarul de <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> pentru o mai bună experiență a introducerii de text.<br/> <br/> Descărcarea poate dura un minut sau două prin 3G. Dacă nu aveți un <b>plan de date nelimitat</b>, se pot aplica taxe.<br/> Dacă nu știți sigur ce plan de date aveți, vă recomandăm să căutați o conexiune Wi-Fi pentru a începe automat descărcarea.<br/> <br/> Sfat: puteți să descărcați și să ștergeți dicționare accesând opțiunea <b>Limbă și introducere de text</b> din meniul <b>Setări</b> al dispozitivului mobil."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Descărcați acum (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Descărcați prin Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Este disponibil un dicționar pentru <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Apăsați pentru examinare și descărcare"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Se descarcă: sugestiile pentru <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> vor fi gata în curând."</string>
<string name="version_text" msgid="2715354215568469385">"Versiunea <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Adăugați"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Adăugați în dicționar"</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index 05dd035..670b50d 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Подключите гарнитуру, чтобы услышать пароль."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Введенный текст: %s."</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Текст не введен"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"При нажатии клавиши <xliff:g id="KEY_NAME">%1$s</xliff:g> слово <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> будет исправлено на <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"Для клавиши <xliff:g id="KEY_NAME">%1$s</xliff:g> назначена функция автоисправления."</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Код клавиши:%d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Клавиша верхнего регистра"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Верхний регистр включен (нажмите, чтобы отключить)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Режим набора номера"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Режим телефонных символов"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Клавиатура скрыта"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Включен режим <xliff:g id="KEYBOARD_MODE">%s</xliff:g>."</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"ввода даты"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"ввода даты и времени"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"ввода адреса электронной почты"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"английский (Великобритания)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"английский (США)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Испанский (США)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Английский (Великобритания, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Английский (США, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Испанский (США, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (классическая)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Язык не определен (латиница)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Латиница (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Латиница (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Загрузить словарь из файла"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"В папке \"Загрузки\" нет словарей"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Выберите файл словаря"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Установить этот файл для следующего языка: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Ошибка"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Выгрузить словарь контактов"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Выгрузить личный словарь"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Обновить"</string>
<string name="last_update" msgid="730467549913588780">"Последнее обновление"</string>
<string name="message_updating" msgid="4457761393932375219">"Проверка обновлений…"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Загрузка…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Основной словарь"</string>
<string name="cancel" msgid="6830980399865683324">"Отмена"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Установить"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Отмена"</string>
<string name="delete_dict" msgid="756853268088330054">"Удалить"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Доступен словарь для проверки правописания (<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>).<br/>Рекомендуем <b>установить</b> его, чтобы быстрее вводить текст.<br/><br/>Если вашим тарифом предусмотрена <b>безлимитная передача данных</b>, словарь можно загрузить через сеть 3G (это займет всего пару минут).<br/>Если вы не помните подробностей своего тарифного плана, лучше подключитесь к сети Wi-Fi (загрузка начнется автоматически).<br/><br/>Совет. Чтобы добавить, удалить или настроить словарь, откройте раздел <b>Язык и ввод</b> в настройках своего устройства."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Загрузить (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> МБ)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Загрузить через Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Доступен словарь: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Нажмите, чтобы просмотреть и загрузить"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Загрузка словаря (<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>)…"</string>
<string name="version_text" msgid="2715354215568469385">"Версия <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Добавить"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Добавление в словарь"</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index c4d3eca..8770663 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Ak si chcete pri zadávaní hesla vypočuť nahlas vyslovené klávesy, pripojte náhlavnú súpravu."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Aktuálny text je %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Nie je zadaný žiadny text"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> opravíte slovo <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> spustíte automatické opravy"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Kód klávesu %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Kláves Shift je zapnutý (zakážete ho klepnutím)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Režim telefónu"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Režim telefónnych symbolov"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klávesnica je skrytá"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Je zobrazená klávesnica <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"dátum"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"dátum a čas"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Anglická klávesnica (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglická klávesnica (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"španielčina (USA)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"angličtina (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"angličtina (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"španielčina (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradičná)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Žiadny jazyk (latinka)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Latinka (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Latinka (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Čítať súbor externého slovníka"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"V priečinku Sťahovanie nie sú žiadne súbory slovníka"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vyberte súbor slovníka, ktorý chcete nainštalovať"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Chcete nainštalovať tento súbor pre jazyk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Vyskytla sa chyba"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Vypísať slovník kontaktov"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Vypísať osobný slovník"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Obnoviť"</string>
<string name="last_update" msgid="730467549913588780">"Posledná aktualizácia"</string>
<string name="message_updating" msgid="4457761393932375219">"Prebieha kontrola aktualizácií"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Prebieha načítavanie..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Hlavný slovník"</string>
<string name="cancel" msgid="6830980399865683324">"Zrušiť"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Inštalovať"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Zrušiť"</string>
<string name="delete_dict" msgid="756853268088330054">"Odstrániť"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Pre vybratý jazyk mobilného zariadenia je k dispozícii slovník.<br/> Slovník jazyka <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> vám odporúčame <b>stiahnuť</b>. Pomôže vám pri zadávaní textu.<br/> <br/> V sieti 3G môže sťahovanie trvať jednu až dve minúty. Ak nemáte <b>neobmedzený dátový program</b>, môžu sa účtovať poplatky.<br/> Ak s určitosťou neviete aký dátový program používate, vyhľadajte pripojenie k sieti Wi-Fi a sťahovanie sa spustí automaticky.<br/> <br/> Tip: Slovníky môžete v mobilnom zariadení sťahovať a odstraňovať v časti <b>Jazyk a vstup</b> ponuky <b>Nastavenia</b>."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Stiahnuť (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Stiahnuť cez sieť Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"K dispozícii je slovník pre jazyk <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Stlačením skontrolujete a prevezmete"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Sťahovanie: návrhy pre jazyk <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> budú čoskoro k dispozícii."</string>
<string name="version_text" msgid="2715354215568469385">"Verzia <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Pridať"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Pridať do slovníka"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index c100de7..6c192ca 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Nalaganje …"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Glavni slovar"</string>
<string name="cancel" msgid="6830980399865683324">"Prekliči"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Namesti"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Prekliči"</string>
<string name="delete_dict" msgid="756853268088330054">"Izbriši"</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index 9ded43e..db911a5 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Учитавање…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Главни речник"</string>
<string name="cancel" msgid="6830980399865683324">"Откажи"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Инсталирај"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Откажи"</string>
<string name="delete_dict" msgid="756853268088330054">"Избриши"</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 2a9139f..1d20fcd 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Läser in …"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Huvudordlista"</string>
<string name="cancel" msgid="6830980399865683324">"Avbryt"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Installera"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Avbryt"</string>
<string name="delete_dict" msgid="756853268088330054">"Ta bort"</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index 85af028..ca24131 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Chomeka plagi ya kifaa cha kichwa cha kusikiza ili kusikiliza msimbo wa nenosiri inayozungumwa kwa sauti ya juu."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Maandishi ya sasa ni %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Hakuna maandishi yaliyoingizwa"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hurekebisha <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kuwa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hufanya marekebisho otomatiki"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Msimbo wa kitufe %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Badilisha"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift imewashwa (gonga ili kulemaza)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Hali ya simu"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Hali ya alama za simu"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Kibodi imefichwa"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Inaonyesha kibodi ya <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"tarehe"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"tarehe na wakati"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"barua pepe"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Kiingereza cha (Uingereza)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Kiingereza cha (Marekani)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Kihispania (Marekani)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Kiingereza (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Kiingereza (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Kihispania (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cha Jadi)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Hakuna lugha (Alfabeti)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeti (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeti (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Soma faili ya kamusi ya nje"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Hakuna faili za kamusi katika folda ya Vilivyopakuliwa"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Chagua faili ya kamusi ya kusakinisha"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ungependa kusakinisha faili hii kwa <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Kulikuwa na hitilafu"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Tupa kamusi ya anwani"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Tupa kamusi ya kibinafsi"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Onyesha upya"</string>
<string name="last_update" msgid="730467549913588780">"Ilibadilishwa mwisho"</string>
<string name="message_updating" msgid="4457761393932375219">"Inatafuta sasisho..."</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Inapakia…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Kamusi kuu"</string>
<string name="cancel" msgid="6830980399865683324">"Ghairi"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Sakinisha"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Ghairi"</string>
<string name="delete_dict" msgid="756853268088330054">"Futa"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Lugha iliyochaguliwa kwenye kifaa chako cha mkononi ina kamusi inayopatikana.<br/> Tunapendekeza<b>upakuaji wa kamusi ya</b> <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ili kuboresha hali yako ya kuchapa.<br/> <br/> Upakuaji unaweza kuchukua dakika moja au mbili kukamilika kwenye 3G. Unaweza kutozwa pesa ikiwa huna mpango wa data <b>usio na kipimo </b>.<br/>Ikiwa huna uhakika una mpango gani wa data, tunapendekeza utafute muunganisho wa Wi-Fi ili uanze upakuaji kiotomatiki.<br/> <br/> Kidokezo: Unaweza kupakua na kuondoa kamusi kwa kuenda kwenye<b>Ingizo la & Lugha</b> katika <b>menyu ya Mipangilio</b> ya kifaa chako cha mkononi."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Pakua sasa (MB<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Pakua kwenye Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Kamusi inapatikana kwa <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Bonyeza ili kukagua na kupakua"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Inapakua: mapendekezo ya <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> yatakuwa tayari hivi karibuni."</string>
<string name="version_text" msgid="2715354215568469385">"Toleo la <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Ongeza"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Ongeza kwenye kamusi"</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 2301c31..f5ddd79 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"เสียบชุดหูฟังเพื่อฟังเสียงเมื่อพิมพ์รหัสผ่าน"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"ข้อความปัจจุบันคือ %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"ไม่มีข้อความ"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> แก้ไข <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> เป็น <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ทำการแก้ไขอัตโนมัติ"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"รหัสคีย์ %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift เปิดอยู่ (แตะเพื่อปิดใช้งาน)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"โหมดโทรศัพท์"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"โหมดสัญลักษณ์โทรศัพท์"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"ซ่อนแป้นพิมพ์แล้ว"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"กำลังแสดงแป้นพิมพ์ <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"วันที่"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"วันที่และเวลา"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"อีเมล"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"อังกฤษ (สหราชอาณาจักร)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"อังกฤษ (อเมริกัน)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"สเปน (สหรัฐอเมริกา)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"อังกฤษ (สหราชอาณาจักร) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"อังกฤษ (สหรัฐอเมริกา) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"สเปน (สหรัฐอเมริกา) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ดั้งเดิม)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"ไม่มีภาษา (ตัวอักษรละติน)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"ตัวอักษร (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"ตัวอักษร (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"อ่านไฟล์พจนานุกรมภายนอก"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ไม่มีไฟล์พจนานุกรมในโฟลเดอร์ดาวน์โหลด"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"เลือกไฟล์พจนานุกรมที่จะติดตั้ง"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ต้องการติดตั้งไฟล์นี้สำหรับ <xliff:g id="LANGUAGE_NAME">%s</xliff:g> จริงหรือ"</string>
<string name="error" msgid="8940763624668513648">"เกิดข้อผิดพลาด"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"ถ่ายโอนพจนานุกรมที่อยู่ติดต่อ"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"ถ่ายโอนพจนานุกรมส่วนตัว"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"รีเฟรช"</string>
<string name="last_update" msgid="730467549913588780">"ปรับปรุงแก้ไขครั้งล่าสุด"</string>
<string name="message_updating" msgid="4457761393932375219">"กำลังตรวจสอบการอัปเดต"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"กำลังโหลด…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"พจนานุกรมหลัก"</string>
<string name="cancel" msgid="6830980399865683324">"ยกเลิก"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"ติดตั้ง"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"ยกเลิก"</string>
<string name="delete_dict" msgid="756853268088330054">"ลบ"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"ภาษาที่คุณเลือกในอุปกรณ์เคลื่อนที่มีพจนานุกรมที่สามารถใช้ได้<br/> เราขอแนะนำให้คุณ <b>ดาวน์โหลด</b> พจนานุกรม <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> เพื่อรับประสบการณ์การพิมพ์ที่ดียิ่งขึ้น<br/> <br/> การดาวน์โหลดอาจใช้เวลาหนึ่งถึงสองนาทีผ่านทาง 3G ซึ่งอาจมีการเรียกเก็บเงินหากคุณไม่ได้ใช้ <b>แผนบริการข้อมูลแบบไม่จำกัดปริมาณ</b>.<br/> หากไม่แน่ใจว่าใช้แผนบริการข้อมูลแบบใด เราขอแนะนำให้คุณเชื่อมต่อ Wi-Fi เพื่อเริ่มการดาวน์โหลดอัตโนมัติ<br/> <br/> เคล็ดลับ: คุณสามารถดาวน์โหลดและลบพจนานุกรมออกได้โดยไปที่ <b>ภาษาและการป้อนข้อมูล</b> ในเมนู <b>การตั้งค่า</b> ในอุปกรณ์เคลื่อนที่ของคุณ"</string>
<string name="download_over_metered" msgid="1643065851159409546">"ดาวน์โหลดเลย (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"ดาวน์โหลดผ่าน WiFi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"มีพจนานุกรมให้ใช้งานสำหรับ <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"กดเพื่อตรวจสอบและดาวน์โหลด"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"กำลังดาวน์โหลด: คำแนะนำสำหรับ <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> จะพร้อมใช้งานเร็วๆ นี้"</string>
<string name="version_text" msgid="2715354215568469385">"เวอร์ชัน <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"เพิ่ม"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"เพิ่มในพจนานุกรม"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index fd979cf..1dd59b4 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Mag-plug in ng headset upang marinig ang mga password key na binabanggit nang malakas."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Ang kasalukuyang teksto ay %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Walang tekstong inilagay"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"Itinatama ng <xliff:g id="KEY_NAME">%1$s</xliff:g> ang <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"Nagsasagawa ang <xliff:g id="KEY_NAME">%1$s</xliff:g> ng auto-correction"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Code ng key %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Naka-on ang shift (i-tap upang huwag paganahin)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode ng telepono"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode ng mga simbolo ng telepono"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Nakatago ang keyboard"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Ipinapakita ang keyboard na <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"petsa"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"petsa at oras"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Ingles (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Ingles (Estados Unidos)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Ingles (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Ingles (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradisyonal)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Walang wika (Alpabeto)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alpabeto (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alpabeto (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Magbasa ng panlabas na file ng diksyunaryo"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Walang mga file ng diksyunaryo sa folder na Mga Download"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pumili ng file ng diksyunaryo na ii-install"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Talagang ii-install ang file na ito para sa <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Nagkaroon ng error"</string>
<!-- no translation found for prefs_dump_contacts_dict (7227327764402323097) -->
<skip />
@@ -220,22 +212,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"I-refresh"</string>
<string name="last_update" msgid="730467549913588780">"Huling na-update"</string>
<string name="message_updating" msgid="4457761393932375219">"Tumitingin ng mga update"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Naglo-load…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Pangunahing diksyunaryo"</string>
<string name="cancel" msgid="6830980399865683324">"Kanselahin"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"I-install"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Kanselahin"</string>
<string name="delete_dict" msgid="756853268088330054">"Tanggalin"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"May available na diksyunaryo ang napiling wika sa iyong mobile device.<br/> Inirerekomenda naming <b>i-download</b> ang diksyunaryo ng <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> upang pagbutihin ang iyong karanasan sa pagta-type.<br/> <br/> Maaaring magtagal nang ilang minuto ang pag-download sa 3G. Maaaring magkaroon ng mga pagsingil kung wala kang <b>unlimited data plan</b>.<br/> Kung hindi ka sigurado kung anong data plan ang mayroon ka, inirerekomenda naming maghanap ng koneksyon sa Wi-Fi upang awtomatikong masimulan ang pag-download.<br/> <br/> Tip: Maaari kang mag-download at mag-alis ng mga diksyunaryo sa pamamagitan ng pagpunta sa <b>Wika & input</b> sa menu ng <b>Mga Setting</b> ng iyong mobile device."</string>
<string name="download_over_metered" msgid="1643065851159409546">"I-download ngayon (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"I-download gamit ang Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"May available na diksyunaryo para sa <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Pindutin upang suriin at i-download"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Nagda-download: magkakaron ng mga suhestiyon para sa <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> sa lalong madaling panahon."</string>
<string name="version_text" msgid="2715354215568469385">"Bersyon <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Idagdag"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Idagdag sa diksyunaryo"</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index c2cb428..ee43397 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Şifre tuşlarının sesli okunmasını dinlemek için mikrofonlu kulaklık takın."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Mevcut metin: %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Hiç metin girilmedi"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g>, <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kelimesini <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> olarak düzeltir"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> otomatik düzeltme yapar"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Tuş kodu: %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Üst Karakter"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Üst karakter açık (devre dışı bırakmak için hafifçe vurun)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefon modu"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefon sembolleri modu"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klavye gizli"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> klavyesi görüntüleniyor"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"tarih"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"tarih ve saat"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"e-posta"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (BK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"İngilizce (ABD)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"İspanyolca (ABD)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"İngilizce (İngiltere) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"İngilizce (ABD) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"İspanyolca (ABD) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Geleneksel)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Dil yok (Alfabe)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabe (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabe (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Harici sözlük dosyasını oku"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"İndirilenler klasöründe sözlük dosyası yok"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Yüklemek için bir sözlük dosyası seçin"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> için bu dosya gerçekten yüklensin mi?"</string>
<string name="error" msgid="8940763624668513648">"Bir hata oluştu"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Kişiler sözlüğünün dökümünü al"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Kişisel sözlüğün dökümünü al"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Yenile"</string>
<string name="last_update" msgid="730467549913588780">"Son güncelleme tarihi"</string>
<string name="message_updating" msgid="4457761393932375219">"Güncellemeler denetleniyor"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Yükleniyor…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Ana sözlük"</string>
<string name="cancel" msgid="6830980399865683324">"İptal"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Yükle"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"İptal"</string>
<string name="delete_dict" msgid="756853268088330054">"Sil"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Mobil cihazınızda seçili dile ait kullanılabilir bir sözlük mevcut.<br/> Daha iyi yazabilmek için bu <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> sözlüğü <b>indirmenizi</b> öneririz.<br/> <br/> İndirme işlemi 3G üzerinden bir veya iki dakika sürebilir. <b>Sınırsız veri planınız </b>yoksa ücret alınabilir.<br/> Ne tür bir veri planına sahip olduğunuzdan emin değilseniz, otomatik olarak indirmeye başlamak için bir Kablosuz bağlantı bulmanızı öneririz.<br/> <br/> İpucu: Sözlükleri, mobil cihazınızın <b>Ayarlar</b> menüsünde <b>Dil ve giriş</b> seçeneğine giderek indirebilir ve silebilirsiniz."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Hemen indir (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Kablosuz üzerinden indir"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> için kullanılabilir bir sözlük mevcut"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"İncelemek ve indirmek için basın"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> için önerilerin indirilmesine kısa süre içinde başlanacak."</string>
<string name="version_text" msgid="2715354215568469385">"Sürüm <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Ekle"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Sözlüğe ekle"</string>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index 95bfa5b..91e1ffa 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Завантаження…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"Основний словник"</string>
<string name="cancel" msgid="6830980399865683324">"Скасувати"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Установити"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Скасувати"</string>
<string name="delete_dict" msgid="756853268088330054">"Видалити"</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 1350572..cfacbbc 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"Cắm tai nghe để nghe mật khẩu."</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"Ký tự hiện tại là %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"Không có ký tự nào được nhập"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"<xliff:g id="KEY_NAME">%1$s</xliff:g> sửa <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> thành <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"<xliff:g id="KEY_NAME">%1$s</xliff:g> thực hiện tự động sửa"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"Mã phím %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift đang bật (bấm để tắt)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"Chế độ điện thoại"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Chế độ biểu tượng điện thoại"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"Bàn phím bị ẩn"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"Hiển thị bàn phím <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"ngày"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"ngày và giờ"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"Tiếng Anh (Anh)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Tiếng Anh (Mỹ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Tiếng Tây Ban Nha (Mỹ)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Tiếng Anh (Anh) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Tiếng Anh (Mỹ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Tiếng Tây Ban Nha (Mỹ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Truyền thống)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"Không ngôn ngữ nào (Bảng chữ cái)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"Bảng chữ cái (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"Bảng chữ cái (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Đọc tệp từ điển bên ngoài"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Không có tệp từ điển nào trong thư mục Nội dung tải xuống"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Chọn tệp từ điển để cài đặt"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Thực sự cài đặt tệp này cho <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"Đã xảy ra lỗi"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"Lưu vào từ điển danh bạ"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"Lưu vào từ điển cá nhân"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"Làm mới"</string>
<string name="last_update" msgid="730467549913588780">"Cập nhật lần cuối"</string>
<string name="message_updating" msgid="4457761393932375219">"Đang kiểm tra cập nhật"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"Đang tải..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Từ điển chính"</string>
<string name="cancel" msgid="6830980399865683324">"Hủy"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Cài đặt"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Hủy"</string>
<string name="delete_dict" msgid="756853268088330054">"Xóa"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Ngôn ngữ đã chọn trên thiết bị di động của bạn hiện có từ điển.<br/> Bạn nên <b>tải xuống</b> từ điển <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> để cải thiện trải nghiệm nhập của mình.<br/> <br/> Quá trình tải xuống có thể mất vài phút qua 3G. Có thể mất phí nếu bạn không có <b>gói dữ liệu không giới hạn</b>.<br/> Nếu bạn không chắc mình có gói dữ liệu nào, bạn nên tìm kết nối Wi-Fi để bắt đầu tải xuống tự động.<br/> <br/> Mẹo: Bạn có thể tải xuống và xóa từ điển bằng cách đi tới <b>Ngôn ngữ và nhập</b> trong trình đơn <b>Cài đặt</b> trên thiết bị di động của mình."</string>
<string name="download_over_metered" msgid="1643065851159409546">"Tải xuống bây giờ (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Tải xuống qua Wi-Fi"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"Hiện có từ điển cho <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"Nhấn để xem lại và tải xuống"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Đang tải xuống: đề xuất cho <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> sẽ sớm sẵn sàng."</string>
<string name="version_text" msgid="2715354215568469385">"Phiên bản <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Thêm"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Thêm vào từ điển"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 3a55366..d62708d 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"需要插入耳机才能听到密码的按键声。"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"当前文本为%s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"未输入文字"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>可将<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>更正为<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>可进行自动更正"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"键码为 %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift 模式已启用(点按即可停用)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"电话模式"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"电话符号模式"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"键盘已隐藏"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"当前显示的是<xliff:g id="KEYBOARD_MODE">%s</xliff:g>键盘"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"日期"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"日期和时间"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"电子邮件"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"英语(英国)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英语(美国)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"西班牙语(美国)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英式英语(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"美式英语(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"美式西班牙语(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(传统)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"无语言(字母)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"字母 (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"字母 (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"读取外部词典文件"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"“下载内容”文件夹中没有词典文件"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"选择要安装的词典文件"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"确定要安装这个<xliff:g id="LANGUAGE_NAME">%s</xliff:g>词典文件吗?"</string>
<string name="error" msgid="8940763624668513648">"出现错误"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"转储联系人词典"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"转储个人词典"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"刷新"</string>
<string name="last_update" msgid="730467549913588780">"上次更新时间"</string>
<string name="message_updating" msgid="4457761393932375219">"正在检查更新"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"正在加载…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"主词典"</string>
<string name="cancel" msgid="6830980399865683324">"取消"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"安装"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"取消"</string>
<string name="delete_dict" msgid="756853268088330054">"删除"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"对于您的移动设备上选择的语言,有一个适合您使用的词典可供下载。<br/>我们建议您<b>下载</b>这个<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>词典,以便获得更好的输入体验。<br/><br/>通过3G网络下载可能需要一两分钟的时间。如果您使用的不是<b>无流量限制的套餐</b>,则可能需要支付一定的费用。<br/>如果您不确定自己使用的是哪种流量套餐,我们建议您使用WLAN网络连接自动开始下载。<br/><br/>提示:您可以在移动设备上的<b>语言和输入法</b>部分(位于<b>设置</b>菜单中)下载和删除词典。"</string>
<string name="download_over_metered" msgid="1643065851159409546">"立即下载 (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"通过 WLAN 下载"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"有一个<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>词典可供下载"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"按此通知即可查看和下载"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"正在下载:针对<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>的输入建议功能马上就可以使用了!"</string>
<string name="version_text" msgid="2715354215568469385">"版本<xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"添加"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"添加到词典"</string>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index 3c8cd84..56618a7 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"插上耳機即可聽到系統朗讀密碼鍵。"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"目前文字為 %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"未輸入文字"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可自動修正"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"按鍵代碼 %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift 鍵"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift 鍵已開啟 (輕按即可停用)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"撥號模式"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"符號撥號模式"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"鍵盤已隱藏"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"目前顯示的是<xliff:g id="KEYBOARD_MODE">%s</xliff:g>鍵盤"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"日期"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"日期和時間"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"電郵"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"英文 (英國)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英文 (美國)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"西班牙文 (美國)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英文 (英國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"西班牙文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (傳統)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"無語言 (字母)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"字母 (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"字母 (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"讀取外部字典檔案"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"「下載」資料夾中沒有任何字典檔案"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"選取要安裝的字典檔案"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"準備為<xliff:g id="LANGUAGE_NAME">%s</xliff:g>版本安裝這個檔案嗎?"</string>
<string name="error" msgid="8940763624668513648">"發生錯誤"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"丟棄聯絡人字典"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"丟棄個人字典"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"重新整理"</string>
<string name="last_update" msgid="730467549913588780">"上次更新日期"</string>
<string name="message_updating" msgid="4457761393932375219">"正在查看更新"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"正在載入…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"主要字典"</string>
<string name="cancel" msgid="6830980399865683324">"取消"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"安裝"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"取消"</string>
<string name="delete_dict" msgid="756853268088330054">"刪除"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"您的流動裝置所選取的語言現有字典可供使用。<br/>我們建議您<b>下載</b><xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字典,讓您輸入時更方便。<br/><br/>經由 3G 網絡下載需時一、兩分鐘。如果您未使用<b>無限上網計劃</b>,可能須另外付費。<br/>如果您不確定自己使用哪種上網計劃,我們建議您在連接 Wi-Fi 網絡後才開始自動下載。<br/><br/>提示:您可以前往流動裝置的 [設定] <b></b>選單,透過其中的 [語言和輸入] <b></b>下載和移除字典。"</string>
<string name="download_over_metered" msgid="1643065851159409546">"立即下載 (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"經由 Wi-Fi 下載"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"可使用<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字典"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"按下即可查看並下載"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"下載中:<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字詞建議服務即將啟用。"</string>
<string name="version_text" msgid="2715354215568469385">"版本 <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"新增"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"加入字典"</string>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 1329482..cfbfe91 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -79,10 +79,8 @@
<string name="spoken_use_headphones" msgid="896961781287283493">"連接耳機即可聽取系統朗讀密碼按鍵。"</string>
<string name="spoken_current_text_is" msgid="2485723011272583845">"目前文字為 %s"</string>
<string name="spoken_no_text_entered" msgid="7479685225597344496">"未輸入文字"</string>
- <!-- no translation found for spoken_auto_correct (5150455215290003221) -->
- <skip />
- <!-- no translation found for spoken_auto_correct_obscured (2309828861778711939) -->
- <skip />
+ <string name="spoken_auto_correct" msgid="5150455215290003221">"按下「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
+ <string name="spoken_auto_correct_obscured" msgid="2309828861778711939">"按下「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可執行自動修正"</string>
<string name="spoken_description_unknown" msgid="3197434010402179157">"按鍵代碼 %d"</string>
<string name="spoken_description_shift" msgid="244197883292549308">"Shift 鍵"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift 鍵已開啟 (輕按即可停用)"</string>
@@ -110,8 +108,7 @@
<string name="spoken_description_mode_phone" msgid="6520207943132026264">"撥號模式"</string>
<string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"撥號符號模式"</string>
<string name="announce_keyboard_hidden" msgid="8718927835531429807">"鍵盤已隱藏"</string>
- <!-- no translation found for announce_keyboard_mode (7486740369324538848) -->
- <skip />
+ <string name="announce_keyboard_mode" msgid="7486740369324538848">"目前顯示的是<xliff:g id="KEYBOARD_MODE">%s</xliff:g>鍵盤"</string>
<string name="keyboard_mode_date" msgid="3137520166817128102">"日期"</string>
<string name="keyboard_mode_date_time" msgid="339593358488851072">"日期和時間"</string>
<string name="keyboard_mode_email" msgid="6216248078128294262">"電子郵件"</string>
@@ -135,14 +132,10 @@
<string name="subtype_en_GB" msgid="88170601942311355">"英文 (英國)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英文 (美國)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"西班牙文 (美國)"</string>
- <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
- <skip />
- <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
- <skip />
- <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
- <skip />
- <!-- no translation found for subtype_nepali_traditional (1994571919751163596) -->
- <skip />
+ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英文 (英國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_with_layout_es_US" msgid="510930471167541338">"西班牙文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+ <string name="subtype_nepali_traditional" msgid="1994571919751163596">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (傳統)"</string>
<string name="subtype_no_language" msgid="7137390094240139495">"無語言 (字母)"</string>
<string name="subtype_no_language_qwerty" msgid="244337630616742604">"字母 (QWERTY)"</string>
<string name="subtype_no_language_qwertz" msgid="443066912507547976">"字母 (QWERTZ)"</string>
@@ -172,8 +165,7 @@
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"讀取外部字典檔案"</string>
<string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"「下載」資料夾中沒有任何字典檔案"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"選取要安裝的字典檔案"</string>
- <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
- <skip />
+ <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"確定要安裝這個<xliff:g id="LANGUAGE_NAME">%s</xliff:g>檔案嗎?"</string>
<string name="error" msgid="8940763624668513648">"發生錯誤"</string>
<string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"捨棄聯絡人字典"</string>
<string name="prefs_dump_user_dict" msgid="294870685041741951">"捨棄個人字典"</string>
@@ -216,22 +208,20 @@
<string name="check_for_updates_now" msgid="8087688440916388581">"重新整理"</string>
<string name="last_update" msgid="730467549913588780">"上次更新時間:"</string>
<string name="message_updating" msgid="4457761393932375219">"正在檢查更新"</string>
- <!-- no translation found for message_loading (5638680861387748936) -->
- <skip />
+ <string name="message_loading" msgid="5638680861387748936">"載入中…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"主要字典"</string>
<string name="cancel" msgid="6830980399865683324">"取消"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"安裝"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"取消"</string>
<string name="delete_dict" msgid="756853268088330054">"刪除"</string>
- <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
- <skip />
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"您的行動裝置選用的語言現有字典可供使用。<br/>建議您<b>下載</b><xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字典,藉此強化輸入功能。<br/><br/>透過 3G 網路下載約需一兩分鐘。如果沒有<b>無限行動上網資費方案</b>,可能必須另外付費。<br/>若不確定行動上網資費方案為何,可以等連上 Wi-Fi 網路後再自動下載。<br/><br/>提示:前往行動裝置的 [設定] 選單,選擇 [語言和輸入] 即可下載及移除字典。<b></b><b></b>"</string>
<string name="download_over_metered" msgid="1643065851159409546">"立即下載 (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"透過 Wi-Fi 下載"</string>
- <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
- <skip />
+ <string name="dict_available_notification_title" msgid="4583842811218581658">"支援<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字典"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"按下即可查看並下載"</string>
- <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
- <skip />
+ <string name="toast_downloading_suggestions" msgid="6128155879830851739">"下載中:即將啟用<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字詞建議服務。"</string>
<string name="version_text" msgid="2715354215568469385">"版本 <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"新增"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"加入字典"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 1d21c4e..9ee9246 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -211,6 +211,8 @@
<string name="message_loading" msgid="5638680861387748936">"Iyalayisha..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"Isichazamazwi sakho esisemqoka"</string>
<string name="cancel" msgid="6830980399865683324">"Khansela"</string>
+ <!-- no translation found for go_to_settings (3876892339342569259) -->
+ <skip />
<string name="install_dict" msgid="180852772562189365">"Faka"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"Khansela"</string>
<string name="delete_dict" msgid="756853268088330054">"Susa"</string>
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index a39ce4a..c9be449 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -90,11 +90,11 @@
android:entries="@array/prefs_suggestion_visibilities"
android:defaultValue="@string/prefs_suggestion_visibility_default_value" />
<CheckBoxPreference
- android:key="pref_key_use_personalized_dicts"
+ android:key="pref_use_personalized_dicts"
android:title="@string/use_personalized_dicts"
android:summary="@string/use_personalized_dicts_summary"
android:persistent="true"
- android:defaultValue="true" />
+ android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/gesture_typing_category"
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
index 1d9b999..80def70 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
@@ -350,7 +350,8 @@
clientId);
if (null == results) {
return Collections.<WordListInfo>emptyList();
- } else {
+ }
+ try {
final HashMap<String, WordListInfo> dicts = new HashMap<String, WordListInfo>();
final int idIndex = results.getColumnIndex(MetadataDbHelper.WORDLISTID_COLUMN);
final int localeIndex = results.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
@@ -416,8 +417,9 @@
}
} while (results.moveToNext());
}
- results.close();
return Collections.unmodifiableCollection(dicts.values());
+ } finally {
+ results.close();
}
}
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
index d186397..dae2f22 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
@@ -283,63 +283,70 @@
final ArrayList<Preference> result = new ArrayList<Preference>();
result.add(createErrorMessage(activity, R.string.cannot_connect_to_dict_service));
return result;
- } else if (!cursor.moveToFirst()) {
- final ArrayList<Preference> result = new ArrayList<Preference>();
- result.add(createErrorMessage(activity, R.string.no_dictionaries_available));
- cursor.close();
- return result;
- } else {
- final String systemLocaleString = Locale.getDefault().toString();
- final TreeMap<String, WordListPreference> prefMap =
- new TreeMap<String, WordListPreference>();
- final int idIndex = cursor.getColumnIndex(MetadataDbHelper.WORDLISTID_COLUMN);
- final int versionIndex = cursor.getColumnIndex(MetadataDbHelper.VERSION_COLUMN);
- final int localeIndex = cursor.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
- final int descriptionIndex = cursor.getColumnIndex(MetadataDbHelper.DESCRIPTION_COLUMN);
- final int statusIndex = cursor.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
- final int filesizeIndex = cursor.getColumnIndex(MetadataDbHelper.FILESIZE_COLUMN);
- do {
- final String wordlistId = cursor.getString(idIndex);
- final int version = cursor.getInt(versionIndex);
- final String localeString = cursor.getString(localeIndex);
- final Locale locale = new Locale(localeString);
- final String description = cursor.getString(descriptionIndex);
- final int status = cursor.getInt(statusIndex);
- final int matchLevel = LocaleUtils.getMatchLevel(systemLocaleString, localeString);
- final String matchLevelString = LocaleUtils.getMatchLevelSortedString(matchLevel);
- final int filesize = cursor.getInt(filesizeIndex);
- // The key is sorted in lexicographic order, according to the match level, then
- // the description.
- final String key = matchLevelString + "." + description + "." + wordlistId;
- final WordListPreference existingPref = prefMap.get(key);
- if (null == existingPref || existingPref.hasPriorityOver(status)) {
- final WordListPreference oldPreference = mCurrentPreferenceMap.get(key);
- final WordListPreference pref;
- if (null != oldPreference
- && oldPreference.mVersion == version
- && oldPreference.hasStatus(status)
- && oldPreference.mLocale.equals(locale)) {
- // If the old preference has all the new attributes, reuse it. Ideally, we
- // should reuse the old pref even if its status is different and call
- // setStatus here, but setStatus calls Preference#setSummary() which needs
- // to be done on the UI thread and we're not on the UI thread here. We
- // could do all this work on the UI thread, but in this case it's probably
- // lighter to stay on a background thread and throw this old preference out.
- pref = oldPreference;
- } else {
- // Otherwise, discard it and create a new one instead.
- // TODO: when the status is different from the old one, we need to
- // animate the old one out before animating the new one in.
- pref = new WordListPreference(activity, mDictionaryListInterfaceState,
- mClientId, wordlistId, version, locale, description, status,
- filesize);
+ }
+ try {
+ if (!cursor.moveToFirst()) {
+ final ArrayList<Preference> result = new ArrayList<Preference>();
+ result.add(createErrorMessage(activity, R.string.no_dictionaries_available));
+ return result;
+ } else {
+ final String systemLocaleString = Locale.getDefault().toString();
+ final TreeMap<String, WordListPreference> prefMap =
+ new TreeMap<String, WordListPreference>();
+ final int idIndex = cursor.getColumnIndex(MetadataDbHelper.WORDLISTID_COLUMN);
+ final int versionIndex = cursor.getColumnIndex(MetadataDbHelper.VERSION_COLUMN);
+ final int localeIndex = cursor.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
+ final int descriptionIndex =
+ cursor.getColumnIndex(MetadataDbHelper.DESCRIPTION_COLUMN);
+ final int statusIndex = cursor.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
+ final int filesizeIndex = cursor.getColumnIndex(MetadataDbHelper.FILESIZE_COLUMN);
+ do {
+ final String wordlistId = cursor.getString(idIndex);
+ final int version = cursor.getInt(versionIndex);
+ final String localeString = cursor.getString(localeIndex);
+ final Locale locale = new Locale(localeString);
+ final String description = cursor.getString(descriptionIndex);
+ final int status = cursor.getInt(statusIndex);
+ final int matchLevel =
+ LocaleUtils.getMatchLevel(systemLocaleString, localeString);
+ final String matchLevelString =
+ LocaleUtils.getMatchLevelSortedString(matchLevel);
+ final int filesize = cursor.getInt(filesizeIndex);
+ // The key is sorted in lexicographic order, according to the match level, then
+ // the description.
+ final String key = matchLevelString + "." + description + "." + wordlistId;
+ final WordListPreference existingPref = prefMap.get(key);
+ if (null == existingPref || existingPref.hasPriorityOver(status)) {
+ final WordListPreference oldPreference = mCurrentPreferenceMap.get(key);
+ final WordListPreference pref;
+ if (null != oldPreference
+ && oldPreference.mVersion == version
+ && oldPreference.hasStatus(status)
+ && oldPreference.mLocale.equals(locale)) {
+ // If the old preference has all the new attributes, reuse it. Ideally,
+ // we should reuse the old pref even if its status is different and call
+ // setStatus here, but setStatus calls Preference#setSummary() which
+ // needs to be done on the UI thread and we're not on the UI thread
+ // here. We could do all this work on the UI thread, but in this case
+ // it's probably lighter to stay on a background thread and throw this
+ // old preference out.
+ pref = oldPreference;
+ } else {
+ // Otherwise, discard it and create a new one instead.
+ // TODO: when the status is different from the old one, we need to
+ // animate the old one out before animating the new one in.
+ pref = new WordListPreference(activity, mDictionaryListInterfaceState,
+ mClientId, wordlistId, version, locale, description, status,
+ filesize);
+ }
+ prefMap.put(key, pref);
}
- prefMap.put(key, pref);
- }
- } while (cursor.moveToNext());
+ } while (cursor.moveToNext());
+ mCurrentPreferenceMap = prefMap;
+ return prefMap.values();
+ }
+ } finally {
cursor.close();
- mCurrentPreferenceMap = prefMap;
- return prefMap.values();
}
}
diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java
index e95ca17..75cc7d4 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java
@@ -59,6 +59,10 @@
// be opened. It may be a problem with file system corruption. In any case, there is
// not much we can do apart from avoiding crashing.
Log.e(TAG, "Can't remove files with ID " + ids + " from download manager", e);
+ } catch (IllegalArgumentException e) {
+ // Not sure how this can happen, but it could be another case where the provider
+ // is disabled. Or it could be a bug in older versions of the framework.
+ Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
}
@@ -69,6 +73,8 @@
}
} catch (SQLiteException e) {
Log.e(TAG, "Can't open downloaded file with ID " + fileId, e);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
// We come here if mDownloadManager is null or if an exception was thrown.
throw new FileNotFoundException();
@@ -81,6 +87,8 @@
}
} catch (SQLiteException e) {
Log.e(TAG, "Can't query the download manager", e);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
// We come here if mDownloadManager is null or if an exception was thrown.
return null;
@@ -93,6 +101,8 @@
}
} catch (SQLiteException e) {
Log.e(TAG, "Can't enqueue a request with the download manager", e);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
return 0;
}
diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
index ff5aba6..8badaf4 100644
--- a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
+++ b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
@@ -533,12 +533,17 @@
PENDINGID_COLUMN + "= ?",
new String[] { Long.toString(id) },
null, null, null);
- // There should never be more than one result. If because of some bug there are, returning
- // only one result is the right thing to do, because we couldn't handle several anyway
- // and we should still handle one.
- final ContentValues result = getFirstLineAsContentValues(cursor);
- cursor.close();
- return result;
+ if (null == cursor) {
+ return null;
+ }
+ try {
+ // There should never be more than one result. If because of some bug there are,
+ // returning only one result is the right thing to do, because we couldn't handle
+ // several anyway and we should still handle one.
+ return getFirstLineAsContentValues(cursor);
+ } finally {
+ cursor.close();
+ }
}
/**
@@ -559,11 +564,16 @@
new String[] { id, Integer.toString(STATUS_INSTALLED),
Integer.toString(STATUS_DELETING) },
null, null, null);
- // There should only be one result, but if there are several, we can't tell which
- // is the best, so we just return the first one.
- final ContentValues result = getFirstLineAsContentValues(cursor);
- cursor.close();
- return result;
+ if (null == cursor) {
+ return null;
+ }
+ try {
+ // There should only be one result, but if there are several, we can't tell which
+ // is the best, so we just return the first one.
+ return getFirstLineAsContentValues(cursor);
+ } finally {
+ cursor.close();
+ }
}
/**
@@ -622,10 +632,15 @@
METADATA_TABLE_COLUMNS,
WORDLISTID_COLUMN + "= ? AND " + VERSION_COLUMN + "= ?",
new String[] { id, Integer.toString(version) }, null, null, null);
- // This is a lookup by primary key, so there can't be more than one result.
- final ContentValues result = getFirstLineAsContentValues(cursor);
- cursor.close();
- return result;
+ if (null == cursor) {
+ return null;
+ }
+ try {
+ // This is a lookup by primary key, so there can't be more than one result.
+ return getFirstLineAsContentValues(cursor);
+ } finally {
+ cursor.close();
+ }
}
/**
@@ -641,10 +656,15 @@
METADATA_TABLE_COLUMNS,
WORDLISTID_COLUMN + "= ?",
new String[] { id }, null, null, VERSION_COLUMN + " DESC", "1");
- // This is a lookup by primary key, so there can't be more than one result.
- final ContentValues result = getFirstLineAsContentValues(cursor);
- cursor.close();
- return result;
+ if (null == cursor) {
+ return null;
+ }
+ try {
+ // This is a lookup by primary key, so there can't be more than one result.
+ return getFirstLineAsContentValues(cursor);
+ } finally {
+ cursor.close();
+ }
}
/**
diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java b/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java
index a0147b6..5c22899 100644
--- a/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java
+++ b/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java
@@ -44,8 +44,7 @@
*/
private static List<WordListMetadata> makeMetadataObject(final Cursor results) {
final ArrayList<WordListMetadata> buildingMetadata = new ArrayList<WordListMetadata>();
-
- if (results.moveToFirst()) {
+ if (null != results && results.moveToFirst()) {
final int localeColumn = results.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
final int typeColumn = results.getColumnIndex(MetadataDbHelper.TYPE_COLUMN);
final int descriptionColumn =
@@ -61,7 +60,6 @@
final int versionIndex = results.getColumnIndex(MetadataDbHelper.VERSION_COLUMN);
final int formatVersionIndex =
results.getColumnIndex(MetadataDbHelper.FORMATVERSION_COLUMN);
-
do {
buildingMetadata.add(new WordListMetadata(results.getString(idIndex),
results.getInt(typeColumn),
@@ -75,8 +73,6 @@
results.getInt(formatVersionIndex),
0, results.getString(localeColumn)));
} while (results.moveToNext());
-
- results.close();
}
return Collections.unmodifiableList(buildingMetadata);
}
@@ -92,9 +88,14 @@
// If clientId is null, we get a cursor on the default database (see
// MetadataDbHelper#getInstance() for more on this)
final Cursor results = MetadataDbHelper.queryCurrentMetadata(context, clientId);
- final List<WordListMetadata> resultList = makeMetadataObject(results);
- results.close();
- return resultList;
+ // If null, we should return makeMetadataObject(null), so we go through.
+ try {
+ return makeMetadataObject(results);
+ } finally {
+ if (null != results) {
+ results.close();
+ }
+ }
}
/**
diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
index 282c8e8..03d9def 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
@@ -16,8 +16,6 @@
package com.android.inputmethod.keyboard;
-import com.android.inputmethod.latin.Constants;
-
/**
* This class handles key detection.
*/
@@ -41,13 +39,15 @@
* @param keyHysteresisDistanceForSlidingModifier the same parameter for sliding input that
* starts from a modifier key such as shift and symbols key.
*/
- public KeyDetector(float keyHysteresisDistance, float keyHysteresisDistanceForSlidingModifier) {
+ public KeyDetector(final float keyHysteresisDistance,
+ final float keyHysteresisDistanceForSlidingModifier) {
mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance);
mKeyHysteresisDistanceForSlidingModifierSquared = (int)(
keyHysteresisDistanceForSlidingModifier * keyHysteresisDistanceForSlidingModifier);
}
- public void setKeyboard(Keyboard keyboard, float correctionX, float correctionY) {
+ public void setKeyboard(final Keyboard keyboard, final float correctionX,
+ final float correctionY) {
if (keyboard == null) {
throw new NullPointerException();
}
@@ -56,24 +56,21 @@
mKeyboard = keyboard;
}
- public int getKeyHysteresisDistanceSquared(boolean isSlidingFromModifier) {
+ public int getKeyHysteresisDistanceSquared(final boolean isSlidingFromModifier) {
return isSlidingFromModifier
? mKeyHysteresisDistanceForSlidingModifierSquared : mKeyHysteresisDistanceSquared;
}
- public int getTouchX(int x) {
+ public int getTouchX(final int x) {
return x + mCorrectionX;
}
// TODO: Remove vertical correction.
- public int getTouchY(int y) {
+ public int getTouchY(final int y) {
return y + mCorrectionY;
}
public Keyboard getKeyboard() {
- if (mKeyboard == null) {
- throw new IllegalStateException("keyboard isn't set");
- }
return mKeyboard;
}
@@ -88,7 +85,7 @@
* @param y The y-coordinate of a touch point
* @return the key that the touch point hits.
*/
- public Key detectHitKey(int x, int y) {
+ public Key detectHitKey(final int x, final int y) {
final int touchX = getTouchX(x);
final int touchY = getTouchY(y);
@@ -113,20 +110,4 @@
}
return primaryKey;
}
-
- public static String printableCode(Key key) {
- return key != null ? Constants.printableCode(key.getCode()) : "none";
- }
-
- public static String printableCodes(int[] codes) {
- final StringBuilder sb = new StringBuilder();
- boolean addDelimiter = false;
- for (final int code : codes) {
- if (code == Constants.NOT_A_CODE) break;
- if (addDelimiter) sb.append(", ");
- sb.append(Constants.printableCode(code));
- addDelimiter = true;
- }
- return "[" + sb + "]";
- }
}
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java b/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java
index 4a80279..abff202 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java
@@ -33,13 +33,17 @@
}
@Override
- public Key detectHitKey(int x, int y) {
+ public Key detectHitKey(final int x, final int y) {
+ final Keyboard keyboard = getKeyboard();
+ if (keyboard == null) {
+ return null;
+ }
final int touchX = getTouchX(x);
final int touchY = getTouchY(y);
Key nearestKey = null;
int nearestDist = (y < 0) ? mSlideAllowanceSquareTop : mSlideAllowanceSquare;
- for (final Key key : getKeyboard().getKeys()) {
+ for (final Key key : keyboard.getKeys()) {
final int dist = key.squaredDistanceToEdge(touchX, touchY);
if (dist < nearestDist) {
nearestKey = key;
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index befc4e6..59cf64d 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -257,12 +257,15 @@
}
public static void setKeyDetector(final KeyDetector keyDetector) {
+ final Keyboard keyboard = keyDetector.getKeyboard();
+ if (keyboard == null) {
+ return;
+ }
final int trackersSize = sTrackers.size();
for (int i = 0; i < trackersSize; ++i) {
final PointerTracker tracker = sTrackers.get(i);
tracker.setKeyDetectorInner(keyDetector);
}
- final Keyboard keyboard = keyDetector.getKeyboard();
sGestureEnabler.setPasswordMode(keyboard.mId.passwordInput());
}
@@ -301,7 +304,7 @@
final boolean ignoreModifierKey = mIsInDraggingFinger && key.isModifier();
if (DEBUG_LISTENER) {
Log.d(TAG, String.format("[%d] onPress : %s%s%s%s", mPointerId,
- KeyDetector.printableCode(key),
+ (key == null ? "none" : Constants.printableCode(key.getCode())),
ignoreModifierKey ? " ignoreModifier" : "",
key.isEnabled() ? "" : " disabled",
repeatCount > 0 ? " repeatCount=" + repeatCount : ""));
@@ -402,11 +405,14 @@
private void setKeyDetectorInner(final KeyDetector keyDetector) {
final Keyboard keyboard = keyDetector.getKeyboard();
+ if (keyboard == null) {
+ return;
+ }
if (keyDetector == mKeyDetector && keyboard == mKeyboard) {
return;
}
mKeyDetector = keyDetector;
- mKeyboard = keyDetector.getKeyboard();
+ mKeyboard = keyboard;
// Mark that keyboard layout has been changed.
mKeyboardLayoutHasBeenChanged = true;
final int keyWidth = mKeyboard.mMostCommonKeyWidth;
@@ -1235,7 +1241,7 @@
private void printTouchEvent(final String title, final int x, final int y,
final long eventTime) {
final Key key = mKeyDetector.detectHitKey(x, y);
- final String code = KeyDetector.printableCode(key);
+ final String code = (key == null ? "none" : Constants.printableCode(key.getCode()));
Log.d(TAG, String.format("[%d]%s%s %4d %4d %5d %s", mPointerId,
(mIsTrackingForActionDisabled ? "-" : " "), title, x, y, eventTime, code));
}
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index b4382bc..e428b1d 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -142,7 +142,7 @@
final ContentProviderClient client = context.getContentResolver().
acquireContentProviderClient(getProviderUriBuilder("").build());
if (null == client) return Collections.<WordListInfo>emptyList();
-
+ Cursor cursor = null;
try {
final Uri.Builder builder = getContentUriBuilderForType(clientId, client,
QUERY_PATH_DICT_INFO, locale.toString());
@@ -154,24 +154,22 @@
final boolean isProtocolV2 = (QUERY_PARAMETER_PROTOCOL_VALUE.equals(
queryUri.getQueryParameter(QUERY_PARAMETER_PROTOCOL)));
- Cursor c = client.query(queryUri, DICTIONARY_PROJECTION, null, null, null);
- if (isProtocolV2 && null == c) {
+ cursor = client.query(queryUri, DICTIONARY_PROJECTION, null, null, null);
+ if (isProtocolV2 && null == cursor) {
reinitializeClientRecordInDictionaryContentProvider(context, client, clientId);
- c = client.query(queryUri, DICTIONARY_PROJECTION, null, null, null);
+ cursor = client.query(queryUri, DICTIONARY_PROJECTION, null, null, null);
}
- if (null == c) return Collections.<WordListInfo>emptyList();
- if (c.getCount() <= 0 || !c.moveToFirst()) {
- c.close();
+ if (null == cursor) return Collections.<WordListInfo>emptyList();
+ if (cursor.getCount() <= 0 || !cursor.moveToFirst()) {
return Collections.<WordListInfo>emptyList();
}
final ArrayList<WordListInfo> list = CollectionUtils.newArrayList();
do {
- final String wordListId = c.getString(0);
- final String wordListLocale = c.getString(1);
+ final String wordListId = cursor.getString(0);
+ final String wordListLocale = cursor.getString(1);
if (TextUtils.isEmpty(wordListId)) continue;
list.add(new WordListInfo(wordListId, wordListLocale));
- } while (c.moveToNext());
- c.close();
+ } while (cursor.moveToNext());
return list;
} catch (RemoteException e) {
// The documentation is unclear as to in which cases this may happen, but it probably
@@ -186,6 +184,9 @@
Log.e(TAG, "Unexpected exception communicating with the dictionary pack", e);
return Collections.<WordListInfo>emptyList();
} finally {
+ if (null != cursor) {
+ cursor.close();
+ }
client.release();
}
}
diff --git a/java/src/com/android/inputmethod/latin/Constants.java b/java/src/com/android/inputmethod/latin/Constants.java
index d6ac71f..d1ff714 100644
--- a/java/src/com/android/inputmethod/latin/Constants.java
+++ b/java/src/com/android/inputmethod/latin/Constants.java
@@ -252,6 +252,18 @@
}
}
+ public static String printableCodes(final int[] codes) {
+ final StringBuilder sb = new StringBuilder();
+ boolean addDelimiter = false;
+ for (final int code : codes) {
+ if (code == NOT_A_CODE) break;
+ if (addDelimiter) sb.append(", ");
+ sb.append(printableCode(code));
+ addDelimiter = true;
+ }
+ return "[" + sb + "]";
+ }
+
public static final int MAX_INT_BIT_COUNT = 32;
/**
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index d626ff9..11a9d1f 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -139,23 +139,24 @@
}
private void loadDictionaryAsyncForUri(final Uri uri) {
+ Cursor cursor = null;
try {
- Cursor cursor = mContext.getContentResolver()
- .query(uri, PROJECTION, null, null, null);
- if (cursor != null) {
- try {
- if (cursor.moveToFirst()) {
- sContactCountAtLastRebuild = getContactCount();
- addWords(cursor);
- }
- } finally {
- cursor.close();
- }
+ cursor = mContext.getContentResolver().query(uri, PROJECTION, null, null, null);
+ if (null == cursor) {
+ return;
+ }
+ if (cursor.moveToFirst()) {
+ sContactCountAtLastRebuild = getContactCount();
+ addWords(cursor);
}
} catch (final SQLiteException e) {
Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
} catch (final IllegalStateException e) {
Log.e(TAG, "Contacts DB is having problems", e);
+ } finally {
+ if (null != cursor) {
+ cursor.close();
+ }
}
}
@@ -186,18 +187,20 @@
private int getContactCount() {
// TODO: consider switching to a rawQuery("select count(*)...") on the database if
// performance is a bottleneck.
+ Cursor cursor = null;
try {
- final Cursor cursor = mContext.getContentResolver().query(
- Contacts.CONTENT_URI, PROJECTION_ID_ONLY, null, null, null);
- if (cursor != null) {
- try {
- return cursor.getCount();
- } finally {
- cursor.close();
- }
+ cursor = mContext.getContentResolver().query(Contacts.CONTENT_URI, PROJECTION_ID_ONLY,
+ null, null, null);
+ if (null == cursor) {
+ return 0;
}
+ return cursor.getCount();
} catch (final SQLiteException e) {
Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
+ } finally {
+ if (null != cursor) {
+ cursor.close();
+ }
}
return 0;
}
@@ -281,26 +284,27 @@
// Check all contacts since it's not possible to find out which names have changed.
// This is needed because it's possible to receive extraneous onChange events even when no
// name has changed.
- Cursor cursor = mContext.getContentResolver().query(
- Contacts.CONTENT_URI, PROJECTION, null, null, null);
- if (cursor != null) {
- try {
- if (cursor.moveToFirst()) {
- while (!cursor.isAfterLast()) {
- String name = cursor.getString(INDEX_NAME);
- if (isValidName(name) && !isNameInDictionary(name)) {
- if (DEBUG) {
- Log.d(TAG, "Contact name missing: " + name + " (runtime = "
- + (SystemClock.uptimeMillis() - startTime) + " ms)");
- }
- return true;
+ final Cursor cursor = mContext.getContentResolver().query(Contacts.CONTENT_URI, PROJECTION,
+ null, null, null);
+ if (null == cursor) {
+ return false;
+ }
+ try {
+ if (cursor.moveToFirst()) {
+ while (!cursor.isAfterLast()) {
+ String name = cursor.getString(INDEX_NAME);
+ if (isValidName(name) && !isNameInDictionary(name)) {
+ if (DEBUG) {
+ Log.d(TAG, "Contact name missing: " + name + " (runtime = "
+ + (SystemClock.uptimeMillis() - startTime) + " ms)");
}
- cursor.moveToNext();
+ return true;
}
+ cursor.moveToNext();
}
- } finally {
- cursor.close();
}
+ } finally {
+ cursor.close();
}
if (DEBUG) {
Log.d(TAG, "No contacts changed. (runtime = " + (SystemClock.uptimeMillis() - startTime)
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 259c137..138a626 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -512,7 +512,6 @@
}
}
- @UsedForTesting
public void clearUserHistoryDictionary() {
if (mUserHistoryDictionary == null) {
return;
diff --git a/java/src/com/android/inputmethod/latin/InputAttributes.java b/java/src/com/android/inputmethod/latin/InputAttributes.java
index 01c17f2..726b3d1 100644
--- a/java/src/com/android/inputmethod/latin/InputAttributes.java
+++ b/java/src/com/android/inputmethod/latin/InputAttributes.java
@@ -20,9 +20,13 @@
import android.util.Log;
import android.view.inputmethod.EditorInfo;
+import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.InputTypeUtils;
import com.android.inputmethod.latin.utils.StringUtils;
+import java.util.ArrayList;
+import java.util.Arrays;
+
/**
* Class to hold attributes of the input field.
*/
@@ -62,49 +66,43 @@
mInputTypeNoAutoCorrect = false;
mApplicationSpecifiedCompletionOn = false;
mShouldInsertSpacesAutomatically = false;
- } else {
- final int variation = inputType & InputType.TYPE_MASK_VARIATION;
- final boolean flagNoSuggestions =
- 0 != (inputType & InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
- final boolean flagMultiLine =
- 0 != (inputType & InputType.TYPE_TEXT_FLAG_MULTI_LINE);
- final boolean flagAutoCorrect =
- 0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
- final boolean flagAutoComplete =
- 0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
-
- mIsPasswordField = InputTypeUtils.isPasswordInputType(inputType)
- || InputTypeUtils.isVisiblePasswordInputType(inputType);
- // TODO: Have a helper method in InputTypeUtils
- // Make sure that passwords are not displayed in {@link SuggestionStripView}.
- if (mIsPasswordField
- || InputTypeUtils.isEmailVariation(variation)
- || InputType.TYPE_TEXT_VARIATION_URI == variation
- || InputType.TYPE_TEXT_VARIATION_FILTER == variation
- || flagNoSuggestions
- || flagAutoComplete) {
- mIsSettingsSuggestionStripOn = false;
- } else {
- mIsSettingsSuggestionStripOn = true;
- }
-
- mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType);
-
- // If it's a browser edit field and auto correct is not ON explicitly, then
- // disable auto correction, but keep suggestions on.
- // If NO_SUGGESTIONS is set, don't do prediction.
- // If it's not multiline and the autoCorrect flag is not set, then don't correct
- if ((variation == InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT
- && !flagAutoCorrect)
- || flagNoSuggestions
- || (!flagAutoCorrect && !flagMultiLine)) {
- mInputTypeNoAutoCorrect = true;
- } else {
- mInputTypeNoAutoCorrect = false;
- }
-
- mApplicationSpecifiedCompletionOn = flagAutoComplete && isFullscreenMode;
+ return;
}
+ // inputClass == InputType.TYPE_CLASS_TEXT
+ final int variation = inputType & InputType.TYPE_MASK_VARIATION;
+ final boolean flagNoSuggestions =
+ 0 != (inputType & InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
+ final boolean flagMultiLine =
+ 0 != (inputType & InputType.TYPE_TEXT_FLAG_MULTI_LINE);
+ final boolean flagAutoCorrect =
+ 0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
+ final boolean flagAutoComplete =
+ 0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
+
+ mIsPasswordField = InputTypeUtils.isPasswordInputType(inputType)
+ || InputTypeUtils.isVisiblePasswordInputType(inputType);
+ // TODO: Have a helper method in InputTypeUtils
+ // Make sure that passwords are not displayed in {@link SuggestionStripView}.
+ final boolean noSuggestionStrip = mIsPasswordField
+ || InputTypeUtils.isEmailVariation(variation)
+ || InputType.TYPE_TEXT_VARIATION_URI == variation
+ || InputType.TYPE_TEXT_VARIATION_FILTER == variation
+ || flagNoSuggestions
+ || flagAutoComplete;
+ mIsSettingsSuggestionStripOn = !noSuggestionStrip;
+
+ mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType);
+
+ // If it's a browser edit field and auto correct is not ON explicitly, then
+ // disable auto correction, but keep suggestions on.
+ // If NO_SUGGESTIONS is set, don't do prediction.
+ // If it's not multiline and the autoCorrect flag is not set, then don't correct
+ mInputTypeNoAutoCorrect =
+ (variation == InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT && !flagAutoCorrect)
+ || flagNoSuggestions
+ || (!flagAutoCorrect && !flagMultiLine);
+
+ mApplicationSpecifiedCompletionOn = flagAutoComplete && isFullscreenMode;
}
public boolean isTypeNull() {
@@ -117,96 +115,142 @@
@SuppressWarnings("unused")
private void dumpFlags(final int inputType) {
- Log.i(TAG, "Input class:");
final int inputClass = inputType & InputType.TYPE_MASK_CLASS;
- if (inputClass == InputType.TYPE_CLASS_TEXT)
- Log.i(TAG, " TYPE_CLASS_TEXT");
- if (inputClass == InputType.TYPE_CLASS_PHONE)
- Log.i(TAG, " TYPE_CLASS_PHONE");
- if (inputClass == InputType.TYPE_CLASS_NUMBER)
- Log.i(TAG, " TYPE_CLASS_NUMBER");
- if (inputClass == InputType.TYPE_CLASS_DATETIME)
- Log.i(TAG, " TYPE_CLASS_DATETIME");
- Log.i(TAG, "Variation:");
- switch (InputType.TYPE_MASK_VARIATION & inputType) {
- case InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS:
- Log.i(TAG, " TYPE_TEXT_VARIATION_EMAIL_ADDRESS");
- break;
- case InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT:
- Log.i(TAG, " TYPE_TEXT_VARIATION_EMAIL_SUBJECT");
- break;
- case InputType.TYPE_TEXT_VARIATION_FILTER:
- Log.i(TAG, " TYPE_TEXT_VARIATION_FILTER");
- break;
- case InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE:
- Log.i(TAG, " TYPE_TEXT_VARIATION_LONG_MESSAGE");
- break;
- case InputType.TYPE_TEXT_VARIATION_NORMAL:
- Log.i(TAG, " TYPE_TEXT_VARIATION_NORMAL");
- break;
- case InputType.TYPE_TEXT_VARIATION_PASSWORD:
- Log.i(TAG, " TYPE_TEXT_VARIATION_PASSWORD");
- break;
- case InputType.TYPE_TEXT_VARIATION_PERSON_NAME:
- Log.i(TAG, " TYPE_TEXT_VARIATION_PERSON_NAME");
- break;
- case InputType.TYPE_TEXT_VARIATION_PHONETIC:
- Log.i(TAG, " TYPE_TEXT_VARIATION_PHONETIC");
- break;
- case InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS:
- Log.i(TAG, " TYPE_TEXT_VARIATION_POSTAL_ADDRESS");
- break;
- case InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE:
- Log.i(TAG, " TYPE_TEXT_VARIATION_SHORT_MESSAGE");
- break;
- case InputType.TYPE_TEXT_VARIATION_URI:
- Log.i(TAG, " TYPE_TEXT_VARIATION_URI");
- break;
- case InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:
- Log.i(TAG, " TYPE_TEXT_VARIATION_VISIBLE_PASSWORD");
- break;
- case InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT:
- Log.i(TAG, " TYPE_TEXT_VARIATION_WEB_EDIT_TEXT");
- break;
- case InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS:
- Log.i(TAG, " TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS");
- break;
- case InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD:
- Log.i(TAG, " TYPE_TEXT_VARIATION_WEB_PASSWORD");
- break;
- default:
- Log.i(TAG, " Unknown variation");
- break;
+ final String inputClassString = toInputClassString(inputClass);
+ final String variationString = toVariationString(
+ inputClass, inputType & InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
+ final String flagsString = toFlagsString(inputType & InputType.TYPE_MASK_FLAGS);
+ Log.i(TAG, "Input class: " + inputClassString);
+ Log.i(TAG, "Variation: " + variationString);
+ Log.i(TAG, "Flags: " + flagsString);
+ }
+
+ private static String toInputClassString(final int inputClass) {
+ switch (inputClass) {
+ case InputType.TYPE_CLASS_TEXT:
+ return "TYPE_CLASS_TEXT";
+ case InputType.TYPE_CLASS_PHONE:
+ return "TYPE_CLASS_PHONE";
+ case InputType.TYPE_CLASS_NUMBER:
+ return "TYPE_CLASS_NUMBER";
+ case InputType.TYPE_CLASS_DATETIME:
+ return "TYPE_CLASS_DATETIME";
+ default:
+ return String.format("unknownInputClass<0x%08x>", inputClass);
}
- Log.i(TAG, "Flags:");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS))
- Log.i(TAG, " TYPE_TEXT_FLAG_NO_SUGGESTIONS");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_MULTI_LINE))
- Log.i(TAG, " TYPE_TEXT_FLAG_MULTI_LINE");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE))
- Log.i(TAG, " TYPE_TEXT_FLAG_IME_MULTI_LINE");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_CAP_WORDS))
- Log.i(TAG, " TYPE_TEXT_FLAG_CAP_WORDS");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_CAP_SENTENCES))
- Log.i(TAG, " TYPE_TEXT_FLAG_CAP_SENTENCES");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS))
- Log.i(TAG, " TYPE_TEXT_FLAG_CAP_CHARACTERS");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_CORRECT))
- Log.i(TAG, " TYPE_TEXT_FLAG_AUTO_CORRECT");
- if (0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE))
- Log.i(TAG, " TYPE_TEXT_FLAG_AUTO_COMPLETE");
+ }
+
+ private static String toVariationString(final int inputClass, final int variation) {
+ switch (inputClass) {
+ case InputType.TYPE_CLASS_TEXT:
+ return toTextVariationString(variation);
+ case InputType.TYPE_CLASS_NUMBER:
+ return toNumberVariationString(variation);
+ case InputType.TYPE_CLASS_DATETIME:
+ return toDatetimeVariationString(variation);
+ default:
+ return "";
+ }
+ }
+
+ private static String toTextVariationString(final int variation) {
+ switch (variation) {
+ case InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS:
+ return " TYPE_TEXT_VARIATION_EMAIL_ADDRESS";
+ case InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT:
+ return "TYPE_TEXT_VARIATION_EMAIL_SUBJECT";
+ case InputType.TYPE_TEXT_VARIATION_FILTER:
+ return "TYPE_TEXT_VARIATION_FILTER";
+ case InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE:
+ return "TYPE_TEXT_VARIATION_LONG_MESSAGE";
+ case InputType.TYPE_TEXT_VARIATION_NORMAL:
+ return "TYPE_TEXT_VARIATION_NORMAL";
+ case InputType.TYPE_TEXT_VARIATION_PASSWORD:
+ return "TYPE_TEXT_VARIATION_PASSWORD";
+ case InputType.TYPE_TEXT_VARIATION_PERSON_NAME:
+ return "TYPE_TEXT_VARIATION_PERSON_NAME";
+ case InputType.TYPE_TEXT_VARIATION_PHONETIC:
+ return "TYPE_TEXT_VARIATION_PHONETIC";
+ case InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS:
+ return "TYPE_TEXT_VARIATION_POSTAL_ADDRESS";
+ case InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE:
+ return "TYPE_TEXT_VARIATION_SHORT_MESSAGE";
+ case InputType.TYPE_TEXT_VARIATION_URI:
+ return "TYPE_TEXT_VARIATION_URI";
+ case InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:
+ return "TYPE_TEXT_VARIATION_VISIBLE_PASSWORD";
+ case InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT:
+ return "TYPE_TEXT_VARIATION_WEB_EDIT_TEXT";
+ case InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS:
+ return "TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS";
+ case InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD:
+ return "TYPE_TEXT_VARIATION_WEB_PASSWORD";
+ default:
+ return String.format("unknownVariation<0x%08x>", variation);
+ }
+ }
+
+ private static String toNumberVariationString(final int variation) {
+ switch (variation) {
+ case InputType.TYPE_NUMBER_VARIATION_NORMAL:
+ return "TYPE_NUMBER_VARIATION_NORMAL";
+ case InputType.TYPE_NUMBER_VARIATION_PASSWORD:
+ return "TYPE_NUMBER_VARIATION_PASSWORD";
+ default:
+ return String.format("unknownVariation<0x%08x>", variation);
+ }
+ }
+
+ private static String toDatetimeVariationString(final int variation) {
+ switch (variation) {
+ case InputType.TYPE_DATETIME_VARIATION_NORMAL:
+ return "TYPE_DATETIME_VARIATION_NORMAL";
+ case InputType.TYPE_DATETIME_VARIATION_DATE:
+ return "TYPE_DATETIME_VARIATION_DATE";
+ case InputType.TYPE_DATETIME_VARIATION_TIME:
+ return "TYPE_DATETIME_VARIATION_TIME";
+ default:
+ return String.format("unknownVariation<0x%08x>", variation);
+ }
+ }
+
+ private static String toFlagsString(final int flags) {
+ final ArrayList<String> flagsArray = CollectionUtils.newArrayList();
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS))
+ flagsArray.add("TYPE_TEXT_FLAG_NO_SUGGESTIONS");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_MULTI_LINE))
+ flagsArray.add("TYPE_TEXT_FLAG_MULTI_LINE");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE))
+ flagsArray.add("TYPE_TEXT_FLAG_IME_MULTI_LINE");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_CAP_WORDS))
+ flagsArray.add("TYPE_TEXT_FLAG_CAP_WORDS");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_CAP_SENTENCES))
+ flagsArray.add("TYPE_TEXT_FLAG_CAP_SENTENCES");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS))
+ flagsArray.add("TYPE_TEXT_FLAG_CAP_CHARACTERS");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_AUTO_CORRECT))
+ flagsArray.add("TYPE_TEXT_FLAG_AUTO_CORRECT");
+ if (0 != (flags & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE))
+ flagsArray.add("TYPE_TEXT_FLAG_AUTO_COMPLETE");
+ return flagsArray.isEmpty() ? "" : Arrays.toString(flagsArray.toArray());
}
// Pretty print
@Override
public String toString() {
- return "\n mInputTypeNoAutoCorrect = " + mInputTypeNoAutoCorrect
- + "\n mIsSettingsSuggestionStripOn = " + mIsSettingsSuggestionStripOn
- + "\n mApplicationSpecifiedCompletionOn = " + mApplicationSpecifiedCompletionOn;
+ return String.format(
+ "%s: inputType=0x%08x%s%s%s%s%s targetApp=%s\n", getClass().getSimpleName(),
+ mInputType,
+ (mInputTypeNoAutoCorrect ? " noAutoCorrect" : ""),
+ (mIsPasswordField ? " password" : ""),
+ (mIsSettingsSuggestionStripOn ? " suggestionStrip" : ""),
+ (mApplicationSpecifiedCompletionOn ? " appSpecified" : ""),
+ (mShouldInsertSpacesAutomatically ? " insertSpaces" : ""),
+ mTargetApplicationPackageName);
}
- public static boolean inPrivateImeOptions(String packageName, String key,
- EditorInfo editorInfo) {
+ public static boolean inPrivateImeOptions(final String packageName, final String key,
+ final EditorInfo editorInfo) {
if (editorInfo == null) return false;
final String findingKey = (packageName != null) ? packageName + "." + key : key;
return StringUtils.containsInCommaSplittableText(findingKey, editorInfo.privateImeOptions);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 743118e..5d90e10 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -25,6 +25,9 @@
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.content.DialogInterface.OnDismissListener;
+import android.content.DialogInterface.OnShowListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
@@ -171,10 +174,8 @@
public void onCreate() {
final Resources res = getOwnerInstance().getResources();
- mDelayUpdateSuggestions =
- res.getInteger(R.integer.config_delay_update_suggestions);
- mDelayUpdateShiftState =
- res.getInteger(R.integer.config_delay_update_shift_state);
+ mDelayUpdateSuggestions = res.getInteger(R.integer.config_delay_update_suggestions);
+ mDelayUpdateShiftState = res.getInteger(R.integer.config_delay_update_shift_state);
mDoubleSpacePeriodTimeout =
res.getInteger(R.integer.config_double_space_period_timeout);
}
@@ -339,12 +340,15 @@
private void executePendingImsCallback(final LatinIME latinIme, final EditorInfo editorInfo,
boolean restarting) {
- if (mHasPendingFinishInputView)
+ if (mHasPendingFinishInputView) {
latinIme.onFinishInputViewInternal(mHasPendingFinishInput);
- if (mHasPendingFinishInput)
+ }
+ if (mHasPendingFinishInput) {
latinIme.onFinishInputInternal();
- if (mHasPendingStartInput)
+ }
+ if (mHasPendingStartInput) {
latinIme.onStartInputInternal(editorInfo, restarting);
+ }
resetPendingImsCallback();
}
@@ -530,18 +534,33 @@
}
private void refreshPersonalizationDictionarySession() {
+ final Suggest suggest = mInputLogic.mSuggest;
+ final boolean shouldKeepUserHistoryDictionaries;
+ final boolean shouldKeepPersonalizationDictionaries;
if (mSettings.getCurrent().mUsePersonalizedDicts) {
- if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) {
- final DictionaryFacilitatorForSuggest dictionaryFacilitator =
- (mInputLogic.mSuggest == null) ?
- null : mInputLogic.mSuggest.mDictionaryFacilitator;
- PersonalizationDictionarySessionRegistrar.init(this, dictionaryFacilitator);
- } else {
- PersonalizationDictionarySessionRegistrar.close(this);
- }
+ shouldKeepUserHistoryDictionaries = true;
+ // TODO: Eliminate this restriction
+ shouldKeepPersonalizationDictionaries =
+ mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes();
} else {
- PersonalizationHelper.removeAllPersonalizedDictionaries(this);
+ shouldKeepUserHistoryDictionaries = false;
+ shouldKeepPersonalizationDictionaries = false;
+ }
+ if (!shouldKeepUserHistoryDictionaries) {
+ // Remove user history dictionaries.
+ PersonalizationHelper.removeAllUserHistoryDictionaries(this);
+ if (suggest != null) {
+ suggest.mDictionaryFacilitator.clearUserHistoryDictionary();
+ }
+ }
+ if (!shouldKeepPersonalizationDictionaries) {
+ // Remove personalization dictionaries.
+ PersonalizationHelper.removeAllPersonalizationDictionaries(this);
PersonalizationDictionarySessionRegistrar.resetAll(this);
+ } else {
+ final DictionaryFacilitatorForSuggest dictionaryFacilitator =
+ (suggest == null) ? null : suggest.mDictionaryFacilitator;
+ PersonalizationDictionarySessionRegistrar.init(this, dictionaryFacilitator);
}
}
@@ -579,9 +598,8 @@
(mInputLogic.mSuggest == null) ? null : mInputLogic.mSuggest.mDictionaryFacilitator;
// Creates new dictionary facilitator for the new locale.
final DictionaryFacilitatorForSuggest dictionaryFacilitator =
- new DictionaryFacilitatorForSuggest(this /* context */, locale,
- settingsValues, this /* DictionaryInitializationListener */,
- oldDictionaryFacilitator);
+ new DictionaryFacilitatorForSuggest(this /* context */, locale, settingsValues,
+ this /* DictionaryInitializationListener */, oldDictionaryFacilitator);
final Suggest newSuggest = new Suggest(locale, dictionaryFacilitator);
if (settingsValues.mCorrectionEnabled) {
newSuggest.setAutoCorrectionThreshold(settingsValues.mAutoCorrectionThreshold);
@@ -658,7 +676,7 @@
.findViewById(android.R.id.extractArea);
mKeyPreviewBackingView = view.findViewById(R.id.key_preview_backing);
mSuggestionStripView = (SuggestionStripView)view.findViewById(R.id.suggestion_strip_view);
- if (mSuggestionStripView != null) {
+ if (hasSuggestionStripView()) {
mSuggestionStripView.setListener(this, view);
}
if (LatinImeLogger.sVISUALDEBUG) {
@@ -738,13 +756,11 @@
ResearchLogger.latinIME_onStartInputViewInternal(editorInfo, prefs);
}
if (InputAttributes.inPrivateImeOptions(null, NO_MICROPHONE_COMPAT, editorInfo)) {
- Log.w(TAG, "Deprecated private IME option specified: "
- + editorInfo.privateImeOptions);
+ Log.w(TAG, "Deprecated private IME option specified: " + editorInfo.privateImeOptions);
Log.w(TAG, "Use " + getPackageName() + "." + NO_MICROPHONE + " instead");
}
if (InputAttributes.inPrivateImeOptions(getPackageName(), FORCE_ASCII, editorInfo)) {
- Log.w(TAG, "Deprecated private IME option specified: "
- + editorInfo.privateImeOptions);
+ Log.w(TAG, "Deprecated private IME option specified: " + editorInfo.privateImeOptions);
Log.w(TAG, "Use EditorInfo.IME_FLAG_FORCE_ASCII flag instead");
}
@@ -777,14 +793,10 @@
// Note: the following does a round-trip IPC on the main thread: be careful
final Locale currentLocale = mSubtypeSwitcher.getCurrentSubtypeLocale();
- final Suggest suggest = mInputLogic.mSuggest;
+ Suggest suggest = mInputLogic.mSuggest;
if (null != suggest && null != currentLocale && !currentLocale.equals(suggest.mLocale)) {
initSuggest();
- }
- if (mSuggestionStripView != null) {
- // This will set the punctuation suggestions if next word suggestion is off;
- // otherwise it will clear the suggestion strip.
- setNeutralSuggestionStrip();
+ suggest = mInputLogic.mSuggest;
}
// Sometimes, while rotating, for some reason the framework tells the app we are not
@@ -809,6 +821,7 @@
if (isDifferentTextField ||
!currentSettingsValues.hasSameOrientation(getResources().getConfiguration())) {
loadSettings();
+ suggest = mInputLogic.mSuggest;
}
if (isDifferentTextField) {
mainKeyboardView.closing();
@@ -834,8 +847,9 @@
// Space state must be updated before calling updateShiftState
switcher.updateShiftState();
}
- setSuggestionStripShownInternal(
- isSuggestionsStripVisible(), /* needsInputViewShown */ false);
+ // This will set the punctuation suggestions if next word suggestion is off;
+ // otherwise it will clear the suggestion strip.
+ setNeutralSuggestionStripInternal(false /* needsInputViewShown */);
mHandler.cancelUpdateSuggestionStrip();
mHandler.cancelDoubleSpacePeriodTimer();
@@ -894,12 +908,9 @@
super.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd,
composingSpanStart, composingSpanEnd);
if (DEBUG) {
- Log.i(TAG, "onUpdateSelection: oss=" + oldSelStart
- + ", ose=" + oldSelEnd
- + ", nss=" + newSelStart
- + ", nse=" + newSelEnd
- + ", cs=" + composingSpanStart
- + ", ce=" + composingSpanEnd);
+ Log.i(TAG, "onUpdateSelection: oss=" + oldSelStart + ", ose=" + oldSelEnd
+ + ", nss=" + newSelStart + ", nse=" + newSelEnd
+ + ", cs=" + composingSpanStart + ", ce=" + composingSpanEnd);
}
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
ResearchLogger.latinIME_onUpdateSelection(oldSelStart, oldSelEnd,
@@ -983,7 +994,9 @@
}
}
}
- if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) return;
+ if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) {
+ return;
+ }
if (applicationSpecifiedCompletions == null) {
setNeutralSuggestionStrip();
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
@@ -997,27 +1010,25 @@
final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
SuggestedWords.getFromApplicationSpecifiedCompletions(
applicationSpecifiedCompletions);
- final SuggestedWords suggestedWords = new SuggestedWords(
- applicationSuggestedWords, null /* rawSuggestions */,
- false /* typedWordValid */,
- false /* willAutoCorrect */,
- false /* isObsoleteSuggestions */,
- false /* isPrediction */);
- // When in fullscreen mode, show completions generated by the application
- setSuggestedWords(suggestedWords, true /* shouldShow */);
+ final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
+ null /* rawSuggestions */, false /* typedWordValid */, false /* willAutoCorrect */,
+ false /* isObsoleteSuggestions */, false /* isPrediction */);
+ // When in fullscreen mode, show completions generated by the application forcibly
+ setSuggestedWords(suggestedWords, true /* isSuggestionStripVisible */,
+ true /* needsInputViewShown */);
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
ResearchLogger.latinIME_onDisplayCompletions(applicationSpecifiedCompletions);
}
}
- private void setSuggestionStripShownInternal(final boolean shown,
+ private void setSuggestionStripShownInternal(final boolean isSuggestionStripVisible,
final boolean needsInputViewShown) {
// TODO: Modify this if we support suggestions with hard keyboard
- if (!onEvaluateInputViewShown() || null == mSuggestionStripView) {
+ if (!onEvaluateInputViewShown() || !hasSuggestionStripView()) {
return;
}
final boolean inputViewShown = mKeyboardSwitcher.isShowingMainKeyboardOrEmojiPalettes();
- final boolean shouldShowSuggestions = shown
+ final boolean shouldShowSuggestions = isSuggestionStripVisible
&& (needsInputViewShown ? inputViewShown : true);
if (shouldShowSuggestions) {
mSuggestionStripView.setVisibility(View.VISIBLE);
@@ -1057,7 +1068,7 @@
public void onComputeInsets(final InputMethodService.Insets outInsets) {
super.onComputeInsets(outInsets);
final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView();
- if (visibleKeyboardView == null || mSuggestionStripView == null) {
+ if (visibleKeyboardView == null || !hasSuggestionStripView()) {
return;
}
final int adjustedBackingHeight = getAdjustedBackingViewHeight();
@@ -1172,31 +1183,54 @@
@Override
public void showImportantNoticeContents() {
final Context context = this;
- final DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
+ final OnShowListener onShowListener = new OnShowListener() {
@Override
- public void onClick(final DialogInterface di, final int position) {
- di.dismiss();
+ public void onShow(final DialogInterface dialog) {
ImportantNoticeUtils.updateLastImportantNoticeVersion(context);
- if (position == DialogInterface.BUTTON_POSITIVE) {
- setNeutralSuggestionStrip();
- return;
- }
+ onShowImportantNoticeDialog(
+ ImportantNoticeUtils.getCurrentImportantNoticeVersion(context));
+ }
+ };
+ final OnClickListener onClickListener = new OnClickListener() {
+ @Override
+ public void onClick(final DialogInterface dialog, final int position) {
if (position == DialogInterface.BUTTON_NEGATIVE) {
launchSettings();
- return;
}
}
};
- final AlertDialog.Builder builder =
- new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK);
- builder.setMessage(R.string.important_notice_contents)
- .setPositiveButton(android.R.string.ok, listener)
- .setNegativeButton(R.string.go_to_settings, listener);
- showOptionDialog(builder.create(), true /* cancelable */);
+ final OnDismissListener onDismissListener = new OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ setNeutralSuggestionStrip();
+ }
+ };
+ final String importantNoticeContents = ImportantNoticeUtils.getImportantNoticeContents(
+ context);
+ final AlertDialog.Builder builder = new AlertDialog.Builder(
+ context, AlertDialog.THEME_HOLO_DARK);
+ builder.setMessage(importantNoticeContents)
+ .setPositiveButton(android.R.string.ok, null /* listener */)
+ .setNegativeButton(R.string.go_to_settings, onClickListener);
+ final AlertDialog importantNoticeDialog = builder.create();
+ importantNoticeDialog.setOnShowListener(onShowListener);
+ importantNoticeDialog.setOnDismissListener(onDismissListener);
+ showOptionDialog(importantNoticeDialog);
+ }
+
+ private void onShowImportantNoticeDialog(final int importantNoticeVersion) {
+ if (importantNoticeVersion ==
+ ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS) {
+ mSettings.writeUsePersonalizationDictionary(true /* enabled */);
+ loadSettings();
+ initSuggest();
+ }
}
public void displaySettingsDialog() {
- if (isShowingOptionDialog()) return;
+ if (isShowingOptionDialog()) {
+ return;
+ }
showSubtypeSelectorAndSettings();
}
@@ -1256,8 +1290,8 @@
mSubtypeSwitcher.switchToShortcutIME(this);
// Still call the *#onCodeInput methods for readability.
}
- mInputLogic.onCodeInput(codeToSend, keyX, keyY, mSettings.getCurrent(),
- mHandler, mKeyboardSwitcher);
+ mInputLogic.onCodeInput(codeToSend, keyX, keyY, mSettings.getCurrent(), mHandler,
+ mKeyboardSwitcher);
mKeyboardSwitcher.onCodeInput(codePoint);
}
@@ -1314,27 +1348,28 @@
// Nothing to do so far.
}
- // TODO: remove this, read this directly from mInputLogic or something in the tests
- @UsedForTesting
- public boolean isShowingPunctuationList() {
- return mInputLogic.isShowingPunctuationList(mSettings.getCurrent());
- }
-
// TODO[IL]: Define a clear interface for this
- public boolean isSuggestionsStripVisible() {
+ public boolean isSuggestionStripVisible() {
+ if (!hasSuggestionStripView()) {
+ return false;
+ }
+ if (mSuggestionStripView.isShowingAddToDictionaryHint()) {
+ return true;
+ }
final SettingsValues currentSettings = mSettings.getCurrent();
- if (mSuggestionStripView == null)
+ if (null == currentSettings) {
return false;
- if (mSuggestionStripView.isShowingAddToDictionaryHint())
+ }
+ if (ImportantNoticeUtils.shouldShowImportantNotice(this,
+ currentSettings.mInputAttributes)) {
return true;
- if (null == currentSettings)
+ }
+ if (!currentSettings.isSuggestionStripVisible()) {
return false;
- if (ImportantNoticeUtils.shouldShowImportantNotice(this, currentSettings.mInputAttributes))
+ }
+ if (currentSettings.isApplicationSpecifiedCompletionsOn()) {
return true;
- if (!currentSettings.isSuggestionStripVisible())
- return false;
- if (currentSettings.isApplicationSpecifiedCompletionsOn())
- return true;
+ }
return currentSettings.isSuggestionsRequested();
}
@@ -1350,32 +1385,35 @@
@Override
public void dismissAddToDictionaryHint() {
- if (null != mSuggestionStripView) {
- mSuggestionStripView.dismissAddToDictionaryHint();
+ if (!hasSuggestionStripView()) {
+ return;
}
+ mSuggestionStripView.dismissAddToDictionaryHint();
}
// TODO[IL]: Define a clear interface for this
- public void setSuggestedWords(final SuggestedWords suggestedWords, final boolean shouldShow) {
+ public void setSuggestedWords(final SuggestedWords suggestedWords,
+ final boolean isSuggestionStripVisible, final boolean needsInputViewShown) {
mInputLogic.setSuggestedWords(suggestedWords);
- if (mSuggestionStripView != null) {
- final SettingsValues currentSettings = mSettings.getCurrent();
- final boolean showSuggestions;
- if (SuggestedWords.EMPTY == suggestedWords
- || suggestedWords.isPunctuationSuggestions()
- || !currentSettings.isSuggestionsRequested()) {
- showSuggestions = !mSuggestionStripView.maybeShowImportantNoticeTitle(
- currentSettings.mInputAttributes);
- } else {
- showSuggestions = true;
- }
- if (showSuggestions) {
- mSuggestionStripView.setSuggestions(suggestedWords,
- SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype()));
- }
- mKeyboardSwitcher.onAutoCorrectionStateChanged(suggestedWords.mWillAutoCorrect);
- setSuggestionStripShownInternal(shouldShow, true /* needsInputViewShown */);
+ if (!hasSuggestionStripView()) {
+ return;
}
+ final SettingsValues currentSettings = mSettings.getCurrent();
+ final boolean showSuggestions;
+ if (SuggestedWords.EMPTY == suggestedWords
+ || suggestedWords.isPunctuationSuggestions()
+ || !currentSettings.isSuggestionsRequested()) {
+ showSuggestions = !mSuggestionStripView.maybeShowImportantNoticeTitle(
+ currentSettings.mInputAttributes);
+ } else {
+ showSuggestions = true;
+ }
+ if (showSuggestions) {
+ mSuggestionStripView.setSuggestions(suggestedWords,
+ SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype()));
+ }
+ mKeyboardSwitcher.onAutoCorrectionStateChanged(suggestedWords.mWillAutoCorrect);
+ setSuggestionStripShownInternal(isSuggestionStripVisible, needsInputViewShown);
}
// TODO[IL]: Move this out of LatinIME.
@@ -1414,9 +1452,9 @@
}
suggest.getSuggestedWords(mInputLogic.mWordComposer,
mInputLogic.mWordComposer.getPreviousWordForSuggestion(),
- keyboard.getProximityInfo(),
- currentSettings.mBlockPotentiallyOffensive, currentSettings.mCorrectionEnabled,
- additionalFeaturesOptions, sessionId, sequenceNumber, callback);
+ keyboard.getProximityInfo(), currentSettings.mBlockPotentiallyOffensive,
+ currentSettings.mCorrectionEnabled, additionalFeaturesOptions, sessionId,
+ sequenceNumber, callback);
}
// TODO[IL]: Move this to InputLogic
@@ -1430,7 +1468,7 @@
// the "add to dictionary" hint, we need to revert to suggestions - although it is unclear
// how we can come here if it's displayed.
if (suggestedWords.size() > 1 || typedWord.length() <= 1
- || null == mSuggestionStripView || isShowingAddToDictionaryHint()) {
+ || !hasSuggestionStripView() || isShowingAddToDictionaryHint()) {
return suggestedWords;
} else {
final SuggestedWords punctuationList =
@@ -1440,10 +1478,8 @@
final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, oldSuggestedWords);
return new SuggestedWords(typedWordAndPreviousSuggestions, null /* rawSuggestions */,
- false /* typedWordValid */,
- false /* hasAutoCorrectionCandidate */,
- true /* isObsoleteSuggestions */,
- false /* isPrediction */);
+ false /* typedWordValid */, false /* hasAutoCorrectionCandidate */,
+ true /* isObsoleteSuggestions */, false /* isPrediction */);
}
}
@@ -1463,7 +1499,8 @@
setNeutralSuggestionStrip();
} else {
mInputLogic.mWordComposer.setAutoCorrection(autoCorrection);
- setSuggestedWords(suggestedWords, isSuggestionsStripVisible());
+ setSuggestedWords(
+ suggestedWords, isSuggestionStripVisible(), true /* needsInputViewShown */);
}
// Cache the auto-correction in accessibility code so we can speak it if the user
// touches a key that will insert it.
@@ -1481,7 +1518,9 @@
@Override
public void showAddToDictionaryHint(final String word) {
- if (null == mSuggestionStripView) return;
+ if (!hasSuggestionStripView()) {
+ return;
+ }
mSuggestionStripView.showAddToDictionaryHint(word);
}
@@ -1490,13 +1529,14 @@
// punctuation suggestions (if it's disabled).
@Override
public void setNeutralSuggestionStrip() {
+ setNeutralSuggestionStripInternal(true /* needsInputViewShown */);
+ }
+
+ private void setNeutralSuggestionStripInternal(final boolean needsInputViewShown) {
final SettingsValues currentSettings = mSettings.getCurrent();
- if (currentSettings.mBigramPredictionEnabled) {
- setSuggestedWords(SuggestedWords.EMPTY, isSuggestionsStripVisible());
- } else {
- setSuggestedWords(currentSettings.mSpacingAndPunctuations.mSuggestPuncList,
- isSuggestionsStripVisible());
- }
+ final SuggestedWords neutralSuggestions = currentSettings.mBigramPredictionEnabled
+ ? SuggestedWords.EMPTY : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
+ setSuggestedWords(neutralSuggestions, isSuggestionStripVisible(), needsInputViewShown);
}
// TODO: Make this private
@@ -1638,7 +1678,7 @@
getString(R.string.language_selection_title),
getString(ApplicationUtils.getActivityTitleResId(this, SettingsActivity.class)),
};
- final DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
+ final OnClickListener listener = new OnClickListener() {
@Override
public void onClick(DialogInterface di, int position) {
di.dismiss();
@@ -1659,18 +1699,18 @@
};
final AlertDialog.Builder builder =
new AlertDialog.Builder(this).setItems(items, listener).setTitle(title);
- showOptionDialog(builder.create(), true /*cancelable */);
+ showOptionDialog(builder.create());
}
// TODO: Move this method out of {@link LatinIME}.
- private void showOptionDialog(final AlertDialog dialog, final boolean cancelable) {
+ private void showOptionDialog(final AlertDialog dialog) {
final IBinder windowToken = mKeyboardSwitcher.getMainKeyboardView().getWindowToken();
if (windowToken == null) {
return;
}
- dialog.setCancelable(cancelable);
- dialog.setCanceledOnTouchOutside(cancelable);
+ dialog.setCancelable(true /* cancelable */);
+ dialog.setCanceledOnTouchOutside(true /* cancelable */);
final Window window = dialog.getWindow();
final WindowManager.LayoutParams lp = window.getAttributes();
@@ -1685,7 +1725,7 @@
// TODO: can this be removed somehow without breaking the tests?
@UsedForTesting
- /* package for test */ SuggestedWords getSuggestedWords() {
+ /* package for test */ SuggestedWords getSuggestedWordsForTest() {
// You may not use this method for anything else than debug
return DEBUG ? mInputLogic.mSuggestedWords : null;
}
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index eb1899c..ebad9bc 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -230,6 +230,9 @@
public void finishComposingText() {
if (DEBUG_BATCH_NESTING) checkBatchEdit();
if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
+ // TODO: this is not correct! The cursor is not necessarily after the composing text.
+ // In the practice right now this is only called when input ends so it will be reset so
+ // it works, but it's wrong and should be fixed.
mCommittedTextBeforeComposingText.append(mComposingText);
mComposingText.setLength(0);
if (null != mIC) {
@@ -244,6 +247,9 @@
if (DEBUG_BATCH_NESTING) checkBatchEdit();
if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
mCommittedTextBeforeComposingText.append(text);
+ // TODO: the following is exceedingly error-prone. Right now when the cursor is in the
+ // middle of the composing word mComposingText only holds the part of the composing text
+ // that is before the cursor, so this actually works, but it's terribly confusing. Fix this.
mExpectedSelStart += text.length() - mComposingText.length();
mExpectedSelEnd = mExpectedSelStart;
mComposingText.setLength(0);
@@ -347,6 +353,9 @@
public void deleteSurroundingText(final int beforeLength, final int afterLength) {
if (DEBUG_BATCH_NESTING) checkBatchEdit();
+ // TODO: the following is incorrect if the cursor is not immediately after the composition.
+ // Right now we never come here in this case because we reset the composing state before we
+ // come here in this case, but we need to fix this.
final int remainingChars = mComposingText.length() - beforeLength;
if (remainingChars >= 0) {
mComposingText.setLength(remainingChars);
@@ -447,8 +456,12 @@
getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE + (end - start), 0);
mCommittedTextBeforeComposingText.setLength(0);
if (!TextUtils.isEmpty(textBeforeCursor)) {
+ // The cursor is not necessarily at the end of the composing text, but we have its
+ // position in mExpectedSelStart and mExpectedSelEnd. In this case we want the start
+ // of the text, so we should use mExpectedSelStart. In other words, the composing
+ // text starts (mExpectedSelStart - start) characters before the end of textBeforeCursor
final int indexOfStartOfComposingText =
- Math.max(textBeforeCursor.length() - (end - start), 0);
+ Math.max(textBeforeCursor.length() - (mExpectedSelStart - start), 0);
mComposingText.append(textBeforeCursor.subSequence(indexOfStartOfComposingText,
textBeforeCursor.length()));
mCommittedTextBeforeComposingText.append(
@@ -544,6 +557,9 @@
final int checkLength = LOOKBACK_CHARACTER_NUM - 1;
final String reference = prev.length() <= checkLength ? prev.toString()
: prev.subSequence(prev.length() - checkLength, prev.length()).toString();
+ // TODO: right now the following works because mComposingText holds the part of the
+ // composing text that is before the cursor, but this is very confusing. We should
+ // fix it.
final StringBuilder internal = new StringBuilder()
.append(mCommittedTextBeforeComposingText).append(mComposingText);
if (internal.length() > checkLength) {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 9bf9d1f..3fc2cf8 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -198,7 +198,7 @@
final SuggestedWords suggestedWords = mSuggestedWords;
final String suggestion = suggestionInfo.mWord;
// If this is a punctuation picked from the suggestion strip, pass it to onCodeInput
- if (suggestion.length() == 1 && isShowingPunctuationList(settingsValues)) {
+ if (suggestion.length() == 1 && suggestedWords.isPunctuationSuggestions()) {
// Word separators are suggested before the user inputs something.
// So, LatinImeLogger logs "" as a user's input.
LatinImeLogger.logOnManualSuggestion("", suggestion, index, suggestedWords);
@@ -821,7 +821,7 @@
if (maybeDoubleSpacePeriod(settingsValues, handler)) {
keyboardSwitcher.updateShiftState();
mSpaceState = SpaceState.DOUBLE;
- } else if (!isShowingPunctuationList(settingsValues)) {
+ } else if (!mSuggestedWords.isPunctuationSuggestions()) {
mSpaceState = SpaceState.WEAK;
}
}
@@ -1456,15 +1456,6 @@
}
/**
- * Find out if the punctuation list is shown in the suggestion strip.
- * @return whether the current suggestions are the punctuation list.
- */
- // TODO: make this private. It's used through LatinIME for tests.
- public boolean isShowingPunctuationList(final SettingsValues settingsValues) {
- return settingsValues.mSpacingAndPunctuations.mSuggestPuncList == mSuggestedWords;
- }
-
- /**
* Factor in auto-caps and manual caps and compute the current caps mode.
* @param settingsValues the current settings values.
* @param keyboardShiftMode the current shift mode of the keyboard. See
diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java
index 315bd8e..71e120c 100644
--- a/java/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java
+++ b/java/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java
@@ -173,6 +173,9 @@
@Override
public DictionaryHeader readHeader() throws IOException, UnsupportedFormatException {
final DictionaryHeader header = mBinaryDictionary.getHeader();
+ if (header == null) {
+ throw new IOException("Cannot read the dictionary header.");
+ }
if (header.mFormatOptions.mVersion != FormatSpec.VERSION2) {
throw new UnsupportedFormatException("File header has a wrong version : "
+ header.mFormatOptions.mVersion);
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index df64bce..5ae2fb6 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -93,13 +93,16 @@
}
}
- public static void removeAllPersonalizedDictionaries(final Context context) {
- removeAllDictionaries(context, sLangUserHistoryDictCache,
- UserHistoryDictionary.NAME);
+ public static void removeAllPersonalizationDictionaries(final Context context) {
removeAllDictionaries(context, sLangPersonalizationDictCache,
PersonalizationDictionary.NAME);
}
+ public static void removeAllUserHistoryDictionaries(final Context context) {
+ removeAllDictionaries(context, sLangUserHistoryDictCache,
+ UserHistoryDictionary.NAME);
+ }
+
private static <T extends DecayingExpandableBinaryDictionaryBase> void removeAllDictionaries(
final Context context, final ConcurrentHashMap<String, SoftReference<T>> dictionaryMap,
final String dictNamePrefix) {
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java
index b51c765..6a1503f 100644
--- a/java/src/com/android/inputmethod/latin/settings/Settings.java
+++ b/java/src/com/android/inputmethod/latin/settings/Settings.java
@@ -55,7 +55,7 @@
public static final String PREF_MISC_SETTINGS = "misc_settings";
public static final String PREF_ADVANCED_SETTINGS = "pref_advanced_settings";
public static final String PREF_KEY_USE_CONTACTS_DICT = "pref_key_use_contacts_dict";
- public static final String PREF_KEY_USE_PERSONALIZED_DICTS = "pref_key_use_personalized_dicts";
+ public static final String PREF_USE_PERSONALIZED_DICTS = "pref_use_personalized_dicts";
public static final String PREF_KEY_USE_DOUBLE_SPACE_PERIOD =
"pref_key_use_double_space_period";
public static final String PREF_BLOCK_POTENTIALLY_OFFENSIVE =
@@ -421,6 +421,10 @@
return mPrefs.getStringSet(PREF_CORPUS_HANDLES_FOR_PERSONALIZATION, emptySet);
}
+ public void writeUsePersonalizationDictionary(final boolean enabled) {
+ mPrefs.edit().putBoolean(PREF_USE_PERSONALIZED_DICTS, enabled).apply();
+ }
+
public static void writeEmojiRecentKeys(final SharedPreferences prefs, String str) {
prefs.edit().putString(PREF_EMOJI_RECENT_KEYS, str).apply();
}
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index 77968f7..0f3deea 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -128,7 +128,7 @@
Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST, false);
mShowsLanguageSwitchKey = Settings.readShowsLanguageSwitchKey(prefs);
mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
- mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true);
+ mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_USE_PERSONALIZED_DICTS, false);
mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true);
mBlockPotentiallyOffensive = Settings.readBlockPotentiallyOffensive(prefs, res);
mAutoCorrectEnabled = Settings.readAutoCorrectEnabled(autoCorrectionThresholdRawValue, res);
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index e77c550..8ea7128 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -504,12 +504,13 @@
hintView, 1.0f - mCenterSuggestionWeight, ViewGroup.LayoutParams.MATCH_PARENT);
}
- public void layoutImportantNotice(final View importantNoticeStrip, final int stripWidth) {
+ public void layoutImportantNotice(final View importantNoticeStrip, final int stripWidth,
+ final String importantNoticeTitle) {
final TextView titleView = (TextView)importantNoticeStrip.findViewById(
R.id.important_notice_title);
final int width = stripWidth - titleView.getPaddingLeft() - titleView.getPaddingRight();
titleView.setTextColor(mColorAutoCorrect);
- final CharSequence importantNoticeTitle = titleView.getText();
+ titleView.setText(importantNoticeTitle);
titleView.setTextScaleX(1.0f); // Reset textScaleX.
final float titleScaleX = getTextScaleX(
importantNoticeTitle, width, titleView.getPaint());
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index 90b9692..2966a8b 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -20,6 +20,7 @@
import android.content.res.Resources;
import android.graphics.Color;
import android.support.v4.view.ViewCompat;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.GestureDetector;
@@ -233,8 +234,15 @@
return false;
}
final int width = getWidth();
- if (width <= 0) return false;
- mLayoutHelper.layoutImportantNotice(mImportantNoticeStrip, width);
+ if (width <= 0) {
+ return false;
+ }
+ final String importantNoticeTitle = ImportantNoticeUtils.getImportantNoticeTitle(
+ getContext());
+ if (TextUtils.isEmpty(importantNoticeTitle)) {
+ return false;
+ }
+ mLayoutHelper.layoutImportantNotice(mImportantNoticeStrip, width, importantNoticeTitle);
mStripVisibilityGroup.showImportantNoticeStrip();
mImportantNoticeStrip.setOnClickListener(this);
return true;
@@ -429,9 +437,11 @@
}
@Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ protected void onSizeChanged(final int w, final int h, final int oldw, final int oldh) {
// Called by the framework when the size is known. Show the important notice if applicable.
// This may be overriden by showing suggestions later, if applicable.
- maybeShowImportantNoticeTitle(Settings.getInstance().getCurrent().mInputAttributes);
+ if (oldw <= 0 && w > 0) {
+ maybeShowImportantNoticeTitle(Settings.getInstance().getCurrent().mInputAttributes);
+ }
}
}
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
index 32c4950..2f41ce9 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
@@ -61,12 +61,17 @@
if (null == cursor) {
// The user dictionary service is not present or disabled. Return null.
return null;
- } else if (cursor.moveToFirst()) {
- final int columnIndex = cursor.getColumnIndex(UserDictionary.Words.LOCALE);
- do {
- final String locale = cursor.getString(columnIndex);
- localeSet.add(null != locale ? locale : "");
- } while (cursor.moveToNext());
+ }
+ try {
+ if (cursor.moveToFirst()) {
+ final int columnIndex = cursor.getColumnIndex(UserDictionary.Words.LOCALE);
+ do {
+ final String locale = cursor.getString(columnIndex);
+ localeSet.add(null != locale ? locale : "");
+ } while (cursor.moveToNext());
+ }
+ } finally {
+ cursor.close();
}
if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
// For ICS, we need to show "For all languages" in case that the keyboard locale
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
index 7571e87..220efb5 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
@@ -140,6 +140,8 @@
}
mLocale = locale;
+ // WARNING: The following cursor is never closed! TODO: don't put that in a member, and
+ // make sure all cursors are correctly closed.
mCursor = createCursor(locale);
TextView emptyView = (TextView) getView().findViewById(android.R.id.empty);
emptyView.setText(R.string.user_dict_settings_empty_text);
diff --git a/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java b/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java
index 50a9423..dd418b8 100644
--- a/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java
@@ -32,6 +32,7 @@
// displayed to users.
private static final String PREFERENCE_NAME = "important_notice";
private static final String KEY_IMPORTANT_NOTICE_VERSION = "important_notice_version";
+ public static final int VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS = 2;
// Copy of the hidden {@link Settings.Secure#USER_SETUP_COMPLETE} settings key.
// The value is zero until each multiuser completes system setup wizard.
@@ -59,7 +60,7 @@
return context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
}
- private static int getCurrentImportantNoticeVersion(final Context context) {
+ public static int getCurrentImportantNoticeVersion(final Context context) {
return context.getResources().getInteger(R.integer.config_important_notice_version);
}
@@ -83,4 +84,22 @@
.putInt(KEY_IMPORTANT_NOTICE_VERSION, getCurrentImportantNoticeVersion(context))
.apply();
}
+
+ public static String getImportantNoticeTitle(final Context context) {
+ switch (getCurrentImportantNoticeVersion(context)) {
+ case VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS:
+ return context.getString(R.string.important_notice_title);
+ default:
+ return null;
+ }
+ }
+
+ public static String getImportantNoticeContents(final Context context) {
+ switch (getCurrentImportantNoticeVersion(context)) {
+ case VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS:
+ return context.getString(R.string.important_notice_contents);
+ default:
+ return null;
+ }
+ }
}
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index cfdbb5b..1e00cd8 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -162,13 +162,13 @@
jintArray keyCodePointArray = env->NewIntArray(it->first.size());
env->SetIntArrayRegion(
keyCodePointArray, 0 /* start */, it->first.size(), &it->first.at(0));
- env->CallVoidMethod(outAttributeKeys, addMethodId, keyCodePointArray);
+ env->CallBooleanMethod(outAttributeKeys, addMethodId, keyCodePointArray);
env->DeleteLocalRef(keyCodePointArray);
// Output value
jintArray valueCodePointArray = env->NewIntArray(it->second.size());
env->SetIntArrayRegion(
valueCodePointArray, 0 /* start */, it->second.size(), &it->second.at(0));
- env->CallVoidMethod(outAttributeValues, addMethodId, valueCodePointArray);
+ env->CallBooleanMethod(outAttributeValues, addMethodId, valueCodePointArray);
env->DeleteLocalRef(valueCodePointArray);
}
env->DeleteLocalRef(arrayListClass);
diff --git a/native/jni/src/suggest/core/dictionary/word_property.cpp b/native/jni/src/suggest/core/dictionary/word_property.cpp
index 288e6b0..4733118 100644
--- a/native/jni/src/suggest/core/dictionary/word_property.cpp
+++ b/native/jni/src/suggest/core/dictionary/word_property.cpp
@@ -42,7 +42,7 @@
jintArray bigramWord1CodePointArray = env->NewIntArray(word1CodePoints->size());
env->SetIntArrayRegion(bigramWord1CodePointArray, 0 /* start */,
word1CodePoints->size(), &word1CodePoints->at(0));
- env->CallVoidMethod(outBigramTargets, addMethodId, bigramWord1CodePointArray);
+ env->CallBooleanMethod(outBigramTargets, addMethodId, bigramWord1CodePointArray);
env->DeleteLocalRef(bigramWord1CodePointArray);
int bigramProbabilityInfo[] = {bigramProperty->getProbability(),
@@ -51,7 +51,7 @@
jintArray bigramProbabilityInfoArray = env->NewIntArray(NELEMS(bigramProbabilityInfo));
env->SetIntArrayRegion(bigramProbabilityInfoArray, 0 /* start */,
NELEMS(bigramProbabilityInfo), bigramProbabilityInfo);
- env->CallVoidMethod(outBigramProbabilities, addMethodId, bigramProbabilityInfoArray);
+ env->CallBooleanMethod(outBigramProbabilities, addMethodId, bigramProbabilityInfoArray);
env->DeleteLocalRef(bigramProbabilityInfoArray);
}
@@ -62,11 +62,11 @@
jintArray shortcutTargetCodePointArray = env->NewIntArray(targetCodePoints->size());
env->SetIntArrayRegion(shortcutTargetCodePointArray, 0 /* start */,
targetCodePoints->size(), &targetCodePoints->at(0));
- env->CallVoidMethod(outShortcutTargets, addMethodId, shortcutTargetCodePointArray);
+ env->CallBooleanMethod(outShortcutTargets, addMethodId, shortcutTargetCodePointArray);
env->DeleteLocalRef(shortcutTargetCodePointArray);
jobject integerProbability = env->NewObject(integerClass, intToIntegerConstructorId,
mShortcuts[i].getProbability());
- env->CallVoidMethod(outShortcutProbabilities, addMethodId, integerProbability);
+ env->CallBooleanMethod(outShortcutProbabilities, addMethodId, integerProbability);
env->DeleteLocalRef(integerProbability);
}
env->DeleteLocalRef(integerClass);
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
index c81c61d..04f1198 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
@@ -76,7 +76,7 @@
}
const Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers =
Ver4DictBuffers::openVer4DictBuffers(dictPath, mmappedBuffer);
- if (!dictBuffers.get()->isValid()) {
+ if (!dictBuffers.get() || !dictBuffers.get()->isValid()) {
AKLOGE("DICT: The dictionary doesn't satisfy ver4 format requirements. path: %s",
path);
ASSERT(false);
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
index 918c02b..59dedee 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
@@ -28,9 +28,14 @@
/* static */ Ver4DictBuffers::Ver4DictBuffersPtr Ver4DictBuffers::openVer4DictBuffers(
const char *const dictPath, const MmappedBuffer::MmappedBufferPtr &headerBuffer) {
- const bool isUpdatable = headerBuffer.get() ? headerBuffer.get()->isUpdatable() : false;
+ if (!headerBuffer.get()) {
+ ASSERT(false);
+ AKLOGE("The header buffer must be valid to open ver4 dict buffers.");
+ return Ver4DictBuffersPtr(0);
+ }
// TODO: take only dictDirPath, and open both header and trie files in the constructor below
- return Ver4DictBuffersPtr(new Ver4DictBuffers(dictPath, headerBuffer, isUpdatable));
+ return Ver4DictBuffersPtr(new Ver4DictBuffers(
+ dictPath, headerBuffer, headerBuffer.get()->isUpdatable()));
}
bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
@@ -113,10 +118,11 @@
mDictBuffer(MmappedBuffer::openBuffer(dictPath,
Ver4DictConstants::TRIE_FILE_EXTENSION, isUpdatable)),
mHeaderPolicy(headerBuffer.get()->getBuffer(), FormatUtils::VERSION_4),
- mExpandableHeaderBuffer(headerBuffer.get()->getBuffer(), mHeaderPolicy.getSize(),
+ mExpandableHeaderBuffer(headerBuffer.get() ? headerBuffer.get()->getBuffer() : 0,
+ mHeaderPolicy.getSize(),
BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
- mExpandableTrieBuffer(mDictBuffer.get()->getBuffer(),
- mDictBuffer.get()->getBufferSize(),
+ mExpandableTrieBuffer(mDictBuffer.get() ? mDictBuffer.get()->getBuffer() : 0,
+ mDictBuffer.get() ? mDictBuffer.get()->getBufferSize() : 0,
BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
mTerminalPositionLookupTable(dictPath, isUpdatable),
mProbabilityDictContent(dictPath, mHeaderPolicy.hasHistoricalInfoOfWords(),
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
index a0c219e..776bb98 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
@@ -42,7 +42,7 @@
}
AK_FORCE_INLINE bool isValid() const {
- return mDictBuffer.get() != 0 && mHeaderPolicy.isValid()
+ return mHeaderBuffer.get() && mDictBuffer.get() && mHeaderPolicy.isValid()
&& mProbabilityDictContent.isValid() && mTerminalPositionLookupTable.isValid()
&& mBigramDictContent.isValid() && mShortcutDictContent.isValid();
}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 2c23d74..1c714e7 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -357,7 +357,7 @@
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages();
// Test the first prediction is displayed
- final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords();
+ final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("predictions after space", "Obama",
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
}
@@ -371,7 +371,7 @@
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages();
// Test the first prediction is displayed
- final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords();
+ final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("predictions after manual pick", "Obama",
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
}
@@ -382,7 +382,44 @@
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages();
// Test the first prediction is not displayed
- final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords();
+ final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("no prediction after period", 0, suggestedWords.size());
}
+
+ public void testPredictionsAfterRecorrection() {
+ final String PREFIX = "A ";
+ final String WORD_TO_TYPE = "Barack";
+ final String FIRST_NON_TYPED_SUGGESTION = "Barrack";
+ final int endOfPrefix = PREFIX.length();
+ final int endOfWord = endOfPrefix + WORD_TO_TYPE.length();
+ final int endOfSuggestion = endOfPrefix + FIRST_NON_TYPED_SUGGESTION.length();
+ final int indexForManualCursor = endOfPrefix + 3; // +3 because it's after "Bar" in "Barack"
+ type(PREFIX);
+ mLatinIME.onUpdateSelection(0, 0, endOfPrefix, endOfPrefix, -1, -1);
+ type(WORD_TO_TYPE);
+ pickSuggestionManually(1, FIRST_NON_TYPED_SUGGESTION);
+ mLatinIME.onUpdateSelection(endOfPrefix, endOfPrefix, endOfSuggestion, endOfSuggestion,
+ -1, -1);
+ runMessages();
+ type(" ");
+ mLatinIME.onUpdateSelection(endOfSuggestion, endOfSuggestion,
+ endOfSuggestion + 1, endOfSuggestion + 1, -1, -1);
+ sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+ runMessages();
+ // Simulate a manual cursor move
+ mInputConnection.setSelection(indexForManualCursor, indexForManualCursor);
+ mLatinIME.onUpdateSelection(endOfSuggestion + 1, endOfSuggestion + 1,
+ indexForManualCursor, indexForManualCursor, -1, -1);
+ sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+ runMessages();
+ pickSuggestionManually(0, WORD_TO_TYPE);
+ mLatinIME.onUpdateSelection(indexForManualCursor, indexForManualCursor,
+ endOfWord, endOfWord, -1, -1);
+ sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+ runMessages();
+ // Test the first prediction is displayed
+ final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
+ assertEquals("predictions after recorrection", "Obama",
+ suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
+ }
}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java
index 89021b4..e38ba72 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java
@@ -99,7 +99,7 @@
assertEquals("predictions in lang without spaces", "Barack",
mEditText.getText().toString());
// Test the first prediction is displayed
- final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords();
+ final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("predictions in lang without spaces", "Obama",
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
index a474c6a..1257ae2 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
@@ -60,7 +60,7 @@
sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages();
assertTrue("type word then type space should display punctuation strip",
- mLatinIME.isShowingPunctuationList());
+ mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
assertEquals("type word then type space then punctuation from strip twice for French",
@@ -84,7 +84,7 @@
type(WORD_TO_TYPE);
sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages();
- final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords();
+ final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("type word then type space yields predictions for French",
EXPECTED_RESULT, suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
} finally {
diff --git a/tests/src/com/android/inputmethod/latin/PunctuationTests.java b/tests/src/com/android/inputmethod/latin/PunctuationTests.java
index 556af09..c253e64 100644
--- a/tests/src/com/android/inputmethod/latin/PunctuationTests.java
+++ b/tests/src/com/android/inputmethod/latin/PunctuationTests.java
@@ -41,7 +41,7 @@
sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages();
assertTrue("type word then type space should display punctuation strip",
- mLatinIME.isShowingPunctuationList());
+ mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
assertEquals("type word then type space then punctuation from strip twice",
@@ -156,7 +156,7 @@
type(WORD_TO_TYPE);
assertEquals("auto-correction with single quote inside. ID = "
+ Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID)
- + " ; Suggestions = " + mLatinIME.getSuggestedWords(),
+ + " ; Suggestions = " + mLatinIME.getSuggestedWordsForTest(),
EXPECTED_RESULT, mEditText.getText().toString());
}
@@ -166,7 +166,7 @@
type(WORD_TO_TYPE);
assertEquals("auto-correction with single quotes around. ID = "
+ Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID)
- + " ; Suggestions = " + mLatinIME.getSuggestedWords(),
+ + " ; Suggestions = " + mLatinIME.getSuggestedWordsForTest(),
EXPECTED_RESULT, mEditText.getText().toString());
}