diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index 658f476..2d613d6 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -26,7 +26,7 @@
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> retter <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> til <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> udfører automatisk stavekontrol"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Tastekode %d"</string>
-    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift-tast"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift er aktiveret (tryk for at deaktivere)"</string>
     <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock er slået til (tryk for at deaktivere)"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Slet"</string>
@@ -36,9 +36,9 @@
     <string name="spoken_description_settings" msgid="7281251004003143204">"Indstillinger"</string>
     <string name="spoken_description_tab" msgid="8210782459446866716">"Fane"</string>
     <string name="spoken_description_space" msgid="5908716896642059145">"Mellemrum"</string>
-    <string name="spoken_description_mic" msgid="6153138783813452464">"Taleinput"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Stemmeinput"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
-    <string name="spoken_description_return" msgid="3183692287397645708">"Tilbage"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Return"</string>
     <string name="spoken_description_search" msgid="5099937658231911288">"Søgning"</string>
     <string name="spoken_description_dot" msgid="5644176501632325560">"Prik"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"Skift sprog"</string>
diff --git a/java/res/values-fi/strings-talkback-descriptions.xml b/java/res/values-fi/strings-talkback-descriptions.xml
new file mode 100644
index 0000000..2d0d7a7
--- /dev/null
+++ b/java/res/values-fi/strings-talkback-descriptions.xml
@@ -0,0 +1,72 @@
+<?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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Liitä kuulokkeet, niin kuulet mitä näppäimiä painat kirjoittaessasi salasanaa."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Nykyinen teksti on %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Ei kirjoitettua tekstiä"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korjaa sanan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sanaksi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> suorittaa automaattisen korjauksen"</string>
+    <string name="spoken_description_unknown" msgid="2382510329910793539">"Näppäimen koodi %d"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Vaihto"</string>
+    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Vaihto päällä (poista käytöstä napauttamalla)"</string>
+    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock päällä (poista käytöstä napauttamalla)"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Delete"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbolit"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Kirjaimet"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Numerot"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Asetukset"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Sarkain"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Välilyönti"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Äänisyöte"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Enter"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Haku"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Piste"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Vaihda kieli"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Seuraava"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Edellinen"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Vaihto päällä"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock päällä"</string>
+    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Vaihto pois päältä"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolit-tila"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Näppäimistötila"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Puhelintila"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Puhelinsymbolit-tila"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Näppäimistö on piilotettu"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"Näytetään näppäimistö <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"päivämäärä"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"päivämäärä ja aika"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"sähköposti"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"viestit"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"numero"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"puhelin"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"teksti"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"aika"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL-osoite"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Viimeisimmät"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Ihmiset"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Esineet"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Luonto"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Paikat"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Symbolit"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Hymiöt"</string>
+</resources>
diff --git a/java/res/values-ms-rMY/strings-talkback-descriptions.xml b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
new file mode 100644
index 0000000..29c5fd8
--- /dev/null
+++ b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
@@ -0,0 +1,72 @@
+<?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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Pasangkan set kepala untuk mendengar kekunci kata laluan disebut dengan kuat."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Teks semasa adalah %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Tiada teks dimasukkan"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> membetulkan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan auto pembetulan"</string>
+    <string name="spoken_description_unknown" msgid="2382510329910793539">"Kod kunci %d"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
+    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Kunci anjak dihidupkan (ketik untuk melumpuhkan)"</string>
+    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Kunci huruf besar dihidupkan (ketik untuk melumpuhkan)"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Padam"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simbol"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Huruf"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Nombor"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Tetapan"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Tab"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"{0}&lt;td class=\"shortcuts\"&gt;{/0} Space"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Input suara"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Kembali"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Carian"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Titik"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Tukar bahasa"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Slps"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Sebelumnya"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Kunci anjak didayakan"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Kunci huruf besar didayakan"</string>
+    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Kunci anjak dilumpuhkan"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mod simbol"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mod huruf"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mod telefon"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mod simbol telefon"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Papan kekunci tersembunyi"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"Menunjukkan papan kekunci <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"tarikh"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"tarikh dan masa"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"e-mel"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"pemesejan"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"nombor"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"telefon"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"teks"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"masa"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Terkini"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Orang"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Objek"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Alam Semula Jadi"</string>
+    <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>
+</resources>
diff --git a/java/res/values-nb/strings-talkback-descriptions.xml b/java/res/values-nb/strings-talkback-descriptions.xml
index 5a29d80..96edf38 100644
--- a/java/res/values-nb/strings-talkback-descriptions.xml
+++ b/java/res/values-nb/strings-talkback-descriptions.xml
@@ -60,7 +60,7 @@
     <string name="keyboard_mode_number" msgid="5395042245837996809">"tall"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"telefon"</string>
     <string name="keyboard_mode_text" msgid="9138789594969187494">"tekst"</string>
-    <string name="keyboard_mode_time" msgid="8558297845514402675">"tid"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"klokkeslett"</string>
     <string name="keyboard_mode_url" msgid="8072011652949962550">"nettadresse"</string>
     <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Nylige"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Personer"</string>
diff --git a/java/res/values-sw/strings-talkback-descriptions.xml b/java/res/values-sw/strings-talkback-descriptions.xml
index 120489f..e9ca282 100644
--- a/java/res/values-sw/strings-talkback-descriptions.xml
+++ b/java/res/values-sw/strings-talkback-descriptions.xml
@@ -20,13 +20,13 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="spoken_use_headphones" msgid="4313642710742229868">"Chomeka kifaa cha sauti ili usikie vitufe vya nenosiri vinayozungumwa kwa sauti."</string>
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Chomeka kifaa cha sauti ili usikie vitufe vya nenosiri vikitamkwa kwa sauti."</string>
     <string name="spoken_current_text_is" msgid="4240549866156675799">"Maandishi ya sasa ni %s"</string>
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Hakuna maandishi yaliyoingizwa"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hurekebisha <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kuwa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hufanya marekebisho otomatiki"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Msimbo wa kitufe %d"</string>
-    <string name="spoken_description_shift" msgid="7209798151676638728">"Badilisha"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift imewashwa (gonga ili kuizima)"</string>
     <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock imewashwa (gonga ili kuizima)"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Futa"</string>
@@ -40,15 +40,15 @@
     <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
     <string name="spoken_description_return" msgid="3183692287397645708">"Rudi"</string>
     <string name="spoken_description_search" msgid="5099937658231911288">"Utafutaji"</string>
-    <string name="spoken_description_dot" msgid="5644176501632325560">"Doa"</string>
-    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Badili lugha"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Nukta"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Badilisha lugha"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"Linalofuata"</string>
-    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Iliyotangulia"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Iililotangulia"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift imewashwa"</string>
-    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Herufi kubwa zimewashwa"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock imewashwa"</string>
     <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift imezimwa"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Hali ya alama"</string>
-    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Hali ya barua"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Hali ya herufi"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Hali ya simu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Hali ya alama za simu"</string>
     <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Kibodi imefichwa"</string>
@@ -62,7 +62,7 @@
     <string name="keyboard_mode_text" msgid="9138789594969187494">"maandishi"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"wakati"</string>
     <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
-    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Zilizotumika karibuni"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Zilizotumika majuzi"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Watu"</string>
     <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Vitu"</string>
     <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Maumbile"</string>
diff --git a/java/res/values-th/strings-talkback-descriptions.xml b/java/res/values-th/strings-talkback-descriptions.xml
index 4e46987..eb712ae 100644
--- a/java/res/values-th/strings-talkback-descriptions.xml
+++ b/java/res/values-th/strings-talkback-descriptions.xml
@@ -35,7 +35,7 @@
     <string name="spoken_description_to_numeric" msgid="4560261331530795682">"หมายเลข"</string>
     <string name="spoken_description_settings" msgid="7281251004003143204">"การตั้งค่า"</string>
     <string name="spoken_description_tab" msgid="8210782459446866716">"แท็บ"</string>
-    <string name="spoken_description_space" msgid="5908716896642059145">"{0}&lt;td{1} {/1}class=\"shortcuts\"&gt;{/0} Space"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"วรรค"</string>
     <string name="spoken_description_mic" msgid="6153138783813452464">"การป้อนข้อมูลด้วยเสียง"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"อีโมจิ"</string>
     <string name="spoken_description_return" msgid="3183692287397645708">"ส่งคืน"</string>
diff --git a/java/res/values-zh-rCN/strings-talkback-descriptions.xml b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
index 73594b2..93f89e0 100644
--- a/java/res/values-zh-rCN/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
@@ -27,8 +27,8 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>键可进行自动更正"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"键码为%d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift模式已启用（点按即可停用）"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"大写锁定模式已启用（点按即可停用）"</string>
+    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"已开启Shift模式（点按即可关闭）"</string>
+    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"已锁定大写模式（点按即可关闭）"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"删除"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"符号"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"字母"</string>
@@ -38,15 +38,15 @@
     <string name="spoken_description_space" msgid="5908716896642059145">"空格"</string>
     <string name="spoken_description_mic" msgid="6153138783813452464">"语音输入"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"表情符号"</string>
-    <string name="spoken_description_return" msgid="3183692287397645708">"返回"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"回车"</string>
     <string name="spoken_description_search" msgid="5099937658231911288">"搜索"</string>
     <string name="spoken_description_dot" msgid="5644176501632325560">"点"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"切换语言"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"下一个"</string>
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"上一个"</string>
-    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift模式已启用"</string>
-    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"大写锁定模式已启用"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift模式已停用"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"已开启Shift模式"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"已锁定大写模式"</string>
+    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"已关闭Shift模式"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符号模式"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"电话模式"</string>
@@ -62,9 +62,9 @@
     <string name="keyboard_mode_text" msgid="9138789594969187494">"文字"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"时间"</string>
     <string name="keyboard_mode_url" msgid="8072011652949962550">"网址"</string>
-    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"最近使用"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"最近用过"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"人物"</string>
-    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"物体"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"物件"</string>
     <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"自然"</string>
     <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"地点"</string>
     <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"符号"</string>
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
index fc3b48c..720cf6b 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
@@ -19,14 +19,12 @@
 import android.graphics.Rect;
 import android.inputmethodservice.InputMethodService;
 import android.os.Bundle;
-import android.os.SystemClock;
 import android.support.v4.view.ViewCompat;
 import android.support.v4.view.accessibility.AccessibilityEventCompat;
 import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
 import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
 import android.support.v4.view.accessibility.AccessibilityRecordCompat;
 import android.util.Log;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.inputmethod.EditorInfo;
@@ -236,27 +234,6 @@
         return info;
     }
 
-    /**
-     * Simulates a key press by injecting touch events into the keyboard view.
-     * This avoids the complexity of trackers and listeners within the keyboard.
-     *
-     * @param key The key to press.
-     */
-    void simulateKeyPress(final Key key) {
-        final int x = key.getHitBox().centerX();
-        final int y = key.getHitBox().centerY();
-        final long downTime = SystemClock.uptimeMillis();
-        final MotionEvent downEvent = MotionEvent.obtain(
-                downTime, downTime, MotionEvent.ACTION_DOWN, x, y, 0);
-        final MotionEvent upEvent = MotionEvent.obtain(
-                downTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0);
-
-        mKeyboardView.onTouchEvent(downEvent);
-        mKeyboardView.onTouchEvent(upEvent);
-        downEvent.recycle();
-        upEvent.recycle();
-    }
-
     @Override
     public boolean performAction(final int virtualViewId, final int action,
             final Bundle arguments) {
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index c8fbb3d..d2031d1 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.inputmethodservice.InputMethodService;
+import android.os.SystemClock;
 import android.support.v4.view.AccessibilityDelegateCompat;
 import android.support.v4.view.ViewCompat;
 import android.support.v4.view.accessibility.AccessibilityEventCompat;
@@ -34,6 +35,7 @@
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.MainKeyboardView;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 public final class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
     private static final AccessibleKeyboardViewProxy sInstance = new AccessibleKeyboardViewProxy();
@@ -66,8 +68,8 @@
     private int mEdgeSlop;
 
     /** The most recently set keyboard mode. */
-    private int mLastKeyboardMode;
-    private static final int NOT_A_KEYBOARD_MODE = -1;
+    private int mLastKeyboardMode = KEYBOARD_IS_HIDDEN;
+    private static final int KEYBOARD_IS_HIDDEN = -1;
 
     public static void init(final InputMethodService inputMethod) {
         sInstance.initInternal(inputMethod);
@@ -123,20 +125,27 @@
         if (keyboard == null) {
             return;
         }
-        mKeyboard = keyboard;
         if (mAccessibilityNodeProvider != null) {
             mAccessibilityNodeProvider.setKeyboard(keyboard);
         }
-        final int keyboardMode = keyboard.mId.mMode;
+        final Keyboard lastKeyboard = mKeyboard;
+        final int lastKeyboardMode = mLastKeyboardMode;
+        mKeyboard = keyboard;
+        mLastKeyboardMode = keyboard.mId.mMode;
 
         // Since this method is called even when accessibility is off, make sure
-        // to check the state before announcing anything. Also, don't announce
-        // changes within the same mode.
-        if (AccessibilityUtils.getInstance().isAccessibilityEnabled()
-                && (mLastKeyboardMode != keyboardMode)) {
-            announceKeyboardMode(keyboardMode);
+        // to check the state before announcing anything.
+        if (!AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
+            return;
         }
-        mLastKeyboardMode = keyboardMode;
+        // Announce the language name only when the language is changed.
+        if (lastKeyboard == null || !lastKeyboard.mId.mSubtype.equals(keyboard.mId.mSubtype)) {
+            announceKeyboardLanguage(keyboard);
+        }
+        // Announce the mode only when the mode is changed.
+        if (lastKeyboardMode != keyboard.mId.mMode) {
+            announceKeyboardMode(keyboard);
+        }
     }
 
     /**
@@ -147,23 +156,35 @@
             return;
         }
         announceKeyboardHidden();
-        mLastKeyboardMode = NOT_A_KEYBOARD_MODE;
+        mLastKeyboardMode = KEYBOARD_IS_HIDDEN;
     }
 
     /**
-     * Announces which type of keyboard is being displayed. If the keyboard type
-     * is unknown, no announcement is made.
+     * Announces which language of keyboard is being displayed.
      *
-     * @param mode The new keyboard mode.
+     * @param keyboard The new keyboard.
      */
-    private void announceKeyboardMode(final int mode) {
-        final int resId = KEYBOARD_MODE_RES_IDS.get(mode);
-        if (resId == 0) {
+    private void announceKeyboardLanguage(final Keyboard keyboard) {
+        final String languageText = SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(
+                keyboard.mId.mSubtype);
+        sendWindowStateChanged(languageText);
+    }
+
+    /**
+     * Announces which type of keyboard is being displayed.
+     * If the keyboard type is unknown, no announcement is made.
+     *
+     * @param keyboard The new keyboard.
+     */
+    private void announceKeyboardMode(final Keyboard keyboard) {
+        final int mode = keyboard.mId.mMode;
+        final Context context = mView.getContext();
+        final int modeTextResId = KEYBOARD_MODE_RES_IDS.get(mode);
+        if (modeTextResId == 0) {
             return;
         }
-        final Context context = mView.getContext();
-        final String keyboardMode = context.getString(resId);
-        final String text = context.getString(R.string.announce_keyboard_mode, keyboardMode);
+        final String modeText = context.getString(modeTextResId);
+        final String text = context.getString(R.string.announce_keyboard_mode, modeText);
         sendWindowStateChanged(text);
     }
 
@@ -241,7 +262,8 @@
             // Make sure we're not getting an EXIT event because the user slid
             // off the keyboard area, then force a key press.
             if (key != null) {
-                getAccessibilityNodeProvider().simulateKeyPress(key);
+                final long downTime = simulateKeyPress(key);
+                simulateKeyRelease(key, downTime);
             }
             //$FALL-THROUGH$
         case MotionEvent.ACTION_HOVER_ENTER:
@@ -282,6 +304,38 @@
     }
 
     /**
+     * Simulates a key press by injecting touch event into the keyboard view.
+     * This avoids the complexity of trackers and listeners within the keyboard.
+     *
+     * @param key The key to press.
+     */
+    private long simulateKeyPress(final Key key) {
+        final int x = key.getHitBox().centerX();
+        final int y = key.getHitBox().centerY();
+        final long downTime = SystemClock.uptimeMillis();
+        final MotionEvent downEvent = MotionEvent.obtain(
+                downTime, downTime, MotionEvent.ACTION_DOWN, x, y, 0);
+        mView.onTouchEvent(downEvent);
+        downEvent.recycle();
+        return downTime;
+    }
+
+    /**
+     * Simulates a key release by injecting touch event into the keyboard view.
+     * This avoids the complexity of trackers and listeners within the keyboard.
+     *
+     * @param key The key to release.
+     */
+    private void simulateKeyRelease(final Key key, final long downTime) {
+        final int x = key.getHitBox().centerX();
+        final int y = key.getHitBox().centerY();
+        final MotionEvent upEvent = MotionEvent.obtain(
+                downTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0);
+        mView.onTouchEvent(upEvent);
+        upEvent.recycle();
+    }
+
+    /**
      * Simulates a transition between two {@link Key}s by sending a HOVER_EXIT on the previous key,
      * a HOVER_ENTER on the current key, and a HOVER_MOVE on the current key.
      *
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index f1f9060..d2100d4 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -451,8 +451,10 @@
                 break;
             case Constants.CODE_SHIFT_ENTER:
                 // TODO: remove this object
+                final Event tmpEvent = Event.createSoftwareKeypressEvent(Constants.CODE_ENTER,
+                        event.mKeyCode, event.mX, event.mY, event.isKeyRepeat());
                 final InputTransaction tmpTransaction = new InputTransaction(
-                        inputTransaction.mSettingsValues, inputTransaction.mEvent,
+                        inputTransaction.mSettingsValues, tmpEvent,
                         inputTransaction.mTimestamp, inputTransaction.mSpaceState,
                         inputTransaction.mShiftState);
                 didAutoCorrect = handleNonSpecialCharacter(tmpTransaction, handler);
