aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/layout/suggestion_divider.xml2
-rw-r--r--java/res/values-af/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-af/strings.xml2
-rw-r--r--java/res/values-am/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-am/strings.xml2
-rw-r--r--java/res/values-ar/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ar/strings.xml2
-rw-r--r--java/res/values-az-rAZ/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-az-rAZ/strings.xml2
-rw-r--r--java/res/values-bg/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-bg/strings.xml2
-rw-r--r--java/res/values-ca/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ca/strings.xml2
-rw-r--r--java/res/values-cs/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-cs/strings.xml2
-rw-r--r--java/res/values-da/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-da/strings.xml2
-rw-r--r--java/res/values-de/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-de/strings.xml2
-rw-r--r--java/res/values-el/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-el/strings.xml2
-rw-r--r--java/res/values-en-rGB/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-en-rGB/strings.xml2
-rw-r--r--java/res/values-en-rIN/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-en-rIN/strings.xml2
-rw-r--r--java/res/values-es-rUS/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-es-rUS/strings.xml2
-rw-r--r--java/res/values-es/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-es/strings.xml2
-rw-r--r--java/res/values-et-rEE/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-et-rEE/strings.xml2
-rw-r--r--java/res/values-fa/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-fa/strings.xml2
-rw-r--r--java/res/values-fi/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-fi/strings.xml2
-rw-r--r--java/res/values-fr-rCA/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-fr-rCA/strings.xml2
-rw-r--r--java/res/values-fr/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-fr/strings.xml2
-rw-r--r--java/res/values-hi/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-hi/strings.xml2
-rw-r--r--java/res/values-hr/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-hr/strings.xml2
-rw-r--r--java/res/values-hu/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-hu/strings.xml2
-rw-r--r--java/res/values-hy-rAM/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-hy-rAM/strings.xml2
-rw-r--r--java/res/values-in/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-in/strings.xml2
-rw-r--r--java/res/values-it/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-it/strings.xml2
-rw-r--r--java/res/values-iw/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-iw/strings.xml2
-rw-r--r--java/res/values-ja/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ja/strings.xml2
-rw-r--r--java/res/values-ka-rGE/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ka-rGE/strings.xml2
-rw-r--r--java/res/values-kk/strings-talkback-descriptions.xml3
-rw-r--r--java/res/values-km-rKH/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-km-rKH/strings.xml2
-rw-r--r--java/res/values-ko/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ko/strings.xml2
-rw-r--r--java/res/values-lo-rLA/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-lo-rLA/strings.xml2
-rw-r--r--java/res/values-lt/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-lt/strings.xml2
-rw-r--r--java/res/values-lv/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-lv/strings.xml2
-rw-r--r--java/res/values-mn-rMN/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-mn-rMN/strings.xml2
-rw-r--r--java/res/values-ms-rMY/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ms-rMY/strings.xml2
-rw-r--r--java/res/values-nb/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-nb/strings.xml2
-rw-r--r--java/res/values-ne-rNP/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ne-rNP/strings.xml2
-rw-r--r--java/res/values-nl/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-nl/strings.xml2
-rw-r--r--java/res/values-pl/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-pl/strings.xml2
-rw-r--r--java/res/values-pt-rPT/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-pt-rPT/strings.xml2
-rw-r--r--java/res/values-pt/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-pt/strings.xml2
-rw-r--r--java/res/values-ro/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ro/strings.xml2
-rw-r--r--java/res/values-ru/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-ru/strings.xml2
-rw-r--r--java/res/values-sk/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-sk/strings.xml2
-rw-r--r--java/res/values-sl/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-sl/strings.xml2
-rw-r--r--java/res/values-sr/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-sr/strings.xml2
-rw-r--r--java/res/values-sv/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-sv/strings.xml2
-rw-r--r--java/res/values-sw/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-sw/strings.xml2
-rw-r--r--java/res/values-th/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-th/strings.xml2
-rw-r--r--java/res/values-tl/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-tl/strings.xml2
-rw-r--r--java/res/values-tr/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-tr/strings.xml2
-rw-r--r--java/res/values-uk/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-uk/strings.xml2
-rw-r--r--java/res/values-vi/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-vi/strings.xml2
-rw-r--r--java/res/values-zh-rCN/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-zh-rCN/strings.xml2
-rw-r--r--java/res/values-zh-rHK/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-zh-rHK/strings.xml2
-rw-r--r--java/res/values-zh-rTW/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-zh-rTW/strings.xml2
-rw-r--r--java/res/values-zu/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-zu/strings.xml2
-rw-r--r--java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java68
-rw-r--r--java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java70
-rw-r--r--java/src/com/android/inputmethod/keyboard/MainKeyboardView.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java11
-rw-r--r--java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java17
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionary.java2
-rw-r--r--java/src/com/android/inputmethod/latin/Dictionary.java17
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryCollection.java4
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitator.java17
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java24
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java35
-rw-r--r--java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java4
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java6
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java6
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java6
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java2
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java4
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java4
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java14
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java14
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java1
-rw-r--r--java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatches.java (renamed from java/src/com/android/inputmethod/latin/utils/DistracterFilterUsingSuggestion.java)25
-rw-r--r--java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java59
139 files changed, 836 insertions, 153 deletions
diff --git a/java/res/layout/suggestion_divider.xml b/java/res/layout/suggestion_divider.xml
index 149095147..be97eae5a 100644
--- a/java/res/layout/suggestion_divider.xml
+++ b/java/res/layout/suggestion_divider.xml
@@ -23,6 +23,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/suggestions_strip_divider"
+ android:clickable="false"
+ android:longClickable="false"
android:contentDescription="@null"
android:padding="0dp"
android:gravity="center" />
diff --git a/java/res/values-af/strings-talkback-descriptions.xml b/java/res/values-af/strings-talkback-descriptions.xml
index 3c2cb63ef..09abb5f6c 100644
--- a/java/res/values-af/strings-talkback-descriptions.xml
+++ b/java/res/values-af/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index 187aa4b89..2d1653f28 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Stel kontakname voor"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Gebruik name van kontakte vir voorstelle en korreksies"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Gepersonaliseerde voorstelle"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dubbelspasie-punt"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dubbeltik op spasiebalk voeg \'n punt in, gevolg deur \'n spasie"</string>
<string name="auto_cap" msgid="1719746674854628252">"Outohoofletters"</string>
diff --git a/java/res/values-am/strings-talkback-descriptions.xml b/java/res/values-am/strings-talkback-descriptions.xml
index 2e1243a1f..1b1da01e5 100644
--- a/java/res/values-am/strings-talkback-descriptions.xml
+++ b/java/res/values-am/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 651c642cb..f957d1111 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"የዕውቂያ ስም ጠቁም"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"ከዕውቂያዎች ለጥቆማዎች እና ማስተካከያዎች ስሞች ተጠቀም"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"ግላዊ የጥቆማ አስተያየቶች"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"የድርብ-ክፍተት ነጥብ"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"የክፍተት አሞሌው ላይ ሁለቴ መታ ማድረግ አንድ ነጥብ እና ክፍተት አስከትሎ ያስገባል"</string>
<string name="auto_cap" msgid="1719746674854628252">"ራስ-ሰር አቢይ ማድረግ"</string>
diff --git a/java/res/values-ar/strings-talkback-descriptions.xml b/java/res/values-ar/strings-talkback-descriptions.xml
index 0ca701bbe..b39033a85 100644
--- a/java/res/values-ar/strings-talkback-descriptions.xml
+++ b/java/res/values-ar/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index a907ba885..111b5af51 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"اقتراح أسماء جهات الاتصال"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"استخدام الأسماء من جهات الاتصال للاقتراحات والتصحيحات"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"اقتراحات مخصصة"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"نقطة المسافة المزدوجة"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"يؤدي النقر نقرًا مزدوجًا على مفتاح المسافة إلى إدخال نقطة متبوعة بمسافة"</string>
<string name="auto_cap" msgid="1719746674854628252">"أحرف كبيرة تلقائيًا"</string>
diff --git a/java/res/values-az-rAZ/strings-talkback-descriptions.xml b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
index 5dd303aec..8ba8a6e7d 100644
--- a/java/res/values-az-rAZ/strings-talkback-descriptions.xml
+++ b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml
index f1f3e22ab..bf3990d6e 100644
--- a/java/res/values-az-rAZ/strings.xml
+++ b/java/res/values-az-rAZ/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Kontakt adları təklif edin"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Təklif və korreksiya üçün Kontaktlardakı adlardan istifadə edin"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Fərdiləşmiş təkliflər"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"İkili boşluq periodu"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Boşluqdakı iki klik boşluqdan sonra pauza daxil edir"</string>
<string name="auto_cap" msgid="1719746674854628252">"Avtomatik böyük hərfləşmə"</string>
diff --git a/java/res/values-bg/strings-talkback-descriptions.xml b/java/res/values-bg/strings-talkback-descriptions.xml
index 50025b535..edd74b52c 100644
--- a/java/res/values-bg/strings-talkback-descriptions.xml
+++ b/java/res/values-bg/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index c18b1083c..96c3a9560 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Предложения за контакти"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Използване на имена от „Контакти“ за предложения и поправки"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Персонализ. предложения"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Точка чрез двоен интервал"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Двукр. докосване на клав. за интервал вмъква точка, следвана от интервал"</string>
<string name="auto_cap" msgid="1719746674854628252">"Автоматично поставяне на главни букви"</string>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 3127feb1c..5bbf65571 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index bb5b05413..3c7e09237 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Suggereix noms de contactes"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilitza els noms de contactes per fer suggeriments i correccions"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Suggeriments personalitz."</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Punt amb doble espai"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Picar dues vegades la barra d\'espai insereix punt i espai blanc"</string>
<string name="auto_cap" msgid="1719746674854628252">"Majúscules automàtiques"</string>
diff --git a/java/res/values-cs/strings-talkback-descriptions.xml b/java/res/values-cs/strings-talkback-descriptions.xml
index a80957929..50cc984b9 100644
--- a/java/res/values-cs/strings-talkback-descriptions.xml
+++ b/java/res/values-cs/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index b805d2820..98a9a13d6 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Navrhovat jména kontaktů"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Použít jména ze seznamu kontaktů k návrhům a opravám"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Personalizované návrhy"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Tečka dvojitým mezerníkem"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dvojím klepnutím na mezerník vložíte tečku následovanou mezerou."</string>
<string name="auto_cap" msgid="1719746674854628252">"Velká písmena automaticky"</string>
diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index ffcdb442c..b34650e8b 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index 36263c65e..d7a005be4 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Foreslå navne på kontakter"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Brug navne fra Kontaktpersoner til forslag og rettelser"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Tilpassede forslag"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"To mellemrum for punktum"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"To tryk på mellemrumstasten indsætter et punktum og et mellemrum"</string>
<string name="auto_cap" msgid="1719746674854628252">"Skriv automatisk med stort"</string>
diff --git a/java/res/values-de/strings-talkback-descriptions.xml b/java/res/values-de/strings-talkback-descriptions.xml
index e2fe2b7c5..3ae624370 100644
--- a/java/res/values-de/strings-talkback-descriptions.xml
+++ b/java/res/values-de/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index aaa4c50db..d5bfec2b4 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Kontakte vorschlagen"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Namen aus \"Kontakte\" als Vorschläge und Korrekturmöglichkeiten anzeigen"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Personalisierte Vorschläge"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Punkt plus Leerzeichen"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Für Punkt plus Leerzeichen zweimal auf die Leertaste tippen"</string>
<string name="auto_cap" msgid="1719746674854628252">"Autom. Groß-/Kleinschreibung"</string>
diff --git a/java/res/values-el/strings-talkback-descriptions.xml b/java/res/values-el/strings-talkback-descriptions.xml
index 60a6d174a..bb9875780 100644
--- a/java/res/values-el/strings-talkback-descriptions.xml
+++ b/java/res/values-el/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index aa7d60c3f..cfe652b2a 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Πρόταση ονομάτων επαφών"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Χρησιμοποιήστε ονόματα από τις Επαφές για προτάσεις και διορθ."</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Εξατομικευμένες προτάσεις"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Τελεία με διπλό πάτημα πλήκτρ.διαστ."</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Το διπλό πάτημα του πλήκτρ.διαστ. εισάγει μια τελεία και ένα κενό"</string>
<string name="auto_cap" msgid="1719746674854628252">"Αυτόματη χρήση κεφαλαίων"</string>
diff --git a/java/res/values-en-rGB/strings-talkback-descriptions.xml b/java/res/values-en-rGB/strings-talkback-descriptions.xml
index 0f726ddaf..3956777ea 100644
--- a/java/res/values-en-rGB/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rGB/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index dbc3712d0..0053a257c 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Suggest Contact names"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Use names from Contacts for suggestions and corrections"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Personalised suggestions"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Double-space full stop"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Double tap on spacebar inserts a full stop followed by a space"</string>
<string name="auto_cap" msgid="1719746674854628252">"Auto-capitalisation"</string>
diff --git a/java/res/values-en-rIN/strings-talkback-descriptions.xml b/java/res/values-en-rIN/strings-talkback-descriptions.xml
index 0f726ddaf..3956777ea 100644
--- a/java/res/values-en-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rIN/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index dbc3712d0..0053a257c 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Suggest Contact names"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Use names from Contacts for suggestions and corrections"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Personalised suggestions"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Double-space full stop"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Double tap on spacebar inserts a full stop followed by a space"</string>
<string name="auto_cap" msgid="1719746674854628252">"Auto-capitalisation"</string>
diff --git a/java/res/values-es-rUS/strings-talkback-descriptions.xml b/java/res/values-es-rUS/strings-talkback-descriptions.xml
index 52f791631..75fa14c2b 100644
--- a/java/res/values-es-rUS/strings-talkback-descriptions.xml
+++ b/java/res/values-es-rUS/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index db34dd227..ffbd54364 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sugerir nombres de contacto"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Usar nombres de los contactos para sugerencias y correcciones"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Sugerenc. personalizadas"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Punto y doble espacio"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Tocar dos veces la barra espaciadora inserta un punto y espacio."</string>
<string name="auto_cap" msgid="1719746674854628252">"Mayúsculas automáticas"</string>
diff --git a/java/res/values-es/strings-talkback-descriptions.xml b/java/res/values-es/strings-talkback-descriptions.xml
index 86c970f81..11422bc56 100644
--- a/java/res/values-es/strings-talkback-descriptions.xml
+++ b/java/res/values-es/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index 87671f428..1174614c5 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sugerir contactos"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizar nombres de contactos para sugerencias y correcciones"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Sugerencias personalizadas"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Punto y espacio"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Si tocas dos veces el espacio, se inserta un punto seguido de un espacio"</string>
<string name="auto_cap" msgid="1719746674854628252">"Mayúsculas automáticas"</string>
diff --git a/java/res/values-et-rEE/strings-talkback-descriptions.xml b/java/res/values-et-rEE/strings-talkback-descriptions.xml
index 2a7493e71..5bbe63b17 100644
--- a/java/res/values-et-rEE/strings-talkback-descriptions.xml
+++ b/java/res/values-et-rEE/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml
index e9c3f84ee..00d17bc60 100644
--- a/java/res/values-et-rEE/strings.xml
+++ b/java/res/values-et-rEE/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Soovita kontaktkirjeid"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Kasuta soovitusteks ja parandusteks nimesid kontaktiloendist"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Isikupärast. soovitused"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Punkt tühikuklahviga"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Tühikuklahvi kaks korda puudutades sisestatakse punkt ja tühik"</string>
<string name="auto_cap" msgid="1719746674854628252">"Automaatne suurtähtede kasutamine"</string>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index b36b88a6a..c70040fae 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 16a53b3f9..8a6e5a2dc 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"پیشنهاد نام‌های مخاطب"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"برای پیشنهاد و تصحیح از نام مخاطبین استفاده شود"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"پیشنهادات شخصی شده"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"نقطه با دو فاصله"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"با دوبار ضربه روی دکمه فاصله نقطه با یک فاصله بعد آن درج می‌شود"</string>
<string name="auto_cap" msgid="1719746674854628252">"بزرگ‌کردن خودکار حروف"</string>
diff --git a/java/res/values-fi/strings-talkback-descriptions.xml b/java/res/values-fi/strings-talkback-descriptions.xml
index e6050fb67..e2e66e3fe 100644
--- a/java/res/values-fi/strings-talkback-descriptions.xml
+++ b/java/res/values-fi/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 9ccc8c3c7..de9866acb 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Ehdota yht.tietojen nimiä"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Käytä yhteystietojen nimiä ehdotuksissa ja korjauksissa"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Räätälöidyt ehdotukset"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Kaksoisvälilyönti = piste"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Välilyönnin kaksoisnapautus lisää tekstiin pisteen ja välilyönnin"</string>
<string name="auto_cap" msgid="1719746674854628252">"Automaattiset isot kirjaimet"</string>
diff --git a/java/res/values-fr-rCA/strings-talkback-descriptions.xml b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
index 263792c66..2a0bec474 100644
--- a/java/res/values-fr-rCA/strings-talkback-descriptions.xml
+++ b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index fa4304776..357210f0c 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Proposer noms de contacts"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utiliser des noms de contacts pour les suggestions et corrections"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Suggestions personnalisées"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Point et espace"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Appuyez deux fois sur la barre d\'espace pour insérer un point et une espace"</string>
<string name="auto_cap" msgid="1719746674854628252">"Majuscules automatiques"</string>
diff --git a/java/res/values-fr/strings-talkback-descriptions.xml b/java/res/values-fr/strings-talkback-descriptions.xml
index 37904262e..a79fd2107 100644
--- a/java/res/values-fr/strings-talkback-descriptions.xml
+++ b/java/res/values-fr/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index 0fa8e638c..ea7eed688 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Proposer noms de contacts"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utiliser des noms de contacts pour les suggestions et corrections"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Suggestions personnalisées"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Point et espace"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Appuyez deux fois sur la barre d\'espace pour insérer un point et un espace."</string>
<string name="auto_cap" msgid="1719746674854628252">"Majuscules auto"</string>
diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml
index 9747aeb34..78e4c8d6e 100644
--- a/java/res/values-hi/strings-talkback-descriptions.xml
+++ b/java/res/values-hi/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index cb1ad60eb..26d9595ef 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"संपर्क नाम सुझाएं"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"सुझाव और सुधार के लिए संपर्क से नामों का उपयोग करें"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"वैयक्तिकृत सुझाव"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"दोहरे स्पेस वाला पीरियड"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"स्पेसबार पर डबल टैप करने से पीरियड शामिल हो जाता है जिसके बाद एक रिक्ति होती है"</string>
<string name="auto_cap" msgid="1719746674854628252">"स्‍वत: अक्षर बड़े करना"</string>
diff --git a/java/res/values-hr/strings-talkback-descriptions.xml b/java/res/values-hr/strings-talkback-descriptions.xml
index a5c4dfaee..b3d5f707c 100644
--- a/java/res/values-hr/strings-talkback-descriptions.xml
+++ b/java/res/values-hr/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 14e408f47..3d749e111 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Predlaži imena kontakata"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Upotreba imena iz Kontakata za prijedloge i ispravke"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Prilagođeni prijedlozi"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Točka s dva razmaka"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dvostrukim dodirivanjem razmaknice umeću se točka i razmak"</string>
<string name="auto_cap" msgid="1719746674854628252">"Automatsko pisanje velikih slova"</string>
diff --git a/java/res/values-hu/strings-talkback-descriptions.xml b/java/res/values-hu/strings-talkback-descriptions.xml
index 1b514b2d4..cf505c472 100644
--- a/java/res/values-hu/strings-talkback-descriptions.xml
+++ b/java/res/values-hu/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index 4c751b724..5691bf703 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Javasolt névjegyek"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"A névjegyek használata a javaslatokhoz és javításokhoz"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Testreszabott javaslatok"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dupla szóköz: pont"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"A szóköz kétszeri megérintése beszúr egy pontot, majd egy szóközt"</string>
<string name="auto_cap" msgid="1719746674854628252">"Automatikusan nagy kezdőbetű"</string>
diff --git a/java/res/values-hy-rAM/strings-talkback-descriptions.xml b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
index d9c9b6d82..5b7e4b522 100644
--- a/java/res/values-hy-rAM/strings-talkback-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml
index a43e67916..d7851b540 100644
--- a/java/res/values-hy-rAM/strings.xml
+++ b/java/res/values-hy-rAM/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Առաջարկել կոնտակտների անունները"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Օգտագործել կոնտակտների անունները՝ առաջարկների և ուղղումների համար"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Անհատականացված առաջարկներ"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Կրկնաբացակի վերջակետ"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Բացակի ստեղնի կրկնակի հպումը բացակից հետո վերջակետ է դնում"</string>
<string name="auto_cap" msgid="1719746674854628252">"Ավտոմատ գլխատառացում"</string>
diff --git a/java/res/values-in/strings-talkback-descriptions.xml b/java/res/values-in/strings-talkback-descriptions.xml
index 07c5bf749..6f2970795 100644
--- a/java/res/values-in/strings-talkback-descriptions.xml
+++ b/java/res/values-in/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index a625da03e..3205a5db4 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sarankan nama Kontak"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Menggunakan nama dari Kontak untuk saran dan koreksi"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Saran hasil personalisasi"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Titik spasi ganda"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Mengetuk tombol spasi dua kali akan memasukkan titik diikuti satu spasi"</string>
<string name="auto_cap" msgid="1719746674854628252">"Kapitalisasi otomatis"</string>
diff --git a/java/res/values-it/strings-talkback-descriptions.xml b/java/res/values-it/strings-talkback-descriptions.xml
index e48f7715e..f9eeefea0 100644
--- a/java/res/values-it/strings-talkback-descriptions.xml
+++ b/java/res/values-it/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index fc9834e12..e51a87184 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Suggerisci nomi di contatti"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizza nomi di Contatti per suggerimenti e correzioni"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Suggerimenti personalizz."</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Doppio spazio per punto"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Tocca due volte barra spaziatr. per inserire punto seguito da spazio"</string>
<string name="auto_cap" msgid="1719746674854628252">"Maiuscole automatiche"</string>
diff --git a/java/res/values-iw/strings-talkback-descriptions.xml b/java/res/values-iw/strings-talkback-descriptions.xml
index f3f07af03..435aaba51 100644
--- a/java/res/values-iw/strings-talkback-descriptions.xml
+++ b/java/res/values-iw/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 7ab16370e..36cb66330 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"הצע שמות של אנשי קשר"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"השתמש בשמות מרשימת אנשי הקשר עבור הצעות ותיקונים"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"הצעות מותאמות אישית"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"רווח כפול לנקודה"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"הקשה פעמיים על מקש הרווח מזינה נקודה ואחריה רווח"</string>
<string name="auto_cap" msgid="1719746674854628252">"הפיכת אותיות לרישיות באופן אוטומטי"</string>
diff --git a/java/res/values-ja/strings-talkback-descriptions.xml b/java/res/values-ja/strings-talkback-descriptions.xml
index 757b83209..a3b4c8faa 100644
--- a/java/res/values-ja/strings-talkback-descriptions.xml
+++ b/java/res/values-ja/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 3845bd759..b6eea69dd 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"連絡先の名前を候補に表示"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"連絡先の名前を使用して候補表示や自動修正を行います"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"入力候補のカスタマイズ"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"ダブルスペースピリオド"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"スペースバーをダブルタップするとピリオドとスペースを挿入できます"</string>
<string name="auto_cap" msgid="1719746674854628252">"自動大文字変換"</string>
diff --git a/java/res/values-ka-rGE/strings-talkback-descriptions.xml b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
index daf818005..0cf7e7ce4 100644
--- a/java/res/values-ka-rGE/strings-talkback-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index 4677b1844..3360c6209 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"კონტაქტის სახელების შეთავაზება"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"კონტაქტებიდან სახელების გამოყენება შეთავაზებებისთვის და კორექციისთვის"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"პერსონალიზებული შეთავაზებები"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"წერტილი ორმაგი შორისით"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"შორისზე ორჯერ შეხება დაწერს წერტილს და შორისის სიმბოლოს"</string>
<string name="auto_cap" msgid="1719746674854628252">"ავტო-კაპიტალიზაცია"</string>
diff --git a/java/res/values-kk/strings-talkback-descriptions.xml b/java/res/values-kk/strings-talkback-descriptions.xml
index 13adf830d..39388a4d7 100644
--- a/java/res/values-kk/strings-talkback-descriptions.xml
+++ b/java/res/values-kk/strings-talkback-descriptions.xml
@@ -27,7 +27,8 @@
<skip />
<!-- no translation found for spoken_auto_correct_obscured (6276420476908833791) -->
<skip />
- <string name="spoken_description_unknown" msgid="3197434010402179157">"Перне коды %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="244197883292549308">"Shift"</string>
<string name="spoken_description_shift_shifted" msgid="1681877323344195035">"Shift қосулы (өшіру үшін түрту)"</string>
<string name="spoken_description_caps_lock" msgid="3276478269526304432">"Caps lock қосулы (өшіру үшін түрту)"</string>
diff --git a/java/res/values-km-rKH/strings-talkback-descriptions.xml b/java/res/values-km-rKH/strings-talkback-descriptions.xml
index 67934c702..0f0ac5600 100644
--- a/java/res/values-km-rKH/strings-talkback-descriptions.xml
+++ b/java/res/values-km-rKH/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml
index 337d08676..5d68816d1 100644
--- a/java/res/values-km-rKH/strings.xml
+++ b/java/res/values-km-rKH/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"ស្នើ​ឈ្មោះ​ទំនាក់ទំនង"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"ប្រើ​ឈ្មោះ​ពី​ទំនាក់ទំនង​សម្រាប់​ការ​​ស្នើ និង​​​កែ"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"ការ​ស្នើ​ផ្ទាល់​ខ្លួន"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"រយៈ​ពេល​ចុច​ដកឃ្លា​ពីរដង"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"ប៉ះ​ដកឃ្លា​ពីរ​​ដង​បញ្ចូល​​​រយៈ​ពេល​ដែល​អនុវត្ត​តាម​ដកឃ្លា"</string>
<string name="auto_cap" msgid="1719746674854628252">"ការ​សរសេរ​ជា​អក្សរ​ធំ​​ស្វ័យប្រវត្តិ"</string>
diff --git a/java/res/values-ko/strings-talkback-descriptions.xml b/java/res/values-ko/strings-talkback-descriptions.xml
index 117c09539..d5d71f935 100644
--- a/java/res/values-ko/strings-talkback-descriptions.xml
+++ b/java/res/values-ko/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index 98427b32a..3eff38c9d 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"주소록 이름 활용"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"추천 및 수정에 주소록의 이름 사용"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"맞춤 추천 검색어"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"더블스페이스 마침표"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"스페이스바를 두 번 탭하면 마침표와 공백 한 개가 삽입됩니다."</string>
<string name="auto_cap" msgid="1719746674854628252">"자동 대문자화"</string>
diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
index 4a63b02c7..c6140fda9 100644
--- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml
index 9d012b6a4..bca49e573 100644
--- a/java/res/values-lo-rLA/strings.xml
+++ b/java/res/values-lo-rLA/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"ແນະນຳລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"ໃຊ້ຊື່ຈາກລາຍຊື່ຜູ່ຕິດຕໍ່ສຳລັບການແນະນຳ ແລະ ການຊ່ວຍແກ້ຄຳ"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"ຄຳແນະນຳຕາມການນຳໃຊ້ຂອງທ່ານ"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"ຍະຫວ່າງສອງເທື່ອເພື່ອໃສ່ຈ້ຳເມັດ"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"ກົດທີ່ປຸ່ມຍະຫວ່າງສອງເທື່ອເພື່ອໃສ່ຈ້ຳເມັດແລ້ວຕາມດ້ວຍການຍະຫວ່າງ"</string>
<string name="auto_cap" msgid="1719746674854628252">"ເຮັດໂຕພິມໃຫຍ່ອັດຕະໂນມັດ"</string>
diff --git a/java/res/values-lt/strings-talkback-descriptions.xml b/java/res/values-lt/strings-talkback-descriptions.xml
index 8baf25b56..4e7f6afef 100644
--- a/java/res/values-lt/strings-talkback-descriptions.xml
+++ b/java/res/values-lt/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index 73003c25f..01ec1bea7 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Siūlyti kontaktų vardus"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Siūlant ir taisant naudoti vardus iš „Kontaktų“"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Suasmeninti pasiūlymai"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Tšk. ir tarp. pal. dukart"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dukart palietus tarpo klavišą įterpiamas taškas ir tarpas."</string>
<string name="auto_cap" msgid="1719746674854628252">"Automatinis didžiųjų raidžių rašymas"</string>
diff --git a/java/res/values-lv/strings-talkback-descriptions.xml b/java/res/values-lv/strings-talkback-descriptions.xml
index bd15c3fce..e68d83afb 100644
--- a/java/res/values-lv/strings-talkback-descriptions.xml
+++ b/java/res/values-lv/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index d689182fb..bc4e3e1ea 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Ieteikt kontaktp. vārdus"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Izmantot kontaktpersonu vārdus kā ieteikumus un labojumus"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Personalizēti ieteikumi"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dubultpiesk. = punkts"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Divreiz pieskaroties atst. taustiņam, ievada punktu un atstarpi."</string>
<string name="auto_cap" msgid="1719746674854628252">"Automātiska lielo burtu lietošana"</string>
diff --git a/java/res/values-mn-rMN/strings-talkback-descriptions.xml b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
index c28ac209a..1c1e6e7f3 100644
--- a/java/res/values-mn-rMN/strings-talkback-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index f6233b5f6..67886e3bd 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Харилцагчдын нэрс санал болгох"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Санал болгох, залруулахда Харилцагчдын нэрсээс ашиглах"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Хувийн тохиргоотой зөвлөмжүүд"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Давхар зайтай цэг"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Ардаа зайтай цэг оруулахын тулд Зай авах дээр давхар товшино уу"</string>
<string name="auto_cap" msgid="1719746674854628252">"Автоматаар томруулах"</string>
diff --git a/java/res/values-ms-rMY/strings-talkback-descriptions.xml b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
index ad0a62793..d6a45033e 100644
--- a/java/res/values-ms-rMY/strings-talkback-descriptions.xml
+++ b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml
index 04ea273ac..52165c55a 100644
--- a/java/res/values-ms-rMY/strings.xml
+++ b/java/res/values-ms-rMY/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Cadangkan nama Kenalan"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Menggunakan nama daripada Kenalan untuk cadangan dan pembetulan"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Cadangan diperibadikan"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Titik ruang berganda"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Mengetik 2X pada bar ruang memasukkan titik diikuti dengan ruang"</string>
<string name="auto_cap" msgid="1719746674854628252">"Autopenghurufbesaran"</string>
diff --git a/java/res/values-nb/strings-talkback-descriptions.xml b/java/res/values-nb/strings-talkback-descriptions.xml
index 899491afb..4870366d1 100644
--- a/java/res/values-nb/strings-talkback-descriptions.xml
+++ b/java/res/values-nb/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index f4a3a2da0..339361cc4 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Foreslå kontaktnavn"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Bruk navn fra Kontakter til forslag og korrigeringer"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Spesialtilpassede forslag"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Punktum ved doble mellomrom"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dobbeltrykk på mellomromstasten for punktum etterfulgt av mellomrom"</string>
<string name="auto_cap" msgid="1719746674854628252">"Stor forbokstav"</string>
diff --git a/java/res/values-ne-rNP/strings-talkback-descriptions.xml b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
index 548e21a88..044a04154 100644
--- a/java/res/values-ne-rNP/strings-talkback-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml
index 60321466f..22e5acb91 100644
--- a/java/res/values-ne-rNP/strings.xml
+++ b/java/res/values-ne-rNP/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"सम्पर्क नामहरू सुझाव गर्नुहोस्"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"सुझाव र सुधारका लागि सम्पर्कबाट नामहरू प्रयोग गर्नुहोस्"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"निजीकृत सुझावहरू"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"डबल-स्पेस पूर्णविराम"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"स्पेसबारमा डबल ट्याप गर्नाले पूर्णविरामपछि स्पेस राख्दछ"</string>
<string name="auto_cap" msgid="1719746674854628252">"स्वतः पूँजिकरण"</string>
diff --git a/java/res/values-nl/strings-talkback-descriptions.xml b/java/res/values-nl/strings-talkback-descriptions.xml
index 4393e568a..57bbf91e2 100644
--- a/java/res/values-nl/strings-talkback-descriptions.xml
+++ b/java/res/values-nl/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index a651f7e06..94ccd6b46 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Contactnamen suggereren"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Namen uit Contacten gebruiken voor suggesties en correcties"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Gepersonaliseerde suggesties"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dubbeltik is punt, spatie"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dubbeltik op spatiebalk voor een punt gevolgd door een spatie"</string>
<string name="auto_cap" msgid="1719746674854628252">"Auto-hoofdlettergebruik"</string>
diff --git a/java/res/values-pl/strings-talkback-descriptions.xml b/java/res/values-pl/strings-talkback-descriptions.xml
index 9a97b2642..1708ae02a 100644
--- a/java/res/values-pl/strings-talkback-descriptions.xml
+++ b/java/res/values-pl/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index e78b7f267..218e6197e 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Proponuj osoby z kontaktów"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"W propozycjach i poprawkach użyj nazwisk z kontaktów"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Spersonalizowane sugestie"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Szybka kropka ze spacją"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dwukrotne kliknięcie spacji wstawia kropkę ze spacją"</string>
<string name="auto_cap" msgid="1719746674854628252">"Wstawiaj wielkie litery"</string>
diff --git a/java/res/values-pt-rPT/strings-talkback-descriptions.xml b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
index fac1969c1..91d187ec9 100644
--- a/java/res/values-pt-rPT/strings-talkback-descriptions.xml
+++ b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index d13fca3ba..86a619bc6 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sugerir nomes de Contactos"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizar nomes dos Contactos para sugestões e correções"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Sugestões personalizadas"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Ponto de espaço duplo"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Tocar duas vezes na barra espaço insere ponto seguido de espaço"</string>
<string name="auto_cap" msgid="1719746674854628252">"Letras maiúsculas automáticas"</string>
diff --git a/java/res/values-pt/strings-talkback-descriptions.xml b/java/res/values-pt/strings-talkback-descriptions.xml
index e026dbab1..065cdaec6 100644
--- a/java/res/values-pt/strings-talkback-descriptions.xml
+++ b/java/res/values-pt/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index f19ce5ed4..4d65ec86c 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sugerir nomes de contato"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Usar nomes dos Contatos para sugestões e correções"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Sugestões personalizadas"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Duplo espaço para ponto"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Toque duplo na barra de espaço insere um ponto seguido de espaço"</string>
<string name="auto_cap" msgid="1719746674854628252">"Capitalização automática"</string>
diff --git a/java/res/values-ro/strings-talkback-descriptions.xml b/java/res/values-ro/strings-talkback-descriptions.xml
index 34bfd8fc8..6e5db4d02 100644
--- a/java/res/values-ro/strings-talkback-descriptions.xml
+++ b/java/res/values-ro/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 5d5330d3b..8ab56bc7a 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sugeraţi nume din Agendă"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizaţi numele din Agendă pentru sugestii şi corecţii"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Sugestii personalizate"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Inserează punct spațiu"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dubla atingere a barei de spațiu inserează punct urmat de spațiu"</string>
<string name="auto_cap" msgid="1719746674854628252">"Scriere automată cu majuscule"</string>
diff --git a/java/res/values-ru/strings-talkback-descriptions.xml b/java/res/values-ru/strings-talkback-descriptions.xml
index d79e4b8f0..f73ceab4e 100644
--- a/java/res/values-ru/strings-talkback-descriptions.xml
+++ b/java/res/values-ru/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index e78874948..61c414c4b 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Подсказывать имена"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Подсказывать исправления на основе имен из списка контактов"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Пользовательские словари"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Ставить точки автоматически"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Вводить точку с пробелом двойным нажатием кнопки \"Пробел\"."</string>
<string name="auto_cap" msgid="1719746674854628252">"Заглавные автоматически"</string>
diff --git a/java/res/values-sk/strings-talkback-descriptions.xml b/java/res/values-sk/strings-talkback-descriptions.xml
index e2f0eb191..9fde012b3 100644
--- a/java/res/values-sk/strings-talkback-descriptions.xml
+++ b/java/res/values-sk/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index 179960f50..1d7a3dc0e 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Navrhnúť mená kontaktov"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Používať mená z Kontaktov na návrhy a opravy"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Prispôsobené návrhy"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Bodka s medzerou"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dvojitým klepnutím na medzerník vložíte bodku a medzeru."</string>
<string name="auto_cap" msgid="1719746674854628252">"Veľké písmená automaticky"</string>
diff --git a/java/res/values-sl/strings-talkback-descriptions.xml b/java/res/values-sl/strings-talkback-descriptions.xml
index 92ccc6856..27b8d3d6c 100644
--- a/java/res/values-sl/strings-talkback-descriptions.xml
+++ b/java/res/values-sl/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index 64eedc623..85d40f4c9 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Predlagaj imena stikov"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Uporaba imen iz stikov za predloge in popravke"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Prilagojeni predlogi"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dva presl. za vnos pike"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Z dvojnim dotikom preslednice vstavite piko in za njo presledek"</string>
<string name="auto_cap" msgid="1719746674854628252">"Samod. velike začetnice"</string>
diff --git a/java/res/values-sr/strings-talkback-descriptions.xml b/java/res/values-sr/strings-talkback-descriptions.xml
index d14cccfbc..d47258177 100644
--- a/java/res/values-sr/strings-talkback-descriptions.xml
+++ b/java/res/values-sr/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index a37d22e7e..1862e8539 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Предложи имена контаката"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Користи имена из Контаката за предлоге и исправке"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Персонализовани предлози"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Тачка и размак"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Двоструким додиром размака умеће се тачка праћена размаком"</string>
<string name="auto_cap" msgid="1719746674854628252">"Аутоматски унос великих слова"</string>
diff --git a/java/res/values-sv/strings-talkback-descriptions.xml b/java/res/values-sv/strings-talkback-descriptions.xml
index fd7a43f65..9824b5a7c 100644
--- a/java/res/values-sv/strings-talkback-descriptions.xml
+++ b/java/res/values-sv/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 1cb57dda9..606140466 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Föreslå kontaktnamn"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Använd namn från Kontakter för förslag och korrigeringar"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Anpassade förslag"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dubbelt blanksteg = punkt"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Dubbelt blanksteg ger en punkt följt av mellanslag"</string>
<string name="auto_cap" msgid="1719746674854628252">"Automatiska versaler"</string>
diff --git a/java/res/values-sw/strings-talkback-descriptions.xml b/java/res/values-sw/strings-talkback-descriptions.xml
index a7447cec4..e00ce6a9b 100644
--- a/java/res/values-sw/strings-talkback-descriptions.xml
+++ b/java/res/values-sw/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index 361e9f67d..2d130e0bf 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Pendekeza majini ya Anwani"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Tumia majina kutoka kwa Anwani kwa mapendekezo na marekebisho"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Mapendekezo yaliyobadilishwa kukufaa"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Kitone baada ya nafasi mbili"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Kugonga mara mbili kwenye upau nafasi kunaingiza kitone kikifuatiwa na nafasi"</string>
<string name="auto_cap" msgid="1719746674854628252">"Uwekaji wa herufi kubwa kiotomatiki"</string>
diff --git a/java/res/values-th/strings-talkback-descriptions.xml b/java/res/values-th/strings-talkback-descriptions.xml
index 780252074..81c86fd5b 100644
--- a/java/res/values-th/strings-talkback-descriptions.xml
+++ b/java/res/values-th/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 5bbff3dc8..83f196f87 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"แนะนำชื่อผู้ติดต่อ"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"ใช้ชื่อจากรายชื่อติดต่อสำหรับคำแนะนำและการแก้ไข"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"คำแนะนำในแบบของคุณ"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"แตะ Space สองครั้งแทรกจุด"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"แตะ Spacebar สองครั้งจะแทรกจุดตามด้วยช่องว่างหนึ่งช่อง"</string>
<string name="auto_cap" msgid="1719746674854628252">"ปรับเป็นตัวพิมพ์ใหญ่อัตโนมัติ"</string>
diff --git a/java/res/values-tl/strings-talkback-descriptions.xml b/java/res/values-tl/strings-talkback-descriptions.xml
index df977bdf5..06ba9211d 100644
--- a/java/res/values-tl/strings-talkback-descriptions.xml
+++ b/java/res/values-tl/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index d1b665c72..b9216a607 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Mungkahi pangalan Contact"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Gamitin pangalan mula Mga Contact sa mga mungkahi\'t pagwawasto"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Personalized suggestions"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Double-space period"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Naglalagay ng tuldok na may puwang ang pag-double tap sa spacebar"</string>
<string name="auto_cap" msgid="1719746674854628252">"Auto-capitalization"</string>
diff --git a/java/res/values-tr/strings-talkback-descriptions.xml b/java/res/values-tr/strings-talkback-descriptions.xml
index c392e8594..a3f635cb9 100644
--- a/java/res/values-tr/strings-talkback-descriptions.xml
+++ b/java/res/values-tr/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index adbd67690..b1573c3d8 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Kişi Adları öner"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Öneri ve düzeltmeler için Kişiler\'deki adları kullan"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Kişisel öneriler"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Çift boşlukla nokta ekleme"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Boşluk çubuğuna iki kez vurmak nokta ve ardından bir boşluk ekler"</string>
<string name="auto_cap" msgid="1719746674854628252">"Otomatik olarak büyük harf yap"</string>
diff --git a/java/res/values-uk/strings-talkback-descriptions.xml b/java/res/values-uk/strings-talkback-descriptions.xml
index 3f43a1233..e4df115ae 100644
--- a/java/res/values-uk/strings-talkback-descriptions.xml
+++ b/java/res/values-uk/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index 8ce96561f..f2993fc03 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Пропон. імена контактів"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Використ. імена зі списку контактів для пропозицій і виправлень"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Персональні пропозиції"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Крапка подвійним пробілом"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Подвійне натискання пробілу вставляє крапку з пробілом після неї"</string>
<string name="auto_cap" msgid="1719746674854628252">"Авто викор. вел. літер"</string>
diff --git a/java/res/values-vi/strings-talkback-descriptions.xml b/java/res/values-vi/strings-talkback-descriptions.xml
index 5c9140996..ad63fa52f 100644
--- a/java/res/values-vi/strings-talkback-descriptions.xml
+++ b/java/res/values-vi/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 5d4705892..5a47ad06a 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Đề xuất tên liên hệ"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Sử dụng tên từ Danh bạ cho các đề xuất và chỉnh sửa"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Đề xuất được cá nhân hóa"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Dấu cách đôi"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Nhấn đúp vào phím cách sẽ chèn thêm một dấu sau dấu cách"</string>
<string name="auto_cap" msgid="1719746674854628252">"Tự động viết hoa"</string>
diff --git a/java/res/values-zh-rCN/strings-talkback-descriptions.xml b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
index f0770ab3a..dda7638e4 100644
--- a/java/res/values-zh-rCN/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 4f5cddda7..7725118e8 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"联系人姓名建议"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"根据通讯录中的姓名提供建议和更正"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"个性化建议"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"双击空格插入句号"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"双击空格键可插入句号并后跟空格"</string>
<string name="auto_cap" msgid="1719746674854628252">"自动大写"</string>
diff --git a/java/res/values-zh-rHK/strings-talkback-descriptions.xml b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
index 1bed8c96a..a962492ed 100644
--- a/java/res/values-zh-rHK/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index 1d6030e0a..564db46fe 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"建議聯絡人名稱"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"使用「聯絡人」的名稱提供建議與修正"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"個人化建議"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"按兩下空格鍵插入句號"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"只要輕按兩下空格鍵,即可插入句號並在後面加上一個空格"</string>
<string name="auto_cap" msgid="1719746674854628252">"自動大寫"</string>
diff --git a/java/res/values-zh-rTW/strings-talkback-descriptions.xml b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
index f7ca6cef3..c097b28b7 100644
--- a/java/res/values-zh-rTW/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index ae74d055c..176d5b4a7 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"聯絡人姓名建議"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"根據「聯絡人」名稱提供建議與修正"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"個人化建議"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"輕按兩下空格鍵即插入句號"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"輕按兩下空格鍵可插入句號另加一個空格"</string>
<string name="auto_cap" msgid="1719746674854628252">"自動大寫"</string>
diff --git a/java/res/values-zu/strings-talkback-descriptions.xml b/java/res/values-zu/strings-talkback-descriptions.xml
index 1a6f8b40d..9f344d8bf 100644
--- a/java/res/values-zu/strings-talkback-descriptions.xml
+++ b/java/res/values-zu/strings-talkback-descriptions.xml
@@ -82,4 +82,12 @@
<skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
+ <!-- no translation found for spoken_open_more_keys_keyboard (6832897688371903747) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_keys_keyboard (3524914657934712026) -->
+ <skip />
+ <!-- no translation found for spoken_open_more_suggestions (4231720702882969760) -->
+ <skip />
+ <!-- no translation found for spoken_close_more_suggestions (9118455416075032839) -->
+ <skip />
</resources>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index a0054cbde..d330c0785 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -46,6 +46,8 @@
<string name="use_contacts_dict" msgid="4435317977804180815">"Sikisela amagama Othintana nabo"</string>
<string name="use_contacts_dict_summary" msgid="6599983334507879959">"Amagama abasebenzisi kusuka Kothintana nabo bokusikisela nokulungisa"</string>
<string name="use_personalized_dicts" msgid="5167396352105467626">"Iziphakamiso ezenziwe okomuntu siqu"</string>
+ <!-- no translation found for enable_metrics_logging (5506372337118822837) -->
+ <skip />
<string name="use_double_space_period" msgid="8781529969425082860">"Isikhathi se-Double-space"</string>
<string name="use_double_space_period_summary" msgid="6532892187247952799">"Ukuthepha kabili kubha yesikhala kufaka isikhathi esilandelwa yisikhala"</string>
<string name="auto_cap" msgid="1719746674854628252">"Ukwenza ofeleba okuzenzakalelayo"</string>
diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
index 3a6453128..7a3510ee1 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
@@ -28,6 +28,7 @@ import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.StringUtils;
import java.util.Locale;
@@ -79,14 +80,6 @@ final class KeyCodeDescriptionMapper {
/**
* Returns the localized description of the action performed by a specified
* key based on the current keyboard state.
- * <p>
- * The order of precedence for key descriptions is:
- * <ol>
- * <li>Manually-defined based on the key label</li>
- * <li>Automatic or manually-defined based on the key code</li>
- * <li>Automatically based on the key label</li>
- * <li>{code null} for keys with no label or key code defined</li>
- * </p>
*
* @param context The package's context.
* @param keyboard The keyboard on which the key resides.
@@ -121,7 +114,20 @@ final class KeyCodeDescriptionMapper {
// Just attempt to speak the description.
if (code != Constants.CODE_UNSPECIFIED) {
- return getDescriptionForKeyCode(context, keyboard, key, shouldObscure);
+ // If the key description should be obscured, now is the time to do it.
+ final boolean isDefinedNonCtrl = Character.isDefined(code)
+ && !Character.isISOControl(code);
+ if (shouldObscure && isDefinedNonCtrl) {
+ return context.getString(OBSCURED_KEY_RES_ID);
+ }
+ final String description = getDescriptionForCodePoint(context, code);
+ if (description != null) {
+ return description;
+ }
+ if (!TextUtils.isEmpty(key.getLabel())) {
+ return key.getLabel();
+ }
+ return context.getString(R.string.spoken_description_unknown);
}
return null;
}
@@ -247,57 +253,35 @@ final class KeyCodeDescriptionMapper {
/**
* Returns a localized character sequence describing what will happen when
- * the specified key is pressed based on its key code.
- * <p>
- * The order of precedence for key code descriptions is:
- * <ol>
- * <li>Manually-defined shift-locked description</li>
- * <li>Manually-defined shifted description</li>
- * <li>Manually-defined normal description</li>
- * <li>Automatic based on the character represented by the key code</li>
- * <li>Fall-back for undefined or control characters</li>
- * </ol>
- * </p>
+ * the specified key is pressed based on its key code point.
*
* @param context The package's context.
- * @param keyboard The keyboard on which the key resides.
- * @param key The key from which to obtain a description.
- * @param shouldObscure {@true} if text (e.g. non-control) characters should be obscured.
- * @return a character sequence describing the action performed by pressing the key
+ * @param codePoint The code point from which to obtain a description.
+ * @return a character sequence describing the code point.
*/
- private String getDescriptionForKeyCode(final Context context, final Keyboard keyboard,
- final Key key, final boolean shouldObscure) {
- final int code = key.getCode();
-
+ public String getDescriptionForCodePoint(final Context context, final int codePoint) {
// If the key description should be obscured, now is the time to do it.
- final boolean isDefinedNonCtrl = Character.isDefined(code) && !Character.isISOControl(code);
- if (shouldObscure && isDefinedNonCtrl) {
- return context.getString(OBSCURED_KEY_RES_ID);
- }
- final int index = mKeyCodeMap.indexOfKey(code);
+ final int index = mKeyCodeMap.indexOfKey(codePoint);
if (index >= 0) {
return context.getString(mKeyCodeMap.valueAt(index));
}
- final String accentedLetter = getSpokenAccentedLetterDescription(context, code);
+ final String accentedLetter = getSpokenAccentedLetterDescription(context, codePoint);
if (accentedLetter != null) {
return accentedLetter;
}
// Here, <code>code</code> may be a base (non-accented) letter.
- final String unsupportedSymbol = getSpokenSymbolDescription(context, code);
+ final String unsupportedSymbol = getSpokenSymbolDescription(context, codePoint);
if (unsupportedSymbol != null) {
return unsupportedSymbol;
}
- final String emojiDescription = getSpokenEmojiDescription(context, code);
+ final String emojiDescription = getSpokenEmojiDescription(context, codePoint);
if (emojiDescription != null) {
return emojiDescription;
}
- if (isDefinedNonCtrl) {
- return Character.toString((char) code);
- }
- if (!TextUtils.isEmpty(key.getLabel())) {
- return key.getLabel();
+ if (Character.isDefined(codePoint) && !Character.isISOControl(codePoint)) {
+ return StringUtils.newSingleCodePointString(codePoint);
}
- return context.getString(R.string.spoken_description_unknown, code);
+ return null;
}
// TODO: Remove this method once TTS supports those accented letters' verbalization.
diff --git a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
index 4fdf5b8fa..96f84dde9 100644
--- a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
@@ -17,6 +17,7 @@
package com.android.inputmethod.accessibility;
import android.content.Context;
+import android.graphics.Rect;
import android.os.SystemClock;
import android.util.Log;
import android.util.SparseIntArray;
@@ -58,7 +59,8 @@ public final class MainKeyboardAccessibilityDelegate
/** The most recently set keyboard mode. */
private int mLastKeyboardMode = KEYBOARD_IS_HIDDEN;
private static final int KEYBOARD_IS_HIDDEN = -1;
- private boolean mShouldIgnoreOnRegisterHoverKey;
+ // The rectangle region to ignore hover events.
+ private final Rect mBoundsToIgnoreHoverEvent = new Rect();
private final AccessibilityLongPressTimer mAccessibilityLongPressTimer;
@@ -154,14 +156,28 @@ public final class MainKeyboardAccessibilityDelegate
case KeyboardId.ELEMENT_ALPHABET:
if (lastElementId == KeyboardId.ELEMENT_ALPHABET
|| lastElementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
+ // Transition between alphabet mode and automatic shifted mode should be silently
+ // ignored because it can be determined by each key's talk back announce.
return;
}
resId = R.string.spoken_description_mode_alpha;
break;
case KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED:
+ if (lastElementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
+ // Resetting automatic shifted mode by pressing the shift key causes the transition
+ // from automatic shifted to manual shifted that should be silently ignored.
+ return;
+ }
resId = R.string.spoken_description_shiftmode_on;
break;
case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED:
+ if (lastElementId == KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED) {
+ // Resetting caps locked mode by pressing the shift key causes the transition
+ // from shift locked to shift lock shifted that should be silently ignored.
+ return;
+ }
+ resId = R.string.spoken_description_shiftmode_locked;
+ break;
case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED:
resId = R.string.spoken_description_shiftmode_locked;
break;
@@ -192,31 +208,49 @@ public final class MainKeyboardAccessibilityDelegate
@Override
protected void onRegisterHoverKey(final Key key, final MotionEvent event) {
+ final int x = key.getHitBox().centerX();
+ final int y = key.getHitBox().centerY();
if (DEBUG_HOVER) {
- Log.d(TAG, "onRegisterHoverKey: key=" + key + " ignore="
- + mShouldIgnoreOnRegisterHoverKey);
+ Log.d(TAG, "onRegisterHoverKey: key=" + key
+ + " inIgnoreBounds=" + mBoundsToIgnoreHoverEvent.contains(x, y));
}
- if (!mShouldIgnoreOnRegisterHoverKey) {
- super.onRegisterHoverKey(key, event);
+ if (mBoundsToIgnoreHoverEvent.contains(x, y)) {
+ // This hover exit event points to the key that should be ignored.
+ // Clear the ignoring region to handle further hover events.
+ mBoundsToIgnoreHoverEvent.setEmpty();
+ return;
}
- mShouldIgnoreOnRegisterHoverKey = false;
+ super.onRegisterHoverKey(key, event);
}
@Override
protected void onHoverEnterTo(final Key key) {
+ final int x = key.getHitBox().centerX();
+ final int y = key.getHitBox().centerY();
if (DEBUG_HOVER) {
- Log.d(TAG, "onHoverEnterTo: key=" + key);
+ Log.d(TAG, "onHoverEnterTo: key=" + key
+ + " inIgnoreBounds=" + mBoundsToIgnoreHoverEvent.contains(x, y));
}
mAccessibilityLongPressTimer.cancelLongPress();
+ if (mBoundsToIgnoreHoverEvent.contains(x, y)) {
+ return;
+ }
+ // This hover enter event points to the key that isn't in the ignoring region.
+ // Further hover events should be handled.
+ mBoundsToIgnoreHoverEvent.setEmpty();
super.onHoverEnterTo(key);
if (key.isLongPressEnabled()) {
mAccessibilityLongPressTimer.startLongPress(key);
}
}
+ @Override
protected void onHoverExitFrom(final Key key) {
+ final int x = key.getHitBox().centerX();
+ final int y = key.getHitBox().centerY();
if (DEBUG_HOVER) {
- Log.d(TAG, "onHoverExitFrom: key=" + key);
+ Log.d(TAG, "onHoverExitFrom: key=" + key
+ + " inIgnoreBounds=" + mBoundsToIgnoreHoverEvent.contains(x, y));
}
mAccessibilityLongPressTimer.cancelLongPress();
super.onHoverExitFrom(key);
@@ -246,6 +280,24 @@ public final class MainKeyboardAccessibilityDelegate
// or a key invokes IME switcher dialog, we should just ignore the next
// {@link #onRegisterHoverKey(Key,MotionEvent)}. It can be determined by whether
// {@link PointerTracker} is in operation or not.
- mShouldIgnoreOnRegisterHoverKey = !tracker.isInOperation();
+ if (tracker.isInOperation()) {
+ // This long press shows a more keys keyboard and further hover events should be
+ // handled.
+ mBoundsToIgnoreHoverEvent.setEmpty();
+ return;
+ }
+ // This long press has handled at {@link MainKeyboardView#onLongPress(PointerTracker)}.
+ // We should ignore further hover events on this key.
+ mBoundsToIgnoreHoverEvent.set(key.getHitBox());
+ if (key.hasNoPanelAutoMoreKey()) {
+ // This long press has registered a code point without showing a more keys keyboard.
+ // We should talk back the code point if possible.
+ final int codePointOfNoPanelAutoMoreKey = key.getMoreKeys()[0].mCode;
+ final String text = KeyCodeDescriptionMapper.getInstance().getDescriptionForCodePoint(
+ mKeyboardView.getContext(), codePointOfNoPanelAutoMoreKey);
+ if (text != null) {
+ sendWindowStateChanged(text);
+ }
+ }
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index 77877143b..bcd0cd848 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -382,7 +382,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
mLanguageOnSpacebarTextSize = keyHeight * mLanguageOnSpacebarTextRatio;
if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
- mAccessibilityDelegate = new MainKeyboardAccessibilityDelegate(this, mKeyDetector);
+ if (mAccessibilityDelegate == null) {
+ mAccessibilityDelegate = new MainKeyboardAccessibilityDelegate(this, mKeyDetector);
+ }
mAccessibilityDelegate.setKeyboard(keyboard);
} else {
mAccessibilityDelegate = null;
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
index 4ca4abec6..0f575d30c 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
@@ -77,10 +77,13 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
// discarded at {@link InputView#dispatchHoverEvent(MotionEvent)}. Because only a hover
// event that is on this view is dispatched by the platform, we should use a
// {@link KeyDetector} that has no sliding allowance and no hysteresis.
- mKeyDetector = new KeyDetector();
- mAccessibilityDelegate = new MoreKeysKeyboardAccessibilityDelegate(this, mKeyDetector);
- mAccessibilityDelegate.setOpenAnnounce(R.string.spoken_open_more_keys_keyboard);
- mAccessibilityDelegate.setCloseAnnounce(R.string.spoken_close_more_keys_keyboard);
+ if (mAccessibilityDelegate == null) {
+ mKeyDetector = new KeyDetector();
+ mAccessibilityDelegate = new MoreKeysKeyboardAccessibilityDelegate(
+ this, mKeyDetector);
+ mAccessibilityDelegate.setOpenAnnounce(R.string.spoken_open_more_keys_keyboard);
+ mAccessibilityDelegate.setCloseAnnounce(R.string.spoken_close_more_keys_keyboard);
+ }
mAccessibilityDelegate.setKeyboard(keyboard);
} else {
mKeyDetector = new MoreKeysDetector(getResources().getDimension(
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
index 0166802a4..80ba60c82 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
@@ -55,7 +55,7 @@ final class EmojiPageKeyboardView extends KeyboardView implements
private OnKeyEventListener mListener = EMPTY_LISTENER;
private final KeyDetector mKeyDetector = new KeyDetector();
private final GestureDetector mGestureDetector;
- private final KeyboardAccessibilityDelegate<EmojiPageKeyboardView> mAccessibilityDelegate;
+ private KeyboardAccessibilityDelegate<EmojiPageKeyboardView> mAccessibilityDelegate;
public EmojiPageKeyboardView(final Context context, final AttributeSet attrs) {
this(context, attrs, R.attr.keyboardViewStyle);
@@ -67,7 +67,6 @@ final class EmojiPageKeyboardView extends KeyboardView implements
mGestureDetector = new GestureDetector(context, this);
mGestureDetector.setIsLongpressEnabled(false /* isLongpressEnabled */);
mHandler = new Handler();
- mAccessibilityDelegate = new KeyboardAccessibilityDelegate<>(this, mKeyDetector);
}
public void setOnKeyEventListener(final OnKeyEventListener listener) {
@@ -81,6 +80,14 @@ final class EmojiPageKeyboardView extends KeyboardView implements
public void setKeyboard(final Keyboard keyboard) {
super.setKeyboard(keyboard);
mKeyDetector.setKeyboard(keyboard, 0 /* correctionX */, 0 /* correctionY */);
+ if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
+ if (mAccessibilityDelegate == null) {
+ mAccessibilityDelegate = new KeyboardAccessibilityDelegate<>(this, mKeyDetector);
+ }
+ mAccessibilityDelegate.setKeyboard(keyboard);
+ } else {
+ mAccessibilityDelegate = null;
+ }
}
/**
@@ -88,8 +95,10 @@ final class EmojiPageKeyboardView extends KeyboardView implements
*/
@Override
public boolean onHoverEvent(final MotionEvent event) {
- if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
- return mAccessibilityDelegate.onHoverEvent(event);
+ final KeyboardAccessibilityDelegate<EmojiPageKeyboardView> accessibilityDelegate =
+ mAccessibilityDelegate;
+ if (accessibilityDelegate != null) {
+ return accessibilityDelegate.onHoverEvent(event);
}
return super.onHoverEvent(event);
}
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 7247a1f20..1d087439d 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -345,7 +345,7 @@ public final class BinaryDictionary extends Dictionary {
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
return getFrequency(word) != NOT_A_PROBABILITY;
}
diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java
index bc7276b9a..b55ed125f 100644
--- a/java/src/com/android/inputmethod/latin/Dictionary.java
+++ b/java/src/com/android/inputmethod/latin/Dictionary.java
@@ -16,6 +16,7 @@
package com.android.inputmethod.latin;
+import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.keyboard.ProximityInfo;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
@@ -85,11 +86,19 @@ public abstract class Dictionary {
final int sessionId, final float[] inOutLanguageWeight);
/**
- * Checks if the given word occurs in the dictionary
+ * Checks if the given word has to be treated as a valid word. Please note that some
+ * dictionaries have entries that should be treated as invalid words.
* @param word the word to search for. The search should be case-insensitive.
- * @return true if the word exists, false otherwise
+ * @return true if the word is valid, false otherwise
*/
- abstract public boolean isValidWord(final String word);
+ public boolean isValidWord(final String word) {
+ return isInDictionary(word);
+ }
+
+ /**
+ * Checks if the given word is in the dictionary regardless of it being valid or not.
+ */
+ abstract public boolean isInDictionary(final String word);
public int getFrequency(final String word) {
return NOT_A_PROBABILITY;
@@ -165,7 +174,7 @@ public abstract class Dictionary {
}
@Override
- public boolean isValidWord(String word) {
+ public boolean isInDictionary(String word) {
return false;
}
}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index 53c78fd00..89d61ce2a 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -78,9 +78,9 @@ public final class DictionaryCollection extends Dictionary {
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
for (int i = mDictionaries.size() - 1; i >= 0; --i)
- if (mDictionaries.get(i).isValidWord(word)) return true;
+ if (mDictionaries.get(i).isInDictionary(word)) return true;
return false;
}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index e8b0be069..bdf39238a 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -30,6 +30,7 @@ import com.android.inputmethod.latin.personalization.PersonalizationDictionary;
import com.android.inputmethod.latin.personalization.UserHistoryDictionary;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
import com.android.inputmethod.latin.utils.DistracterFilter;
+import com.android.inputmethod.latin.utils.DistracterFilterCheckingIsInDictionary;
import com.android.inputmethod.latin.utils.ExecutorUtils;
import com.android.inputmethod.latin.utils.LanguageModelParam;
import com.android.inputmethod.latin.utils.SuggestionResults;
@@ -571,16 +572,22 @@ public class DictionaryFacilitator {
final PersonalizationDataChunk personalizationDataChunk,
final SpacingAndPunctuations spacingAndPunctuations,
final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) {
+ final ExpandableBinaryDictionary personalizationDict =
+ mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION);
+ if (personalizationDict == null) {
+ if (callback != null) {
+ callback.onFinished();
+ }
+ return;
+ }
final ArrayList<LanguageModelParam> languageModelParams =
LanguageModelParam.createLanguageModelParamsFrom(
personalizationDataChunk.mTokens,
personalizationDataChunk.mTimestampInSeconds,
this /* dictionaryFacilitator */, spacingAndPunctuations,
- mDistracterFilter);
- final ExpandableBinaryDictionary personalizationDict =
- mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION);
- if (personalizationDict == null || languageModelParams == null
- || languageModelParams.isEmpty()) {
+ new DistracterFilterCheckingIsInDictionary(
+ mDistracterFilter, personalizationDict));
+ if (languageModelParams == null || languageModelParams.isEmpty()) {
if (callback != null) {
callback.onFinished();
}
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index 8664c09e4..e5e00d59a 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -414,7 +414,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
reloadDictionaryIfRequired();
boolean lockAcquired = false;
try {
@@ -424,10 +424,10 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
if (mBinaryDictionary == null) {
return false;
}
- return isValidWordLocked(word);
+ return isInDictionaryLocked(word);
}
} catch (final InterruptedException e) {
- Log.e(TAG, "Interrupted tryLock() in isValidWord().", e);
+ Log.e(TAG, "Interrupted tryLock() in isInDictionary().", e);
} finally {
if (lockAcquired) {
mLock.readLock().unlock();
@@ -436,9 +436,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
return false;
}
- protected boolean isValidWordLocked(final String word) {
+ protected boolean isInDictionaryLocked(final String word) {
if (mBinaryDictionary == null) return false;
- return mBinaryDictionary.isValidWord(word);
+ return mBinaryDictionary.isInDictionary(word);
}
@Override
@@ -590,20 +590,6 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
});
}
- // TODO: Implement BinaryDictionary.isInDictionary().
- @UsedForTesting
- public boolean isInUnderlyingBinaryDictionaryForTests(final String word) {
- mLock.readLock().lock();
- try {
- if (mBinaryDictionary != null && mDictType == Dictionary.TYPE_USER_HISTORY) {
- return mBinaryDictionary.isValidWord(word);
- }
- return false;
- } finally {
- mLock.readLock().unlock();
- }
- }
-
@UsedForTesting
public void waitAllTasksForTests() {
final CountDownLatch countDownLatch = new CountDownLatch(1);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 709f1334f..35966bb71 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -81,7 +81,7 @@ import com.android.inputmethod.latin.utils.ApplicationUtils;
import com.android.inputmethod.latin.utils.CapsModeUtils;
import com.android.inputmethod.latin.utils.CoordinateUtils;
import com.android.inputmethod.latin.utils.DialogUtils;
-import com.android.inputmethod.latin.utils.DistracterFilterUsingSuggestion;
+import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatches;
import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
import com.android.inputmethod.latin.utils.IntentUtils;
import com.android.inputmethod.latin.utils.JniUtils;
@@ -121,7 +121,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private final Settings mSettings;
private final DictionaryFacilitator mDictionaryFacilitator =
- new DictionaryFacilitator(new DistracterFilterUsingSuggestion(this /* context */));
+ new DictionaryFacilitator(new DistracterFilterCheckingExactMatches(this /* context */));
private final InputLogic mInputLogic = new InputLogic(this /* LatinIME */,
this /* SuggestionStripViewAccessor */, mDictionaryFacilitator);
// We expect to have only one decoder in almost all cases, hence the default capacity of 1.
@@ -1374,34 +1374,15 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
callback.onGetSuggestedWords(SuggestedWords.EMPTY);
return;
}
- // Get the word on which we should search the bigrams. If we are composing a word, it's
- // whatever is *before* the half-committed word in the buffer, hence 2; if we aren't, we
- // should just skip whitespace if any, so 1.
final SettingsValues currentSettings = mSettings.getCurrent();
final int[] additionalFeaturesOptions = currentSettings.mAdditionalFeaturesSettingValues;
-
- if (DEBUG) {
- if (mInputLogic.mWordComposer.isComposingWord()
- || mInputLogic.mWordComposer.isBatchMode()) {
- final PrevWordsInfo prevWordsInfo
- = mInputLogic.mWordComposer.getPrevWordsInfoForSuggestion();
- // TODO: this is for checking consistency with older versions. Remove this when
- // we are confident this is stable.
- // We're checking the previous word in the text field against the memorized previous
- // word. If we are composing a word we should have the second word before the cursor
- // memorized, otherwise we should have the first.
- final PrevWordsInfo rereadPrevWordsInfo =
- mInputLogic.getPrevWordsInfoFromNthPreviousWordForSuggestion(
- currentSettings.mSpacingAndPunctuations,
- mInputLogic.mWordComposer.isComposingWord() ? 2 : 1);
- if (!TextUtils.equals(prevWordsInfo.mPrevWord, rereadPrevWordsInfo.mPrevWord)) {
- throw new RuntimeException("Unexpected previous word: "
- + prevWordsInfo.mPrevWord + " <> " + rereadPrevWordsInfo.mPrevWord);
- }
- }
- }
mInputLogic.mSuggest.getSuggestedWords(mInputLogic.mWordComposer,
- mInputLogic.mWordComposer.getPrevWordsInfoForSuggestion(),
+ mInputLogic.getPrevWordsInfoFromNthPreviousWordForSuggestion(
+ currentSettings.mSpacingAndPunctuations,
+ // Get the word on which we should search the bigrams. If we are composing
+ // a word, it's whatever is *before* the half-committed word in the buffer,
+ // hence 2; if we aren't, we should just skip whitespace if any, so 1.
+ mInputLogic.mWordComposer.isComposingWord() ? 2 : 1),
keyboard.getProximityInfo(), currentSettings.mBlockPotentiallyOffensive,
currentSettings.mAutoCorrectionEnabled, additionalFeaturesOptions, sessionId,
sequenceNumber, callback);
diff --git a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
index 7989346f4..e59ef7563 100644
--- a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
@@ -66,10 +66,10 @@ public final class ReadOnlyBinaryDictionary extends Dictionary {
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
if (mLock.readLock().tryLock()) {
try {
- return mBinaryDictionary.isValidWord(word);
+ return mBinaryDictionary.isInDictionary(word);
} finally {
mLock.readLock().unlock();
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
index be658ceff..1ba7b366f 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
@@ -80,4 +80,10 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
/* package */ void runGCIfRequired() {
runGCIfRequired(false /* mindsBlockByGC */);
}
+
+ @Override
+ public boolean isValidWord(final String word) {
+ // Strings out of this dictionary should not be considered existing words.
+ return false;
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
index 1423fceff..19fa29e5f 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
@@ -38,10 +38,4 @@ public class PersonalizationDictionary extends DecayingExpandableBinaryDictionar
final Locale locale, final File dictFile) {
return PersonalizationHelper.getPersonalizationDictionary(context, locale);
}
-
- @Override
- public boolean isValidWord(final String word) {
- // Strings out of this dictionary should not be considered existing words.
- return false;
- }
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
index 67ad54fb7..ea1035612 100644
--- a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
@@ -47,12 +47,6 @@ public class UserHistoryDictionary extends DecayingExpandableBinaryDictionaryBas
return PersonalizationHelper.getUserHistoryDictionary(context, locale);
}
- @Override
- public boolean isValidWord(final String word) {
- // Strings out of this dictionary should not be considered existing words.
- return false;
- }
-
/**
* Add a word to the user history dictionary.
*
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
index 1331d52d5..cc52a3e0f 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
@@ -58,7 +58,7 @@ public final class DictionaryPool extends LinkedBlockingQueue<DictAndKeyboard> {
return noSuggestions;
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
// This is never called. However if for some strange reason it ever gets
// called, returning true is less destructive (it will not underline the
// word in red).
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java
index 75075664f..a6437bac3 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java
@@ -47,9 +47,9 @@ public final class SynchronouslyLoadedContactsBinaryDictionary extends ContactsB
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
synchronized (mLock) {
- return super.isValidWord(word);
+ return super.isInDictionary(word);
}
}
}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java
index f2d981a9d..8c9d5d681 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java
@@ -52,9 +52,9 @@ public final class SynchronouslyLoadedUserBinaryDictionary extends UserBinaryDic
}
@Override
- public boolean isValidWord(final String word) {
+ public boolean isInDictionary(final String word) {
synchronized (mLock) {
- return super.isValidWord(word);
+ return super.isInDictionary(word);
}
}
}
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
index 79a735ad6..528d500d2 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
@@ -56,10 +56,18 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
super.setKeyboard(keyboard);
// With accessibility mode off, {@link #mAccessibilityDelegate} is set to null at the
// above {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call.
+ // With accessibility mode on, {@link #mAccessibilityDelegate} is set to a
+ // {@link MoreKeysKeyboardAccessibilityDelegate} object at the above
+ // {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call. And the object has to be
+ // overwritten by a {@link MoreSuggestionsAccessibilityDelegate} object here.
if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
- mAccessibilityDelegate = new MoreSuggestionsAccessibilityDelegate(this, mKeyDetector);
- mAccessibilityDelegate.setOpenAnnounce(R.string.spoken_open_more_suggestions);
- mAccessibilityDelegate.setCloseAnnounce(R.string.spoken_close_more_suggestions);
+ if (!(mAccessibilityDelegate instanceof MoreSuggestionsAccessibilityDelegate)) {
+ mAccessibilityDelegate = new MoreSuggestionsAccessibilityDelegate(
+ this, mKeyDetector);
+ mAccessibilityDelegate.setOpenAnnounce(R.string.spoken_open_more_suggestions);
+ mAccessibilityDelegate.setCloseAnnounce(R.string.spoken_close_more_suggestions);
+ }
+ mAccessibilityDelegate.setKeyboard(keyboard);
}
}
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index 810bda758..19b48f081 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -379,10 +379,9 @@ final class SuggestionStripLayoutHelper {
} else {
wordView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
}
-
- // Disable this suggestion if the suggestion is null or empty.
- // TODO: Fix disabled {@link TextView}'s content description.
- wordView.setEnabled(!TextUtils.isEmpty(word));
+ // {@link StyleSpan} in a content description may cause an issue of TTS/TalkBack.
+ // Use a simple {@link String} to avoid the issue.
+ wordView.setContentDescription(TextUtils.isEmpty(word) ? null : word.toString());
final CharSequence text = getEllipsizedText(word, width, wordView.getPaint());
final float scaleX = getTextScaleX(word, width, wordView.getPaint());
wordView.setText(text); // TextView.setText() resets text scale x to 1.0.
@@ -461,14 +460,15 @@ final class SuggestionStripLayoutHelper {
}
final TextView wordView = mWordViews.get(positionInStrip);
- wordView.setEnabled(true);
- wordView.setTextColor(mColorAutoCorrect);
+ final String punctuation = punctuationSuggestions.getLabel(positionInStrip);
// {@link TextView#getTag()} is used to get the index in suggestedWords at
// {@link SuggestionStripView#onClick(View)}.
wordView.setTag(positionInStrip);
- wordView.setText(punctuationSuggestions.getLabel(positionInStrip));
+ wordView.setText(punctuation);
+ wordView.setContentDescription(punctuation);
wordView.setTextScaleX(1.0f);
wordView.setCompoundDrawables(null, null, null, null);
+ wordView.setTextColor(mColorAutoCorrect);
stripView.addView(wordView);
setLayoutWeight(wordView, 1.0f, mSuggestionsStripHeight);
}
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index 97241498a..8ce863578 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -163,7 +163,6 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
word.setOnLongClickListener(this);
mWordViews.add(word);
final View divider = inflater.inflate(R.layout.suggestion_divider, null);
- divider.setOnClickListener(this);
mDividerViews.add(divider);
final TextView info = new TextView(context, null, R.attr.suggestionWordStyle);
info.setTextColor(Color.WHITE);
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterUsingSuggestion.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatches.java
index 8c3844ed8..0ee6236b1 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilterUsingSuggestion.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatches.java
@@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
import android.content.Context;
import android.util.Log;
+import android.util.LruCache;
import android.view.inputmethod.InputMethodSubtype;
import com.android.inputmethod.latin.DictionaryFacilitator;
@@ -31,15 +32,16 @@ import com.android.inputmethod.latin.PrevWordsInfo;
* This class is used to prevent distracters being added to personalization
* or user history dictionaries
*/
-// TODO: Rename.
-public class DistracterFilterUsingSuggestion implements DistracterFilter {
- private static final String TAG = DistracterFilterUsingSuggestion.class.getSimpleName();
+public class DistracterFilterCheckingExactMatches implements DistracterFilter {
+ private static final String TAG = DistracterFilterCheckingExactMatches.class.getSimpleName();
private static final boolean DEBUG = false;
private static final long TIMEOUT_TO_WAIT_LOADING_DICTIONARIES_IN_SECONDS = 120;
+ private static final int MAX_DISTRACTERS_CACHE_SIZE = 512;
private final Context mContext;
private final DictionaryFacilitator mDictionaryFacilitator;
+ private final LruCache<String, Boolean> mDistractersCache;
private final Object mLock = new Object();
/**
@@ -47,9 +49,10 @@ public class DistracterFilterUsingSuggestion implements DistracterFilter {
*
* @param context the context.
*/
- public DistracterFilterUsingSuggestion(final Context context) {
+ public DistracterFilterCheckingExactMatches(final Context context) {
mContext = context;
mDictionaryFacilitator = new DictionaryFacilitator();
+ mDistractersCache = new LruCache<>(MAX_DISTRACTERS_CACHE_SIZE);
}
@Override
@@ -88,6 +91,7 @@ public class DistracterFilterUsingSuggestion implements DistracterFilter {
synchronized (mLock) {
// Reset dictionaries for the locale.
try {
+ mDistractersCache.evictAll();
loadDictionariesForLocale(locale);
} catch (final InterruptedException e) {
Log.e(TAG, "Interrupted while waiting for loading dicts in DistracterFilter",
@@ -96,6 +100,15 @@ public class DistracterFilterUsingSuggestion implements DistracterFilter {
}
}
}
+
+ final Boolean isCachedDistracter = mDistractersCache.get(testedWord);
+ if (isCachedDistracter != null && isCachedDistracter) {
+ if (DEBUG) {
+ Log.d(TAG, "testedWord: " + testedWord);
+ Log.d(TAG, "isDistracter: true (cache hit)");
+ }
+ return true;
+ }
// The tested word is a distracter when there is a word that is exact matched to the tested
// word and its probability is higher than the tested word's probability.
final int perfectMatchFreq = mDictionaryFacilitator.getFrequency(testedWord);
@@ -107,6 +120,10 @@ public class DistracterFilterUsingSuggestion implements DistracterFilter {
Log.d(TAG, "exactMatchFreq: " + exactMatchFreq);
Log.d(TAG, "isDistracter: " + isDistracter);
}
+ if (isDistracter) {
+ // Add the word to the cache.
+ mDistractersCache.put(testedWord, Boolean.TRUE);
+ }
return isDistracter;
}
}
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java
new file mode 100644
index 000000000..4ad4ba784
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java
@@ -0,0 +1,59 @@
+/*
+ * 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.utils;
+
+import java.util.List;
+import java.util.Locale;
+
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.Dictionary;
+import com.android.inputmethod.latin.PrevWordsInfo;
+
+public class DistracterFilterCheckingIsInDictionary implements DistracterFilter {
+ private final DistracterFilter mDistracterFilter;
+ private final Dictionary mDictionary;
+
+ public DistracterFilterCheckingIsInDictionary(final DistracterFilter distracterFilter,
+ final Dictionary dictionary) {
+ mDistracterFilter = distracterFilter;
+ mDictionary = dictionary;
+ }
+
+ @Override
+ public boolean isDistracterToWordsInDictionaries(PrevWordsInfo prevWordsInfo,
+ String testedWord, Locale locale) {
+ if (mDictionary.isInDictionary(testedWord)) {
+ // This filter treats entries that are already in the dictionary as non-distracters
+ // because they have passed the filtering in the past.
+ return false;
+ } else {
+ return mDistracterFilter.isDistracterToWordsInDictionaries(
+ prevWordsInfo, testedWord, locale);
+ }
+ }
+
+ @Override
+ public void updateEnabledSubtypes(List<InputMethodSubtype> enabledSubtypes) {
+ // Do nothing.
+ }
+
+ @Override
+ public void close() {
+ // Do nothing.
+ }
+}