aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/raw/main_es.dictbin1376678 -> 1376706 bytes
-rw-r--r--java/res/values-af/strings-action-keys.xml3
-rw-r--r--java/res/values-af/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-af/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-af/strings.xml3
-rw-r--r--java/res/values-am/strings-action-keys.xml3
-rw-r--r--java/res/values-am/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-am/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-am/strings.xml3
-rw-r--r--java/res/values-ca/strings-action-keys.xml3
-rw-r--r--java/res/values-ca/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-ca/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-ca/strings.xml3
-rw-r--r--java/res/values-cs/strings.xml2
-rw-r--r--java/res/values-en-rGB/strings-action-keys.xml3
-rw-r--r--java/res/values-en-rGB/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-en-rGB/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-en-rGB/strings.xml3
-rw-r--r--java/res/values-en-rIN/strings-action-keys.xml3
-rw-r--r--java/res/values-en-rIN/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-en-rIN/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-en-rIN/strings.xml3
-rw-r--r--java/res/values-fa/strings-action-keys.xml3
-rw-r--r--java/res/values-fa/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-fa/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-fa/strings.xml3
-rw-r--r--java/res/values-in/strings-action-keys.xml3
-rw-r--r--java/res/values-in/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-in/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-in/strings.xml3
-rw-r--r--java/res/values-iw/strings-action-keys.xml3
-rw-r--r--java/res/values-iw/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-iw/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-iw/strings.xml3
-rw-r--r--java/res/values-ka-rGE/strings-action-keys.xml3
-rw-r--r--java/res/values-ka-rGE/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-ka-rGE/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-ka-rGE/strings.xml3
-rw-r--r--java/res/values-km-rKH/strings-action-keys.xml3
-rw-r--r--java/res/values-km-rKH/strings-emoji-descriptions.xml72
-rw-r--r--java/res/values-km-rKH/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-km-rKH/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-km-rKH/strings.xml21
-rw-r--r--java/res/values-lo-rLA/strings-action-keys.xml3
-rw-r--r--java/res/values-lo-rLA/strings-emoji-descriptions.xml4
-rw-r--r--java/res/values-lo-rLA/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-lo-rLA/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-lo-rLA/strings.xml3
-rw-r--r--java/res/values-mn-rMN/strings-action-keys.xml3
-rw-r--r--java/res/values-mn-rMN/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-mn-rMN/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-mn-rMN/strings.xml3
-rw-r--r--java/res/values-pt-rPT/strings-action-keys.xml3
-rw-r--r--java/res/values-pt-rPT/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-pt-rPT/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-pt-rPT/strings.xml3
-rw-r--r--java/res/values-ro/strings-action-keys.xml3
-rw-r--r--java/res/values-ro/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-ro/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-ro/strings.xml3
-rw-r--r--java/res/values-sk/strings-action-keys.xml3
-rw-r--r--java/res/values-sk/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-sk/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-sk/strings.xml3
-rw-r--r--java/res/values-uk/strings-action-keys.xml3
-rw-r--r--java/res/values-uk/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-uk/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-uk/strings.xml3
-rw-r--r--java/res/values-vi/strings-action-keys.xml3
-rw-r--r--java/res/values-vi/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-vi/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-vi/strings.xml3
-rw-r--r--java/res/values-zu/strings-action-keys.xml3
-rw-r--r--java/res/values-zu/strings-letter-descriptions.xml208
-rw-r--r--java/res/values-zu/strings-talkback-descriptions.xml30
-rw-r--r--java/res/values-zu/strings.xml3
-rw-r--r--java/res/xml-sw600dp/rows_sinhala.xml57
-rw-r--r--java/res/xml/kbd_sinhala.xml26
-rw-r--r--java/res/xml/keyboard_layout_set_sinhala.xml58
-rw-r--r--java/res/xml/method.xml17
-rw-r--r--java/res/xml/rowkeys_sinhala1.xml124
-rw-r--r--java/res/xml/rowkeys_sinhala2.xml98
-rw-r--r--java/res/xml/rowkeys_sinhala3.xml94
-rw-r--r--java/res/xml/rows_sinhala.xml52
-rw-r--r--java/src/com/android/inputmethod/event/Event.java7
-rw-r--r--java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java249
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionary.java67
-rw-r--r--java/src/com/android/inputmethod/latin/Constants.java5
-rw-r--r--java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java8
-rw-r--r--java/src/com/android/inputmethod/latin/DicTraverseSession.java4
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitator.java9
-rw-r--r--java/src/com/android/inputmethod/latin/PrevWordsInfo.java119
-rw-r--r--java/src/com/android/inputmethod/latin/RichInputConnection.java7
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java42
-rw-r--r--java/src/com/android/inputmethod/latin/SuggestedWords.java16
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java116
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java10
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java50
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java6
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java53
-rw-r--r--java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java13
-rw-r--r--java/src/com/android/inputmethod/latin/utils/ScriptUtils.java103
103 files changed, 5049 insertions, 851 deletions
diff --git a/java/res/raw/main_es.dict b/java/res/raw/main_es.dict
index 0911b70f1..3c99e7389 100644
--- a/java/res/raw/main_es.dict
+++ b/java/res/raw/main_es.dict
Binary files differ
diff --git a/java/res/values-af/strings-action-keys.xml b/java/res/values-af/strings-action-keys.xml
index bef175b16..c7ae3f759 100644
--- a/java/res/values-af/strings-action-keys.xml
+++ b/java/res/values-af/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Vorige"</string>
<string name="label_done_key" msgid="7564866296502630852">"Klaar"</string>
<string name="label_send_key" msgid="482252074224462163">"Stuur"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Soek"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Laat wag"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Wag"</string>
</resources>
diff --git a/java/res/values-af/strings-letter-descriptions.xml b/java/res/values-af/strings-letter-descriptions.xml
new file mode 100644
index 000000000..1238a4312
--- /dev/null
+++ b/java/res/values-af/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Vroulike rangtelwoordaanwyser"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Mikroteken"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Manlike rangtelwoordaanwyser"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Stemlose S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, gravis"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, akuut"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, kappie"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, deelteken"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, sirkel bo"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, koppelletter"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cédille"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, gravis"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, akuut"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, kappie"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, deelteken"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, gravis"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, akuut"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, kappie"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, deelteken"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, gravis"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, akuut"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, kappie"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, deelteken"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, deurhaal"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, gravis"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, akuut"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, kappie"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, deelteken"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, akuut"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, deelteken"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, makron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, brevis"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, akuut"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, kappie"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, kol bo"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, deurhaal"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, makron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, brevis"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, kol bo"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, kappie"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, brevis"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, kol bo"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cédille"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, kappie"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, deurhaal"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, makron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, brevis"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Kollose I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, koppelletter"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, kappie"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cédille"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, akuut"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cédille"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, middelkol"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, deurhaal"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, akuut"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cédille"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, voorafgegaan deur apostroof"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, makron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, brevis"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, dubbelakuut"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, koppelletter"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, akuut"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cédille"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, akuut"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, kappie"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cédille"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cédille"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, deurhaal"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, makron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, brevis"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, sirkel bo"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, dubbelakuut"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, kappie"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, kappie"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, akuut"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, kol bo"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, onderstebo kappie"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Lang S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horing"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horing"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, komma onder"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, komma onder"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Sjwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, kol onder"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, haak bo"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, kappie en akuut"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, kappie en gravis"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, kappie en haak bo"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, kappie en tilde"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, kappie en kol onder"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, brevis en akuut"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, brevis en gravis"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, brevis en haak bo"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, brevis en tilde"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, brevis en kol onder"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, kol onder"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, haak bo"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, kappie en akuut"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, kappie en gravis"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, kappie en haak bo"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, kappie en tilde"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, kappie en kol onder"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, haak bo"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, kol onder"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, kol onder"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, haak bo"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, kappie en akuut"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, kappie en gravis"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, kappie en haak bo"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, kappie en tilde"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, kappie en kol onder"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horing en akuut"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horing en gravis"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horing en haak bo"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horing en tilde"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horing en kol onder"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, kol onder"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, haak bo"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horing en akuut"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horing en gravis"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horing en haak bo"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horing en tilde"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horing en kol onder"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, gravis"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, kol onder"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, haak bo"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Onderstebo uitroepteken"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Dubbele hoekaanhalingsteken na links"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Middelkol"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Boskrif-een"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Dubbele hoekaanhalingsteken na regs"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Onderstebo vraagteken"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Enkele linkeraanhalingsteken"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Enkele regteraanhalingsteken"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Enkele lae-9-aanhalingsteken"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Dubbele linkeraanhalingsteken"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Dubbele regteraanhalingsteken"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Kruisie"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Dubbelkruisie"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Per-duisend-teken"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Aksent"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Dubbelaksent"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Enkele hoekaanhalingsteken na links"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Enkele hoekaanhalingsteken na regs"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Boskrif-vier"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Klein Latynse boskrif-letter-n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Peso-teken"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Per adres"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Pyl na regs"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Pyl na onder"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Leë versameling"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Vermeerdering"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Minder as of gelyk aan"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Meer as of gelyk aan"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Swart ster"</string>
+</resources>
diff --git a/java/res/values-af/strings-talkback-descriptions.xml b/java/res/values-af/strings-talkback-descriptions.xml
index 09abb5f6c..3b6ba0ad2 100644
--- a/java/res/values-af/strings-talkback-descriptions.xml
+++ b/java/res/values-af/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Geen teks is ingevoer nie"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korrigeer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> voer outokorrigering uit"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Onbekende karakter"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer simbole"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Plekke"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Simbole"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emosiekone"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Hoofletter-<xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Hoofletter-I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Hoofletter-I, kol bo"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Onbekende simbool"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Onbekende emosiekoon"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatiewe karakters is beskikbaar"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatiewe karakters is toegemaak"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatiewe voorstelle is beskikbaar"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Alternatiewe voorstelle is toegemaak"</string>
</resources>
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index 0367c474a..295c855bd 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Verbeter <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-action-keys.xml b/java/res/values-am/strings-action-keys.xml
index 26e45135b..51c253823 100644
--- a/java/res/values-am/strings-action-keys.xml
+++ b/java/res/values-am/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"ቀዳሚ"</string>
<string name="label_done_key" msgid="7564866296502630852">"ተደርጓል"</string>
<string name="label_send_key" msgid="482252074224462163">"ላክ"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"ፈልግ"</string>
<string name="label_pause_key" msgid="2225922926459730642">"ቆም በል"</string>
<string name="label_wait_key" msgid="5891247853595466039">"ጠብቅ"</string>
</resources>
diff --git a/java/res/values-am/strings-letter-descriptions.xml b/java/res/values-am/strings-letter-descriptions.xml
new file mode 100644
index 000000000..5c9486975
--- /dev/null
+++ b/java/res/values-am/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"እንስት የደረጃ አመልካች"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"የማይክሮ ምልክት"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"ተባዕታይ የደረጃ አመልካች"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"ሻርፕ ኤስ"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"ኤ፣ ጭረት"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"ኤ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"ኤ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"ኤ፣ ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"ኤ፣ ባለሁለት ነጥብ"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"ኤ፣ ቀለበት ከላይ"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"ኤ፣ ኢ፣ ማሰሪያ"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"ሲ፣ ጭራ"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"ኢ፣ ጭረት"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"ኢ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"ኢ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"ኢ፣ ባለሁለት ነጥብ"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"አይ፣ ጭረት"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"አይ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"አይ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"አይ፣ ባለሁለት ነጥብ"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"ኤት"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"ኤን፣ ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"ኦ፣ ጭረት"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"ኦ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"ኦ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"ኦ፣ ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"ኦ፣ ባለሁለት ነጥብ"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"ኦ፣ ሰያፍ ሰረዝ"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"ዩ፣ ጭረት"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"ዩ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"ዩ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"ዩ፣ ባለሁለት ነጥብ"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"ዋይ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"ቶርን"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"ዋይ፣ ባለሁለት ነጥብ"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"ኤ፣ ማክሮን"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"ኤ፣ ቁንጽል"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"ኤ፣ ኦጎነክ"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"ሲ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"ሲ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"ሲ፣ ነጥብ ከላይ"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"ሲ፣ ካሮን"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"ዲ፣ ካሮን"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"ዲ፣ ሰያፍ ሰረዝ"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"ኢ፣ ማክሮን"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"ኢ፣ ቁንጽል"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"ኢ፣ ነጥብ ከላይ"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"ኢ፣ ኦጎነክ"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"ኢ፣ ካሮን"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"ጂ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"ጂ፣ ቁንጽል"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"ጂ፣ ነጥብ ከላይ"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"ጂ፣ ጭራ"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"ኤች፣ ድፋት"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"ኤች፣ ሰያፍ ሰረዝ"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"አይ፣ ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"አይ፣ ማክሮን"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"አይ፣ ቁንጽል"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"አይ፣ ኦጎነክ"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"ነጥብ አልባ አይ"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"አይ፣ ጄ፣ ማሰሪያ"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"ጄ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"ኬ፣ ጭራ"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"ክራ"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"ኤል፣ ይዘት"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"ኤል፣ ጭራ"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"ኤል፣ ካሮን"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"ኤል፣ የመሃል ነጥብ"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"ኤል፣ ሰያፍ ሰረዝ"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"ኤን፣ ይዘት"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"ኤን፣ ጭራ"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"ኤን፣ ካሮን"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"ኤን፣ በትእምርተ ጭረት የተቀደመ"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"እንግ"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"ኦ፣ ማክሮን"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"ኦ፣ ቁንጽል"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"ኦ፣ ድርብ ይዘት"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"ኦ፣ ኢ፣ ማሰሪያ"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"አር፣ ይዘት"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"አር፣ ጭራ"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"አር፣ ካሮን"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"ኤስ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"ኤስ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"ኤስ፣ ጭራ"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"ኤስ፣ ካሮን"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"ቲ፣ ጭራ"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"ቲ፣ ካሮን"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"ቲ፣ ሰያፍ ሰረዝ"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"ዩ፣ ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"ዩ፣ ማክሮን"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"ዩ፣ ቁንጽል"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"ዩ፣ ቀለበት ከላይ"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"ዩ፣ ድርብ ይዘት"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"ዩ፣ ኦጎነክ"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"ደብልዩ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"ዋይ፣ ድፋት"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"ዜድ፣ ይዘት"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"ዜድ፣ ነጥብ ከላይ"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"ዜድ፣ ካሮን"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"ረጅም ኤስ"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"ኦ፣ ቀንድ"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"ዩ፣ ቀንድ"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"ኤስ፣ ኮማ ከታች"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"ቲ፣ ኮማ ከታች"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"ሽዋ"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"ኤ፣ ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"ኤ፣ መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"ኤ፣ ድፋት እና ይዘት"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"ኤ፣ ድፋት እና ጭረት"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"ኤ፣ ድፋት እና መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"ኤ፣ ድፋት እና ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"ኤ፣ ድፋት እና ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"ኤ፣ ቁንጽል እና ይዘት"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"ኤ፣ ቁንጽል እና ጭረት"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"ኤ፣ ቁንጽል እና መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"ኤ፣ ቁንጽል እና ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"ኤ፣ ቁንጽል እና ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"ኢ፣ ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"ኢ፣ መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"ኢ፣ ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"ኢ፣ ድፋት እና ይዘት"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"ኢ፣ ድፋት እና ጭረት"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"ኢ፣ ድፋት እና መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"ኢ፣ ድፋት እና ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"ኢ፣ ድፋት እና ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"አይ፣ መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"አይ፣ ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"ኦ፣ ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"ኦ፣ መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"ኦ፣ ድፋት እና ይዘት"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"ኦ፣ ድፋት እና ጭረት"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"ኦ፣ ድፋት እና መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"ኦ፣ ድፋት እና ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"ኦ፣ ድፋት እና ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"ኦ፣ ቀንድ እና ይዘት"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"ኦ፣ ቀንድ እና ጭረት"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"ኦ፣ ቀንድ እና መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"ኦ፣ ቀንድ እና ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"ኦ፣ ቀንድ እና ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"ዩ፣ ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"ዩ፣ መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"ዩ፣ ቀንድ እና ይዘት"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"ዩ፣ ቀንድ እና ጭረት"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"ዩ፣ ቀንድ እና መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"ዩ፣ ቀንድ እና ድፋትቅናት"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"ዩ፣ ቀንድ እና ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"ዋይ፣ ጭረት"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"ዋይ፣ ነጥብ ከታች"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"ዋይ፣ መንጠቆ ከላይ"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"ዋይ፣ ድፋትቅናት"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"የተገለበጠ ቃለ አጋኖ"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"ግራ ጠቋሚ ድርብ የማዕዘን ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"የመሃል ነጥብ"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"ራስጌ አደር አንድ"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"ቀኝ ጠቋሚ ድርብ የማዕዘን ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"የተገለበጠ የጥያቄ ምልክት"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"የግራ ነጠላ ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"የቀኝ ነጠላ ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"ነጠላ ዝቅተኛ-9 ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"የግራ ድርብ ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"የቀኝ ድርብ ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"ሾተል"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"ድርብ ሾተል"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"የሺኛ ምልክት"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"ፕራይም"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"ድርብ ፕራይም"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"ነጠላ ግራ ጠቋሚ የማዕዘን ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"ነጠላ ቀኝ ጠቋሚ የማዕዘን ትዕምርተ ጥቅስ"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"ራስጌ አደር አራት"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"የራስጌ አደር ላቲን ንዑስ ሆሄ ኤን"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"የፔሶ ምልክት"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"ባለአደራ"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"የቀኝ ቀስት"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"የታች ቀስት"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"ባዶ ስብስብ"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"ጨምር"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"ያንሳል ወይም እክሉ ነው ከ"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"ይበልጣል ወይም እክሉ ነው ከ"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"ጥቁር ኮከብ"</string>
+</resources>
diff --git a/java/res/values-am/strings-talkback-descriptions.xml b/java/res/values-am/strings-talkback-descriptions.xml
index 1b1da01e5..84c3cb0c8 100644
--- a/java/res/values-am/strings-talkback-descriptions.xml
+++ b/java/res/values-am/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ምንም ፅሁፍ አልገባም"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>ን ወደ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> ያርመዋል"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> የራስ ሰር እርማት ያከናውናል"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"ያልታወቀ ቁምፊ"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"ቀይር"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"ተጨማሪ ምልክቶች"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"ቦታዎች"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"ምልክቶች"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"ስሜት ገላጭ አዶዎች"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"አቢይ ሆሄ <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"አቢይ ሆሄ አይ"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"አቢይ ሆሄ አይ፣ ነጥብ ከላይ"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"ያልታወቀ ምልክት"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"ያልታወቀ ስሜት ገላጭ ምስል"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ተለዋጭ ቁምፊዎች ይገኛሉ"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ተለዋጭ ቁምፊዎች ተሰናብተዋል"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ተለዋጭ የአስተያየት ጥቆማዎች ይገኛሉ"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"ተለዋጭ የአስተያየት ጥቆማዎች ተሰናብተዋል"</string>
</resources>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index b20175738..35eb17cce 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>ን አሻሽል"</string>
<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-action-keys.xml b/java/res/values-ca/strings-action-keys.xml
index 5dcf4a337..2760fb076 100644
--- a/java/res/values-ca/strings-action-keys.xml
+++ b/java/res/values-ca/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Ant."</string>
<string name="label_done_key" msgid="7564866296502630852">"Fet"</string>
<string name="label_send_key" msgid="482252074224462163">"Envia"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Cerca"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Atura"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Esp."</string>
</resources>
diff --git a/java/res/values-ca/strings-letter-descriptions.xml b/java/res/values-ca/strings-letter-descriptions.xml
new file mode 100644
index 000000000..a6569ec94
--- /dev/null
+++ b/java/res/values-ca/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Indicador ordinal femení"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Signe de micro"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Indicador ordinal masculí"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"S sonora"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, accent obert"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, accent tancat"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, titlla"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, dièresi"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, anell"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, lligadura"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, ce trencada"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, accent obert"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, accent tancat"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, dièresi"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, accent obert"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, accent tancat"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, dièresi"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, titlla"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, accent obert"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, accent tancat"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, titlla"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, dièresi"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, conjunt buit"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, accent obert"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, accent tancat"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"O, dièresi"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, accent tancat"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, dièresi"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, màcron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breu"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, croc polonès"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, accent tancat"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, punt superior"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, anticircumflex"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, anticircumflex"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, barra"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, anticircumflex"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breu"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, punt superior"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, croc polonès"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, anticircumflex"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breu"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, punt superior"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, vírgula"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, barra"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, titlla"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, màcron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breu"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, croc polonès"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I sense punt"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, lligadura"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, vírgula"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, accent tancat"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, vírgula"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, anticircumflex"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, punt volat"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, barra"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, accent tancat"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, vírgula"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, anticircumflex"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, precedida d\'apòstrof"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, màcron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breu"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, accent tancat doble"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, lligadura"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, accent tancat"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, vírgula"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, anticircumflex"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, accent tancat"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, vírgula"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, anticircumflex"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, vírgula"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, anticircumflex"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, barra"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, titlla"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, màcron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breu"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, anell"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, accent tancat doble"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, croc polonès"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, accent tancat"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, punt superior"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, anticircumflex"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"S llarga"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, banya"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, banya"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, coma inferior"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, coma inferior"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Neutra"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, punt inferior"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, vírgula superior"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex i accent tancat"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex i accent obert"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex i vírgula superior"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex i titlla"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex i punt inferior"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breu i accent tancat"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breu i accent obert"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breu i vírgula superior"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breu i titlla"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breu i punt inferior"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, punt inferior"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, vírgula superior"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, titlla"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex i accent tancat"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex i accent obert"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex i vírgula superior"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex i titlla"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex i punt inferior"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, vírgula superior"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, punt inferior"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, punt inferior"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, vírgula superior"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex i accent tancat"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex i accent obert"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex i vírgula superior"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex i titlla"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex i punt inferior"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, banya i accent tancat"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, banya i accent obert"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, banya i vírgula superior"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, banya i titlla"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, banya i punt inferior"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, punt inferior"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, vírgula superior"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, banya i accent tancat"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, banya i accent obert"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, banya i vírgula superior"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, banya i titlla"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, banya i punt inferior"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, accent obert"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, punt inferior"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, vírgula superior"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, titlla"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Signe d\'exclamació invertit"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Doble cometa angular d\'obertura"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"punt volat"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Superíndex d\'u"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Doble cometa angular de tancament"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Signe d\'interrogació invertit"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Cometes simples d\'obertura"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Cometes simples de tancament"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Cometes alemanyes simples d\'obertura"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Cometes dobles d\'obertura"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Cometes dobles de tancament"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Obelisc"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Doble obelisc"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Signe per mil"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Cometa"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Cometa doble"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Cometes angulars simples d\'obertura"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Cometes angulars simples de tancament"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Superíndex de quatre"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Superíndex de lletra minúscula llatina n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Signe del peso"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Percentatge"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Fletxa cap a la dreta"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Fletxa cap avall"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Conjunt buit"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Més petit o igual que"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Més gran o igual que"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Estrella negra"</string>
+</resources>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 5bbf65571..9b01c75ed 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No s\'ha introduït cap text."</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregeix <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> per <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa la correcció automàtica."</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Caràcter desconegut"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Més símbols"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maj"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Llocs"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Símbols"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticones"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"<xliff:g id="LOWER_LETTER">%s</xliff:g> majúscula"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"I majúscula"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"I majúscula, punt superior"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbol desconegut"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconegut"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Hi ha caràcters alternatius disponibles."</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Els caràcters alternatius s\'ignoren."</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Hi ha suggeriments alternatius disponibles."</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Els suggeriments alternatius s\'ignoren."</string>
</resources>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index cd5e1d4f8..7f0782ddf 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Millora <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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.xml b/java/res/values-cs/strings.xml
index fe51c79d4..abbdcbe9f 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -52,7 +52,7 @@
<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>
<string name="auto_cap_summary" msgid="7934452761022946874">"Kapitalizace prvního slova každé věty"</string>
- <string name="edit_personal_dictionary" msgid="3996910038952940420">"Osobní slovník"</string>
+ <string name="edit_personal_dictionary" msgid="3996910038952940420">"Vlastní slovník"</string>
<string name="configure_dictionaries_title" msgid="4238652338556902049">"Doplňkové slovníky"</string>
<string name="main_dictionary" msgid="4798763781818361168">"Hlavní slovník"</string>
<string name="prefs_show_suggestions" msgid="8026799663445531637">"Zobrazit návrhy oprav"</string>
diff --git a/java/res/values-en-rGB/strings-action-keys.xml b/java/res/values-en-rGB/strings-action-keys.xml
index b8b02e149..6514e85f3 100644
--- a/java/res/values-en-rGB/strings-action-keys.xml
+++ b/java/res/values-en-rGB/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Prev"</string>
<string name="label_done_key" msgid="7564866296502630852">"Finished"</string>
<string name="label_send_key" msgid="482252074224462163">"Send"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Search"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Pause"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Wait"</string>
</resources>
diff --git a/java/res/values-en-rGB/strings-letter-descriptions.xml b/java/res/values-en-rGB/strings-letter-descriptions.xml
new file mode 100644
index 000000000..514bc6cbd
--- /dev/null
+++ b/java/res/values-en-rGB/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Feminine ordinal indicator"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Micro sign"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Masculine ordinal indicator"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, acute"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diaeresis"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, ring above"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligature"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilla"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, acute"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diaeresis"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, acute"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diaeresis"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, acute"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diaeresis"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, stroke"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, acute"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diaeresis"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, acute"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diaeresis"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, acute"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, dot above"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, stroke"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, dot above"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, dot above"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilla"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, stroke"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Dotless I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligature"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilla"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, acute"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilla"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, middle dot"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, stroke"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, acute"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilla"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, preceded by apostrophe"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, double acute"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligature"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, acute"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilla"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, acute"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilla"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilla"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, stroke"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, ring above"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, double acute"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, acute"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, dot above"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Long S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horn"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horn"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, comma below"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, comma below"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, dot below"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, hook above"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve and acute"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve and grave"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve and hook above"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve and tilde"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve and dot below"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, dot below"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, hook above"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, hook above"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, dot below"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, dot below"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, hook above"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horn and acute"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horn and grave"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, dot below"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, hook above"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horn and acute"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horn and grave"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, dot below"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, hook above"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Inverted exclamation mark"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Left-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Middle dot"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Superscript one"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Right-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Inverted question mark"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Left single quotation mark"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Right single quotation mark"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Single low-9 quotation mark"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Left double quotation mark"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Right double quotation mark"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Double dagger"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Per mille sign"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Double prime"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Single left-pointing angle quotation mark"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Single right-pointing angle quotation mark"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Superscript four"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Superscript latin small letter n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Peso sign"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Care of"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Rightwards arrow"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Downwards arrow"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Empty set"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Less than or equal to"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Greater than or equal to"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Black star"</string>
+</resources>
diff --git a/java/res/values-en-rGB/strings-talkback-descriptions.xml b/java/res/values-en-rGB/strings-talkback-descriptions.xml
index 3956777ea..e209b5494 100644
--- a/java/res/values-en-rGB/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rGB/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Unknown character"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Places"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Symbols"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticons"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Capital <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Capital I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Unknown symbol"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Unknown emoji"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative characters are available"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative characters are dismissed"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative suggestions are available"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Alternative suggestions are dismissed"</string>
</resources>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 0375ad2bb..75697ad92 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Improve <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-action-keys.xml b/java/res/values-en-rIN/strings-action-keys.xml
index b8b02e149..6514e85f3 100644
--- a/java/res/values-en-rIN/strings-action-keys.xml
+++ b/java/res/values-en-rIN/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Prev"</string>
<string name="label_done_key" msgid="7564866296502630852">"Finished"</string>
<string name="label_send_key" msgid="482252074224462163">"Send"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Search"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Pause"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Wait"</string>
</resources>
diff --git a/java/res/values-en-rIN/strings-letter-descriptions.xml b/java/res/values-en-rIN/strings-letter-descriptions.xml
new file mode 100644
index 000000000..514bc6cbd
--- /dev/null
+++ b/java/res/values-en-rIN/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Feminine ordinal indicator"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Micro sign"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Masculine ordinal indicator"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, acute"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diaeresis"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, ring above"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligature"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilla"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, acute"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diaeresis"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, acute"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diaeresis"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, acute"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diaeresis"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, stroke"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, acute"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diaeresis"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, acute"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diaeresis"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, acute"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, dot above"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, stroke"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, dot above"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, dot above"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilla"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, stroke"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Dotless I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligature"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilla"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, acute"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilla"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, middle dot"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, stroke"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, acute"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilla"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, preceded by apostrophe"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, double acute"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligature"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, acute"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilla"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, acute"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilla"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilla"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, stroke"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, ring above"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, double acute"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, acute"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, dot above"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Long S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horn"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horn"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, comma below"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, comma below"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, dot below"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, hook above"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve and acute"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve and grave"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve and hook above"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve and tilde"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve and dot below"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, dot below"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, hook above"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, hook above"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, dot below"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, dot below"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, hook above"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horn and acute"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horn and grave"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, dot below"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, hook above"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horn and acute"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horn and grave"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, dot below"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, hook above"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Inverted exclamation mark"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Left-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Middle dot"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Superscript one"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Right-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Inverted question mark"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Left single quotation mark"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Right single quotation mark"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Single low-9 quotation mark"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Left double quotation mark"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Right double quotation mark"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Double dagger"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Per mille sign"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Double prime"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Single left-pointing angle quotation mark"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Single right-pointing angle quotation mark"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Superscript four"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Superscript latin small letter n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Peso sign"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Care of"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Rightwards arrow"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Downwards arrow"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Empty set"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Less than or equal to"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Greater than or equal to"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Black star"</string>
+</resources>
diff --git a/java/res/values-en-rIN/strings-talkback-descriptions.xml b/java/res/values-en-rIN/strings-talkback-descriptions.xml
index 3956777ea..e209b5494 100644
--- a/java/res/values-en-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rIN/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Unknown character"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Places"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Symbols"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticons"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Capital <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Capital I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Unknown symbol"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Unknown emoji"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative characters are available"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative characters are dismissed"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative suggestions are available"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Alternative suggestions are dismissed"</string>
</resources>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index 0375ad2bb..75697ad92 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Improve <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-fa/strings-action-keys.xml b/java/res/values-fa/strings-action-keys.xml
index ae393bbf6..859877c89 100644
--- a/java/res/values-fa/strings-action-keys.xml
+++ b/java/res/values-fa/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"قبلی"</string>
<string name="label_done_key" msgid="7564866296502630852">"اتمام"</string>
<string name="label_send_key" msgid="482252074224462163">"ارسال"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"جستجو"</string>
<string name="label_pause_key" msgid="2225922926459730642">"مکث"</string>
<string name="label_wait_key" msgid="5891247853595466039">"انتظار"</string>
</resources>
diff --git a/java/res/values-fa/strings-letter-descriptions.xml b/java/res/values-fa/strings-letter-descriptions.xml
new file mode 100644
index 000000000..4687f1be0
--- /dev/null
+++ b/java/res/values-fa/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"نشانگر ترتیبی زنانه"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"علامت میکرو"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"نشانگر ترتیبی مردانه"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"‏شارپ S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"‏A با اکسان گراو"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"‏A با اکسان اگو"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"‏A با هشتک"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"‏A با مدک"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"‏A با دو نقطه"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"‏A با حلقه"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"‏A، ‏E متصل به هم"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"‏C با سدیلا"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"‏E با اکسان گراو"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"‏E با اکسان اگو"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"‏E با هشتک"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"‏E با دو نقطه"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"‏I با اکسان گراو"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"‏I با اکسان اگو"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"‏I با هشتک"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"‏I با دونقطه"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"‏N با مدک"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"‏O با اکسان گراو"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"‏O با اکسان اگو"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"‏O با هشتک"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"‏O با مدک"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"‏O با دونقطه"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"‏O با خط مورب"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"‏U با اکسان گراو"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"‏U با اکسان اگو"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"‏U با هشتک"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"‏U با دو نقطه"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"‏Y با اکسان اگو"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"‏Y با دو نقطه"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"‏A با ماکرون"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"‏A کوتاه"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"‏A با اگنک"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"‏C با اکسان اگو"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"‏C با هشتک"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"‏C با نقطه"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"‏C با هفتک"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"‏D با هفتک"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"‏D با خط مورب"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"‏E با ماکرون"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"‏E کوتاه"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"‏E با نقطه"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"‏E با اگنک"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"‏E با هفتک"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"‏G با هشتک"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"‏G کوتاه"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"‏G با نقطه"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"‏G با سدیلا"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"‏H با هشتک"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"‏H با خط مورب"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"‏I با مدک"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"‏I با ماکرون"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"‏I کوتاه"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"‏I با اگنک"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"‏I بی‌نقطه"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"‏I، ‏J متصل به هم"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"‏I با هشتک"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"‏K با سدیلا"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"‏L با اکسان اگو"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"‏L با سدیلا"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"‏L با هفتک"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"‏L با نقطه وسط"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"‏L با خط مورب"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"‏N با اکسان اگو"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"‏N با سدیلا"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"‏N با هفتک"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"‏N بعد از آپاستراف"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"‏O با ماکرون"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"‏O کوتاه"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"‏O با اکسان اگوی دوتایی"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"‏O، ‏E متصل به هم"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"‏R با اکسان اگو"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"‏R با سدیلا"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"‏R با هفتک"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"‏S با اکسان اگو"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"‏S با هشتک"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"‏S با سدیلا"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"‏S با هفتک"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"‏T با سدیلا"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"‏T با کارون"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"‏T با خط مورب"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"‏U با مدک"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"‏U با ماکرون"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"‏U کوتاه"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"‏U با حلقه"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"‏U با اکسان اگو دوتایی"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"‏U با اگنک"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"‏W با هشتک"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"‏Y با هشتک"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"‏Z با اکسان اگو"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"‏Z با دو نقطه"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"‏Z با هفتک"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"‏S طولانی"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"‏O با شاخ"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"‏U با شاخ"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"‏S با کامای زیرین"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"‏T با کامای زیرین"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"واکه بی‌رنگ"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"‏A با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"‏A با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"‏A با هشتک و اکسان اگو"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"‏A با هشتک و اکسان گراو"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"‏A با هشتک و کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"‏A با هشتک و مدک"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"‏A با هشتک و نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"‏A کوتاه با اکسان اگو"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"‏A کوتاه با اکسان گراو"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"‏A کوتاه با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"‏A کوتاه با مدک"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"‏A کوتاه با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"‏E با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"‏E با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"‏E با مدک"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"‏E با هشتک و اکسان اگو"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"‏E با هشتک و اکسان گراو"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"‏E با هشتک و کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"‏E با هشتک و مدک"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"‏E با هشتک و نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"‏I با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"‏I با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"‏O با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"‏O با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"‏O با هشتک و اکسان اگو"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"‏O با هشتک و اکسان گراو"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"‏O با هشتک و کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"‏O با هشتک و مدک"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"‏O با هشتک و نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"‏O با شاخ و اکسان اگو"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"‏O با شاخ و اکسان گراو"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"‏O با شاخ و کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"‏O با شاخ و مدک"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"‏O با شاخ و نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"‏U با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"‏U با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"‏U با شاخ و اکسان اگو"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"‏U با شاخ و اکسان گراو"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"‏U با شاخ و کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"‏U با شاخ و مدک"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"‏U با شاخ و نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"‏Y اکسان گراو"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"‏Y با نقطه زیرین"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"‏Y با کروشه بالایی"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"‏Y با مدک"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"علامت تعجب وارونه"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"گیومه رو به چپ"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"نقطه وسط"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"بالانویس یک"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"گیومه رو به راست"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"علامت سؤال وارونه"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"علامت نقل قول تکی سمت چپ"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"علامت نقل قول تکی سمت راست"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"علامت نقل قول تکی ۹ پایین"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"علامت نقل قول دوتایی سمت چپ"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"علامت نقل قول دوتایی سمت راست"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"نماد خنجر"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"نماد خنجر دوتایی"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"علامت در هزار"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"پریم"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"پریم دوتایی"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"گیومه تکی رو به چپ"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"گیومه تکی رو به راست"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"بالانویس چهار"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"‏بالانویس حرف n کوچک لاتین"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"علامت پسو"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"توسط"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"پیکان سمت راست"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"پیکان رو به پایین"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"مجموعه تهی"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"افزایش"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"کمتر یا مساوی"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"بزرگتر یا مساوی"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"ستاره سیاه"</string>
+</resources>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index c70040fae..988dd5cd1 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"نوشتاری وارد نشده است"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>، ‏<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> را به <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> تصحیح می‌کند"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> تصحیح خودکار را انجام می‌دهد"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"نویسه نامشخص"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"نمادهای بیشتر"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"تبدیل"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"مکان‌ها"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"نمادها"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"شکلک‌ها"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"حرف بزرگ <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"‏I بزرگ"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"‏I بزرگ با نقطه بالایی"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"نماد نامشخص"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"‏شکلک emoji نامشخص"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"نویسه‌های جایگزین در دسترس هستند"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"از نویسه‌های جایگزین صرفنظر می‌شود"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"پیشنهادهای جایگزین در دسترس هستند"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"از پیشنهادهای جایگزین صرفنظر می‌شود"</string>
</resources>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 0c466c201..bda2756e7 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"بهبود <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-action-keys.xml b/java/res/values-in/strings-action-keys.xml
index 052798d02..7f1a28e29 100644
--- a/java/res/values-in/strings-action-keys.xml
+++ b/java/res/values-in/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Balik"</string>
<string name="label_done_key" msgid="7564866296502630852">"Beres"</string>
<string name="label_send_key" msgid="482252074224462163">"Kirim"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Telusur"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Jeda"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Tunggu"</string>
</resources>
diff --git a/java/res/values-in/strings-letter-descriptions.xml b/java/res/values-in/strings-letter-descriptions.xml
new file mode 100644
index 000000000..711f68905
--- /dev/null
+++ b/java/res/values-in/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Indikator ordinal feminin"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Simbol mikro"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Indikator ordinal maskulin"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Eszett"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A dengan aksen nontirus (tanda coret miring ke arah kiri di bagian atas)"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A dengan aksen tirus (tanda coret miring ke arah kanan di bagian atas)"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A dengan aksen sirkumfleks (tanda aksen di bagian atas)"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A dengan aksen tilda (tanda gelombang di bagian atas)"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A dengan aksen diaeresis (titik dua di bagian atas)"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A dengan aksen lingkaran di bagian atas"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A E ligatur (Karakter A dan E yang digabungkan menjadi satu kesatuan unit)"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C dengan aksen cedilla (tanda kait di bagian bawah)"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E dengan aksen nontirus"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E dengan aksen diaeresis"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I dengan aksen nontirus"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I dengan aksen diaeresis"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N dengan aksen tilda"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O dengan aksen nontirus"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O dengan aksen tilda"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O dengan aksen diaeresis"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O coret"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U dengan aksen nontirus"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U dengan aksen diaeresis"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn (sekarang diganti dengan huruf th)"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y dengan aksen diaeresis"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A dengan aksen makron (tanda pengulur/makron di bagian atas)"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A dengan aksen breve (tanda breve di bagian atas)"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A dengan aksen ogonek (tanda ekor di sebelah kanan bawah untuk menunjukkan bunyi sengau)"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C dengan titik di bagian atas"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C dengan aksen caron (tanda caron di bagian atas)"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D dengan aksen caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D coret"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E dengan aksen makron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E dengan aksen breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E dengan titik di bagian atas"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E dengan aksen ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E dengan aksen caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G dengan aksen breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G dengan aksen titik di bagian atas"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H coret"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I dengan aksen tilda"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I dengan aksen makron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I dengan aksen breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I dengan aksen ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I tanpa titik"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I dan J ligatur"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L dengan aksen caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L dengan titik di tengah"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L coret"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N dengan aksen caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N yang didahului tanda apostrof"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O dengan aksen makron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O dengan aksen breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O dengan aksen tirus ganda"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O dan E ligatur"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R dengan aksen caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S dengan aksen caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T dengan aksen cedilla"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T dengan aksen caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T coret"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U dengan aksen tilda"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U dengan aksen makron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U dengan aksen breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U dengan aksen lingkaran di bagian atas"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U dengan aksen tirus ganda"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U dengan aksen ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y dengan aksen sirkumfleks"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z dengan aksen tirus"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z dengan titik di bagian atas"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z dengan aksen caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"S Panjang"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O dengan aksen tanduk"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U dengan aksen tanduk"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S dengan aksen koma di bagian bawah"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T dengan aksen koma di bagian bawah"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa (aksen pepet)"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A dengan aksen titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A dengan aksen kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A dengan aksen sirkumfleks dan tirus"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A dengan aksen sirkumfleks dan nontirus"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A dengan aksen sirkumfleks dan kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A dengan aksen sirkumfleks dan tilda"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A dengan aksen sirkumfleks dan titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A dengan aksen breve dan tirus"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A dengan aksen breve dan nontirus"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A dengan aksen breve dan kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A dengan aksen breve dan tilda"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A dengan aksen breve dan titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E dengan aksen titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E dengan aksen kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E dengan aksen tilda"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E dengan aksen sirkumfleks dan tirus"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E dengan aksen sirkumfleks dan nontirus"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E dengan aksen sirkumfleks dan kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E dengan aksen sirkumfleks dan tilda"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E dengan aksen sirkumfleks dan titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I dengan aksen kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I dengan aksen titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O dengan aksen titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O dengan aksen kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O dengan aksen sirkumfleks dan tirus"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O dengan aksen sirkumfleks dan nontirus"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O dengan aksen sirkumfleks dan kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O dengan aksen sirkumfleks dan tilda"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O dengan aksen sirkumfleks dan titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O dengan aksen tanduk dan tirus"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O dengan aksen tanduk dan nontirus"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O dengan aksen tanduk dan kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O dengan aksen tanduk dan tilda"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O dengan aksen tanduk dan titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U dengan aksen titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U dengan aksen kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U dengan aksen tanduk dan tirus"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U dengan aksen tanduk dan nontirus"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U dengan aksen tanduk dan kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U dengan aksen tanduk dan tilda"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U dengan aksen tanduk dan titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y dengan aksen nontirus"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y dengan aksen titik di bagian bawah"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y dengan aksen kait di bagian atas"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y dengan aksen tilda"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Tanda seru terbalik"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Dua tanda kurung sudut kiri"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Titik tengah"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Superscript satu"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Dua tanda kurung sudut kanan"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Tanda tanya terbalik"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Tanda petik tunggal kiri"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Tanda petik tunggal kanan"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Tanda petik tunggal di bagian bawah"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Tanda petik ganda kiri"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Tanda petik ganda kanan"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger (Tanda belati)"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Dagger ganda"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Simbol per mil"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Tanda petik"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Tanda petik ganda"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Tanda kurung sudut kiri tunggal"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Tanda kurung sudut kanan tunggal"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Superscript empat"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Superscript huruf latin kecil n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Simbol peso"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Dengan alamat"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Panah ke kanan"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Panah ke bawah"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Himpunan kosong"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Penambahan"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Kurang dari atau sama dengan"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Lebih dari atau sama dengan"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Bintang hitam"</string>
+</resources>
diff --git a/java/res/values-in/strings-talkback-descriptions.xml b/java/res/values-in/strings-talkback-descriptions.xml
index 6f2970795..f7334d9d0 100644
--- a/java/res/values-in/strings-talkback-descriptions.xml
+++ b/java/res/values-in/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Tidak ada teks yang dimasukkan"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> mengoreksi <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan koreksi otomatis"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Karakter tak dikenal"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Simbol lainnya"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Tempat"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Simbol"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emotikon"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Huruf kapital <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Huruf kapital I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Huruf kapital I dengan aksen titik di bagian atas"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Simbol tak dikenal"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji tak dikenal"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Karakter alternatif tersedia"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Karakter alternatif ditolak"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Saran alternatif tersedia"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Saran alternatif ditolak"</string>
</resources>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index 160b2ee43..a5babcd61 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Tingkatkan <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-iw/strings-action-keys.xml b/java/res/values-iw/strings-action-keys.xml
index 398c081d6..f72a6feeb 100644
--- a/java/res/values-iw/strings-action-keys.xml
+++ b/java/res/values-iw/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"הקודם"</string>
<string name="label_done_key" msgid="7564866296502630852">"בוצע"</string>
<string name="label_send_key" msgid="482252074224462163">"שלח"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"חפש"</string>
<string name="label_pause_key" msgid="2225922926459730642">"השהה"</string>
<string name="label_wait_key" msgid="5891247853595466039">"המתן"</string>
</resources>
diff --git a/java/res/values-iw/strings-letter-descriptions.xml b/java/res/values-iw/strings-letter-descriptions.xml
new file mode 100644
index 000000000..1b0e72f42
--- /dev/null
+++ b/java/res/values-iw/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"סימן סידורי נקבי"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"סימן מיקרו"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"סימן סידורי זכרי"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"‏S חדה"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"‏A‏, הטעמה משנית"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"‏A, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"‏A, גג"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"‏A, טילדה"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"‏A, עלית כפולה"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"‏A, טבעת מעל"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"‏A‏, E, ליגטורה"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"‏C, סדיליה"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"‏E, הטעמה משנית"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"‏E, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"‏E, גג"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"‏E, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"‏I, הטעמה משנית"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"‏I, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"‏I, גג"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"‏I, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"‏N, טילדה"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"‏O, הטעמה משנית"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"‏O, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"‏O, גג"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"‏O, טילדה"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"‏O, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"‏O, קו חוצה"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"‏U, הטעמה משנית"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"‏U, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"‏U, גג"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"‏U, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"‏Y, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"‏Y, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"‏A, קו עלי"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"‏A, ברווה"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"‏A, זנבון"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"‏C, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"‏C, גג"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"‏C, נקודה מעל"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"‏C, וי קטן"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"‏D, וי קטן"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"‏D, קו חוצה"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"‏E, קו עלי"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"‏E, ברווה"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"‏E, נקודה מעל"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"‏E, זנבון"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"‏E, וי קטן"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"‏G, גג"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"‏G, ברווה"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"‏G, נקודה מעל"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"‏G, סדיליה"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"‏H, גג"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"‏H, קו חוצה"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"‏I, טילדה"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"‏I, קו עלי"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"‏I, ברווה"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"‏I, זנבון"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"‏I ללא נקודות"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"‏I‏, J, ליגטורה"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"‏J, גג"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"‏K, סדיליה"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"‏L, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"‏L, סדיליה"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"‏L, וי קטן"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"‏L, נקודה אמצעית"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"‏L, קו חוצה"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"‏N, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"‏N, סדיליה"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"‏N, וי קטן"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"‏N, עם גרש לפני"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"‏O, קו עלי"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"‏O, ברווה"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"‏O, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"‏O‏, E, ליגטורה"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"‏R, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"‏R, סדיליה"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"‏R, וי קטן"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"‏S, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"‏S, גג"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"‏S, סדיליה"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"‏S, וי קטן"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"‏T, סדיליה"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"‏T, וי קטן"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"‏T, קו חוצה"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"‏U, טילדה"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"‏U, קו עלי"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"‏U, ברווה"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"‏U, טבעת מעל"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"‏U, הטעמה עלית כפולה"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"‏U, זנבון"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"‏W, גג"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"‏Y, גג"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"‏Z, הטעמה עלית"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"‏Z, נקודה מעל"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"‏Z, וי קטן"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"‏S ארוכה"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"‏O, קרן"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"‏U, קרן"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"‏S, פסיק מתחת"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"‏T, פסיק מתחת"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"‏A, נקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"‏A, קרס מעל"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"‏A, גג והטעמה עלית"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"‏A, גג והטעמה משנית"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"‏A, גג וקרס מעל"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"‏A, גג וטילדה"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"‏A, גג ונקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"‏A, ברווה והטעמה עלית"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"‏A, ברווה והטעמה משנית"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"‏A, ברווה וקרס מעל"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"‏A, ברווה וטילדה"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"‏A, ברווה ונקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"‏E, נקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"‏E, קרס מעל"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"‏E, טילדה"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"‏E, גג והטעמה עלית"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"‏E, גג והטעמה משנית"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"‏E, גג וקרס מעל"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"‏E, גג וטילדה"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"‏E, גג ונקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"‏I, קרס מעל"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"‏I, נקודה מתחת"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"‏O, נקודה מתחת"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"‏O, קרס מעל"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"‏O, גג והטעמה עלית"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"‏O, גג והטעמה משנית"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"‏O, גג וקרס מעל"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"‏O, גג וטילדה"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"‏O, גג ונקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"‏O, קרן והטעמה עלית"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"‏O, קרן והטעמה משנית"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"‏O, קרן וקרס מעל"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"‏O, קרן וטילדה"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"‏O, קרן ונקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"‏U, נקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"‏U, קרס מעל"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"‏U, קרן והטעמה עלית"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"‏U, קרן והטעמה משנית"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"‏U, קרן וקרס מעל"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"‏U, קרן וטילדה"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"‏U, קרן ונקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"‏Y, הטעמה משנית"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"‏Y, נקודה מתחת"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"‏Y, קרס מעל"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"‏Y, טילדה"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"סימן קריאה הפוך"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"סימן ציטוט זוויתי כפול הפונה שמאלה"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"נקודה אמצעית"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"אחד בכתב עלי"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"סימן ציטוט זוויתי כפול הפונה ימינה"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"סימן שאלה הפוך"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"גרש שמאלי יחיד"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"גרש ימני יחיד"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"גרש יחיד תחתון"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"מירכאות כפולות שמאליות"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"מירכאות כפולות ימניות"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"צלבון"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"צלבון כפול"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"סימן פרומיל"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"‏Prime כפול"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"סימן ציטוט זוויתי יחיד הפונה שמאלה"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"סימן ציטוט זוויתי יחיד הפונה ימינה"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"ארבע בכתב עלי"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"‏n לטינית קטנה בכתב עלי"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"סימן פזו"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"סימן \"לכבוד\""</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"חץ ימינה"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"חץ מטה"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Empty Set"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"הגדל"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"קטן מ- או שווה ל-"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"גדול מ- או שווה ל-"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"כוכב שחור"</string>
+</resources>
diff --git a/java/res/values-iw/strings-talkback-descriptions.xml b/java/res/values-iw/strings-talkback-descriptions.xml
index 435aaba51..a43b64ec7 100644
--- a/java/res/values-iw/strings-talkback-descriptions.xml
+++ b/java/res/values-iw/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"לא הוזן טקסט"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> מתקן את <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ל-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> מבצע תיקון אוטומטי"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"תו לא מוכר"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"סמלים נוספים"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"מקומות"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"סמלים"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"רגשונים"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"<xliff:g id="LOWER_LETTER">%s</xliff:g> גדולה"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"‏I גדולה"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"‏I גדולה, נקודה מעל"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"סמל לא מוכר"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"‏Emoji לא מוכר"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"תווים חלופיים זמינים"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"תווים חלופיים נדחים"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"הצעות חלופיות זמינות"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"הצעות חלופיות נדחות"</string>
</resources>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 297048ca5..705121e3f 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"שפר את <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-action-keys.xml b/java/res/values-ka-rGE/strings-action-keys.xml
index 3ad6c3395..5fa92357c 100644
--- a/java/res/values-ka-rGE/strings-action-keys.xml
+++ b/java/res/values-ka-rGE/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"წინა"</string>
<string name="label_done_key" msgid="7564866296502630852">"დასრ."</string>
<string name="label_send_key" msgid="482252074224462163">"გაგზ."</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"ძიება"</string>
<string name="label_pause_key" msgid="2225922926459730642">"პაუზა"</string>
<string name="label_wait_key" msgid="5891247853595466039">"მოცდა"</string>
</resources>
diff --git a/java/res/values-ka-rGE/strings-letter-descriptions.xml b/java/res/values-ka-rGE/strings-letter-descriptions.xml
new file mode 100644
index 000000000..ae3ddabce
--- /dev/null
+++ b/java/res/values-ka-rGE/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Feminine ordinal indicator"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"ნიშანი მიკრო"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Masculine ordinal indicator"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, acute"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diaeresis"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, ring above"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligature"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilla"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, acute"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diaeresis"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, acute"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diaeresis"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, acute"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diaeresis"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, stroke"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, acute"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diaeresis"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, acute"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diaeresis"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, acute"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, dot above"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, stroke"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, dot above"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, dot above"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilla"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, stroke"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Dotless I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligature"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilla"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, acute"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilla"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, middle dot"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, stroke"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, acute"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilla"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, preceded by apostrophe"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, double acute"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligature"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, acute"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilla"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, acute"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilla"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilla"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, stroke"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, ring above"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, double acute"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, acute"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, dot above"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Long S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horn"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horn"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, comma below"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, comma below"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, dot below"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, hook above"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve and acute"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve and grave"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve and hook above"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve and tilde"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve and dot below"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, dot below"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, hook above"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, hook above"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, dot below"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, dot below"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, hook above"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horn and acute"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horn and grave"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, dot below"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, hook above"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horn and acute"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horn and grave"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, dot below"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, hook above"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Inverted exclamation mark"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Left-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Middle dot"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"ერთიანი ზედა ინდექსში"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Right-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Inverted question mark"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Left single quotation mark"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Right single quotation mark"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Single low-9 quotation mark"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Left double quotation mark"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Right double quotation mark"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Double dagger"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Per mille sign"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Double prime"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"მარცხნივ მიმართლი კუთხოვანი ერთმაგი ბრჭყალი"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"მარჯვნივ მიმართლი კუთხოვანი ერთმაგი ბრჭყალი"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"ოთხიანი ზედა ინდექსში"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"ლათინური ასო n ზედა ინდექსში"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"პესოს ნიშანი"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Care of"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"მარჯვნივ მიმართული ისარი"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"ქვევით მიმართლი ისარი"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Empty set"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"ნაკლებობა ან ტოლობა"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"მეტობა ან ტოლობა"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"შავი ვარსკვლავი"</string>
+</resources>
diff --git a/java/res/values-ka-rGE/strings-talkback-descriptions.xml b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
index 0cf7e7ce4..5d23b09e8 100644
--- a/java/res/values-ka-rGE/strings-talkback-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ტექსტი შეყვანილი არ არის"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> შეასწორებს <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ს <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>-ად"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ასრულებს ავტოკორექციას"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"უცნობი სიმბოლო"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"დამატებითი სიმბოლოები"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"ადგილები"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"სიმბოლოები"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"სიცილაკები"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"დიდი <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"დიდი I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"უცნობი სიმბოლო"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"უცნობი emoji"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ალტერნატიული სიმბოლოები ხელმისაწვდომია"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ალტერნატიული სიმბოლოები გამოტოვებულია"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ალტერნატიული შეთავაზებები ხელმისაწვდომია"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"ალტერნატიული შეთავაზებები გამოტოვებულია"</string>
</resources>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index 7c0026e5e..43dcc6354 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>-ის გაუმჯობესება"</string>
<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-km-rKH/strings-action-keys.xml b/java/res/values-km-rKH/strings-action-keys.xml
index d6b11b7ce..3ff6d49b1 100644
--- a/java/res/values-km-rKH/strings-action-keys.xml
+++ b/java/res/values-km-rKH/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"មុន"</string>
<string name="label_done_key" msgid="7564866296502630852">"រួចរាល់"</string>
<string name="label_send_key" msgid="482252074224462163">"ផ្ញើ"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"ស្វែងរក"</string>
<string name="label_pause_key" msgid="2225922926459730642">"ផ្អាក"</string>
<string name="label_wait_key" msgid="5891247853595466039">"រង់ចាំ"</string>
</resources>
diff --git a/java/res/values-km-rKH/strings-emoji-descriptions.xml b/java/res/values-km-rKH/strings-emoji-descriptions.xml
index 9f1d9973e..757df50e7 100644
--- a/java/res/values-km-rKH/strings-emoji-descriptions.xml
+++ b/java/res/values-km-rKH/strings-emoji-descriptions.xml
@@ -25,16 +25,16 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="spoken_emoji_00A9" msgid="2859822817116803638">"សញ្ញា​រក្សា​សិទ្ធ"</string>
+ <string name="spoken_emoji_00A9" msgid="2859822817116803638">"សញ្ញា​រក្សា​សិទ្ធ​"</string>
<string name="spoken_emoji_00AE" msgid="7708335454134589027">"សញ្ញា​​​ចុះ​បញ្ជី"</string>
<string name="spoken_emoji_203C" msgid="153340916701508663">"សញ្ញា​ឧទាន​​ពីរ"</string>
- <string name="spoken_emoji_2049" msgid="4877256448299555371">"សញ្ញា​​ឧទាន​សញ្ញា​សួរ"</string>
+ <string name="spoken_emoji_2049" msgid="4877256448299555371">"សញ្ញា​​ឧទាន​សញ្ញា​សួរ​​"</string>
<string name="spoken_emoji_2122" msgid="9188440722954720429">"សញ្ញា​​​និក្ខិត្តសញ្ញា"</string>
<string name="spoken_emoji_2139" msgid="9114342638917304327">"ប្រភព​ព័ត៌មាន"</string>
<string name="spoken_emoji_2194" msgid="8055202727034946680">"ព្រួញ​ឆ្វេងស្ដាំ"</string>
<string name="spoken_emoji_2195" msgid="8028122253301087407">"ព្រួញ​ឡើង​លើ​ចុះក្រោម"</string>
<string name="spoken_emoji_2196" msgid="4019164898967854363">"ព្រួញ​ទិសពាយព្យ"</string>
- <string name="spoken_emoji_2197" msgid="4255723717709017801">"ព្រួញ​​ទិស​ឥសាន្ត​ឦសាន្ត"</string>
+ <string name="spoken_emoji_2197" msgid="4255723717709017801">"ព្រួញ​​ទិស​ឥសាន្ត​ឦសាន្ត​"</string>
<string name="spoken_emoji_2198" msgid="1452063451313622090">"ព្រួញ​​ទិស​អាគ្នេយ៍"</string>
<string name="spoken_emoji_2199" msgid="6942722693368807849">"ព្រួញ​​ទិស​និរតី"</string>
<string name="spoken_emoji_21A9" msgid="5204750172335111188">"ព្រួញ​ទៅ​ឆ្វេង​មាន​ទំពក់"</string>
@@ -45,7 +45,7 @@
<string name="spoken_emoji_23EA" msgid="2251396938087774944">"ត្រីកោណ​ខ្មៅ​ពីរ​ចង្អុល​ទៅ​ឆ្វេង"</string>
<string name="spoken_emoji_23EB" msgid="3746885195641491865">"ត្រីកោណ​ខ្មៅ​ពីរ​ចង្អុល​​ឡើង​លើ"</string>
<string name="spoken_emoji_23EC" msgid="7852372752901163416">"ត្រីកោណ​ខ្មៅ​ពីរ​ចង្អុល​​ចុះក្រោម"</string>
- <string name="spoken_emoji_23F0" msgid="8474219588750627870">"នាឡិកា​រោទ៍"</string>
+ <string name="spoken_emoji_23F0" msgid="8474219588750627870">"នាឡិកា​រោទ៍​"</string>
<string name="spoken_emoji_23F3" msgid="166900119581024371">"កែវ​ពិសោធន៍​មាន​ខ្សាច់ហូរ"</string>
<string name="spoken_emoji_24C2" msgid="3948348737566038470">"អក្សរ​អឹម​ធំ​ក្នុង​រង្វង់"</string>
<string name="spoken_emoji_25AA" msgid="7865181015100227349">"ការ៉េ​តូច​​ពណ៌ខ្មៅ"</string>
@@ -195,7 +195,7 @@
<string name="spoken_emoji_1F312" msgid="4458575672576125401">"ព្រះ​ចន្ទ​មួយ​ចំណិត​ស្ដាំ"</string>
<string name="spoken_emoji_1F313" msgid="7599181787989497294">"ព្រះ​ចន្ទ​ពាក់​កណ្ដាល"</string>
<string name="spoken_emoji_1F314" msgid="4898293184964365413">"ព្រះ​ចន្ទ​មួយ​ចំណិត​ឆ្វេង"</string>
- <string name="spoken_emoji_1F315" msgid="3218117051779496309">"ព្រះចន្ទ​ពេញ​វង់"</string>
+ <string name="spoken_emoji_1F315" msgid="3218117051779496309">"ព្រះចន្ទ​ពេញ​វង់​"</string>
<string name="spoken_emoji_1F316" msgid="2061317145777689569">"ព្រះ​ចន្ទ​ភ្លឺ​មួយ​ចំហៀង"</string>
<string name="spoken_emoji_1F317" msgid="2721090687319539049">"ព្រះ​ចន្ទ​ភ្លឺ​ពាក់​កណ្ដាល"</string>
<string name="spoken_emoji_1F318" msgid="3814091755648887570">"ព្រះ​ចន្ទ​ភ្លឺ​មួយ​ចំណិត​ឆ្វេង"</string>
@@ -262,7 +262,7 @@
<string name="spoken_emoji_1F365" msgid="4963815540953316307">"នំ​ត្រី​រាង​មូល"</string>
<string name="spoken_emoji_1F366" msgid="7862401745277049404">"ការ៉េម​​បំពង់"</string>
<string name="spoken_emoji_1F367" msgid="7447972978281980414">"ការ៉េម​កែវ"</string>
- <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ការ៉េម"</string>
+ <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ការ៉េម​"</string>
<string name="spoken_emoji_1F369" msgid="7383712944084857350">"ដូណាត់"</string>
<string name="spoken_emoji_1F36A" msgid="2726271795913042295">"ខូគី"</string>
<string name="spoken_emoji_1F36B" msgid="6342163604299875931">"​​សូកូឡា"</string>
@@ -280,7 +280,7 @@
<string name="spoken_emoji_1F377" msgid="1762398562314172075">"កែវ​ស្រា"</string>
<string name="spoken_emoji_1F378" msgid="5528234560590117516">"កែវ​ស្រា​ក្រឡុក"</string>
<string name="spoken_emoji_1F379" msgid="790581290787943325">"ភេសជ្ជៈ​​​ត្រូពិក"</string>
- <string name="spoken_emoji_1F37A" msgid="391966822450619516">"កែវ​​ស្រាបៀ"</string>
+ <string name="spoken_emoji_1F37A" msgid="391966822450619516">"កែវ​​ស្រាបៀ​"</string>
<string name="spoken_emoji_1F37B" msgid="9015043286465670662">"ជល់​កែវ​ស្រាបៀ"</string>
<string name="spoken_emoji_1F37C" msgid="2532113819464508894">"ដប​ទឹកដោះ​គោ"</string>
<string name="spoken_emoji_1F380" msgid="3487363857092458827">"ខ្សែ​បូ"</string>
@@ -313,7 +313,7 @@
<string name="spoken_emoji_1F3A7" msgid="837856608794094105">"កាស"</string>
<string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"ក្ដារ​លាយ​ពណ៌​វិចិត្រករ"</string>
<string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"មួក​​​សម្ដែង​សិល្បៈ"</string>
- <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"តង់​សៀក"</string>
+ <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"តង់​សៀក​"</string>
<string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"សំបុត្រ"</string>
<string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"បន្ទះកណ្ដឹង"</string>
<string name="spoken_emoji_1F3AD" msgid="607157286336130470">"សម្ដែង​សិល្បៈ"</string>
@@ -334,10 +334,10 @@
<string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"និមិត្តសញ្ញា​តន្ត្រី"</string>
<string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"អាវ​កីឡា​​មាន​ខ្សែ​ឆៀង"</string>
<string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"រ៉ាកែត និង​បាល់"</string>
- <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"ជិះ​ស្គី ​និង​ក្ដារ​​ស្គី"</string>
+ <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"ជិះ​ស្គី ​និង​ក្ដារ​​ស្គី​"</string>
<string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"បាល់​បោះ​ និង​វណ្ណ​មូល"</string>
<string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"ទង់ជាតិ​ប្រណាំង​ម៉ូតូ"</string>
- <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"អ្នក​ជិះ​​ក្ដារ​រំអិល​លើ​ព្រិល"</string>
+ <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"អ្នក​ជិះ​​ក្ដារ​រំអិល​លើ​ព្រិល​"</string>
<string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"អ្នក​រត់"</string>
<string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"អ្នក​ជិះ​ទូក​រអិល​លើ​ទឹក"</string>
<string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ពាន​រង្វាន់"</string>
@@ -354,7 +354,7 @@
<string name="spoken_emoji_1F3E6" msgid="342132788513806214">"ធនាគារ"</string>
<string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ម៉ាស៊ីន​​អេធីអឹម"</string>
<string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"សណ្ឋាគារ"</string>
- <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"សណ្ឋាគារ​ក្ដី​ស្រឡាញ់"</string>
+ <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"សណ្ឋាគារ​ក្ដី​ស្រឡាញ់​"</string>
<string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"ហាង​​ទំនិញ ២៤​ម៉ោង"</string>
<string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"សាលារៀន"</string>
<string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ហាង​​ទំនិញធំៗ"</string>
@@ -439,12 +439,12 @@
<string name="spoken_emoji_1F44D" msgid="6182553970602667815">"​មេដៃ​ឡើង​លើ"</string>
<string name="spoken_emoji_1F44E" msgid="8030851867365111809">"​មេដៃ​ចុះ​ក្រោម"</string>
<string name="spoken_emoji_1F44F" msgid="5148753662268213389">"ទះ​ដៃ"</string>
- <string name="spoken_emoji_1F450" msgid="1012021072085157054">"លា​ដៃ"</string>
+ <string name="spoken_emoji_1F450" msgid="1012021072085157054">"លា​ដៃ​"</string>
<string name="spoken_emoji_1F451" msgid="8257466714629051320">"មកុដ"</string>
<string name="spoken_emoji_1F452" msgid="4567394011149905466">"មួក​​ស្ត្រី"</string>
<string name="spoken_emoji_1F453" msgid="5978410551173163010">"វ៉ែនតា"</string>
- <string name="spoken_emoji_1F454" msgid="348469036193323252">"ក្រ​វ៉ាត់​ករ"</string>
- <string name="spoken_emoji_1F455" msgid="5665118831861433578">"អាវ​យឺត"</string>
+ <string name="spoken_emoji_1F454" msgid="348469036193323252">"ក្រ​វ៉ាត់​ករ​"</string>
+ <string name="spoken_emoji_1F455" msgid="5665118831861433578">"អាវ​យឺត​​"</string>
<string name="spoken_emoji_1F456" msgid="1890991330923356408">"ខោ​ខោវប៊យ"</string>
<string name="spoken_emoji_1F457" msgid="3904310482655702620">"សំលៀក​បំពាក់"</string>
<string name="spoken_emoji_1F458" msgid="5704243858031107692">"គី​ម៉ូណូ"</string>
@@ -463,8 +463,8 @@
<string name="spoken_emoji_1F465" msgid="4461307702499679879">"គណនី"</string>
<string name="spoken_emoji_1F466" msgid="1938873085514108889">"ក្មេង​​ប្រុស"</string>
<string name="spoken_emoji_1F467" msgid="8237080594860144998">"ក្មេង​ស្រី"</string>
- <string name="spoken_emoji_1F468" msgid="6081300722526675382">"បុរស"</string>
- <string name="spoken_emoji_1F469" msgid="1090140923076108158">"ស្ត្រី"</string>
+ <string name="spoken_emoji_1F468" msgid="6081300722526675382">"បុរស​"</string>
+ <string name="spoken_emoji_1F469" msgid="1090140923076108158">"ស្ត្រី​"</string>
<string name="spoken_emoji_1F46A" msgid="5063570981942606595">"គ្រួសារ"</string>
<string name="spoken_emoji_1F46B" msgid="6795882374287327952">"បុរស​​ និង​ស្ត្រី​កាន់ដៃ​គ្នា"</string>
<string name="spoken_emoji_1F46C" msgid="6844464165783964495">"បុរស​ពីរ​នាក់​កាន់​ដៃ​គ្នា"</string>
@@ -490,16 +490,16 @@
<string name="spoken_emoji_1F480" msgid="3696253485164878739">"លលាដ៍​ក្បាល"</string>
<string name="spoken_emoji_1F481" msgid="320408708521966893">"អ្នក​ផ្ដល់​ព័ត៌មាន"</string>
<string name="spoken_emoji_1F482" msgid="3424354860245608949">"អ្នក​យាម"</string>
- <string name="spoken_emoji_1F483" msgid="3221113594843849083">"អ្នក​រាំ"</string>
+ <string name="spoken_emoji_1F483" msgid="3221113594843849083">"អ្នក​រាំ​"</string>
<string name="spoken_emoji_1F484" msgid="7348014979080444885">"ក្រេម​លាប​បបូរ​មាត់"</string>
<string name="spoken_emoji_1F485" msgid="6133507975565116339">"ថ្នាំ​លាប​​​ក្រចក"</string>
<string name="spoken_emoji_1F486" msgid="9085459968247394155">"ម៉ាស្សា​មុខ"</string>
<string name="spoken_emoji_1F487" msgid="1479113637259592150">"កាត់សក់"</string>
<string name="spoken_emoji_1F488" msgid="6922559285234100252">"ស្លាក​សញ្ញា​កាត់សក់"</string>
<string name="spoken_emoji_1F489" msgid="8114863680950147305">"ស៊ីរ៉ាំង"</string>
- <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ថ្នាំ​គ្រាប់"</string>
+ <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ថ្នាំ​គ្រាប់​"</string>
<string name="spoken_emoji_1F48B" msgid="2538528967897640292">"ស្នាម​ថើប"</string>
- <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"លិខិត​ស្នេហា"</string>
+ <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"លិខិត​ស្នេហា​"</string>
<string name="spoken_emoji_1F48D" msgid="8259886164999042373">"រោទ៍"</string>
<string name="spoken_emoji_1F48E" msgid="8777981696011111101">"ត្បូង​ថ្ម"</string>
<string name="spoken_emoji_1F48F" msgid="741593675183677907">"ថើប"</string>
@@ -525,7 +525,7 @@
<string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"គ្រាប់បែក"</string>
<string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"និមិត្ត​សញ្ញា​​ដេក"</string>
<string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"និមិត្ត​សញ្ញា​​ប៉ះ​ទង្គិច​គ្នា"</string>
- <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"និមិត្ត​សញ្ញា​​ស្រក់​ញើស"</string>
+ <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"និមិត្ត​សញ្ញា​​ស្រក់​ញើស​"</string>
<string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"ដំណក់​ទឹក"</string>
<string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"និមិត្ត​សញ្ញា​​ដកឃ្លា"</string>
<string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"គំនរ​ធូលី"</string>
@@ -539,7 +539,7 @@
<string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"ប្ដូរ​​រូបិយប័ណ្ណ"</string>
<string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"សញ្ញា​ដុល្លារ"</string>
<string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"កាត​​ឥណទាន"</string>
- <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​​យ៉េន"</string>
+ <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​​យ៉េន​​"</string>
<string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"លុយដុល្លារ"</string>
<string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​អឺរ៉ូ"</string>
<string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​​​ផោន"</string>
@@ -547,7 +547,7 @@
<string name="spoken_emoji_1F4B9" msgid="647509393536679903">"ក្រាហ្វិក​និន្នាការ​ឡើង​​មាន​​សញ្ញា​យ៉េន"</string>
<string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"កៅអី"</string>
<string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"កុំព្យូទ័រ​ផ្ទាល់ខ្លួន"</string>
- <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"វ៉ា​លី"</string>
+ <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"វ៉ា​លី​"</string>
<string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"ឌីស​​តូច"</string>
<string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ថា​ស​​ទន់"</string>
<string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ថាស"</string>
@@ -557,7 +557,7 @@
<string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"ទំព័រ​​កោង"</string>
<string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"ទំព័រ​បញ្ឈរ"</string>
<string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"ប្រតិទិន"</string>
- <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"ហែក​ប្រតិទិន"</string>
+ <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"ហែក​ប្រតិទិន​"</string>
<string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"​កាត​រៀប​តាម​អក្សរ"</string>
<string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"ក្រាហ្វិក​មាន​និន្នាការ​ឡើង"</string>
<string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"ក្រាហ្វិក​មាន​និន្នាការ​ចុះ"</string>
@@ -573,11 +573,11 @@
<string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"សៀវភៅ"</string>
<string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"សៀវភៅ​មាន​ក្រប​ពណ៌"</string>
<string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"សៀវភៅ​​បិទ"</string>
- <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"សៀវភៅ​បើក"</string>
+ <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"សៀវភៅ​បើក​​"</string>
<string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"សៀវភៅ​​ពណ៌​បៃតង"</string>
<string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"សៀវភៅ​​ពណ៌​ខៀវ"</string>
<string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"សៀវភៅ​​ពណ៌​ទឹកក្រូច"</string>
- <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"សៀវភៅ"</string>
+ <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"សៀវភៅ​"</string>
<string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"ស្លាកឈ្មោះ"</string>
<string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"ក្រដាស​រមូរ"</string>
<string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"កំណត់ចំណាំ"</string>
@@ -589,7 +589,7 @@
<string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"ឧបករណ៍​បំពង​សំឡេង"</string>
<string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"ថា​ស​​​ចេញ"</string>
<string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ថា​ស​ចូល"</string>
- <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"កញ្ចប់"</string>
+ <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"កញ្ចប់​"</string>
<string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"និមិត្ត​សញ្ញា​អ៊ីមែល"</string>
<string name="spoken_emoji_1F4E8" msgid="30698793974124123">"ស្រោម​​សំបុត្រ​ចូល"</string>
<string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ស្រោម​សំបុត្រ​​មាន​សញ្ញា​ព្រួញ​ពី​លើ"</string>
@@ -626,7 +626,7 @@
<string name="spoken_emoji_1F50C" msgid="7793219132036431680">"ដុយ​អគ្គិសនី"</string>
<string name="spoken_emoji_1F50D" msgid="8140244710637926780">"កែវ​ពង្រីក​ចង្អុល​ខាង​ឆ្វេង"</string>
<string name="spoken_emoji_1F50E" msgid="4751821352839693365">"កែវ​ពង្រីក​ចង្អុល​ខាង​ស្ដាំ"</string>
- <string name="spoken_emoji_1F50F" msgid="915079280472199605">"ចាក់សោ​​​ដោយ​ប្រើ​​ប៊ិច"</string>
+ <string name="spoken_emoji_1F50F" msgid="915079280472199605">"ចាក់សោ​​​ដោយ​ប្រើ​​ប៊ិច​"</string>
<string name="spoken_emoji_1F510" msgid="7658381761691758318">"បិទ​​សោ​ដោយ​ប្រើ​​​​កូនសោ"</string>
<string name="spoken_emoji_1F511" msgid="262319867774655688">"សោ"</string>
<string name="spoken_emoji_1F512" msgid="5628688337255115175">"ចាក់សោ"</string>
@@ -645,15 +645,15 @@
<string name="spoken_emoji_1F51F" msgid="8673370823728653973">"គ្រាប់​ចុច​ ១០"</string>
<string name="spoken_emoji_1F520" msgid="7335109890337048900">"និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​អក្សរ​ឡាតាំង​ធំ"</string>
<string name="spoken_emoji_1F521" msgid="2693185864450925778">"និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​អក្សរ​ឡាតាំង​តូច"</string>
- <string name="spoken_emoji_1F522" msgid="8419130286280673347">"និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​​លេខ"</string>
+ <string name="spoken_emoji_1F522" msgid="8419130286280673347">"និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​​លេខ​"</string>
<string name="spoken_emoji_1F523" msgid="3318053476401719421">"ការ​បញ្ចូល​និមិត្តសញ្ញា"</string>
<string name="spoken_emoji_1F524" msgid="1625073997522316331">"និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​អក្សរ​ឡាតាំង"</string>
<string name="spoken_emoji_1F525" msgid="4083884189172963790">"ភ្លើង"</string>
<string name="spoken_emoji_1F526" msgid="2035494936742643580">"ពិល​​អគ្គិសនី"</string>
<string name="spoken_emoji_1F527" msgid="134257142354034271">"ម៉ាឡេត"</string>
<string name="spoken_emoji_1F528" msgid="700627429570609375">"ញញួរ"</string>
- <string name="spoken_emoji_1F529" msgid="7480548235904988573">"ឡោ​ស៊ី"</string>
- <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"កាំបិត"</string>
+ <string name="spoken_emoji_1F529" msgid="7480548235904988573">"ឡោ​ស៊ី​​"</string>
+ <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"កាំបិត​​"</string>
<string name="spoken_emoji_1F52B" msgid="4554906608328118613">"កាំភ្លើង​ខ្លី"</string>
<string name="spoken_emoji_1F52C" msgid="1330294501371770790">"មីក្រូទស្សន៍"</string>
<string name="spoken_emoji_1F52D" msgid="7549551775445177140">"កែវ​យឹត"</string>
@@ -662,7 +662,7 @@
<string name="spoken_emoji_1F530" msgid="3572898444281774023">"និមិត្តសញ្ញា​ជប៉ុន​សម្រាប់​អ្នក​ចាប់ផ្ដើម"</string>
<string name="spoken_emoji_1F531" msgid="5225633376450025396">"លំពែង​មុខ​បី"</string>
<string name="spoken_emoji_1F532" msgid="9169568490485180779">"ប៊ូតុង​ការេ​ពណ៌​ខ្មៅ"</string>
- <string name="spoken_emoji_1F533" msgid="6554193837201918598">"ប៊ូតុង​ការ៉េ​ពណ៌​ស"</string>
+ <string name="spoken_emoji_1F533" msgid="6554193837201918598">"ប៊ូតុង​ការ៉េ​ពណ៌​ស​"</string>
<string name="spoken_emoji_1F534" msgid="8339298801331865340">"រង្វង់​ពណ៌​ក្រហម​​​ធំ"</string>
<string name="spoken_emoji_1F535" msgid="1227403104835533512">"រង្វង់​ពណ៌​ខៀវ​ធំ"</string>
<string name="spoken_emoji_1F536" msgid="5477372445510469331">"ពេជ្រ​ពណ៌​ទឹកក្រូច​ធំ"</string>
@@ -745,8 +745,8 @@
<string name="spoken_emoji_1F628" msgid="8875777401624904224">"មុខ​ភ័យ​ខ្លាច"</string>
<string name="spoken_emoji_1F629" msgid="1411538490319190118">"មុខ​​នឿយហត់"</string>
<string name="spoken_emoji_1F62A" msgid="4726686726690289969">"មុខ​​ងងុយ​គេង"</string>
- <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"មុខ​អស់កម្លាំង"</string>
- <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"មុខ​ក្រញេវក្រញូវ"</string>
+ <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"មុខ​អស់កម្លាំង​​"</string>
+ <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"មុខ​ក្រញេវក្រញូវ​"</string>
<string name="spoken_emoji_1F62D" msgid="4283677508698812232">"មុខ​យំ​លឺៗ"</string>
<string name="spoken_emoji_1F62E" msgid="726083405284353894">"មុខ​បើក​មាត់"</string>
<string name="spoken_emoji_1F62F" msgid="7746620088234710962">"មុខ​ស្ងៀមស្ងាត់"</string>
@@ -784,7 +784,7 @@
<string name="spoken_emoji_1F683" msgid="8772750354339223092">"ទូរ​​រថភ្លើង"</string>
<string name="spoken_emoji_1F684" msgid="346396777356203608">"រថភ្លើង​ល្បឿន​លឿន"</string>
<string name="spoken_emoji_1F685" msgid="1237059817190832730">"រថភ្លើង​ល្បឿន​លឿន​​មាន​ច្រមុះ"</string>
- <string name="spoken_emoji_1F686" msgid="3525197227223620343">"រថភ្លើង"</string>
+ <string name="spoken_emoji_1F686" msgid="3525197227223620343">"រថភ្លើង​"</string>
<string name="spoken_emoji_1F687" msgid="5110143437960392837">"មេត្រូ"</string>
<string name="spoken_emoji_1F688" msgid="4702085029871797965">"រថភ្លើង​ប្រើ​​​ពន្លឺ"</string>
<string name="spoken_emoji_1F689" msgid="2375851019798817094">"ស្ថានីយ"</string>
@@ -803,7 +803,7 @@
<string name="spoken_emoji_1F696" msgid="6391604457418285404">"តាក់ស៊ី​ខាង​មុខ"</string>
<string name="spoken_emoji_1F697" msgid="7978399334396733790">"រថយន្ត"</string>
<string name="spoken_emoji_1F698" msgid="7006050861129732018">"រថយន្ត​ខាង​មុខ"</string>
- <string name="spoken_emoji_1F699" msgid="630317052666590607">"រថយន្ត​​​សម្រាប់​កម្សាន្ត"</string>
+ <string name="spoken_emoji_1F699" msgid="630317052666590607">"រថយន្ត​​​សម្រាប់​កម្សាន្ត​"</string>
<string name="spoken_emoji_1F69A" msgid="4739797891735823577">"រថយន្ត​​ចែក​ចាយ"</string>
<string name="spoken_emoji_1F69B" msgid="4715997280786620649">"ឡាន​កាមីយ៉ុង"</string>
<string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ត្រាក់ទ័រ"</string>
@@ -819,7 +819,7 @@
<string name="spoken_emoji_1F6A6" msgid="485575967773793454">"ភ្លើង​ចរាចរណ៍​បញ្ឈរ"</string>
<string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"សញ្ញា​​សំណង់"</string>
<string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"រថយន្ត​​ប៉ូលិស​បើក​សារ៉ែន​វិល"</string>
- <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"បង្គោល​ទង់ជាតិ​រាង​ត្រីកោណ"</string>
+ <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"បង្គោល​ទង់ជាតិ​រាង​ត្រីកោណ​"</string>
<string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"ទ្វារ"</string>
<string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"សញ្ញា​ហាម​ចូល"</string>
<string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"​សញ្ញា​ជក់​បារី"</string>
diff --git a/java/res/values-km-rKH/strings-letter-descriptions.xml b/java/res/values-km-rKH/strings-letter-descriptions.xml
new file mode 100644
index 000000000..f58eff4d1
--- /dev/null
+++ b/java/res/values-km-rKH/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"សញ្ញា ª"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"សញ្ញា µ"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"សញ្ញា º"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"សញ្ញា ß"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"សញ្ញា à"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"សញ្ញា á"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"សញ្ញា â"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"សញ្ញា ã"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"សញ្ញា ä"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"សញ្ញា å"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"សញ្ញា æ"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"សញ្ញា ç"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"សញ្ញា è"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"សញ្ញា é"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"សញ្ញា ê"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"សញ្ញា ë"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"សញ្ញា ì"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"សញ្ញា í"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"សញ្ញា î"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"សញ្ញា ï"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"សញ្ញា ð"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"សញ្ញា ñ"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"សញ្ញា ò"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"សញ្ញា ó"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"សញ្ញា ô"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"សញ្ញា õ"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"សញ្ញា ö"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"សញ្ញា ø"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"សញ្ញា ù"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"សញ្ញា ú"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"សញ្ញា û"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"សញ្ញា ü"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"សញ្ញា ý"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"សញ្ញា þ"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"សញ្ញា ÿ"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"សញ្ញា ā"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"សញ្ញា ă"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"សញ្ញា ą"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"សញ្ញា ć"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"សញ្ញា ĉ"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"សញ្ញា ċ"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"សញ្ញា č"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"សញ្ញា ď"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"សញ្ញា đ"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"សញ្ញា ē"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"សញ្ញា ĕ"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"សញ្ញា ė"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"សញ្ញា ę"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"សញ្ញា ě"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"សញ្ញា ĝ"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"សញ្ញា ğ"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"សញ្ញា ġ"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"សញ្ញា ģ"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"សញ្ញា ĥ"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"សញ្ញា ħ"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"សញ្ញា ĩ"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"សញ្ញា ī"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"សញ្ញា ĭ"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"សញ្ញា į"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"សញ្ញា ı"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"សញ្ញា ij"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"សញ្ញា ĵ"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"សញ្ញា ķ"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"សញ្ញា ĸ"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"សញ្ញា ĺ"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"សញ្ញា ļ"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"សញ្ញា ľ"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"សញ្ញា ŀ"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"សញ្ញា ł"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"សញ្ញា ń"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"សញ្ញា ņ"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"សញ្ញា ň"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"សញ្ញា ʼn"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"សញ្ញា ŋ"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"សញ្ញា ō"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"សញ្ញា ŏ"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"សញ្ញា ő"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"សញ្ញា œ"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"សញ្ញា ŕ"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"សញ្ញា ŗ"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"សញ្ញា ř"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"សញ្ញា ś"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"សញ្ញា ŝ"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"សញ្ញា ş"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"សញ្ញា š"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"សញ្ញា ţ"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"សញ្ញា ť"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"សញ្ញា ŧ"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"សញ្ញា ũ"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"សញ្ញា ū"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"សញ្ញា ŭ"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"សញ្ញា ů"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"សញ្ញា ű"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"សញ្ញា ų"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"សញ្ញា ŵ"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"សញ្ញា ŷ"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"សញ្ញា ź"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"សញ្ញា ż"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"សញ្ញា ž"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"សញ្ញា ſ"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"សញ្ញា ơ"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"សញ្ញា ư"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"សញ្ញា ș"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"សញ្ញា ț"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"សញ្ញា ə"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"សញ្ញា ạ"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"សញ្ញា ả"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"សញ្ញា ấ"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"សញ្ញា ầ"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"សញ្ញា ẩ"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"សញ្ញា ẫ"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"សញ្ញា ậ"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"សញ្ញា ắ"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"សញ្ញា ằ"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"សញ្ញា ẳ"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"សញ្ញា ẵ"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"សញ្ញា ặ"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"សញ្ញា ẹ"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"សញ្ញា ẻ"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"សញ្ញា ẽ"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"សញ្ញា ế"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"សញ្ញា ề"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"សញ្ញា ể"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"សញ្ញា ễ"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"សញ្ញា ệ"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"សញ្ញា ỉ"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"សញ្ញា ị"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"សញ្ញា ọ"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"សញ្ញា ỏ"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"សញ្ញា ố"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"សញ្ញា ồ"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"សញ្ញា ổ"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"សញ្ញា ỗ"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"សញ្ញា ộ"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"សញ្ញា ớ"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"សញ្ញា ờ"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"សញ្ញា ở"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"សញ្ញា ỡ"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"សញ្ញា ợ"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"សញ្ញា ụ"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"សញ្ញា ủ"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"សញ្ញា ứ"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"សញ្ញា ừ"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"សញ្ញា ử"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"សញ្ញា ữ"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"សញ្ញា ự"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"សញ្ញា ỳ"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"សញ្ញា ỵ"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"សញ្ញា ỷ"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"សញ្ញា ỹ"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"សញ្ញា ¡"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"សញ្ញា «"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"សញ្ញា ·"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"សញ្ញា ¹"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"សញ្ញា »"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"សញ្ញា ¿"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"សញ្ញា ‘"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"សញ្ញា ’"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"សញ្ញា ‚"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"សញ្ញា “"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"សញ្ញា ”"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"សញ្ញា †"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"សញ្ញា ‡"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"សញ្ញា ‰"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"សញ្ញា ′"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"សញ្ញា ″"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"សញ្ញា ‹"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"សញ្ញា ›"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"សញ្ញា ⁴"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"សញ្ញា ⁿ"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"សញ្ញា ₱"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"សញ្ញា ℅"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"សញ្ញា →"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"សញ្ញា ↓"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"សញ្ញា ∅"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"សញ្ញា ∆"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"សញ្ញា ≤"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"សញ្ញា ≥"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"សញ្ញា ★"</string>
+</resources>
diff --git a/java/res/values-km-rKH/strings-talkback-descriptions.xml b/java/res/values-km-rKH/strings-talkback-descriptions.xml
index 0f0ac5600..e5b786048 100644
--- a/java/res/values-km-rKH/strings-talkback-descriptions.xml
+++ b/java/res/values-km-rKH/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"គ្មាន​អត្ថបទ​​​បាន​បញ្ចូល"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> កែ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ទៅ​ជា <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> អនុវត្ត​ការ​កែ​ស្វ័យ​ប្រវត្តិ"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"មិន​ស្គាល់​តួអក្សរ"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"និមិត្ត​សញ្ញា​​ច្រើន​ទៀត"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"ទីកន្លែង"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"និមិត្តសញ្ញា"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"សញ្ញា​អារម្មណ៍"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"អក្សរ​ធំ <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"សញ្ញា I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"សញ្ញា İ"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"មិន​ស្គាល់​និមិត្តសញ្ញា"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"មិន​ស្គាល់​សញ្ញា​អារម្មណ៍"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"តួអក្សរ​ជំនួស​អាច​ប្រើ​បាន"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"បាន​បដិសេធ​តួអក្សរ​ជំនួស"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ការ​ស្នើ​ជំនួស​អាច​ប្រើ​បាន"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"បាន​បដិសេធ​ការ​ស្នើ​ជំនួស"</string>
</resources>
diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml
index 2cf51d875..c55c0367f 100644
--- a/java/res/values-km-rKH/strings.xml
+++ b/java/res/values-km-rKH/strings.xml
@@ -28,7 +28,7 @@
<string name="popup_on_keypress" msgid="123894815723512944">"លេច​ឡើង​នៅ​​ពេល​ចុច​គ្រាប់​ចុច"</string>
<string name="general_category" msgid="1859088467017573195">"ទូទៅ"</string>
<string name="correction_category" msgid="2236750915056607613">"ការ​កែ​អត្ថបទ"</string>
- <string name="gesture_typing_category" msgid="497263612130532630">"បញ្ចូល​ដោយ​ប្រើ​កាយវិការ"</string>
+ <string name="gesture_typing_category" msgid="497263612130532630">"បញ្ចូល​ដោយ​ប្រើ​កាយវិការ​"</string>
<string name="misc_category" msgid="6894192814868233453">"ជម្រើស​ផ្សេងទៀត"</string>
<string name="advanced_settings" msgid="362895144495591463">"ការ​កំណត់​កម្រិត​ខ្ពស់"</string>
<string name="advanced_settings_summary" msgid="4487980456152830271">"ជម្រើស​សម្រាប់​អ្នក​ជំនាញ"</string>
@@ -38,7 +38,7 @@
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"បង្ហាញ​នៅ​ពេល​ដែល​បើក​ភាសា​បញ្ចូល​ច្រើន"</string>
<string name="sliding_key_input_preview" msgid="6604262359510068370">"បង្ហាញ​ទ្រនិច​បង្ហាញ​ស្លាយ"</string>
<string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"បង្ហាញ​​សញ្ញា​មើល​​ឃើញ​ខណៈ​ពេល​ដែល​រុញ​ពី​ឆ្វេង ឬ​​គ្រាប់​ចុច​​និមិត្ត​សញ្ញា"</string>
- <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"​សោ​លេចឡើង​បោះបង់​ការ​​ពន្យារពេល"</string>
+ <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"​សោ​លេចឡើង​បោះបង់​ការ​​ពន្យារពេល​"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"គ្មាន​ការ​ពន្យារពេល"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"លំនាំដើម"</string>
<string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> មិល្លី​វិនាទី"</string>
@@ -46,11 +46,10 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"ធ្វើឲ្យ <xliff:g id="APPLICATION_NAME">%s</xliff:g> ប្រសើរ​ឡើង"</string>
<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>
+ <string name="auto_cap" msgid="1719746674854628252">"ការ​សរសេរ​ជា​អក្សរ​ធំ​​ស្វ័យប្រវត្តិ​"</string>
<string name="auto_cap_summary" msgid="7934452761022946874">"សរសេរ​ពាក្យ​ដំបូង​​​ជា​អក្សរ​ធំ​​នៃ​ប្រយោគ​នីមួយ​ៗ"</string>
<string name="edit_personal_dictionary" msgid="3996910038952940420">"វចនានុក្រម​ផ្ទាល់ខ្លួន"</string>
<string name="configure_dictionaries_title" msgid="4238652338556902049">"ផ្នែក​បន្ថែម​វចនានុក្រម"</string>
@@ -61,7 +60,7 @@
<string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"បង្ហាញ​នៅ​ក្នុង​របៀប​បញ្ឈរ"</string>
<string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"លាក់​ជានិច្ច"</string>
<string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"ទប់ស្កាត់​​ពាក្យ​​បំពាន"</string>
- <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"កុំ​ស្នើ​ឲ្យ​ពាក្យ​បំពាន​មាន​សក្ដានុពល"</string>
+ <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"កុំ​ស្នើ​ឲ្យ​ពាក្យ​បំពាន​មាន​សក្ដានុពល​"</string>
<string name="auto_correction" msgid="7630720885194996950">"ការ​កែ​​​ស្វ័យប្រវត្តិ"</string>
<string name="auto_correction_summary" msgid="5625751551134658006">"ចន្លោះ​មិន​ឃើញ ​និង​សញ្ញា​​វណ្ណយុត្ត​កែ​ពាក្យ​ដែល​បាន​វាយ​ខុស​ស្វ័យប្រវត្តិ"</string>
<string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"បិទ"</string>
@@ -121,7 +120,7 @@
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ថិរវេលា​​ញ័រ​​ពេល​ចុច​គ្រាប់ចុច"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"កម្រិត​សំឡេង​ពេល​ចុច​គ្រាប់​ចុច"</string>
<string name="prefs_read_external_dictionary" msgid="2588931418575013067">"អាន​ឯកសារ​វចនានុក្រម​ខាង​ក្រៅ"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"គ្មាន​ឯកសារ​វចនានុក្រម​នៅ​ក្នុង​ថត​ទាញ​យក"</string>
+ <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"គ្មាន​ឯកសារ​វចនានុក្រម​នៅ​ក្នុង​ថត​ទាញ​យក​​"</string>
<string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ជ្រើស​ឯកសារ​វចនានុក្រម​ ដើម្បី​ដំឡើង"</string>
<string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ពិត​ជា​ដំឡើង​ឯកសារ​នេះ​សម្រាប់ <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
<string name="error" msgid="8940763624668513648">"មាន​កំហុស"</string>
@@ -148,7 +147,7 @@
<string name="dictionary_provider_name" msgid="3027315045397363079">"កម្មវិធី​ផ្ដល់​វចនានុក្រម"</string>
<string name="dictionary_service_name" msgid="6237472350693511448">"សេវាកម្ម​​វចនានុក្រម"</string>
<string name="download_description" msgid="6014835283119198591">"ព័ត៌មាន​បច្ចុប្បន្នភាព​វចនានុក្រម"</string>
- <string name="dictionary_settings_title" msgid="8091417676045693313">"ផ្នែក​បន្ថែម​វចនានុក្រម"</string>
+ <string name="dictionary_settings_title" msgid="8091417676045693313">"ផ្នែក​បន្ថែម​វចនានុក្រម​​"</string>
<string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"វចនានុក្រម​​​​​អាច​ប្រើ​បាន"</string>
<string name="dictionary_settings_summary" msgid="5305694987799824349">"ការ​កំណត់​សម្រាប់​វចនានុក្រម"</string>
<string name="user_dictionaries" msgid="3582332055892252845">"វចនានុក្រម​​​អ្នក​ប្រើ"</string>
@@ -164,10 +163,10 @@
<string name="message_updating" msgid="4457761393932375219">"ពិនិត្យមើល​បច្ចុប្បន្នភាព"</string>
<string name="message_loading" msgid="5638680861387748936">"កំពុង​ផ្ទុក..."</string>
<string name="main_dict_description" msgid="3072821352793492143">"វចនានុក្រម​ចម្បង"</string>
- <string name="cancel" msgid="6830980399865683324">"បោះ​បង់"</string>
+ <string name="cancel" msgid="6830980399865683324">"បោះ​បង់​"</string>
<string name="go_to_settings" msgid="3876892339342569259">"ការ​កំណត់"</string>
<string name="install_dict" msgid="180852772562189365">"ដំឡើង"</string>
- <string name="cancel_download_dict" msgid="7843340278507019303">"បោះ​បង់"</string>
+ <string name="cancel_download_dict" msgid="7843340278507019303">"បោះ​បង់​"</string>
<string name="delete_dict" msgid="756853268088330054">"លុប"</string>
<string name="should_download_over_metered_prompt" msgid="1583881200688185508">"ភាសា​ដែល​បាន​ជ្រើស​នៅ​លើ​ឧបករណ៍​ចល័ត​មាន​វចនានុក្រម​អាច​ប្រើ​បាន។&lt;br/&gt; យើង​ផ្ដល់​អនុសាសន៍​ឲ្យ &lt;b&gt;ទាញ​យក&lt;/b&gt; វចនានុក្រម​ភាសា <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ដើម្បី​បង្កើន​បទពិសោធន៍​វាយ​បញ្ចូល​របស់​អ្នក។&lt;br/&gt; &lt;br/&gt; ការ​ទាញ​យក​អាច​ចំណាយ​ពេល​ប្រហែល​ពីរ​នាទី​នៅ​តាម 3G។ ការ​គិត​ថ្លៃ​អាច​អនុវត្ត​ប្រសិន​បើ​អ្នក​មិន​ប្រើ &lt;b&gt;ផែនការ​ទិន្នន័យ​គ្មាន​ដែន​កំណត់&lt;/b&gt;.&lt;br/&gt; បើ​អ្នក​មិន​ប្រាកដ​​ថា​ផែនការ​ណា​មួយ​ដែល​អ្នក​មាន យើង​ផ្ដល់​អនុសាសន៍​ឲ្យ​​ភ្ជាប់​វ៉ាយហ្វាយ ដើម្បី​ចាប់ផ្ដើម​ទាញ​យក​ដោយ​ស្វ័យ​ប្រវត្តិ។&lt;br/&gt; &lt;br/&gt; ជំនួយ៖ អ្នក​អាច​ទាញ​យក និង​លុប​វចនានុក្រម​ដោយ​ចូល​ទៅ​ &lt;b&gt;ភាសា &amp; ការ​បញ្ចូល&lt;/b&gt; នៅ​ក្នុង​ម៉ឺនុយ &lt;b&gt;ការ​កំណត់&lt;/b&gt; សម្រាប់​ឧបករណ៍​ចល័ត។"</string>
<string name="download_over_metered" msgid="1643065851159409546">"ទាញ​យក​ឥឡូវ​នេះ (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> មេកាបៃ)"</string>
@@ -185,7 +184,7 @@
<string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"ពាក្យ៖"</string>
<string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"ផ្លូវកាត់​៖"</string>
<string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"ភាសា៖"</string>
- <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"វាយ​បញ្ចូល​ពាក្យ"</string>
+ <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"វាយ​បញ្ចូល​ពាក្យ​"</string>
<string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"ផ្លូវកាត់​ជា​ជម្រើស"</string>
<string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"កែ​ពាក្យ"</string>
<string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"កែ"</string>
diff --git a/java/res/values-lo-rLA/strings-action-keys.xml b/java/res/values-lo-rLA/strings-action-keys.xml
index 239930583..e1cd91367 100644
--- a/java/res/values-lo-rLA/strings-action-keys.xml
+++ b/java/res/values-lo-rLA/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"ກ່ອນໜ້າ"</string>
<string name="label_done_key" msgid="7564866296502630852">"Done"</string>
<string name="label_send_key" msgid="482252074224462163">"ສົ່ງ"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"ຊອກຫາ"</string>
<string name="label_pause_key" msgid="2225922926459730642">"ຢຸດຊົ່ວຄາວ"</string>
<string name="label_wait_key" msgid="5891247853595466039">"ລໍຖ້າ"</string>
</resources>
diff --git a/java/res/values-lo-rLA/strings-emoji-descriptions.xml b/java/res/values-lo-rLA/strings-emoji-descriptions.xml
index 83a702e95..0747fa629 100644
--- a/java/res/values-lo-rLA/strings-emoji-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-emoji-descriptions.xml
@@ -210,7 +210,7 @@
<string name="spoken_emoji_1F330" msgid="3115760035618051575">"​ລູກ​ເກົາ​ລັດ"</string>
<string name="spoken_emoji_1F331" msgid="5658888205290008691">"​ກ້າ​ໄມ້"</string>
<string name="spoken_emoji_1F332" msgid="2935650450421165938">"ຕົ້ນ​ໄມ້​ບໍ່​ຜັດ​ໃບ"</string>
- <string name="spoken_emoji_1F333" msgid="5898847427062482675">"​ຕົ້ນ​ໄມ້​ຜັດໃບ"</string>
+ <string name="spoken_emoji_1F333" msgid="5898847427062482675">"​ຕົ້ນ​ໄມ້​ຜັດໃບ​"</string>
<string name="spoken_emoji_1F334" msgid="6183375224678417894">"​ຕົ້ນ​ປາມ"</string>
<string name="spoken_emoji_1F335" msgid="5352418412103584941">"​ກະ​ບອງ​ເພັດ"</string>
<string name="spoken_emoji_1F337" msgid="3839107352363566289">"​ທິວ​ລິບ"</string>
@@ -450,7 +450,7 @@
<string name="spoken_emoji_1F458" msgid="5704243858031107692">"​ກິ​ໂມ​ໂນ"</string>
<string name="spoken_emoji_1F459" msgid="3553148747050035251">"​ບິ​ກີ​ນີ"</string>
<string name="spoken_emoji_1F45A" msgid="1389654639484716101">"​ເສື້ອ​ຜ້າ​ຜູ່​ຍິງ"</string>
- <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"ກະ​ເປົາ"</string>
+ <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"ກະ​ເປົາ​"</string>
<string name="spoken_emoji_1F45C" msgid="3410257778598006936">"ກະ​ເປົາ"</string>
<string name="spoken_emoji_1F45D" msgid="812176504300064819">"​ກະ​ເປົາ"</string>
<string name="spoken_emoji_1F45E" msgid="2901741399934723562">"​ເກີບ​ຜູ່​ຊາຍ"</string>
diff --git a/java/res/values-lo-rLA/strings-letter-descriptions.xml b/java/res/values-lo-rLA/strings-letter-descriptions.xml
new file mode 100644
index 000000000..ecc0b7a71
--- /dev/null
+++ b/java/res/values-lo-rLA/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"ໂຕ​ບົ່ງ​ຊີ້​ລຳ​ດັບ​ເພດ​ຍິງ"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"ສັນຍາລັກໄມໂຄຣ"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"​ໂຕ​ບົ່ງ​ຊີ້​ລຳ​ດັບ​ເພດ​ຊາຍ"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, acute"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diaeresis"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, ring above"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligature"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilla"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, acute"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diaeresis"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, acute"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diaeresis"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, acute"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diaeresis"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, stroke"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, acute"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diaeresis"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, acute"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diaeresis"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, acute"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, dot above"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, stroke"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, dot above"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, dot above"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilla"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, stroke"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Dotless I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligature"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilla"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, acute"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilla"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, middle dot"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, stroke"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, acute"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilla"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, preceded by apostrophe"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, double acute"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligature"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, acute"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilla"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, acute"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilla"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilla"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, stroke"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, ring above"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, double acute"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, acute"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, dot above"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Long S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horn"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horn"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, comma below"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, comma below"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, dot below"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, hook above"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve and acute"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve and grave"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve and hook above"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve and tilde"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve and dot below"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, dot below"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, hook above"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, hook above"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, dot below"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, dot below"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, hook above"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex and acute"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex and grave"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex and hook above"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex and tilde"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex and dot below"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horn and acute"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horn and grave"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, dot below"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, hook above"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horn and acute"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horn and grave"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horn and hook above"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horn and tilde"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horn and dot below"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, dot below"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, hook above"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Inverted exclamation mark"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Left-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"​​ຈ້ຳ​ເມັດ​ທາງ​ກາງ"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Superscript one"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Right-pointing double angle quotation mark"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Inverted question mark"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Left single quotation mark"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Right single quotation mark"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Single low-9 quotation mark"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"​ເຄື່ອງ​ໝາຍ​ວົງ​ຢືມ​ຊ້າຍ"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"​ເຄື່ອງ​ໝາຍ​ວົງ​ຢືມ​ຂວາ​"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Double dagger"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"​ເຄື່ອງ​ໝາຍ​ຕໍ່​ໄມລ໌"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Double prime"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Single left-pointing angle quotation mark"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Single right-pointing angle quotation mark"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"ໂຕ​ຍົກ​ເລກ​ສີ່"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"ໂຕ​ຍົກ​ n ໂຕ​ນ້ອຍ"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"ເຄື່ອງ​ໝາຍເປ​ໂຊ"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"CARE OF"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"​ລູກ​ສອນ​ຊີ້​ໄປ​ຂວາ"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"ລູກ​ສອນ​ຊີ້​ລົງ"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"​ຊຸດ​ຫວ່າງ​ເປົ່າ"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"ເພີ່ມ"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"​ໜ້ອຍກວ່າ ຫຼື​ເທົ່າ​ກັບ"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"ຫຼາຍກວ່າ ຫຼື​ເທົ່າ​ກັບ"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"​ດາວ​ດຳ"</string>
+</resources>
diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
index c6140fda9..187b63ae5 100644
--- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ບໍ່ມີ​ການໃສ່​ຂໍ້ຄວາມ"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ແກ້​ໄຂ​ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ເປັນ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ດຳ​ເນີນ​ການ​ແກ້​ໄຂ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"​ໂຕ​ອັກ​ສອນ​ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"​ສັນ​ຍາ​ລັກ​ເພີ່ມ​ເຕີມ"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"ສະຖານທີ່"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"ສັນຍາລັກ"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"​ອີ​ໂມ​ຕິ​ຄອນ"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"ໂຕ​ພິມ​ໃຫຍ່ <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"ໂຕ​ພິມ​ໃຫຍ່ I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"​ໂຕພິມ​ໃຫຍ່ I ມີ​ຈ້ຳ​ເມັດ​ຢູ່​ເທິງ"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"ສັນ​ຍາ​ລັກ​ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"ອີ​ໂມ​ຈິ​ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"​ມີ​ໂຕ​ອັກ​ສອນ​ສຳ​ຮອງ​ໃຫ້​ເລືອກ"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"​ປິດ​ໂຕ​ອັກ​ສອນ​ສຳ​ຮອງ​ແລ້ວ"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"​ມີ​ຄຳ​ແນະ​ນຳ​ສຳ​ຮອງ​ໃຫ້​ເລືອກ"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"​ປິດ​ການ​ແນະ​ນຳ​ສຳ​ຮອງ​ແລ້ວ"</string>
</resources>
diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml
index c8ef7acea..8947a8b30 100644
--- a/java/res/values-lo-rLA/strings.xml
+++ b/java/res/values-lo-rLA/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"ປັບ​ປຸງ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-mn-rMN/strings-action-keys.xml b/java/res/values-mn-rMN/strings-action-keys.xml
index a855386d0..8ebb5bb1f 100644
--- a/java/res/values-mn-rMN/strings-action-keys.xml
+++ b/java/res/values-mn-rMN/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Өмнөх"</string>
<string name="label_done_key" msgid="7564866296502630852">"Дууссан"</string>
<string name="label_send_key" msgid="482252074224462163">"Илгээх"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Хайлт"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Түр зогсоох"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Хүлээх"</string>
</resources>
diff --git a/java/res/values-mn-rMN/strings-letter-descriptions.xml b/java/res/values-mn-rMN/strings-letter-descriptions.xml
new file mode 100644
index 000000000..b8f8d85e3
--- /dev/null
+++ b/java/res/values-mn-rMN/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Эм хүйсийн дугаар заагч"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Микро тэмдэг"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Эр хүйсийн дугаар заагч"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Хурц S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"А, зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"А, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"А, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"А, долгионтой"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"А, хоёр цэгтэй"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, дээрээ цагирагтай"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, залгагдсан"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, хоёр цэгтэй"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, хоёр цэгтэй"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Зураастай ди"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, долгионтой"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, долгионтой"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, хоёр цэгтэй"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, хөндлөн зураастай"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, хоёр цэгтэй"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Гэдэстэй багана"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, хоёр цэгтэй"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, хөндлөн малгайтай"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"А, тавган малгайтай"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"А, сүүлтэй"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"С, дээрээ цэгтэй"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, хөндлөн зураастай"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, хөндлөн малгайтай"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, тавган малгайтай"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, дээрээ цэгтэй"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, сүүлтэй"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, тавган малгайтай"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, дээрээ цэгтэй"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, хөндлөн зураастай"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, долгионтой"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, хөндлөн малгайтай"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, тавган малгайтай"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, сүүлтэй"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Цэггүй I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, залгагдсан"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Кра"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, дунд цэгтэй"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, хөндлөн зураастай"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N,"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Инг"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, хөндлөн малгайтай"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, тавган малгайтай"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, давхар баруун малгайтай"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, залгагдсан"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, дэвсгэртэй"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, хөндлөн зураастай"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, долгионтой"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, хөндлөн малгайтай"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, тавган малгайтай"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, дээрээ цагирагтай"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, давхар баруун малгайтай"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, сүүлтэй"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, дээвэр малгайтай"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, баруун малгайтай"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, дээрээ цэгтэй"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, аяган малгайтай"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Урт S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, эвэртэй"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, эвэртэй"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, доор таслалтай"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, доор таслалтай"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Шва"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"А, доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"А, дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, дээвэр болон баруун малгайтай"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"А, дээвэр болон зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"А, дээвэр болон дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"А, дээвэр болон долгионтой"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"А, дээвэр болон доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"А, тавган болон баруун малгайтай"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"А, тавган болон зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"А, тавган болон дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"А, тавган болон долгионтой"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"А, тавган болон доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, долгионтой"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, дээвэр болон баруун малгайтай"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, дээвэр болон зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, дээвэр болон дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, дээвэр болон долгионтой"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, дээвэр болон доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, дээвэр болон баруун малгайтай"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, дээвэр болон зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, дээвэр болон дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, дээвэр болон долгионтой"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, дээвэр болон доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, эвэр болон баруун малгайтай"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, эвэр болон зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, эвэр болон дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, эвэр болон долгионтой"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, эвэр болон доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, эвэр болон баруун малгайтай"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, эвэр болон зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, эвэр болон дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, эвэр болон долгионтой"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, эвэр болон доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, зүүн малгайтай"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, доор цэгтэй"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, дээр дэгээтэй"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, долгионтой"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Урвуу анхаарлын тэмдэг"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Зүүн заасан давхар хашилт"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Дунд цэг"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Мөрний дээрх нэг"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Баруун заасан давхар хашилт"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Урвуу асуултын тэмдэг"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Зүүн дан хашилт"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Баруун дан хашилт"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Дан доогуур-9 хашилт"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Зүүн давхар хашилт"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Баруун давхар хашилт"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Чинжаал"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Давхар чинжаал"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Нэг мильд тэмдэг"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Штрих"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Давхар штрих"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Зүүн заасан дан хашилт"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Баруун заасан дан хашилт"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Мөрний дээрх дөрөв"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Мөрний дээрх жижиг латин n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Песо тэмдэг"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Анхааралд"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Баруун сум"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Доош сум"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Хоосон олонлог"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Өсөлт"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Бага буюу тэнцүү"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Их буюу тэнцүү"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Хар од"</string>
+</resources>
diff --git a/java/res/values-mn-rMN/strings-talkback-descriptions.xml b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
index 1c1e6e7f3..d2c583e5a 100644
--- a/java/res/values-mn-rMN/strings-talkback-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст оруулаагүй"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> нь <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-г <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> руу залруулна"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> авто-залруулалт хийдэг"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Үл мэдэгдэх тэмдэгт"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Шифт"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Өөр тэмдэгтүүд"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Шифт"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Газар"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Симбол"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Эмотикон"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Том <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Том I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Том I, дээрээ цэгтэй"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Үл мэдэгдэх симбол"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Үл мэдэгдэх эможи"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Бусад тэмдэгтүүд ашиглах боломжтой"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Бусад тэмдэгтүүдийг хаагдсан"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Бусад санал болголтууд ашиглах боломжтой"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Бусад санал болголтууд хаагдсан"</string>
</resources>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index bfce751af..67e8b4ef0 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> сайжруулах"</string>
<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-pt-rPT/strings-action-keys.xml b/java/res/values-pt-rPT/strings-action-keys.xml
index 1b5921f3e..73a6c498f 100644
--- a/java/res/values-pt-rPT/strings-action-keys.xml
+++ b/java/res/values-pt-rPT/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Ant."</string>
<string name="label_done_key" msgid="7564866296502630852">"Conc."</string>
<string name="label_send_key" msgid="482252074224462163">"Env."</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Pesquisar"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Pausa"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Esp."</string>
</resources>
diff --git a/java/res/values-pt-rPT/strings-letter-descriptions.xml b/java/res/values-pt-rPT/strings-letter-descriptions.xml
new file mode 100644
index 000000000..377b1578f
--- /dev/null
+++ b/java/res/values-pt-rPT/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Indicador ordinal feminino"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Sinal de micro"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Indicador ordinal masculino"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"S curto"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, agudo"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circunflexo"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, til"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diérese"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, anel sobreposto"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligadura"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilha"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, agudo"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circunflexo"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diérese"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, agudo"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circunflexo"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diérese"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, til"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, agudo"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circunflexo"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, til"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diérese"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, traço"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, agudo"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circunflexo"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diérese"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, agudo"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diérese"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, mácron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, agudo"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circunflexo"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, ponto sobreposto"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, traço"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, mácron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, ponto sobreposto"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circunflexo"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, ponto sobreposto"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilha"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circunflexo"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, traço"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, til"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, mácron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I sem ponto"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligadura"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circunflexo"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilha"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, agudo"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilha"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, ponto intermédio"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, traço"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, agudo"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilha"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, precedido de apóstrofe"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, mácron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, duplo agudo"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligadura"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, agudo"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilha"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, agudo"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circunflexo"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilha"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilha"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, traço"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, til"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, mácron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, anel sobreposto"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, duplo agudo"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circunflexo"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circunflexo"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, agudo"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, ponto sobreposto"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"S longo"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, chifre"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, chifre"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, vírgula subposta"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, vírgula subposta"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, ponto subposto"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circunflexo e agudo"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circunflexo e grave"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circunflexo e gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circunflexo e til"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circunflexo e ponto subposto"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve e agudo"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve e grave"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve e gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve e til"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve e ponto subposto"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, ponto subposto"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, til"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circunflexo e agudo"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circunflexo e grave"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circunflexo e gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circunflexo e til"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circunflexo e ponto subposto"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, ponto subposto"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, ponto subposto"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circunflexo e agudo"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circunflexo e grave"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circunflexo e gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circunflexo e til"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circunflexo e ponto subposto"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, chifre e agudo"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, chifre e grave"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, chifre e gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, chifre e til"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, chifre e ponto subposto"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, ponto subposto"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, chifre e agudo"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, chifre e grave"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, chifre e gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, chifre e til"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, chifre e ponto subposto"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, ponto subposto"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, gancho sobreposto"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, til"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Ponto de exclamação invertido"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Aspas angulares duplas esquerdas"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Ponto intermédio"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Um sobrescrito"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Aspas angulares duplas direitas"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Ponto de interrogação invertido"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Aspa simples esquerda"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Aspa simples direita"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Aspa simples subposta"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Aspas duplas esquerdas"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Aspas duplas direitas"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Adaga"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Adaga dupla"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Sinal de permilagem"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Plica"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Plica dupla"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Aspa angular simples esquerda"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Aspa angular simples direita"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Quatro sobrescrito"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"N latino minúsculo sobrescrito"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Sinal de peso"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Ao cuidado de"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Seta para a direita"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Seta para baixo"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Conjunto vazio"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Delta"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Menor do que ou igual a"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Maior do que ou igual a"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Estrela negra"</string>
+</resources>
diff --git a/java/res/values-pt-rPT/strings-talkback-descriptions.xml b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
index 91d187ec9..30bbd3fb3 100644
--- a/java/res/values-pt-rPT/strings-talkback-descriptions.xml
+++ b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nenhum texto digitado"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> para <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa a correção automática"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Caráter desconhecido"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mais símbolos"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Locais"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Símbolos"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Ícones expressivos"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"<xliff:g id="LOWER_LETTER">%s</xliff:g> maiúsculo"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"I maiúsculo"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"I maiúsculo, ponto sobreposto"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbolo desconhecido"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconhecido"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Os carateres alternativos estão disponíveis"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Os carateres alternativos são ignorados"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"As sugestões alternativas estão disponíveis"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"As sugestões alternativas são ignoradas"</string>
</resources>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index 7db5ccf6c..212958800 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Melhorar <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-ro/strings-action-keys.xml b/java/res/values-ro/strings-action-keys.xml
index bee4b12ea..1a1541529 100644
--- a/java/res/values-ro/strings-action-keys.xml
+++ b/java/res/values-ro/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Înap."</string>
<string name="label_done_key" msgid="7564866296502630852">"Gata"</string>
<string name="label_send_key" msgid="482252074224462163">"Trim."</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Căutați"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Pauză"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Așt."</string>
</resources>
diff --git a/java/res/values-ro/strings-letter-descriptions.xml b/java/res/values-ro/strings-letter-descriptions.xml
new file mode 100644
index 000000000..46cbd1adb
--- /dev/null
+++ b/java/res/values-ro/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Indicator de ordine feminin"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Semnul miu"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Indicator de ordine masculin"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"S ascuțit"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, accent grav"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, accent ascuțit"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, accent circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tildă"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, semn diacritic"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, cerc deasupra"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligatură"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, sedilă"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, accent grav"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, accent ascuțit"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, accent circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, semn diacritic"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, accent grav"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, accent ascuțit"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, accent circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, semn diacritic"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tildă"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, accent grav"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, accent ascuțit"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, accent circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tildă"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, semn diacritic"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, tăiat cu linie"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, accent grav"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, accent ascuțit"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, accent circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, semn diacritic"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, accent ascuțit"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, semn diacritic"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, căciulă"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, accent ascuțit"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, accent circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, punct deasupra"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, tăiat cu linie"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, căciulă"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, punct deasupra"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, accent circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, căciulă"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, punct deasupra"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, sedilă"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, accent circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, tăiat cu linie"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tildă"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, căciulă"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I fără punct"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligatură"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, accent circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, sedilă"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, accent ascuțit"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, sedilă"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, punct la mijloc"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, tăiat cu linie"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, accent ascuțit"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, sedilă"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, precedat de apostrof"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, căciulă"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, accent ascuțit dublu"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligatură"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, accent ascuțit"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, sedilă"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, accent ascuțit"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, accent circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, sedilă"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, sedilă"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, tăiat cu linie"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tildă"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, căciulă"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, cerc deasupra"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, accent ascuțit dublu"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, accent circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, accent circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, accent ascuțit"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, punct deasupra"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"S lung"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, corn"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, corn"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, virgulă dedesubt"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, virgulă dedesubt"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, accent circumflex și ascuțit"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, accent circumflex și grav"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, accent circumflex și cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, accent circumflex și tildă"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, accent circumflex și punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, căciulă și accent ascuțit"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, căciulă și accent grav"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, căciulă și cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, căciulă și tildă"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, căciulă și punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tildă"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, accent circumflex și ascuțit"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, accent circumflex și grav"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, accent circumflex și cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, accent circumflex și tildă"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, accent circumflex și punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, punct dedesubt"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, punct dedesubt"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, accent circumflex și ascuțit"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, accent circumflex și grav"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, accent circumflex și cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, accent circumflex și tildă"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, accent circumflex și punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, corn și accent ascuțit"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, corn și accent grav"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, corn și cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, corn și tildă"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, corn și punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, corn și accent ascuțit"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, corn și accent grav"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, corn și cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, corn și tildă"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, corn și punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, accent grav"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, punct dedesubt"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, cârlig deasupra"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tildă"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Semnul exclamării inversat"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Ghilimele duble la stânga"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Punct la mijloc"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Unu exponent"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Ghilimele duble la dreapta"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Semnul întrebării inversat"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Ghilimele simple la stânga"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Ghilimele simple la dreapta"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Ghilimele simple jos"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Ghilimele duble la stânga"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Ghilimele duble la dreapta"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Cruce"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Cruce dublă"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Semnul la mie"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prim"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Prim dublu"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Ghilimele simple la stânga"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Ghilimele simple la dreapta"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Patru exponent"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"n latin exponent"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Semnul peso"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"În atenția"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Săgeată la dreapta"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Săgeată în jos"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Zero barat"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Mai mic sau egal cu"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Mai mare sau egal cu"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Stea neagră"</string>
+</resources>
diff --git a/java/res/values-ro/strings-talkback-descriptions.xml b/java/res/values-ro/strings-talkback-descriptions.xml
index 6e5db4d02..52885c84d 100644
--- a/java/res/values-ro/strings-talkback-descriptions.xml
+++ b/java/res/values-ro/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nu a fost introdus text"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corectează <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> cu <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> efectuează corectare automată"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Caracter necunoscut"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mai multe simboluri"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Locații"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Simboluri"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticonuri"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"<xliff:g id="LOWER_LETTER">%s</xliff:g> mare"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"I mare"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"I mare, punct deasupra"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Simbol necunoscut"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji necunoscut"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Sunt disponibile caracterele alternative"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"S-au închis caracterele alternative"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Sunt disponibile sugestiile alternative"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"S-au închis sugestiile alternative"</string>
</resources>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 628b1a2e1..8e1bb1cb0 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Îmbunătățiți <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-sk/strings-action-keys.xml b/java/res/values-sk/strings-action-keys.xml
index ffc5be2d6..84e1c3172 100644
--- a/java/res/values-sk/strings-action-keys.xml
+++ b/java/res/values-sk/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Pred."</string>
<string name="label_done_key" msgid="7564866296502630852">"OK"</string>
<string name="label_send_key" msgid="482252074224462163">"Posl."</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Hľadať"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Pauza"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Čakať"</string>
</resources>
diff --git a/java/res/values-sk/strings-letter-descriptions.xml b/java/res/values-sk/strings-letter-descriptions.xml
new file mode 100644
index 000000000..e6bba4a8a
--- /dev/null
+++ b/java/res/values-sk/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Indikátor radovej číslovky ženského rodu"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Znak mikro"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Indikátor radovej číslovky mužského rodu"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Ostré S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A s opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A s dĺžňom"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A s vokáňom"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A s vlnovkou"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A s dvoma bodkami"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A s krúžkom"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"Ligatúra písmen A, E"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E s opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E s dĺžňom"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E s vokáňom"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E s dvoma bodkami"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I s opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I s dĺžňom"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I s vokáňom"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I s dvoma bodkami"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N s vlnovkou"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O s opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O s dĺžňom"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O s vokáňom"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O s vlnovkou"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O s dvoma bodkami"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"Prečiarknuté O"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U s opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U s dĺžňom"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U s vokáňom"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U s dvoma bodkami"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y s dĺžňom"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y s dvoma bodkami"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A s vodorovnou čiarkou"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A s oblúčikom"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A s nožičkou"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C s dĺžňom"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C s vokáňom"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C s bodkou nad písmenom"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C s mäkčeňom"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D s mäkčeňom"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"Prečiarknuté D"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E s vodorovnou čiarkou"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E s oblúčikom"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E s bodkou nad písmenom"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E s nožičkou"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E s mäkčeňom"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G s vokáňom"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G s oblúčikom"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G s bodkou nad písmenom"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H s vokáňom"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"Prečiarknuté H"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I s vlnovkou"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I s vodorovnou čiarkou"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I s oblúčikom"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I s nožičkou"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I bez bodky"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"Ligatúra písmen I, J"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J s vokáňom"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L s dĺžňom"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L s mäkčeňom"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L s bodkou uprostred"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"Prečiarknuté L"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N s dĺžňom"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N s mäkčeňom"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N s apostrofom na začiatku"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O s vodorovnou čiarkou"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O s oblúčikom"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O s dvoma dĺžňami"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"Ligatúra písmen O, E"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R s dĺžňom"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R s mäkčeňom"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S s dĺžňom"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S s vokáňom"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S s mäkčeňom"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T s háčikom pod písmenom"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T s mäkčeňom"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"Prečiarknuté T"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U s vlnovkou"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U s vodorovnou čiarkou"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U s oblúčikom"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U s krúžkom"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U s dvoma dĺžňami"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U s nožičkou"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W s vokáňom"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y s vokáňom"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z s dĺžňom"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z s bokou nad písmenom"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z s mäkčeňom"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Dlhé S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O s rohom"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U s rohom"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S s čiarkou pod písmenom"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T s čiarkou pod písmenom"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A s bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A s háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A s vokáňom aj dĺžňom"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A s vokáňom aj opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A s vokáňom aj háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A s vokáňom aj vlnovkou"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A s vokáňom aj bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A s oblúčikom aj dĺžňom"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A s oblúčikom aj opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A s oblúčikom aj háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A s oblúčikom aj vlnovkou"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A s oblúčikom aj bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E s bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E s háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E s vlnovkou"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E s vokáňom aj dĺžňom"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E s vokáňom aj opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E s vokáňom aj háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E s vokáňom aj vlnovkou"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E s vokáňom aj bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I s háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I s bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O s bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O s háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O s vokáňom aj dĺžňom"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O s vokáňom aj opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O s vokáňom aj háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O s vokáňom aj vlnovkou"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O s vokáňom aj bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O s rohom aj dĺžňom"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O s rohom aj opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O s rohom aj háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O s rohom aj vlnovkou"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O s rohom aj bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U s bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U s háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U s rohom aj dĺžňom"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U s rohom aj opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U s rohom aj háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U s rohom aj vlnovkou"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U s rohom aj bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y s opačným dĺžňom"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y s bodkou pod písmenom"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y s háčikom nad písmenom"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y s vlnovkou"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Obrátený výkričník"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Lomené ľavé dvojité úvodzovky"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Bodka uprostred"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Jednotka v hornom indexe"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Lomené pravé dvojité úvodzovky"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Obrátený otáznik"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Ľavé jednoduché úvodzovky"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Pravé jednoduché úvodzovky"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Dolné jednoduché úvodzovky"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Ľavé dvojité úvodzovky"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Pravé dvojité úvodzovky"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Krížik"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Dvojitý krížik"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Znak promile"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Indexová čiarka"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Dvojitá indexová čiarka"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Jednoduché ľavé úvodzovky"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Jednoduché pravé úvodzovky"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Štvorka v hornom indexe"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Latinka – malé písmeno n v hornom indexe"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Znak pesa"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Malé písmená c a o oddelené lomkou"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Šípka vpravo"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Šípka nadol"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Prázdna množina"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Prírastok"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Menšie alebo rovné ako"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Väčšie alebo rovné ako"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Čierna hviezda"</string>
+</resources>
diff --git a/java/res/values-sk/strings-talkback-descriptions.xml b/java/res/values-sk/strings-talkback-descriptions.xml
index 9fde012b3..2cd094ee1 100644
--- a/java/res/values-sk/strings-talkback-descriptions.xml
+++ b/java/res/values-sk/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nie je zadaný žiadny text"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> opravíte slovo <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> spustíte automatické opravy"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Neznámy znak"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Ďalšie symboly"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Miesta"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Symboly"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emotikony"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Veľké písmeno – <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Veľké I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Veľké I s bodkou nad písmenom"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Neznámy symbol"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Neznámy symbol Emodži"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatívne znaky sú dostupné"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatívne znaky boli zrušené"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatívne návrhy sú dostupné"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Alternatívne návrhy boli zrušené"</string>
</resources>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index f439bd0ff..023193bf6 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Zlepšiť aplikáciu <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-uk/strings-action-keys.xml b/java/res/values-uk/strings-action-keys.xml
index 8b71498c1..206fcf0da 100644
--- a/java/res/values-uk/strings-action-keys.xml
+++ b/java/res/values-uk/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Назад"</string>
<string name="label_done_key" msgid="7564866296502630852">"ОК"</string>
<string name="label_send_key" msgid="482252074224462163">"Слати"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Пошук"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Пауза"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Ждати"</string>
</resources>
diff --git a/java/res/values-uk/strings-letter-descriptions.xml b/java/res/values-uk/strings-letter-descriptions.xml
new file mode 100644
index 000000000..1199771a4
--- /dev/null
+++ b/java/res/values-uk/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Індикатор порядкового числівника жіночого роду"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Знак мікро"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Індикатор порядкового числівника чоловічого роду"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Есцет"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, гравіс"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, акут"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, циркумфлекс"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, тильда"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, трема"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, кільце вгорі"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, лігатура"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, седиль"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, гравіс"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, акут"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, циркумфлекс"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, трема"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, гравіс"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, акут"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, циркумфлекс"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, трема"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Ет"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, тильда"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, гравіс"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, акут"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, циркумфлекс"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, тильда"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, трема"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, риска"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, гравіс"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, акут"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, циркумфлекс"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, трема"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, акут"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Торн"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, трема"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, макрон"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, бреве"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, хвостик"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, акут"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, циркумфлекс"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, крапка вгорі"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, гачек"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, гачек"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, риска"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, макрон"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, бреве"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, крапка вгорі"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, хвостик"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, гачек"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, циркумфлекс"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, бреве"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, крапка вгорі"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, седиль"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, циркумфлекс"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, риска"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, тильда"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, макрон"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, бреве"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, хвостик"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I без крапки"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, лігатура"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, циркумфлекс"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, седиль"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Кра"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, акут"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, седіль"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, гачек"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, інтерпункт"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, риска"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, акут"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, седиль"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, гачек"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, після апострофа"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Енг"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, макрон"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, бреве"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, подвійний акут"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, лігатура"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, акут"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, седиль"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, гачек"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, акут"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, циркумфлекс"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, седиль"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, гачек"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, седиль"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, гачек"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, риска"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, тильда"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, макрон"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, бреве"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, кільце вгорі"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, подвійний акут"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, хвостик"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, циркумфлекс"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, циркумфлекс"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, акут"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, крапка вгорі"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, гачек"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Довгий звук S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, ріг"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, ріг"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, кома внизу"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, кома внизу"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Шва"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, крапка внизу"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, гачок угорі"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, циркумфлекс і акут"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, циркумфлекс і гравіс"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, циркумфлекс і гачок угорі"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, циркумфлекс і тильда"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, циркумфлекс і крапка внизу"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, бреве й акут"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, бреве та гравіс"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, бреве та гачок угорі"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, бреве та тильда"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, бреве та крапка внизу"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, крапка внизу"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, гачок угорі"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, тильда"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, циркумфлекс і акут"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, циркумфлекс і гравіс"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, циркумфлекс і гачок угорі"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, циркумфлекс і тильда"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, циркумфлекс і крапка внизу"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, гачок угорі"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, крапка внизу"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, крапка внизу"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, гачок угорі"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, циркумфлекс і акут"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, циркумфлекс і гравіс"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, циркумфлекс і гачок угорі"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, циркумфлекс і тильда"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, циркумфлекс і крапка внизу"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, ріг і акут"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, ріг і гравіс"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, ріг і гачок угорі"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, ріг і тильда"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, ріг і крапка внизу"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, крапка внизу"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, гачок угорі"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, ріг і акут"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, ріг і гравіс"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, ріг і гачок угорі"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, ріг і тильда"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, ріг і крапка внизу"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, гравіс"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, крапка внизу"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, гачок угорі"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, тильда"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Перевернутий знак оклику"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Ліві подвійні кутові лапки"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Інтерпункт"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Верхній індекс, один"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Праві подвійні кутові лапки"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Перевернутий знак запитання"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Ліві одинарні лапки"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Праві одинарні лапки"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Ліві нижні одинарні лапки"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Ліві подвійні лапки"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Праві подвійні лапки"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Хрестик"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Подвійний хрестик"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Знак проміле"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Штрих"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Подвійний штрих"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Ліві одинарні кутові лапки"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Праві одинарні кутові лапки"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Верхній індекс, чотири"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Верхній індекс, мала латинська літера n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Знак песо"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Через"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Стрілка праворуч"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Стрілка вниз"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Порожня множина"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Крок"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Менше або дорівнює"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Більше або дорівнює"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Чорна зірка"</string>
+</resources>
diff --git a/java/res/values-uk/strings-talkback-descriptions.xml b/java/res/values-uk/strings-talkback-descriptions.xml
index e4df115ae..80e471052 100644
--- a/java/res/values-uk/strings-talkback-descriptions.xml
+++ b/java/res/values-uk/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст не введено"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> виправляє слово \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" на \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\""</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> автоматично виправляє"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Невідомий символ"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Більше символів"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Клавіша Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Місця"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Символи"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Смайли"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Велика <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Велика I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Велика I, крапка вгорі"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Невідомий символ"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Невідомий смайл Emoji"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Доступні альтернативні символи"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Альтернативні символи відхилено"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Доступні альтернативні пропозиції"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Альтернативні пропозиції відхилено"</string>
</resources>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index 1d146a511..a7fcfd440 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Покращувати додаток <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-action-keys.xml b/java/res/values-vi/strings-action-keys.xml
index 16b7c959e..3c4060883 100644
--- a/java/res/values-vi/strings-action-keys.xml
+++ b/java/res/values-vi/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Trước"</string>
<string name="label_done_key" msgid="7564866296502630852">"Xong"</string>
<string name="label_send_key" msgid="482252074224462163">"Gửi"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Tìm kiếm"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Tdừng"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Đợi"</string>
</resources>
diff --git a/java/res/values-vi/strings-letter-descriptions.xml b/java/res/values-vi/strings-letter-descriptions.xml
new file mode 100644
index 000000000..74f199f08
--- /dev/null
+++ b/java/res/values-vi/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Chỉ báo thứ tự giống cái"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Ký hiệu micrô"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Chỉ báo thứ tự giống đực"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, dấu huyền"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, dấu sắc"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, dấu mũ"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, dấu ngã"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, dấu tách đôi"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, dấu nhẫn phía trên"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, dấu gạch nối"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, dấu huyền"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, dấu sắc"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, dấu mũ"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, dấu tách đôi"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, dấu huyền"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, dấu sắc"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, dấu mũ"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, dấu tách đôi"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, dấu ngã"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, dấu huyền"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, dấu sắc"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, dấu mũ"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, dấu ngã"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, dấu tách đôi"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, nét gạch"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, dấu huyền"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, dấu sắc"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, dấu mũ"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, dấu tách đôi"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, dấu sắc"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Dấu móc"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, dấu tách đôi"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, sự làm dấu"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, dấu ngân"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, một cái đuôi nhỏ"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, dấu sắc"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, dấu mũ"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, dấu chấm phía trên"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, nét gạch"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, sự làm dấu"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, dấu ngân"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, dấu chấm phía trên"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, một cái đuôi nhỏ"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, dấu mũ"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, dấu ngân"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, dấu chấm phía trên"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, dấu mũ"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, nét gạch"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, dấu ngã"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, sự làm dấu"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, dấu ngân"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, một cái đuôi nhỏ"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"I không dấu chấm"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, dấu gạch nối"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, dấu mũ"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, dấu sắc"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, chấm ở giữa"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, nét gạch"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, dấu sắc"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, theo sau dấu móc lửng"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, sự làm dấu"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, dấu ngân"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, hai dấu sắc"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, dấu gạch nối"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, dấu sắc"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, dấu sắc"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, dấu mũ"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, dấu móc dưới"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, nét gạch"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, dấu ngã"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, sự làm dấu"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, dấu ngân"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, dấu nhẫn ở trên"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, hai dấu sắc"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, một cái đuôi nhỏ"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, dấu mũ"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, dấu mũ"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, dấu sắc"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, dấu chấm phía trên"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, dấu mũ ngược"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"S dài"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, dấu móc"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, dấu móc"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, dấu phẩy phía dưới"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, dấu phẩy phía dưới"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Âm Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, dấu móc phía trên"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, dấu mũ và dấu sắc"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, dấu mũ và dấu huyền"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, dấu mũ và móc phía trên"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, dấu mũ và dấu ngã"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, dấu mũ và dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, dấu ngân và dấu sắc"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, dấu ngân và dấu huyền"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, dấu ngân và móc phía trên"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, dấu ngân và dấu ngã"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, dấu ngân và dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, móc phía trên"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, dấu ngã"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, dấu mũ và dấu sắc"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, dấu mũ và dấu huyền"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, dấu mũ và móc phía trên"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, dấu mũ và dấu ngã"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, dấu mũ và dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, móc phía trên"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, móc phía trên"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, dấu mũ và dấu sắc"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, dấu mũ và dấu huyền"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, dấu mũ và móc phía trên"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, dấu mũ và dấu ngã"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, dấu mũ và dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, dấu móc và dấu sắc"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, dấu móc và dấu huyền"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, dấu móc và móc phía trên"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, dấu móc và dấu ngã"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, dấu móc và dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, móc phía trên"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, dấu móc và dấu sắc"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, dấu móc và dấu huyền"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, dấu móc và móc phía trên"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, dấu móc và dấu ngã"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, dấu móc và dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, dấu huyền"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, dấu chấm phía dưới"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, móc phía trên"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, dấu ngã"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Dấu cảm thán đảo ngược"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Dấu ngoặc kép mở"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Dấu chấm ở giữa"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Chỉ số trên một"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Dấu ngoặc kép đóng"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Dấu hỏi đảo ngược"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Dấu ngoặc đơn mở"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Dấu ngoặc đơn đóng"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Dấu trích dẫn đơn"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Dấu ngoặc kép mở"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Dấu ngoặc kép đóng"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dấu chữ thập"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Dấu chữ thập kép"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Dấu cho mỗi ngàn"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Dấu phẩy"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Hai phẩy"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Dấu ngoặc đơn mở"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Dấu ngoặc đơn đóng"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Chỉ số trên bốn"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"Chỉ số trên của n thường"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Ký hiệu đồng Pêsô"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Dấu phần trăm"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Mũi tên về phía phải"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Mũi tên xuống dưới"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Tập rỗng"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Tăng dần"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Nhỏ hơn hoặc bằng"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Lớn hơn hoặc bằng"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Sao đen"</string>
+</resources>
diff --git a/java/res/values-vi/strings-talkback-descriptions.xml b/java/res/values-vi/strings-talkback-descriptions.xml
index ad63fa52f..659b1d36f 100644
--- a/java/res/values-vi/strings-talkback-descriptions.xml
+++ b/java/res/values-vi/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Không có ký tự nào được nhập"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> sửa <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> thành <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> tự động sửa"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Ký tự không xác định"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Biểu tượng khác"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Địa điểm"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Biểu tượng"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Biểu tượng cảm xúc"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"<xliff:g id="LOWER_LETTER">%s</xliff:g> hoa"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"I hoa"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"I hoa, dấu chấm phía trên"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Ký hiệu không xác định"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Biểu tượng cảm xúc không xác định"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Có ký tự thay thế"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Ký tự thay thế đã bị loại bỏ"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Có đề xuất thay thế"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Đề xuất thay thế đã bị loại bỏ"</string>
</resources>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 100175f63..d95ff61f7 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Cải thiện <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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-zu/strings-action-keys.xml b/java/res/values-zu/strings-action-keys.xml
index 5d60a6cca..fe36678e8 100644
--- a/java/res/values-zu/strings-action-keys.xml
+++ b/java/res/values-zu/strings-action-keys.xml
@@ -25,8 +25,7 @@
<string name="label_previous_key" msgid="1421141755779895275">"Okwedlule"</string>
<string name="label_done_key" msgid="7564866296502630852">"Kwenziwe"</string>
<string name="label_send_key" msgid="482252074224462163">"Thumela"</string>
- <!-- no translation found for label_search_key (7965186050435796642) -->
- <skip />
+ <string name="label_search_key" msgid="7965186050435796642">"Sesha"</string>
<string name="label_pause_key" msgid="2225922926459730642">"Misa isikhashana"</string>
<string name="label_wait_key" msgid="5891247853595466039">"Linda"</string>
</resources>
diff --git a/java/res/values-zu/strings-letter-descriptions.xml b/java/res/values-zu/strings-letter-descriptions.xml
new file mode 100644
index 000000000..54eb6e5ff
--- /dev/null
+++ b/java/res/values-zu/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<!--
+ These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+ These symbols (spoken_symbol_*) are also unsupported by TTS.
+ TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Isikhombi sobesifazane"</string>
+ <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Uphawu olukhulu"</string>
+ <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Isikhombi sowesilisa"</string>
+ <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+ <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+ <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, acute"</string>
+ <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+ <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+ <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diaeresis"</string>
+ <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, ring ngenhla"</string>
+ <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligature"</string>
+ <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilla"</string>
+ <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+ <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, acute"</string>
+ <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+ <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diaeresis"</string>
+ <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+ <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, acute"</string>
+ <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+ <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diaeresis"</string>
+ <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+ <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+ <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+ <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, acute"</string>
+ <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+ <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+ <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diaeresis"</string>
+ <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, stroke"</string>
+ <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+ <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, acute"</string>
+ <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+ <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diaeresis"</string>
+ <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, acute"</string>
+ <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+ <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diaeresis"</string>
+ <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+ <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+ <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+ <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, acute"</string>
+ <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+ <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, icashazi ngenhla"</string>
+ <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+ <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+ <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, stroke"</string>
+ <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+ <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+ <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, icashazi ngenhla"</string>
+ <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+ <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+ <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+ <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+ <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, icashazi ngenhla"</string>
+ <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilla"</string>
+ <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+ <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, stroke"</string>
+ <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+ <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+ <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+ <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+ <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Dotless I"</string>
+ <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligature"</string>
+ <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+ <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilla"</string>
+ <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+ <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, acute"</string>
+ <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilla"</string>
+ <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+ <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, icashazi eliphakathi"</string>
+ <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, stroke"</string>
+ <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, acute"</string>
+ <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilla"</string>
+ <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+ <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, kulandele i-apostrophe"</string>
+ <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+ <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+ <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+ <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, double acute"</string>
+ <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligature"</string>
+ <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, acute"</string>
+ <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilla"</string>
+ <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+ <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, acute"</string>
+ <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+ <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilla"</string>
+ <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+ <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilla"</string>
+ <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+ <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, stroke"</string>
+ <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+ <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+ <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+ <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, indingilizi ngenhla"</string>
+ <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, double acute"</string>
+ <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+ <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+ <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+ <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, acute"</string>
+ <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, icashazi ngenhla"</string>
+ <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+ <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Long S"</string>
+ <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horn"</string>
+ <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horn"</string>
+ <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, ukhefana ngezansi"</string>
+ <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, ukhefana ngezansi"</string>
+ <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+ <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, icashazi ngenhla"</string>
+ <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, ihhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex ne-acute"</string>
+ <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex ne-grave"</string>
+ <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex nehhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex ne-tilde"</string>
+ <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex necashazi ngenhla"</string>
+ <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve ne-acute"</string>
+ <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve ne-grave"</string>
+ <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve nehhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve ne-tilde"</string>
+ <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve necashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, icashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, ihhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+ <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex ne-acute"</string>
+ <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex ne-grave"</string>
+ <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex nehhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex ne-tilde"</string>
+ <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex necashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, ihhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, icashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, icashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, ihhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex ne-acute"</string>
+ <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex ne-grave"</string>
+ <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex nehhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex ne-tilde"</string>
+ <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex necashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horn ne-acute"</string>
+ <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horn ne-grave"</string>
+ <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horn nehhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horn ne-tilde"</string>
+ <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horn necashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, icashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, uhhuku ngehla"</string>
+ <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horn ne-acute"</string>
+ <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horn ne-grave"</string>
+ <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horn nehhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horn ne-tilde"</string>
+ <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horn necashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+ <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, icashazi ngezansi"</string>
+ <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, ihhuku ngenhla"</string>
+ <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+ <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Umbabazi okokushiwo"</string>
+ <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Umaki wokukopisha onama-engeli amabili okhombe ngakwesokunxele"</string>
+ <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Icashazi eliphakathi"</string>
+ <string name="spoken_symbol_00B9" msgid="8026257165451461231">"I-Superscript one"</string>
+ <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Umaki wokukopisha onama-engeli amabili okhombe ngakwesokudla"</string>
+ <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Umbuzi okokushiwo"</string>
+ <string name="spoken_symbol_2018" msgid="4886476295598930225">"Umaki wokukopisha oyedwa ongakwesokunxele"</string>
+ <string name="spoken_symbol_2019" msgid="8892530161598134083">"Umaki wokukopisha oyedwa ongakwesokudla"</string>
+ <string name="spoken_symbol_201A" msgid="2072987157683446644">"Umaki wokukopisha owodwa ophansi 9"</string>
+ <string name="spoken_symbol_201C" msgid="4588048378803665427">"Umaki wokukopisha ongakubili ongakwekunxele"</string>
+ <string name="spoken_symbol_201D" msgid="1642776849495925895">"Umaki wokukopisha ongakubili ongakwekudla"</string>
+ <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger"</string>
+ <string name="spoken_symbol_2021" msgid="5081396468559426475">"Double dagger"</string>
+ <string name="spoken_symbol_2030" msgid="9068837172419431755">"Per mille sign"</string>
+ <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+ <string name="spoken_symbol_2033" msgid="1251022699713475088">"Double prime"</string>
+ <string name="spoken_symbol_2039" msgid="6989616457213775957">"Umaki wokukopisha oyedwa ngokhombe ngakwesokunxele"</string>
+ <string name="spoken_symbol_203A" msgid="31245095449823701">"Umaki wokukopisha oyedwa ngokhombe ngakwesokudla"</string>
+ <string name="spoken_symbol_2074" msgid="2116717717093306894">"Superscript four"</string>
+ <string name="spoken_symbol_207F" msgid="1706731172134246659">"I-Superscript latin uhlambu oluncane u-n"</string>
+ <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Uphawu lwe-Peso"</string>
+ <string name="spoken_symbol_2105" msgid="7289404939366976829">"Ukunakekela ko"</string>
+ <string name="spoken_symbol_2192" msgid="827804523596125414">"Umcibisholo wangakwesokudla"</string>
+ <string name="spoken_symbol_2193" msgid="2659541693445985717">"Umcibisholo oyaphansi"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"Isethi engenalutho"</string>
+ <string name="spoken_symbol_2206" msgid="4856786565708380687">"Nciphisa"</string>
+ <string name="spoken_symbol_2264" msgid="5092061257745123554">"Okuncane noma okulinganayo"</string>
+ <string name="spoken_symbol_2265" msgid="1907966479878036357">"Okukhulu noma okulinganayo"</string>
+ <string name="spoken_symbol_2605" msgid="5202920479405857753">"Inkanyezi emnyama"</string>
+</resources>
diff --git a/java/res/values-zu/strings-talkback-descriptions.xml b/java/res/values-zu/strings-talkback-descriptions.xml
index 9f344d8bf..6d3de70a5 100644
--- a/java/res/values-zu/strings-talkback-descriptions.xml
+++ b/java/res/values-zu/strings-talkback-descriptions.xml
@@ -25,8 +25,7 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Awukho umbhalo ofakiwe"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> ilungisa i-<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kube yi-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> yenza ukulungisa okuzenzakalelayo"</string>
- <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
- <skip />
+ <string name="spoken_description_unknown" msgid="5139930082759824442">"Uhlamvu olungaziwa"</string>
<string name="spoken_description_shift" msgid="7209798151676638728">"U-Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Amasimbuli amaningi"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"U-Shift"</string>
@@ -72,22 +71,13 @@
<string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Izindawo"</string>
<string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Amasimbuli"</string>
<string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Izithombe-mzwelo"</string>
- <!-- no translation found for spoken_description_upper_case (4904835255229433916) -->
- <skip />
- <!-- no translation found for spoken_letter_0049 (4743162182646977944) -->
- <skip />
- <!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
- <skip />
- <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
- <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 />
+ <string name="spoken_description_upper_case" msgid="4904835255229433916">"Ufeleba <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+ <string name="spoken_letter_0049" msgid="4743162182646977944">"Ufeleba I"</string>
+ <string name="spoken_letter_0130" msgid="4766619646231612274">"Ufeleba I, icashazi ngenhla"</string>
+ <string name="spoken_symbol_unknown" msgid="717298227061173706">"Uphawu olungaziwa"</string>
+ <string name="spoken_emoji_unknown" msgid="5981009928135394306">"I-emoji engaziwa"</string>
+ <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Ezinye izinhlamvu ziyatholakala"</string>
+ <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Ezinye izinhlamvu ziyalahlwa"</string>
+ <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Ezinye iziphakamiso ziyatholakala"</string>
+ <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Ezinye iziphakamiso ziyalahlwa"</string>
</resources>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 8e3942f60..c72352dd9 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -46,8 +46,7 @@
<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="enable_metrics_logging" msgid="5506372337118822837">"Thuthukisa i-<xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<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/res/xml-sw600dp/rows_sinhala.xml b/java/res/xml-sw600dp/rows_sinhala.xml
new file mode 100644
index 000000000..23c3f3aab
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_sinhala.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/key_styles_common" />
+ <Row
+ latin:keyWidth="8.182%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_sinhala1" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ <Row
+ latin:keyWidth="8.182%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_sinhala2" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ <Row
+ latin:keyWidth="8.182%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_sinhala3" />
+ <include
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
+ </Row>
+ <include
+ latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml/kbd_sinhala.xml b/java/res/xml/kbd_sinhala.xml
new file mode 100644
index 000000000..6c0f4bc05
--- /dev/null
+++ b/java/res/xml/kbd_sinhala.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<Keyboard
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/rows_sinhala" />
+</Keyboard>
diff --git a/java/res/xml/keyboard_layout_set_sinhala.xml b/java/res/xml/keyboard_layout_set_sinhala.xml
new file mode 100644
index 000000000..8e6e619d2
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_sinhala.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<KeyboardLayoutSet
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Element
+ latin:elementName="alphabet"
+ latin:elementKeyboard="@xml/kbd_sinhala"
+ latin:enableProximityCharsCorrection="true" />
+ <Element
+ latin:elementName="alphabetAutomaticShifted"
+ latin:elementKeyboard="@xml/kbd_sinhala"
+ latin:enableProximityCharsCorrection="true" />
+ <!-- On these shifted alphabet layouts the proximity characters correction should be disabled
+ because the letters on these layouts aren't the ones in different case of the above
+ unshifted layouts. -->
+ <Element
+ latin:elementName="alphabetManualShifted"
+ latin:elementKeyboard="@xml/kbd_sinhala" />
+ <Element
+ latin:elementName="alphabetShiftLocked"
+ latin:elementKeyboard="@xml/kbd_sinhala" />
+ <Element
+ latin:elementName="alphabetShiftLockShifted"
+ latin:elementKeyboard="@xml/kbd_sinhala" />
+ <Element
+ latin:elementName="symbols"
+ latin:elementKeyboard="@xml/kbd_symbols" />
+ <Element
+ latin:elementName="symbolsShifted"
+ latin:elementKeyboard="@xml/kbd_symbols_shift" />
+ <Element
+ latin:elementName="phone"
+ latin:elementKeyboard="@xml/kbd_phone" />
+ <Element
+ latin:elementName="phoneSymbols"
+ latin:elementKeyboard="@xml/kbd_phone_symbols" />
+ <Element
+ latin:elementName="number"
+ latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 777a13d42..68dce8abc 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -81,6 +81,7 @@
pt_PT: Portuguese (Portugal)/qwerty
ro: Romanian/qwerty
ru: Russian/east_slavic
+ (si_LK: Sinhala (Sri Lanka)/sinhala) # This is a preliminary keyboard layout.
sk: Slovak/qwerty
sl: Slovenian/qwerty
sr: Serbian/south_slavic
@@ -332,7 +333,6 @@
/>
<!-- TODO: This hindi_compact keyboard is a preliminary layout.
This isn't based on the final specification. -->
- <!--
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic_compact"
android:subtypeId="0xe49c89a1"
@@ -341,7 +341,6 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=hindi_compact,EmojiCapable"
android:isAsciiCapable="false"
/>
- -->
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0x35b7526a"
@@ -482,7 +481,6 @@
/>
<!-- TODO: This marathi keyboard is a preliminary layout.
This isn't based on the final specification. -->
- <!--
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0x747b9f03"
@@ -491,7 +489,6 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=marathi,EmojiCapable"
android:isAsciiCapable="false"
/>
- -->
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0x84c87c61"
@@ -502,7 +499,6 @@
/>
<!-- TODO: This Myanmar keyboard is a preliminary layout.
This isn't based on the final specification. -->
- <!--
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0xea266ea4"
@@ -511,7 +507,6 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=myanmar,EmojiCapable,CombiningRules=MyanmarReordering"
android:isAsciiCapable="false"
/>
- -->
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0x3f12ee14"
@@ -592,6 +587,16 @@
android:imeSubtypeExtraValue="SupportTouchPositionCorrection,EmojiCapable"
android:isAsciiCapable="false"
/>
+ <!-- TODO: This sinhala keyboard is a preliminary layout.
+ This isn't based on the final specification. -->
+ <subtype android:icon="@drawable/ic_ime_switcher_dark"
+ android:label="@string/subtype_generic"
+ android:subtypeId="0x5c6b3bde"
+ android:imeSubtypeLocale="si_LK"
+ android:imeSubtypeMode="keyboard"
+ android:imeSubtypeExtraValue="KeyboardLayoutSet=sinhala,EmojiCapable"
+ android:isAsciiCapable="false"
+ />
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0x8e94d413"
diff --git a/java/res/xml/rowkeys_sinhala1.xml b/java/res/xml/rowkeys_sinhala1.xml
new file mode 100644
index 000000000..f258ae29e
--- /dev/null
+++ b/java/res/xml/rowkeys_sinhala1.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0DD6: "ූ" SINHALA VOWEL SIGN DIGA PAA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD6;"
+ latin:additionalMoreKeys="1" />
+ <!-- U+0D8B: "උ" SINHALA LETTER UYANNA -->
+ <Key
+ latin:keySpec="&#x0D8B;"
+ latin:additionalMoreKeys="2" />
+ <!-- U+0DD1: "ෑ" SINHALA VOWEL SIGN DIGA AEDA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD1;"
+ latin:additionalMoreKeys="3" />
+ <!-- U+0D8D: "ඍ" SINHALA LETTER IRUYANNA -->
+ <Key
+ latin:keySpec="&#x0D8D;"
+ latin:additionalMoreKeys="4" />
+ <!-- U+0D94: "ඔ" SINHALA LETTER OYANNA -->
+ <Key
+ latin:keySpec="&#x0D94;"
+ latin:additionalMoreKeys="5" />
+ <!-- U+0DC1: "ශ" SINHALA LETTER TAALUJA SAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC1;"
+ latin:additionalMoreKeys="6" />
+ <!-- U+0DB9: "ඹ" SINHALA LETTER AMBA BAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB9;"
+ latin:additionalMoreKeys="7" />
+ <!-- U+0DC2: "ෂ" SINHALA LETTER MUURDHAJA SAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC2;"
+ latin:additionalMoreKeys="8" />
+ <!-- U+0DB0: "ධ" SINHALA LETTER MAHAAPRAANA DAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB0;"
+ latin:additionalMoreKeys="9" />
+ <!-- U+0DA1: "ඡ" SINHALA LETTER MAHAAPRAANA CAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA1;"
+ latin:additionalMoreKeys="0" />
+ <!-- U+0DA5: "ඥ" SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+ U+0DF4: "෴" SINHALA PUNCTUATION KUNDDALIYA -->
+ <Key
+ latin:keySpec="&#x0DA5;"
+ latin:moreKeys="&#x0DF4;" />
+ </case>
+ <default>
+ <!-- U+0DD4: "ු" SINHALA VOWEL SIGN KETTI PAA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD4;"
+ latin:additionalMoreKeys="1" />
+ <!-- U+0D85: "අ" SINHALA LETTER AYANNA -->
+ <Key
+ latin:keySpec="&#x0D85;"
+ latin:additionalMoreKeys="2" />
+ <!-- U+0DD0: "ැ" SINHALA VOWEL SIGN KETTI AEDA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD0;"
+ latin:additionalMoreKeys="3" />
+ <!-- U+0DBB: "ර" SINHALA LETTER RAYANNA -->
+ <Key
+ latin:keySpec="&#x0DBB;"
+ latin:additionalMoreKeys="4" />
+ <!-- U+0D91: "එ" SINHALA LETTER EYANNA -->
+ <Key
+ latin:keySpec="&#x0D91;"
+ latin:additionalMoreKeys="5" />
+ <!-- U+0DC4: "හ" SINHALA LETTER HAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC4;"
+ latin:additionalMoreKeys="6" />
+ <!-- U+0DB8: "ම" SINHALA LETTER MAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB8;"
+ latin:additionalMoreKeys="7" />
+ <!-- U+0DC3: "ස" SINHALA LETTER DANTAJA SAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC3;"
+ latin:additionalMoreKeys="8" />
+ <!-- U+0DAF: "ද" SINHALA LETTER ALPAPRAANA DAYANNA
+ U+0DB3: "ඳ" SINHALA LETTER SANYAKA DAYANNA -->
+ <Key
+ latin:keySpec="&#x0DAF;"
+ latin:moreKeys="&#x0DB3;"
+ latin:additionalMoreKeys="9" />
+ <!-- U+0DA0: "ච" SINHALA LETTER ALPAPRAANA CAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA0;"
+ latin:additionalMoreKeys="0" />
+ <!-- U+0DA4: "ඤ" SINHALA LETTER TAALUJA NAASIKYAYA
+ U+0DF4: "෴" SINHALA PUNCTUATION KUNDDALIYA -->
+ <Key
+ latin:keySpec="&#x0DA4;"
+ latin:moreKeys="&#x0DF4;" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_sinhala2.xml b/java/res/xml/rowkeys_sinhala2.xml
new file mode 100644
index 000000000..91c1928ba
--- /dev/null
+++ b/java/res/xml/rowkeys_sinhala2.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0DDF: "ෟ" SINHALA VOWEL SIGN GAYANUKITTA -->
+ <Key
+ latin:keySpec="&#x0DDF;" />
+ <!-- U+0DD3: "ී" SINHALA VOWEL SIGN DIGA IS-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD3;" />
+ <!-- U+0DD8: "ෘ" SINHALA VOWEL SIGN GAETTA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD8;" />
+ <!-- U+0DC6: "ෆ" SINHALA LETTER FAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC6;" />
+ <!-- U+0DA8: "ඨ" SINHALA LETTER MAHAAPRAANA TTAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA8;" />
+ <!-- U+0DCA/U+200D/U+0DBA: "්‍ය" SINHALA SIGN AL-LAKUNA/ZERO WIDTH JOINER/SINHALA LETTER YAYANNA -->
+ <Key
+ latin:keySpec="&#x0DCA;&#x200D;&#x0DBA;" />
+ <!-- U+0DC5/U+0DD4: "ළු" SINHALA LETTER MUURDHAJA LAYANNA/SINHALA VOWEL SIGN KETTI PAA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DC5;&#x0DD4;" />
+ <!-- U+0DAB: "ණ" SINHALA LETTER MUURDHAJA NAYANNA -->
+ <Key
+ latin:keySpec="&#x0DAB;" />
+ <!-- U+0D9B: "ඛ" SINHALA LETTER MAHAAPRAANA KAYANNA -->
+ <Key
+ latin:keySpec="&#x0D9B;" />
+ <!-- U+0DAE: "ථ" SINHALA LETTER MAHAAPRAANA TAYANNA -->
+ <Key
+ latin:keySpec="&#x0DAE;" />
+ <!-- U+0DCA/U+200D/U+0DBB: "්‍ර" SINHALA SIGN AL-LAKUNA/ZERO WIDTH JOINER/SINHALA LETTER RAYANNA -->
+ <Key
+ latin:keySpec="&#x0DCA;&#x200D;&#x0DBB;" />
+ </case>
+ <default>
+ <!-- U+0DCA: "්" SINHALA SIGN AL-LAKUNA -->
+ <Key
+ latin:keySpec="&#x0DCA;" />
+ <!-- U+0DD2: "ි" SINHALA VOWEL SIGN KETTI IS-PILLA -->
+ <Key
+ latin:keySpec="&#x0DD2;" />
+ <!-- U+0DCF: "ා" SINHALA VOWEL SIGN AELA-PILLA -->
+ <Key
+ latin:keySpec="&#x0DCF;" />
+ <!-- U+0DD9: "ෙ" SINHALA VOWEL SIGN KOMBUVA -->
+ <Key
+ latin:keySpec="&#x0DD9;" />
+ <!-- U+0DA7: "ට" SINHALA LETTER ALPAPRAANA TTAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA7;" />
+ <!-- U+0DBA: "ය" SINHALA LETTER YAYANNA -->
+ <Key
+ latin:keySpec="&#x0DBA;" />
+ <!-- U+0DC0: "ව" SINHALA LETTER VAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC0;" />
+ <!-- U+0DB1: "න" SINHALA LETTER DANTAJA NAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB1;" />
+ <!-- U+0D9A: "ක" SINHALA LETTER ALPAPRAANA KAYANNA -->
+ <Key
+ latin:keySpec="&#x0D9A;" />
+ <!-- U+0DAD: "ත" SINHALA LETTER ALPAPRAANA TAYANNA -->
+ <Key
+ latin:keySpec="&#x0DAD;" />
+ <!-- U+0D8F: "ඏ" SINHALA LETTER ILUYANNA -->
+ <Key
+ latin:keySpec="&#x0D8F;" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_sinhala3.xml b/java/res/xml/rowkeys_sinhala3.xml
new file mode 100644
index 000000000..64ba9f339
--- /dev/null
+++ b/java/res/xml/rowkeys_sinhala3.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0D9E: "ඞ" SINHALA LETTER KANTAJA NAASIKYAYA -->
+ <Key
+ latin:keySpec="&#x0D9E;" />
+ <!-- U+0DA3: "ඣ" SINHALA LETTER MAHAAPRAANA JAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA3;" />
+ <!-- U+0DAA: "ඪ" SINHALA LETTER MAHAAPRAANA DDAYANNA -->
+ <Key
+ latin:keySpec="&#x0DAA;" />
+ <!-- U+0D8A: "ඊ" SINHALA LETTER IIYANNA -->
+ <Key
+ latin:keySpec="&#x0D8A;" />
+ <!-- U+0DB7: "භ" SINHALA LETTER MAHAAPRAANA BAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB7;" />
+ <!-- U+0DB5: "ඵ" SINHALA LETTER MAHAAPRAANA PAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB5;" />
+ <!-- U+0DC5: "ළ" SINHALA LETTER MUURDHAJA LAYANNA -->
+ <Key
+ latin:keySpec="&#x0DC5;" />
+ <!-- U+0D9D: "ඝ" SINHALA LETTER MAHAAPRAANA GAYANNA -->
+ <Key
+ latin:keySpec="&#x0D9D;" />
+ <!-- U+0DBB/U+0DCA/U+200D: "ර්‍" SINHALA LETTER RAYANNA/SINHALA SIGN AL-LAKUNA/ZERO WIDTH JOINER -->
+ <Key
+ latin:keySpec="&#x0DBB;&#x0DCA;&#x200D;" />
+ </case>
+ <default>
+ <!-- U+0D82: "ං" SINHALA SIGN ANUSVARAYA
+ U+0D83: "ඃ" SINHALA SIGN VISARGAYA -->
+ <Key
+ latin:keySpec="&#x0D82;"
+ latin:moreKeys="&#x0D83;" />
+ <!-- U+0DA2: "ජ" SINHALA LETTER ALPAPRAANA JAYANNA
+ U+0DA6: "ඦ" SINHALA LETTER SANYAKA JAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA2;"
+ latin:moreKeys="&#x0DA6;" />
+ <!-- U+0DA9: "ඩ" SINHALA LETTER ALPAPRAANA DDAYANNA
+ U+0DAC: "ඬ" SINHALA LETTER SANYAKA DDAYANNA -->
+ <Key
+ latin:keySpec="&#x0DA9;"
+ latin:moreKeys="&#x0DAC;" />
+ <!-- U+0D89: "ඉ" SINHALA LETTER IYANNA -->
+ <Key
+ latin:keySpec="&#x0D89;" />
+ <!-- U+0DB6: "බ" SINHALA LETTER ALPAPRAANA BAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB6;" />
+ <!-- U+0DB4: "ප" SINHALA LETTER ALPAPRAANA PAYANNA -->
+ <Key
+ latin:keySpec="&#x0DB4;" />
+ <!-- U+0DBD: "ල" SINHALA LETTER DANTAJA LAYANNA -->
+ <Key
+ latin:keySpec="&#x0DBD;" />
+ <!-- U+0D9C: "ග" SINHALA LETTER ALPAPRAANA GAYANNA
+ U+0D9F: "ඟ" SINHALA LETTER SANYAKA GAYANNA -->
+ <Key
+ latin:keySpec="&#x0D9C;"
+ latin:moreKeys="&#x0D9F;" />
+ <!-- U+0DF3: "ෳ" SINHALA VOWEL SIGN DIGA GAYANUKITTA -->
+ <Key
+ latin:keySpec="&#x0DF3;" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rows_sinhala.xml b/java/res/xml/rows_sinhala.xml
new file mode 100644
index 000000000..b47b373b6
--- /dev/null
+++ b/java/res/xml/rows_sinhala.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/key_styles_common" />
+ <Row
+ latin:keyWidth="9.091%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_sinhala1" />
+ </Row>
+ <Row
+ latin:keyWidth="9.091%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_sinhala2" />
+ </Row>
+ <Row
+ latin:keyWidth="8.711%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.8%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_sinhala3" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ <include
+ latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/src/com/android/inputmethod/event/Event.java b/java/src/com/android/inputmethod/event/Event.java
index 4a9163c8e..d257441e0 100644
--- a/java/src/com/android/inputmethod/event/Event.java
+++ b/java/src/com/android/inputmethod/event/Event.java
@@ -225,6 +225,13 @@ public class Event {
null /* suggestedWordInfo */, FLAG_NONE, null);
}
+ // Returns whether this is a function key like backspace, ctrl, settings... as opposed to keys
+ // that result in input like letters or space.
+ public boolean isFunctionalKeyEvent() {
+ // This logic may need to be refined in the future
+ return NOT_A_CODE_POINT == mCodePoint;
+ }
+
// Returns whether this event is for a dead character. @see {@link #FLAG_DEAD}
public boolean isDead() {
return 0 != (FLAG_DEAD & mFlags);
diff --git a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
index 05ba99923..c61f45efa 100644
--- a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
+++ b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
@@ -74,7 +74,7 @@ public class HardwareKeyboardEventDecoder implements HardwareEventDecoder {
}
// If not Enter, then this is just a regular keypress event for a normal character
// that can be committed right away, taking into account the current state.
- return Event.createHardwareKeypressEvent(keyCode, codePointAndFlags, null /* next */,
+ return Event.createHardwareKeypressEvent(codePointAndFlags, keyCode, null /* next */,
isKeyRepeat);
}
return Event.createNotHandledEvent();
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index ab2555802..13b174e94 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -89,9 +89,9 @@ public final class KeyboardTextsTable {
/* 3:29 */ "morekeys_e",
/* 4:28 */ "morekeys_i",
/* 5:23 */ "morekeys_c",
- /* 6:23 */ "double_quotes",
- /* 7:22 */ "morekeys_n",
- /* 8:22 */ "keylabel_to_alpha",
+ /* 6:23 */ "keylabel_to_alpha",
+ /* 7:23 */ "double_quotes",
+ /* 8:22 */ "morekeys_n",
/* 9:22 */ "single_quotes",
/* 10:20 */ "morekeys_s",
/* 11:14 */ "morekeys_y",
@@ -260,10 +260,10 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_lqm_rqm",
- /* morekeys_n */ EMPTY,
// Label for "switch to alphabetic" key.
/* keylabel_to_alpha */ "ABC",
+ /* double_quotes */ "!text/double_lqm_rqm",
+ /* morekeys_n */ EMPTY,
/* single_quotes */ "!text/single_lqm_rqm",
/* morekeys_s ~ */
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
@@ -507,14 +507,14 @@ public final class KeyboardTextsTable {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_i */ "\u00ED,\u00EC,\u00EF,\u00EE,\u012F,\u012B,\u0133",
- /* morekeys_c */ null,
- /* double_quotes */ null,
+ /* morekeys_c ~ */
+ null, null, null,
+ /* ~ double_quotes */
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha ~ */
- null, null, null,
- /* ~ morekeys_s */
+ /* single_quotes */ null,
+ /* morekeys_s */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_y */ "\u00FD,\u0133",
@@ -523,17 +523,17 @@ public final class KeyboardTextsTable {
/* Locale ar: Arabic */
private static final String[] TEXTS_ar = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
// U+200C: ZERO WIDTH NON-JOINER
// U+0628: "ب" ARABIC LETTER BEH
// U+062C: "ج" ARABIC LETTER JEEM
/* keylabel_to_alpha */ "\u0623\u200C\u0628\u200C\u062C",
- /* single_quotes ~ */
+ /* double_quotes ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null,
/* ~ morekeys_cyrillic_soft_sign */
// U+0661: "١" ARABIC-INDIC DIGIT ONE
/* keyspec_symbols_1 */ "\u0661",
@@ -685,7 +685,7 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
- /* double_quotes ~ */
+ /* keylabel_to_alpha ~ */
null, null, null, null,
/* ~ single_quotes */
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
@@ -705,13 +705,13 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
+ /* double_quotes */ "!text/double_9qm_lqm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s ~ */
null, null, null, null, null, null, null, null, null, null, null, null,
@@ -738,14 +738,13 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- // single_quotes of Bulgarian is default single_quotes_right_left.
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
+ // single_quotes of Bulgarian is default single_quotes_right_left.
+ /* double_quotes */ "!text/double_9qm_lqm",
};
/* Locale ca: Catalan */
@@ -796,12 +795,13 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha ~ */
- null, null, null, null, null, null, null,
+ /* single_quotes ~ */
+ null, null, null, null, null, null,
/* ~ morekeys_t */
// U+00B7: "·" MIDDLE DOT
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
@@ -870,12 +870,12 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
/* morekeys_c */ "\u010D,\u00E7,\u0107",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u0148,\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -930,11 +930,11 @@ public final class KeyboardTextsTable {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
/* morekeys_i */ "\u00ED,\u00EF",
/* morekeys_c */ null,
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -1004,13 +1004,13 @@ public final class KeyboardTextsTable {
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
/* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0117",
- /* morekeys_i */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ keylabel_to_alpha */
/* double_quotes */ "!text/double_9qm_lqm",
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -1043,8 +1043,8 @@ public final class KeyboardTextsTable {
/* Locale el: Greek */
private static final String[] TEXTS_el = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0391: "Α" GREEK CAPITAL LETTER ALPHA
// U+0392: "Β" GREEK CAPITAL LETTER BETA
@@ -1092,10 +1092,10 @@ public final class KeyboardTextsTable {
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
/* morekeys_c */ "\u00E7",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u00F1",
- /* keylabel_to_alpha */ null,
/* single_quotes */ null,
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u00DF",
@@ -1161,6 +1161,7 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
/* morekeys_c */ "\u0107,\u010D,\u00E7,\u010B",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -1169,7 +1170,6 @@ public final class KeyboardTextsTable {
// U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
// U+014B: "ŋ" LATIN SMALL LETTER ENG
/* morekeys_n */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B",
- /* keylabel_to_alpha */ null,
/* single_quotes */ null,
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
@@ -1297,15 +1297,15 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha ~ */
+ /* single_quotes ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null,
/* ~ morekeys_nordic_row2_11 */
// U+00A1: "¡" INVERTED EXCLAMATION MARK
// U+00BF: "¿" INVERTED QUESTION MARK
@@ -1363,12 +1363,12 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
/* morekeys_c */ "\u010D,\u00E7,\u0107",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u0146,\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -1463,6 +1463,7 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -1472,16 +1473,16 @@ public final class KeyboardTextsTable {
/* Locale fa: Persian */
private static final String[] TEXTS_fa = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0627: "ا" ARABIC LETTER ALEF
// U+200C: ZERO WIDTH NON-JOINER
// U+0628: "ب" ARABIC LETTER BEH
// U+067E: "پ" ARABIC LETTER PEH
/* keylabel_to_alpha */ "\u0627\u200C\u0628\u200C\u067E",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+FDFC: "﷼" RIAL SIGN
/* keyspec_currency */ "\uFDFC",
@@ -1710,7 +1711,7 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,%,\u0107,\u010D",
- /* double_quotes ~ */
+ /* keylabel_to_alpha ~ */
null, null, null, null, null,
/* ~ morekeys_s */
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
@@ -1782,6 +1783,7 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -1791,15 +1793,15 @@ public final class KeyboardTextsTable {
/* Locale hi: Hindi */
private static final String[] TEXTS_hi = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -1849,11 +1851,11 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
/* morekeys_c */ "\u010D,\u0107,\u00E7",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_rqm",
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_rqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -1917,9 +1919,9 @@ public final class KeyboardTextsTable {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B",
/* morekeys_c */ null,
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_rqm",
/* morekeys_n */ null,
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_rqm",
/* morekeys_s ~ */
null, null, null, null, null, null, null, null,
@@ -1931,17 +1933,18 @@ public final class KeyboardTextsTable {
/* Locale hy_AM: Armenian (Armenia) */
private static final String[] TEXTS_hy_AM = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0531: "Ա" ARMENIAN CAPITAL LETTER AYB
// U+0532: "Բ" ARMENIAN CAPITAL LETTER BEN
// U+0533: "Գ" ARMENIAN CAPITAL LETTER GIM
/* keylabel_to_alpha */ "\u0531\u0532\u0533",
- /* single_quotes ~ */
+ /* double_quotes ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null,
/* ~ morekeys_nordic_row2_11 */
// U+055E: "՞" ARMENIAN QUESTION MARK
// U+055C: "՜" ARMENIAN EXCLAMATION MARK
@@ -2027,9 +2030,9 @@ public final class KeyboardTextsTable {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EE,\u00EC,\u012F,\u012B",
/* morekeys_c */ null,
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_n */ null,
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
@@ -2110,13 +2113,13 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_rqm_9qm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+05D0: "א" HEBREW LETTER ALEF
// U+05D1: "ב" HEBREW LETTER BET
// U+05D2: "ג" HEBREW LETTER GIMEL
/* keylabel_to_alpha */ "\u05D0\u05D1\u05D2",
+ /* double_quotes */ "!text/double_rqm_9qm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_rqm_9qm",
/* morekeys_s ~ */
null, null, null, null, null, null,
@@ -2167,28 +2170,28 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+10D0: "ა" GEORGIAN LETTER AN
// U+10D1: "ბ" GEORGIAN LETTER BAN
// U+10D2: "გ" GEORGIAN LETTER GAN
/* keylabel_to_alpha */ "\u10D0\u10D1\u10D2",
+ /* double_quotes */ "!text/double_9qm_lqm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
};
/* Locale kk: Kazakh */
private static final String[] TEXTS_kk = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* single_quotes ~ */
- null, null, null, null, null, null, null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
/* ~ morekeys_k */
// U+0451: "ё" CYRILLIC SMALL LETTER IO
/* morekeys_cyrillic_ie */ "\u0451",
@@ -2237,14 +2240,14 @@ public final class KeyboardTextsTable {
/* Locale km_KH: Khmer (Cambodia) */
private static final String[] TEXTS_km_KH = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+1780: "ក" KHMER LETTER KA
// U+1781: "ខ" KHMER LETTER KHA
// U+1782: "គ" KHMER LETTER KO
/* keylabel_to_alpha */ "\u1780\u1781\u1782",
- /* single_quotes ~ */
+ /* double_quotes ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2252,7 +2255,7 @@ public final class KeyboardTextsTable {
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_cyrillic_a */
// U+17DB: "៛" KHMER CURRENCY SYMBOL RIEL
/* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1",
@@ -2261,15 +2264,15 @@ public final class KeyboardTextsTable {
/* Locale ky: Kirghiz */
private static final String[] TEXTS_ky = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* single_quotes ~ */
- null, null, null, null, null, null, null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
/* ~ morekeys_k */
// U+0451: "ё" CYRILLIC SMALL LETTER IO
/* morekeys_cyrillic_ie */ "\u0451",
@@ -2304,15 +2307,15 @@ public final class KeyboardTextsTable {
/* Locale lo_LA: Lao (Laos) */
private static final String[] TEXTS_lo_LA = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0E81: "ກ" LAO LETTER KO
// U+0E82: "ຂ" LAO LETTER KHO SUNG
// U+0E84: "ຄ" LAO LETTER KHO TAM
/* keylabel_to_alpha */ "\u0E81\u0E82\u0E84",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+20AD: "₭" KIP SIGN
/* keyspec_currency */ "\u20AD",
@@ -2370,12 +2373,12 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
/* morekeys_c */ "\u010D,\u00E7,\u0107",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u0146,\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -2464,12 +2467,12 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
/* morekeys_c */ "\u010D,\u00E7,\u0107",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u0146,\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -2512,13 +2515,13 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
+ /* double_quotes */ "!text/double_9qm_lqm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s ~ */
null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2547,15 +2550,15 @@ public final class KeyboardTextsTable {
/* Locale mn_MN: Mongolian (Mongolia) */
private static final String[] TEXTS_mn_MN = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+20AE: "₮" TUGRIK SIGN
/* keyspec_currency */ "\u20AE",
@@ -2564,15 +2567,15 @@ public final class KeyboardTextsTable {
/* Locale mr_IN: Marathi (India) */
private static final String[] TEXTS_mr_IN = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -2616,17 +2619,18 @@ public final class KeyboardTextsTable {
/* Locale my_MM: Burmese (Myanmar) */
private static final String[] TEXTS_my_MM = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+1000: "က" MYANMAR LETTER KA
// U+1001: "ခ" MYANMAR LETTER KHA
// U+1002: "ဂ" MYANMAR LETTER GA
/* keylabel_to_alpha */ "\u1000\u1001\u1002",
- /* single_quotes ~ */
+ /* double_quotes ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null,
/* ~ morekeys_nordic_row2_11 */
/* morekeys_punctuation */ "!autoColumnOrder!9,\u104A,.,?,!,#,),(,/,;,...,',@,:,-,\",+,\\%,&",
// U+104A: "၊" MYANMAR SIGN LITTLE SECTION
@@ -2681,11 +2685,11 @@ public final class KeyboardTextsTable {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
/* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
- /* morekeys_i */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ keylabel_to_alpha */
/* double_quotes */ "!text/double_9qm_rqm",
/* morekeys_n */ null,
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_rqm",
/* morekeys_s ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2709,15 +2713,15 @@ public final class KeyboardTextsTable {
/* Locale ne_NP: Nepali (Nepal) */
private static final String[] TEXTS_ne_NP = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
/* keyspec_currency */ "\u0930\u0941.",
@@ -2801,11 +2805,11 @@ public final class KeyboardTextsTable {
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B,\u0133",
/* morekeys_c */ null,
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_rqm",
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_rqm",
/* morekeys_s */ null,
// U+0133: "ij" LATIN SMALL LIGATURE IJ
@@ -2847,11 +2851,11 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u0107,\u00E7,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_rqm",
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u0144,\u00F1",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_rqm",
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -2952,9 +2956,9 @@ public final class KeyboardTextsTable {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
/* morekeys_c */ null,
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_rqm",
/* morekeys_n */ null,
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_rqm",
// U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -2973,13 +2977,13 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
+ /* double_quotes */ "!text/double_9qm_lqm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s ~ */
null, null, null, null, null, null, null, null, null, null, null, null,
@@ -3001,6 +3005,17 @@ public final class KeyboardTextsTable {
/* morekeys_cyrillic_soft_sign */ "\u044A",
};
+ /* Locale si_LK: Sinhalese (Sri Lanka) */
+ private static final String[] TEXTS_si_LK = {
+ /* morekeys_a ~ */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
+ // Label for "switch to alphabetic" key.
+ // U+0D85: "අ" SINHALA LETTER AYANNA
+ // U+0D86: "ආ" SINHALA LETTER AAYANNA
+ /* keylabel_to_alpha */ "\u0D85,\u0D86",
+ };
+
/* Locale sk: Slovak */
private static final String[] TEXTS_sk = {
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
@@ -3052,13 +3067,13 @@ public final class KeyboardTextsTable {
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
/* morekeys_c */ "\u010D,\u00E7,\u0107",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u0148,\u0146,\u00F1,\u0144",
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -3104,9 +3119,9 @@ public final class KeyboardTextsTable {
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
/* morekeys_c */ "\u010D,\u0107",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_n */ null,
- /* keylabel_to_alpha */ null,
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u0161",
@@ -3127,14 +3142,14 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// END: More keys definitions for Serbian (Cyrillic)
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
+ /* double_quotes */ "!text/double_9qm_lqm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s ~ */
null, null, null, null, null, null, null, null,
@@ -3217,12 +3232,12 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
/* morekeys_n */ "\u0144,\u00F1,\u0148",
- /* keylabel_to_alpha */ null,
/* single_quotes */ null,
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
@@ -3310,10 +3325,10 @@ public final class KeyboardTextsTable {
/* morekeys_i */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC",
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
/* morekeys_c */ "\u00E7",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u00F1",
- /* keylabel_to_alpha */ null,
/* single_quotes */ null,
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u00DF",
@@ -3326,15 +3341,15 @@ public final class KeyboardTextsTable {
/* Locale th: Thai */
private static final String[] TEXTS_th = {
/* morekeys_a ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_n */
+ null, null, null, null, null, null,
+ /* ~ morekeys_c */
// Label for "switch to alphabetic" key.
// U+0E01: "ก" THAI CHARACTER KO KAI
// U+0E02: "ข" THAI CHARACTER KHO KHAI
// U+0E04: "ค" THAI CHARACTER KHO KHWAI
/* keylabel_to_alpha */ "\u0E01\u0E02\u0E04",
- /* single_quotes ~ */
- null, null, null, null, null, null, null,
+ /* double_quotes ~ */
+ null, null, null, null, null, null, null, null, null,
/* ~ morekeys_l */
// U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
/* keyspec_currency */ "\u0E3F",
@@ -3388,6 +3403,7 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -3426,7 +3442,7 @@ public final class KeyboardTextsTable {
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
- /* double_quotes ~ */
+ /* keylabel_to_alpha ~ */
null, null, null, null,
/* ~ single_quotes */
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
@@ -3446,13 +3462,13 @@ public final class KeyboardTextsTable {
/* morekeys_a ~ */
null, null, null, null, null, null,
/* ~ morekeys_c */
- /* double_quotes */ "!text/double_9qm_lqm",
- /* morekeys_n */ null,
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
+ /* double_quotes */ "!text/double_9qm_lqm",
+ /* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s ~ */
null, null, null, null, null, null,
@@ -3613,10 +3629,10 @@ public final class KeyboardTextsTable {
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
/* morekeys_c */ "\u00E7",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u00F1",
- /* keylabel_to_alpha */ null,
/* single_quotes */ null,
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u00DF",
@@ -3686,6 +3702,7 @@ public final class KeyboardTextsTable {
// U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u0109,\u010B,\u010D",
+ /* keylabel_to_alpha */ null,
/* double_quotes */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -3694,7 +3711,6 @@ public final class KeyboardTextsTable {
// U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
// U+014B: "ŋ" LATIN SMALL LETTER ENG
/* morekeys_n */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B",
- /* keylabel_to_alpha */ null,
/* single_quotes */ null,
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -3767,21 +3783,21 @@ public final class KeyboardTextsTable {
"ar" , TEXTS_ar, /* 55/110 Arabic */
"az_AZ" , TEXTS_az_AZ, /* 8/ 18 Azerbaijani (Azerbaijan) */
"be_BY" , TEXTS_be_BY, /* 9/ 32 Belarusian (Belarus) */
- "bg" , TEXTS_bg, /* 2/ 9 Bulgarian */
+ "bg" , TEXTS_bg, /* 2/ 8 Bulgarian */
"ca" , TEXTS_ca, /* 11/ 95 Catalan */
"cs" , TEXTS_cs, /* 17/ 21 Czech */
"da" , TEXTS_da, /* 19/ 54 Danish */
"de" , TEXTS_de, /* 16/ 62 German */
- "el" , TEXTS_el, /* 1/ 9 Greek */
+ "el" , TEXTS_el, /* 1/ 7 Greek */
"en" , TEXTS_en, /* 8/ 11 English */
"eo" , TEXTS_eo, /* 26/118 Esperanto */
"es" , TEXTS_es, /* 8/ 55 Spanish */
"et_EE" , TEXTS_et_EE, /* 22/ 27 Estonian (Estonia) */
- "eu_ES" , TEXTS_eu_ES, /* 7/ 8 Basque (Spain) */
+ "eu_ES" , TEXTS_eu_ES, /* 7/ 9 Basque (Spain) */
"fa" , TEXTS_fa, /* 58/125 Persian */
"fi" , TEXTS_fi, /* 10/ 54 Finnish */
"fr" , TEXTS_fr, /* 13/ 62 French */
- "gl_ES" , TEXTS_gl_ES, /* 7/ 8 Gallegan (Spain) */
+ "gl_ES" , TEXTS_gl_ES, /* 7/ 9 Gallegan (Spain) */
"hi" , TEXTS_hi, /* 23/ 53 Hindi */
"hr" , TEXTS_hr, /* 9/ 20 Croatian */
"hu" , TEXTS_hu, /* 9/ 20 Hungarian */
@@ -3808,13 +3824,14 @@ public final class KeyboardTextsTable {
"rm" , TEXTS_rm, /* 1/ 2 Raeto-Romance */
"ro" , TEXTS_ro, /* 6/ 15 Romanian */
"ru" , TEXTS_ru, /* 9/ 32 Russian */
+ "si_LK" , TEXTS_si_LK, /* 1/ 7 Sinhalese (Sri Lanka) */
"sk" , TEXTS_sk, /* 20/ 22 Slovak */
"sl" , TEXTS_sl, /* 8/ 20 Slovenian */
"sr" , TEXTS_sr, /* 11/ 93 Serbian */
"sv" , TEXTS_sv, /* 21/ 54 Swedish */
"sw" , TEXTS_sw, /* 9/ 18 Swahili */
"th" , TEXTS_th, /* 2/ 17 Thai */
- "tl" , TEXTS_tl, /* 7/ 8 Tagalog */
+ "tl" , TEXTS_tl, /* 7/ 9 Tagalog */
"tr" , TEXTS_tr, /* 7/ 18 Turkish */
"uk" , TEXTS_uk, /* 11/ 87 Ukrainian */
"vi" , TEXTS_vi, /* 8/ 17 Vietnamese */
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 335e52fef..1b5791809 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -174,8 +174,8 @@ public final class BinaryDictionary extends Dictionary {
private static native int getFormatVersionNative(long dict);
private static native int getProbabilityNative(long dict, int[] word);
private static native int getMaxProbabilityOfExactMatchesNative(long dict, int[] word);
- private static native int getBigramProbabilityNative(long dict, int[] word0,
- boolean isBeginningOfSentence, int[] word1);
+ private static native int getNgramProbabilityNative(long dict, int[][] prevWordCodePointArrays,
+ boolean[] isBeginningOfSentenceArray, int[] word);
private static native void getWordPropertyNative(long dict, int[] word,
boolean isBeginningOfSentence, int[] outCodePoints, boolean[] outFlags,
int[] outProbabilityInfo, ArrayList<int[]> outBigramTargets,
@@ -186,18 +186,19 @@ public final class BinaryDictionary extends Dictionary {
private static native void getSuggestionsNative(long dict, long proximityInfo,
long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times,
int[] pointerIds, int[] inputCodePoints, int inputSize, int[] suggestOptions,
- int[] prevWordCodePointArray, boolean isBeginningOfSentence,
+ int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
int[] outputSuggestionCount, int[] outputCodePoints, int[] outputScores,
int[] outputIndices, int[] outputTypes, int[] outputAutoCommitFirstWordConfidence,
float[] inOutLanguageWeight);
- private static native boolean addUnigramWordNative(long dict, int[] word, int probability,
+ private static native boolean addUnigramEntryNative(long dict, int[] word, int probability,
int[] shortcutTarget, int shortcutProbability, boolean isBeginningOfSentence,
boolean isNotAWord, boolean isBlacklisted, int timestamp);
- private static native boolean removeUnigramWordNative(long dict, int[] word);
- private static native boolean addBigramWordsNative(long dict, int[] word0,
- boolean isBeginningOfSentence, int[] word1, int probability, int timestamp);
- private static native boolean removeBigramWordsNative(long dict, int[] word0,
- boolean isBeginningOfSentence, int[] word1);
+ private static native boolean removeUnigramEntryNative(long dict, int[] word);
+ private static native boolean addNgramEntryNative(long dict,
+ int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
+ int[] word, int probability, int timestamp);
+ private static native boolean removeNgramEntryNative(long dict,
+ int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray, int[] word);
private static native int addMultipleDictionaryEntriesNative(long dict,
LanguageModelParam[] languageModelParams, int startIndex);
private static native String getPropertyNative(long dict, String query);
@@ -262,9 +263,8 @@ public final class BinaryDictionary extends Dictionary {
}
final DicTraverseSession session = getTraverseSession(sessionId);
Arrays.fill(session.mInputCodePoints, Constants.NOT_A_CODE);
- // TODO: toLowerCase in the native code
- final int[] prevWordCodePointArray = (null == prevWordsInfo.mPrevWord)
- ? null : StringUtils.toCodePointArray(prevWordsInfo.mPrevWord);
+ prevWordsInfo.outputToArray(session.mPrevWordCodePointArrays,
+ session.mIsBeginningOfSentenceArray);
final InputPointers inputPointers = composer.getInputPointers();
final boolean isGesture = composer.isBatchMode();
final int inputSize;
@@ -286,13 +286,13 @@ public final class BinaryDictionary extends Dictionary {
} else {
session.mInputOutputLanguageWeight[0] = Dictionary.NOT_A_LANGUAGE_WEIGHT;
}
- // proximityInfo and/or prevWordForBigrams may not be null.
+ // TOOD: Pass multiple previous words information for n-gram.
getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
getTraverseSession(sessionId).getSession(), inputPointers.getXCoordinates(),
inputPointers.getYCoordinates(), inputPointers.getTimes(),
inputPointers.getPointerIds(), session.mInputCodePoints, inputSize,
- session.mNativeSuggestOptions.getOptions(), prevWordCodePointArray,
- prevWordsInfo.mIsBeginningOfSentence, session.mOutputSuggestionCount,
+ session.mNativeSuggestOptions.getOptions(), session.mPrevWordCodePointArrays,
+ session.mIsBeginningOfSentenceArray, session.mOutputSuggestionCount,
session.mOutputCodePoints, session.mOutputScores, session.mSpaceIndices,
session.mOutputTypes, session.mOutputAutoCommitFirstWordConfidence,
session.mInputOutputLanguageWeight);
@@ -355,10 +355,13 @@ public final class BinaryDictionary extends Dictionary {
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
return NOT_A_PROBABILITY;
}
- final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord);
- final int[] codePoints1 = StringUtils.toCodePointArray(word);
- return getBigramProbabilityNative(mNativeDict, codePoints0,
- prevWordsInfo.mIsBeginningOfSentence, codePoints1);
+ final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
+ final boolean[] isBeginningOfSentenceArray =
+ new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
+ final int[] wordCodePoints = StringUtils.toCodePointArray(word);
+ return getNgramProbabilityNative(mNativeDict, prevWordCodePointArrays,
+ isBeginningOfSentenceArray, wordCodePoints);
}
public WordProperty getWordProperty(final String word, final boolean isBeginningOfSentence) {
@@ -422,7 +425,7 @@ public final class BinaryDictionary extends Dictionary {
final int[] codePoints = StringUtils.toCodePointArray(word);
final int[] shortcutTargetCodePoints = (shortcutTarget != null) ?
StringUtils.toCodePointArray(shortcutTarget) : null;
- if (!addUnigramWordNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints,
+ if (!addUnigramEntryNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints,
shortcutProbability, isBeginningOfSentence, isNotAWord, isBlacklisted, timestamp)) {
return false;
}
@@ -436,7 +439,7 @@ public final class BinaryDictionary extends Dictionary {
return false;
}
final int[] codePoints = StringUtils.toCodePointArray(word);
- if (!removeUnigramWordNative(mNativeDict, codePoints)) {
+ if (!removeUnigramEntryNative(mNativeDict, codePoints)) {
return false;
}
mHasUpdated = true;
@@ -449,10 +452,13 @@ public final class BinaryDictionary extends Dictionary {
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
return false;
}
- final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord);
- final int[] codePoints1 = StringUtils.toCodePointArray(word);
- if (!addBigramWordsNative(mNativeDict, codePoints0, prevWordsInfo.mIsBeginningOfSentence,
- codePoints1, probability, timestamp)) {
+ final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
+ final boolean[] isBeginningOfSentenceArray =
+ new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
+ final int[] wordCodePoints = StringUtils.toCodePointArray(word);
+ if (!addNgramEntryNative(mNativeDict, prevWordCodePointArrays,
+ isBeginningOfSentenceArray, wordCodePoints, probability, timestamp)) {
return false;
}
mHasUpdated = true;
@@ -464,10 +470,13 @@ public final class BinaryDictionary extends Dictionary {
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
return false;
}
- final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord);
- final int[] codePoints1 = StringUtils.toCodePointArray(word);
- if (!removeBigramWordsNative(mNativeDict, codePoints0, prevWordsInfo.mIsBeginningOfSentence,
- codePoints1)) {
+ final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
+ final boolean[] isBeginningOfSentenceArray =
+ new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
+ final int[] wordCodePoints = StringUtils.toCodePointArray(word);
+ if (!removeNgramEntryNative(mNativeDict, prevWordCodePointArrays,
+ isBeginningOfSentenceArray, wordCodePoints)) {
return false;
}
mHasUpdated = true;
diff --git a/java/src/com/android/inputmethod/latin/Constants.java b/java/src/com/android/inputmethod/latin/Constants.java
index f9339361a..43af66eb7 100644
--- a/java/src/com/android/inputmethod/latin/Constants.java
+++ b/java/src/com/android/inputmethod/latin/Constants.java
@@ -166,6 +166,10 @@ public final class Constants {
// Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h
public static final int DICTIONARY_MAX_WORD_LENGTH = 48;
+ // (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram is supported in Java side. Needs to modify
+ // MAX_PREV_WORD_COUNT_FOR_N_GRAM in native/jni/src/defines.h for suggestions.
+ public static final int MAX_PREV_WORD_COUNT_FOR_N_GRAM = 2;
+
// Key events coming any faster than this are long-presses.
public static final int LONG_PRESS_MILLISECONDS = 200;
// TODO: Set this value appropriately.
@@ -216,6 +220,7 @@ public final class Constants {
public static final String REGEXP_PERIOD = "\\.";
public static final String STRING_SPACE = " ";
+ public static final String STRING_PERIOD_AND_SPACE = ". ";
/**
* Special keys code. Must be negative.
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 96160fa4e..ad14c06ef 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -233,19 +233,19 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary {
final int wordLen = StringUtils.codePointCount(word);
if (wordLen < MAX_WORD_LENGTH && wordLen > 1) {
if (DEBUG) {
- Log.d(TAG, "addName " + name + ", " + word + ", "
- + prevWordsInfo.mPrevWord);
+ Log.d(TAG, "addName " + name + ", " + word + ", " + prevWordsInfo);
}
runGCIfRequiredLocked(true /* mindsBlockByGC */);
addUnigramLocked(word, FREQUENCY_FOR_CONTACTS,
null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */,
false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
- if (!TextUtils.isEmpty(prevWordsInfo.mPrevWord) && mUseFirstLastBigrams) {
+ if (!prevWordsInfo.isValid() && mUseFirstLastBigrams) {
runGCIfRequiredLocked(true /* mindsBlockByGC */);
addNgramEntryLocked(prevWordsInfo, word, FREQUENCY_FOR_CONTACTS_BIGRAM,
BinaryDictionary.NOT_A_VALID_TIMESTAMP);
}
- prevWordsInfo = new PrevWordsInfo(word);
+ prevWordsInfo = prevWordsInfo.getNextPrevWordsInfo(
+ new PrevWordsInfo.WordInfo(word));
}
}
}
diff --git a/java/src/com/android/inputmethod/latin/DicTraverseSession.java b/java/src/com/android/inputmethod/latin/DicTraverseSession.java
index 8bbf426e5..b341f623e 100644
--- a/java/src/com/android/inputmethod/latin/DicTraverseSession.java
+++ b/java/src/com/android/inputmethod/latin/DicTraverseSession.java
@@ -28,6 +28,10 @@ public final class DicTraverseSession {
// Must be equal to MAX_RESULTS in native/jni/src/defines.h
private static final int MAX_RESULTS = 18;
public final int[] mInputCodePoints = new int[Constants.DICTIONARY_MAX_WORD_LENGTH];
+ public final int[][] mPrevWordCodePointArrays =
+ new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
+ public final boolean[] mIsBeginningOfSentenceArray =
+ new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
public final int[] mOutputSuggestionCount = new int[1];
public final int[] mOutputCodePoints =
new int[Constants.DICTIONARY_MAX_WORD_LENGTH * MAX_RESULTS];
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index 304c450ab..b8feb2278 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -23,6 +23,7 @@ import android.view.inputmethod.InputMethodSubtype;
import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.keyboard.ProximityInfo;
+import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.personalization.ContextualDictionary;
import com.android.inputmethod.latin.personalization.PersonalizationDataChunk;
@@ -407,13 +408,14 @@ public class DictionaryFacilitator {
final boolean blockPotentiallyOffensive) {
final Dictionaries dictionaries = mDictionaries;
final String[] words = suggestion.split(Constants.WORD_SEPARATOR);
+ PrevWordsInfo prevWordsInfoForCurrentWord = prevWordsInfo;
for (int i = 0; i < words.length; i++) {
final String currentWord = words[i];
- final PrevWordsInfo prevWordsInfoForCurrentWord =
- (i == 0) ? prevWordsInfo : new PrevWordsInfo(words[i - 1]);
final boolean wasCurrentWordAutoCapitalized = (i == 0) ? wasAutoCapitalized : false;
addWordToUserHistory(dictionaries, prevWordsInfoForCurrentWord, currentWord,
wasCurrentWordAutoCapitalized, timeStampInSeconds, blockPotentiallyOffensive);
+ prevWordsInfoForCurrentWord =
+ prevWordsInfoForCurrentWord.getNextPrevWordsInfo(new WordInfo(currentWord));
}
}
@@ -639,7 +641,8 @@ public class DictionaryFacilitator {
contextualDict.addNgramEntry(prevWordsInfo, phrase[i],
bigramProbabilityForWords, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
}
- prevWordsInfo = new PrevWordsInfo(phrase[i]);
+ prevWordsInfo =
+ prevWordsInfo.getNextPrevWordsInfo(new PrevWordsInfo.WordInfo(phrase[i]));
}
}
diff --git a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
index 42b311c69..5dda44445 100644
--- a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
+++ b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
@@ -16,47 +16,122 @@
package com.android.inputmethod.latin;
+import java.util.Arrays;
+
+import com.android.inputmethod.latin.utils.StringUtils;
+
/**
* Class to represent information of previous words. This class is used to add n-gram entries
* into binary dictionaries, to get predictions, and to get suggestions.
*/
-// TODO: Support multiple previous words for n-gram.
public class PrevWordsInfo {
- public static final PrevWordsInfo EMPTY_PREV_WORDS_INFO = new PrevWordsInfo(null);
+ public static final PrevWordsInfo EMPTY_PREV_WORDS_INFO =
+ new PrevWordsInfo(WordInfo.EMPTY_WORD_INFO);
public static final PrevWordsInfo BEGINNING_OF_SENTENCE = new PrevWordsInfo();
- // The word immediately before the considered word. null means we don't have any context
- // including the "beginning of sentence context" - we just don't know what to predict.
- // An example of that is after a comma.
- // For simplicity of implementation, this may also be null transiently after the WordComposer
- // was reset and before starting a new composing word, but we should never be calling
- // getSuggetions* in this situation.
- // This is an empty string when mIsBeginningOfSentence is true.
- public final String mPrevWord;
+ /**
+ * Word information used to represent previous words information.
+ */
+ public static class WordInfo {
+ public static final WordInfo EMPTY_WORD_INFO = new WordInfo(null);
+ public static final WordInfo BEGINNING_OF_SENTENCE = new WordInfo();
+
+ // This is an empty string when mIsBeginningOfSentence is true.
+ public final String mWord;
+ // TODO: Have sentence separator.
+ // Whether the current context is beginning of sentence or not. This is true when composing
+ // at the beginning of an input field or composing a word after a sentence separator.
+ public final boolean mIsBeginningOfSentence;
+
+ // Beginning of sentence.
+ public WordInfo() {
+ mWord = "";
+ mIsBeginningOfSentence = true;
+ }
+
+ public WordInfo(final String word) {
+ mWord = word;
+ mIsBeginningOfSentence = false;
+ }
+
+ public boolean isValid() {
+ return mWord != null;
+ }
+ }
- // TODO: Have sentence separator.
- // Whether the current context is beginning of sentence or not. This is true when composing at
- // the beginning of an input field or composing a word after a sentence separator.
- public final boolean mIsBeginningOfSentence;
+ // The words immediately before the considered word. EMPTY_WORD_INFO element means we don't
+ // have any context for that previous word including the "beginning of sentence context" - we
+ // just don't know what to predict using the information. An example of that is after a comma.
+ // For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the
+ // WordComposer was reset and before starting a new composing word, but we should never be
+ // calling getSuggetions* in this situation.
+ public WordInfo[] mPrevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
// Beginning of sentence.
public PrevWordsInfo() {
- mPrevWord = "";
- mIsBeginningOfSentence = true;
+ mPrevWordsInfo[0] = WordInfo.BEGINNING_OF_SENTENCE;
+ Arrays.fill(mPrevWordsInfo, 1 /* start */, mPrevWordsInfo.length, WordInfo.EMPTY_WORD_INFO);
}
- public PrevWordsInfo(final String prevWord) {
- mPrevWord = prevWord;
- mIsBeginningOfSentence = false;
+ // Construct from the previous word information.
+ public PrevWordsInfo(final WordInfo prevWordInfo) {
+ mPrevWordsInfo[0] = prevWordInfo;
+ Arrays.fill(mPrevWordsInfo, 1 /* start */, mPrevWordsInfo.length, WordInfo.EMPTY_WORD_INFO);
+ }
+
+ // Construct from WordInfo array. n-th element represents (n+1)-th previous word's information.
+ public PrevWordsInfo(final WordInfo[] prevWordsInfo) {
+ for (int i = 0; i < Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM; i++) {
+ mPrevWordsInfo[i] =
+ (prevWordsInfo.length > i) ? prevWordsInfo[i] : WordInfo.EMPTY_WORD_INFO;
+ }
+ }
+
+ // Create next prevWordsInfo using current prevWordsInfo.
+ public PrevWordsInfo getNextPrevWordsInfo(final WordInfo wordInfo) {
+ final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ prevWordsInfo[0] = wordInfo;
+ for (int i = 1; i < prevWordsInfo.length; i++) {
+ prevWordsInfo[i] = mPrevWordsInfo[i - 1];
+ }
+ return new PrevWordsInfo(prevWordsInfo);
}
public boolean isValid() {
- return mPrevWord != null;
+ return mPrevWordsInfo[0].isValid();
+ }
+
+ public void outputToArray(final int[][] codePointArrays,
+ final boolean[] isBeginningOfSentenceArray) {
+ for (int i = 0; i < mPrevWordsInfo.length; i++) {
+ final WordInfo wordInfo = mPrevWordsInfo[i];
+ if (wordInfo == null || !wordInfo.isValid()) {
+ codePointArrays[i] = new int[0];
+ isBeginningOfSentenceArray[i] = false;
+ continue;
+ }
+ codePointArrays[i] = StringUtils.toCodePointArray(wordInfo.mWord);
+ isBeginningOfSentenceArray[i] = wordInfo.mIsBeginningOfSentence;
+ }
}
@Override
public String toString() {
- return "PrevWord: " + mPrevWord + ", isBeginningOfSentence: "
- + mIsBeginningOfSentence + ".";
+ final StringBuffer builder = new StringBuffer();
+ for (int i = 0; i < mPrevWordsInfo.length; i++) {
+ final WordInfo wordInfo = mPrevWordsInfo[i];
+ builder.append("PrevWord[");
+ builder.append(i);
+ builder.append("]: ");
+ if (!wordInfo.isValid()) {
+ builder.append("Empty. ");
+ continue;
+ }
+ builder.append(wordInfo.mWord);
+ builder.append(", isBeginningOfSentence: ");
+ builder.append(wordInfo.mIsBeginningOfSentence);
+ builder.append(". ");
+ }
+ return builder.toString();
}
}
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index 96476b2ee..c027892ba 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -603,7 +603,7 @@ public final class RichInputConnection {
|| spacingAndPunctuations.isWordConnector(lastChar)) {
return PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
}
- return new PrevWordsInfo(nthPrevWord);
+ return new PrevWordsInfo(new PrevWordsInfo.WordInfo(nthPrevWord));
}
/**
@@ -741,13 +741,12 @@ public final class RichInputConnection {
// Here we test whether we indeed have a period and a space before us. This should not
// be needed, but it's there just in case something went wrong.
final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0);
- final String periodSpace = ". ";
- if (!TextUtils.equals(periodSpace, textBeforeCursor)) {
+ if (!TextUtils.equals(Constants.STRING_PERIOD_AND_SPACE, textBeforeCursor)) {
// Theoretically we should not be coming here if there isn't ". " before the
// cursor, but the application may be changing the text while we are typing, so
// anything goes. We should not crash.
Log.d(TAG, "Tried to revert double-space combo but we didn't find "
- + "\"" + periodSpace + "\" just before the cursor.");
+ + "\"" + Constants.STRING_PERIOD_AND_SPACE + "\" just before the cursor.");
return false;
}
// Double-space results in ". ". A backspace to cancel this should result in a single
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 9d03e8a43..e43db352d 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -123,39 +123,27 @@ public final class Suggest {
suggestionsContainer.set(i, transformedWordInfo);
}
}
- SuggestedWordInfo.removeDups(typedWord, suggestionsContainer);
+ final boolean didRemoveTypedWord =
+ SuggestedWordInfo.removeDups(typedWord, suggestionsContainer);
- // If resumed, then we don't want to upcase everything: resuming on a fully-capitalized
- // words is rarely done to switch to another fully-capitalized word, but usually to a
- // normal, non-capitalized suggestion.
- final String firstSuggestion;
+ final SuggestedWordInfo firstSuggestedWordInfo;
final String whitelistedWord;
- if (suggestionResults.isEmpty()) {
- whitelistedWord = firstSuggestion = null;
+ if (suggestionsContainer.isEmpty()) {
+ firstSuggestedWordInfo = null;
+ whitelistedWord = null;
} else {
- final SuggestedWordInfo firstSuggestedWordInfo = getTransformedSuggestedWordInfo(
- suggestionResults.first(), suggestionResults.mLocale,
- shouldMakeSuggestionsAllUpperCase, isOnlyFirstCharCapitalized,
- trailingSingleQuotesCount);
- firstSuggestion = firstSuggestedWordInfo.mWord;
+ firstSuggestedWordInfo = suggestionsContainer.get(0);
if (!firstSuggestedWordInfo.isKindOf(SuggestedWordInfo.KIND_WHITELIST)) {
whitelistedWord = null;
} else {
- whitelistedWord = firstSuggestion;
+ whitelistedWord = firstSuggestedWordInfo.mWord;
}
}
- // We allow auto-correction if we have a whitelisted word, or if the word is not a valid
- // word of more than 1 char, except if the first suggestion is the same as the typed string
- // because in this case if it's strong enough to auto-correct that will mistakenly designate
- // the second candidate for auto-correction.
- // TODO: stop relying on indices to find where is the auto-correction in the suggested
- // words, and correct this test.
- final boolean allowsToBeAutoCorrected = (null != whitelistedWord
- && !whitelistedWord.equals(typedWord))
- || (consideredWord.length() > 1 && !mDictionaryFacilitator.isValidWord(
- consideredWord, isOnlyFirstCharCapitalized)
- && !typedWord.equals(firstSuggestion));
+ // We allow auto-correction if we have a whitelisted word, or if the word had more than
+ // one char and was not suggested.
+ final boolean allowsToBeAutoCorrected = (null != whitelistedWord)
+ || (consideredWord.length() > 1 && !didRemoveTypedWord);
final boolean hasAutoCorrection;
// TODO: using isCorrectionEnabled here is not very good. It's probably useless, because
@@ -164,10 +152,10 @@ public final class Suggest {
// the current settings. It may also be useful to know, when the setting is off, whether
// the word *would* have been auto-corrected.
if (!isCorrectionEnabled || !allowsToBeAutoCorrected || isPrediction
- || suggestionResults.isEmpty() || wordComposer.hasDigits()
+ || null == firstSuggestedWordInfo || wordComposer.hasDigits()
|| wordComposer.isMostlyCaps() || wordComposer.isResumed()
|| !mDictionaryFacilitator.hasInitializedMainDictionary()
- || suggestionResults.first().isKindOf(SuggestedWordInfo.KIND_SHORTCUT)) {
+ || firstSuggestedWordInfo.isKindOf(SuggestedWordInfo.KIND_SHORTCUT)) {
// If we don't have a main dictionary, we never want to auto-correct. The reason for
// this is, the user may have a contact whose name happens to match a valid word in
// their language, and it will unexpectedly auto-correct. For example, if the user
@@ -179,7 +167,7 @@ public final class Suggest {
hasAutoCorrection = false;
} else {
hasAutoCorrection = AutoCorrectionUtils.suggestionExceedsAutoCorrectionThreshold(
- suggestionResults.first(), consideredWord, mAutoCorrectionThreshold);
+ firstSuggestedWordInfo, consideredWord, mAutoCorrectionThreshold);
}
if (!TextUtils.isEmpty(typedWord)) {
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index f22af7991..e587b18c9 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -330,29 +330,37 @@ public class SuggestedWords {
}
// This will always remove the higher index if a duplicate is found.
- public static void removeDups(final String typedWord,
+ public static boolean removeDups(final String typedWord,
ArrayList<SuggestedWordInfo> candidates) {
if (candidates.isEmpty()) {
- return;
+ return false;
}
+ final boolean didRemoveTypedWord;
if (!TextUtils.isEmpty(typedWord)) {
- removeSuggestedWordInfoFrom(typedWord, candidates, -1 /* startIndexExclusive */);
+ didRemoveTypedWord = removeSuggestedWordInfoFrom(typedWord, candidates,
+ -1 /* startIndexExclusive */);
+ } else {
+ didRemoveTypedWord = false;
}
for (int i = 0; i < candidates.size(); ++i) {
removeSuggestedWordInfoFrom(candidates.get(i).mWord, candidates,
i /* startIndexExclusive */);
}
+ return didRemoveTypedWord;
}
- private static void removeSuggestedWordInfoFrom(final String word,
+ private static boolean removeSuggestedWordInfoFrom(final String word,
final ArrayList<SuggestedWordInfo> candidates, final int startIndexExclusive) {
+ boolean didRemove = false;
for (int i = startIndexExclusive + 1; i < candidates.size(); ++i) {
final SuggestedWordInfo previous = candidates.get(i);
if (word.equals(previous.mWord)) {
+ didRemove = true;
candidates.remove(i);
--i;
}
}
+ return didRemove;
}
}
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index faa558257..ec57cd71f 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -399,7 +399,7 @@ public final class InputLogic {
}
boolean didAutoCorrect = false;
- if (Event.NOT_A_KEY_CODE != event.mKeyCode) {
+ if (event.isFunctionalKeyEvent()) {
// A special key, like delete, shift, emoji, or the settings key.
switch (event.mKeyCode) {
case Constants.CODE_DELETE:
@@ -728,13 +728,13 @@ public final class InputLogic {
mConnection.setComposingText(getTextWithUnderline(
mWordComposer.getTypedWord()), 1);
} else {
- final boolean swapWeakSpace = maybeStripSpace(inputTransaction,
- inputTransaction.mEvent.isSuggestionStripPress());
+ final boolean swapWeakSpace = tryStripSpaceAndReturnWhetherShouldSwapInstead(
+ inputTransaction, inputTransaction.mEvent.isSuggestionStripPress());
- sendKeyCodePoint(settingsValues, codePoint);
-
- if (swapWeakSpace && swapSwapperAndSpace(inputTransaction)) {
+ if (swapWeakSpace && trySwapSwapperAndSpace(inputTransaction)) {
mSpaceState = SpaceState.WEAK;
+ } else {
+ sendKeyCodePoint(settingsValues, codePoint);
}
// In case the "add to dictionary" hint was still displayed.
mSuggestionStripViewAccessor.dismissAddToDictionaryHint();
@@ -779,7 +779,8 @@ public final class InputLogic {
}
}
- final boolean swapWeakSpace = maybeStripSpace(inputTransaction, isFromSuggestionStrip);
+ final boolean swapWeakSpace = tryStripSpaceAndReturnWhetherShouldSwapInstead(
+ inputTransaction, isFromSuggestionStrip);
final boolean isInsideDoubleQuoteOrAfterDigit = Constants.CODE_DOUBLE_QUOTE == codePoint
&& mConnection.isInsideDoubleQuoteOrAfterDigit();
@@ -803,14 +804,14 @@ public final class InputLogic {
promotePhantomSpace(settingsValues);
}
- if (!shouldAvoidSendingCode) {
- sendKeyCodePoint(settingsValues, codePoint);
- }
-
- if (Constants.CODE_SPACE == codePoint) {
- if (maybeDoubleSpacePeriod(inputTransaction)) {
- mSpaceState = SpaceState.DOUBLE;
- } else if (!mSuggestedWords.isPunctuationSuggestions()) {
+ if (tryPerformDoubleSpacePeriod(inputTransaction)) {
+ mSpaceState = SpaceState.DOUBLE;
+ inputTransaction.setRequiresUpdateSuggestions();
+ } else if (swapWeakSpace && trySwapSwapperAndSpace(inputTransaction)) {
+ mSpaceState = SpaceState.SWAP_PUNCTUATION;
+ mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
+ } else if (Constants.CODE_SPACE == codePoint) {
+ if (!mSuggestedWords.isPunctuationSuggestions()) {
mSpaceState = SpaceState.WEAK;
}
@@ -818,12 +819,12 @@ public final class InputLogic {
if (wasComposingWord || mSuggestedWords.isEmpty()) {
inputTransaction.setRequiresUpdateSuggestions();
}
+
+ if (!shouldAvoidSendingCode) {
+ sendKeyCodePoint(settingsValues, codePoint);
+ }
} else {
- if (swapWeakSpace) {
- if (swapSwapperAndSpace(inputTransaction)) {
- mSpaceState = SpaceState.SWAP_PUNCTUATION;
- }
- } else if ((SpaceState.PHANTOM == inputTransaction.mSpaceState
+ if ((SpaceState.PHANTOM == inputTransaction.mSpaceState
&& settingsValues.isUsuallyFollowedBySpace(codePoint))
|| (Constants.CODE_DOUBLE_QUOTE == codePoint
&& isInsideDoubleQuoteOrAfterDigit)) {
@@ -841,6 +842,8 @@ public final class InputLogic {
mSpaceState = SpaceState.PHANTOM;
}
+ sendKeyCodePoint(settingsValues, codePoint);
+
// Set punctuation right away. onUpdateSelection will fire but tests whether it is
// already displayed or not, so it's okay.
mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
@@ -1008,17 +1011,16 @@ public final class InputLogic {
* @param inputTransaction The transaction in progress.
* @return true if the swap has been performed, false if it was prevented by preliminary checks.
*/
- private boolean swapSwapperAndSpace(final InputTransaction inputTransaction) {
- final CharSequence lastTwo = mConnection.getTextBeforeCursor(2, 0);
- // It is guaranteed lastTwo.charAt(1) is a swapper - else this method is not called.
- if (lastTwo != null && lastTwo.length() == 2 && lastTwo.charAt(0) == Constants.CODE_SPACE) {
- mConnection.deleteSurroundingText(2, 0);
- final String text = lastTwo.charAt(1) + " ";
- mConnection.commitText(text, 1);
- inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
- return true;
+ private boolean trySwapSwapperAndSpace(final InputTransaction inputTransaction) {
+ final int codePointBeforeCursor = mConnection.getCodePointBeforeCursor();
+ if (Constants.CODE_SPACE != codePointBeforeCursor) {
+ return false;
}
- return false;
+ mConnection.deleteSurroundingText(1, 0);
+ final String text = inputTransaction.mEvent.getTextToCommit() + " ";
+ mConnection.commitText(text, 1);
+ inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
+ return true;
}
/*
@@ -1027,8 +1029,8 @@ public final class InputLogic {
* @param isFromSuggestionStrip Whether this code point is coming from the suggestion strip.
* @return whether we should swap the space instead of removing it.
*/
- private boolean maybeStripSpace(final InputTransaction inputTransaction,
- final boolean isFromSuggestionStrip) {
+ private boolean tryStripSpaceAndReturnWhetherShouldSwapInstead(
+ final InputTransaction inputTransaction, final boolean isFromSuggestionStrip) {
final int codePoint = inputTransaction.mEvent.mCodePoint;
if (Constants.CODE_ENTER == codePoint &&
SpaceState.SWAP_PUNCTUATION == inputTransaction.mSpaceState) {
@@ -1069,36 +1071,37 @@ public final class InputLogic {
* period-space sequence of characters. This typically happens when the user presses space
* twice in a row quickly.
* This method will check that the double-space-to-period is active in settings, that the
- * two spaces have been input close enough together, and that the previous character allows
- * for the transformation to take place. If all of these conditions are fulfilled, this
- * method applies the transformation and returns true. Otherwise, it does nothing and
- * returns false.
+ * two spaces have been input close enough together, that the typed character is a space
+ * and that the previous character allows for the transformation to take place. If all of
+ * these conditions are fulfilled, this method applies the transformation and returns true.
+ * Otherwise, it does nothing and returns false.
*
* @param inputTransaction The transaction in progress.
* @return true if we applied the double-space-to-period transformation, false otherwise.
*/
- private boolean maybeDoubleSpacePeriod(final InputTransaction inputTransaction) {
- if (!inputTransaction.mSettingsValues.mUseDoubleSpacePeriod) return false;
- // This can't happen right now because we don't call this method when the code is not space
- if (Constants.CODE_SPACE != inputTransaction.mEvent.mCodePoint) return false;
- if (!isDoubleSpacePeriodCountdownActive(inputTransaction)) return false;
- // We only do this when we see two spaces and an accepted code point before the cursor.
- // The code point may be a surrogate pair but the two spaces may not, so we need 4 chars.
- final CharSequence lastThree = mConnection.getTextBeforeCursor(4, 0);
- if (null == lastThree) return false;
- final int length = lastThree.length();
- if (length < 3) return false;
- if (lastThree.charAt(length - 1) != Constants.CODE_SPACE) return false;
- if (lastThree.charAt(length - 2) != Constants.CODE_SPACE) return false;
- // We know there are spaces in pos -1 and -2, and we have at least three chars.
- // If we have only three chars, isSurrogatePairs can't return true as charAt(1) is a space,
- // so this is fine.
+ private boolean tryPerformDoubleSpacePeriod(final InputTransaction inputTransaction) {
+ // Check the setting, the typed character and the countdown. If any of the conditions is
+ // not fulfilled, return false.
+ if (!inputTransaction.mSettingsValues.mUseDoubleSpacePeriod
+ || Constants.CODE_SPACE != inputTransaction.mEvent.mCodePoint
+ || !isDoubleSpacePeriodCountdownActive(inputTransaction)) {
+ return false;
+ }
+ // We only do this when we see one space and an accepted code point before the cursor.
+ // The code point may be a surrogate pair but the space may not, so we need 3 chars.
+ final CharSequence lastTwo = mConnection.getTextBeforeCursor(3, 0);
+ if (null == lastTwo) return false;
+ final int length = lastTwo.length();
+ if (length < 2) return false;
+ if (lastTwo.charAt(length - 1) != Constants.CODE_SPACE) return false;
+ // We know there is a space in pos -1, and we have at least two chars. If we have only two
+ // chars, isSurrogatePairs can't return true as charAt(1) is a space, so this is fine.
final int firstCodePoint =
- Character.isSurrogatePair(lastThree.charAt(0), lastThree.charAt(1)) ?
- Character.codePointAt(lastThree, 0) : lastThree.charAt(length - 3);
+ Character.isSurrogatePair(lastTwo.charAt(0), lastTwo.charAt(1)) ?
+ Character.codePointAt(lastTwo, length - 3) : lastTwo.charAt(length - 2);
if (canBeFollowedByDoubleSpacePeriod(firstCodePoint)) {
cancelDoubleSpacePeriodCountdown();
- mConnection.deleteSurroundingText(2, 0);
+ mConnection.deleteSurroundingText(1, 0);
final String textToInsert = inputTransaction.mSettingsValues.mSpacingAndPunctuations
.mSentenceSeparatorAndSpace;
mConnection.commitText(textToInsert, 1);
@@ -1533,7 +1536,8 @@ public final class InputLogic {
} else {
return LastComposedWord.NOT_A_COMPOSED_WORD == mLastComposedWord ?
PrevWordsInfo.BEGINNING_OF_SENTENCE :
- new PrevWordsInfo(mLastComposedWord.mCommittedWord.toString());
+ new PrevWordsInfo(new PrevWordsInfo.WordInfo(
+ mLastComposedWord.mCommittedWord.toString()));
}
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
index 3916fc24c..a98b0f156 100644
--- a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
@@ -60,7 +60,7 @@ public class UserHistoryDictionary extends DecayingExpandableBinaryDictionaryBas
public static void addToDictionary(final ExpandableBinaryDictionary userHistoryDictionary,
final PrevWordsInfo prevWordsInfo, final String word, final boolean isValid,
final int timestamp, final DistracterFilter distracterFilter) {
- final String prevWord = prevWordsInfo.mPrevWord;
+ final String prevWord = prevWordsInfo.mPrevWordsInfo[0].mWord;
if (word.length() >= Constants.DICTIONARY_MAX_WORD_LENGTH ||
(prevWord != null && prevWord.length() >= Constants.DICTIONARY_MAX_WORD_LENGTH)) {
return;
@@ -75,7 +75,13 @@ public class UserHistoryDictionary extends DecayingExpandableBinaryDictionaryBas
return;
}
if (null != prevWord) {
- userHistoryDictionary.addNgramEntry(prevWordsInfo, word, frequency, timestamp);
+ if (prevWordsInfo.mPrevWordsInfo[0].mIsBeginningOfSentence) {
+ // Beginning-of-Sentence n-gram entry is treated as a n-gram entry of invalid word.
+ userHistoryDictionary.addNgramEntry(prevWordsInfo, word,
+ FREQUENCY_FOR_WORDS_NOT_IN_DICTS, timestamp);
+ } else {
+ userHistoryDictionary.addNgramEntry(prevWordsInfo, word, frequency, timestamp);
+ }
}
}
}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 8d495646d..d0316242b 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -37,6 +37,7 @@ import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.LocaleUtils;
+import com.android.inputmethod.latin.utils.ScriptUtils;
import com.android.inputmethod.latin.utils.StringUtils;
import java.lang.ref.WeakReference;
@@ -78,40 +79,8 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
private final HashSet<WeakReference<DictionaryCollection>> mDictionaryCollectionsList =
new HashSet<>();
- public static final int SCRIPT_LATIN = 0;
- public static final int SCRIPT_CYRILLIC = 1;
- public static final int SCRIPT_GREEK = 2;
public static final String SINGLE_QUOTE = "\u0027";
public static final String APOSTROPHE = "\u2019";
- private static final TreeMap<String, Integer> mLanguageToScript;
- static {
- // List of the supported languages and their associated script. We won't check
- // words written in another script than the selected script, because we know we
- // don't have those in our dictionary so we will underline everything and we
- // will never have any suggestions, so it makes no sense checking them, and this
- // is done in {@link #shouldFilterOut}. Also, the script is used to choose which
- // proximity to pass to the dictionary descent algorithm.
- // IMPORTANT: this only contains languages - do not write countries in there.
- // Only the language is searched from the map.
- mLanguageToScript = new TreeMap<>();
- mLanguageToScript.put("cs", SCRIPT_LATIN);
- mLanguageToScript.put("da", SCRIPT_LATIN);
- mLanguageToScript.put("de", SCRIPT_LATIN);
- mLanguageToScript.put("el", SCRIPT_GREEK);
- mLanguageToScript.put("en", SCRIPT_LATIN);
- mLanguageToScript.put("es", SCRIPT_LATIN);
- mLanguageToScript.put("fi", SCRIPT_LATIN);
- mLanguageToScript.put("fr", SCRIPT_LATIN);
- mLanguageToScript.put("hr", SCRIPT_LATIN);
- mLanguageToScript.put("it", SCRIPT_LATIN);
- mLanguageToScript.put("lt", SCRIPT_LATIN);
- mLanguageToScript.put("lv", SCRIPT_LATIN);
- mLanguageToScript.put("nb", SCRIPT_LATIN);
- mLanguageToScript.put("nl", SCRIPT_LATIN);
- mLanguageToScript.put("pt", SCRIPT_LATIN);
- mLanguageToScript.put("sl", SCRIPT_LATIN);
- mLanguageToScript.put("ru", SCRIPT_CYRILLIC);
- }
@Override public void onCreate() {
super.onCreate();
@@ -122,22 +91,13 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
onSharedPreferenceChanged(prefs, PREF_USE_CONTACTS_KEY);
}
- public static int getScriptFromLocale(final Locale locale) {
- final Integer script = mLanguageToScript.get(locale.getLanguage());
- if (null == script) {
- throw new RuntimeException("We have been called with an unsupported language: \""
- + locale.getLanguage() + "\". Framework bug?");
- }
- return script;
- }
-
private static String getKeyboardLayoutNameForScript(final int script) {
switch (script) {
- case AndroidSpellCheckerService.SCRIPT_LATIN:
+ case ScriptUtils.SCRIPT_LATIN:
return "qwerty";
- case AndroidSpellCheckerService.SCRIPT_CYRILLIC:
+ case ScriptUtils.SCRIPT_CYRILLIC:
return "east_slavic";
- case AndroidSpellCheckerService.SCRIPT_GREEK:
+ case ScriptUtils.SCRIPT_GREEK:
return "greek";
default:
throw new RuntimeException("Wrong script supplied: " + script);
@@ -413,7 +373,7 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
}
public DictAndKeyboard createDictAndKeyboard(final Locale locale) {
- final int script = getScriptFromLocale(locale);
+ final int script = ScriptUtils.getScriptFromLocale(locale);
final String keyboardLayoutName = getKeyboardLayoutNameForScript(script);
final InputMethodSubtype subtype = AdditionalSubtypeUtils.createAdditionalSubtype(
locale.toString(), keyboardLayoutName, null);
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java
index 55274cfe2..6bfd354ea 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java
@@ -61,7 +61,8 @@ public final class AndroidSpellCheckerSession extends AndroidWordLevelSpellCheck
final int offset = ssi.getOffsetAt(i);
final int length = ssi.getLengthAt(i);
final String subText = typedText.substring(offset, offset + length);
- final PrevWordsInfo prevWordsInfo = new PrevWordsInfo(currentWord);
+ final PrevWordsInfo prevWordsInfo =
+ new PrevWordsInfo(new PrevWordsInfo.WordInfo(currentWord));
currentWord = subText;
if (!subText.contains(AndroidSpellCheckerService.SINGLE_QUOTE)) {
continue;
@@ -203,7 +204,8 @@ public final class AndroidSpellCheckerSession extends AndroidWordLevelSpellCheck
} else {
prevWord = null;
}
- final PrevWordsInfo prevWordsInfo = new PrevWordsInfo(prevWord);
+ final PrevWordsInfo prevWordsInfo =
+ new PrevWordsInfo(new PrevWordsInfo.WordInfo(prevWord));
retval[i] = onGetSuggestionsInternal(textInfos[i], prevWordsInfo, suggestionsLimit);
retval[i].setCookieAndSequence(textInfos[i].getCookie(),
textInfos[i].getSequence());
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index 54eebe399..be33f339d 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -36,6 +36,7 @@ import com.android.inputmethod.latin.WordComposer;
import com.android.inputmethod.latin.spellcheck.AndroidSpellCheckerService.SuggestionsGatherer;
import com.android.inputmethod.latin.utils.CoordinateUtils;
import com.android.inputmethod.latin.utils.LocaleUtils;
+import com.android.inputmethod.latin.utils.ScriptUtils;
import com.android.inputmethod.latin.utils.StringUtils;
import java.util.ArrayList;
@@ -72,10 +73,10 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
// TODO: Support n-gram input
private static String generateKey(final String query, final PrevWordsInfo prevWordsInfo) {
- if (TextUtils.isEmpty(query) || TextUtils.isEmpty(prevWordsInfo.mPrevWord)) {
+ if (TextUtils.isEmpty(query) || !prevWordsInfo.isValid()) {
return query;
}
- return query + CHAR_DELIMITER + prevWordsInfo.mPrevWord;
+ return query + CHAR_DELIMITER + prevWordsInfo;
}
public SuggestionsParams getSuggestionsFromCache(String query,
@@ -116,7 +117,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
final String localeString = getLocale();
mDictionaryPool = mService.getDictionaryPool(localeString);
mLocale = LocaleUtils.constructLocaleFromString(localeString);
- mScript = AndroidSpellCheckerService.getScriptFromLocale(mLocale);
+ mScript = ScriptUtils.getScriptFromLocale(mLocale);
}
@Override
@@ -125,44 +126,6 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
cres.unregisterContentObserver(mObserver);
}
- /*
- * Returns whether the code point is a letter that makes sense for the specified
- * locale for this spell checker.
- * The dictionaries supported by Latin IME are described in res/xml/spellchecker.xml
- * and is limited to EFIGS languages and Russian.
- * Hence at the moment this explicitly tests for Cyrillic characters or Latin characters
- * as appropriate, and explicitly excludes CJK, Arabic and Hebrew characters.
- */
- private static boolean isLetterCheckableByLanguage(final int codePoint,
- final int script) {
- switch (script) {
- case AndroidSpellCheckerService.SCRIPT_LATIN:
- // Our supported latin script dictionaries (EFIGS) at the moment only include
- // characters in the C0, C1, Latin Extended A and B, IPA extensions unicode
- // blocks. As it happens, those are back-to-back in the code range 0x40 to 0x2AF,
- // so the below is a very efficient way to test for it. As for the 0-0x3F, it's
- // excluded from isLetter anyway.
- return codePoint <= 0x2AF && Character.isLetter(codePoint);
- case AndroidSpellCheckerService.SCRIPT_CYRILLIC:
- // All Cyrillic characters are in the 400~52F block. There are some in the upper
- // Unicode range, but they are archaic characters that are not used in modern
- // Russian and are not used by our dictionary.
- return codePoint >= 0x400 && codePoint <= 0x52F && Character.isLetter(codePoint);
- case AndroidSpellCheckerService.SCRIPT_GREEK:
- // Greek letters are either in the 370~3FF range (Greek & Coptic), or in the
- // 1F00~1FFF range (Greek extended). Our dictionary contains both sort of characters.
- // Our dictionary also contains a few words with 0xF2; it would be best to check
- // if that's correct, but a web search does return results for these words so
- // they are probably okay.
- return (codePoint >= 0x370 && codePoint <= 0x3FF)
- || (codePoint >= 0x1F00 && codePoint <= 0x1FFF)
- || codePoint == 0xF2;
- default:
- // Should never come here
- throw new RuntimeException("Impossible value of script: " + script);
- }
- }
-
private static final int CHECKABILITY_CHECKABLE = 0;
private static final int CHECKABILITY_TOO_MANY_NON_LETTERS = 1;
private static final int CHECKABILITY_CONTAINS_PERIOD = 2;
@@ -189,7 +152,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
// Filter by first letter
final int firstCodePoint = text.codePointAt(0);
// Filter out words that don't start with a letter or an apostrophe
- if (!isLetterCheckableByLanguage(firstCodePoint, script)
+ if (!ScriptUtils.isLetterCheckableByScript(firstCodePoint, script)
&& '\'' != firstCodePoint) return CHECKABILITY_FIRST_LETTER_UNCHECKABLE;
// Filter contents
@@ -210,7 +173,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
if (Constants.CODE_PERIOD == codePoint) {
return CHECKABILITY_CONTAINS_PERIOD;
}
- if (isLetterCheckableByLanguage(codePoint, script)) ++letterCount;
+ if (ScriptUtils.isLetterCheckableByScript(codePoint, script)) ++letterCount;
}
// Guestimate heuristic: perform spell checking if at least 3/4 of the characters
// in this word are letters
@@ -295,7 +258,9 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
return new SuggestionsInfo(SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO
| SuggestionsInfo.RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS,
new String[] {
- TextUtils.join(Constants.STRING_SPACE, splitText) });
+ TextUtils.join(Constants.STRING_SPACE, splitText),
+ TextUtils.join(Constants.STRING_PERIOD_AND_SPACE,
+ splitText) });
}
}
return dictInfo.mDictionary.isValidWord(inText)
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
index 4248bebf6..9ec19efa8 100644
--- a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
+++ b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
@@ -117,7 +117,8 @@ public final class LanguageModelParam {
continue;
}
languageModelParams.add(languageModelParam);
- prevWordsInfo = new PrevWordsInfo(languageModelParam.mTargetWord);
+ prevWordsInfo = prevWordsInfo.getNextPrevWordsInfo(
+ new PrevWordsInfo.WordInfo(tempWord));
}
return languageModelParams;
}
@@ -153,7 +154,7 @@ public final class LanguageModelParam {
final DistracterFilter distracterFilter) {
final String word;
if (StringUtils.getCapitalizationType(targetWord) == StringUtils.CAPITALIZE_FIRST
- && prevWordsInfo.mPrevWord == null && !isValidWord) {
+ && !prevWordsInfo.isValid() && !isValidWord) {
word = targetWord.toLowerCase(locale);
} else {
word = targetWord;
@@ -167,7 +168,7 @@ public final class LanguageModelParam {
}
final int unigramProbability = isValidWord ?
UNIGRAM_PROBABILITY_FOR_VALID_WORD : UNIGRAM_PROBABILITY_FOR_OOV_WORD;
- if (prevWordsInfo.mPrevWord == null) {
+ if (!prevWordsInfo.isValid()) {
if (DEBUG) {
Log.d(TAG, "--- add unigram: current("
+ (isValidWord ? "Valid" : "OOV") + ") = " + word);
@@ -175,12 +176,12 @@ public final class LanguageModelParam {
return new LanguageModelParam(word, unigramProbability, timestamp);
}
if (DEBUG) {
- Log.d(TAG, "--- add bigram: prev = " + prevWordsInfo.mPrevWord + ", current("
+ Log.d(TAG, "--- add bigram: prev = " + prevWordsInfo + ", current("
+ (isValidWord ? "Valid" : "OOV") + ") = " + word);
}
final int bigramProbability = isValidWord ?
BIGRAM_PROBABILITY_FOR_VALID_WORD : BIGRAM_PROBABILITY_FOR_OOV_WORD;
- return new LanguageModelParam(prevWordsInfo.mPrevWord, word, unigramProbability,
- bigramProbability, timestamp);
+ return new LanguageModelParam(prevWordsInfo.mPrevWordsInfo[0].mWord, word,
+ unigramProbability, bigramProbability, timestamp);
}
}
diff --git a/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java b/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
new file mode 100644
index 000000000..4dfb38d80
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import java.util.Locale;
+import java.util.TreeMap;
+
+/**
+ * A class to help with handling different writing scripts.
+ */
+public class ScriptUtils {
+ public static final int SCRIPT_LATIN = 0;
+ public static final int SCRIPT_CYRILLIC = 1;
+ public static final int SCRIPT_GREEK = 2;
+ public static final TreeMap<String, Integer> mLanguageToScript;
+ static {
+ // List of the supported languages and their associated script. We won't check
+ // words written in another script than the selected script, because we know we
+ // don't have those in our dictionary so we will underline everything and we
+ // will never have any suggestions, so it makes no sense checking them, and this
+ // is done in {@link #shouldFilterOut}. Also, the script is used to choose which
+ // proximity to pass to the dictionary descent algorithm.
+ // IMPORTANT: this only contains languages - do not write countries in there.
+ // Only the language is searched from the map.
+ mLanguageToScript = new TreeMap<>();
+ mLanguageToScript.put("cs", SCRIPT_LATIN);
+ mLanguageToScript.put("da", SCRIPT_LATIN);
+ mLanguageToScript.put("de", SCRIPT_LATIN);
+ mLanguageToScript.put("el", SCRIPT_GREEK);
+ mLanguageToScript.put("en", SCRIPT_LATIN);
+ mLanguageToScript.put("es", SCRIPT_LATIN);
+ mLanguageToScript.put("fi", SCRIPT_LATIN);
+ mLanguageToScript.put("fr", SCRIPT_LATIN);
+ mLanguageToScript.put("hr", SCRIPT_LATIN);
+ mLanguageToScript.put("it", SCRIPT_LATIN);
+ mLanguageToScript.put("lt", SCRIPT_LATIN);
+ mLanguageToScript.put("lv", SCRIPT_LATIN);
+ mLanguageToScript.put("nb", SCRIPT_LATIN);
+ mLanguageToScript.put("nl", SCRIPT_LATIN);
+ mLanguageToScript.put("pt", SCRIPT_LATIN);
+ mLanguageToScript.put("sl", SCRIPT_LATIN);
+ mLanguageToScript.put("ru", SCRIPT_CYRILLIC);
+ }
+ /*
+ * Returns whether the code point is a letter that makes sense for the specified
+ * locale for this spell checker.
+ * The dictionaries supported by Latin IME are described in res/xml/spellchecker.xml
+ * and is limited to EFIGS languages and Russian.
+ * Hence at the moment this explicitly tests for Cyrillic characters or Latin characters
+ * as appropriate, and explicitly excludes CJK, Arabic and Hebrew characters.
+ */
+ public static boolean isLetterCheckableByScript(final int codePoint, final int script) {
+ switch (script) {
+ case SCRIPT_LATIN:
+ // Our supported latin script dictionaries (EFIGS) at the moment only include
+ // characters in the C0, C1, Latin Extended A and B, IPA extensions unicode
+ // blocks. As it happens, those are back-to-back in the code range 0x40 to 0x2AF,
+ // so the below is a very efficient way to test for it. As for the 0-0x3F, it's
+ // excluded from isLetter anyway.
+ return codePoint <= 0x2AF && Character.isLetter(codePoint);
+ case SCRIPT_CYRILLIC:
+ // All Cyrillic characters are in the 400~52F block. There are some in the upper
+ // Unicode range, but they are archaic characters that are not used in modern
+ // Russian and are not used by our dictionary.
+ return codePoint >= 0x400 && codePoint <= 0x52F && Character.isLetter(codePoint);
+ case SCRIPT_GREEK:
+ // Greek letters are either in the 370~3FF range (Greek & Coptic), or in the
+ // 1F00~1FFF range (Greek extended). Our dictionary contains both sort of characters.
+ // Our dictionary also contains a few words with 0xF2; it would be best to check
+ // if that's correct, but a web search does return results for these words so
+ // they are probably okay.
+ return (codePoint >= 0x370 && codePoint <= 0x3FF)
+ || (codePoint >= 0x1F00 && codePoint <= 0x1FFF)
+ || codePoint == 0xF2;
+ default:
+ // Should never come here
+ throw new RuntimeException("Impossible value of script: " + script);
+ }
+ }
+
+ public static int getScriptFromLocale(final Locale locale) {
+ final Integer script = mLanguageToScript.get(locale.getLanguage());
+ if (null == script) {
+ throw new RuntimeException("We have been called with an unsupported language: \""
+ + locale.getLanguage() + "\". Framework bug?");
+ }
+ return script;
+ }
+}