diff options
Diffstat (limited to 'java')
132 files changed, 1533 insertions, 1052 deletions
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml index 054c415a4..b29a6e286 100644 --- a/java/AndroidManifest.xml +++ b/java/AndroidManifest.xml @@ -158,5 +158,9 @@ <action android:name="android.intent.action.MAIN"/> </intent-filter> </activity> + + <!-- Unexported activity used for tests. --> + <activity android:name=".settings.TestFragmentActivity" + android:exported="false" /> </application> </manifest> diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index 1647a4ed3..e9053c458 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -26,12 +26,13 @@ <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 met sleuteldruk"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Invoervoorkeure"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Voorkoms"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Veeltalige opsies"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Gebaarinvoervoorkeure"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Voorkeure"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Voorkoms en uitlegte"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Veeltalige opsies"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Gebaarinvoer"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Tekskorrigering"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Gevorderd"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skakel oor na die ander invoermetodes"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Taal-wisselsleutel dek ook ander invoermetodes"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Taal-wisselsleutel"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Steminvoerinstellings"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Geen steminvoermetodes geaktiveer nie. Gaan taal- en invoerinstellings na."</string> <string name="configure_input_method" msgid="373356270290742459">"Stel invoermetodes op"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Invoertale"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Tale"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Hulp en terugvoering"</string> - <string name="select_language" msgid="3693815588777926848">"Invoertale"</string> + <string name="select_language" msgid="5709487854987078367">"Tale"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Raak weer om te stoor"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Raak hier om te stoor"</string> <string name="has_dictionary" msgid="6071847973466625007">"Woordeboek beskikbaar"</string> diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml index 753e67256..14beb7355 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"በቁልፍመጫንጊዜ አንዝር"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"በቁልፍ መጫን ላይ የሚወጣ ድምፅ"</string> <string name="popup_on_keypress" msgid="123894815723512944">"ቁልፍ ጫን ላይ ብቅ ባይ"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"የግቤት ምርጫዎች"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"ገጽታ"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ባለብዙ ቋንቋ አማራጮች"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"የመተየብ እንቅስቃሴ ምልክት ምርጫዎች"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ምርጫዎች"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"መልክ እና አቀማመጦች"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"ባለብዙ ቋንቋ አማራጮች"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"በጣት ምልክት መተየብ"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"ፅሁፍ ማስተካከያ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"የላቀ"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"ገፅታ"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ወደ ሌሎች የግቤት ስልቶች ቀይር"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"የቋንቋ መቀየሪያ ቁልፍ ሌሎች የግቤት ስልቶችንም ይሸፍናል"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"የቋንቋ መቀየሪያ ቁልፍ"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"የድምፅ ግቤት ቁልፍ"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ምንም የግቤት ስልቶች አልነቁም። የቋንቋ እና የግቤት ቅንብሮችን ይፈትሹ።"</string> <string name="configure_input_method" msgid="373356270290742459">"ግቤት ሜተዶችን አዋቀር"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ቋንቋዎች አግቤት"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ቋንቋዎች"</string> <string name="help_and_feedback" msgid="5328219371839879161">"እገዛ እና ግብረመልስ"</string> - <string name="select_language" msgid="3693815588777926848">"ቋንቋዎች አግቤት"</string> + <string name="select_language" msgid="5709487854987078367">"ቋንቋዎች"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"ለማስቀመጥ እንደገና ንካ"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ለማስቀመጥ እዚህ ይንኩ"</string> <string name="has_dictionary" msgid="6071847973466625007">"መዝገበ ቃላት አለ"</string> diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index c45924b59..c549a0797 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"اهتزاز عند ضغط مفتاح"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"صوت عند الضغط على مفتاح"</string> <string name="popup_on_keypress" msgid="123894815723512944">"انبثاق عند ضغط مفتاح"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"تفضيلات الإدخال"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"المظهر"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"خيارات تعدد اللغات"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"تفضيلات كتابة الإيماءات"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"التفضيلات"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"المظهر والتنسيقات"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"خيارات اللغات المتعددة"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"الكتابة بالإشارة"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"تصحيح النص"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"الإعدادات المتقدمة"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"المظهر"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"التبديل إلى أسلوب إدخال آخر"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"يغطي مفتاح تبديل اللغات أساليب الإدخال الأخرى أيضًا"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"مفتاح تبديل اللغة"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"مفتاح الإدخال الصوتي"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"لم يتم تمكين أي أساليب إدخال صوتي. تحقق من إعدادات اللغة والإدخال."</string> <string name="configure_input_method" msgid="373356270290742459">"تهيئة طرق الإدخال"</string> - <string name="language_selection_title" msgid="1651299598555326750">"لغات الإدخال"</string> + <string name="language_selection_title" msgid="3666971864764478269">"اللغات"</string> <string name="help_and_feedback" msgid="5328219371839879161">"المساعدة والتعليقات"</string> - <string name="select_language" msgid="3693815588777926848">"لغات الإدخال"</string> + <string name="select_language" msgid="5709487854987078367">"اللغات"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"المس مرة أخرى للحفظ"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"المس هنا للحفظ"</string> <string name="has_dictionary" msgid="6071847973466625007">"القاموس متاح"</string> diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml index fb01d725d..84543afb8 100644 --- a/java/res/values-az-rAZ/strings.xml +++ b/java/res/values-az-rAZ/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrasiyalı klikləmə"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Klikləmə səsi"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Klikləmədə popup"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Daxiletmə tərcihləri"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Görünüş"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Çoxdilli seçimlər"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Jest ilə yazı tərcihləri"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Seçimlər"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Görünüş və düzənlər"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Çoxdilli seçimlər"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Jest ilə yazma"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Mətn korreksiyası"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Qabaqcıl"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Digər daxiletmə metodlarına keçin"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Dil keçid düyməsi başqa daxiletmə metodlarını da əhatə edir"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Dil keçidi düyməsi"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Səs daxiletmə klavişi"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Heç bir səs daxiletmə metodu aktiv deyil. Dil və daxiletmə ayarlarını yoxlayın."</string> <string name="configure_input_method" msgid="373356270290742459">"Daxiletmə üsullarını sazla"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Daxiletmə dilləri"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Dillər"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Yardım və geri əlaqə"</string> - <string name="select_language" msgid="3693815588777926848">"Daxiletmə dilləri"</string> + <string name="select_language" msgid="5709487854987078367">"Dillər"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Yadda saxlamaq üçün yenidən toxunun"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Yadda saxlamaq üçün buraya toxunun"</string> <string name="has_dictionary" msgid="6071847973466625007">"Lüğət mövcuddur"</string> diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml index 0c449ba34..9e8d633e2 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Да вибрира при натискане на клавиш"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натискане на клавиш"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Изскачащ прозорец при натискане на клавиш"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Въвеждане: Предпочитания"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Облик"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Опции за няколко езика"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Въвежд. чрез жест: Предпоч."</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Предпочитания"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Облик и оформления"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Опции за няколко езика"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Въвеждане чрез жест"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Коригиране на текст"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Разширени"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Други методи за въвеждане"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавишът за превкл. на езика обхваща и други методи за въвеждане"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Клавиш за превкл. на езика"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Клавиш за гласово въвеждане"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Няма активирани методи на гласово въвеждане. Проверете настройките за език и въвеждане."</string> <string name="configure_input_method" msgid="373356270290742459">"Конфигуриране на въвеждането"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Входни езици"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Езици"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Помощ и отзиви"</string> - <string name="select_language" msgid="3693815588777926848">"Езици за въвеждане"</string> + <string name="select_language" msgid="5709487854987078367">"Езици"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Докоснете отново, за да запазите"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Докоснете тук, за да запазите"</string> <string name="has_dictionary" msgid="6071847973466625007">"Има достъп до речник"</string> diff --git a/java/res/values-bn-rBD/strings.xml b/java/res/values-bn-rBD/strings.xml index f3030d84d..5c7212073 100644 --- a/java/res/values-bn-rBD/strings.xml +++ b/java/res/values-bn-rBD/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"কীপ্রেস এর সময় কম্পন"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"কীপ্রেস এর সময়ের শব্দ"</string> <string name="popup_on_keypress" msgid="123894815723512944">"কীপ্রেস এর ফলে পপআপ"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ইনপুট পছন্দগুলি"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"উপস্থিতি"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"একাধিক ভাষা বিকল্পগুলি"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"অঙ্গভঙ্গি টাইপিং অভিরুচি"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"পছন্দসমূহ"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"চেহারা ও লেআউটগুলি"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"বহুভাষিক বিকল্পগুলি"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"অঙ্গভঙ্গি টাইপিং"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"পাঠ্য সংশোধন"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"উন্নত"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"থিম"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"অন্য ইনপুট পদ্ধতিতে স্যুইচ করুন"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ভাষা স্যুইচ কীতে অন্যান্য ইনপুট পদ্ধতি পাওয়া যায়"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"ভাষা স্যুইচ কী"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"ভয়েস ইনপুট কী"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"কোনো ভয়েস ইনপুট পদ্ধতি সক্ষম নয়। ভাষা & ইনপুট সেটিংস পরীক্ষা করুন।"</string> <string name="configure_input_method" msgid="373356270290742459">"ইনপুট পদ্ধতি কনফিগার করুন"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ইনপুট ভাষাগুলি"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ভাষাগুলি"</string> <string name="help_and_feedback" msgid="5328219371839879161">"সহায়তা এবং প্রতিক্রিয়া"</string> - <string name="select_language" msgid="3693815588777926848">"ইনপুট ভাষাগুলি"</string> + <string name="select_language" msgid="5709487854987078367">"ভাষাগুলি"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"সংরক্ষণ করতে আবার ছোঁন"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"সংরক্ষণ করতে এখানে স্পর্শ করুন"</string> <string name="has_dictionary" msgid="6071847973466625007">"অভিধান উপলব্ধ"</string> @@ -121,8 +122,8 @@ <string name="setup_next_action" msgid="371821437915144603">"পরবর্তী পদক্ষেপ"</string> <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সেট আপ হচ্ছে"</string> <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করুন"</string> - <string name="setup_step1_instruction" msgid="2578631936624637241">"দয়া করে আপনার ভাষা ও ইনপুট সেটিংস <xliff:g id="APPLICATION_NAME">%s</xliff:g> পরীক্ষা করুন। এর ফলে এটি আপনার ডিভাইসে চলার জন্য অনুমোদন পাবে।"</string> - <string name="setup_step1_finished_instruction" msgid="10761482004957994">"আপনার ভাষা ও ইনপুট সেটিংসে ইতোমধ্যে <xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করা হয়েছে, তাই এই পদক্ষেপটি সমাপ্ত। পরবর্তীটিতে এগোন!"</string> + <string name="setup_step1_instruction" msgid="2578631936624637241">"দয়া করে আপনার ভাষা ও কিবোর্ড সেটিংস <xliff:g id="APPLICATION_NAME">%s</xliff:g> পরীক্ষা করুন। এর ফলে এটি আপনার ডিভাইসে চলার জন্য অনুমোদন পাবে।"</string> + <string name="setup_step1_finished_instruction" msgid="10761482004957994">"আপনার ভাষা ও কিবোর্ড সেটিংসে ইতোমধ্যে <xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করা হয়েছে, তাই এই পদক্ষেপটি সমাপ্ত। পরবর্তীটিতে এগোন!"</string> <string name="setup_step1_action" msgid="4366513534999901728">"সেটিংসে সক্ষম করুন"</string> <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> এ স্যুইচ করুন"</string> <string name="setup_step2_instruction" msgid="9141481964870023336">"এখন, সক্রিয় পাঠ্য-ইনপুট পদ্ধতি হিসেবে \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" নির্বাচন করুন।"</string> diff --git a/java/res/values-ca/strings-emoji-descriptions.xml b/java/res/values-ca/strings-emoji-descriptions.xml index 7e4beae3c..0a356f8e2 100644 --- a/java/res/values-ca/strings-emoji-descriptions.xml +++ b/java/res/values-ca/strings-emoji-descriptions.xml @@ -84,7 +84,7 @@ <string name="spoken_emoji_267B" msgid="21716857176812762">"Símbol universal de reciclatge negre"</string> <string name="spoken_emoji_267F" msgid="8833496533226475443">"Símbol de cadira de rodes"</string> <string name="spoken_emoji_2693" msgid="7443148847598433088">"Àncora"</string> - <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Senyal de perill"</string> + <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Senyal d\'advertiment"</string> <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Senyal d\'alt voltatge"</string> <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Cercle blanc mitjà"</string> <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Cercle negre mitjà"</string> @@ -578,7 +578,7 @@ <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Llibre blau"</string> <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Llibre taronja"</string> <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Llibres"</string> - <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Insígnia de nom"</string> + <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Etiqueta identificativa"</string> <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Desplaça"</string> <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string> <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Auricular del telèfon"</string> @@ -591,7 +591,7 @@ <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Safata d\'entrada"</string> <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paquet"</string> <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbol de correu electrònic"</string> - <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Sobre entrant"</string> + <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Correu entrant"</string> <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre amb una fletxa cap avall al damunt"</string> <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Bústia tancada amb la bandera baixada"</string> <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Bústia tancada amb la bandera aixecada"</string> @@ -616,8 +616,8 @@ <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Fletxes cap a la dreta i l\'esquerra que formen un cercle obert en sentit horari i un número u encerclat"</string> <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Fletxes cap avall i cap amunt que formen un cercle obert en sentit horari"</string> <string name="spoken_emoji_1F504" msgid="708290317843535943">"Fletxes cap avall i cap amunt que formen un cercle obert en sentit antihorari"</string> - <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Signe de brillantor baixa"</string> - <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Signe de brillantor alta"</string> + <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbol de brillantor baixa"</string> + <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbol de brillantor alta"</string> <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altaveu amb barra de cancel·lació"</string> <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altaveu"</string> <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altaveu amb una ona de so"</string> diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml index 9b01c75ed..a77db8b94 100644 --- a/java/res/values-ca/strings-talkback-descriptions.xml +++ b/java/res/values-ca/strings-talkback-descriptions.xml @@ -57,7 +57,7 @@ <string name="announce_keyboard_mode" msgid="6698257917367823205">"Es mostra el teclat per a <xliff:g id="KEYBOARD_MODE">%s</xliff:g>."</string> <string name="keyboard_mode_date" msgid="6597407244976713364">"data"</string> <string name="keyboard_mode_date_time" msgid="3642804408726668808">"data i hora"</string> - <string name="keyboard_mode_email" msgid="1239682082047693644">"correu electrònic"</string> + <string name="keyboard_mode_email" msgid="1239682082047693644">"adreça electrònica"</string> <string name="keyboard_mode_im" msgid="3812086215529493501">"missatgeria"</string> <string name="keyboard_mode_number" msgid="5395042245837996809">"número"</string> <string name="keyboard_mode_phone" msgid="2486230278064523665">"telèfon"</string> diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml index cc8c71d80..eb4491907 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibra en prémer tecles"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"So en prémer tecles"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Amplia en prémer tecles"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferències d\'entrada"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparença"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opcions diversos idiomes"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Ajust escriptura gestual"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferències"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aparença i dissenys"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opcions de diversos idiomes"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Escriptura gestual"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Correcció de textos"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançat"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altres mètodes d\'introducció"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de canvi d\'idioma serveix també per a altres mètodes d\'entrada"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de canvi d\'idioma"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tecla d\'entrada de veu"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No hi ha cap mètode d\'introducció activat. Comprova la configuració d\'Idioma i introducció de text."</string> <string name="configure_input_method" msgid="373356270290742459">"Configura mètodes d\'entrada"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomes"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Idiomes"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Ajuda i opinió"</string> - <string name="select_language" msgid="3693815588777926848">"Idiomes d\'introducció"</string> + <string name="select_language" msgid="5709487854987078367">"Idiomes"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Torna a tocar per desar"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí per desar."</string> <string name="has_dictionary" msgid="6071847973466625007">"Diccionari disponible"</string> @@ -102,7 +103,7 @@ <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string> <string name="keyboard_theme" msgid="4909551808526178852">"Tema del teclat"</string> <string name="custom_input_styles_title" msgid="8429952441821251512">"Estils d\'entrada personalitzats"</string> - <string name="add_style" msgid="6163126614514489951">"Afeg. estil"</string> + <string name="add_style" msgid="6163126614514489951">"Afegeix estil"</string> <string name="add" msgid="8299699805688017798">"Afegeix"</string> <string name="remove" msgid="4486081658752944606">"Elimina"</string> <string name="save" msgid="7646738597196767214">"Desa"</string> diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index 978c21148..9a3d52966 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Detail znaku při stisku klávesy"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Předvolby pro zadávání"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Vzhled"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Možnosti pro více jazyků"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Předvolby pro psaní gesty"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Předvolby"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Vzhled a rozvržení"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Možnosti pro více jazyků"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Psaní gesty"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Oprava textu"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Rozšířená nastavení"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Motiv"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Přepínat metody zadávání"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Klávesa pro přepínání jazyka ovládá i další metody zadávání"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Klávesa přepínání jazyka"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Klávesa hlasového vstupu"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nejsou povoleny žádné metody hlasového vstupu. Zkontrolujte nastavení Jazyk a vstup."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurace metod zadávání"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Vstupní jazyky"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Jazyky"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Nápověda a zpětná vazba"</string> - <string name="select_language" msgid="3693815588777926848">"Vstupní jazyky"</string> + <string name="select_language" msgid="5709487854987078367">"Jazyky"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Opětovným dotykem provedete uložení"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klepnutím sem položku uložíte"</string> <string name="has_dictionary" msgid="6071847973466625007">"Slovník k dispozici"</string> diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index fc396e4da..7a3d0fa1a 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibration ved tastetryk"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetryk"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Pop op ved tastetryk"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Indstillinger for input"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Udseende"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Indst. for flere sprog"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Indstillinger for Glidende indtastning"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Præferencer"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Udseende og layouts"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Indstillinger for flere sprog"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Glidende indtastning"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstkorrigering"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanceret"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skift inputmetode"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasten til sprogskift gælder også for andre inputmetoder"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Knap til sprogskift"</string> @@ -65,18 +66,18 @@ <string name="bigram_prediction" msgid="1084449187723948550">"Forslag til næste ord"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Brug det forrige ord til at give forslag"</string> <string name="gesture_input" msgid="826951152254563827">"Aktivér glidende indtastning"</string> - <string name="gesture_input_summary" msgid="9180350639305731231">"Skriv et ord ved at glide mellem bogstaverne"</string> + <string name="gesture_input_summary" msgid="9180350639305731231">"Skriv et ord ved at trække fingeren rundt mellem bogstaverne"</string> <string name="gesture_preview_trail" msgid="3802333369335722221">"Vis glidende trykspor"</string> <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Dynamiske ordeksempler"</string> <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Se ordforslag ved glidende indtastning"</string> - <string name="gesture_space_aware" msgid="2078291600664682496">"Bevægelse for udtryk"</string> + <string name="gesture_space_aware" msgid="2078291600664682496">"Glidende mellemrum"</string> <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Tilføj mellemrum ved at glide til mellemrumstasten"</string> <string name="voice_input" msgid="3583258583521397548">"Knap til taleinput"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Der er ingen aktiverede stemmeinputmetoder. Kontrollér Indstillinger for sprog og input."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurer inputmetoder"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Inputsprog"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Sprog"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Hjælp og feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Inputsprog"</string> + <string name="select_language" msgid="5709487854987078367">"Sprog"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tryk igen for at gemme"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klik her for at gemme"</string> <string name="has_dictionary" msgid="6071847973466625007">"Ordbog er tilgængelig"</string> diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml index f2873e68c..8c575cb61 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Bei Tastendruck vibrieren"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Ton bei Tastendruck"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bei Tastendruck"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Eingabeeinstellungen"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Darstellung"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Mehrsprachige Optionen"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Bewegungseingabe-Einst."</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Einstellungen"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Darstellung & Layouts"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Mehrsprachige Optionen"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Bewegungseingabe"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Textkorrektur"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Erweitert"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Design"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Eingabemethoden wechseln"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Sprachwechseltaste umfasst auch andere Eingabemethoden."</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Sprachwechsel"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Taste für Spracheingabe"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Keine Spracheingabemethoden aktiviert. Rufen Sie die Einstellungen für \"Sprache & Eingabe\" auf."</string> <string name="configure_input_method" msgid="373356270290742459">"Eingabemethoden konfigurieren"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Eingabesprachen"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Sprachen"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Hilfe & Feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Eingabesprachen"</string> + <string name="select_language" msgid="5709487854987078367">"Sprachen"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Zum Speichern erneut berühren"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tippen Sie hier zum Speichern."</string> <string name="has_dictionary" msgid="6071847973466625007">"Wörterbuch verfügbar"</string> diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml index 2daeb81f1..8c417e175 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Δόνηση κατά το πάτημα πλήκτρων"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Ήχος κατά το πάτημα πλήκτρων"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Εμφάνιση με το πάτημα πλήκτρου"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Προτιμήσεις εισαγωγής"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Εμφάνιση"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Πολυγλωσσικές επιλογές"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Προτιμήσεις πληκτρολόγησης χειρονομιών"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Προτιμήσεις"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Εμφάνιση και διάταξη"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Επιλογές για πολλές γλώσσες"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Πληκτρολόγηση με κίνηση"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Διόρθωση κειμένου"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Σύνθετες"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Θέμα"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Άλλη μέθοδος εισόδου"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Το κλειδί αλλαγής γλώσσας καλύπτει και άλλες μεθόδους εισόδου"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Πλήκτρο εναλλαγής γλώσσας"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Κλειδί φωνητικής εξόδου"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Δεν έχουν ενεργοποιηθεί μέθοδοι φωνητικής εισαγωγής. Ελέγξτε τις Ρυθμίσεις Γλώσσας και εισαγωγής."</string> <string name="configure_input_method" msgid="373356270290742459">"Διαμόρφωση μεθόδων εισαγωγής"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Γλώσσες εισόδου"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Γλώσσες"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Βοήθεια και σχόλια"</string> - <string name="select_language" msgid="3693815588777926848">"Γλώσσες εισόδου"</string> + <string name="select_language" msgid="5709487854987078367">"Γλώσσες"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Αγγίξτε ξανά για αποθήκευση"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Αγγίξτε εδώ για αποθήκευση"</string> <string name="has_dictionary" msgid="6071847973466625007">"Λεξικό διαθέσιμο"</string> diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index 271b837be..43926cad7 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Input preferences"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Appearance"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Multilingual options"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Gesture typing preferences"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Appearance & layouts"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Multilingual options"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language & input settings."</string> <string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Input languages"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Help & feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Input languages"</string> + <string name="select_language" msgid="5709487854987078367">"Languages"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string> diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml index 271b837be..43926cad7 100644 --- a/java/res/values-en-rIN/strings.xml +++ b/java/res/values-en-rIN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Input preferences"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Appearance"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Multilingual options"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Gesture typing preferences"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Appearance & layouts"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Multilingual options"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language & input settings."</string> <string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Input languages"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Help & feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Input languages"</string> + <string name="select_language" msgid="5709487854987078367">"Languages"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string> diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index 31219a752..b6720b55c 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Aviso emergente al pulsar tecla"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferencias de entrada"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Apariencia"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opciones multilingües"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. escritura gestual"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Apariencia y diseños"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opciones multilingües"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura gestual"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Corrección ortográfica"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzada"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Otros métodos de entrada"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de cambio de idioma abarca otros métodos de entrada."</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de selección de idioma"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada por voz"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No hay métodos de entrada de voz habilitados. Comprueba la configuración de Teclado e idioma."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y comentarios"</string> - <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string> + <string name="select_language" msgid="5709487854987078367">"Idiomas"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Vuelve a tocar para guardar."</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tocar aquí para guardar."</string> <string name="has_dictionary" msgid="6071847973466625007">"Diccionario disponible"</string> diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index 8c5216447..b4baf5998 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar tecla"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Sonar al pulsar tecla"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Ampliar al pulsar tecla"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferencias de entrada"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspecto"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opciones multilingües"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Opciones escritura gestual"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspecto y diseño"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opciones multilingües"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura gestual"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Corrección ortográfica"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Opciones avanzadas"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Otros métodos de introducción"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de cambio de idioma sirve también para otros métodos"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla para cambiar de idioma"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Sin métodos de introducción de voz habilitados. Comprueba ajustes de Idioma e introducción de texto."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomas"</string> - <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y opiniones"</string> - <string name="select_language" msgid="3693815588777926848">"Idiomas de introducción"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string> + <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y sugerencias"</string> + <string name="select_language" msgid="5709487854987078367">"Idiomas"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toca otra vez para guardar"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí para guardar"</string> <string name="has_dictionary" msgid="6071847973466625007">"Hay un diccionario disponible"</string> @@ -112,7 +113,7 @@ <string name="enable" msgid="5031294444630523247">"Habilitar"</string> <string name="not_now" msgid="6172462888202790482">"Ahora no"</string> <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ya existe el estilo de entrada <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string> - <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración vibración al pulsar"</string> + <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración de vibración al pulsar"</string> <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volumen sonido al pulsar tecla"</string> <string name="button_default" msgid="3988017840431881491">"Predeterminado"</string> <string name="setup_welcome_title" msgid="6112821709832031715">"Te damos la bienvenida a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string> @@ -175,7 +176,7 @@ <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Acceso directo:"</string> <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Idioma:"</string> <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"Escribe una palabra"</string> - <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Acceso directo opcional"</string> + <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Introducir"</string> <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Editar palabra"</string> <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Editar"</string> <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Eliminar"</string> diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml index 869fdd97b..584cf50bf 100644 --- a/java/res/values-et-rEE/strings.xml +++ b/java/res/values-et-rEE/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreeri klahvivajutusel"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Heli klahvivajutusel"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Klahvivajutusel kuva hüpik"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Sisestuseelistused"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Ilme"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Mitme keele valikud"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Viipesisestuseelistused"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Eelistused"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Välimus ja paigutused"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Mitmekeelsed valikud"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Joonistusega sisestamine"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstiparandus"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Täpsem"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Vaheta sisestusmeetodit"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Keelevahetuse võti hõlmab ka muid sisestusmeetodeid"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Keelevahetuse nupp"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Häälesisendi klahv"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ühtegi häälsisendmeetodit pole lubatud. Kontrollige keele- ja sisendiseadeid."</string> <string name="configure_input_method" msgid="373356270290742459">"Sisestusmeetodite seadistamine"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Sisestuskeeled"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Keeled"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Abi ja tagasiside"</string> - <string name="select_language" msgid="3693815588777926848">"Sisestuskeeled"</string> + <string name="select_language" msgid="5709487854987078367">"Keeled"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Salvestamiseks puudutage uuesti"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Salvestamiseks puudutage siin"</string> <string name="has_dictionary" msgid="6071847973466625007">"Sõnastik saadaval"</string> diff --git a/java/res/values-eu-rES/strings.xml b/java/res/values-eu-rES/strings.xml index 0be6ddf95..59381daf8 100644 --- a/java/res/values-eu-rES/strings.xml +++ b/java/res/values-eu-rES/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Egin dar-dar sakatzean"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Egin soinua tekla sakatzean"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Handitu teklak, sakatzean"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Idazketa-hobespenak"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Itxura"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Aukera eleanitzak"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Keinu-idazketaren hobespenak"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Hobespenak"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Itxura eta diseinuak"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Aukera eleanitzak"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Keinu bidezko idazketa"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Testu-zuzenketa"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Ezarpen aurreratuak"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Gaia"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Aldatu idazketa-metodoa"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Hizkuntza aldatzeko teklak beste idazketa-metodoetarako ere balio du"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Hizkuntza aldatzeko tekla"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Ahots bidezko idazketaren tekla"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ez da ahots bidezko idazketa-metodorik gaitu. Egiaztatu Hizkuntza eta idazketa ataleko ezarpenak."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfiguratu idazketa-metodoak"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idazketa-hizkuntzak"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Hizkuntzak"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Laguntza eta iritziak"</string> - <string name="select_language" msgid="3693815588777926848">"Idazketa-hizkuntzak"</string> + <string name="select_language" msgid="5709487854987078367">"Hizkuntzak"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Gordetzeko, ukitu berriro"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Gordetzeko, ukitu hau"</string> <string name="has_dictionary" msgid="6071847973466625007">"Hiztegia erabilgarri"</string> diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index ac2c8f62a..7b78afb73 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"لرزش با فشار کلید"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"صدا با فشار کلید"</string> <string name="popup_on_keypress" msgid="123894815723512944">"بازشدن با فشار کلید"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"اولویتهای ورودی"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"ظاهر"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"انتخابهای چندزبانه"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"موارد ترجیحی تایپ با اشاره"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"تنظیمات ترجیحی"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"ظاهر و طرحبندیها"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"گزینههای چندزبانی"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ورودی اشارهای"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"اصلاح نوشتار"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"پیشرفته"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"طرحزمینه"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"تغییر به دیگر روشهای ورودی"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"کلید تغییر زبان، سایر ورودیهای زبان را نیز پوشش میدهد"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"کلید تغییر زبان"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"کلید ورودی صدا"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"هیچ روش ورودی صوتی فعال نشده است. تنظیمات زبان و ورودی را بررسی کنید."</string> <string name="configure_input_method" msgid="373356270290742459">"پیکربندی روشهای ورودی"</string> - <string name="language_selection_title" msgid="1651299598555326750">"زبانهای ورودی"</string> + <string name="language_selection_title" msgid="3666971864764478269">"زبانها"</string> <string name="help_and_feedback" msgid="5328219371839879161">"راهنما و بازخورد"</string> - <string name="select_language" msgid="3693815588777926848">"زبانهای ورودی"</string> + <string name="select_language" msgid="5709487854987078367">"زبانها"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"برای ذخیره دوباره لمس کنید"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"برای ذخیره اینجا را لمس کنید"</string> <string name="has_dictionary" msgid="6071847973466625007">"دیکشنری موجود است"</string> diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml index a94f5737c..6d0e3e8c1 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -26,12 +26,13 @@ <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> - <string name="settings_screen_input" msgid="2808654300248306866">"Syöttöasetukset"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Ulkonäkö"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Kieliasetukset"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Piirtokirjoitusasetukset"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Asetukset"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Ulkoasu ja asettelut"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Monikielisyysasetukset"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Piirtokirjoitus"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstin korjaus"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Lisäasetukset"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Käytä toista syöttötapaa"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kielenvaihtonäppäin kattaa myös muut syöttötavat"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Kielenvaihtonäppäin"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Äänisyöteavain"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Äänen syöttötapoja ei ole otettu käyttöön. Tarkista Kieli ja syöttötapa -asetukset."</string> <string name="configure_input_method" msgid="373356270290742459">"Määritä syöttötavat"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Syöttökielet"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Kielet"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Ohje ja palaute"</string> - <string name="select_language" msgid="3693815588777926848">"Syöttökielet"</string> + <string name="select_language" msgid="5709487854987078367">"Kielet"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tallenna koskettamalla uudelleen"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tallenna koskettamalla tätä"</string> <string name="has_dictionary" msgid="6071847973466625007">"Sanakirja saatavilla"</string> diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml index 8b6afcbc5..a85459823 100644 --- a/java/res/values-fr-rCA/strings.xml +++ b/java/res/values-fr-rCA/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Agrandir les caractères"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Préférences d\'entrée"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Apparence"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Options multilingues"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Préfér. entrée gestuelle"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Préférences"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Apparence et dispositions"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Options multilingues"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Entrée gestuelle"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Correction du texte"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avancés"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Thème"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Autres modes de saisie"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La touche de sélection de langue couvre d\'autres modes de saisie"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Touche de sélection de langue"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Aucun mode d\'entrée vocale n\'a été activé. Vérifiez les paramètres de langues et d\'entrée de texte."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurer les modes de saisie"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Langues"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Aide et commentaires"</string> - <string name="select_language" msgid="3693815588777926848">"Langues de saisie"</string> + <string name="select_language" msgid="5709487854987078367">"Langues"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Appuyer de nouveau pour enregistrer"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touchez ici pour enregistrer le mot dans le dictionnaire"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string> diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index 79dc431fa..dd5e998d2 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Agrandir les caractères"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Préférences de saisie"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Apparence"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Options multilingues"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Préf. saisie gestuelle"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Préférences"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Apparence et dispositions"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Options multilingues"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Saisie gestuelle"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Correction du texte"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Paramètres avancés"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Thème"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Autres modes de saisie"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La touche de sélection de langue couvre d\'autres modes de saisie."</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Touche de sélection de langue"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Aucun mode de saisie vocale activé. Vérifiez les paramètres de langue et de saisie."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurer les modes de saisie"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Langues"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Aide et commentaires"</string> - <string name="select_language" msgid="3693815588777926848">"Langues de saisie"</string> + <string name="select_language" msgid="5709487854987078367">"Langues"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Appuyer de nouveau pour enregistrer"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Appuyez ici pour enregistrer."</string> <string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string> diff --git a/java/res/values-gl-rES/strings-emoji-descriptions.xml b/java/res/values-gl-rES/strings-emoji-descriptions.xml index ec179780f..cdb67fa45 100644 --- a/java/res/values-gl-rES/strings-emoji-descriptions.xml +++ b/java/res/values-gl-rES/strings-emoji-descriptions.xml @@ -804,7 +804,7 @@ <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automóbil"</string> <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automóbil próximo"</string> <string name="spoken_emoji_1F699" msgid="630317052666590607">"Caravana"</string> - <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de reparto"</string> + <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de entrega"</string> <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camión articulado"</string> <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string> <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorraíl"</string> diff --git a/java/res/values-gl-rES/strings.xml b/java/res/values-gl-rES/strings.xml index 7f087e9eb..5b1e66ca5 100644 --- a/java/res/values-gl-rES/strings.xml +++ b/java/res/values-gl-rES/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar as teclas"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Son ao premer as teclas"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Ventás emerxentes ao premer as teclas"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferencias de entrada"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparencia"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opcións multilingües"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Preferencias de escritura de xestos"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aparencia e deseños"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opcións multilingües"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura mediante xestos"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Corrección de texto"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzada"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Outros métodos de entrada"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla de cambio de idioma inclúe outros métodos de entrada"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de cambio de idioma"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Non hai ningún método de entrada de voz activado. Comproba a configuración de Idioma e entrada de texto."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> - <string name="help_and_feedback" msgid="5328219371839879161">"Axuda e opinións"</string> - <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string> + <string name="help_and_feedback" msgid="5328219371839879161">"Axuda e suxerencias"</string> + <string name="select_language" msgid="5709487854987078367">"Idiomas"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toca de novo para gardar"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí para gardar"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dicionario dispoñible"</string> diff --git a/java/res/values-hi/strings-action-keys.xml b/java/res/values-hi/strings-action-keys.xml index 7237c24bb..8768ee7da 100644 --- a/java/res/values-hi/strings-action-keys.xml +++ b/java/res/values-hi/strings-action-keys.xml @@ -21,7 +21,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="label_go_key" msgid="4033615332628671065">"जाएं"</string> - <string name="label_next_key" msgid="5586407279258592635">"अगला"</string> + <string name="label_next_key" msgid="5586407279258592635">"आगे"</string> <string name="label_previous_key" msgid="1421141755779895275">"पिछला"</string> <string name="label_done_key" msgid="7564866296502630852">"पूर्ण"</string> <string name="label_send_key" msgid="482252074224462163">"भेजें"</string> diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml index aba2592b8..6a55f292e 100644 --- a/java/res/values-hi/strings-talkback-descriptions.xml +++ b/java/res/values-hi/strings-talkback-descriptions.xml @@ -21,8 +21,8 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="spoken_use_headphones" msgid="4313642710742229868">"जोर से बोली जाने वाली पासवर्ड कुंजियां सुनने के लिए हैडसेट प्लग करें."</string> - <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान पाठ %s है"</string> - <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई पाठ नहीं डाला गया"</string> + <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान लेख %s है"</string> + <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई लेख नहीं डाला गया"</string> <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> को सुधार कर <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> करता है"</string> <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वत: सुधार करता है"</string> <string name="spoken_description_unknown" msgid="5139930082759824442">"अज्ञात वर्ण"</string> @@ -44,7 +44,7 @@ <string name="spoken_description_search" msgid="5099937658231911288">"खोजें"</string> <string name="spoken_description_dot" msgid="5644176501632325560">"डॉट"</string> <string name="spoken_description_language_switch" msgid="6818666779313544553">"भाषा स्विच करें"</string> - <string name="spoken_description_action_next" msgid="431761808119616962">"अगला"</string> + <string name="spoken_description_action_next" msgid="431761808119616962">"आगे"</string> <string name="spoken_description_action_previous" msgid="2919072174697865110">"पिछला"</string> <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"शिफ़्ट सक्षम किया गया"</string> <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"कैप्स लॉक सक्षम किया गया"</string> @@ -61,7 +61,7 @@ <string name="keyboard_mode_im" msgid="3812086215529493501">"संदेश सेवा"</string> <string name="keyboard_mode_number" msgid="5395042245837996809">"संख्या"</string> <string name="keyboard_mode_phone" msgid="2486230278064523665">"फ़ोन"</string> - <string name="keyboard_mode_text" msgid="9138789594969187494">"पाठ"</string> + <string name="keyboard_mode_text" msgid="9138789594969187494">"लेख"</string> <string name="keyboard_mode_time" msgid="8558297845514402675">"समय"</string> <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string> <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"हाल ही के"</string> diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml index 35b09d69f..c05d2a8dd 100644 --- a/java/res/values-hi/strings.xml +++ b/java/res/values-hi/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"कुंजी दबाने पर कंपन करता है"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"कुंजी दबाने पर आवाज"</string> <string name="popup_on_keypress" msgid="123894815723512944">"कुंजी दबाने पर पॉपअप दिखाएं"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"इनपुट प्राथमिकताएं"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"प्रकटन"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषी विकल्प"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"हावभाव लेखन वरीयताएं"</string> - <string name="settings_screen_correction" msgid="1616818407747682955">"पाठ सुधार"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राथमिकताएं"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"प्रकटन और लेआउट"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"बहुभाषीय विकल्प"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"हावभाव लेखन"</string> + <string name="settings_screen_correction" msgid="1616818407747682955">"लेख सुधार"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"अतिरिक्त सेटिंग"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट पद्धतियों पर जाएं"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच कुंजी में अन्य इनपुट पद्धतियां भी शामिल हैं"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच कुंजी"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"ध्वनि इनपुट कुंजी"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"कोई ध्वनि इनपुट पद्धति सक्षम नहीं है. भाषा और इनपुट सेटिंग जांचें."</string> <string name="configure_input_method" msgid="373356270290742459">"इनपुट पद्धति कॉन्फ़िगर करें"</string> - <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषा"</string> + <string name="language_selection_title" msgid="3666971864764478269">"भाषाएं"</string> <string name="help_and_feedback" msgid="5328219371839879161">"सहायता और फ़ीडबैक"</string> - <string name="select_language" msgid="3693815588777926848">"इनपुट भाषाएं"</string> + <string name="select_language" msgid="5709487854987078367">"भाषाएं"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"सहेजने के लिए पुन: स्पर्श करें"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"सहेजने के लिए यहां स्पर्श करें"</string> <string name="has_dictionary" msgid="6071847973466625007">"शब्दकोश उपलब्ध है"</string> @@ -121,11 +122,11 @@ <string name="setup_next_action" msgid="371821437915144603">"अगला चरण"</string> <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> सेट करना"</string> <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> को सक्षम करें"</string> - <string name="setup_step1_instruction" msgid="2578631936624637241">"कृपया अपनी भाषा और अक्षर सेटिंग में \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को चेक करें. इससे वह आपके उपकरण पर चलने के लिए अधिकृत हो जाएगा."</string> + <string name="setup_step1_instruction" msgid="2578631936624637241">"कृपया अपनी भाषा और अक्षर सेटिंग में \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को चेक करें. इससे वह आपके डिवाइस पर चलने के लिए अधिकृत हो जाएगा."</string> <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> आपकी भाषा और अक्षर सेटिंग में पहले से सक्षम है, इसलिए यह चरण पूर्ण हो गया है. अगले चरण पर जाएं!"</string> <string name="setup_step1_action" msgid="4366513534999901728">"सेटिंग में सक्षम करें"</string> <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> पर स्विच करें"</string> - <string name="setup_step2_instruction" msgid="9141481964870023336">"इसके बाद, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को अपनी सक्रिय पाठ-इनपुट पद्धति के रूप में चुनें."</string> + <string name="setup_step2_instruction" msgid="9141481964870023336">"इसके बाद, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को अपनी सक्रिय लेख-इनपुट पद्धति के रूप में चुनें."</string> <string name="setup_step2_action" msgid="1660330307159824337">"इनपुट पद्धतियां स्विच करें"</string> <string name="setup_step3_title" msgid="3154757183631490281">"बधाई हो, आप बिल्कुल तैयार हैं!"</string> <string name="setup_step3_instruction" msgid="8025981829605426000">"अब आप <xliff:g id="APPLICATION_NAME">%s</xliff:g> के साथ अपने सभी पसंदीदा ऐप्स में लिख सकते हैं."</string> @@ -153,18 +154,18 @@ <string name="message_updating" msgid="4457761393932375219">"नई जानकारी देखा जा रहा हैं"</string> <string name="message_loading" msgid="5638680861387748936">"लोड हो रहा है…"</string> <string name="main_dict_description" msgid="3072821352793492143">"मुख्य डिक्शनरी"</string> - <string name="cancel" msgid="6830980399865683324">"रद्द करें"</string> + <string name="cancel" msgid="6830980399865683324">"रहने दें"</string> <string name="go_to_settings" msgid="3876892339342569259">"सेटिंग"</string> <string name="install_dict" msgid="180852772562189365">"इंस्टॉल करें"</string> - <string name="cancel_download_dict" msgid="7843340278507019303">"रद्द करें"</string> + <string name="cancel_download_dict" msgid="7843340278507019303">"रहने दें"</string> <string name="delete_dict" msgid="756853268088330054">"हटाएं"</string> - <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्दकोश उपलब्ध है.<br/> हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्दकोश <b>डाउनलोड करने</b> की सुझाव देते हैं.<br/> <br/> 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास <b>असीमित डेटा योजना</b> नहीं है, तो शुल्क लागू हो सकते हैं.<br/> यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए वाई-फ़ाई कनेक्शन ढूंढने की सुझाव देते हैं.<br/> <br/> युक्ति: आप अपने मोबाइल उपकरण के <b>सेटिंग</b> मेनू में <b>भाषा और इनपुट</b> पर जाकर शब्दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string> + <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्दकोश उपलब्ध है.<br/> हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्दकोश <b>डाउनलोड करने</b> की सुझाव देते हैं.<br/> <br/> 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास <b>असीमित डेटा योजना</b> नहीं है, तो शुल्क लागू हो सकते हैं.<br/> यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए वाई-फ़ाई कनेक्शन ढूंढने की सुझाव देते हैं.<br/> <br/> युक्ति: आप अपने मोबाइल डिवाइस के <b>सेटिंग</b> मेनू में <b>भाषा और इनपुट</b> पर जाकर शब्दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string> <string name="download_over_metered" msgid="1643065851159409546">"अभी डाउनलोड करें (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string> <string name="do_not_download_over_metered" msgid="2176209579313941583">"वाई-फ़ाई से डाउनलोड करें"</string> <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए एक शब्दकोश उपलब्ध है"</string> <string name="dict_available_notification_description" msgid="1075194169443163487">"समीक्षा करने और डाउनलोड करने के लिए दबाएं"</string> <string name="toast_downloading_suggestions" msgid="6128155879830851739">"डाउनलोड प्रारंभ हो रहा है: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए सुझाव जल्दी ही उपलब्ध होंगे."</string> - <string name="version_text" msgid="2715354215568469385">"संस्करण <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string> + <string name="version_text" msgid="2715354215568469385">"वर्शन <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string> <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"जोड़ें"</string> <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"शब्दकोश में जोड़ें"</string> <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"वाक्यांश"</string> diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index 6ffc79983..c145b20a3 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Povećanja na pritisak tipke"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Postavke unosa"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Izgled"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Višejezične opcije"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Postavke pisanja kretnjama"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Postavke"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Prikaz i izgled"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Višejezične opcije"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanje kretnjama"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Ispravljanje teksta"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Napredno"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prebaci na druge unose"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tipka za prebacivanje jezika pokriva i druge načine unosa"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tipka za izmjenjivanje jezika"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni unos"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nije omogućen nijedan način glasovnog unosa. Provjerite postavke jezika i unosa."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfiguriraj načine ulaza"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Jezici unosa"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Jezici"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Pomoć i povratne informacije"</string> - <string name="select_language" msgid="3693815588777926848">"Jezici unosa"</string> + <string name="select_language" msgid="5709487854987078367">"Jezici"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Dodirnite ponovo za spremanje"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Dodirnite ovdje za spremanje"</string> <string name="has_dictionary" msgid="6071847973466625007">"Rječnik je dostupan"</string> diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index f77fa120f..a373e7585 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Rezgés gombnyomásra"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Hangjelzés gombnyomásra"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Nagyobb billentyű gombnyomásra"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Beviteli preferenciák"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Megjelenés"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Többnyelvű beállítások"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Kézmozdulatokkal gépelés"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Beállítások"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Megjelenés és elrendezés"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Többnyelvű beállítások"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Kézmozdulatokkal történő gépelés"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Szövegjavítás"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Speciális"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Téma"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Váltás más beviteli módra"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A nyelvkapcsoló gomb egyéb beviteli módokat is tartalmaz"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"A nyelvkapcsoló"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Hangbeviteli gomb"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nincs engedélyezett hangbeviteli módszer. Nézze meg a Nyelvi és beviteli beállításokat."</string> <string name="configure_input_method" msgid="373356270290742459">"Beviteli módok beállítása"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Beviteli nyelvek"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Nyelvek"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Súgó és visszajelzés"</string> - <string name="select_language" msgid="3693815588777926848">"Beviteli nyelvek"</string> + <string name="select_language" msgid="5709487854987078367">"Nyelvek"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Érintse meg újból a mentéshez"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"A mentéshez érintse meg itt"</string> <string name="has_dictionary" msgid="6071847973466625007">"Van elérhető szótár"</string> diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml index 68f39f511..52bc86be0 100644 --- a/java/res/values-hy-rAM/strings.xml +++ b/java/res/values-hy-rAM/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Թրթռալ սեղմման ժամանակ"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Ձայնը սեղմման ժամանակ"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Ելնող պատուհան՝ ստեղնի հպման դեպքում"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Ներածման նախընտրանքներ"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Արտաքին տեսք"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Լեզվի ընտրանքներ"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Ժեստերով ներածում"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Նախընտրանքներ"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Արտաքին տեսք և դասավորություն"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Բազմալեզու ընտրանքներ"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Ժեստերով մուտքագրում"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Տեքստի ուղղում"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Հավելյալ"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Թեմա"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Անցնել մուտքագրման այլ եղանակների"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Լեզվի փոխարկման բանալին ընդգրկում է այլ մուտքագրման եղանակներ ևս"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Լեզվի փոխարկման ստեղն"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Ձայնային մուտքագրման ստեղն"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ձայնային ներածման որևէ եղանակ միացված չէ։ Ստուգեք Լեզվի և ներածման կարգավորումները։"</string> <string name="configure_input_method" msgid="373356270290742459">"Կարգավորել մուտքագրման մեթոդները"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Մուտքագրման լեզուներ"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Լեզուներ"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Օգնություն և հետադարձ կապ"</string> - <string name="select_language" msgid="3693815588777926848">"Մուտքագրման լեզուներ"</string> + <string name="select_language" msgid="5709487854987078367">"Լեզուներ"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Պահպանելու համար կրկին հպեք"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Պահելու համար հպեք այստեղ"</string> <string name="has_dictionary" msgid="6071847973466625007">"Բառարանն առկա է"</string> diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index b19b971bf..89b6645ee 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar jika tombol ditekan"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Berbunyi jika tombol ditekan"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Muncul saat tombol ditekan"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferensi masukan"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Tampilan"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opsi multi bahasa"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Preferensi ketikan isyarat"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferensi"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Tampilan & tata letak"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opsi multibahasa"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Ketikan Isyarat"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Koreksi teks"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Beralih ke metode masukan lain"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tombol beralih bahasa juga mencakup metode masukan lain"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tombol pengalih bahasa"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tombol masukan suara"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Tidak ada metode masukan suara yang diaktifkan. Periksa setelan Bahasan & masukan."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan metode masukan"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Bahasa masukan"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Bantuan & masukan"</string> - <string name="select_language" msgid="3693815588777926848">"Bahasa masukan"</string> + <string name="select_language" msgid="5709487854987078367">"Bahasa"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Sentuh lagi untuk menyimpan"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Sentuh di sini untuk menyimpan"</string> <string name="has_dictionary" msgid="6071847973466625007">"Kamus yang tersedia"</string> diff --git a/java/res/values-is-rIS/strings.xml b/java/res/values-is-rIS/strings.xml index 6cb9f8acb..5f38e9fa0 100644 --- a/java/res/values-is-rIS/strings.xml +++ b/java/res/values-is-rIS/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Titringur þegar ýtt er á lykla"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Hljóð þegar ýtt er á lykil"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Stækkaðir stafir við innslátt"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Inntaksvalkostir"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Útlit"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Tungumálavalkostir"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Still. bendingainnsláttar"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Kjörstillingar"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Útlit og skipulag"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Fjölmálavalkostir"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Bendingainnsláttur"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Textaleiðrétting"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Ítarlegt"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Þema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skipta um innsláttaraðferð"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Lykill til að skipta um mál inniheldur aðrar innsláttaraðferðir"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Lykill til að breyta tungumáli"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Raddinntakslykill"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Engar innsláttaraðferðir fyrir rödd virkar. Kannaðu stillingar tungumáls og innsláttar."</string> <string name="configure_input_method" msgid="373356270290742459">"Stilla innsláttaraðferðir"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Innsláttartungumál"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Tungumál"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Hjálp og ábendingar"</string> - <string name="select_language" msgid="3693815588777926848">"Innsláttartungumál"</string> + <string name="select_language" msgid="5709487854987078367">"Tungumál"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Snertu aftur til að vista"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Snertu hér til að vista"</string> <string name="has_dictionary" msgid="6071847973466625007">"Orðabók í boði"</string> diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml index d01724f90..d6e742e3d 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -26,12 +26,13 @@ <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> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferenze di immissione"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspetto"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opzioni multilingue"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref digitazione testuale"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferenze"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspetto e layout"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opzioni multilingue"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Digitazione gestuale"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Correzione testo"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzate"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altri metodi immissione"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Il tasto per cambiare lingua offre altri metodi di immissione"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tasto cambio lingua"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tasto input vocale"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nessun metodo di immissione vocale abilitato. Controlla le impostazioni Lingua e input."</string> <string name="configure_input_method" msgid="373356270290742459">"Configura metodi di immissione"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Lingue comandi"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Lingue"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Guida e feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Lingue comandi"</string> + <string name="select_language" msgid="5709487854987078367">"Lingue"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tocca di nuovo per salvare"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tocca qui per salvare"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dizionario disponibile"</string> diff --git a/java/res/values-iw/strings-emoji-descriptions.xml b/java/res/values-iw/strings-emoji-descriptions.xml index 975ca10a8..d8ef20f53 100644 --- a/java/res/values-iw/strings-emoji-descriptions.xml +++ b/java/res/values-iw/strings-emoji-descriptions.xml @@ -556,8 +556,8 @@ <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"תיקיית קבצים פתוחה"</string> <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"דף עם גלילה מלמטה"</string> <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"דף פונה כלפי מעלה"</string> - <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"לוח שנה"</string> - <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"לוח שנה נתלש"</string> + <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"יומן"</string> + <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"יומן נתלש"</string> <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"כרטסת"</string> <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"תרשים עם מגמת עלייה"</string> <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"תרשים עם מגמת ירידה"</string> diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index d6c398ed6..3da9464e9 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"רטט בלחיצה על מקשים"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"צלילים בעת לחיצה על מקשים"</string> <string name="popup_on_keypress" msgid="123894815723512944">"חלון קופץ בלחיצה על מקש"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"העדפות קלט"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"מראה"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"אפשרויות ריבוי שפות"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"העדפות של הקלדת החלקה"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"העדפות"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"מראה ופריסות"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"אפשרויות לריבוי שפות"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"הקלדת החלקה"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"תיקון טקסט"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"מתקדם"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"עיצוב"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"עבור לשיטות קלט אחרות"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"מתג החלפת השפה מכסה גם שיטות קלט אחרות"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"מתג החלפת שפה"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"מקש קלט קולי"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"לא הופעלו שיטות של קלט קולי. בדוק את הגדרות השפה והקלט."</string> <string name="configure_input_method" msgid="373356270290742459">"הגדרת שיטות קלט"</string> - <string name="language_selection_title" msgid="1651299598555326750">"שפות קלט"</string> + <string name="language_selection_title" msgid="3666971864764478269">"שפות"</string> <string name="help_and_feedback" msgid="5328219371839879161">"עזרה ומשוב"</string> - <string name="select_language" msgid="3693815588777926848">"שפות קלט"</string> + <string name="select_language" msgid="5709487854987078367">"שפות"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"גע שוב כדי לשמור"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"גע כאן כדי לשמור"</string> <string name="has_dictionary" msgid="6071847973466625007">"מילון זמין"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index ccb2bcadf..f8cb10aeb 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"キー操作バイブ"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"キー操作音"</string> <string name="popup_on_keypress" msgid="123894815723512944">"キー押下時ポップアップ"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"入力設定"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"デザイン"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"複数言語オプション"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ジェスチャー入力の設定"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"設定"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"外観とレイアウト"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"多言語オプション"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ジェスチャー入力"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"テキストの修正"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"詳細設定"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"テーマ"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"他の入力方法に切り替え"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"言語切り替えキーは他の入力方法にも対応しています"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"言語切り替えキー"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"音声入力キー"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"有効になっている音声入力方法がありません。[言語と入力]設定をご確認ください。"</string> <string name="configure_input_method" msgid="373356270290742459">"入力方法を設定"</string> - <string name="language_selection_title" msgid="1651299598555326750">"入力言語"</string> + <string name="language_selection_title" msgid="3666971864764478269">"言語"</string> <string name="help_and_feedback" msgid="5328219371839879161">"ヘルプとフィードバック"</string> - <string name="select_language" msgid="3693815588777926848">"入力言語"</string> + <string name="select_language" msgid="5709487854987078367">"言語"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"保存するにはもう一度タップ"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ここをタップして保存します"</string> <string name="has_dictionary" msgid="6071847973466625007">"辞書を利用できます"</string> diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml index 1ef53ac50..f368f72e6 100644 --- a/java/res/values-ka-rGE/strings.xml +++ b/java/res/values-ka-rGE/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"ვიბრაცია კლავიშზე დაჭერისას"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"ხმა კლავიშზე დაჭერისას"</string> <string name="popup_on_keypress" msgid="123894815723512944">"გადიდება ღილაკზე დაჭერისას"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"შეყვანის პარამეტრები"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"იერსახე"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"მრავალენობრივი ვარიანტები"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ჟესტით შეყვ. პარამეტრები"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"პარამეტრები"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"იარსახე & განლაგებები"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"მრავალენობრივი ვარიანტები"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ჟესტებით წერა"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"ტექსტის კორექცია"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"გაფართოებული"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"თემა"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"შეყვანის სხვა მეთოდებზე გადართვა"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ენის გადართვის ღილაკს შეყვანის სხვა მეთოდებსაც შეიცავს"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"ენის გადართვის კლავიში"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"ხმოვანი შეყვანის კლავიში"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ხმოვანი შეყვანის მეთოდები ჩართული არ არის. შეამოწმეთ ენის & შეყვანის პარამეტრები."</string> <string name="configure_input_method" msgid="373356270290742459">"შეყვანის მეთოდების კონფიგურაცია"</string> - <string name="language_selection_title" msgid="1651299598555326750">"შეყვანის ენები"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ენები"</string> <string name="help_and_feedback" msgid="5328219371839879161">"დახმარება და უკუკავშირი"</string> - <string name="select_language" msgid="3693815588777926848">"შეყვანის ენები"</string> + <string name="select_language" msgid="5709487854987078367">"ენები"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"შეეხეთ ისევ შესანახად"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"აქ შეეხეთ, რომ შეინახოს"</string> <string name="has_dictionary" msgid="6071847973466625007">"ხელმისაწვდომია ლექსიკონი"</string> diff --git a/java/res/values-kk-rKZ/strings.xml b/java/res/values-kk-rKZ/strings.xml index 7e07ca7b2..3efa9f93f 100644 --- a/java/res/values-kk-rKZ/strings.xml +++ b/java/res/values-kk-rKZ/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Пернені басқан кездегі діріл"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Пернені басу кезіндегі дыбыс"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Пернені басқан кездегі ашылмалы мәзір"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Енгізу параметрлері"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Сыртқы түр"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Көп тілді опциялар"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Қимыл арқылы теру параметрлері"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Қалауларыңыз"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Сыртқы түр және орналасулар"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Көп тілдік опциялар"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Қимыл арқылы теру"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Мәтінді түзету"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Кеңейтілген"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тақырып"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Басқа енгізу әдістеріне ауыстырыңыз"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тілді ауыстыру пернесі басқа енгізу әдістерін де қамтиды"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Тілді ауыстыру пернесі"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Дауыстық енгізу пернесі"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Дауыспен енгізу әдістері қосылмаған. «Тіл және енгізу параметрлері» тармағын тексеріңіз."</string> <string name="configure_input_method" msgid="373356270290742459">"Енгізу әдістерін теңшеу"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Енгізу тілдері"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Тілдер"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Анықтама және кері байланыс"</string> - <string name="select_language" msgid="3693815588777926848">"Енгізу тілдері"</string> + <string name="select_language" msgid="5709487854987078367">"Тілдер"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Сақтау үшін қайта түртіңіз"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Сақтау үшін осы жерді түртіңіз"</string> <string name="has_dictionary" msgid="6071847973466625007">"Сөздік қолжетімді"</string> diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml index 96dd08c0b..b9350c0b1 100644 --- a/java/res/values-km-rKH/strings.xml +++ b/java/res/values-km-rKH/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"ញ័រនៅពេលចុចគ្រាប់ចុច"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"សំឡេងនៅពេលចុចគ្រាប់ចុច"</string> <string name="popup_on_keypress" msgid="123894815723512944">"លេចឡើងនៅពេលចុចគ្រាប់ចុច"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ចំណូលចិត្តបញ្ចូល"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"រូបរាង"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ជម្រើសភាសាច្រើន"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ចំណូលចិត្តបញ្ចូលកាយវិការ"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ចំណូលចិត្ត"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"រូបរាង & ប្លង់"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"ជម្រើសច្រើនភាសា"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"កាយវិការបញ្ចូល"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"ការកែអត្ថបទ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"កម្រិតខ្ពស់"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"រូបរាង"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ប្ដូរទៅវិធីសាស្ត្របញ្ចូលផ្សេងទៀត"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"គ្រាប់ចុចប្ដូរភាសាតាមវិធីសាស្ត្របញ្ចូលផ្សេងទៀត"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"គ្រាប់ចុចប្ដូរភាសា"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"គ្រាប់ចុចបញ្ចូលសំឡេង"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"គ្មានវិធីសាស្ត្របញ្ចូលសំឡេងបានបើក។ ពិនិត្យមើលការកំណត់ភាសា & ការបញ្ចូល។"</string> <string name="configure_input_method" msgid="373356270290742459">"កំណត់រចនាសម្ព័ន្ធវិធីសាស្ត្របញ្ចូល"</string> - <string name="language_selection_title" msgid="1651299598555326750">"បញ្ចូលភាសា"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ភាសា"</string> <string name="help_and_feedback" msgid="5328219371839879161">"ជំនួយ & មតិត្រឡប់"</string> - <string name="select_language" msgid="3693815588777926848">"បញ្ចូលភាសា"</string> + <string name="select_language" msgid="5709487854987078367">"ភាសា"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"ប៉ះម្ដងទៀត ដើម្បីរក្សាទុក"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ប៉ះទីនេះដើម្បីរក្សាទុក"</string> <string name="has_dictionary" msgid="6071847973466625007">"មានវចនានុក្រម"</string> diff --git a/java/res/values-kn-rIN/strings.xml b/java/res/values-kn-rIN/strings.xml index 7febef86f..cbb8ce140 100644 --- a/java/res/values-kn-rIN/strings.xml +++ b/java/res/values-kn-rIN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ವೈಬ್ರೇಷನ್"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ಶಬ್ದಮಾಡು"</string> <string name="popup_on_keypress" msgid="123894815723512944">"ಕೀ ಒತ್ತಿದಾಗ ಪಾಪ್ ಅಪ್ ಮಾಡು"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ಇನ್ಪುಟ್ ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"ಗೋಚರತೆ"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ಬಹು ಭಾಷಾ ಆಯ್ಕೆಗಳು"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ಗೆಶ್ಚರ್ ಟೈಪಿಂಗ್ ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ಆದ್ಯತೆಗಳು"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"ಗೋಚರತೆ & ಲೇಔಟ್ಗಳು"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"ಬಹುಭಾಷೆ ಆಯ್ಕೆಗಳು"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ಗೆಸ್ಚರ್ ಟೈಪಿಂಗ್"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"ಪಠ್ಯ ತಿದ್ದುಪಡಿ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"ಸುಧಾರಿತ"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"ಥೀಮ್"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ಇತರೆ ಇನ್ಪುಟ್ ವಿಧಾನಗಳಿಗೆ ಬದಲಾಯಿಸು"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ಭಾಷಾ ಬದಲಾವಣೆ ಕೀಯು ಇತರೆ ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಕೂಡ ಒಳಗೊಂಡಿರುತ್ತದೆ"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"ಭಾಷೆ ಬದಲಾವಣೆ ಕೀ"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"ಧ್ವನಿ ಇನ್ಪುಟ್ ಕೀ"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ಯಾವುದೇ ಧ್ವನಿ ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ. ಭಾಷೆ & ಇನ್ಪುಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ."</string> <string name="configure_input_method" msgid="373356270290742459">"ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ಇನ್ಪುಟ್ ಭಾಷೆಗಳು"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ಭಾಷೆಗಳು"</string> <string name="help_and_feedback" msgid="5328219371839879161">"ಸಹಾಯ & ಪ್ರತಿಕ್ರಿಯೆ"</string> - <string name="select_language" msgid="3693815588777926848">"ಇನ್ಪುಟ್ ಭಾಷೆಗಳು"</string> + <string name="select_language" msgid="5709487854987078367">"ಭಾಷೆಗಳು"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"ಉಳಿಸಲು ಮತ್ತೆ ಸ್ಪರ್ಶಿಸಿ"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ಉಳಿಸಲು ಇಲ್ಲಿ ಸ್ಪರ್ಶಿಸಿ"</string> <string name="has_dictionary" msgid="6071847973466625007">"ನಿಘಂಟು ಲಭ್ಯವಿದೆ"</string> diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index 44d4c780b..841dceeba 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"키를 누를 때 진동 발생"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"키를 누를 때 소리 발생"</string> <string name="popup_on_keypress" msgid="123894815723512944">"키를 누를 때 팝업"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"입력 환경설정"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"디자인"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"다중 언어 옵션"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"제스처 타이핑 환경설정"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"환경설정"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"모양 및 레이아웃"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"다국어 옵션"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"제스처 타이핑"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"텍스트 수정"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"고급"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"테마"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"다른 입력 방법으로 전환"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"언어 전환 키가 제공하는 기타 입력 방법"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"언어 전환 키"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"음성 입력 키"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"사용 설정된 음성 입력 방법이 없습니다. 언어 및 입력 설정을 확인하세요."</string> <string name="configure_input_method" msgid="373356270290742459">"입력 방법 설정"</string> - <string name="language_selection_title" msgid="1651299598555326750">"입력 언어"</string> + <string name="language_selection_title" msgid="3666971864764478269">"언어"</string> <string name="help_and_feedback" msgid="5328219371839879161">"도움말 및 의견"</string> - <string name="select_language" msgid="3693815588777926848">"입력 언어"</string> + <string name="select_language" msgid="5709487854987078367">"언어"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"저장하려면 다시 터치"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"저장하려면 여기를 터치하세요."</string> <string name="has_dictionary" msgid="6071847973466625007">"사전 사용 가능"</string> diff --git a/java/res/values-ky-rKG/strings.xml b/java/res/values-ky-rKG/strings.xml index 3f8ac905a..9521676e5 100644 --- a/java/res/values-ky-rKG/strings.xml +++ b/java/res/values-ky-rKG/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Баскыч басылганда дирилдесин"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Баскыч басылганда чыккан үн"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Баскыч басылганда калкып чыкма"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Киргизүү жеке жөндөөлөрү"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Сырткы көрүнүшү"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Көп тилдүү параметрлер"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Жаңсп терүү жеке жөндлөрү"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Мүмкүнчүлүктөрдү тандоо"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Көрүнүш & жайгашуулар"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Көп тилдүү параметрлер"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Жаңсап терүү"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Текстти оңдоо"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Өркүндөтүлгөн"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Башка киргзүү ыкмалрна которуу"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тил которуштуруу баскычында башка киргизүү ыкмалары дагы камтылган"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Тил которуштуруу баскычы"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Үн менен киргизүү баскычы"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Үн менен киргизүү ыкмаларынын бири да иштетилген эмес. Тил & киргизүү жөндөөлөрүн текшериңиз."</string> <string name="configure_input_method" msgid="373356270290742459">"Дайндрд киргзүү ыкмалрн конфигрцлоо"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Киргизүү тилдери"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Тилдер"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Жардам & жооп пикир"</string> - <string name="select_language" msgid="3693815588777926848">"Киргизүү тилдери"</string> + <string name="select_language" msgid="5709487854987078367">"Тилдер"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Сактоо үчүн кайра тийип коюңуз"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Сактоо үчүн бул жерди басыңыз"</string> <string name="has_dictionary" msgid="6071847973466625007">"Сөздүк бар"</string> diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml index 9bf3b63fe..c2d2f1999 100644 --- a/java/res/values-lo-rLA/strings.xml +++ b/java/res/values-lo-rLA/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"ສັ່ນເຕືອນເມື່ອພິມ"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"ສຽງໃນການກົດປຸ່ມ"</string> <string name="popup_on_keypress" msgid="123894815723512944">"ໂຕອັກສອນເວລາພິມ"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ການຕັ້ງຄ່າການປ້ອນຂໍ້ມູນ"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"ຮູບແບບໜ້າຕາ"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ໂຕເລືອກລະບົບຫຼາຍພາສາ"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ການຕັ້ງຄ່າການພິມດ້ວຍທ່າທາງ"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ການປັບຄ່າຕ່າງໆຕາມທີ່ໃຈມັກ"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"ລັກສະນະ & ໂຄງຮ່າງ"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"ຕົວເລືອກຫຼາຍພາສາ"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ການພິມແບບລາກ"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"ການແປງຄຳໃຫ້ຖືກຕ້ອງ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"ຂັ້ນສູງ"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"ຮູບແບບສີສັນ"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ປ່ຽນໄປໃຊ້ການປ້ອນຂໍ້ມູນແບບອື່ນ"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ໂຕປ່ຽນພາສາເປັນທັງໂຕປ່ຽນຮູບແບບການປ້ອນຂໍ້ມູນເຊັ່ນກັນ"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"ປຸ່ມປ່ຽນພາສາ"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"ປຸ່ມປ້ອນຂໍ້ມູນດ້ວຍສຽງ"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ບໍ່ມີວິທີການປ້ອນສຽງເປີດນໍາໃຊ້. ໃຫ້ກວດເບິ່ງການຕັ້ງຄ່າໃນເມນູ ພາສາ & ການປ້ອນຂໍ້ມູນ."</string> <string name="configure_input_method" msgid="373356270290742459">"ຕັ້ງຄ່າຮູບແບບການປ້ອນຂໍ້ມູນ"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ພາສາການປ້ອນຂໍ້ມູນ"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ພາສາ"</string> <string name="help_and_feedback" msgid="5328219371839879161">"ຊ່ວຍເຫຼືອ & ຄຳຕິຊົມ"</string> - <string name="select_language" msgid="3693815588777926848">"ພາສາການປ້ອນຂໍ້ມູນ"</string> + <string name="select_language" msgid="5709487854987078367">"ພາສາ"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"ກົດອີກຄັ້ງເພື່ອບັນທຶກ"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ແຕະບ່ອນນີ້ເພື່ອບັນທຶກ"</string> <string name="has_dictionary" msgid="6071847973466625007">"ມີວັດຈະນານຸກົມ"</string> diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index 42eaace9c..d34e5082e 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Iššoka paspaudus klavišą"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Įvesties nuostatos"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Išvaizda"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Kelių kalbų parinktys"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Įvesties gestais nuostat."</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Nuostatos"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Išvaizda ir išdėstymai"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Kelių kalbų parinktys"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Įvestis gestais"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Teksto taisymas"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Išplėstiniai"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Perj. į kt. įvesties būd."</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kalbos perjungimo klavišu taip pat perjungiami įvesties būdai"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Kalbos keitimo klavišas"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Įvesties balsu klavišas"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nėra jokių įgalintų įvesties balsu metodų. Patikrinkite kalbos ir įvesties nustatymus."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigūruoti įvesties metodus"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Įvesties kalbos"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Kalbos"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Pagalba ir atsiliepimai"</string> - <string name="select_language" msgid="3693815588777926848">"Įvesties kalbos"</string> + <string name="select_language" msgid="5709487854987078367">"Kalbos"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Jei norite išsaugoti, palieskite dar kartą"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Palieskite čia, kad išsaugotumėte"</string> <string name="has_dictionary" msgid="6071847973466625007">"Žodynas galimas"</string> diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index 90ed36666..b075c035b 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Nospiežot taustiņu, parādīt uznirstošo izvēlni"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Ievades preferences"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Izskats"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Vairāku valodu opcijas"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Ievade ar žestiem"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Izskats un izkārtojumi"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Vairākvalodu opcijas"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Ievade ar žestiem"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Teksta korekcija"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Papildu"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Motīvs"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Pārsl. uz citām iev. met."</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Valodas pārslēgš. taustiņu var lietot arī citām ievades metodēm."</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Valodas pārslēgšanas taustiņš"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Balss ievades atslēga"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nav iespējota neviena balss ievades metode. Pārbaudiet valodas un ievades iestatījumus."</string> <string name="configure_input_method" msgid="373356270290742459">"Ievades metožu konfigurēšana"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Ievades valodas"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Valodas"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Palīdzība un atsauksmes"</string> - <string name="select_language" msgid="3693815588777926848">"Ievades valodas"</string> + <string name="select_language" msgid="5709487854987078367">"Valodas"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Pieskarieties vēlreiz, lai saglabātu."</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Lai saglabātu, pieskarieties šeit"</string> <string name="has_dictionary" msgid="6071847973466625007">"Ir pieejama vārdnīca."</string> diff --git a/java/res/values-mk-rMK/strings.xml b/java/res/values-mk-rMK/strings.xml index 53f0ec6c0..5af26b996 100644 --- a/java/res/values-mk-rMK/strings.xml +++ b/java/res/values-mk-rMK/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирање при притисок на копче"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притискање копче"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Појавен прозорец на притискање копче"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Приоритети за внесување"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Изглед"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Повеќејазични опции"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Параметри за пишување"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Претпочитани поставки"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Изглед и распоред"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Повеќејазични опции"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Пишување со движење"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Корекција на текст"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Напредни"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Префрли на други влезни методи"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Копчето за менување јазици покрива и други методи на внес"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Копче за промена на јазик"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Копче за влез на глас"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Не се овозможени методи за гласовно внесување. Проверете ги поставките за Јазик и внесување."</string> <string name="configure_input_method" msgid="373356270290742459">"Конфигурирај методи на влез"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Влезни јазици"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Јазици"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Помош и повратни информации"</string> - <string name="select_language" msgid="3693815588777926848">"Влезни јазици"</string> + <string name="select_language" msgid="5709487854987078367">"Јазици"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Допрете повторно за да се зачува"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Допри тука да се зачува"</string> <string name="has_dictionary" msgid="6071847973466625007">"Речникот е достапен"</string> diff --git a/java/res/values-ml-rIN/strings.xml b/java/res/values-ml-rIN/strings.xml index 3a3d008a9..a109f5bcb 100644 --- a/java/res/values-ml-rIN/strings.xml +++ b/java/res/values-ml-rIN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"കീ അമർത്തുമ്പോൾ വൈബ്രേറ്റുചെയ്യുക"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"കീ അമർത്തുമ്പോഴുള്ള ശബ്ദമുണ്ടാക്കുക"</string> <string name="popup_on_keypress" msgid="123894815723512944">"കീ അമർത്തുമ്പോൾ പോപ്പ്അപ്പ് ചെയ്യുക"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ഇൻപുട്ട് മുൻഗണനകൾ"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"കാഴ്ച്ച"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ഒന്നിലധികം ഭാഷകൾക്കുള്ള ഓപ്ഷനുകൾ"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ടൈപ്പുചെയ്യുന്നതിന് മുൻഗണന നൽകുന്ന സവിശേഷത"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"മുൻഗണനകൾ"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"രൂപഭാവവും ലേഔട്ടുകളും"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"മൾട്ടിലിംഗ്വൽ ഓപ്ഷനുകൾ"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ഗെസ്ചർ ടൈപ്പിംഗ്"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"വാചകം തിരുത്തൽ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"വിപുലമായ"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"തീം"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"മറ്റു ടൈപ്പുചെയ്യൽ രീതികളിലേക്ക് മാറുക"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ഭാഷ മാറൽ കീയിൽ മറ്റ് ടൈപ്പുചെയ്യൽ രീതികളും ഉൾപ്പെടുന്നു"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"ഭാഷ മാറൽ കീ"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"വോയ്സ് ടൈപ്പുചെയ്യൽ കീ"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"വോയ്സ് ടൈപ്പുചെയ്യൽ രീതികളൊന്നും പ്രവർത്തനക്ഷമമല്ല. ഭാഷ & ടൈപ്പു ചെയ്യൽ ക്രമീകരണങ്ങൾ പരിശോധിക്കുക."</string> <string name="configure_input_method" msgid="373356270290742459">"ടൈപ്പുചെയ്യൽ രീതികൾ കോൺഫിഗർ ചെയ്യുക"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ടൈപ്പുചെയ്യൽ ഭാഷകൾ"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ഭാഷകള്"</string> <string name="help_and_feedback" msgid="5328219371839879161">"സഹായവും ഫീഡ്ബാക്കും"</string> - <string name="select_language" msgid="3693815588777926848">"ടൈപ്പുചെയ്യൽ ഭാഷകൾ"</string> + <string name="select_language" msgid="5709487854987078367">"ഭാഷകള്"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"സംരക്ഷിക്കുന്നതിനായി വീണ്ടും സ്പർശിക്കുക"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"സംരക്ഷിക്കാൻ ഇവിടെ സ്പർശിക്കുക"</string> <string name="has_dictionary" msgid="6071847973466625007">"നിഘണ്ടു ലഭ്യമാണ്"</string> @@ -102,7 +103,7 @@ <string name="subtype_emoji" msgid="7483586578074549196">"ഇമോജി"</string> <string name="keyboard_theme" msgid="4909551808526178852">"കീബോർഡ് തീം"</string> <string name="custom_input_styles_title" msgid="8429952441821251512">"ഇഷ്ടാനുസൃത ടൈപ്പുചെയ്യൽ ശൈലികൾ"</string> - <string name="add_style" msgid="6163126614514489951">"ശൈലി ചേർക്കുക"</string> + <string name="add_style" msgid="6163126614514489951">"സ്റ്റൈൽ ചേർക്കുക"</string> <string name="add" msgid="8299699805688017798">"ചേര്ക്കുക"</string> <string name="remove" msgid="4486081658752944606">"നീക്കംചെയ്യുക"</string> <string name="save" msgid="7646738597196767214">"സംരക്ഷിക്കുക"</string> diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml index 4d9de5741..e88cf56e8 100644 --- a/java/res/values-mn-rMN/strings.xml +++ b/java/res/values-mn-rMN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Товч дарахад чичрэх"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Товч дарахад дуу гаргах"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Товч дарахад попап гарна"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Оруулгын тохируулга"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Харагдац"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Олон хэлний сонголтууд"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Зангалтын бичих тохируулга"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Тохируулга"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Харагдац & байрлал"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Олон хэлний сонголт"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Зангаагаар бичих"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Текст залруулалт"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Дэлгэрэнгүй"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Загвар"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Оруулах өөр арга руу шилжүүлэх"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Хэл солих түлхүүрт өөр оруулах аргууд мөн багтсан байгаа"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Хэл солих товч"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Дуун оруулгын товч"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ямар ч дуу оруулах хэрэглүүр идэвхжээгүй байна. Хэл болон оруулалтын тохиргоог шалгана уу."</string> <string name="configure_input_method" msgid="373356270290742459">"Оруулах аргуудын тохиргоо"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Оруулах хэл"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Хэл"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Тусламж & санал хүсэлт"</string> - <string name="select_language" msgid="3693815588777926848">"Оруулах хэл"</string> + <string name="select_language" msgid="5709487854987078367">"Хэл"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Хадгалахын тулд дахин хүрнэ үү"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Хадгалахын тулд хүрнэ үү"</string> <string name="has_dictionary" msgid="6071847973466625007">"Толь бичиг байна"</string> diff --git a/java/res/values-mr-rIN/strings.xml b/java/res/values-mr-rIN/strings.xml index 3561996c9..0d5187823 100644 --- a/java/res/values-mr-rIN/strings.xml +++ b/java/res/values-mr-rIN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"कीप्रेस करताना होणारे कंपन"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"कीप्रेस करताना होणारा ध्वनी"</string> <string name="popup_on_keypress" msgid="123894815723512944">"कीप्रेस करताना पॉपअप"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"इनपुट प्राधान्ये"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"दिसणे"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषिक पर्याय"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"हावभाग टायपिंग प्राधान्ये"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राधान्ये"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"स्वरूप आणि लेआउट"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"बहुभाषिक पर्याय"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"जेश्चर टायपिंग"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"मजकूर दुरुस्ती"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"प्रगत"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट पद्धतींवर स्विच करा"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच की अन्य इनपुट पद्धती देखील समाविष्ट करते"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच की"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"व्हॉइस इनपुट की"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"व्हॉइस इनपुट पद्धती सक्षम केल्या नाहीत. भाषा आणि इनपुट सेटिंग्ज तपासा."</string> <string name="configure_input_method" msgid="373356270290742459">"इनपुट पद्धती कॉन्फिगर करा"</string> - <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषा"</string> + <string name="language_selection_title" msgid="3666971864764478269">"भाषा"</string> <string name="help_and_feedback" msgid="5328219371839879161">"मदत आणि अभिप्राय"</string> - <string name="select_language" msgid="3693815588777926848">"इनपुट भाषा"</string> + <string name="select_language" msgid="5709487854987078367">"भाषा"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"जतन करण्यासाठी पुन्हा स्पर्श करा"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"जतन करण्यासाठी येथे स्पर्श करा"</string> <string name="has_dictionary" msgid="6071847973466625007">"शब्दकोश उपलब्ध"</string> diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml index 471fe5e31..8032f6b7b 100644 --- a/java/res/values-ms-rMY/strings.xml +++ b/java/res/values-ms-rMY/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar pada tekanan kekunci"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Bunyi pada tekanan kekunci"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Pop timbul pada tekanan kunci"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Pilihan input"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Tampilan"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Pilihan berbilang bahasa"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Plhn taipan gerak isyarat"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Pilihan"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Rupa & reka letak"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Pilihan berbilang bahasa"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Taipan Gerak Isyarat"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Pembetulan teks"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Tukar ke kaedah input lain"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kunci pertukaran bahasa meliputi kaedah masukan lain juga"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Kekunci tukar bahasa"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Kunci input suara"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Tiada kaedah input suara didayakan. Semak Bahasa & tetapan input."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan kaedah input"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Bahasa input"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Bantuan & m/balas"</string> - <string name="select_language" msgid="3693815588777926848">"Bahasa input"</string> + <string name="select_language" msgid="5709487854987078367">"Bahasa"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Sentuh lagi untuk menyimpan"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Sentuh di sini untuk menyimpan"</string> <string name="has_dictionary" msgid="6071847973466625007">"Kamus tersedia"</string> diff --git a/java/res/values-my-rMM/strings.xml b/java/res/values-my-rMM/strings.xml index ed0de4eeb..744e384b5 100644 --- a/java/res/values-my-rMM/strings.xml +++ b/java/res/values-my-rMM/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"ခလုတ်နှိပ်သည်နှင့် တုံခါစေပါ"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"ခလုတ်နှိပ်လျှင် အသံမြည်"</string> <string name="popup_on_keypress" msgid="123894815723512944">"ကီးနှိပ်လိုက်သည်နှင့် ပေါ်လာရန်"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"စာရိုက်ထည့်မှု ရွေးစရာ"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"အပြင်အဆင်"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ဘာသာများစွာ ရွေးချယ်မှု"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"အမူယာစာရိုက်ခြင်း စိတ်ကြိုက်များ"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ရွေးချယ်စရာများ"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"အပြင်ပန်း & အပြင်အဆင်များ"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"ဘာသာစကားစုံ ရွေးချယ်စရာများ"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"လှုပ်ရှားမှုဖြင့်စာရိုက်ခြင်း"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"စာအမှားပြပြင်ခြင်း"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"အဆင့်မြင့်"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"အပြင်အဆင်"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"အခြားထည့်သွင်းမည့် နည်းလမ်းများသို့ ပြောင်းရန်"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ဘာသာပြောင်းသည့် ကီးသည် အခြားထည့်သွင်းရန် နည်းလမ်းများလည်း ပါဝင်သည်"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"ဘာသာစကား ပြောင်းခလုတ်"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"အသံထည့်သွင်းရန် ခလုတ်"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"မည်သည့် Check Language & input settings."</string> <string name="configure_input_method" msgid="373356270290742459">"ထည့်သွင်းရန် နည်းလမ်းကို ပြုပြင်မည်"</string> - <string name="language_selection_title" msgid="1651299598555326750">"စာရိုက်ထည့် ဘာသာ"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ဘာသာစကားများ"</string> <string name="help_and_feedback" msgid="5328219371839879161">"အကူအညီ & တုံ့ပြန်ချက်"</string> - <string name="select_language" msgid="3693815588777926848">"စာရိုက်ထည့် ဘာသာ"</string> + <string name="select_language" msgid="5709487854987078367">"ဘာသာစကားများ"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"သိမ်းရန် နောက်တစ်ကြိမ်နှိပ်ပါ"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"သိမ်းရန် ဤနေရာကို ထိပါ"</string> <string name="has_dictionary" msgid="6071847973466625007">"အဘိဓါန်ရနိုင်"</string> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index 8a875bc93..3f929e257 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer ved tastetrykk"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetrykk"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Hurtigvindu ved tastetrykk"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Inndatainnstillinger"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Utseende"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Flerspråksalternativer"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Innstillinger for ordføring"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Innstillinger"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Utseende og utforming"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Flerspråksalternativer"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Ordføring"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstkorrigering"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avansert"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Bytt inndatametode"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasten for språkbytte dekker også andre inndatametoder"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Nøkkel for språkskifte"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tast for taleinndata"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ingen taleinndatametoder er aktivert. Sjekk Språk og inndata-innstillingene."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurer inndatametoder"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Inndataspråk"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Språk"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Hjelp og tilbakemelding"</string> - <string name="select_language" msgid="3693815588777926848">"Inndataspråk"</string> + <string name="select_language" msgid="5709487854987078367">"Språk"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Trykk på nytt for å lagre"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Trykk her for å lagre"</string> <string name="has_dictionary" msgid="6071847973466625007">"Ordbok tilgjengelig"</string> diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml index 514510b3f..dd8fd82bf 100644 --- a/java/res/values-ne-rNP/strings.xml +++ b/java/res/values-ne-rNP/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"कुञ्जी थिच्दा भाइब्रेट"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"कुञ्जी थिच्दा आवाज"</string> <string name="popup_on_keypress" msgid="123894815723512944">"कुञ्जी दबाउँदा पपअप"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"निवेश प्राथमिकता"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"उपस्थिति"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषी विकल्प"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"इशारा टाइप प्राथमिकता"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राथमिकताहरू"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"देखिने; रूपरेखा"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"बहुभाषी विकल्पहरू"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"इशारा टाइपिङ"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"पाठ सुधार"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"उन्नत"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"विषयवस्तु"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट विधिमा स्विच गर्नुहोस्"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच किले अन्य इनपुट विधि पनि समेट्छ"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच कुञ्जी"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"आवाज इनपुट कुञ्जी"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"कुनै आवाज इनपुट विधिहरू सक्षम गरिएका छैनन्। भाषा र इनपुट सेटिङहरूको जाँच गर्नुहोस्।"</string> <string name="configure_input_method" msgid="373356270290742459">"इनपुट विधिहरू कन्फिगर गर्नुहोस्"</string> - <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषाहरू"</string> + <string name="language_selection_title" msgid="3666971864764478269">"भाषाहरू"</string> <string name="help_and_feedback" msgid="5328219371839879161">"मद्दत र प्रतिक्रिया"</string> - <string name="select_language" msgid="3693815588777926848">"इनपुट भाषाहरू"</string> + <string name="select_language" msgid="5709487854987078367">"भाषाहरू"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"बचत गर्न पुनः छुनुहोस्"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"सुरक्षित गर्न यहाँ छुनुहोस्"</string> <string name="has_dictionary" msgid="6071847973466625007">"उपलब्ध शब्दकोश"</string> diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 9b3d1f0a2..e19294eb5 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Trillen bij toetsaanslag"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Geluid bij toetsaanslag"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bij toetsaanslag"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Invoervoorkeuren"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Weergave"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Meertalige opties"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Voorkeuren voor Invoer met bewegingen"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Voorkeuren"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Uiterlijk en indelingen"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Meertalige opties"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Invoer met bewegingen"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstcorrectie"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Geavanceerd"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Thema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Invoermeth. overschakelen"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Schakelknop voor taal ook van toepassing op andere invoermethoden"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Schakelknop voor taal"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Toets voor spraakinvoer"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Geen spraakinvoermethoden ingeschakeld. Ga naar \'Instellingen voor taal en invoer\'."</string> <string name="configure_input_method" msgid="373356270290742459">"Invoermethoden configureren"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Invoertalen"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Talen"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Help en feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Invoertalen"</string> + <string name="select_language" msgid="5709487854987078367">"Talen"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tik nogmaals om op te slaan"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tik hier om op te slaan"</string> <string name="has_dictionary" msgid="6071847973466625007">"Woordenboek beschikbaar"</string> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index e9c6e2c10..3af2b0313 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Powiększ po naciśnięciu"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Opcje wprowadzania"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Wygląd"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opcje obsługi wielu języków"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Ustawienia pisania gestami"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Ustawienia"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Wygląd i układy"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opcje obsługi wielu języków"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanie gestami"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Korekta tekstu"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Zaawansowane"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Motyw"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Inne metody wprowadzania"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Klawisz zmiany języka obejmuje też inne metody wprowadzania"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Klawisz zmiany języka"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Klawisz rozpoznawania mowy"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nie włączono żadnych metod wprowadzania głosowego. Sprawdź ustawienia języka i wprowadzania."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfiguruj metody wprowadzania"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Języki wprowadzania"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Języki"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Pomoc i opinie"</string> - <string name="select_language" msgid="3693815588777926848">"Języki wprowadzania"</string> + <string name="select_language" msgid="5709487854987078367">"Języki"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Dotknij ponownie, aby zapisać"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Kliknij tutaj, by zapisać"</string> <string name="has_dictionary" msgid="6071847973466625007">"Słownik dostępny"</string> diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index 678b38f53..6580aa6a3 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -26,12 +26,13 @@ <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> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferências introdução"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspeto"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opções p/ vários idiomas"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. de intr. de gestos"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspeto e esquemas"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opções para vários idiomas"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Mudar p/ outros mét. ent."</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla de mudança de idioma abrange outros métodos de entrada"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla alterar idioma"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Chave de entrada de voz"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nenhum método de entrada de texto por voz ativado. Verifique as definições de Idioma e introdução."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de introdução"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Ajuda e comentários"</string> - <string name="select_language" msgid="3693815588777926848">"Idiomas de introdução"</string> + <string name="select_language" msgid="5709487854987078367">"Idiomas"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toque novamente para guardar"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toque aqui para guardar"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string> diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index 9e0b6e46e..cf795c4e7 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Exibir pop-up ao digitar"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferências de entrada"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparência"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opções multilíngues"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. da entr. por gestos"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aparência e layouts"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opções multilíngues"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Outros métodos de entrada"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla p/ mudar o idioma também cobre outros métodos de entrada"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de seleção de idioma"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tecla p/ inserir texto por voz"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nenhum método de entrada de texto por voz ativado. Verifique as configurações \"Idioma e entrada\"."</string> <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Ajuda e feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string> + <string name="select_language" msgid="5709487854987078367">"Idiomas"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toque novamente para salvar"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toque aqui para salvar"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index bd537a1fe..c3d1e05c3 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up la apăsarea tastei"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Preferințe pentru intrare"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspect"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opțiuni pt. diverse limbi"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Prefer. tastare gestuală"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferinţe"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspect"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opțiuni multilingve"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Tastare gestuală"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Corectare text"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Setări avansate"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Temă"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Comut. alte metode de introd."</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasta de comutare între limbi include şi alte metode de introd."</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tastă comutare limbi"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tastă pentru intrarea vocală"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nicio metodă de intrare vocală activată. Verificați setările pentru limbă și introducere de text."</string> <string name="configure_input_method" msgid="373356270290742459">"Configuraţi metodele de intrare"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Selectaţi limba"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Limbi"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Ajutor și feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Limbi de introducere de text"</string> + <string name="select_language" msgid="5709487854987078367">"Limbi"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Atingeţi din nou pentru a salva"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Atingeți aici pentru a salva"</string> <string name="has_dictionary" msgid="6071847973466625007">"Dicţionar disponibil"</string> diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index 491e180ca..277c5ffb7 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Виброотклик клавиш"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Звук клавиш"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Увеличение нажатых"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Параметры ввода"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Внешний вид"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Языковые параметры"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Непрерывный ввод"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Настройки"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Вид и разметка"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Дополнительные языки"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Непрерывный ввод"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Исправление текста"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Дополнительные настройки"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Смена способов ввода"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавиша переключения языков также служит для смены способа ввода"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Клавиша смены языка"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Кнопка голосового ввода"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Голосовой способ ввода не включен. Проверьте раздел настроек \"Язык и ввод\"."</string> <string name="configure_input_method" msgid="373356270290742459">"Настройка способов ввода"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Языки ввода"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Выберите язык"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Справка/отзыв"</string> - <string name="select_language" msgid="3693815588777926848">"Языки ввода"</string> + <string name="select_language" msgid="5709487854987078367">"Язык"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Нажмите, чтобы сохранить"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Нажмите, чтобы сохранить"</string> <string name="has_dictionary" msgid="6071847973466625007">"Доступен словарь"</string> diff --git a/java/res/values-si-rLK/strings.xml b/java/res/values-si-rLK/strings.xml index 72a44374e..99b434705 100644 --- a/java/res/values-si-rLK/strings.xml +++ b/java/res/values-si-rLK/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"යතුර එබීමට කම්පනය කිරීම සක්රියයි"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"යතුරු එබිම මත හඬ"</string> <string name="popup_on_keypress" msgid="123894815723512944">"යතුරු එබීම මත උත්පතනය"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ආදාන මනාපය"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"පෙනුම"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"බහු මූර්ධජ අක්ෂර විකල්ප"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"ඉංගිතයෙන් ටයිප් කිරීමේ මනාපය"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"අභිරුචි"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"පෙනුම සහ පිරිසැලසුම්"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"බහු භාෂා විකල්ප"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"ඉංගිත ටයිප් කිරීම"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"පෙළ නිවැරදි කිරීම"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"උසස්"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"තේමාව"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"වෙනත් ආදාන ක්රම වෙත මාරුවන්න"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"භාෂා මාරු යතුර වෙනත් ආදාන ක්රමද ආවරණය කරයි"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"භාෂා මාරු යතුර"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"හඬ ආදාන යතුර"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"හඬ ආදාන සබල කර නැත. භාෂාව සහ ආදාන සැකසීම් පරීක්ෂා කරන්න."</string> <string name="configure_input_method" msgid="373356270290742459">"ආදාන ක්රම වින්යාස කරන්න"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ආදාන භාෂා"</string> + <string name="language_selection_title" msgid="3666971864764478269">"භාෂා"</string> <string name="help_and_feedback" msgid="5328219371839879161">"උදවු සහ ප්රතිපෝෂණ"</string> - <string name="select_language" msgid="3693815588777926848">"ආදාන භාෂා"</string> + <string name="select_language" msgid="5709487854987078367">"භාෂා"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"සුරැකීමට නැවත ස්පර්ශ කරන්න"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"සුරැකීමට මෙතැන ස්පර්ෂ කරන්න"</string> <string name="has_dictionary" msgid="6071847973466625007">"ශබ්ද කෝෂය ලබාගත හැක"</string> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index b9c2b0e2f..bedc6b377 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Zobraziť znaky pri stlačení klávesu"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Predvoľby vstupu"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Vzhľad"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Možnosti viacer. jazykov"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Predvoľby písania gestami"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Predvoľby"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Vzhľad a rozloženia"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Možnosti viacerých jazykov"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Písanie gestami"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Oprava textu"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Rozšírené"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Motív"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prepnúť na iné metódy vstupu"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kláves na prepnutie jazyka pokrýva aj ďalšie metódy vstupu"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Kľúč na prepínanie jazyka"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Kľúč hlasového vstupu"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nie sú povolené žiadne metódy hlasového vstupu. Skontrolujte nastavenia položky Jazyk a vstup."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurovať metódy vstupu"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Jazyky vstupu"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Jazyky"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Pomocník a spätná väzba"</string> - <string name="select_language" msgid="3693815588777926848">"Jazyky vstupu"</string> + <string name="select_language" msgid="5709487854987078367">"Jazyky"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Opätovným dotykom uložíte"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klepnutím tu uložíte"</string> <string name="has_dictionary" msgid="6071847973466625007">"K dispozícii je slovník"</string> diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index 39179d1ff..a322ed0e5 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibriranje ob pritisku tipke"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Zvok ob pritisku tipke"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Povečaj črko ob pritisku"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Nastavitve vnosa"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Videz"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Večjezikovne možnosti"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Nastavitve pisanja s kretnjami"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Nastavitve"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Videz in postavitve"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Večjezikovne možnosti"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanje s kretnjami"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Popravki besedila"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Dodatno"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prekl. na drug nač. vnosa"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tipka za preklop jezika, ki vključuje tudi druge načine vnosa"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tipka za preklop med jeziki"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni vnos"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ni omogočenih glasovnih načinov vnosa. Preverite nastavitve v razdelku »Jezik in vnos«."</string> <string name="configure_input_method" msgid="373356270290742459">"Nastavitev načinov vnosa"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Jeziki vnosa"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Jeziki"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Pomoč in povratne informacije"</string> - <string name="select_language" msgid="3693815588777926848">"Jeziki vnosa"</string> + <string name="select_language" msgid="5709487854987078367">"Jeziki"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Dotaknite se še enkrat, da shranite"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Če želite shraniti, se dotaknite tukaj"</string> <string name="has_dictionary" msgid="6071847973466625007">"Slovar je na voljo"</string> diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index 2b69a6c74..a5c2a3bf9 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирај на притисак тастера"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притисак тастера"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Искачући прозор приликом притиска тастера"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Подешавања уноса"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Изглед"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Опције за више језика"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Подешавања за унос покретима"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Подешавања"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Изглед и распореди"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Опције за више језика"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Куцање покретима"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Исправљање текста"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Напредно"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Пребаци на друге методе уноса"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тастер за пребацивање језика обухвата и друге методе уноса"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Тастер за пребацивање језика"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Тастер за гласовни унос"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ниједан метод гласовног уноса није омогућен. Проверите Подешавања језика и уноса."</string> <string name="configure_input_method" msgid="373356270290742459">"Конфигурисање метода уноса"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Језици за унос"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Језици"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Помоћ и повратне информације"</string> - <string name="select_language" msgid="3693815588777926848">"Језици уноса"</string> + <string name="select_language" msgid="5709487854987078367">"Језици"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Поново додирните да бисте сачували"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Додирните овде да бисте сачували"</string> <string name="has_dictionary" msgid="6071847973466625007">"Речник је доступан"</string> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index e5c6d3bb7..6bf3a32d1 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrera vid tangenttryck"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Knappljud"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Popup vid knapptryck"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Inmatningsinställningar"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Utseende"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Flerspråkiga alternativ"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Inställningar för att skriva in gester"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Inställningar"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Utseende och layouter"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Alternativ för flera språk"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Svepskrivning"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Textkorrigering"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Avancerat"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Byt till annan inmatning"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Språkbytesknappen omfattar även andra inmatningsmetoder"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Knapp för att byta språk"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Röstinmatningsknapp"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ingen röstinmatningsmetod har aktiverats. Kontrollera språk- och inmatningsinställningarna."</string> <string name="configure_input_method" msgid="373356270290742459">"Konfigurera inmatningsmetoder"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Inmatningsspråk"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Språk"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Hjälp och feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Inmatningsspråk"</string> + <string name="select_language" msgid="5709487854987078367">"Språk"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Spara genom att trycka igen"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tryck här om du vill spara"</string> <string name="has_dictionary" msgid="6071847973466625007">"En ordlista är tillgänglig"</string> diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml index b2f4d41c7..cd4a25ba0 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -26,12 +26,13 @@ <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> - <string name="settings_screen_input" msgid="2808654300248306866">"Andika mapendeleo"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Mwonekano"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Chaguo za lugha nyingi"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Mapendeleo ya kuchapa kwa ishara"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Mapendeleo"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Muonekano na mipangilio"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Chaguo za lugha nyingi"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Kuandika kwa Ishara"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Masahihisho ya maandishi"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Mahiri"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Mandhari"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Badilisha hadi kwa mbinu zingine za ingizo"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Ufunguo wa kubadilisha lugha unashughulikia mbinu zingine za ingizo pia"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Kitufe cha kubadilisha lugha"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Kibao cha kuweka data kwa kutamka"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Hakuna mbinu ya kuweka data kwa kutamka iliyowashwa. Angalia Lugha na mipangilio ya kuingiza data."</string> <string name="configure_input_method" msgid="373356270290742459">"Sanidi mbinu za uingizaji"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Lugha za uingizaji"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Lugha"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Usaidizi na maoni"</string> - <string name="select_language" msgid="3693815588777926848">"Lugha zinazoruhusiwa"</string> + <string name="select_language" msgid="5709487854987078367">"Lugha"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Gusa tena ili kuhifadhi"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Gusa hapa ili uhifadhi"</string> <string name="has_dictionary" msgid="6071847973466625007">"Kamusi inapatikana"</string> diff --git a/java/res/values-ta-rIN/strings.xml b/java/res/values-ta-rIN/strings.xml index d0a71c1d6..bdddc0deb 100644 --- a/java/res/values-ta-rIN/strings.xml +++ b/java/res/values-ta-rIN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"விசையழுத்தின்போது அதிர்வுரு"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"விசையழுத்தத்தின்போது ஒலியெழுப்பு"</string> <string name="popup_on_keypress" msgid="123894815723512944">"விழை அழுத்தத்தின்போது பாப்அப் செய்"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"உள்ளீட்டு விருப்பங்கள்"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"தோற்றம்"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"பல மொழி விருப்பங்கள்"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"சைகைத்தட்டச்சு விருப்பம்"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"விருப்பங்கள்"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"தோற்றம் & தளவமைப்புகள்"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"பன்மொழி தேர்வுகள்"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"சைகைத் தட்டச்சு"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"உரை திருத்தம்"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"மேம்பட்டவை"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"தீம்"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"பிற உள்ளீட்டு முறைகளுக்கு மாறு"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"மொழி மாற்றல் விசை பிற உள்ளீட்டு முறைகளையும் கட்டுப்படுத்துகிறது"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"மொழி மாற்ற விசை"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"குரல் உள்ளீட்டு விசை"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"குரல் உள்ளீட்டு முறைகள் எதுவும் இயக்கப்படவில்லை. மொழி & உள்ளீட்டு அமைப்புகளைச் சரிபார்க்கவும்."</string> <string name="configure_input_method" msgid="373356270290742459">"உள்ளீட்டு முறைகளை உள்ளமைத்தல்"</string> - <string name="language_selection_title" msgid="1651299598555326750">"உள்ளீட்டு மொழிகள்"</string> + <string name="language_selection_title" msgid="3666971864764478269">"மொழிகள்"</string> <string name="help_and_feedback" msgid="5328219371839879161">"உதவி & கருத்து"</string> - <string name="select_language" msgid="3693815588777926848">"உள்ளீட்டு மொழிகள்"</string> + <string name="select_language" msgid="5709487854987078367">"மொழிகள்"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"சேமிக்க தொடவும்"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"சேமிக்க இங்கு தொடவும்"</string> <string name="has_dictionary" msgid="6071847973466625007">"அகராதி உள்ளது"</string> diff --git a/java/res/values-te-rIN/strings.xml b/java/res/values-te-rIN/strings.xml index b4bcf2c2e..d368b057c 100644 --- a/java/res/values-te-rIN/strings.xml +++ b/java/res/values-te-rIN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"కీని నొక్కినప్పుడు వైబ్రేట్"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"కీని నొక్కినప్పుడు ధ్వని"</string> <string name="popup_on_keypress" msgid="123894815723512944">"కీని నొక్కినప్పుడు పాప్అప్ చూపు"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ఇన్పుట్ ప్రాధాన్యతలు"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"కనిపించే తీరు"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"బహుళ భాషా ఎంపికలు"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"సంజ్ఞ టైపింగ్ ప్రాధాన్యతలు"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ప్రాధాన్యతలు"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"కనిపించే తీరు & లేఅవుట్లు"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"బహుభాషా ఎంపికలు"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"సంజ్ఞ టైపింగ్"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"వచన సవరణ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"అధునాతనం"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"థీమ్"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ఇతర ఇన్పుట్ పద్ధతులకు మారండి"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"భాష మార్పు కీ ఇతర ఇన్పుట్ పద్ధతులను కూడా కవర్ చేస్తుంది"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"భాష మార్పు కీ"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"వాయిస్ ఇన్పుట్ కీ"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"వాయిస్ ఇన్పుట్ పద్ధతులు ఏవీ ప్రారంభించబడలేదు. భాష & ఇన్పుట్ సెట్టింగ్లను తనిఖీ చేయండి."</string> <string name="configure_input_method" msgid="373356270290742459">"ఇన్పుట్ పద్ధతులను కాన్ఫిగర్ చేయండి"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ఇన్పుట్ భాషలు"</string> + <string name="language_selection_title" msgid="3666971864764478269">"భాషలు"</string> <string name="help_and_feedback" msgid="5328219371839879161">"సహాయం & అభిప్రాయం"</string> - <string name="select_language" msgid="3693815588777926848">"ఇన్పుట్ భాషలు"</string> + <string name="select_language" msgid="5709487854987078367">"భాషలు"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"సేవ్ చేయడానికి మళ్లీ తాకండి"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"సేవ్ చేయడానికి ఇక్కడ తాకండి"</string> <string name="has_dictionary" msgid="6071847973466625007">"నిఘంటువు అందుబాటులో ఉంది"</string> diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index e32a15593..5dc761de6 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"สั่นเมื่อกดปุ่ม"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"ส่งเสียงเมื่อกดปุ่ม"</string> <string name="popup_on_keypress" msgid="123894815723512944">"ป๊อปอัปเมื่อกดแป้น"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ค่ากำหนดการป้อนข้อมูล"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"ลักษณะที่ปรากฏ"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ตัวเลือกหลายภาษา"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"การป้อนข้อมูลด้วยท่าทาง"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ค่ากำหนด"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"ลักษณะที่ปรากฏและรูปแบบ"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"ตัวเลือกหลายภาษา"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"การป้อนข้อมูลด้วยท่าทาง"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"การแก้ไขข้อความ"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"ขั้นสูง"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"ธีม"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ใช้วิธีการป้อนข้อมูลอื่น"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"แป้นสลับภาษาครอบคลุมวิธีการป้อนข้อมูลอื่นๆ ด้วย"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"แป้นสลับภาษา"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"แป้นการป้อนข้อมูลด้วยเสียง"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ไม่ได้เปิดใช้วิธีการป้อนข้อมูลด้วยเสียง ตรวจสอบภาษาและการตั้งค่าการป้อนข้อมูล"</string> <string name="configure_input_method" msgid="373356270290742459">"กำหนดค่าวิธีการป้อนข้อมูล"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ภาษาในการป้อนข้อมูล"</string> + <string name="language_selection_title" msgid="3666971864764478269">"ภาษา"</string> <string name="help_and_feedback" msgid="5328219371839879161">"ความช่วยเหลือและความคิดเห็น"</string> - <string name="select_language" msgid="3693815588777926848">"ภาษาสำหรับการป้อนข้อมูล"</string> + <string name="select_language" msgid="5709487854987078367">"ภาษา"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"แตะอีกครั้งเพื่อบันทึก"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"แตะที่นี่เพื่อบันทึก"</string> <string name="has_dictionary" msgid="6071847973466625007">"มีพจนานุกรมให้ใช้งาน"</string> diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index 056d55299..7e6e6f7df 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Mag-vibrate sa keypress"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Tumunog sa keypress"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Mag-popup sa keypress"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Mga kagustuhan sa input"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Hitsura"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opsyon sa maraming wika"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Gustong gesture typing"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Mga Kagustuhan"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Hitsura at mga layout"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opsyon na pangmaraming wika"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Pagta-type Gamit ang Galaw"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Pagwawasto ng text"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Lipat iba paraan ng input"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Saklaw din ng key ng pagpalit ng wika ang ibang paraan ng input"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Key ng panlipat ng wika"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Walang naka-enable na pamamaraan ng pag-input ng boses. Suriin ang mga setting ng Pag-input ng wika."</string> <string name="configure_input_method" msgid="373356270290742459">"I-configure ang mga pamamaraan ng pag-input"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Mag-input ng mga wika"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Mga Wika"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Tulong at feedback"</string> - <string name="select_language" msgid="3693815588777926848">"Mga wika ng input"</string> + <string name="select_language" msgid="5709487854987078367">"Mga Wika"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Pinduting muli upang i-save"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Pumindot dito upang mag-save"</string> <string name="has_dictionary" msgid="6071847973466625007">"Available ang diksyunaryo"</string> diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index 66d6c2439..edaa1fc25 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Tuşa basıldığında pop-up aç"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Giriş tercihleri"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Görünüm"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Çok dilli seçenekler"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Hareketle yazma tercihleri"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Tercihler"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Görünüm ve düzen"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Çok dilli seçenekler"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Hareketle Yazma"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Metin düzeltme"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Gelişmiş"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Diğer giriş yöntemine geç"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Dil geçiş tuşu diğer giriş yöntemlerini de kapsar"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Dil değiştirme tuşu"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Ses girişi tuşu"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Hiçbir ses girişi yöntemi etkinleştirilmedi. Dil ve giriş ayarlarını kontrol edin."</string> <string name="configure_input_method" msgid="373356270290742459">"Giriş yöntemlerini yapılandır"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Giriş dilleri"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Diller"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Yardım ve geri bildirim"</string> - <string name="select_language" msgid="3693815588777926848">"Giriş dilleri"</string> + <string name="select_language" msgid="5709487854987078367">"Diller"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Kaydetmek için tekrar dokunun"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Kaydetmek için buraya dokunun"</string> <string name="has_dictionary" msgid="6071847973466625007">"Sözlük kullanılabilir"</string> diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index 7fe07563e..a4032611b 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Вібр. при натисканні клавіш"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натиску клав."</string> <string name="popup_on_keypress" msgid="123894815723512944">"Сплив. при нат.клав."</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Параметри введення"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Вигляд"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Параметри кількома мовами"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Параметри вводу жестами"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Параметри"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Вигляд і макети"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Опції кількома мовами"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Введення тексту жестами"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Виправлення тексту"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Додатково"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Інші методи введення"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавіша зміни мови дозволяє змінювати методи введення"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Клавіша зміни мови"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Ключ голосового вводу"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Способи голосового вводу не ввімкнено. Перейдіть у налаштування \"Мова та введення\"."</string> <string name="configure_input_method" msgid="373356270290742459">"Налаштування методів введення"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Мови вводу"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Мови"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Довідка й відгуки"</string> - <string name="select_language" msgid="3693815588777926848">"Мови введення"</string> + <string name="select_language" msgid="5709487854987078367">"Мови"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Торкніться знову, щоб зберегти"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Торкніться тут, щоб зберегти"</string> <string name="has_dictionary" msgid="6071847973466625007">"Словник доступний"</string> diff --git a/java/res/values-ur-rPK/strings.xml b/java/res/values-ur-rPK/strings.xml index 2e8c9deb5..8bff9757c 100644 --- a/java/res/values-ur-rPK/strings.xml +++ b/java/res/values-ur-rPK/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"کلید دبانے پر وائبریٹ کریں"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"کلید دبانے پر آواز"</string> <string name="popup_on_keypress" msgid="123894815723512944">"کلید دبانے پر پاپ اپ"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"ان پٹ کی ترجیحات"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"موجودگی"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"کثیر لسانی اختیارات"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"اشارہ ٹائپنگ کی ترجیحات"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"ترجیحات"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"ظہور اور لے آؤٹس"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"کثیر لسانی اختیارات"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"اشارہ جاتی ٹائپنگ"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"متن کی اصلاح"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"جدید ترین"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"تھیم"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"دیگر اندراج طریقوں پر سوئچ کریں"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"زبان سوئچ کرنے کی کلید اندراج کے دیگر طریقوں کا بھی احاطہ کرتی ہے"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"زبان سوئچ کرنے کی کلید"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"صوتی ان پٹ کلید"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"کوئی صوتی اندراج کے طریقے فعال نہیں ہیں۔ زبان اور ان پٹ ترتیبات کو چیک کریں۔"</string> <string name="configure_input_method" msgid="373356270290742459">"اندراج کے طریقے کنفیگر کریں"</string> - <string name="language_selection_title" msgid="1651299598555326750">"ان پٹ زبانیں"</string> + <string name="language_selection_title" msgid="3666971864764478269">"زبانیں"</string> <string name="help_and_feedback" msgid="5328219371839879161">"مدد اور تاثرات"</string> - <string name="select_language" msgid="3693815588777926848">"ان پٹ زبانیں"</string> + <string name="select_language" msgid="5709487854987078367">"زبانیں"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"محفوظ کرنے کیلئے دوبارہ ٹچ کریں"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"محفوظ کرنے کیلئے یہاں ٹچ کریں"</string> <string name="has_dictionary" msgid="6071847973466625007">"لغت دستیاب ہے"</string> diff --git a/java/res/values-uz-rUZ/strings.xml b/java/res/values-uz-rUZ/strings.xml index 0eb2c165f..152bbadd3 100644 --- a/java/res/values-uz-rUZ/strings.xml +++ b/java/res/values-uz-rUZ/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"Tugma bosilganda tebranish"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Tugma bosilganda ovoz"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Tugma bosilganda qalqib chiqish"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Matn kiritish sozlamalari"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Tashqi ko‘rinishi"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Ko‘p tilli tanlamalar"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Ishora b-n yozish soz-ri"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Shaxsiy sozlamalar"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Tashqi ko‘rinishi va joylashuvi"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Ko‘p tilli tanlamalar"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Imo-ishoralar bilan yozish"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Matnni tuzatish"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Qo‘shimcha"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Mavzu"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Boshqa usullarga o‘tish"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tilni o‘zgartirish tugmasi matn kiritish usulini ham o‘zgartiradi"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Tilni o‘zgartirish tugmasi"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Ovoz bilan kiritish tugmasi"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ovoz bilan yozish usuli yoqilmagan. Til va matn kiritish sozlamalarini tekshiring."</string> <string name="configure_input_method" msgid="373356270290742459">"Matn kiritish usullarini sozlash"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Matn kiritish tillari"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Tillar"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Yordam va fikr-mulohaza"</string> - <string name="select_language" msgid="3693815588777926848">"Matn kiritish tillari"</string> + <string name="select_language" msgid="5709487854987078367">"Tillar"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Saqlash uchun yana bosing"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Saqlash uchun bu yerga bosing"</string> <string name="has_dictionary" msgid="6071847973466625007">"Lug‘at mavjud"</string> diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 6447a2d74..d5ec922fd 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -26,12 +26,13 @@ <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> <string name="popup_on_keypress" msgid="123894815723512944">"Cửa sổ bật lên khi nhấn phím"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"Tùy chọn nhập"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Giao diện"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Tùy chọn đa ngôn ngữ"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Tùy chọn nhập bằng cử chỉ"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Tùy chọn"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Giao diện và bố cục"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Tùy chọn đa ngôn ngữ"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Nhập bằng cử chỉ"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Sửa văn bản"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Nâng cao"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Chủ đề"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Phương thức nhập khác"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Khóa chuyển ngôn ngữ bao gồm cả các phương thức nhập liệu khác"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Phím chuyển đổi ngôn ngữ"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Khóa nhập giọng nói"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Không có phương thức nhập bằng giọng nói nào được bật. Kiểm tra cài đặt Ngôn ngữ và phương thức nhập."</string> <string name="configure_input_method" msgid="373356270290742459">"Định cấu hình phương thức nhập"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Ngôn ngữ nhập"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Ngôn ngữ"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Trợ giúp và phản hồi"</string> - <string name="select_language" msgid="3693815588777926848">"Ngôn ngữ nhập"</string> + <string name="select_language" msgid="5709487854987078367">"Ngôn ngữ"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Chạm lại để lưu"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Chạm vào đây để lưu"</string> <string name="has_dictionary" msgid="6071847973466625007">"Có sẵn từ điển"</string> diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index df2acc762..901211c83 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"按键振动"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"按键音效"</string> <string name="popup_on_keypress" msgid="123894815723512944">"按键时弹出显示字符"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"输入偏好设置"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"外观"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"多语言选项"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"滑行输入偏好设置"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好设置"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"外观和布局"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"多语言选项"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"滑行输入"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"文字更正"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"高级"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"主题背景"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切换到其他输入法"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"语言切换键也可用于切换其他输入法"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"语言切换键"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"语音输入键"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"未启用任何语音输入法。请检查“语言和输入法”设置。"</string> <string name="configure_input_method" msgid="373356270290742459">"配置输入法"</string> - <string name="language_selection_title" msgid="1651299598555326750">"输入语言"</string> + <string name="language_selection_title" msgid="3666971864764478269">"语言"</string> <string name="help_and_feedback" msgid="5328219371839879161">"帮助和反馈"</string> - <string name="select_language" msgid="3693815588777926848">"输入语言"</string> + <string name="select_language" msgid="5709487854987078367">"语言"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"再次触摸即可保存"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"触摸此处即可保存"</string> <string name="has_dictionary" msgid="6071847973466625007">"有可用字典"</string> diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml index 4a8ed6937..e48434514 100644 --- a/java/res/values-zh-rHK/strings.xml +++ b/java/res/values-zh-rHK/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"按鍵時播放音效"</string> <string name="popup_on_keypress" msgid="123894815723512944">"按鍵時顯示彈出式視窗"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"輸入偏好設定"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"外觀"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"多語言選項"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"觸控輸入偏好設定"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好設定"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"外觀和版面配置"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"多語選項"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"手勢輸入"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"文字更正"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"進階"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"主題背景"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切換至其他輸入法"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"語言切換鍵包括其他輸入法"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"語言切換鍵"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"語音輸入鍵"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"尚未啟用語音輸入法,請檢查語言和輸入設定。"</string> <string name="configure_input_method" msgid="373356270290742459">"設定輸入法"</string> - <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string> + <string name="language_selection_title" msgid="3666971864764478269">"語言"</string> <string name="help_and_feedback" msgid="5328219371839879161">"說明與意見反映"</string> - <string name="select_language" msgid="3693815588777926848">"輸入語言"</string> + <string name="select_language" msgid="5709487854987078367">"語言"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"再次輕觸即可儲存"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"輕觸即可儲存"</string> <string name="has_dictionary" msgid="6071847973466625007">"可使用字典"</string> @@ -140,8 +141,8 @@ <string name="dictionary_settings_title" msgid="8091417676045693313">"附加字典"</string> <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"可使用字典"</string> <string name="dictionary_settings_summary" msgid="5305694987799824349">"字典設定"</string> - <string name="user_dictionaries" msgid="3582332055892252845">"用戶字典"</string> - <string name="default_user_dict_pref_name" msgid="1625055720489280530">"用戶字典"</string> + <string name="user_dictionaries" msgid="3582332055892252845">"使用者字典"</string> + <string name="default_user_dict_pref_name" msgid="1625055720489280530">"使用者字典"</string> <string name="dictionary_available" msgid="4728975345815214218">"可使用字典"</string> <string name="dictionary_downloading" msgid="2982650524622620983">"目前下載中"</string> <string name="dictionary_installed" msgid="8081558343559342962">"已安裝"</string> @@ -179,7 +180,7 @@ <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"編輯字詞"</string> <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"編輯"</string> <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"刪除"</string> - <string name="user_dict_settings_empty_text" msgid="558499587532668203">"您的用戶字典中沒有任何字詞。輕觸 [新增] (+) 按鈕即可新增字詞。"</string> + <string name="user_dict_settings_empty_text" msgid="558499587532668203">"您的使用者字典中沒有任何字詞。輕觸 [新增] (+) 按鈕即可新增字詞。"</string> <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"所有語言"</string> <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"更多語言..."</string> <string name="user_dict_settings_delete" msgid="110413335187193859">"刪除"</string> diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index 120b8da84..abd5c6072 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -26,12 +26,13 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"按鍵聲音"</string> <string name="popup_on_keypress" msgid="123894815723512944">"按鍵時彈出"</string> - <string name="settings_screen_input" msgid="2808654300248306866">"輸入偏好設定"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"外觀"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"多語言選項"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"手勢輸入偏好設定"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好設定"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"外觀與版面配置"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"多語選項"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"手勢輸入"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"文字修正"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"進階"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"主題"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切換到其他輸入法"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"使語言切換鍵包含其他輸入法"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"語言切換鍵"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"語音輸入按鍵"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"尚未啟動語音輸入法,請檢查語言與輸入設定。"</string> <string name="configure_input_method" msgid="373356270290742459">"設定輸入法"</string> - <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string> + <string name="language_selection_title" msgid="3666971864764478269">"語言"</string> <string name="help_and_feedback" msgid="5328219371839879161">"說明與意見回饋"</string> - <string name="select_language" msgid="3693815588777926848">"輸入語言"</string> + <string name="select_language" msgid="5709487854987078367">"語言"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"再次輕觸即可儲存"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"輕觸這裡即可儲存"</string> <string name="has_dictionary" msgid="6071847973466625007">"可用的字典"</string> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index d65b02e1c..b9f40f6bc 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -26,12 +26,13 @@ <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> - <string name="settings_screen_input" msgid="2808654300248306866">"Okuthandwayo kokokufaka"</string> - <string name="settings_screen_appearances" msgid="3611951947835553700">"Ukubonakala"</string> - <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Izinketho zezilimi eziningi"</string> - <string name="settings_screen_gesture" msgid="9113437621722871665">"Okuthandwayo kokuthayipha kokuthinta"</string> + <string name="settings_screen_preferences" msgid="2696713156722014624">"Izintandokazi"</string> + <string name="settings_screen_appearance" msgid="9153102634339912029">"Ukubonakala nezakhiwo"</string> + <string name="settings_screen_multilingual" msgid="1391301621464509659">"Izinketho zezilimi eziningi"</string> + <string name="settings_screen_gesture" msgid="8826372746901183556">"Ukuthayipha ngokuthinta"</string> <string name="settings_screen_correction" msgid="1616818407747682955">"Ukulungisa umbhalo"</string> <string name="settings_screen_advanced" msgid="7472408607625972994">"Okuthuthukisiwe"</string> + <string name="settings_screen_theme" msgid="2137262503543943871">"Itimu"</string> <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Shintshela kwezinye izindlela zokungena"</string> <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Ukhiye wokushintsha ulimi ubandakanya ezinye izindlela zokungenayo"</string> <string name="show_language_switch_key" msgid="5915478828318774384">"Ukhiye wokushintsha ullimi"</string> @@ -74,9 +75,9 @@ <string name="voice_input" msgid="3583258583521397548">"Inkinobho yokufaka izwi"</string> <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Azikho izindlela zokufaka zezwi ezinikwe amandla. Hlola izilungiselelo zolimi kanye nezokufaka."</string> <string name="configure_input_method" msgid="373356270290742459">"Misa izindlela zokufakwayo"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Izilimi zokufakwayo"</string> + <string name="language_selection_title" msgid="3666971864764478269">"Izilimi"</string> <string name="help_and_feedback" msgid="5328219371839879161">"Usizo nempendulo"</string> - <string name="select_language" msgid="3693815588777926848">"Izilimi zokufakwayo"</string> + <string name="select_language" msgid="5709487854987078367">"Izilimi"</string> <string name="hint_add_to_dictionary" msgid="573678656946085380">"Thinta futhi ukuze ulondoloze"</string> <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Thinta lapha ukuze ulondoloze"</string> <string name="has_dictionary" msgid="6071847973466625007">"Isichazamazwi siyatholakala"</string> diff --git a/java/res/values/donottranslate-text-decorator.xml b/java/res/values/donottranslate-text-decorator.xml index 832610b96..269364573 100644 --- a/java/res/values/donottranslate-text-decorator.xml +++ b/java/res/values/donottranslate-text-decorator.xml @@ -19,62 +19,11 @@ --> <resources> - <!-- The delay time in milliseconds from to show the commit indicator --> - <integer name="text_decorator_delay_in_milliseconds_to_show_commit_indicator"> - 500 - </integer> - <!-- The extra margin in dp around the hit area of the commit/add-to-dictionary indicator --> <integer name="text_decorator_hit_area_margin_in_dp"> 4 </integer> - <!-- If true, the commit/add-to-text indicator will be suppressed when the word isn't going to - trigger auto-correction. --> - <bool name="text_decorator_only_for_auto_correction">true</bool> - - <!-- If true, the commit/add-to-text indicator will be suppressed when the word is already in - the dictionary. --> - <bool name="text_decorator_only_for_out_of_vocabulary">false</bool> - - <!-- Background color to be used to highlight the target text when the commit indicator is - visible. --> - <color name="text_decorator_commit_indicator_text_highlight_color"> - #B6E2DE - </color> - - <!-- Background color of the commit indicator. --> - <color name="text_decorator_commit_indicator_background_color"> - #48B6AC - </color> - - <!-- Foreground color of the commit indicator. --> - <color name="text_decorator_commit_indicator_foreground_color"> - #FFFFFF - </color> - - <!-- Viewport size of "text_decorator_commit_indicator_path". --> - <integer name="text_decorator_commit_indicator_path_size"> - 480 - </integer> - - <!-- Coordinates of the closed path to be used to render the commit indicator. - The format is: X[0], Y[0], X[1], Y[1], ..., X[N-1], Y[N-1] --> - <integer-array name="text_decorator_commit_indicator_path"> - <item>180</item> - <item>323</item> - <item>97</item> - <item>240</item> - <item>68</item> - <item>268</item> - <item>180</item> - <item>380</item> - <item>420</item> - <item>140</item> - <item>392</item> - <item>112</item> - </integer-array> - <!-- Background color to be used to highlight the target text when the add-to-dictionary indicator is visible. --> <color name="text_decorator_add_to_dictionary_indicator_text_highlight_color"> diff --git a/java/res/values/keyboard-themes.xml b/java/res/values/keyboard-themes.xml index 9d772c4e7..b0bae9647 100644 --- a/java/res/values/keyboard-themes.xml +++ b/java/res/values/keyboard-themes.xml @@ -26,10 +26,10 @@ <item>@string/keyboard_theme_holo_blue</item> </string-array> <!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. --> - <string-array name="keyboard_theme_ids" translatable="false"> + <integer-array name="keyboard_theme_ids" translatable="false"> <item>3</item> <item>4</item> <item>2</item> <item>0</item> - </string-array> + </integer-array> </resources> diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index e5341f67a..d64444e01 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -38,6 +38,8 @@ <!-- Settings screen title for preferences [CHAR LIMIT=33]--> <string name="settings_screen_preferences">Preferences</string> + <!-- Settings screen title for accounts and privacy preferences [CHAR LIMIT=33]--> + <string name="settings_screen_accounts">Accounts & privacy</string> <!-- Settings screen title for appearance & layouts preferences [CHAR LIMIT=33] --> <string name="settings_screen_appearance">Appearance & layouts</string> <!-- Settings screen title for multilingual options [CHAR_LIMIT=33] --> @@ -51,6 +53,9 @@ <!-- Settings screen title for keyboard theme settings [CHAR LIMIT=33] --> <string name="settings_screen_theme">Theme</string> + <!-- Option for enabling or disabling the split keyboard layout. [CHAR LIMIT=65]--> + <string name="enable_split_keyboard">Enable split keyboard</string> + <!-- Option name for including other IMEs in the language switch list [CHAR LIMIT=30] --> <string name="include_other_imes_in_language_switch_list">Switch to other input methods</string> <!-- Option summary for including other IMEs in the language switch list [CHAR LIMIT=65] --> @@ -174,6 +179,23 @@ <!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]--> <string name="keyboard_layout">Keyboard theme</string> + <!-- Title of the preference item for switching accounts [CHAR LIMIT=30] --> + <string name="switch_accounts">Switch accounts</string> + <!-- Summary of the preference item for switching accounts when no accounts + are selected [CHAR LIMIT=65] --> + <string name="no_accounts_selected">No accounts selected</string> + <!-- Summary of the preference item for switching accounts when an account + is selected [CHAR LIMIT=65] --> + <string name="account_selected">Currently using <xliff:g id="EMAIL_ADDRESS" example="someone@example.com">%1$s</xliff:g></string> + <!-- Positive text for selecting an account --> + <string name="account_select_ok">OK</string> + <!-- Negative text for selecting an account --> + <string name="account_select_cancel">Cancel</string> + <!-- Text for signing out of an account --> + <string name="account_select_sign_out">Sign out</string> + <!-- Title of the account picker dialog for selecting an account [CHAR LIMIT=40] --> + <string name="account_select_title">Select an account to use</string> + <!-- Description for English (UK) keyboard subtype [CHAR LIMIT=25] (UK) should be an abbreviation of United Kingdom to fit in the CHAR LIMIT. --> <string name="subtype_en_GB">English (UK)</string> diff --git a/java/res/xml/keyboard_layout_set_qwerty.xml b/java/res/xml/keyboard_layout_set_qwerty.xml index 1aa6f010a..7c9a1403e 100644 --- a/java/res/xml/keyboard_layout_set_qwerty.xml +++ b/java/res/xml/keyboard_layout_set_qwerty.xml @@ -24,7 +24,7 @@ latin:elementName="alphabet" latin:elementKeyboard="@xml/kbd_qwerty" latin:enableProximityCharsCorrection="true" - latin:supportsSplitLayout="false" /> + latin:supportsSplitLayout="true" /> <Element latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml index c14cd645a..2a5134df6 100644 --- a/java/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -23,6 +23,10 @@ android:title="@string/settings_screen_preferences" android:key="screen_preferences" /> <PreferenceScreen + android:fragment="com.android.inputmethod.latin.settings.AccountsSettingsFragment" + android:title="@string/settings_screen_accounts" + android:key="screen_accounts" /> + <PreferenceScreen android:fragment="com.android.inputmethod.latin.settings.AppearanceSettingsFragment" android:title="@string/settings_screen_appearance" android:key="screen_appearance" /> diff --git a/java/res/xml/prefs_screen_accounts.xml b/java/res/xml/prefs_screen_accounts.xml new file mode 100644 index 000000000..b5d526a3a --- /dev/null +++ b/java/res/xml/prefs_screen_accounts.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2014 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + android:title="@string/settings_screen_accounts"> + + <!-- This preference is a dummy view of the underlying preference. + This isn't persisted and the summary/title is refreshed by the fragment + after inspecting the underlying account preference. --> + <Preference + android:key="account_switcher" + android:persistent="false" + android:title="@string/switch_accounts" + android:summary="@string/no_accounts_selected" /> + + <!-- title will be set programmatically to embed application name --> + <CheckBoxPreference + android:key="pref_enable_metrics_logging" + android:summary="@string/enable_metrics_logging_summary" + android:defaultValue="true" + android:persistent="true" /> +</PreferenceScreen> diff --git a/java/res/xml/prefs_screen_appearance.xml b/java/res/xml/prefs_screen_appearance.xml index 7719c058b..036b66553 100644 --- a/java/res/xml/prefs_screen_appearance.xml +++ b/java/res/xml/prefs_screen_appearance.xml @@ -26,4 +26,9 @@ android:fragment="com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment" android:key="custom_input_styles" android:title="@string/custom_input_styles_title" /> + <CheckBoxPreference + android:key="pref_split_keyboard" + android:title="@string/enable_split_keyboard" + android:persistent="true" + android:defaultValue="false" /> </PreferenceScreen> diff --git a/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java b/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java index 8a2818508..c937eeeaa 100644 --- a/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java @@ -41,6 +41,8 @@ public final class CursorAnchorInfoCompatWrapper { // Note that CursorAnchorInfo has been introduced in API level XX (Build.VERSION_CODE.LXX). private static final CompatUtils.ClassWrapper sCursorAnchorInfoClass; + private static final CompatUtils.ToIntMethodWrapper sGetSelectionStartMethod; + private static final CompatUtils.ToIntMethodWrapper sGetSelectionEndMethod; private static final CompatUtils.ToObjectMethodWrapper<RectF> sGetCharacterBoundsMethod; private static final CompatUtils.ToIntMethodWrapper sGetCharacterBoundsFlagsMethod; private static final CompatUtils.ToObjectMethodWrapper<CharSequence> sGetComposingTextMethod; @@ -52,10 +54,14 @@ public final class CursorAnchorInfoCompatWrapper { private static final CompatUtils.ToObjectMethodWrapper<Matrix> sGetMatrixMethod; private static final CompatUtils.ToIntMethodWrapper sGetInsertionMarkerFlagsMethod; - private static int COMPOSING_TEXT_START_DEFAULT = -1; + private static int INVALID_TEXT_INDEX = -1; static { sCursorAnchorInfoClass = CompatUtils.getClassWrapper( "android.view.inputmethod.CursorAnchorInfo"); + sGetSelectionStartMethod = sCursorAnchorInfoClass.getPrimitiveMethod( + "getSelectionStart", INVALID_TEXT_INDEX); + sGetSelectionEndMethod = sCursorAnchorInfoClass.getPrimitiveMethod( + "getSelectionEnd", INVALID_TEXT_INDEX); sGetCharacterBoundsMethod = sCursorAnchorInfoClass.getMethod( "getCharacterBounds", (RectF)null, int.class); sGetCharacterBoundsFlagsMethod = sCursorAnchorInfoClass.getPrimitiveMethod( @@ -63,7 +69,7 @@ public final class CursorAnchorInfoCompatWrapper { sGetComposingTextMethod = sCursorAnchorInfoClass.getMethod( "getComposingText", (CharSequence)null); sGetComposingTextStartMethod = sCursorAnchorInfoClass.getPrimitiveMethod( - "getComposingTextStart", COMPOSING_TEXT_START_DEFAULT); + "getComposingTextStart", INVALID_TEXT_INDEX); sGetInsertionMarkerBaselineMethod = sCursorAnchorInfoClass.getPrimitiveMethod( "getInsertionMarkerBaseline", 0.0f); sGetInsertionMarkerBottomMethod = sCursorAnchorInfoClass.getPrimitiveMethod( @@ -105,6 +111,14 @@ public final class CursorAnchorInfoCompatWrapper { return FakeHolder.sInstance; } + public int getSelectionStart() { + return sGetSelectionStartMethod.invoke(mInstance); + } + + public int getSelectionEnd() { + return sGetSelectionEndMethod.invoke(mInstance); + } + public CharSequence getComposingText() { return sGetComposingTextMethod.invoke(mInstance); } diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java index 75cc7d4cb..3dbbc9b9b 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java +++ b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java @@ -54,15 +54,13 @@ public class DownloadManagerWrapper { if (null != mDownloadManager) { mDownloadManager.remove(ids); } + } catch (IllegalArgumentException e) { + // This is expected to happen on boot when the device is encrypted. } catch (SQLiteException e) { // We couldn't remove the file from DownloadManager. Apparently, the database can't // be opened. It may be a problem with file system corruption. In any case, there is // not much we can do apart from avoiding crashing. Log.e(TAG, "Can't remove files with ID " + ids + " from download manager", e); - } catch (IllegalArgumentException e) { - // Not sure how this can happen, but it could be another case where the provider - // is disabled. Or it could be a bug in older versions of the framework. - Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } } @@ -71,10 +69,10 @@ public class DownloadManagerWrapper { if (null != mDownloadManager) { return mDownloadManager.openDownloadedFile(fileId); } + } catch (IllegalArgumentException e) { + // This is expected to happen on boot when the device is encrypted. } catch (SQLiteException e) { Log.e(TAG, "Can't open downloaded file with ID " + fileId, e); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } // We come here if mDownloadManager is null or if an exception was thrown. throw new FileNotFoundException(); @@ -85,10 +83,10 @@ public class DownloadManagerWrapper { if (null != mDownloadManager) { return mDownloadManager.query(query); } + } catch (IllegalArgumentException e) { + // This is expected to happen on boot when the device is encrypted. } catch (SQLiteException e) { Log.e(TAG, "Can't query the download manager", e); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } // We come here if mDownloadManager is null or if an exception was thrown. return null; @@ -99,10 +97,10 @@ public class DownloadManagerWrapper { if (null != mDownloadManager) { return mDownloadManager.enqueue(request); } + } catch (IllegalArgumentException e) { + // This is expected to happen on boot when the device is encrypted. } catch (SQLiteException e) { Log.e(TAG, "Can't enqueue a request with the download manager", e); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } return 0; } diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index bd1c1479a..863a8b7ad 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -98,6 +98,16 @@ public class Key implements Comparable<Key> { private final int mWidth; /** Height of the key, excluding the gap */ private final int mHeight; + /** + * The combined width in pixels of the horizontal gaps belonging to this key, both to the left + * and to the right. I.e., mWidth + mHorizontalGap = total width belonging to the key. + */ + private final int mHorizontalGap; + /** + * The combined height in pixels of the vertical gaps belonging to this key, both above and + * below. I.e., mHeight + mVerticalGap = total height belonging to the key. + */ + private final int mVerticalGap; /** X coordinate of the top-left corner of the key in the keyboard layout, excluding the gap. */ private final int mX; /** Y coordinate of the top-left corner of the key in the keyboard layout, excluding the gap. */ @@ -198,8 +208,10 @@ public class Key implements Comparable<Key> { final String hintLabel, final int labelFlags, final int backgroundType, final int x, final int y, final int width, final int height, final int horizontalGap, final int verticalGap) { - mHeight = height - verticalGap; mWidth = width - horizontalGap; + mHeight = height - verticalGap; + mHorizontalGap = horizontalGap; + mVerticalGap = verticalGap; mHintLabel = hintLabel; mLabelFlags = labelFlags; mBackgroundType = backgroundType; @@ -214,7 +226,7 @@ public class Key implements Comparable<Key> { mEnabled = (code != CODE_UNSPECIFIED); mIconId = iconId; // Horizontal gap is divided equally to both sides of the key. - mX = x + horizontalGap / 2; + mX = x + mHorizontalGap / 2; mY = y; mHitBox.set(x, y, x + width + 1, y + height); mKeyVisualAttributes = null; @@ -235,18 +247,21 @@ public class Key implements Comparable<Key> { */ public Key(final String keySpec, final TypedArray keyAttr, final KeyStyle style, final KeyboardParams params, final KeyboardRow row) { - final float horizontalGap = isSpacer() ? 0 : params.mHorizontalGap; + mHorizontalGap = isSpacer() ? 0 : params.mHorizontalGap; + mVerticalGap = params.mVerticalGap; + + final float horizontalGapFloat = mHorizontalGap; final int rowHeight = row.getRowHeight(); - mHeight = rowHeight - params.mVerticalGap; + mHeight = rowHeight - mVerticalGap; final float keyXPos = row.getKeyX(keyAttr); final float keyWidth = row.getKeyWidth(keyAttr, keyXPos); final int keyYPos = row.getKeyY(); // Horizontal gap is divided equally to both sides of the key. - mX = Math.round(keyXPos + horizontalGap / 2); + mX = Math.round(keyXPos + horizontalGapFloat / 2); mY = keyYPos; - mWidth = Math.round(keyWidth - horizontalGap); + mWidth = Math.round(keyWidth - horizontalGapFloat); mHitBox.set(Math.round(keyXPos), keyYPos, Math.round(keyXPos + keyWidth) + 1, keyYPos + rowHeight); // Update row to have current x coordinate. @@ -388,6 +403,8 @@ public class Key implements Comparable<Key> { mIconId = key.mIconId; mWidth = key.mWidth; mHeight = key.mHeight; + mHorizontalGap = key.mHorizontalGap; + mVerticalGap = key.mVerticalGap; mX = key.mX; mY = key.mY; mHitBox.set(key.mHitBox); @@ -702,6 +719,10 @@ public class Key implements Comparable<Key> { return ((mLabelFlags | defaultFlags) & LABEL_FLAGS_KEEP_BACKGROUND_ASPECT_RATIO) != 0; } + public final boolean hasCustomActionLabel() { + return (mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0; + } + private final boolean isShiftedLetterActivated() { return (mLabelFlags & LABEL_FLAGS_SHIFTED_LETTER_ACTIVATED) != 0 && !TextUtils.isEmpty(mHintLabel); @@ -784,6 +805,24 @@ public class Key implements Comparable<Key> { } /** + * The combined width in pixels of the horizontal gaps belonging to this key, both above and + * below. I.e., getWidth() + getHorizontalGap() = total width belonging to the key. + * @return Horizontal gap belonging to this key. + */ + public int getHorizontalGap() { + return mHorizontalGap; + } + + /** + * The combined height in pixels of the vertical gaps belonging to this key, both above and + * below. I.e., getHeight() + getVerticalGap() = total height belonging to the key. + * @return Vertical gap belonging to this key. + */ + public int getVerticalGap() { + return mVerticalGap; + } + + /** * Gets the x-coordinate of the top-left corner of the key in pixels, excluding the gap. * @return The x-coordinate of the top-left corner of the key in pixels, excluding the gap. */ diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index 43c61443e..f9cf3535e 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -77,8 +77,7 @@ public final class KeyboardId { private final int mHashCode; - public KeyboardId(final int elementId, final KeyboardLayoutSet.Params params, - boolean isSplitLayout) { + public KeyboardId(final int elementId, final KeyboardLayoutSet.Params params) { mSubtype = params.mSubtype; mLocale = SubtypeLocaleUtils.getSubtypeLocale(mSubtype); mWidth = params.mKeyboardWidth; @@ -91,7 +90,7 @@ public final class KeyboardId { mCustomActionLabel = (mEditorInfo.actionLabel != null) ? mEditorInfo.actionLabel.toString() : null; mHasShortcutKey = params.mVoiceInputKeyEnabled; - mIsSplitLayout = isSplitLayout; + mIsSplitLayout = params.mIsSplitLayoutEnabled; mHashCode = computeHashCode(this); } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java index 1dbecdc81..47fb7b320 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java @@ -115,6 +115,12 @@ public final class KeyboardLayoutSet { int mKeyboardWidth; int mKeyboardHeight; int mScriptId = ScriptUtils.SCRIPT_LATIN; + // Indicates if the user has enabled the split-layout preference + // and the required ProductionFlags are enabled. + boolean mIsSplitLayoutEnabledByUser; + // Indicates if split layout is actually enabled, taking into account + // whether the user has enabled it, and the keyboard layout supports it. + boolean mIsSplitLayoutEnabled; // Sparse array of KeyboardLayoutSet element parameters indexed by element's id. final SparseArray<ElementParams> mKeyboardLayoutSetElementIdToParamsMap = new SparseArray<>(); @@ -170,9 +176,9 @@ public final class KeyboardLayoutSet { // specified as an elementKeyboard attribute in the file. // The KeyboardId is an internal key for a Keyboard object. - // TODO: AND mSupportsSplitLayout with the user preference that forces a split. - final KeyboardId id = new KeyboardId(keyboardLayoutSetElementId, mParams, - elementParams.mSupportsSplitLayout); + mParams.mIsSplitLayoutEnabled = mParams.mIsSplitLayoutEnabledByUser + && elementParams.mSupportsSplitLayout; + final KeyboardId id = new KeyboardId(keyboardLayoutSetElementId, mParams); try { return getKeyboard(elementParams, id); } catch (final RuntimeException e) { @@ -290,12 +296,19 @@ public final class KeyboardLayoutSet { return this; } - public void disableTouchPositionCorrectionData() { + public Builder disableTouchPositionCorrectionData() { mParams.mDisableTouchPositionCorrectionDataForTest = true; + return this; } - public void setScriptId(final int scriptId) { + public Builder setScriptId(final int scriptId) { mParams.mScriptId = scriptId; + return this; + } + + public Builder setSplitLayoutEnabledByUser(final boolean enabled) { + mParams.mIsSplitLayoutEnabledByUser = enabled; + return this; } public KeyboardLayoutSet build() { diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index d36c199e2..246d11bac 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -17,9 +17,7 @@ package com.android.inputmethod.keyboard; import android.content.Context; -import android.content.SharedPreferences; import android.content.res.Resources; -import android.preference.PreferenceManager; import android.util.Log; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; @@ -38,6 +36,7 @@ import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.RichInputMethodManager; import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.WordComposer; +import com.android.inputmethod.latin.define.ProductionFlags; import com.android.inputmethod.latin.settings.Settings; import com.android.inputmethod.latin.settings.SettingsValues; import com.android.inputmethod.latin.utils.ResourceUtils; @@ -47,7 +46,6 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private static final String TAG = KeyboardSwitcher.class.getSimpleName(); private SubtypeSwitcher mSubtypeSwitcher; - private SharedPreferences mPrefs; private InputView mCurrentInputView; private View mMainKeyboardFrame; @@ -76,13 +74,11 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { } public static void init(final LatinIME latinIme) { - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(latinIme); - sInstance.initInternal(latinIme, prefs); + sInstance.initInternal(latinIme); } - private void initInternal(final LatinIME latinIme, final SharedPreferences prefs) { + private void initInternal(final LatinIME latinIme) { mLatinIME = latinIme; - mPrefs = prefs; mSubtypeSwitcher = SubtypeSwitcher.getInstance(); mState = new KeyboardState(this); mIsHardwareAcceleratedDrawingEnabled = @@ -91,7 +87,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { public void updateKeyboardTheme() { final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper( - mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs)); + mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */)); if (themeUpdated && mKeyboardView != null) { mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled)); } @@ -119,6 +115,8 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype()); builder.setVoiceInputKeyEnabled(settingsValues.mShowsVoiceInputKey); builder.setLanguageSwitchKeyEnabled(mLatinIME.shouldShowLanguageSwitchKey()); + builder.setSplitLayoutEnabledByUser(ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED + && settingsValues.mIsSplitKeyboardEnabled); mKeyboardLayoutSet = builder.build(); try { mState.onLoadKeyboard(currentAutoCapsState, currentRecapitalizeState); @@ -348,7 +346,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { } updateKeyboardThemeAndContextThemeWrapper( - mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs)); + mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */)); mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate( R.layout.input_view, null); mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java index 7161d3f26..6d8c8b76f 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java @@ -16,14 +16,17 @@ package com.android.inputmethod.keyboard; +import android.content.Context; import android.content.SharedPreferences; import android.os.Build.VERSION_CODES; +import android.preference.PreferenceManager; import android.util.Log; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.compat.BuildCompatUtils; import com.android.inputmethod.latin.R; +import java.util.ArrayList; import java.util.Arrays; public final class KeyboardTheme implements Comparable<KeyboardTheme> { @@ -40,7 +43,10 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { public static final int THEME_ID_LXX_DARK = 4; public static final int DEFAULT_THEME_ID = THEME_ID_KLP; - private static final KeyboardTheme[] KEYBOARD_THEMES = { + private static KeyboardTheme[] AVAILABLE_KEYBOARD_THEMES; + + @UsedForTesting + static final KeyboardTheme[] KEYBOARD_THEMES = { new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS, // This has never been selected because we support ICS or later. VERSION_CODES.BASE), @@ -93,9 +99,10 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { } @UsedForTesting - static KeyboardTheme searchKeyboardThemeById(final int themeId) { + static KeyboardTheme searchKeyboardThemeById(final int themeId, + final KeyboardTheme[] availableThemeIds) { // TODO: This search algorithm isn't optimal if there are many themes. - for (final KeyboardTheme theme : KEYBOARD_THEMES) { + for (final KeyboardTheme theme : availableThemeIds) { if (theme.mThemeId == themeId) { return theme; } @@ -105,13 +112,14 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { @UsedForTesting static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs, - final int sdkVersion) { + final int sdkVersion, final KeyboardTheme[] availableThemeArray) { final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null); if (klpThemeIdString != null) { if (sdkVersion <= VERSION_CODES.KITKAT) { try { final int themeId = Integer.parseInt(klpThemeIdString); - final KeyboardTheme theme = searchKeyboardThemeById(themeId); + final KeyboardTheme theme = searchKeyboardThemeById(themeId, + availableThemeArray); if (theme != null) { return theme; } @@ -125,22 +133,21 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply(); } // TODO: This search algorithm isn't optimal if there are many themes. - for (final KeyboardTheme theme : KEYBOARD_THEMES) { + for (final KeyboardTheme theme : availableThemeArray) { if (sdkVersion >= theme.mMinApiVersion) { return theme; } } - return searchKeyboardThemeById(DEFAULT_THEME_ID); + return searchKeyboardThemeById(DEFAULT_THEME_ID, availableThemeArray); } public static String getKeyboardThemeName(final int themeId) { - final KeyboardTheme theme = searchKeyboardThemeById(themeId); + final KeyboardTheme theme = searchKeyboardThemeById(themeId, KEYBOARD_THEMES); return theme.mThemeName; } - public static void saveKeyboardThemeId(final String themeIdString, - final SharedPreferences prefs) { - saveKeyboardThemeId(themeIdString, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT); + public static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs) { + saveKeyboardThemeId(themeId, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT); } @UsedForTesting @@ -152,25 +159,45 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { } @UsedForTesting - static void saveKeyboardThemeId(final String themeIdString, - final SharedPreferences prefs, final int sdkVersion) { + static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs, + final int sdkVersion) { final String prefKey = getPreferenceKey(sdkVersion); - prefs.edit().putString(prefKey, themeIdString).apply(); + prefs.edit().putString(prefKey, Integer.toString(themeId)).apply(); } - public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) { - return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT); + public static KeyboardTheme getKeyboardTheme(final Context context) { + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context); + return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT, availableThemeArray); + } + + static KeyboardTheme[] getAvailableThemeArray(final Context context) { + if (AVAILABLE_KEYBOARD_THEMES == null) { + final int[] availableThemeIdStringArray = context.getResources().getIntArray( + R.array.keyboard_theme_ids); + final ArrayList<KeyboardTheme> availableThemeList = new ArrayList<>(); + for (final int id : availableThemeIdStringArray) { + final KeyboardTheme theme = searchKeyboardThemeById(id, KEYBOARD_THEMES); + if (theme != null) { + availableThemeList.add(theme); + } + } + AVAILABLE_KEYBOARD_THEMES = availableThemeList.toArray( + new KeyboardTheme[availableThemeList.size()]); + } + return AVAILABLE_KEYBOARD_THEMES; } @UsedForTesting - static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion) { + static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion, + final KeyboardTheme[] availableThemeArray) { final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null); if (lxxThemeIdString == null) { - return getDefaultKeyboardTheme(prefs, sdkVersion); + return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray); } try { final int themeId = Integer.parseInt(lxxThemeIdString); - final KeyboardTheme theme = searchKeyboardThemeById(themeId); + final KeyboardTheme theme = searchKeyboardThemeById(themeId, availableThemeArray); if (theme != null) { return theme; } @@ -180,6 +207,6 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { } // Remove preference that contains unknown or illegal theme id. prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply(); - return getDefaultKeyboardTheme(prefs, sdkVersion); + return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray); } } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index bb3cbb0eb..98cd1da54 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -343,7 +343,9 @@ public class KeyboardView extends View { final int keyWidth = key.getDrawWidth(); final int keyHeight = key.getHeight(); final int bgWidth, bgHeight, bgX, bgY; - if (key.needsToKeepBackgroundAspectRatio(mDefaultKeyLabelFlags)) { + if (key.needsToKeepBackgroundAspectRatio(mDefaultKeyLabelFlags) + // HACK: To disable expanding normal/functional key background. + && !key.hasCustomActionLabel()) { final int intrinsicWidth = background.getIntrinsicWidth(); final int intrinsicHeight = background.getIntrinsicHeight(); final float minScale = Math.min( diff --git a/java/src/com/android/inputmethod/keyboard/TextDecorator.java b/java/src/com/android/inputmethod/keyboard/TextDecorator.java index f614b2257..315d36313 100644 --- a/java/src/com/android/inputmethod/keyboard/TextDecorator.java +++ b/java/src/com/android/inputmethod/keyboard/TextDecorator.java @@ -17,23 +17,22 @@ package com.android.inputmethod.keyboard; import android.graphics.Matrix; -import android.graphics.PointF; import android.graphics.RectF; import android.inputmethodservice.InputMethodService; import android.os.Message; import android.text.TextUtils; import android.util.Log; import android.view.View; +import android.view.inputmethod.CursorAnchorInfo; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper; -import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.utils.LeakGuardHandlerWrapper; import javax.annotation.Nonnull; /** - * A controller class of commit/add-to-dictionary indicator (a.k.a. TextDecorator). This class + * A controller class of the add-to-dictionary indicator (a.k.a. TextDecorator). This class * is designed to be independent of UI subsystems such as {@link View}. All the UI related * operations are delegated to {@link TextDecoratorUi} via {@link TextDecoratorUiOperator}. */ @@ -41,18 +40,22 @@ public class TextDecorator { private static final String TAG = TextDecorator.class.getSimpleName(); private static final boolean DEBUG = false; - private static final int MODE_NONE = 0; - private static final int MODE_COMMIT = 1; - private static final int MODE_ADD_TO_DICTIONARY = 2; + private static final int INVALID_CURSOR_INDEX = -1; - private int mMode = MODE_NONE; + private static final int MODE_MONITOR = 0; + private static final int MODE_WAITING_CURSOR_INDEX = 1; + private static final int MODE_SHOWING_INDICATOR = 2; - private final PointF mLocalOrigin = new PointF(); - private final RectF mRelativeIndicatorBounds = new RectF(); - private final RectF mRelativeComposingTextBounds = new RectF(); + private int mMode = MODE_MONITOR; + + private String mLastComposingText = null; + private RectF mIndicatorBoundsForLastComposingText = new RectF(); + private RectF mComposingTextBoundsForLastComposingText = new RectF(); private boolean mIsFullScreenMode = false; - private SuggestedWordInfo mWaitingWord = null; + private String mWaitingWord = null; + private int mWaitingCursorStart = INVALID_CURSOR_INDEX; + private int mWaitingCursorEnd = INVALID_CURSOR_INDEX; private CursorAnchorInfoCompatWrapper mCursorAnchorInfoWrapper = null; @Nonnull @@ -63,16 +66,10 @@ public class TextDecorator { public interface Listener { /** - * Called when the user clicks the composing text to commit. - * @param wordInfo the suggested word which the user clicked on. + * Called when the user clicks the indicator to add the word into the dictionary. + * @param word the word which the user clicked on. */ - void onClickComposingTextToCommit(final SuggestedWordInfo wordInfo); - - /** - * Called when the user clicks the composing text to add the word into the dictionary. - * @param wordInfo the suggested word which the user clicked on. - */ - void onClickComposingTextToAddToDictionary(final SuggestedWordInfo wordInfo); + void onClickComposingTextToAddToDictionary(final String word); } public TextDecorator(final Listener listener) { @@ -103,46 +100,19 @@ public class TextDecorator { } /** - * Shows the "Commit" indicator and associates it with the given suggested word. - * - * <p>The effect of {@link #showCommitIndicator(SuggestedWordInfo)} and - * {@link #showAddToDictionaryIndicator(SuggestedWordInfo)} are exclusive to each other. Call - * {@link #reset()} to hide the indicator.</p> - * - * @param wordInfo the suggested word which should be associated with the indicator. This object - * will be passed back in {@link Listener#onClickComposingTextToCommit(SuggestedWordInfo)} - */ - public void showCommitIndicator(final SuggestedWordInfo wordInfo) { - if (mMode == MODE_COMMIT && wordInfo != null && - TextUtils.equals(mWaitingWord.mWord, wordInfo.mWord)) { - // Skip layout for better performance. - return; - } - mWaitingWord = wordInfo; - mMode = MODE_COMMIT; - layoutLater(); - } - - /** - * Shows the "Add to dictionary" indicator and associates it with associating the given - * suggested word. - * - * <p>The effect of {@link #showCommitIndicator(SuggestedWordInfo)} and - * {@link #showAddToDictionaryIndicator(SuggestedWordInfo)} are exclusive to each other. Call - * {@link #reset()} to hide the indicator.</p> + * Shows the "Add to dictionary" indicator and associates it with associating the given word. * - * @param wordInfo the suggested word which should be associated with the indicator. This object - * will be passed back in - * {@link Listener#onClickComposingTextToAddToDictionary(SuggestedWordInfo)}. + * @param word the word which should be associated with the indicator. This object will be + * passed back in {@link Listener#onClickComposingTextToAddToDictionary(String)}. + * @param selectionStart the cursor index (inclusive) when the indicator should be displayed. + * @param selectionEnd the cursor index (exclusive) when the indicator should be displayed. */ - public void showAddToDictionaryIndicator(final SuggestedWordInfo wordInfo) { - if (mMode == MODE_ADD_TO_DICTIONARY && wordInfo != null && - TextUtils.equals(mWaitingWord.mWord, wordInfo.mWord)) { - // Skip layout for better performance. - return; - } - mWaitingWord = wordInfo; - mMode = MODE_ADD_TO_DICTIONARY; + public void showAddToDictionaryIndicator(final String word, final int selectionStart, + final int selectionEnd) { + mWaitingWord = word; + mWaitingCursorStart = selectionStart; + mWaitingCursorEnd = selectionEnd; + mMode = MODE_WAITING_CURSOR_INDEX; layoutLater(); return; } @@ -165,18 +135,19 @@ public class TextDecorator { */ public void reset() { mWaitingWord = null; - mMode = MODE_NONE; - mLocalOrigin.set(0.0f, 0.0f); - mRelativeIndicatorBounds.set(0.0f, 0.0f, 0.0f, 0.0f); - mRelativeComposingTextBounds.set(0.0f, 0.0f, 0.0f, 0.0f); + mMode = MODE_MONITOR; + mWaitingCursorStart = INVALID_CURSOR_INDEX; + mWaitingCursorEnd = INVALID_CURSOR_INDEX; cancelLayoutInternalExpectedly("Resetting internal state."); } /** - * Must be called when the {@link InputMethodService#onUpdateCursorAnchorInfo()} is called. + * Must be called when the {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} + * is called. * * <p>CAVEAT: Currently the input method author is responsible for ignoring - * {@link InputMethodService#onUpdateCursorAnchorInfo()} called in full screen mode.</p> + * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} called in full screen + * mode.</p> * @param info the compatibility wrapper object for the received {@link CursorAnchorInfo}. */ public void onUpdateCursorAnchorInfo(final CursorAnchorInfoCompatWrapper info) { @@ -185,29 +156,6 @@ public class TextDecorator { layoutImmediately(); } - /** - * Hides indicator if the new composing text doesn't match the expected one. - * - * <p>Calling this method is optional but recommended whenever the new composition is passed to - * the application. The motivation of this method is to reduce the UI latency. With this method, - * we can hide the indicator without waiting the arrival of the - * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} callback, assuming that - * the application accepts the new composing text without any modification. Even if this - * assumption is false, the indicator will be shown again when - * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} is actually received. - * </p> - * - * @param newComposingText the new composing text that is being passed to the application. - */ - public void hideIndicatorIfNecessary(final CharSequence newComposingText) { - if (mMode != MODE_COMMIT && mMode != MODE_ADD_TO_DICTIONARY) { - return; - } - if (!TextUtils.equals(newComposingText, mWaitingWord.mWord)) { - mUiOperator.hideUi(); - } - } - private void cancelLayoutInternalUnexpectedly(final String message) { mUiOperator.hideUi(); Log.d(TAG, message); @@ -232,15 +180,6 @@ public class TextDecorator { } private void layoutMain() { - if (mMode != MODE_COMMIT && mMode != MODE_ADD_TO_DICTIONARY) { - if (mMode == MODE_NONE) { - cancelLayoutInternalExpectedly("Not ready for layouting."); - } else { - cancelLayoutInternalUnexpectedly("Unknown mMode=" + mMode); - } - return; - } - final CursorAnchorInfoCompatWrapper info = mCursorAnchorInfoWrapper; if (info == null) { @@ -254,104 +193,117 @@ public class TextDecorator { } final CharSequence composingText = info.getComposingText(); - if (mMode == MODE_COMMIT) { - if (composingText == null) { - cancelLayoutInternalExpectedly("composingText is null."); - return; - } + if (!TextUtils.isEmpty(composingText)) { final int composingTextStart = info.getComposingTextStart(); final int lastCharRectIndex = composingTextStart + composingText.length() - 1; final RectF lastCharRect = info.getCharacterBounds(lastCharRectIndex); - final int lastCharRectFlag = info.getCharacterBoundsFlags(lastCharRectIndex); + final int lastCharRectFlags = info.getCharacterBoundsFlags(lastCharRectIndex); final boolean hasInvisibleRegionInLastCharRect = - (lastCharRectFlag & CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) + (lastCharRectFlags & CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) != 0; if (lastCharRect == null || matrix == null || hasInvisibleRegionInLastCharRect) { mUiOperator.hideUi(); return; } - final RectF segmentStartCharRect = new RectF(lastCharRect); - for (int i = composingText.length() - 2; i >= 0; --i) { - final RectF charRect = info.getCharacterBounds(composingTextStart + i); - if (charRect == null) { + + // Note that the following layout information is fragile, and must be invalidated + // even when surrounding text next to the composing text is changed because it can + // affect how the composing text is rendered. + // TODO: Investigate if we can change the input logic to make the target text + // composing state so that we can retrieve the character bounds reliably. + final String composingTextString = composingText.toString(); + final float top = lastCharRect.top; + final float bottom = lastCharRect.bottom; + float left = lastCharRect.left; + float right = lastCharRect.right; + boolean useRtlLayout = false; + for (int i = composingText.length() - 1; i >= 0; --i) { + final int characterIndex = composingTextStart + i; + final RectF characterBounds = info.getCharacterBounds(characterIndex); + final int characterBoundsFlags = info.getCharacterBoundsFlags(characterIndex); + if (characterBounds == null) { break; } - if (charRect.top != segmentStartCharRect.top) { + if (characterBounds.top != top) { break; } - if (charRect.bottom != segmentStartCharRect.bottom) { + if (characterBounds.bottom != bottom) { break; } - segmentStartCharRect.set(charRect); - } - - mLocalOrigin.set(lastCharRect.right, lastCharRect.top); - mRelativeIndicatorBounds.set(lastCharRect.right, lastCharRect.top, - lastCharRect.right + lastCharRect.height(), lastCharRect.bottom); - mRelativeIndicatorBounds.offset(-mLocalOrigin.x, -mLocalOrigin.y); - - mRelativeIndicatorBounds.set(lastCharRect.right, lastCharRect.top, - lastCharRect.right + lastCharRect.height(), lastCharRect.bottom); - mRelativeIndicatorBounds.offset(-mLocalOrigin.x, -mLocalOrigin.y); - - mRelativeComposingTextBounds.set(segmentStartCharRect.left, segmentStartCharRect.top, - segmentStartCharRect.right, segmentStartCharRect.bottom); - mRelativeComposingTextBounds.offset(-mLocalOrigin.x, -mLocalOrigin.y); - - if (mWaitingWord == null) { - cancelLayoutInternalExpectedly("mWaitingText is null."); - return; - } - if (TextUtils.isEmpty(mWaitingWord.mWord)) { - cancelLayoutInternalExpectedly("mWaitingText.mWord is empty."); - return; + if ((characterBoundsFlags & CursorAnchorInfoCompatWrapper.FLAG_IS_RTL) != 0) { + // This is for both RTL text and bi-directional text. RTL languages usually mix + // RTL characters with LTR characters and in this case we should display the + // indicator on the left, while in LTR languages that normally never happens. + // TODO: Try to come up with a better algorithm. + useRtlLayout = true; + } + left = Math.min(characterBounds.left, left); + right = Math.max(characterBounds.right, right); } - if (!TextUtils.equals(composingText, mWaitingWord.mWord)) { - // This is indeed an expected situation because of the asynchronous nature of - // input method framework in Android. Note that composingText is notified from the - // application, while mWaitingWord.mWord is obtained directly from the InputLogic. - cancelLayoutInternalExpectedly( - "Composing text doesn't match the one we are waiting for."); - return; + mLastComposingText = composingTextString; + mComposingTextBoundsForLastComposingText.set(left, top, right, bottom); + // The height and width of the indicator is the same as the height of the composing + // text. + final float indicatorSize = bottom - top; + mIndicatorBoundsForLastComposingText.set(0.0f, 0.0f, indicatorSize, indicatorSize); + // The horizontal position of the indicator depends on the text direction. + final float indicatorTop = top; + final float indicatorLeft; + if (useRtlLayout) { + indicatorLeft = left - indicatorSize; + } else { + indicatorLeft = right; } - } else { - if (!mIsFullScreenMode && !TextUtils.isEmpty(composingText)) { - // This is an unexpected case. - // TODO: Document this. + mIndicatorBoundsForLastComposingText.offset(indicatorLeft, indicatorTop); + } + + final int selectionStart = info.getSelectionStart(); + final int selectionEnd = info.getSelectionEnd(); + switch (mMode) { + case MODE_MONITOR: mUiOperator.hideUi(); return; - } - // In MODE_ADD_TO_DICTIONARY, we cannot retrieve the character position at all because - // of the lack of composing text. We will use the insertion marker position instead. - if ((info.getInsertionMarkerFlags() & - CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) != 0) { - mUiOperator.hideUi(); + case MODE_WAITING_CURSOR_INDEX: + if (selectionStart != mWaitingCursorStart || selectionEnd != mWaitingCursorEnd) { + mUiOperator.hideUi(); + return; + } + mMode = MODE_SHOWING_INDICATOR; + break; + case MODE_SHOWING_INDICATOR: + if (selectionStart != mWaitingCursorStart || selectionEnd != mWaitingCursorEnd) { + mUiOperator.hideUi(); + mMode = MODE_MONITOR; + mWaitingCursorStart = INVALID_CURSOR_INDEX; + mWaitingCursorEnd = INVALID_CURSOR_INDEX; + return; + } + break; + default: + cancelLayoutInternalUnexpectedly("Unexpected internal mode=" + mMode); return; - } - final float insertionMarkerHolizontal = info.getInsertionMarkerHorizontal(); - final float insertionMarkerTop = info.getInsertionMarkerTop(); - mLocalOrigin.set(insertionMarkerHolizontal, insertionMarkerTop); } - final RectF indicatorBounds = new RectF(mRelativeIndicatorBounds); - final RectF composingTextBounds = new RectF(mRelativeComposingTextBounds); - indicatorBounds.offset(mLocalOrigin.x, mLocalOrigin.y); - composingTextBounds.offset(mLocalOrigin.x, mLocalOrigin.y); - mUiOperator.layoutUi(mMode == MODE_COMMIT, matrix, indicatorBounds, composingTextBounds); + if (!TextUtils.equals(mLastComposingText, mWaitingWord)) { + cancelLayoutInternalUnexpectedly("mLastComposingText doesn't match mWaitingWord"); + return; + } + + if ((info.getInsertionMarkerFlags() & + CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) != 0) { + mUiOperator.hideUi(); + return; + } + + mUiOperator.layoutUi(matrix, mIndicatorBoundsForLastComposingText, + mComposingTextBoundsForLastComposingText); } private void onClickIndicator() { - if (mWaitingWord == null || TextUtils.isEmpty(mWaitingWord.mWord)) { + if (mMode != MODE_SHOWING_INDICATOR) { return; } - switch (mMode) { - case MODE_COMMIT: - mListener.onClickComposingTextToCommit(mWaitingWord); - break; - case MODE_ADD_TO_DICTIONARY: - mListener.onClickComposingTextToAddToDictionary(mWaitingWord); - break; - } + mListener.onClickComposingTextToAddToDictionary(mWaitingWord); } private final LayoutInvalidator mLayoutInvalidator = new LayoutInvalidator(this); @@ -407,10 +359,7 @@ public class TextDecorator { private final static Listener EMPTY_LISTENER = new Listener() { @Override - public void onClickComposingTextToCommit(SuggestedWordInfo wordInfo) { - } - @Override - public void onClickComposingTextToAddToDictionary(SuggestedWordInfo wordInfo) { + public void onClickComposingTextToAddToDictionary(final String word) { } }; @@ -425,8 +374,7 @@ public class TextDecorator { public void setOnClickListener(Runnable listener) { } @Override - public void layoutUi(boolean isCommitMode, Matrix matrix, RectF indicatorBounds, - RectF composingTextBounds) { + public void layoutUi(Matrix matrix, RectF indicatorBounds, RectF composingTextBounds) { } }; } diff --git a/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java b/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java index 6e215a9ca..b67d17789 100644 --- a/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java +++ b/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java @@ -46,7 +46,6 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator { private static final int VISUAL_DEBUG_HIT_AREA_COLOR = 0x80ff8000; private final RelativeLayout mLocalRootView; - private final CommitIndicatorView mCommitIndicatorView; private final AddToDictionaryIndicatorView mAddToDictionaryIndicatorView; private final PopupWindow mTouchEventWindow; private final View mTouchEventWindowClickListenerView; @@ -73,9 +72,7 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator { mLocalRootView.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); final ViewGroup contentView = getContentView(inputView); - mCommitIndicatorView = new CommitIndicatorView(context); mAddToDictionaryIndicatorView = new AddToDictionaryIndicatorView(context); - mLocalRootView.addView(mCommitIndicatorView); mLocalRootView.addView(mAddToDictionaryIndicatorView); if (contentView != null) { contentView.addView(mLocalRootView); @@ -110,17 +107,15 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator { @Override public void hideUi() { - mCommitIndicatorView.setVisibility(View.GONE); mAddToDictionaryIndicatorView.setVisibility(View.GONE); mTouchEventWindow.dismiss(); } @Override - public void layoutUi(final boolean isCommitMode, final Matrix matrix, - final RectF indicatorBounds, final RectF composingTextBounds) { + public void layoutUi(final Matrix matrix, final RectF indicatorBounds, + final RectF composingTextBounds) { final RectF indicatorBoundsInScreenCoordinates = new RectF(); matrix.mapRect(indicatorBoundsInScreenCoordinates, indicatorBounds); - mCommitIndicatorView.setBounds(indicatorBoundsInScreenCoordinates); mAddToDictionaryIndicatorView.setBounds(indicatorBoundsInScreenCoordinates); final RectF hitAreaBounds = new RectF(composingTextBounds); @@ -133,20 +128,9 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator { mLocalRootView.getLocationOnScreen(originScreen); final int viewOriginX = originScreen[0]; final int viewOriginY = originScreen[1]; - - final View toBeShown; - final View toBeHidden; - if (isCommitMode) { - toBeShown = mCommitIndicatorView; - toBeHidden = mAddToDictionaryIndicatorView; - } else { - toBeShown = mAddToDictionaryIndicatorView; - toBeHidden = mCommitIndicatorView; - } - toBeShown.setX(indicatorBoundsInScreenCoordinates.left - viewOriginX); - toBeShown.setY(indicatorBoundsInScreenCoordinates.top - viewOriginY); - toBeShown.setVisibility(View.VISIBLE); - toBeHidden.setVisibility(View.GONE); + mAddToDictionaryIndicatorView.setX(indicatorBoundsInScreenCoordinates.left - viewOriginX); + mAddToDictionaryIndicatorView.setY(indicatorBoundsInScreenCoordinates.top - viewOriginY); + mAddToDictionaryIndicatorView.setVisibility(View.VISIBLE); if (mTouchEventWindow.isShowing()) { mTouchEventWindow.update((int)hitAreaBoundsInScreenCoordinates.left - viewOriginX, @@ -239,15 +223,6 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator { return windowContentView; } - private static final class CommitIndicatorView extends TextDecoratorUi.IndicatorView { - public CommitIndicatorView(final Context context) { - super(context, R.array.text_decorator_commit_indicator_path, - R.integer.text_decorator_commit_indicator_path_size, - R.color.text_decorator_commit_indicator_background_color, - R.color.text_decorator_commit_indicator_foreground_color); - } - } - private static final class AddToDictionaryIndicatorView extends TextDecoratorUi.IndicatorView { public AddToDictionaryIndicatorView(final Context context) { super(context, R.array.text_decorator_add_to_dictionary_indicator_path, diff --git a/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java b/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java index f84e12d8c..9c0b64ad4 100644 --- a/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java +++ b/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java @@ -44,12 +44,10 @@ public interface TextDecoratorUiOperator { /** * Called when the layout should be updated. - * @param isCommitMode {@code true} if the commit indicator should be shown. Show the - * add-to-dictionary indicator otherwise. * @param matrix The matrix that transforms the local coordinates into the screen coordinates. * @param indicatorBounds The bounding box of the indicator, in local coordinates. * @param composingTextBounds The bounding box of the composing text, in local coordinates. */ - void layoutUi(final boolean isCommitMode, final Matrix matrix, final RectF indicatorBounds, + void layoutUi(final Matrix matrix, final RectF indicatorBounds, final RectF composingTextBounds); } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java index fa4192790..2056a0b9d 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java @@ -674,15 +674,18 @@ public class KeyboardBuilder<KP extends KeyboardParams> { R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage()); final boolean countryCodeMatched = matchString(caseAttr, R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry()); + final boolean splitLayoutMatched = matchBoolean(caseAttr, + R.styleable.Keyboard_Case_isSplitLayout, id.mIsSplitLayout); final boolean selected = keyboardLayoutSetMatched && keyboardLayoutSetElementMatched && keyboardThemeMacthed && modeMatched && navigateNextMatched && navigatePreviousMatched && passwordInputMatched && clobberSettingsKeyMatched && hasShortcutKeyMatched && languageSwitchKeyEnabledMatched && isMultiLineMatched && imeActionMatched && isIconDefinedMatched - && localeCodeMatched && languageCodeMatched && countryCodeMatched; + && localeCodeMatched && languageCodeMatched && countryCodeMatched + && splitLayoutMatched; if (DEBUG) { - startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE, + startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE, textAttr(caseAttr.getString( R.styleable.Keyboard_Case_keyboardLayoutSet), "keyboardLayoutSet"), textAttr(caseAttr.getString( @@ -707,6 +710,8 @@ public class KeyboardBuilder<KP extends KeyboardParams> { "languageSwitchKeyEnabled"), booleanAttr(caseAttr, R.styleable.Keyboard_Case_isMultiLine, "isMultiLine"), + booleanAttr(caseAttr, R.styleable.Keyboard_Case_isSplitLayout, + "splitLayout"), textAttr(caseAttr.getString(R.styleable.Keyboard_Case_isIconDefined), "isIconDefined"), textAttr(caseAttr.getString(R.styleable.Keyboard_Case_localeCode), diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java index 0e3acff84..aae134ec6 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java @@ -3028,16 +3028,16 @@ public final class KeyboardTextsTable { /* Locale ro: Romanian */ private static final String[] TEXTS_ro = { + // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE - // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS // U+00E6: "æ" LATIN SMALL LETTER AE // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON - /* morekeys_a */ "\u00E2,\u00E3,\u0103,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101", + /* morekeys_a */ "\u0103,\u00E2,\u00E3,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101", /* morekeys_o ~ */ null, null, null, null, /* ~ morekeys_e */ diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index 2e108756e..9bca0bf35 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -186,9 +186,10 @@ public final class BinaryDictionary extends Dictionary { long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times, int[] pointerIds, int[] inputCodePoints, int inputSize, int[] suggestOptions, int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray, - int[] outputSuggestionCount, int[] outputCodePoints, int[] outputScores, - int[] outputIndices, int[] outputTypes, int[] outputAutoCommitFirstWordConfidence, - float[] inOutLanguageWeight); + int prevWordCount, int[] outputSuggestionCount, int[] outputCodePoints, + int[] outputScores, int[] outputIndices, int[] outputTypes, + int[] outputAutoCommitFirstWordConfidence, + float[] inOutWeightOfLangModelVsSpatialModel); private static native boolean addUnigramEntryNative(long dict, int[] word, int probability, int[] shortcutTarget, int shortcutProbability, boolean isBeginningOfSentence, boolean isNotAWord, boolean isBlacklisted, int timestamp); @@ -256,7 +257,8 @@ public final class BinaryDictionary extends Dictionary { public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, - final int sessionId, final float[] inOutLanguageWeight) { + final int sessionId, final float weightForLocale, + final float[] inOutWeightOfLangModelVsSpatialModel) { if (!isValidDictionary()) { return null; } @@ -284,10 +286,12 @@ public final class BinaryDictionary extends Dictionary { settingsValuesForSuggestion.mSpaceAwareGestureEnabled); session.mNativeSuggestOptions.setAdditionalFeaturesOptions( settingsValuesForSuggestion.mAdditionalFeaturesSettingValues); - if (inOutLanguageWeight != null) { - session.mInputOutputLanguageWeight[0] = inOutLanguageWeight[0]; + if (inOutWeightOfLangModelVsSpatialModel != null) { + session.mInputOutputWeightOfLangModelVsSpatialModel[0] = + inOutWeightOfLangModelVsSpatialModel[0]; } else { - session.mInputOutputLanguageWeight[0] = Dictionary.NOT_A_LANGUAGE_WEIGHT; + session.mInputOutputWeightOfLangModelVsSpatialModel[0] = + Dictionary.NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL; } // TOOD: Pass multiple previous words information for n-gram. getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(), @@ -295,12 +299,14 @@ public final class BinaryDictionary extends Dictionary { inputPointers.getYCoordinates(), inputPointers.getTimes(), inputPointers.getPointerIds(), session.mInputCodePoints, inputSize, session.mNativeSuggestOptions.getOptions(), session.mPrevWordCodePointArrays, - session.mIsBeginningOfSentenceArray, session.mOutputSuggestionCount, - session.mOutputCodePoints, session.mOutputScores, session.mSpaceIndices, - session.mOutputTypes, session.mOutputAutoCommitFirstWordConfidence, - session.mInputOutputLanguageWeight); - if (inOutLanguageWeight != null) { - inOutLanguageWeight[0] = session.mInputOutputLanguageWeight[0]; + session.mIsBeginningOfSentenceArray, prevWordsInfo.getPrevWordCount(), + session.mOutputSuggestionCount, session.mOutputCodePoints, session.mOutputScores, + session.mSpaceIndices, session.mOutputTypes, + session.mOutputAutoCommitFirstWordConfidence, + session.mInputOutputWeightOfLangModelVsSpatialModel); + if (inOutWeightOfLangModelVsSpatialModel != null) { + inOutWeightOfLangModelVsSpatialModel[0] = + session.mInputOutputWeightOfLangModelVsSpatialModel[0]; } final int count = session.mOutputSuggestionCount[0]; final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<>(); @@ -314,7 +320,8 @@ public final class BinaryDictionary extends Dictionary { if (len > 0) { suggestions.add(new SuggestedWordInfo( new String(session.mOutputCodePoints, start, len), - session.mOutputScores[j], session.mOutputTypes[j], this /* sourceDict */, + (int)(session.mOutputScores[j] * weightForLocale), session.mOutputTypes[j], + this /* sourceDict */, session.mSpaceIndices[j] /* indexOfTouchPointOfSecondWord */, session.mOutputAutoCommitFirstWordConfidence[0])); } @@ -358,9 +365,8 @@ public final class BinaryDictionary extends Dictionary { if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) { return NOT_A_PROBABILITY; } - final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][]; - final boolean[] isBeginningOfSentenceArray = - new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM]; + final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][]; + final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()]; prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray); final int[] wordCodePoints = StringUtils.toCodePointArray(word); return getNgramProbabilityNative(mNativeDict, prevWordCodePointArrays, @@ -455,9 +461,8 @@ public final class BinaryDictionary extends Dictionary { if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) { return false; } - final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][]; - final boolean[] isBeginningOfSentenceArray = - new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM]; + final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][]; + final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()]; prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray); final int[] wordCodePoints = StringUtils.toCodePointArray(word); if (!addNgramEntryNative(mNativeDict, prevWordCodePointArrays, @@ -473,9 +478,8 @@ public final class BinaryDictionary extends Dictionary { if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) { return false; } - final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][]; - final boolean[] isBeginningOfSentenceArray = - new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM]; + final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][]; + final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()]; prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray); final int[] wordCodePoints = StringUtils.toCodePointArray(word); if (!removeNgramEntryNative(mNativeDict, prevWordCodePointArrays, @@ -486,6 +490,7 @@ public final class BinaryDictionary extends Dictionary { return true; } + @UsedForTesting public void addMultipleDictionaryEntries(final LanguageModelParam[] languageModelParams) { if (!isValidDictionary()) return; int processedParamCount = 0; diff --git a/java/src/com/android/inputmethod/latin/DicTraverseSession.java b/java/src/com/android/inputmethod/latin/DicTraverseSession.java index b341f623e..2751c1250 100644 --- a/java/src/com/android/inputmethod/latin/DicTraverseSession.java +++ b/java/src/com/android/inputmethod/latin/DicTraverseSession.java @@ -40,7 +40,7 @@ public final class DicTraverseSession { public final int[] mOutputTypes = new int[MAX_RESULTS]; // Only one result is ever used public final int[] mOutputAutoCommitFirstWordConfidence = new int[1]; - public final float[] mInputOutputLanguageWeight = new float[1]; + public final float[] mInputOutputWeightOfLangModelVsSpatialModel = new float[1]; public final NativeSuggestOptions mNativeSuggestOptions = new NativeSuggestOptions(); diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java index 2f79c7662..b58a52b41 100644 --- a/java/src/com/android/inputmethod/latin/Dictionary.java +++ b/java/src/com/android/inputmethod/latin/Dictionary.java @@ -22,6 +22,8 @@ import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion; import java.util.ArrayList; import java.util.Locale; +import java.util.Arrays; +import java.util.HashSet; /** * Abstract base class for a dictionary that can do a fuzzy search for words based on a set of key @@ -29,7 +31,7 @@ import java.util.Locale; */ public abstract class Dictionary { public static final int NOT_A_PROBABILITY = -1; - public static final float NOT_A_LANGUAGE_WEIGHT = -1.0f; + public static final float NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL = -1.0f; // The following types do not actually come from real dictionary instances, so we create // corresponding instances. @@ -65,6 +67,14 @@ public abstract class Dictionary { // The locale for this dictionary. May be null if unknown (phony dictionary for example). public final Locale mLocale; + /** + * Set out of the dictionary types listed above that are based on data specific to the user, + * e.g., the user's contacts. + */ + private static final HashSet<String> sUserSpecificDictionaryTypes = + new HashSet(Arrays.asList(new String[] { TYPE_USER_TYPED, TYPE_USER, TYPE_CONTACTS, + TYPE_USER_HISTORY, TYPE_PERSONALIZATION, TYPE_CONTEXTUAL })); + public Dictionary(final String dictType, final Locale locale) { mDictType = dictType; mLocale = locale; @@ -78,15 +88,18 @@ public abstract class Dictionary { * @param proximityInfo the object for key proximity. May be ignored by some implementations. * @param settingsValuesForSuggestion the settings values used for the suggestion. * @param sessionId the session id. - * @param inOutLanguageWeight the language weight used for generating suggestions. - * inOutLanguageWeight is a float array that has only one element. This can be updated when the - * different language weight is used. + * @param weightForLocale the weight given to this locale, to multiply the output scores for + * multilingual input. + * @param inOutWeightOfLangModelVsSpatialModel the weight of the language model as a ratio of + * the spatial model, used for generating suggestions. inOutWeightOfLangModelVsSpatialModel is + * a float array that has only one element. This can be updated when a different value is used. * @return the list of suggestions (possibly null if none) */ abstract public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, - final int sessionId, final float[] inOutLanguageWeight); + final int sessionId, final float weightForLocale, + final float[] inOutWeightOfLangModelVsSpatialModel); /** * Checks if the given word has to be treated as a valid word. Please note that some @@ -159,6 +172,14 @@ public abstract class Dictionary { } /** + * Whether this dictionary is based on data specific to the user, e.g., the user's contacts. + * @return Whether this dictionary is specific to the user. + */ + public boolean isUserSpecific() { + return sUserSpecificDictionaryTypes.contains(mDictType); + } + + /** * Not a true dictionary. A placeholder used to indicate suggestions that don't come from any * real dictionary. */ @@ -172,7 +193,8 @@ public abstract class Dictionary { public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, - final int sessionId, final float[] inOutLanguageWeight) { + final int sessionId, final float weightForLocale, + final float[] inOutWeightOfLangModelVsSpatialModel) { return null; } diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java index ca5e93714..b26b37817 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java +++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java @@ -62,20 +62,21 @@ public final class DictionaryCollection extends Dictionary { public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, - final int sessionId, final float[] inOutLanguageWeight) { + final int sessionId, final float weightForLocale, + final float[] inOutWeightOfLangModelVsSpatialModel) { final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries; if (dictionaries.isEmpty()) return null; // To avoid creating unnecessary objects, we get the list out of the first // dictionary and add the rest to it if not null, hence the get(0) ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId, - inOutLanguageWeight); + weightForLocale, inOutWeightOfLangModelVsSpatialModel); if (null == suggestions) suggestions = new ArrayList<>(); final int length = dictionaries.size(); for (int i = 1; i < length; ++ i) { final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(composer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId, - inOutLanguageWeight); + weightForLocale, inOutWeightOfLangModelVsSpatialModel); if (null != sugg) suggestions.addAll(sugg); } return suggestions; diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java index eced45ea5..aa15bd6bf 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java @@ -104,6 +104,7 @@ public class DictionaryFacilitator { private static class DictionaryGroup { public final Locale mLocale; private Dictionary mMainDict; + public float mWeightForLocale = 1.0f; public final ConcurrentHashMap<String, ExpandableBinaryDictionary> mSubDictMap = new ConcurrentHashMap<>(); @@ -595,16 +596,19 @@ public class DictionaryFacilitator { final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId) { final DictionaryGroup[] dictionaryGroups = mDictionaryGroups; - final SuggestionResults suggestionResults = - new SuggestionResults(SuggestedWords.MAX_SUGGESTIONS); - final float[] languageWeight = new float[] { Dictionary.NOT_A_LANGUAGE_WEIGHT }; + final SuggestionResults suggestionResults = new SuggestionResults( + SuggestedWords.MAX_SUGGESTIONS, + prevWordsInfo.mPrevWordsInfo[0].mIsBeginningOfSentence); + final float[] weightOfLangModelVsSpatialModel = + new float[] { Dictionary.NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL }; for (final DictionaryGroup dictionaryGroup : dictionaryGroups) { for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) { final Dictionary dictionary = dictionaryGroup.getDict(dictType); if (null == dictionary) continue; final ArrayList<SuggestedWordInfo> dictionarySuggestions = dictionary.getSuggestions(composer, prevWordsInfo, proximityInfo, - settingsValuesForSuggestion, sessionId, languageWeight); + settingsValuesForSuggestion, sessionId, + dictionaryGroup.mWeightForLocale, weightOfLangModelVsSpatialModel); if (null == dictionarySuggestions) continue; suggestionResults.addAll(dictionarySuggestions); if (null != suggestionResults.mRawSuggestions) { @@ -706,6 +710,7 @@ public class DictionaryFacilitator { getLocale(), personalizationDataChunk, spacingAndPunctuations, callback); } + @UsedForTesting public void addPhraseToContextualDictionary(final String[] phrase, final int probability, final int bigramProbabilityForWords, final int bigramProbabilityForPhrases) { // TODO: we're inserting the phrase into the dictionary for the active language. Rethink diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 671ba6714..ad967c133 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -435,7 +435,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId, - final float[] inOutLanguageWeight) { + final float weightForLocale, final float[] inOutWeightOfLangModelVsSpatialModel) { reloadDictionaryIfRequired(); boolean lockAcquired = false; try { @@ -447,7 +447,8 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { } final ArrayList<SuggestedWordInfo> suggestions = mBinaryDictionary.getSuggestions(composer, prevWordsInfo, proximityInfo, - settingsValuesForSuggestion, sessionId, inOutLanguageWeight); + settingsValuesForSuggestion, sessionId, weightForLocale, + inOutWeightOfLangModelVsSpatialModel); if (mBinaryDictionary.isCorrupted()) { Log.i(TAG, "Dictionary (" + mDictName +") is corrupted. " + "Remove and regenerate it."); diff --git a/java/src/com/android/inputmethod/latin/InputAttributes.java b/java/src/com/android/inputmethod/latin/InputAttributes.java index 50a6e48e3..ffd363b5d 100644 --- a/java/src/com/android/inputmethod/latin/InputAttributes.java +++ b/java/src/com/android/inputmethod/latin/InputAttributes.java @@ -112,7 +112,7 @@ public final class InputAttributes { mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType); final boolean noMicrophone = mIsPasswordField - || InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS == variation + || InputTypeUtils.isEmailVariation(variation) || InputType.TYPE_TEXT_VARIATION_URI == variation || hasNoMicrophoneKeyOption(); mShouldShowVoiceInputKey = !noMicrophone; diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 475782042..69fe6de9a 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -189,9 +189,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private static final int MSG_UPDATE_TAIL_BATCH_INPUT_COMPLETED = 6; private static final int MSG_RESET_CACHES = 7; private static final int MSG_WAIT_FOR_DICTIONARY_LOAD = 8; - private static final int MSG_SHOW_COMMIT_INDICATOR = 9; // Update this when adding new messages - private static final int MSG_LAST = MSG_SHOW_COMMIT_INDICATOR; + private static final int MSG_LAST = MSG_WAIT_FOR_DICTIONARY_LOAD; private static final int ARG1_NOT_GESTURE_INPUT = 0; private static final int ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1; @@ -202,7 +201,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private int mDelayInMillisecondsToUpdateSuggestions; private int mDelayInMillisecondsToUpdateShiftState; - private int mDelayInMillisecondsToShowCommitIndicator; public UIHandler(final LatinIME ownerInstance) { super(ownerInstance); @@ -218,8 +216,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen R.integer.config_delay_in_milliseconds_to_update_suggestions); mDelayInMillisecondsToUpdateShiftState = res.getInteger( R.integer.config_delay_in_milliseconds_to_update_shift_state); - mDelayInMillisecondsToShowCommitIndicator = res.getInteger( - R.integer.text_decorator_delay_in_milliseconds_to_show_commit_indicator); } @Override @@ -277,14 +273,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen latinIme.getCurrentRecapitalizeState()); } break; - case MSG_SHOW_COMMIT_INDICATOR: - // Protocol of MSG_SET_COMMIT_INDICATOR_ENABLED: - // - what: MSG_SHOW_COMMIT_INDICATOR - // - arg1: not used. - // - arg2: not used. - // - obj: the Runnable object to be called back. - ((Runnable) msg.obj).run(); - break; case MSG_WAIT_FOR_DICTIONARY_LOAD: Log.i(TAG, "Timeout waiting for dictionary load"); break; @@ -385,19 +373,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen obtainMessage(MSG_UPDATE_TAIL_BATCH_INPUT_COMPLETED, suggestedWords).sendToTarget(); } - /** - * Posts a delayed task to show the commit indicator. - * - * <p>Only one task can exist in the queue. When this method is called, any prior task that - * has not yet fired will be canceled.</p> - * @param task the runnable object that will be fired when the delayed task is dispatched. - */ - public void postShowCommitIndicatorTask(final Runnable task) { - removeMessages(MSG_SHOW_COMMIT_INDICATOR); - sendMessageDelayed(obtainMessage(MSG_SHOW_COMMIT_INDICATOR, task), - mDelayInMillisecondsToShowCommitIndicator); - } - // Working variables for the following methods. private boolean mIsOrientationChanging; private boolean mPendingSuccessiveImsCallback; @@ -1516,19 +1491,23 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final boolean isEmptyApplicationSpecifiedCompletions = currentSettingsValues.isApplicationSpecifiedCompletionsOn() && suggestedWords.isEmpty(); - final boolean noSuggestionsToShow = (SuggestedWords.EMPTY == suggestedWords) + final boolean noSuggestionsFromDictionaries = (SuggestedWords.EMPTY == suggestedWords) || suggestedWords.isPunctuationSuggestions() || isEmptyApplicationSpecifiedCompletions; - if (shouldShowImportantNotice && noSuggestionsToShow) { + final boolean isBeginningOfSentencePrediction = (suggestedWords.mInputStyle + == SuggestedWords.INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION); + final boolean noSuggestionsToOverrideImportantNotice = noSuggestionsFromDictionaries + || isBeginningOfSentencePrediction; + if (shouldShowImportantNotice && noSuggestionsToOverrideImportantNotice) { if (mSuggestionStripView.maybeShowImportantNoticeTitle()) { return; } } if (currentSettingsValues.isSuggestionsEnabledPerUserSettings() - // We should clear suggestions if there is no suggestion to show. - || noSuggestionsToShow - || currentSettingsValues.isApplicationSpecifiedCompletionsOn()) { + || currentSettingsValues.isApplicationSpecifiedCompletionsOn() + // We should clear the contextual strip if there is no suggestion from dictionaries. + || noSuggestionsFromDictionaries) { mSuggestionStripView.setSuggestions(suggestedWords, SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype())); } diff --git a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java index db877ab7a..76d4f57da 100644 --- a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java +++ b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java @@ -86,33 +86,30 @@ public class PrevWordsInfo { // For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the // WordComposer was reset and before starting a new composing word, but we should never be // calling getSuggetions* in this situation. - public WordInfo[] mPrevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM]; + public final WordInfo[] mPrevWordsInfo; // Construct from the previous word information. public PrevWordsInfo(final WordInfo prevWordInfo) { - mPrevWordsInfo[0] = prevWordInfo; + mPrevWordsInfo = new WordInfo[] { prevWordInfo }; } // Construct from WordInfo array. n-th element represents (n+1)-th previous word's information. public PrevWordsInfo(final WordInfo[] prevWordsInfo) { - for (int i = 0; i < Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM; i++) { - mPrevWordsInfo[i] = - (prevWordsInfo.length > i) ? prevWordsInfo[i] : WordInfo.EMPTY_WORD_INFO; - } + mPrevWordsInfo = prevWordsInfo; } // Create next prevWordsInfo using current prevWordsInfo. public PrevWordsInfo getNextPrevWordsInfo(final WordInfo wordInfo) { - final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM]; + final int nextPrevWordCount = Math.min(Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM, + mPrevWordsInfo.length + 1); + final WordInfo[] prevWordsInfo = new WordInfo[nextPrevWordCount]; prevWordsInfo[0] = wordInfo; - for (int i = 1; i < prevWordsInfo.length; i++) { - prevWordsInfo[i] = mPrevWordsInfo[i - 1]; - } + System.arraycopy(mPrevWordsInfo, 0, prevWordsInfo, 1, prevWordsInfo.length - 1); return new PrevWordsInfo(prevWordsInfo); } public boolean isValid() { - return mPrevWordsInfo[0].isValid(); + return mPrevWordsInfo.length > 0 && mPrevWordsInfo[0].isValid(); } public void outputToArray(final int[][] codePointArrays, @@ -129,9 +126,14 @@ public class PrevWordsInfo { } } + public int getPrevWordCount() { + return mPrevWordsInfo.length; + } + @Override public int hashCode() { - return Arrays.hashCode(mPrevWordsInfo); + // Just for having equals(). + return mPrevWordsInfo[0].hashCode(); } @Override @@ -139,7 +141,23 @@ public class PrevWordsInfo { if (this == o) return true; if (!(o instanceof PrevWordsInfo)) return false; final PrevWordsInfo prevWordsInfo = (PrevWordsInfo)o; - return Arrays.equals(mPrevWordsInfo, prevWordsInfo.mPrevWordsInfo); + + final int minLength = Math.min(mPrevWordsInfo.length, prevWordsInfo.mPrevWordsInfo.length); + for (int i = 0; i < minLength; i++) { + if (!mPrevWordsInfo[i].equals(prevWordsInfo.mPrevWordsInfo[i])) { + return false; + } + } + final WordInfo[] longerWordsInfo = + (mPrevWordsInfo.length > prevWordsInfo.mPrevWordsInfo.length) ? + mPrevWordsInfo : prevWordsInfo.mPrevWordsInfo; + for (int i = minLength; i < longerWordsInfo.length; i++) { + if (longerWordsInfo[i] != null + && !WordInfo.EMPTY_WORD_INFO.equals(longerWordsInfo[i])) { + return false; + } + } + return true; } @Override @@ -150,7 +168,11 @@ public class PrevWordsInfo { builder.append("PrevWord["); builder.append(i); builder.append("]: "); - if (wordInfo == null || !wordInfo.isValid()) { + if (wordInfo == null) { + builder.append("null. "); + continue; + } + if (!wordInfo.isValid()) { builder.append("Empty. "); continue; } diff --git a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java index ecf25c28b..827367bb4 100644 --- a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java @@ -53,11 +53,13 @@ public final class ReadOnlyBinaryDictionary extends Dictionary { public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo, final SettingsValuesForSuggestion settingsValuesForSuggestion, - final int sessionId, final float[] inOutLanguageWeight) { + final int sessionId, final float weightForLocale, + final float[] inOutWeightOfLangModelVsSpatialModel) { if (mLock.readLock().tryLock()) { try { return mBinaryDictionary.getSuggestions(composer, prevWordsInfo, proximityInfo, - settingsValuesForSuggestion, sessionId, inOutLanguageWeight); + settingsValuesForSuggestion, sessionId, weightForLocale, + inOutWeightOfLangModelVsSpatialModel); } finally { mLock.readLock().unlock(); } diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java index dc00ecc8f..d672430a1 100644 --- a/java/src/com/android/inputmethod/latin/RichInputConnection.java +++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java @@ -252,7 +252,7 @@ public final class RichInputConnection { * See {@link InputConnection#commitText(CharSequence, int)}. */ public void commitText(final CharSequence text, final int newCursorPosition) { - commitTextWithBackgroundColor(text, newCursorPosition, Color.TRANSPARENT); + commitTextWithBackgroundColor(text, newCursorPosition, Color.TRANSPARENT, text.length()); } /** @@ -265,9 +265,11 @@ public final class RichInputConnection { * the background color. Note that this method specifies {@link BackgroundColorSpan} with * {@link Spanned#SPAN_COMPOSING} flag, meaning that the background color persists until * {@link #finishComposingText()} is called. + * @param coloredTextLength the length of text, in Java chars, which should be rendered with + * the given background color. */ public void commitTextWithBackgroundColor(final CharSequence text, final int newCursorPosition, - final int color) { + final int color, final int coloredTextLength) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); mCommittedTextBeforeComposingText.append(text); @@ -285,7 +287,8 @@ public final class RichInputConnection { mTempObjectForCommitText.clear(); mTempObjectForCommitText.append(text); final BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(color); - mTempObjectForCommitText.setSpan(backgroundColorSpan, 0, text.length(), + final int spanLength = Math.min(coloredTextLength, text.length()); + mTempObjectForCommitText.setSpan(backgroundColorSpan, 0, spanLength, Spanned.SPAN_COMPOSING | Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mIC.commitText(mTempObjectForCommitText, newCursorPosition); mLastCommittedTextHasBackgroundColor = true; diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index 9bf017578..1ecc995b2 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -188,8 +188,14 @@ public final class Suggest { suggestionsList = suggestionsContainer; } - final int inputStyle = resultsArePredictions ? SuggestedWords.INPUT_STYLE_PREDICTION : - inputStyleIfNotPrediction; + final int inputStyle; + if (resultsArePredictions) { + inputStyle = suggestionResults.mIsBeginningOfSentence + ? SuggestedWords.INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION + : SuggestedWords.INPUT_STYLE_PREDICTION; + } else { + inputStyle = inputStyleIfNotPrediction; + } callback.onGetSuggestedWords(new SuggestedWords(suggestionsList, suggestionResults.mRawSuggestions, // TODO: this first argument is lying. If this is a whitelisted word which is an @@ -235,7 +241,7 @@ public final class Suggest { SuggestedWordInfo.removeDups(null /* typedWord */, suggestionsContainer); // For some reason some suggestions with MIN_VALUE are making their way here. - // TODO: Find a more robust way to detect distractors. + // TODO: Find a more robust way to detect distracters. for (int i = suggestionsContainer.size() - 1; i >= 0; --i) { if (suggestionsContainer.get(i).mScore < SUPPRESS_SUGGEST_THRESHOLD) { suggestionsContainer.remove(i); @@ -244,6 +250,8 @@ public final class Suggest { // In the batch input mode, the most relevant suggested word should act as a "typed word" // (typedWordValid=true), not as an "auto correct word" (willAutoCorrect=false). + // Note that because this method is never used to get predictions, there is no need to + // modify inputType such in getSuggestedWordsForNonBatchInput. callback.onGetSuggestedWords(new SuggestedWords(suggestionsContainer, suggestionResults.mRawSuggestions, true /* typedWordValid */, diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index dcfaa3f6d..3eefafc1f 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -39,6 +39,7 @@ public class SuggestedWords { public static final int INPUT_STYLE_APPLICATION_SPECIFIED = 4; public static final int INPUT_STYLE_RECORRECTION = 5; public static final int INPUT_STYLE_PREDICTION = 6; + public static final int INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION = 7; // The maximum number of suggestions available. public static final int MAX_SUGGESTIONS = 18; @@ -80,10 +81,9 @@ public class SuggestedWords { final int inputStyle, final int sequenceNumber) { this(suggestedWordInfoList, rawSuggestions, - (suggestedWordInfoList.isEmpty() || INPUT_STYLE_PREDICTION == inputStyle) ? null + (suggestedWordInfoList.isEmpty() || isPrediction(inputStyle)) ? null : suggestedWordInfoList.get(INDEX_OF_TYPED_WORD).mWord, - typedWordValid, willAutoCorrect, isObsoleteSuggestions, inputStyle, - sequenceNumber); + typedWordValid, willAutoCorrect, isObsoleteSuggestions, inputStyle, sequenceNumber); } public SuggestedWords(final ArrayList<SuggestedWordInfo> suggestedWordInfoList, @@ -180,6 +180,7 @@ public class SuggestedWords { return "SuggestedWords:" + " mTypedWordValid=" + mTypedWordValid + " mWillAutoCorrect=" + mWillAutoCorrect + + " mInputStyle=" + mInputStyle + " words=" + Arrays.toString(mSuggestedWordInfoList.toArray()); } @@ -386,8 +387,13 @@ public class SuggestedWords { } } + private static boolean isPrediction(final int inputStyle) { + return INPUT_STYLE_PREDICTION == inputStyle + || INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION == inputStyle; + } + public boolean isPrediction() { - return INPUT_STYLE_PREDICTION == mInputStyle; + return isPrediction(mInputStyle); } // SuggestedWords is an immutable object, as much as possible. We must not just remove diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index 32d1fe372..567aa07f1 100644 --- a/java/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -49,6 +49,7 @@ public final class WordComposer { private final ArrayList<Event> mEvents; private final InputPointers mInputPointers = new InputPointers(MAX_WORD_LENGTH); private String mAutoCorrection; + private String mAutoCorrectionDictionaryType; private boolean mIsResumed; private boolean mIsBatchMode; // A memory of the last rejected batch mode suggestion, if any. This goes like this: the user @@ -418,8 +419,9 @@ public final class WordComposer { /** * Sets the auto-correction for this word. */ - public void setAutoCorrection(final String correction) { + public void setAutoCorrection(final String correction, String dictType) { mAutoCorrection = correction; + mAutoCorrectionDictionaryType = dictType; } /** @@ -430,6 +432,13 @@ public final class WordComposer { } /** + * @return the auto-correction dictionary type or null if none. + */ + public String getAutoCorrectionDictionaryTypeOrNull() { + return mAutoCorrectionDictionaryType; + } + + /** * @return whether we started composing this word by resuming suggestion on an existing string */ public boolean isResumed() { diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index c5e60d677..8eccd5cee 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -28,6 +28,7 @@ import android.util.Log; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.inputmethod.CorrectionInfo; +import android.view.inputmethod.CursorAnchorInfo; import android.view.inputmethod.EditorInfo; import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper; @@ -91,12 +92,8 @@ public final class InputLogic { private final TextDecorator mTextDecorator = new TextDecorator(new TextDecorator.Listener() { @Override - public void onClickComposingTextToCommit(SuggestedWordInfo wordInfo) { - mLatinIME.pickSuggestionManually(wordInfo); - } - @Override - public void onClickComposingTextToAddToDictionary(SuggestedWordInfo wordInfo) { - mLatinIME.addWordToUserDictionary(wordInfo.mWord); + public void onClickComposingTextToAddToDictionary(final String word) { + mLatinIME.addWordToUserDictionary(word); mLatinIME.dismissAddToDictionaryHint(); } }); @@ -171,6 +168,7 @@ public final class InputLogic { mConnection.requestCursorUpdates(true /* enableMonitor */, true /* requestImmediateCallback */); } + mTextDecorator.reset(); } } @@ -207,6 +205,8 @@ public final class InputLogic { public void finishInput() { if (mWordComposer.isComposingWord()) { mConnection.finishComposingText(); + StatsUtils.onWordCommitUserTyped( + mWordComposer.getTypedWord(), mWordComposer.isBatchMode()); } resetComposingState(true /* alsoResetLastComposedWord */); mInputLogicHandler.reset(); @@ -253,6 +253,7 @@ public final class InputLogic { promotePhantomSpace(settingsValues); } mConnection.commitText(text, 1); + StatsUtils.onWordCommitUserTyped(mEnteredText, mWordComposer.isBatchMode()); mConnection.endBatchEdit(); // Space state must be updated before calling updateShiftState mSpaceState = SpaceState.NONE; @@ -334,17 +335,8 @@ public final class InputLogic { } final boolean shouldShowAddToDictionaryHint = shouldShowAddToDictionaryHint(suggestionInfo); - final boolean shouldShowAddToDictionaryIndicator = - shouldShowAddToDictionaryHint && settingsValues.mShouldShowUiToAcceptTypedWord; - final int backgroundColor; - if (shouldShowAddToDictionaryIndicator) { - backgroundColor = settingsValues.mTextHighlightColorForAddToDictionaryIndicator; - } else { - backgroundColor = Color.TRANSPARENT; - } - commitChosenWordWithBackgroundColor(settingsValues, suggestion, - LastComposedWord.COMMIT_TYPE_MANUAL_PICK, LastComposedWord.NOT_A_SEPARATOR, - backgroundColor); + commitChosenWord(settingsValues, suggestion, LastComposedWord.COMMIT_TYPE_MANUAL_PICK, + LastComposedWord.NOT_A_SEPARATOR); mConnection.endBatchEdit(); // Don't allow cancellation of manual pick mLastComposedWord.deactivate(); @@ -359,11 +351,10 @@ public final class InputLogic { // That's going to be predictions (or punctuation suggestions), so INPUT_STYLE_NONE. handler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_NONE); } - if (shouldShowAddToDictionaryIndicator) { - mTextDecorator.showAddToDictionaryIndicator(suggestionInfo); - } StatsUtils.onPickSuggestionManually(mSuggestedWords, suggestionInfo); + StatsUtils.onWordCommitSuggestionPickedManually( + suggestionInfo.mWord, mWordComposer.isBatchMode()); return inputTransaction; } @@ -433,6 +424,9 @@ public final class InputLogic { mRecapitalizeStatus.enable(); // We moved the cursor and need to invalidate the indicator right now. mTextDecorator.reset(); + // Remaining background color that was used for the add-to-dictionary indicator should be + // removed. + mConnection.removeBackgroundColorFromHighlightedTextIfNecessary(); // We moved the cursor. If we are touching a word, we need to resume suggestion. mLatinIME.mHandler.postResumeSuggestions(false /* shouldIncludeResumedWordInSuggestions */, true /* shouldDelay */); @@ -511,7 +505,9 @@ public final class InputLogic { handler.cancelUpdateSuggestionStrip(); ++mAutoCommitSequenceNumber; mConnection.beginBatchEdit(); - if (mWordComposer.isComposingWord()) { + if (!mWordComposer.isComposingWord()) { + mConnection.removeBackgroundColorFromHighlightedTextIfNecessary(); + } else { if (mWordComposer.isCursorFrontOrMiddleOfComposingWord()) { // If we are in the middle of a recorrection, we need to commit the recorrection // first so that we can insert the batch input at the current cursor position. @@ -582,6 +578,7 @@ public final class InputLogic { batchPointers.shift(candidate.mIndexOfTouchPointOfSecondWord); promotePhantomSpace(settingsValues); mConnection.commitText(commitParts[0], 0); + StatsUtils.onWordCommitUserTyped(commitParts[0], mWordComposer.isBatchMode()); mSpaceState = SpaceState.PHANTOM; keyboardSwitcher.requestUpdatingShiftState( getCurrentAutoCapsState(settingsValues), getCurrentRecapitalizeState()); @@ -612,53 +609,24 @@ public final class InputLogic { final SettingsValues settingsValues, final LatinIME.UIHandler handler) { if (SuggestedWords.EMPTY != suggestedWords) { final String autoCorrection; + final String dictType; if (suggestedWords.mWillAutoCorrect) { - autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION); + SuggestedWordInfo info = suggestedWords.getInfo( + SuggestedWords.INDEX_OF_AUTO_CORRECTION); + autoCorrection = info.mWord; + dictType = info.mSourceDict.mDictType; } else { // We can't use suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD) // because it may differ from mWordComposer.mTypedWord. autoCorrection = suggestedWords.mTypedWord; + dictType = Dictionary.TYPE_USER_TYPED; } - mWordComposer.setAutoCorrection(autoCorrection); + // TODO: Use the SuggestedWordInfo to set the auto correction when + // user typed word is available via SuggestedWordInfo. + mWordComposer.setAutoCorrection(autoCorrection, dictType); } mSuggestedWords = suggestedWords; final boolean newAutoCorrectionIndicator = suggestedWords.mWillAutoCorrect; - if (shouldShowCommitIndicator(suggestedWords, settingsValues)) { - // typedWordInfo is never null here. - final int textBackgroundColor = settingsValues.mTextHighlightColorForCommitIndicator; - final SuggestedWordInfo typedWordInfo = suggestedWords.getTypedWordInfoOrNull(); - handler.postShowCommitIndicatorTask(new Runnable() { - @Override - public void run() { - // TODO: This needs to be refactored to ensure that mWordComposer is accessed - // only from the UI thread. - if (!mWordComposer.isComposingWord()) { - mTextDecorator.reset(); - return; - } - final SuggestedWordInfo currentTypedWordInfo = - mSuggestedWords.getTypedWordInfoOrNull(); - if (currentTypedWordInfo == null) { - mTextDecorator.reset(); - return; - } - if (!currentTypedWordInfo.equals(typedWordInfo)) { - // Suggested word has been changed. This task is obsolete. - mTextDecorator.reset(); - return; - } - // TODO: As with the above TODO comment, this operation must be performed only - // on the UI thread too. Needs to be refactored. - setComposingTextInternalWithBackgroundColor(typedWordInfo.mWord, - 1 /* newCursorPosition */, textBackgroundColor); - mTextDecorator.showCommitIndicator(typedWordInfo); - } - }); - } else { - // Note: It is OK to not cancel previous postShowCommitIndicatorTask() here. Having a - // cancellation mechanism could improve performance a bit though. - mTextDecorator.reset(); - } // Put a blue underline to a word in TextView which will be auto-corrected. if (mIsAutoCorrectionIndicatorOn != newAutoCorrectionIndicator @@ -836,13 +804,14 @@ public final class InputLogic { final InputTransaction inputTransaction, // TODO: remove this argument final LatinIME.UIHandler handler) { - // In case the "add to dictionary" hint was still displayed. - // TODO: Do we really need to check if we have composing text here? - if (!mWordComposer.isComposingWord() && - mSuggestionStripViewAccessor.isShowingAddToDictionaryHint()) { - mSuggestionStripViewAccessor.dismissAddToDictionaryHint(); + if (!mWordComposer.isComposingWord()) { mConnection.removeBackgroundColorFromHighlightedTextIfNecessary(); - mTextDecorator.reset(); + // In case the "add to dictionary" hint was still displayed. + // TODO: Do we really need to check if we have composing text here? + if (mSuggestionStripViewAccessor.isShowingAddToDictionaryHint()) { + mSuggestionStripViewAccessor.dismissAddToDictionaryHint(); + mTextDecorator.reset(); + } } final int codePoint = event.mCodePoint; @@ -1101,8 +1070,10 @@ public final class InputLogic { inputTransaction.setRequiresUpdateSuggestions(); } else { if (mLastComposedWord.canRevertCommit()) { - revertCommit(inputTransaction); + final String lastComposedWord = mLastComposedWord.mTypedWord; + revertCommit(inputTransaction, inputTransaction.mSettingsValues); StatsUtils.onRevertAutoCorrect(); + StatsUtils.onWordCommitUserTyped(lastComposedWord, mWordComposer.isBatchMode()); return; } if (mEnteredText != null && mConnection.sameAsTextBeforeCursor(mEnteredText)) { @@ -1602,14 +1573,19 @@ public final class InputLogic { * This is triggered upon pressing backspace just after a commit with auto-correction. * * @param inputTransaction The transaction in progress. + * @param settingsValues the current values of the settings. */ - private void revertCommit(final InputTransaction inputTransaction) { + private void revertCommit(final InputTransaction inputTransaction, + final SettingsValues settingsValues) { final CharSequence originallyTypedWord = mLastComposedWord.mTypedWord; + final String originallyTypedWordString = + originallyTypedWord != null ? originallyTypedWord.toString() : ""; final CharSequence committedWord = mLastComposedWord.mCommittedWord; final String committedWordString = committedWord.toString(); final int cancelLength = committedWord.length(); + final String separatorString = mLastComposedWord.mSeparatorString; // We want java chars, not codepoints for the following. - final int separatorLength = mLastComposedWord.mSeparatorString.length(); + final int separatorLength = separatorString.length(); // TODO: should we check our saved separator against the actual contents of the text view? final int deleteLength = cancelLength + separatorLength; if (DebugFlags.DEBUG_ENABLED) { @@ -1628,7 +1604,7 @@ public final class InputLogic { if (!TextUtils.isEmpty(committedWord)) { mDictionaryFacilitator.removeWordFromPersonalizedDicts(committedWordString); } - final String stringToCommit = originallyTypedWord + mLastComposedWord.mSeparatorString; + final String stringToCommit = originallyTypedWord + separatorString; final SpannableString textToCommit = new SpannableString(stringToCommit); if (committedWord instanceof SpannableString) { final SpannableString committedWordWithSuggestionSpans = (SpannableString)committedWord; @@ -1665,23 +1641,53 @@ public final class InputLogic { suggestions.toArray(new String[suggestions.size()]), 0 /* flags */), 0 /* start */, lastCharIndex /* end */, 0 /* flags */); } + + final boolean shouldShowAddToDictionaryForTypedWord = + shouldShowAddToDictionaryForTypedWord(mLastComposedWord, settingsValues); + if (inputTransaction.mSettingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) { // For languages with spaces, we revert to the typed string, but the cursor is still // after the separator so we don't resume suggestions. If the user wants to correct // the word, they have to press backspace again. - mConnection.commitText(textToCommit, 1); + if (shouldShowAddToDictionaryForTypedWord) { + mConnection.commitTextWithBackgroundColor(textToCommit, 1, + settingsValues.mTextHighlightColorForAddToDictionaryIndicator, + originallyTypedWordString.length()); + } else { + mConnection.commitText(textToCommit, 1); + } } else { // For languages without spaces, we revert the typed string but the cursor is flush // with the typed word, so we need to resume suggestions right away. final int[] codePoints = StringUtils.toCodePointArray(stringToCommit); mWordComposer.setComposingWord(codePoints, mLatinIME.getCoordinatesForCurrentKeyboard(codePoints)); - setComposingTextInternal(textToCommit, 1); + if (shouldShowAddToDictionaryForTypedWord) { + setComposingTextInternalWithBackgroundColor(textToCommit, 1, + settingsValues.mTextHighlightColorForAddToDictionaryIndicator, + originallyTypedWordString.length()); + } else { + setComposingTextInternal(textToCommit, 1); + } } // Don't restart suggestion yet. We'll restart if the user deletes the separator. mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD; - // We have a separator between the word and the cursor: we should show predictions. - inputTransaction.setRequiresUpdateSuggestions(); + + if (shouldShowAddToDictionaryForTypedWord) { + // Due to the API limitation as of L, we cannot reliably retrieve the reverted text + // when the separator causes line breaking. Until this API limitation is addressed in + // the framework, show the indicator only when the separator doesn't contain + // line-breaking characters. + if (!StringUtils.hasLineBreakCharacter(separatorString)) { + mTextDecorator.showAddToDictionaryIndicator(originallyTypedWordString, + mConnection.getExpectedSelectionStart(), + mConnection.getExpectedSelectionEnd()); + } + mSuggestionStripViewAccessor.showAddToDictionaryHint(originallyTypedWordString); + } else { + // We have a separator between the word and the cursor: we should show predictions. + inputTransaction.setRequiresUpdateSuggestions(); + } } /** @@ -2003,6 +2009,8 @@ public final class InputLogic { final int indexOfLastSpace = batchInputText.lastIndexOf(Constants.CODE_SPACE) + 1; if (0 != indexOfLastSpace) { mConnection.commitText(batchInputText.substring(0, indexOfLastSpace), 1); + StatsUtils.onWordCommitUserTyped( + batchInputText.substring(0, indexOfLastSpace), mWordComposer.isBatchMode()); final SuggestedWords suggestedWordsForLastWordOfPhraseGesture = suggestedWords.getSuggestedWordsForLastWordOfPhraseGesture(); mLatinIME.showSuggestionStrip(suggestedWordsForLastWordOfPhraseGesture); @@ -2041,8 +2049,10 @@ public final class InputLogic { if (!mWordComposer.isComposingWord()) return; final String typedWord = mWordComposer.getTypedWord(); if (typedWord.length() > 0) { + final boolean isBatchMode = mWordComposer.isBatchMode(); commitChosenWord(settingsValues, typedWord, LastComposedWord.COMMIT_TYPE_USER_TYPED_WORD, separatorString); + StatsUtils.onWordCommitUserTyped(typedWord, isBatchMode); } } @@ -2088,6 +2098,7 @@ public final class InputLogic { throw new RuntimeException("We have an auto-correction but the typed word " + "is empty? Impossible! I must commit suicide."); } + final boolean isBatchMode = mWordComposer.isBatchMode(); commitChosenWord(settingsValues, autoCorrection, LastComposedWord.COMMIT_TYPE_DECIDED_WORD, separator); if (!typedWord.equals(autoCorrection)) { @@ -2100,14 +2111,17 @@ public final class InputLogic { mConnection.commitCorrection(new CorrectionInfo( mConnection.getExpectedSelectionEnd() - autoCorrection.length(), typedWord, autoCorrection)); + StatsUtils.onAutoCorrection(typedWord, autoCorrection, isBatchMode, + mWordComposer.getAutoCorrectionDictionaryTypeOrNull()); + StatsUtils.onWordCommitAutoCorrect(autoCorrection, isBatchMode); + } else { + StatsUtils.onWordCommitUserTyped(autoCorrection, isBatchMode); } } } /** - * Commits the chosen word to the text field and saves it for later retrieval. This is a - * synonym of {@code commitChosenWordWithBackgroundColor(settingsValues, chosenWord, - * commitType, separatorString, Color.TRANSPARENT}. + * Commits the chosen word to the text field and saves it for later retrieval. * * @param settingsValues the current values of the settings. * @param chosenWord the word we want to commit. @@ -2116,23 +2130,6 @@ public final class InputLogic { */ private void commitChosenWord(final SettingsValues settingsValues, final String chosenWord, final int commitType, final String separatorString) { - commitChosenWordWithBackgroundColor(settingsValues, chosenWord, commitType, separatorString, - Color.TRANSPARENT); - } - - /** - * Commits the chosen word to the text field and saves it for later retrieval. - * - * @param settingsValues the current values of the settings. - * @param chosenWord the word we want to commit. - * @param commitType the type of the commit, as one of LastComposedWord.COMMIT_TYPE_* - * @param separatorString the separator that's causing the commit, or NOT_A_SEPARATOR if none. - * @param backgroundColor the background color to be specified with the committed text. Pass - * {@link Color#TRANSPARENT} to not specify the background color. - */ - private void commitChosenWordWithBackgroundColor(final SettingsValues settingsValues, - final String chosenWord, final int commitType, final String separatorString, - final int backgroundColor) { final SuggestedWords suggestedWords = mSuggestedWords; final CharSequence chosenWordWithSuggestions = SuggestionSpanUtils.getTextWithSuggestionSpan(mLatinIME, chosenWord, @@ -2142,7 +2139,7 @@ public final class InputLogic { // information from the 1st previous word. final PrevWordsInfo prevWordsInfo = mConnection.getPrevWordsInfoFromNthPreviousWord( settingsValues.mSpacingAndPunctuations, mWordComposer.isComposingWord() ? 2 : 1); - mConnection.commitTextWithBackgroundColor(chosenWordWithSuggestions, 1, backgroundColor); + mConnection.commitText(chosenWordWithSuggestions, 1); // Add the word to the user history dictionary performAdditionToUserHistoryDictionary(settingsValues, chosenWord, prevWordsInfo); // TODO: figure out here if this is an auto-correct or if the best word is actually @@ -2226,7 +2223,7 @@ public final class InputLogic { private void setComposingTextInternal(final CharSequence newComposingText, final int newCursorPosition) { setComposingTextInternalWithBackgroundColor(newComposingText, newCursorPosition, - Color.TRANSPARENT); + Color.TRANSPARENT, newComposingText.length()); } /** @@ -2242,9 +2239,11 @@ public final class InputLogic { * @param newCursorPosition the new cursor position * @param backgroundColor the background color to be set to the composing text. Set * {@link Color#TRANSPARENT} to disable the background color. + * @param coloredTextLength the length of text, in Java chars, which should be rendered with + * the given background color. */ private void setComposingTextInternalWithBackgroundColor(final CharSequence newComposingText, - final int newCursorPosition, final int backgroundColor) { + final int newCursorPosition, final int backgroundColor, final int coloredTextLength) { final CharSequence composingTextToBeSet; if (backgroundColor == Color.TRANSPARENT) { composingTextToBeSet = newComposingText; @@ -2252,7 +2251,8 @@ public final class InputLogic { final SpannableString spannable = new SpannableString(newComposingText); final BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(backgroundColor); - spannable.setSpan(backgroundColorSpan, 0, spannable.length(), + final int spanLength = Math.min(coloredTextLength, spannable.length()); + spannable.setSpan(backgroundColorSpan, 0, spanLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE | Spanned.SPAN_COMPOSING); composingTextToBeSet = spannable; } @@ -2274,7 +2274,8 @@ public final class InputLogic { } /** - * Must be called from {@link InputMethodService#onUpdateCursorAnchorInfo} is called. + * Must be called from {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} is + * called. * @param info The wrapper object with which we can access cursor/anchor info. */ public void onUpdateCursorAnchorInfo(final CursorAnchorInfoCompatWrapper info) { @@ -2298,12 +2299,12 @@ public final class InputLogic { } /** - * Returns whether the commit indicator should be shown or not. - * @param suggestedWords the suggested word that is being displayed. + * Returns whether the add to dictionary indicator should be shown or not. + * @param lastComposedWord the last composed word information. * @param settingsValues the current settings value. * @return {@code true} if the commit indicator should be shown. */ - private boolean shouldShowCommitIndicator(final SuggestedWords suggestedWords, + private boolean shouldShowAddToDictionaryForTypedWord(final LastComposedWord lastComposedWord, final SettingsValues settingsValues) { if (!mConnection.isCursorAnchorInfoMonitorEnabled()) { // We cannot help in this case because we are heavily relying on this new API. @@ -2312,24 +2313,16 @@ public final class InputLogic { if (!settingsValues.mShouldShowUiToAcceptTypedWord) { return false; } - final SuggestedWordInfo typedWordInfo = suggestedWords.getTypedWordInfoOrNull(); - if (typedWordInfo == null) { + if (TextUtils.isEmpty(lastComposedWord.mTypedWord)) { return false; } - if (suggestedWords.mInputStyle != SuggestedWords.INPUT_STYLE_TYPING){ + if (TextUtils.equals(lastComposedWord.mTypedWord, lastComposedWord.mCommittedWord)) { return false; } - if (settingsValues.mShowCommitIndicatorOnlyForAutoCorrection - && !suggestedWords.mWillAutoCorrect) { + if (!mDictionaryFacilitator.isUserDictionaryEnabled()) { return false; } - // TODO: Calling shouldShowAddToDictionaryHint(typedWordInfo) multiple times should be fine - // in terms of performance, but we can do better. One idea is to make SuggestedWords include - // a boolean that tells whether the word is a dictionary word or not. - if (settingsValues.mShowCommitIndicatorOnlyForOutOfVocabulary - && !shouldShowAddToDictionaryHint(typedWordInfo)) { - return false; - } - return true; + return !mDictionaryFacilitator.isValidWord(lastComposedWord.mTypedWord, + true /* ignoreCase */); } } diff --git a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java new file mode 100644 index 000000000..06ab1e2d2 --- /dev/null +++ b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java @@ -0,0 +1,193 @@ +/* + * Copyright (C) 2014 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.settings; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.text.TextUtils; +import android.widget.ListView; +import android.widget.Toast; + +import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.SubtypeSwitcher; +import com.android.inputmethod.latin.define.ProductionFlags; +import com.android.inputmethod.latin.utils.LoginAccountUtils; + +import javax.annotation.Nullable; + +/** + * "Accounts & Privacy" settings sub screen. + * + * This settings sub screen handles the following preferences: + * <li> Account selection/management for IME + * <li> TODO: Sync preferences + * <li> TODO: Privacy preferences + */ +public final class AccountsSettingsFragment extends SubScreenFragment { + static final String PREF_ACCCOUNT_SWITCHER = "account_switcher"; + + private final DialogInterface.OnClickListener mAccountSelectedListener = + new AccountSelectedListener(); + private final DialogInterface.OnClickListener mAccountSignedOutListener = + new AccountSignedOutListener(); + + @Override + public void onCreate(final Bundle icicle) { + super.onCreate(icicle); + addPreferencesFromResource(R.xml.prefs_screen_accounts); + + final Resources res = getResources(); + final Context context = getActivity(); + + // When we are called from the Settings application but we are not already running, some + // singleton and utility classes may not have been initialized. We have to call + // initialization method of these classes here. See {@link LatinIME#onCreate()}. + SubtypeSwitcher.init(context); + + if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) { + final Preference enableMetricsLogging = + findPreference(Settings.PREF_ENABLE_METRICS_LOGGING); + if (enableMetricsLogging != null) { + final String enableMetricsLoggingTitle = res.getString( + R.string.enable_metrics_logging, getApplicationName()); + enableMetricsLogging.setTitle(enableMetricsLoggingTitle); + } + } else { + removePreference(Settings.PREF_ENABLE_METRICS_LOGGING); + } + } + + @Override + public void onResume() { + super.onResume(); + refreshAccountSelection(); + } + + @Override + public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { + // TODO: Look at the preference that changed before refreshing the view. + refreshAccountSelection(); + } + + private void refreshAccountSelection() { + final String currentAccount = getCurrentlySelectedAccount(); + final Preference accountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER); + if (currentAccount == null) { + // No account is currently selected. + accountSwitcher.setSummary(getString(R.string.no_accounts_selected)); + } else { + // Set the currently selected account. + accountSwitcher.setSummary(getString(R.string.account_selected, currentAccount)); + } + final Context context = getActivity(); + final String[] accountsForLogin = LoginAccountUtils.getAccountsForLogin(context); + accountSwitcher.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + if (accountsForLogin.length == 0) { + // TODO: Handle account addition. + Toast.makeText(getActivity(), + getString(R.string.account_select_cancel), Toast.LENGTH_SHORT).show(); + } else { + createAccountPicker(accountsForLogin, currentAccount).show(); + } + return true; + } + }); + + // TODO: Depending on the account selection, enable/disable preferences that + // depend on an account. + } + + @Nullable + private String getCurrentlySelectedAccount() { + return getSharedPreferences().getString(Settings.PREF_ACCOUNT_NAME, null); + } + + /** + * Creates an account picker dialog showing the given accounts in a list and selecting + * the selected account by default. + * The list of accounts must not be null/empty. + * + * Package-private for testing. + */ + AlertDialog createAccountPicker(final String[] accounts, + final String selectedAccount) { + if (accounts == null || accounts.length == 0) { + throw new IllegalArgumentException("List of accounts must not be empty"); + } + + // See if the currently selected account is in the list. + // If it is, the entry is selected, and a sign-out button is provided. + // If it isn't, select the 0th account by default which will get picked up + // if the user presses OK. + int index = 0; + boolean isSignedIn = false; + for (int i = 0; i < accounts.length; i++) { + if (TextUtils.equals(accounts[i], selectedAccount)) { + index = i; + isSignedIn = true; + break; + } + } + final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) + .setTitle(R.string.account_select_title) + .setSingleChoiceItems(accounts, index, null) + .setPositiveButton(R.string.account_select_ok, mAccountSelectedListener) + .setNegativeButton(R.string.account_select_cancel, null); + if (isSignedIn) { + builder.setNeutralButton(R.string.account_select_sign_out, mAccountSignedOutListener); + } + return builder.create(); + } + + /** + * Listener for an account being selected from the picker. + * Persists the account to shared preferences. + */ + class AccountSelectedListener implements DialogInterface.OnClickListener { + @Override + public void onClick(DialogInterface dialog, int which) { + final ListView lv = ((AlertDialog)dialog).getListView(); + final Object selectedItem = lv.getItemAtPosition(lv.getCheckedItemPosition()); + getSharedPreferences() + .edit() + .putString(Settings.PREF_ACCOUNT_NAME, (String) selectedItem) + .apply(); + } + } + + /** + * Listener for sign-out being initiated from from the picker. + * Removed the account from shared preferences. + */ + class AccountSignedOutListener implements DialogInterface.OnClickListener { + @Override + public void onClick(DialogInterface dialog, int which) { + getSharedPreferences() + .edit() + .remove(Settings.PREF_ACCOUNT_NAME) + .apply(); + } + } +} diff --git a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java index 00f2c73dd..a6cb55db1 100644 --- a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java @@ -93,14 +93,16 @@ public final class AdvancedSettingsFragment extends SubScreenFragment { removePreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON); } + // If metrics logging isn't supported, or account sign in is enabled + // don't show the logging preference. + // TODO: Eventually when we enable account sign in by default, + // we'll remove logging preference from here. if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) { final Preference enableMetricsLogging = findPreference(Settings.PREF_ENABLE_METRICS_LOGGING); if (enableMetricsLogging != null) { - final int applicationLabelRes = context.getApplicationInfo().labelRes; - final String applicationName = res.getString(applicationLabelRes); final String enableMetricsLoggingTitle = res.getString( - R.string.enable_metrics_logging, applicationName); + R.string.enable_metrics_logging, getApplicationName()); enableMetricsLogging.setTitle(enableMetricsLoggingTitle); } } else { diff --git a/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java index f5e4d33a2..a9884ba13 100644 --- a/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java @@ -19,6 +19,7 @@ package com.android.inputmethod.latin.settings; import android.os.Bundle; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.define.ProductionFlags; /** @@ -29,6 +30,10 @@ public final class AppearanceSettingsFragment extends SubScreenFragment { public void onCreate(final Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.prefs_screen_appearance); + if (!ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED + || !Settings.getInstance().getCurrent().isTablet()) { + removePreference(Settings.PREF_ENABLE_SPLIT_KEYBOARD); + } } @Override @@ -38,4 +43,4 @@ public final class AppearanceSettingsFragment extends SubScreenFragment { findPreference(Settings.PREF_CUSTOM_INPUT_STYLES)); ThemeSettingsFragment.updateKeyboardThemeSummary(findPreference(Settings.SCREEN_THEME)); } -} +}
\ No newline at end of file diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java index 0de2d8831..a171fc330 100644 --- a/java/src/com/android/inputmethod/latin/settings/Settings.java +++ b/java/src/com/android/inputmethod/latin/settings/Settings.java @@ -43,6 +43,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang private static final String TAG = Settings.class.getSimpleName(); // Settings screens public static final String SCREEN_PREFERENCES = "screen_preferences"; + public static final String SCREEN_ACCOUNTS = "screen_accounts"; public static final String SCREEN_APPEARANCE = "screen_appearance"; public static final String SCREEN_THEME = "screen_theme"; public static final String SCREEN_MULTILINGUAL = "screen_multilingual"; @@ -83,6 +84,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang "pref_include_other_imes_in_language_switch_list"; public static final String PREF_KEYBOARD_THEME = "pref_keyboard_theme"; public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles"; + public static final String PREF_ENABLE_SPLIT_KEYBOARD = "pref_split_keyboard"; // TODO: consolidate key preview dismiss delay with the key preview animation parameters. public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = "pref_key_preview_popup_dismiss_delay"; @@ -103,6 +105,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal"; public static final String PREF_ENABLE_METRICS_LOGGING = "pref_enable_metrics_logging"; + public static final String PREF_ACCOUNT_NAME = "pref_account_name"; // This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead. // This is being used only for the backward compatibility. diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java index 4fc17387f..8c4801798 100644 --- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java @@ -25,6 +25,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.define.ProductionFlags; import com.android.inputmethod.latin.utils.ApplicationUtils; import com.android.inputmethod.latin.utils.FeedbackUtils; import com.android.inputmethodcommon.InputMethodSettingsFragment; @@ -51,6 +52,10 @@ public final class SettingsFragment extends InputMethodSettingsFragment { final Preference multilingualOptions = findPreference(Settings.SCREEN_MULTILINGUAL); preferenceScreen.removePreference(multilingualOptions); } + if (!ProductionFlags.ENABLE_ACCOUNT_SIGN_IN) { + final Preference accountsPreference = findPreference(Settings.SCREEN_ACCOUNTS); + preferenceScreen.removePreference(accountsPreference); + } } @Override diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java index 270b22a4a..3339ab57f 100644 --- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java @@ -25,6 +25,7 @@ import android.util.Log; import android.view.inputmethod.EditorInfo; import com.android.inputmethod.compat.AppWorkaroundsUtils; +import com.android.inputmethod.latin.Constants; import com.android.inputmethod.latin.InputAttributes; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.RichInputMethodManager; @@ -79,6 +80,9 @@ public class SettingsValues { public final int mKeyLongpressTimeout; public final boolean mEnableMetricsLogging; public final boolean mShouldShowUiToAcceptTypedWord; + // Use split layout for keyboard. + public final boolean mIsSplitKeyboardEnabled; + public final int mScreenMetrics; // From the input box public final InputAttributes mInputAttributes; @@ -98,10 +102,7 @@ public class SettingsValues { new int[AdditionalFeaturesSettingUtils.ADDITIONAL_FEATURES_SETTINGS_SIZE]; // TextDecorator - public final int mTextHighlightColorForCommitIndicator; public final int mTextHighlightColorForAddToDictionaryIndicator; - public final boolean mShowCommitIndicatorOnlyForAutoCorrection; - public final boolean mShowCommitIndicatorOnlyForOutOfVocabulary; // Debug settings public final boolean mIsInternal; @@ -157,6 +158,9 @@ public class SettingsValues { mDoubleSpacePeriodTimeout = res.getInteger(R.integer.config_double_space_period_timeout); mHasHardwareKeyboard = Settings.readHasHardwareKeyboard(res.getConfiguration()); mEnableMetricsLogging = prefs.getBoolean(Settings.PREF_ENABLE_METRICS_LOGGING, true); + mIsSplitKeyboardEnabled = prefs.getBoolean(Settings.PREF_ENABLE_SPLIT_KEYBOARD, false); + mScreenMetrics = res.getInteger(R.integer.config_screen_metrics); + mShouldShowUiToAcceptTypedWord = Settings.HAS_UI_TO_ACCEPT_TYPED_WORD && prefs.getBoolean(DebugSettings.PREF_SHOW_UI_TO_ACCEPT_TYPED_WORD, true); // Compute other readable settings @@ -176,12 +180,6 @@ public class SettingsValues { mSuggestionsEnabledPerUserSettings = readSuggestionsEnabled(prefs); AdditionalFeaturesSettingUtils.readAdditionalFeaturesPreferencesIntoArray( prefs, mAdditionalFeaturesSettingValues); - mShowCommitIndicatorOnlyForAutoCorrection = res.getBoolean( - R.bool.text_decorator_only_for_auto_correction); - mShowCommitIndicatorOnlyForOutOfVocabulary = res.getBoolean( - R.bool.text_decorator_only_for_out_of_vocabulary); - mTextHighlightColorForCommitIndicator = res.getColor( - R.color.text_decorator_commit_indicator_text_highlight_color); mTextHighlightColorForAddToDictionaryIndicator = res.getColor( R.color.text_decorator_add_to_dictionary_indicator_text_highlight_color); mIsInternal = Settings.isInternal(prefs); @@ -225,6 +223,11 @@ public class SettingsValues { return mEnableMetricsLogging; } + public boolean isTablet() { + return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_TABLET + || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_TABLET; + } + public boolean isApplicationSpecifiedCompletionsOn() { return mInputAttributes.mApplicationSpecifiedCompletionOn; } @@ -431,12 +434,6 @@ public class SettingsValues { sb.append("" + (null == awu ? "null" : awu.toString())); sb.append("\n mAdditionalFeaturesSettingValues = "); sb.append("" + Arrays.toString(mAdditionalFeaturesSettingValues)); - sb.append("\n mShowCommitIndicatorOnlyForAutoCorrection = "); - sb.append("" + mShowCommitIndicatorOnlyForAutoCorrection); - sb.append("\n mShowCommitIndicatorOnlyForOutOfVocabulary = "); - sb.append("" + mShowCommitIndicatorOnlyForOutOfVocabulary); - sb.append("\n mTextHighlightColorForCommitIndicator = "); - sb.append("" + mTextHighlightColorForCommitIndicator); sb.append("\n mTextHighlightColorForAddToDictionaryIndicator = "); sb.append("" + mTextHighlightColorForAddToDictionaryIndicator); sb.append("\n mIsInternal = "); diff --git a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java index ca5b395ce..240f8f89b 100644 --- a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java @@ -20,6 +20,7 @@ import android.app.backup.BackupManager; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; +import android.content.res.Resources; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; @@ -79,6 +80,16 @@ abstract class SubScreenFragment extends PreferenceFragment return getPreferenceManager().getSharedPreferences(); } + /** + * Gets the application name to display on the UI. + */ + final String getApplicationName() { + final Context context = getActivity(); + final Resources res = getResources(); + final int applicationLabelRes = context.getApplicationInfo().labelRes; + return res.getString(applicationLabelRes); + } + @Override public void addPreferencesFromResource(final int preferencesResId) { super.addPreferencesFromResource(preferencesResId); diff --git a/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java b/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java new file mode 100644 index 000000000..254bc6567 --- /dev/null +++ b/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2014 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.settings; + +import android.app.Activity; +import android.app.Fragment; +import android.app.FragmentManager; +import android.content.Intent; +import android.os.Bundle; + +/** + * Test activity to use when testing preference fragments. <br/> + * Usage: <br/> + * Create an ActivityInstrumentationTestCase2 for this activity + * and call setIntent() with an intent that specifies the fragment to load in the activity. + * The fragment can then be obtained from this activity and used for testing/verification. + */ +public final class TestFragmentActivity extends Activity { + /** + * The fragment name that should be loaded when starting this activity. + * This must be specified when starting this activity, as this activity is only + * meant to test fragments from instrumentation tests. + */ + public static final String EXTRA_SHOW_FRAGMENT = "show_fragment"; + + public Fragment mFragment; + + @Override + protected void onCreate(final Bundle savedState) { + super.onCreate(savedState); + final Intent intent = getIntent(); + final String fragmentName = intent.getStringExtra(EXTRA_SHOW_FRAGMENT); + if (fragmentName == null) { + throw new IllegalArgumentException("No fragment name specified for testing"); + } + + mFragment = Fragment.instantiate(this, fragmentName); + FragmentManager fragmentManager = getFragmentManager(); + fragmentManager.beginTransaction().add(mFragment, fragmentName).commit(); + } +} diff --git a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java index 5a3fc3600..29289aed2 100644 --- a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java @@ -17,7 +17,6 @@ package com.android.inputmethod.latin.settings; import android.content.Context; -import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; import android.preference.Preference; @@ -32,12 +31,12 @@ import com.android.inputmethod.latin.settings.RadioButtonPreference.OnRadioButto */ public final class ThemeSettingsFragment extends SubScreenFragment implements OnRadioButtonClickedListener { - private String mSelectedThemeId; + private int mSelectedThemeId; static class KeyboardThemePreference extends RadioButtonPreference { - final String mThemeId; + final int mThemeId; - KeyboardThemePreference(final Context context, final String name, final String id) { + KeyboardThemePreference(final Context context, final String name, final int id) { super(context); setTitle(name); mThemeId = id; @@ -45,14 +44,13 @@ public final class ThemeSettingsFragment extends SubScreenFragment } static void updateKeyboardThemeSummary(final Preference pref) { - final Resources res = pref.getContext().getResources(); - final SharedPreferences prefs = pref.getSharedPreferences(); - final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs); - final String keyboardThemeId = String.valueOf(keyboardTheme.mThemeId); + final Context context = pref.getContext(); + final Resources res = context.getResources(); + final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context); final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names); - final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids); + final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids); for (int index = 0; index < keyboardThemeNames.length; index++) { - if (keyboardThemeId.equals(keyboardThemeIds[index])) { + if (keyboardTheme.mThemeId == keyboardThemeIds[index]) { pref.setSummary(keyboardThemeNames[index]); return; } @@ -64,18 +62,18 @@ public final class ThemeSettingsFragment extends SubScreenFragment super.onCreate(icicle); addPreferencesFromResource(R.xml.prefs_screen_theme); final PreferenceScreen screen = getPreferenceScreen(); + final Context context = getActivity(); final Resources res = getResources(); final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names); - final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids); + final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids); for (int index = 0; index < keyboardThemeNames.length; index++) { final KeyboardThemePreference pref = new KeyboardThemePreference( - getActivity(), keyboardThemeNames[index], keyboardThemeIds[index]); + context, keyboardThemeNames[index], keyboardThemeIds[index]); screen.addPreference(pref); pref.setOnRadioButtonClickedListener(this); } - final SharedPreferences prefs = getSharedPreferences(); - final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs); - mSelectedThemeId = String.valueOf(keyboardTheme.mThemeId); + final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context); + mSelectedThemeId = keyboardTheme.mThemeId; } @Override @@ -106,7 +104,7 @@ public final class ThemeSettingsFragment extends SubScreenFragment final Preference preference = screen.getPreference(index); if (preference instanceof KeyboardThemePreference) { final KeyboardThemePreference pref = (KeyboardThemePreference)preference; - final boolean selected = mSelectedThemeId.equals(pref.mThemeId); + final boolean selected = (mSelectedThemeId == pref.mThemeId); pref.setSelected(selected); } } diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java index 197908032..249478785 100644 --- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.text.TextUtils; import android.util.Log; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.AssetFileAddress; import com.android.inputmethod.latin.BinaryDictionaryGetter; import com.android.inputmethod.latin.Constants; @@ -382,6 +383,7 @@ public class DictionaryInfoUtils { return dictList; } + @UsedForTesting public static boolean looksValidForDictionaryInsertion(final CharSequence text, final SpacingAndPunctuations spacingAndPunctuations) { if (TextUtils.isEmpty(text)) return false; diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java index 94c62429e..6fd241ee9 100644 --- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java +++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java @@ -21,6 +21,7 @@ import java.util.Locale; import android.view.inputmethod.InputMethodSubtype; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.PrevWordsInfo; public interface DistracterFilter { @@ -36,6 +37,7 @@ public interface DistracterFilter { public boolean isDistracterToWordsInDictionaries(final PrevWordsInfo prevWordsInfo, final String testedWord, final Locale locale); + @UsedForTesting public int getWordHandlingType(final PrevWordsInfo prevWordsInfo, final String testedWord, final Locale locale); diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java index 1db525502..f8a845304 100644 --- a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java +++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java @@ -64,9 +64,9 @@ public class DistracterFilterCheckingExactMatchesAndSuggestions implements Distr private final Object mLock = new Object(); // If the score of the top suggestion exceeds this value, the tested word (e.g., - // an OOV, a misspelling, or an in-vocabulary word) would be considered as a distractor to + // an OOV, a misspelling, or an in-vocabulary word) would be considered as a distracter to // words in dictionary. The greater the threshold is, the less likely the tested word would - // become a distractor, which means the tested word will be more likely to be added to + // become a distracter, which means the tested word will be more likely to be added to // the dictionary. private static final float DISTRACTER_WORD_SCORE_THRESHOLD = 0.4f; @@ -196,7 +196,7 @@ public class DistracterFilterCheckingExactMatchesAndSuggestions implements Distr } final boolean Word = dictionaryFacilitator.isValidWord(testedWord, false /* ignoreCase */); if (Word) { - // Valid word is not a distractor. + // Valid word is not a distracter. if (DEBUG) { Log.d(TAG, "isDistracter: false (valid word)"); } @@ -257,12 +257,12 @@ public class DistracterFilterCheckingExactMatchesAndSuggestions implements Distr return false; } final SuggestedWordInfo firstSuggestion = suggestionResults.first(); - final boolean isDistractor = suggestionExceedsDistracterThreshold( + final boolean isDistracter = suggestionExceedsDistracterThreshold( firstSuggestion, consideredWord, DISTRACTER_WORD_SCORE_THRESHOLD); if (DEBUG) { - Log.d(TAG, "isDistracter: " + isDistractor); + Log.d(TAG, "isDistracter: " + isDistracter); } - return isDistractor; + return isDistracter; } private static boolean suggestionExceedsDistracterThreshold(final SuggestedWordInfo suggestion, diff --git a/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java b/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java index c2167a76b..ae2de44c7 100644 --- a/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java @@ -18,6 +18,7 @@ package com.android.inputmethod.latin.utils; import com.android.inputmethod.dictionarypack.DictionarySettingsFragment; import com.android.inputmethod.latin.about.AboutPreferences; +import com.android.inputmethod.latin.settings.AccountsSettingsFragment; import com.android.inputmethod.latin.settings.AdvancedSettingsFragment; import com.android.inputmethod.latin.settings.AppearanceSettingsFragment; import com.android.inputmethod.latin.settings.CorrectionSettingsFragment; @@ -42,6 +43,7 @@ public class FragmentUtils { sLatinImeFragments.add(DictionarySettingsFragment.class.getName()); sLatinImeFragments.add(AboutPreferences.class.getName()); sLatinImeFragments.add(PreferencesSettingsFragment.class.getName()); + sLatinImeFragments.add(AccountsSettingsFragment.class.getName()); sLatinImeFragments.add(AppearanceSettingsFragment.class.getName()); sLatinImeFragments.add(ThemeSettingsFragment.class.getName()); sLatinImeFragments.add(MultiLingualSettingsFragment.class.getName()); diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java index 05d124764..7955541aa 100644 --- a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java +++ b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java @@ -18,6 +18,7 @@ package com.android.inputmethod.latin.utils; import android.util.Log; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.Dictionary; import com.android.inputmethod.latin.DictionaryFacilitator; import com.android.inputmethod.latin.PrevWordsInfo; @@ -58,12 +59,14 @@ public final class LanguageModelParam { public final int mTimestamp; // Constructor for unigram. TODO: support shortcuts + @UsedForTesting public LanguageModelParam(final CharSequence word, final int unigramProbability, final int timestamp) { this(null /* word0 */, word, unigramProbability, Dictionary.NOT_A_PROBABILITY, timestamp); } // Constructor for unigram and bigram. + @UsedForTesting public LanguageModelParam(final CharSequence word0, final CharSequence word1, final int unigramProbability, final int bigramProbability, final int timestamp) { diff --git a/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java index 3cd63612c..5720d9388 100644 --- a/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java @@ -16,6 +16,7 @@ package com.android.inputmethod.latin.utils; +import java.util.Arrays; import java.util.regex.Pattern; import com.android.inputmethod.latin.Constants; @@ -56,6 +57,7 @@ public final class PrevWordsInfoUtils { if (prev == null) return PrevWordsInfo.EMPTY_PREV_WORDS_INFO; final String[] w = SPACE_REGEX.split(prev); final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM]; + Arrays.fill(prevWordsInfo, WordInfo.EMPTY_WORD_INFO); for (int i = 0; i < prevWordsInfo.length; i++) { final int focusedWordIndex = w.length - n - i; // Referring to the word after the focused word. @@ -66,7 +68,6 @@ public final class PrevWordsInfoUtils { if (spacingAndPunctuations.isWordConnector(firstChar)) { // The word following the focused word is starting with a word connector. // TODO: Return meaningful context for this case. - prevWordsInfo[i] = WordInfo.EMPTY_WORD_INFO; break; } } @@ -93,7 +94,6 @@ public final class PrevWordsInfoUtils { // TODO: Return meaningful context for this case. if (spacingAndPunctuations.isWordSeparator(lastChar) || spacingAndPunctuations.isWordConnector(lastChar)) { - prevWordsInfo[i] = WordInfo.EMPTY_WORD_INFO; break; } prevWordsInfo[i] = new WordInfo(focusedWord); diff --git a/java/src/com/android/inputmethod/latin/utils/StringUtils.java b/java/src/com/android/inputmethod/latin/utils/StringUtils.java index 55557de9d..bbcef990d 100644 --- a/java/src/com/android/inputmethod/latin/utils/StringUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/StringUtils.java @@ -37,6 +37,14 @@ public final class StringUtils { private static final String EMPTY_STRING = ""; + private static final char CHAR_LINE_FEED = 0X000A; + private static final char CHAR_VERTICAL_TAB = 0X000B; + private static final char CHAR_FORM_FEED = 0X000C; + private static final char CHAR_CARRIAGE_RETURN = 0X000D; + private static final char CHAR_NEXT_LINE = 0X0085; + private static final char CHAR_LINE_SEPARATOR = 0X2028; + private static final char CHAR_PARAGRAPH_SEPARATOR = 0X2029; + private StringUtils() { // This utility class is not publicly instantiable. } @@ -594,4 +602,30 @@ public final class StringUtils { return sb + "]"; } } + + /** + * Returns whether the last composed word contains line-breaking character (e.g. CR or LF). + * @param text the text to be examined. + * @return {@code true} if the last composed word contains line-breaking separator. + */ + @UsedForTesting + public static boolean hasLineBreakCharacter(final String text) { + if (TextUtils.isEmpty(text)) { + return false; + } + for (int i = text.length() - 1; i >= 0; --i) { + final char c = text.charAt(i); + switch (c) { + case CHAR_LINE_FEED: + case CHAR_VERTICAL_TAB: + case CHAR_FORM_FEED: + case CHAR_CARRIAGE_RETURN: + case CHAR_NEXT_LINE: + case CHAR_LINE_SEPARATOR: + case CHAR_PARAGRAPH_SEPARATOR: + return true; + } + } + return false; + } } diff --git a/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java b/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java index eaa5743d4..d6f644228 100644 --- a/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java +++ b/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java @@ -22,7 +22,6 @@ import com.android.inputmethod.latin.define.ProductionFlags; import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; -import java.util.Locale; import java.util.TreeSet; /** @@ -31,14 +30,17 @@ import java.util.TreeSet; */ public final class SuggestionResults extends TreeSet<SuggestedWordInfo> { public final ArrayList<SuggestedWordInfo> mRawSuggestions; + // TODO: Instead of a boolean , we may want to include the context of this suggestion results, + // such as {@link PrevWordsInfo}. + public final boolean mIsBeginningOfSentence; private final int mCapacity; - public SuggestionResults(final int capacity) { - this(sSuggestedWordInfoComparator, capacity); + public SuggestionResults(final int capacity, final boolean isBeginningOfSentence) { + this(sSuggestedWordInfoComparator, capacity, isBeginningOfSentence); } - public SuggestionResults(final Comparator<SuggestedWordInfo> comparator, - final int capacity) { + private SuggestionResults(final Comparator<SuggestedWordInfo> comparator, + final int capacity, final boolean isBeginningOfSentence) { super(comparator); mCapacity = capacity; if (ProductionFlags.INCLUDE_RAW_SUGGESTIONS) { @@ -46,6 +48,7 @@ public final class SuggestionResults extends TreeSet<SuggestedWordInfo> { } else { mRawSuggestions = null; } + mIsBeginningOfSentence = isBeginningOfSentence; } @Override |