aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/res/values-af/strings.xml9
-rw-r--r--java/res/values-am/strings.xml9
-rw-r--r--java/res/values-ar/strings.xml7
-rw-r--r--java/res/values-bg/strings.xml7
-rw-r--r--java/res/values-ca/strings.xml12
-rw-r--r--java/res/values-cs/strings.xml14
-rw-r--r--java/res/values-da/strings.xml7
-rw-r--r--java/res/values-de/strings.xml6
-rw-r--r--java/res/values-el/strings.xml10
-rw-r--r--java/res/values-en-rGB/strings.xml10
-rw-r--r--java/res/values-es-rUS/strings.xml10
-rw-r--r--java/res/values-es/strings.xml9
-rw-r--r--java/res/values-fa/strings.xml9
-rw-r--r--java/res/values-fi/strings.xml6
-rw-r--r--java/res/values-fr/strings.xml7
-rw-r--r--java/res/values-hr/strings.xml11
-rw-r--r--java/res/values-hu/strings.xml14
-rw-r--r--java/res/values-in/strings.xml12
-rw-r--r--java/res/values-it/strings.xml9
-rw-r--r--java/res/values-iw/strings.xml10
-rw-r--r--java/res/values-ja/strings.xml9
-rw-r--r--java/res/values-ko/strings.xml10
-rw-r--r--java/res/values-lt/strings.xml11
-rw-r--r--java/res/values-lv/strings.xml7
-rw-r--r--java/res/values-ms/strings.xml9
-rw-r--r--java/res/values-nb/strings.xml7
-rw-r--r--java/res/values-nl/strings.xml10
-rw-r--r--java/res/values-pl/strings.xml10
-rw-r--r--java/res/values-pt-rPT/strings.xml6
-rw-r--r--java/res/values-pt/strings.xml12
-rw-r--r--java/res/values-rm/strings.xml6
-rw-r--r--java/res/values-ro/strings.xml7
-rw-r--r--java/res/values-ru/strings.xml16
-rw-r--r--java/res/values-sk/strings.xml10
-rw-r--r--java/res/values-sl/strings.xml11
-rw-r--r--java/res/values-sr/strings.xml7
-rw-r--r--java/res/values-sv/strings.xml7
-rw-r--r--java/res/values-sw/strings.xml9
-rw-r--r--java/res/values-th/strings.xml10
-rw-r--r--java/res/values-tl/strings.xml14
-rw-r--r--java/res/values-tr/strings.xml9
-rw-r--r--java/res/values-uk/strings.xml9
-rw-r--r--java/res/values-vi/strings.xml10
-rw-r--r--java/res/values-zh-rCN/strings.xml16
-rw-r--r--java/res/values-zh-rTW/strings.xml7
-rw-r--r--java/res/values-zu/strings.xml9
-rw-r--r--java/res/xml/method.xml4
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java14
-rw-r--r--java/src/com/android/inputmethod/keyboard/ProximityInfo.java6
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java6
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java71
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/DictAndProximity.java32
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java78
-rw-r--r--tests/res/raw/testtext.txt24
-rw-r--r--tests/src/com/android/inputmethod/latin/SuggestPerformanceTests.java134
55 files changed, 508 insertions, 297 deletions
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index cbe64062f..8d3632826 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Invoeropsies"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreer met sleuteldruk"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Klank met sleuteldruk"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Opspring by druk van sleutel"</string>
@@ -81,8 +87,7 @@
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<!-- no translation found for label_to_symbol_key (8516904117128967293) -->
<skip />
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Meer"</string>
<string name="label_pause_key" msgid="181098308428035340">"Laat wag"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Wag"</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 4d8ace549..16595d22a 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"ግቤት አማራጮች"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"በቁልፍመጫንጊዜ አንዝር"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"በቁልፍ መጫን ላይ የሚወጣ ድምፅ"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"ቁልፍ ጫን ላይ ብቅ ባይ"</string>
@@ -81,8 +87,7 @@
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<!-- no translation found for label_to_symbol_key (8516904117128967293) -->
<skip />
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"ተጨማሪ"</string>
<string name="label_pause_key" msgid="181098308428035340">"ላፍታ አቁም"</string>
<string name="label_wait_key" msgid="6402152600878093134">"ቆይ"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index 433081306..46f0c1d77 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"لوحة مفاتيح Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"إعدادات لوحة مفاتيح Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"خيارات الإرسال"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"تصحيح Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"اهتزاز عند الضغط على مفتاح"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"صوت عند الضغط على مفتاح"</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index cc958af77..f2514ecce 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Клавиатура на Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Настройки на клавиатурата на Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Опции за въвеждане"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Корекция на Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Да вибрира при натискане на клавиш"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натискане на клавиш"</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 2c9fbfbb6..6daca172e 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Teclat Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Configuració del teclat d\'Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opcions d\'entrada"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Correcció d\'Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibra en prémer tecles"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"So en prémer una tecla"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Envia"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Més"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pausa"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Espera"</string>
@@ -133,7 +137,7 @@
<string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Micro en tecl. símb."</string>
<string name="voice_input_modes_summary_off" msgid="63875609591897607">"Entr. veu desactiv."</string>
<string name="selectInputMethod" msgid="315076553378705821">"Selecciona el mètode d\'entrada"</string>
- <string name="configure_input_method" msgid="373356270290742459">"Configuració de mètodes d\'entrada"</string>
+ <string name="configure_input_method" msgid="373356270290742459">"Configura mètodes d\'entrada"</string>
<string name="language_selection_title" msgid="1651299598555326750">"Idiomes d\'entrada"</string>
<string name="select_language" msgid="2573265881207142437">"Selecciona l\'idioma d\'entrada"</string>
<string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Torna a tocar per desar"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index 38417a0d5..9cd237edd 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Klávesnice Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Nastavení klávesnice Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Možnosti zadávání textu a dat"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Opravy pravopisu Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Při stisku klávesy vibrovat"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk při stisku klávesy"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Odeslat"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Další"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pauza"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Čekat"</string>
@@ -133,7 +137,7 @@
<string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Mikr. na kláv. se symb."</string>
<string name="voice_input_modes_summary_off" msgid="63875609591897607">"Hlasový vstup vypnut"</string>
<string name="selectInputMethod" msgid="315076553378705821">"Výběr metody zadávání dat"</string>
- <string name="configure_input_method" msgid="373356270290742459">"Nakonfigurovat metody vstupu"</string>
+ <string name="configure_input_method" msgid="373356270290742459">"Konfigurace metod vstupu"</string>
<string name="language_selection_title" msgid="1651299598555326750">"Vstupní jazyky"</string>
<string name="select_language" msgid="2573265881207142437">"Výběr jazyků vstupu"</string>
<string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Dalším dotykem slovo uložíte"</string>
@@ -144,7 +148,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Klepnutím na zadaná slova tato slova opravíte, musí však být viditelné návrhy."</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Motiv klávesnice"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"němčina (QWERTY)"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"angličtina (VB)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"angličtina (Spojené království)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angličtina (USA)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Režim studie použitelnosti"</string>
</resources>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index 97dc8a0ad..85cbb85d1 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android-tastatur"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Indstillinger for Android-tastatur"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Indstillinger for input"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android-rettelse"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibration ved tastetryk"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetryk"</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index fdce3bb01..7a20f69c6 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Eingabeoptionen"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrieren b. Tastendruck"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Ton bei Tastendruck"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bei Tastendruck"</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 2629c2418..e0c503341 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Πληκτρολόγιο Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Ρυθμίσεις πληκτρολογίου Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Επιλογές εισόδου"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Διόρθωση Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Δόνηση κατά το πάτημα πλήκτρων"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Ήχος κατά το πάτημα πλήκτρων"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Αποστολή"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ΑΒΓ"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">";123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Περισσότερα"</string>
<string name="label_pause_key" msgid="181098308428035340">"Παύση"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Αναμ."</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 7a0449c27..f89c29304 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android keyboard"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android keyboard settings"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Input options"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android correction"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on key-press"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sound on key-press"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Send"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"More"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pause"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Wait"</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index 4eacee950..87a15a145 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Teclado de Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Configuración de teclado de Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opciones de entrada"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Corrector de Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar teclas"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sonar al pulsar las teclas"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Enviar"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Más"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pausa"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Espera"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index aae38ca8d..c3b97c78c 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Opciones introducción texto"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar tecla"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sonido al pulsar tecla"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Popup al pulsar tecla"</string>
@@ -64,8 +70,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Enviar"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Más"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pausa"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Espera"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index bacc180a1..5a085d878 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"صفحه کلید Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"تنظیمات صفحه کلید Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"گزینه های ورودی"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"تصحیح Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"لرزش با فشار کلید"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"صدا با فشار کلید"</string>
@@ -144,7 +149,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"فقط هنگامی که پیشنهادات قابل مشاهده هستند، برای تصحیح کلمات وارد شده آنها را لمس کنید"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"طرح زمینه صفحه کلید"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"آلمانی QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"انگیسی (انگلستان)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"انگیسی (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"انگیسی (US)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"حالت بررسی قابلیت استفاده"</string>
</resources>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 1b45be745..88a8ea093 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Syöttövalinnat"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Käytä värinää näppäimiä painettaessa"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Toista ääni näppäimiä painettaessa"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ponnahdusikkuna painalluksella"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index e658da024..c35c9bb17 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Clavier Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Paramètres du clavier Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Options de saisie"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Correcteur Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 55d4b145c..4d27d2c9a 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android tipkovnica"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Postavke tipkovnice za Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opcije ulaza"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Ispravak za Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibracija pri pritisku na tipku"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri pritisku tipke"</string>
@@ -144,7 +149,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Dodirnite unesene riječi da biste ih ispravili samo kada su prijedlozi vidljivi"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"njemački QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"engleski (Velika Britanija)"</string>
- <string name="subtype_en_US" msgid="6160452336634534239">"engleski (SAD)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"Engleski (UK)"</string>
+ <string name="subtype_en_US" msgid="6160452336634534239">"Engleski (SAD)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Način studije upotrebljivosti"</string>
</resources>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index d682b82ec..afae17d91 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android-billentyűzet"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android billentyűzetbeállítások"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Beviteli beállítások"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android korrekció"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Rezgés billentyű megnyomása esetén"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Hangjelzés billentyű megnyomása esetén"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Küldés"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Egyebek"</string>
<string name="label_pause_key" msgid="181098308428035340">"Szün."</string>
<string name="label_wait_key" msgid="6402152600878093134">"Vár"</string>
@@ -144,7 +148,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"A beírt szavakat csak akkor javíthatja ki megérintve, ha látszanak javaslatok"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Billentyűzettéma"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"Német QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"angol (brit)"</string>
- <string name="subtype_en_US" msgid="6160452336634534239">"angol (amerikai)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"angol (Egyesült Királyság)"</string>
+ <string name="subtype_en_US" msgid="6160452336634534239">"angol (Egyesült Államok)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Használhatósági teszt"</string>
</resources>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index d8bb604d4..f3506863f 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Keyboard Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Setelan keyboard Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opsi masukan"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Koreksi android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar jika tombol ditekan"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Berbunyi jika tombol ditekan"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Kirimkan"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Lainnya"</string>
<string name="label_pause_key" msgid="181098308428035340">"Jeda"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Tunggu"</string>
@@ -144,7 +148,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Sentuh kata yang dimasukkan untuk memperbaikinya, hanya saat saran dapat dilihat"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema keyboard"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"QWERTY Jerman"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"Inggris (UK)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"Inggris (Inggris)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inggris (AS)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modus studi daya guna"</string>
</resources>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index d122f5087..f67c3e474 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -24,6 +24,12 @@
<string name="english_ime_settings" msgid="6661589557206947774">"Impostazioni tastiera Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opzioni inserimento"</string>
<string name="spell_checker_service_name" msgid="2003013122022285508">"Correzione Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrazione tasti"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Suono tasti"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Popup sui tasti"</string>
@@ -63,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Invia"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Altro"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pausa"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Attesa"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index b49091335..31632e9b0 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"מקלדת Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"הגדרות מקלדת של Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"אפשרויות קלט"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"תיקון Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"רטט עם לחיצה על מקשים"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"צלילים עם לחיצה על מקשים"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"שלח"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"אבג"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"עוד"</string>
<string name="label_pause_key" msgid="181098308428035340">"השהה"</string>
<string name="label_wait_key" msgid="6402152600878093134">"המתן"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 8ac407a06..08b572203 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Androidキーボード"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Androidキーボードの設定"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"入力オプション"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android校正"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"キー操作バイブ"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"キー操作音"</string>
@@ -133,7 +138,7 @@
<string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"記号キーボードのマイク"</string>
<string name="voice_input_modes_summary_off" msgid="63875609591897607">"音声入力は無効です"</string>
<string name="selectInputMethod" msgid="315076553378705821">"入力方法の選択"</string>
- <string name="configure_input_method" msgid="373356270290742459">"入力方法の設定"</string>
+ <string name="configure_input_method" msgid="373356270290742459">"入力方法を設定"</string>
<string name="language_selection_title" msgid="1651299598555326750">"入力言語"</string>
<string name="select_language" msgid="2573265881207142437">"入力言語の選択"</string>
<string name="hint_add_to_dictionary" msgid="9006292060636342317">"←保存するにはもう一度タップ"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index c9000d18a..83cf906c8 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android 키보드"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android 키보드 설정"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"입력 옵션"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android 수정"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"키를 누를 때 진동 발생"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"키를 누를 때 소리 발생"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"전송"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"더보기"</string>
<string name="label_pause_key" msgid="181098308428035340">"일시 중지"</string>
<string name="label_wait_key" msgid="6402152600878093134">"대기"</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index 4113ef32c..24073f766 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"„Android“ klaviatūra"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"„Android“ klaviatūros nustatymai"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Įvesties parinktys"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"„Android“ korekcijos"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibruoti, kai paspaudžiami klavišai"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Klavišo paspaudimo garsas"</string>
@@ -143,8 +148,8 @@
<string name="prefs_enable_recorrection" msgid="4588408906649533582">"Jei norite ištais. žodž., paliesk."</string>
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Jei norite ištaisyti įvestus žodžius, palieskite juos tik tada, kai matomi pasiūlymai"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatūros tema"</string>
- <string name="subtype_de_qwerty" msgid="3358900499589259491">"QWERTY klaviatūra vokiečių k."</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"Anglų k. (JK)"</string>
+ <string name="subtype_de_qwerty" msgid="3358900499589259491">"Vokiška QWERTY klaviatūra"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"Anglų (JK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglų k. (JAV)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tinkamumo tyrimo režimas"</string>
</resources>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index e5da1dc4e..2ec111a35 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android tastatūra"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android tastatūras iestatījumi"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Ievades opcijas"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android korekcija"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrēt, nospiežot taustiņu"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Skaņa, nospiežot taustiņu"</string>
diff --git a/java/res/values-ms/strings.xml b/java/res/values-ms/strings.xml
index 63fd65596..eef6ef2e2 100644
--- a/java/res/values-ms/strings.xml
+++ b/java/res/values-ms/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Papan kekunci Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Tetapan papan kekunci Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Pilihan input"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Pembetulan Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar pada tekanan kekunci"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Bunyi pada tekanan kekunci"</string>
@@ -134,7 +139,7 @@
<string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Mik. pd kekunci smbl"</string>
<string name="voice_input_modes_summary_off" msgid="63875609591897607">"Input suara dilmphkn"</string>
<string name="selectInputMethod" msgid="315076553378705821">"Pilih kaedah input"</string>
- <string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan kaedah masukan"</string>
+ <string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan kaedah input"</string>
<string name="language_selection_title" msgid="1651299598555326750">"Bahasa input"</string>
<string name="select_language" msgid="2573265881207142437">"Pilih bahasa input"</string>
<string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Sentuh sekali lagi untuk menyimpan"</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index e86582289..62140d3e8 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Skjermtastatur"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Innstillinger for skjermtastatur"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Inndataalternativer"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android-stavekontroll"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer ved tastetrykk"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetrykk"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index ebb1c062e..26e138d55 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android-toetsenbord"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Instellingen voor Android-toetsenbord"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Invoeropties"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android-spellingcontrole"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Trillen bij toetsaanslag"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Geluid bij toetsaanslag"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Verzenden"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Meer"</string>
<string name="label_pause_key" msgid="181098308428035340">"Onderbr."</string>
<string name="label_wait_key" msgid="6402152600878093134">"Wacht"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index 1cf14166f..72687b58d 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Klawiatura Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Ustawienia klawiatury Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opcje wprowadzania"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Korekta Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Wibracja przy naciśnięciu"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Dźwięk przy naciśnięciu"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Wyślij"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Więcej"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pauza"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Czekaj"</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index 22c99f22b..7d1b6d0fa 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Opções de introdução"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao primir as teclas"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Som ao premir as teclas"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Mostrar popup ao premir tecla"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index 167ae0e0c..793c78fd4 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Teclado Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Configurações de teclado Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opções de entrada"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Correção do Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar a tecla"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Som ao tocar a tecla"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Enviar"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Mais"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pausa"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Esp."</string>
@@ -143,7 +147,7 @@
<string name="prefs_enable_recorrection" msgid="4588408906649533582">"Tocar para corrigir"</string>
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Toque nas palavras digitadas para corrigi-las apenas quando as sugestões estiverem visíveis"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
- <string name="subtype_de_qwerty" msgid="3358900499589259491">"Alemão QWERTY"</string>
+ <string name="subtype_de_qwerty" msgid="3358900499589259491">"QWERTY alemão"</string>
<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="prefs_usability_study_mode" msgid="1261130555134595254">"Modo de estudo de utilização"</string>
diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml
index 359dc7a12..9901b9f66 100644
--- a/java/res/values-rm/strings.xml
+++ b/java/res/values-rm/strings.xml
@@ -26,6 +26,12 @@
<skip />
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar cun smatgar in buttun"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Tun cun smatgar in buttun"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up cun smatgar ina tasta"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index c317cfd1d..1dd083e55 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Tastatură Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Setările tastaturii Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Opţiuni de introducere text"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Corecţie Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrare la apăsarea tastei"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sunet la apăsarea tastei"</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index 68d1ee28e..64c2aa60b 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Клавиатура Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Настройки клавиатуры Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Параметры ввода"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Исправления Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Виброотклик клавиш"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук клавиш"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Отправить"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"АБВ"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Ещё"</string>
<string name="label_pause_key" msgid="181098308428035340">"Приостановить"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Подождите"</string>
@@ -133,7 +137,7 @@
<string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Значок на клавиатуре символов"</string>
<string name="voice_input_modes_summary_off" msgid="63875609591897607">"Голосовой ввод откл."</string>
<string name="selectInputMethod" msgid="315076553378705821">"Выбрать способ ввода"</string>
- <string name="configure_input_method" msgid="373356270290742459">"Настройка раскладки клавиатуры"</string>
+ <string name="configure_input_method" msgid="373356270290742459">"Настройка способов ввода"</string>
<string name="language_selection_title" msgid="1651299598555326750">"Языки ввода"</string>
<string name="select_language" msgid="2573265881207142437">"Выберите языки ввода"</string>
<string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Нажмите еще раз, чтобы сохранить"</string>
@@ -144,7 +148,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Нажмите на слово, чтобы исправить его (при наличии подсказок)"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Тема клавиатуры"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"Немецкая клавиатура QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"английский (Великобритания)"</string>
- <string name="subtype_en_US" msgid="6160452336634534239">"английский (США)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"Английский (Великобритания)"</string>
+ <string name="subtype_en_US" msgid="6160452336634534239">"Английский (США)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Режим проверки удобства использования"</string>
</resources>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index a8c57008f..3e7ed1475 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Klávesnica Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Nastavenia klávesnice Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Možnosti zadávania textu a údajov"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Opravy pravopisu Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Pri stlačení klávesu vibrovať"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri stlačení klávesu"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Odoslať"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Viac"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pozastaviť"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Čakajte"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index 19bf04c8a..84498ad19 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Tipkovnica Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Nastavitve tipkovnice Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Možnosti vnosa"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Popravek za Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibriranje ob pritisku tipke"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvok ob pritisku tipke"</string>
@@ -144,7 +149,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Dotaknite se vnesenih besed in jih popravite, samo ko so predlogi vidni"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"Nemška QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"angl. (bri.)"</string>
- <string name="subtype_en_US" msgid="6160452336634534239">"angl. (ZDA)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"angleščina (Združeno kraljestvo)"</string>
+ <string name="subtype_en_US" msgid="6160452336634534239">"angleščina (ZDA)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Način za preučevanje uporabnosti"</string>
</resources>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index 46daea90e..d465aaedc 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android тастатура"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Подешавања Android тастатуре"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Опције уноса"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android исправљање"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирај на притисак тастера"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притисак тастера"</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 2c8bc7318..61a7f1362 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Androids tangentbord"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Inställningar för Androids tangentbord"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Inmatningsalternativ"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android-korrigering"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrera vid tangenttryck"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Knappljud"</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index a916535b0..9c677d177 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Chaguo za uingizaji"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Tetema unabofya kitufe"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Toa sauti unapobofya kitufe"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ibuka kitufe kinapobonyezwa"</string>
@@ -81,8 +87,7 @@
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<!-- no translation found for label_to_symbol_key (8516904117128967293) -->
<skip />
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Zaidi"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pumzisha"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Subiri"</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 780ff024a..c53ed2e65 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"แป้นพิมพ์ Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"การตั้งค่าแป้นพิมพ์ Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"ตัวเลือกการป้อนข้อมูล"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"การแก้ไขของ Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"สั่นเมื่อกดปุ่ม"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"ส่งเสียงเมื่อกดปุ่ม"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"ส่ง"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"เพิ่มเติม"</string>
<string name="label_pause_key" msgid="181098308428035340">"หยุดชั่วคราว"</string>
<string name="label_wait_key" msgid="6402152600878093134">"รอ"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index b0806bed3..447baef79 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android keyboard"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Mga setting ng Android keyboard"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Mga pagpipilian sa input"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Pagwawasto sa Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Mag-vibrate sa keypress"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Tunog sa keypress"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Ipadala"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Higit pa"</string>
<string name="label_pause_key" msgid="181098308428035340">"Pause"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Intay"</string>
@@ -143,8 +147,8 @@
<string name="prefs_enable_recorrection" msgid="4588408906649533582">"Pindutin upang itama ang mga salita"</string>
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Pindutin ang mga inilagay na salita upang iwasto ang mga ito, kapag nakikita lang ang mga suhestiyon"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema ng keyboard"</string>
- <string name="subtype_de_qwerty" msgid="3358900499589259491">"German QWERTY"</string>
+ <string name="subtype_de_qwerty" msgid="3358900499589259491">"German na QWERTY"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Ingles (UK)"</string>
- <string name="subtype_en_US" msgid="6160452336634534239">"Ingles (US)"</string>
+ <string name="subtype_en_US" msgid="6160452336634534239">"Ingles (Estados Unidos)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Study mode ng pagiging kapaki-pakinabang"</string>
</resources>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 103f01618..91db66e3c 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android klavyesi"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android klavye ayarları"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Giriş seçenekleri"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android düzeltme"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Tuşa basıldığında titret"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Tuşa basıldığında ses çıkar"</string>
@@ -144,7 +149,7 @@
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Yalnızca öneriler görünür olduğunda, düzeltmek için girilen kelimelere dokunun"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klavye teması"</string>
<string name="subtype_de_qwerty" msgid="3358900499589259491">"Almanca QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (İngiltere)"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (BK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"İngilizce (ABD)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Kullanılabilirlik çalışması modu"</string>
</resources>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index cca56b842..3e55f469e 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Клавіатура Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Налашт-ня клавіат. Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Парам. введення"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Виправлення Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Вібр при натиску клав."</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натиску клав."</string>
@@ -133,7 +138,7 @@
<string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Miкр. на симв. клавіат."</string>
<string name="voice_input_modes_summary_off" msgid="63875609591897607">"Голос. ввід вимкнено"</string>
<string name="selectInputMethod" msgid="315076553378705821">"Вибрати метод введення"</string>
- <string name="configure_input_method" msgid="373356270290742459">"Налаштувати методи введення"</string>
+ <string name="configure_input_method" msgid="373356270290742459">"Налаштування методів введення"</string>
<string name="language_selection_title" msgid="1651299598555326750">"Мови вводу"</string>
<string name="select_language" msgid="2573265881207142437">"Вибрати мову введення"</string>
<string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Торкн. ще, щоб збер."</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index e7c684d2d..caf9d579e 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Bàn phím Android"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Cài đặt bàn phím Android"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"Tùy chọn nhập"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Dịch vụ sửa chính tả của Android"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Rung khi nhấn phím"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Âm thanh khi nhấn phím"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"Gửi"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Khác"</string>
<string name="label_pause_key" msgid="181098308428035340">"Tạm dừng"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Đợi"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 189c17420..cdbd64dd1 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android 键盘"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android 键盘设置"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"输入选项"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android 更正"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"按键时振动"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"按键时播放音效"</string>
@@ -64,8 +69,7 @@
<string name="label_send_key" msgid="2815056534433717444">"发送"</string>
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<string name="label_to_symbol_key" msgid="8516904117128967293">"?123"</string>
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"更多"</string>
<string name="label_pause_key" msgid="181098308428035340">"暂停"</string>
<string name="label_wait_key" msgid="6402152600878093134">"等待"</string>
@@ -143,8 +147,8 @@
<string name="prefs_enable_recorrection" msgid="4588408906649533582">"触摸以更正字词"</string>
<string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"仅在系统显示建议后,才触摸输入的字词进行更正"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"键盘主题"</string>
- <string name="subtype_de_qwerty" msgid="3358900499589259491">"德语 QWERTY"</string>
- <string name="subtype_en_GB" msgid="88170601942311355">"英语(英式)"</string>
- <string name="subtype_en_US" msgid="6160452336634534239">"英语(美式)"</string>
+ <string name="subtype_de_qwerty" msgid="3358900499589259491">"德语 QWERTY 键盘"</string>
+ <string name="subtype_en_GB" msgid="88170601942311355">"英语(英国)"</string>
+ <string name="subtype_en_US" msgid="6160452336634534239">"英语(美国)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"可用性研究模式"</string>
</resources>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index aa65cdd82..fcf5118b7 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -23,7 +23,12 @@
<string name="english_ime_name" msgid="7252517407088836577">"Android 鍵盤"</string>
<string name="english_ime_settings" msgid="6661589557206947774">"Android 鍵盤設定"</string>
<string name="english_ime_input_options" msgid="3909945612939668554">"輸入選項"</string>
- <!-- no translation found for spell_checker_service_name (2003013122022285508) -->
+ <string name="spell_checker_service_name" msgid="2003013122022285508">"Android 修正"</string>
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
<skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"按鍵時播放音效"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 4929c12ec..b4688fd93 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -25,6 +25,12 @@
<string name="english_ime_input_options" msgid="3909945612939668554">"Okukhethwa kukho kokungenayo"</string>
<!-- no translation found for spell_checker_service_name (2003013122022285508) -->
<skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_title (7469233942295924620) -->
+ <skip />
+ <!-- no translation found for use_proximity_option_summary (2857708859847261945) -->
+ <skip />
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Dlidlizelisa ngokucindezela inkinobho"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Umsindo wokucindezela ukhiye"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ugaxekile ngokucindezela ukhiye"</string>
@@ -81,8 +87,7 @@
<string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string>
<!-- no translation found for label_to_symbol_key (8516904117128967293) -->
<skip />
- <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
- <skip />
+ <string name="label_to_symbol_with_microphone_key" msgid="9035925553010061906">"123"</string>
<string name="label_more_key" msgid="3760239494604948502">"Okungaphezulu"</string>
<string name="label_pause_key" msgid="181098308428035340">"Misa okwesikhashana"</string>
<string name="label_wait_key" msgid="6402152600878093134">"Linda"</string>
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index fbbc7fbce..0bf560d5a 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -20,10 +20,8 @@
<!-- The attributes in this XML file provide configuration information -->
<!-- for the Input Method Manager. -->
-<!-- Keyboard: en_US, en_GB, ar, cs, da, de, es, es_US, fi, fr, fr_CA, fr_CH, hr, hu, it, iw, nb, nl, pl, pt, ru, sr, sv, tr -->
-<!-- Voice: af, cs, da, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, tr, yue, zh, zu -->
+<!-- Keyboard: en_US, en_GB, ar, cs, da, de, de_ZZ, es, es_US, fi, fr, fr_CA, fr_CH, hr, hu, it, iw, nb, nl, pl, pt, ru, sr, sv, tr -->
<!-- TODO: use <lang>_keyboard icon instead of a common keyboard icon. -->
-<!-- TODO: use <lang>_mic icon instead of a common mic icon. -->
<!-- If IME doesn't have an applicable subtype, the first subtype will be used as a default
subtype.-->
<input-method xmlns:android="http://schemas.android.com/apk/res/android"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 2df2994f6..bc021a690 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -83,6 +83,11 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// HORIZONTAL ELLIPSIS "...", character for popup hint.
private static final String POPUP_HINT_CHAR = "\u2026";
+ // Margin between the label and the icon on a key that has both of them.
+ // Specified by the fraction of the key width.
+ // TODO: Use resource parameter for this value.
+ private static final float LABEL_ICON_MARGIN = 0.05f;
+
// Main keyboard
private Keyboard mKeyboard;
private final KeyDrawParams mKeyDrawParams;
@@ -538,11 +543,13 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
positionX = centerX - labelCharWidth * 7 / 4;
paint.setTextAlign(Align.LEFT);
} else if (key.hasLabelWithIconLeft() && icon != null) {
- labelWidth = getLabelWidth(label, paint) + icon.getIntrinsicWidth();
+ labelWidth = getLabelWidth(label, paint) + icon.getIntrinsicWidth()
+ + (int)(LABEL_ICON_MARGIN * keyWidth);
positionX = centerX + labelWidth / 2;
paint.setTextAlign(Align.RIGHT);
} else if (key.hasLabelWithIconRight() && icon != null) {
- labelWidth = getLabelWidth(label, paint) + icon.getIntrinsicWidth();
+ labelWidth = getLabelWidth(label, paint) + icon.getIntrinsicWidth()
+ + (int)(LABEL_ICON_MARGIN * keyWidth);
positionX = centerX - labelWidth / 2;
paint.setTextAlign(Align.LEFT);
} else {
@@ -734,7 +741,8 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
canvas.translate(-x, -y);
}
- private static void drawHorizontalLine(Canvas canvas, float y, float w, int color, Paint paint) {
+ private static void drawHorizontalLine(Canvas canvas, float y, float w, int color,
+ Paint paint) {
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1.0f);
paint.setColor(color);
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
index 5e73d6300..7190b051d 100644
--- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
+++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
@@ -56,12 +56,12 @@ public class ProximityInfo {
computeNearestNeighbors(keyWidth, keys);
}
- public static ProximityInfo getDummyProximityInfo() {
+ public static ProximityInfo createDummyProximityInfo() {
return new ProximityInfo(1, 1, 1, 1, 1, Collections.<Key>emptyList());
}
- public static ProximityInfo getSpellCheckerProximityInfo() {
- final ProximityInfo spellCheckerProximityInfo = getDummyProximityInfo();
+ public static ProximityInfo createSpellCheckerProximityInfo() {
+ final ProximityInfo spellCheckerProximityInfo = createDummyProximityInfo();
spellCheckerProximityInfo.mNativeProximityInfo =
spellCheckerProximityInfo.setProximityInfoNative(
SpellCheckerProximityInfo.ROW_SIZE,
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index de04ecd6c..f599def36 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -132,6 +132,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
private int mCurrentY = 0;
private Row mCurrentRow = null;
private boolean mLeftEdge;
+ private boolean mTopEdge;
private Key mRightEdgeKey = null;
private final KeyStyles mKeyStyles = new KeyStyles();
@@ -650,6 +651,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
private void startKeyboard() {
mCurrentY += mParams.mTopPadding;
+ mTopEdge = true;
}
private void startRow(Row row) {
@@ -670,6 +672,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
setSpacer(mCurrentX, mParams.mHorizontalEdgesPadding);
mCurrentY += mCurrentRow.mRowHeight;
mCurrentRow = null;
+ mTopEdge = false;
}
private void endKey(Key key) {
@@ -678,6 +681,9 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
key.addEdgeFlags(Keyboard.EDGE_LEFT);
mLeftEdge = false;
}
+ if (mTopEdge) {
+ key.addEdgeFlags(Keyboard.EDGE_TOP);
+ }
mRightEdgeKey = key;
}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 44e999572..649774d78 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -16,9 +16,11 @@
package com.android.inputmethod.latin.spellcheck;
+import android.content.Intent;
import android.content.res.Resources;
import android.service.textservice.SpellCheckerService;
import android.service.textservice.SpellCheckerService.Session;
+import android.util.Log;
import android.view.textservice.SuggestionsInfo;
import android.view.textservice.TextInfo;
@@ -34,8 +36,6 @@ import com.android.inputmethod.latin.WordComposer;
import java.util.Arrays;
import java.util.Collections;
-import java.util.List;
-import java.util.LinkedList;
import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
@@ -45,12 +45,12 @@ import java.util.TreeMap;
*/
public class AndroidSpellCheckerService extends SpellCheckerService {
private static final String TAG = AndroidSpellCheckerService.class.getSimpleName();
- private static final boolean DBG = true;
+ private static final boolean DBG = false;
+ private static final int POOL_SIZE = 2;
private final static String[] emptyArray = new String[0];
- private final ProximityInfo mProximityInfo = ProximityInfo.getSpellCheckerProximityInfo();
- private final Map<String, Dictionary> mDictionaries =
- Collections.synchronizedMap(new TreeMap<String, Dictionary>());
+ private Map<String, DictionaryPool> mDictionaryPools =
+ Collections.synchronizedMap(new TreeMap<String, DictionaryPool>());
@Override
public Session createSession() {
@@ -105,35 +105,53 @@ public class AndroidSpellCheckerService extends SpellCheckerService {
}
}
- private Dictionary getDictionary(final String locale) {
- Dictionary dictionary = mDictionaries.get(locale);
- if (null == dictionary) {
- final Resources resources = getResources();
- final int fallbackResourceId = Utils.getMainDictionaryResourceId(resources);
+ @Override
+ public boolean onUnbind(final Intent intent) {
+ final Map<String, DictionaryPool> oldPools = mDictionaryPools;
+ mDictionaryPools = Collections.synchronizedMap(new TreeMap<String, DictionaryPool>());
+ for (DictionaryPool pool : oldPools.values()) {
+ pool.close();
+ }
+ return false;
+ }
+
+ private DictionaryPool getDictionaryPool(final String locale) {
+ DictionaryPool pool = mDictionaryPools.get(locale);
+ if (null == pool) {
final Locale localeObject = Utils.constructLocaleFromString(locale);
- dictionary = DictionaryFactory.createDictionaryFromManager(this, localeObject,
- fallbackResourceId);
- mDictionaries.put(locale, dictionary);
+ pool = new DictionaryPool(POOL_SIZE, this, localeObject);
+ mDictionaryPools.put(locale, pool);
}
- return dictionary;
+ return pool;
+ }
+
+ public DictAndProximity createDictAndProximity(final Locale locale) {
+ final ProximityInfo proximityInfo = ProximityInfo.createSpellCheckerProximityInfo();
+ final Resources resources = getResources();
+ final int fallbackResourceId = Utils.getMainDictionaryResourceId(resources);
+ final Dictionary dictionary =
+ DictionaryFactory.createDictionaryFromManager(this, locale, fallbackResourceId);
+ return new DictAndProximity(dictionary, proximityInfo);
}
private class AndroidSpellCheckerSession extends Session {
+ // Immutable, but need the locale which is not available in the constructor yet
+ DictionaryPool mDictionaryPool;
+
@Override
public void onCreate() {
+ mDictionaryPool = getDictionaryPool(getLocale());
}
// Note : this must be reentrant
/**
* Gets a list of suggestions for a specific string. This returns a list of possible
- * corrections for the text passed as an arguments. It may split or group words, and
+ * corrections for the text passed as an argument. It may split or group words, and
* even perform grammatical analysis.
*/
@Override
public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
final int suggestionsLimit) {
- final String locale = getLocale();
- final Dictionary dictionary = getDictionary(locale);
final String text = textInfo.getText();
final SuggestionsGatherer suggestionsGatherer =
@@ -153,8 +171,21 @@ public class AndroidSpellCheckerService extends SpellCheckerService {
composer.add(character, proximities,
WordComposer.NOT_A_COORDINATE, WordComposer.NOT_A_COORDINATE);
}
- dictionary.getWords(composer, suggestionsGatherer, mProximityInfo);
- final boolean isInDict = dictionary.isValidWord(text);
+
+ boolean isInDict = true;
+ try {
+ final DictAndProximity dictInfo = mDictionaryPool.take();
+ dictInfo.mDictionary.getWords(composer, suggestionsGatherer,
+ dictInfo.mProximityInfo);
+ isInDict = dictInfo.mDictionary.isValidWord(text);
+ if (!mDictionaryPool.offer(dictInfo)) {
+ Log.e(TAG, "Can't re-insert a dictionary into its pool");
+ }
+ } catch (InterruptedException e) {
+ // I don't think this can happen.
+ return new SuggestionsInfo(0, new String[0]);
+ }
+
final String[] suggestions = suggestionsGatherer.getGatheredSuggestions();
final int flags =
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/DictAndProximity.java b/java/src/com/android/inputmethod/latin/spellcheck/DictAndProximity.java
new file mode 100644
index 000000000..3dbbd40cd
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/spellcheck/DictAndProximity.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin.spellcheck;
+
+import com.android.inputmethod.latin.Dictionary;
+import com.android.inputmethod.keyboard.ProximityInfo;
+
+/**
+ * A simple container for both a Dictionary and a ProximityInfo.
+ */
+public class DictAndProximity {
+ public final Dictionary mDictionary;
+ public final ProximityInfo mProximityInfo;
+ public DictAndProximity(final Dictionary dictionary, final ProximityInfo proximityInfo) {
+ mDictionary = dictionary;
+ mProximityInfo = proximityInfo;
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
new file mode 100644
index 000000000..ee294f6b0
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin.spellcheck;
+
+import android.content.Context;
+
+import java.util.Locale;
+import java.util.concurrent.LinkedBlockingQueue;
+
+/**
+ * A blocking queue that creates dictionaries up to a certain limit as necessary.
+ */
+public class DictionaryPool extends LinkedBlockingQueue<DictAndProximity> {
+ private final AndroidSpellCheckerService mService;
+ private final int mMaxSize;
+ private final Locale mLocale;
+ private int mSize;
+ private volatile boolean mClosed;
+
+ public DictionaryPool(final int maxSize, final AndroidSpellCheckerService service,
+ final Locale locale) {
+ super();
+ mMaxSize = maxSize;
+ mService = service;
+ mLocale = locale;
+ mSize = 0;
+ mClosed = false;
+ }
+
+ @Override
+ public DictAndProximity take() throws InterruptedException {
+ final DictAndProximity dict = poll();
+ if (null != dict) return dict;
+ synchronized(this) {
+ if (mSize >= mMaxSize) {
+ // Our pool is already full. Wait until some dictionary is ready.
+ return super.take();
+ } else {
+ ++mSize;
+ return mService.createDictAndProximity(mLocale);
+ }
+ }
+ }
+
+ public void close() {
+ synchronized(this) {
+ mClosed = true;
+ for (DictAndProximity dict : this) {
+ dict.mDictionary.close();
+ }
+ clear();
+ }
+ }
+
+ @Override
+ public boolean offer(final DictAndProximity dict) {
+ if (mClosed) {
+ dict.mDictionary.close();
+ return false;
+ } else {
+ return super.offer(dict);
+ }
+ }
+}
diff --git a/tests/res/raw/testtext.txt b/tests/res/raw/testtext.txt
deleted file mode 100644
index eca20c05f..000000000
--- a/tests/res/raw/testtext.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-This text is used as test text for measuring performance of dictionary prediction. Any text can be put into this file to test the performance (total keystroke savings).
-When you think about “information,” what probably comes to mind are streams of words and numbers. Google’s pretty good at organizing these types of information, but consider all the things you can’t express with words: what does it look like in the middle of a sandstorm? What are some great examples of Art Nouveau architecture? Should I consider wedding cupcakes instead of a traditional cake?
-This is why we built Google Images in 2001. We realized that for many searches, the best answer wasn’t text—it was an image or a set of images. The service has grown quite a bit since then. In 2001, we indexed around 250 million images. By 2005, we had indexed over 1 billion. And today, we have an index of over 10 billion images.
-It’s not just about quantity, though. Over the past decade we’ve been baking deep computer science into Google Images to make it even faster and easier for you to find precisely the right images. We not only find images for pretty much anything you type in; we can also instantly pull out images of clip art, line drawings, faces and even colors.
-There’s even more sophisticated computer vision technology powering our “Similar images” tool. For example, did you know there are nine subspecies of leopards, each with a distinct pattern of spots? Google Images can recognize the difference, returning just leopards of a particular subspecies. It can tell you the name of the subspecies in a particular image—even if that image isn’t labeled—because other similar leopard images on the web are labeled with that subspecies’s name.
-And our “Similar colors” refinement doesn’t just return images based on the overall color of an image. If it did, lots of images would simply be classified as “white.” If you’re looking for [tulips] and you refine results to “white,” you really want images in which the tulips themselves are white—not the surrounding image. It takes some heavy-duty algorithmic wizardry and processing power for a search engine to understand what the items of interest are in all the images out there.
-Those are just a few of the technologies we’ve built to make Google Images more useful. Meanwhile, the quantity and variety of images on the web has ballooned since 2001, and images have become one of the most popular types of content people search for. So over the next few days we’re rolling out an update to Google Images to match the scope and beauty of this fast-growing visual web, and to bring to the surface some of the powerful technology behind Images.
-Here’s what’s new in this refreshed design of Google Images:
-Dense tiled layout designed to make it easy to look at lots of images at once. We want to get the app out of the way so you can find what you’re really looking for.
-Instant scrolling between pages, without letting you get lost in the images. You can now get up to 1,000 images, all in one scrolling page. And we’ll show small, unobtrusive page numbers so you don’t lose track of where you are.
-Larger thumbnail previews on the results page, designed for modern browsers and high-res screens.
-A hover pane that appears when you mouse over a given thumbnail image, giving you a larger preview, more info about the image and other image-specific features such as “Similar images.”
-Once you click on an image, you’re taken to a new landing page that displays a large image in context, with the website it’s hosted on visible right behind it. Click anywhere outside the image, and you’re right in the original page where you can learn more about the source and context.
-Optimized keyboard navigation for faster scrolling through many pages, taking advantage of standard web keyboard shortcuts such as Page Up / Page Down. It’s all about getting you to the info you need quickly, so you can get on with actually building that treehouse or buying those flowers.
-Apple's not really ready to say it's sorry about the iPhone 4 antenna design, but it is willing to give all you darn squeaky wheels free cases for your trouble. Since Apple can't build its own Bumpers fast enough, it will give you a few options and let you decide, then send it your way for free as long as you purchased the phone before September 30th. Not good enough for you? Well, if you already bought a bumper from Apple you'll get a refund, and you can also return your phone for a full refund within 30 days as long as it's unharmed.
-This solution comes at the end of 22 days of Apple engineers "working their butts off," according to Steve, with "physics" ultimately being pinned as the main culprit. Apple claims you can replicate the left-handed "death grip" bar-dropping problem on the BlackBerry Bold 9700, HTC Droid Eris, and Samsung Omnia II, and that "phones aren't perfect." Steve also claims that only 0.55% of people who bought the iPhone 4 have called into AppleCare to complain about the antenna, and the phone has a 1.7% return rate at AT&T, compared to 6% with the 3GS, though he would cop to a slight increase in dropped calls over the iPhone 3GS. For this Steve has what he confesses to be a pet theory: that 3GS users were using the case they had from the 3G, and therefore weren't met with the horrible reality of a naked, call dropping handset. Hence the free case solution, which will probably satisfy some, infuriate others, and never even blip onto the radar of many of the massive horde of consumers that's devoured this product in unprecedented numbers.
-Update: Our own Richard Lai just waltzed down to the Regent Street Apple Store in London with his iPhone Bumper receipt in hand. A few minutes later he left with cold, hard cash, and kept the Bumper to boot. Seems as if the refund effort is a go, at least over in the UK.
-Update 2: We've heard from several tipsters saying Apple no longer does Bumper refunds at its stores; customers will now have to make an online claim instead. Looks like we got super lucky.
-If you have ever received an instant message, text message, or any text-based chat message that seemed to be written in a foreign language, this Webopedia Quick Reference will help you decipher the text chat lingo by providing the definitions to more than 1,300 chat, text message, and Twitter abbreviations.
-With the popularity and rise in real-time text-based communications, such as Facebook, Twitter, instant messaging, e-mail, Internet and online gaming services, chat rooms, discussion boards and mobile phone text messaging (SMS), came the emergence of a new language tailored to the immediacy and compactness of these new communication media.
-While it does seem incredible that there are so many chat abbreviations, remember that different chat abbreviations are used by different groups of people when communicating online. Some of the following chat abbreviations may be familiar to you, while others may be foreign because they are used by a group of people with different online interests and hobbies than your own. For example, people playing online games are likely to use chat abbreviations that are different than those used by someone running a financial blog updating their Twitter status.
-Twitter is a free microblog, or social messaging tool that lets people stay connected through brief text message updates up to 140 characters in length. Twitter is based on you answering the question "What are you doing?" You then post thoughts, observations and goings-on during the day in answer to that question. Your update is posted on your Twitter profile page through SMS text messaging, the Twitter Web site, instant messaging, RSS, e-mail or through other social applications and sites, such as Facebook.
-As with any new social medium, there is an entire vocabulary that users of the Twitter service adopt. Many of the new lingo Twitter-based terms and phrases are used to describe the collection of people who use the service, while other terms are used in reference to describe specific functions and features of the service itself. Also, there are a number of "chat terms," which are basically shorthand abbreviations that users often include in their tweets. Lastly, our guide also provides descriptions to a number of Twitter tools and applications that you can use to enhance your Twitter experience.
-Here are definitions to more than 100 Twitter-related abbreviations, words, phrases, and tools that are associated with the Twitter microblogging service. If you know of a Twitter slang term or application name that is not included in our Twitter Dictionary, please let us know.
diff --git a/tests/src/com/android/inputmethod/latin/SuggestPerformanceTests.java b/tests/src/com/android/inputmethod/latin/SuggestPerformanceTests.java
deleted file mode 100644
index 7af566b03..000000000
--- a/tests/src/com/android/inputmethod/latin/SuggestPerformanceTests.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2010,2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.android.inputmethod.latin;
-import com.android.inputmethod.latin.tests.R;
-
-import android.content.res.AssetFileDescriptor;
-import android.content.res.Configuration;
-import android.text.TextUtils;
-import android.util.Slog;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.Locale;
-import java.util.StringTokenizer;
-
-public class SuggestPerformanceTests extends SuggestTestsBase {
- private static final String TAG = SuggestPerformanceTests.class.getSimpleName();
-
- private String mTestText;
- private SuggestHelper mHelper;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- final AssetFileDescriptor dict = openTestRawResourceFd(R.raw.test);
- mHelper = new SuggestHelper(
- getContext(), mTestPackageFile, dict.getStartOffset(), dict.getLength(),
- createKeyboardId(Locale.US, Configuration.ORIENTATION_PORTRAIT));
- loadString(R.raw.testtext);
- }
-
- private void loadString(int testFileId) {
- final String testFile = getTestContext().getResources().getResourceName(testFileId);
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(
- new InputStreamReader(openTestRawResource(testFileId)));
- final StringBuilder sb = new StringBuilder();
- String line;
- Slog.i(TAG, "Reading test file " + testFile);
- while ((line = reader.readLine()) != null) {
- sb.append(line);
- sb.append(" ");
- }
- mTestText = sb.toString();
- } catch (Exception e) {
- Slog.e(TAG, "Can not read " + testFile);
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (Exception e) {
- Slog.e(TAG, "Closing " + testFile + " failed");
- }
- }
- }
- }
-
- /************************** Helper functions ************************/
- private int lookForBigramSuggestion(String prevWord, String currentWord) {
- for (int i = 1; i < currentWord.length(); i++) {
- final CharSequence prefix = currentWord.substring(0, i);
- final CharSequence word = (i == 1)
- ? mHelper.getBigramFirstSuggestion(prevWord, prefix)
- : mHelper.getBigramAutoCorrection(prevWord, prefix);
- if (TextUtils.equals(word, currentWord))
- return i;
- }
- return currentWord.length();
- }
-
- private double runText(boolean withBigrams) {
- mHelper.setCorrectionMode(
- withBigrams ? Suggest.CORRECTION_FULL_BIGRAM : Suggest.CORRECTION_FULL);
- StringTokenizer st = new StringTokenizer(mTestText);
- String prevWord = null;
- int typeCount = 0;
- int characterCount = 0; // without space
- int wordCount = 0;
- while (st.hasMoreTokens()) {
- String currentWord = st.nextToken();
- boolean endCheck = false;
- if (currentWord.matches("[\\w]*[\\.|?|!|*|@|&|/|:|;]")) {
- currentWord = currentWord.substring(0, currentWord.length() - 1);
- endCheck = true;
- }
- if (withBigrams && prevWord != null) {
- typeCount += lookForBigramSuggestion(prevWord, currentWord);
- } else {
- typeCount += lookForBigramSuggestion(null, currentWord);
- }
- characterCount += currentWord.length();
- if (!endCheck) prevWord = currentWord;
- wordCount++;
- }
-
- double result = (double) (characterCount - typeCount) / characterCount * 100;
- if (withBigrams) {
- Slog.i(TAG, "with bigrams -> " + result + " % saved!");
- } else {
- Slog.i(TAG, "without bigrams -> " + result + " % saved!");
- }
- Slog.i(TAG, "\ttotal number of words: " + wordCount);
- Slog.i(TAG, "\ttotal number of characters: " + mTestText.length());
- Slog.i(TAG, "\ttotal number of characters without space: " + characterCount);
- Slog.i(TAG, "\ttotal number of characters typed: " + typeCount);
- return result;
- }
-
-
- /************************** Performance Tests ************************/
- /**
- * Compare the Suggest with and without bigram
- * Check the log for detail
- */
- public void testSuggestPerformance() {
- assertTrue(runText(false) <= runText(true));
- }
-}