merge in master-release history after reset to 96013c9605218bac83c614961b8e35608e9eca5d
diff --git a/java/res/drawable-hdpi/sym_keyboard_spacebar_lxx_dark.9.png b/java/res/drawable-hdpi/sym_keyboard_spacebar_lxx_dark.9.png
new file mode 100644
index 0000000..e70f0c1
--- /dev/null
+++ b/java/res/drawable-hdpi/sym_keyboard_spacebar_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_spacebar_lxx_dark.9.png b/java/res/drawable-mdpi/sym_keyboard_spacebar_lxx_dark.9.png
new file mode 100644
index 0000000..86e816d
--- /dev/null
+++ b/java/res/drawable-mdpi/sym_keyboard_spacebar_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_spacebar_lxx_dark.9.png b/java/res/drawable-xhdpi/sym_keyboard_spacebar_lxx_dark.9.png
new file mode 100644
index 0000000..cb66054
--- /dev/null
+++ b/java/res/drawable-xhdpi/sym_keyboard_spacebar_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_spacebar_lxx_dark.9.png b/java/res/drawable-xxhdpi/sym_keyboard_spacebar_lxx_dark.9.png
new file mode 100644
index 0000000..1f25e27
--- /dev/null
+++ b/java/res/drawable-xxhdpi/sym_keyboard_spacebar_lxx_dark.9.png
Binary files differ
diff --git a/java/res/values-af/strings-talkback-descriptions.xml b/java/res/values-af/strings-talkback-descriptions.xml
index a3a94ad..439b391 100644
--- a/java/res/values-af/strings-talkback-descriptions.xml
+++ b/java/res/values-af/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> voer outokorrigering uit"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Sleutelkode %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift aan (tik om te deaktiveer)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Kasslot aan (tik om te deaktiveer)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer simbole"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simbole"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Vee uit"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simbole"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letters"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift geaktiveer"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bokas-slot geaktiveer"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simboolmodus"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simbole-skuifsleutelmodus"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Meersimbole-modus"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Lettermodus"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Foonmodus"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Foonsimbool-modus"</string>
diff --git a/java/res/values-am/strings-talkback-descriptions.xml b/java/res/values-am/strings-talkback-descriptions.xml
index 029efac..79c4d08 100644
--- a/java/res/values-am/strings-talkback-descriptions.xml
+++ b/java/res/values-am/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"ቀይር"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"መቀያየሪያ ቁልፍ በርቷል (ለማሰናከል መታ ያድርጉ)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"አብይ ፊደል ማድረጊያ ቁልፍ በርቷል (ለማሰናክል ነካ ያድርጉ)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"ተጨማሪ ምልክቶች"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"ምልክቶች"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"መቀያየሪያ ቁልፍ ነቅቷል"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"አብይ ፊደል ማድረጊያ ቁልፍ ነቅቷል"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"የምልክቶች ሁኔታ"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"የምልክቶች ቀይር ሁነታ"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"የተጨማሪ ምልክቶች ሁነታ"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"የደብዳቤዎች ሁኔታ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"የስልክ ሁኔታ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"የስልክ ምልክቶች ሁኔታ"</string>
diff --git a/java/res/values-ar/strings-talkback-descriptions.xml b/java/res/values-ar/strings-talkback-descriptions.xml
index 4a97582..a9110a7 100644
--- a/java/res/values-ar/strings-talkback-descriptions.xml
+++ b/java/res/values-ar/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"‏Caps lock يعمل (انقر للتعطيل)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"المزيد من الرموز"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"رموز"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏تم تمكين Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏تم تمكين Caps lock"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"وضع الرموز"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"وضع تبديل الرموز"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"المزيد من وضع الرموز"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"وضع الأحرف"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"وضع الهاتف"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"وضع رموز الهاتف"</string>
diff --git a/java/res/values-az-rAZ/strings-talkback-descriptions.xml b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
index 3215897..0ff31f3 100644
--- a/java/res/values-az-rAZ/strings-talkback-descriptions.xml
+++ b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> avto-korreksiyanı həyata keçirir"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"%d açar kodu"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Sürüşdürmə"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Sürüşdürmə aktivdir (deaktiv etmək üçün klikləyin)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Böyük hərf kilidi aktivdir (deaktiv etmək üçün klikləyin)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Daha çox simvol"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Sürüşdürmə"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simvollar"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Sürüşdürmə"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Sil"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simvollar"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Hərflər"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Sürüşdürmə aktivdir"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Böyük hərf kilidi aktivdir"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simvol rejimi"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simvol dəyişmə rejimi"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Daha çox simvol rejimi"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Hərf rejimi"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefon rejimi"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon simvol rejimi"</string>
diff --git a/java/res/values-bg/strings-talkback-descriptions.xml b/java/res/values-bg/strings-talkback-descriptions.xml
index 483f778..4b8168c 100644
--- a/java/res/values-bg/strings-talkback-descriptions.xml
+++ b/java/res/values-bg/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"Код на клавишa %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">"„Caps lock“ е включен (докоснете за деактивиране)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Delete"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Символи"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Букви"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"„Shift“ е активиран"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"„Caps Lock“ е активиран"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим за символи"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Режим за промяна на символите"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим за букви"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим за телефонни номера"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим за символи на телефона"</string>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 77894e7..bd6077a 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa la correcció automàtica."</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Clau de codi %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Maj activat (toca per desactivar)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Bloq Maj activat (toca per desactivar)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Més símbols"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maj"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Símbols"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Maj"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Suprimeix"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Símbols"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Lletres"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Maj activat"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloq Maj activat"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode de símbols"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode de canvi de símbols"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Mode de més símbols"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode de lletres"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode de telèfon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode de símbols de telèfon"</string>
diff --git a/java/res/values-cs/strings-talkback-descriptions.xml b/java/res/values-cs/strings-talkback-descriptions.xml
index 8f97f12..0e35c82 100644
--- a/java/res/values-cs/strings-talkback-descriptions.xml
+++ b/java/res/values-cs/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesou <xliff:g id="KEY_NAME">%1$s</xliff:g> provedete automatickou opravu"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Kód klávesy %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Klávesa Shift je zapnutá (vypnete ji klepnutím)."</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Klávesa Caps Lock je zapnutá (vypnete ji klepnutím)."</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Další symboly"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboly"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Smazat"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboly"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Písmena"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Klávesa Shift je aktivní"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Klávesa Caps Lock je aktivní"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Režim symbolů"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Režim změny symbolů"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Režim dalších symbolů"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Režim písmen"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Režim telefonu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Režim telefonních symbolů"</string>
diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index f4e3e16..669c183 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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"</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_symbols_shift" msgid="3483198879916435717">"Flere symboler"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift-tast"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboler"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift-tast"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Slet"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboler"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Bogstaver"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift er aktiveret"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock er aktiveret"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symboltilstand"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symboltilstand"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Tilstaden Flere symboler"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Bogstavtilstand"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefontilstand"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefonsymboltilstand"</string>
diff --git a/java/res/values-de/strings-talkback-descriptions.xml b/java/res/values-de/strings-talkback-descriptions.xml
index 953249b..d5c54e0 100644
--- a/java/res/values-de/strings-talkback-descriptions.xml
+++ b/java/res/values-de/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Mit <xliff:g id="KEY_NAME">%1$s</xliff:g> erfolgt eine Autokorrektur."</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Tastencode %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Umschalttaste"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Umschalttaste aktiviert (zum Deaktivieren berühren)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Feststelltaste aktiviert (zum Deaktivieren berühren)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Weitere Symbole"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift-Taste"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbole"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift-Taste"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Löschen"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbole"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Buchstaben"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Umschalttaste aktiviert"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Feststelltaste aktiviert"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolmodus"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbolumschaltmodus"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modus \"Weitere Symbole\""</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Buchstabenmodus"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonmodus"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon-Symbolmodus"</string>
diff --git a/java/res/values-el/strings-talkback-descriptions.xml b/java/res/values-el/strings-talkback-descriptions.xml
index 28d31a1..aef593c 100644
--- a/java/res/values-el/strings-talkback-descriptions.xml
+++ b/java/res/values-el/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"Το Caps lock είναι ενεργοποιημένο (πατήστε για απενεργοποίηση)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Περισσότερα σύμβολα"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Σύμβολα"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Το Shift είναι ενεργοποιημένο"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Το Caps lock είναι ενεργοποιημένο"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Λειτουργία συμβόλων"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Λειτουργία μετατόπισης συμβόλων"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Λειτουργία περισσότερων συμβόλων"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Λειτουργία γραμμάτων"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Λειτουργία τηλεφώνου"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Λειτουργία συμβόλων τηλεφώνου"</string>
diff --git a/java/res/values-en-rGB/strings-talkback-descriptions.xml b/java/res/values-en-rGB/strings-talkback-descriptions.xml
index ccf5188..c6c8f6d 100644
--- a/java/res/values-en-rGB/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rGB/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Key code %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift on (tap to disable)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock on (tap to disable)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbols"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Delete"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbols"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letters"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift enabled"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock enabled"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbols shift mode"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"More symbols mode"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
diff --git a/java/res/values-en-rIN/strings-talkback-descriptions.xml b/java/res/values-en-rIN/strings-talkback-descriptions.xml
index ccf5188..c6c8f6d 100644
--- a/java/res/values-en-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rIN/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Key code %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift on (tap to disable)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock on (tap to disable)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbols"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Delete"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbols"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letters"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift enabled"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock enabled"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbols shift mode"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"More symbols mode"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
diff --git a/java/res/values-es-rUS/strings-talkback-descriptions.xml b/java/res/values-es-rUS/strings-talkback-descriptions.xml
index b64ccae..7ccc35f 100644
--- a/java/res/values-es-rUS/strings-talkback-descriptions.xml
+++ b/java/res/values-es-rUS/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige automáticamente."</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Clave de código %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Mayúsculas"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Mayúsculas activado (presiona para desactivarlo)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Bloqueo de mayúsculas activado (presiona para desactivarlo)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Más símbolos"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Mayúscula"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Símbolos"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Mayúscula"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Eliminar"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Símbolos"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letras"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Mayúsculas activado"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloqueo de mayúsculas activado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo Símbolos"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo de cambio de símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modo de más símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo Letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo Teléfono"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo Símbolos del teléfono"</string>
diff --git a/java/res/values-es/strings-talkback-descriptions.xml b/java/res/values-es/strings-talkback-descriptions.xml
index c539e70..2e21b6c 100644
--- a/java/res/values-es/strings-talkback-descriptions.xml
+++ b/java/res/values-es/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregirá la palabra automáticamente"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Código del teclado: %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Mayús"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Mayúsculas activadas (tocar para inhabilitar)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Bloqueo de mayúsculas activado (tocar para inhabilitar)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Más símbolos"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Mayús"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Símbolos"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Mayús"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Eliminar"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Símbolos"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letras"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Mayúsculas habilitadas"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloq Mayús habilitado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo de cambio de símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modo de más símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo de teléfono"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos de teléfono"</string>
diff --git a/java/res/values-et-rEE/strings-talkback-descriptions.xml b/java/res/values-et-rEE/strings-talkback-descriptions.xml
index dcad8dd..0001071 100644
--- a/java/res/values-et-rEE/strings-talkback-descriptions.xml
+++ b/java/res/values-et-rEE/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> teeb automaatse paranduse"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Klahvi kood: %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Tõstuklahv"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Tõstuklahv sees (puudutage keelamiseks)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Suurtähelukk on sees (puudutage keelamiseks)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Rohkem sümboleid"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Tõstuklahv"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Sümbolid"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Tõstuklahv"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Kustutamine"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Sümbolid"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Tähed"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Tõstuklahv on lubatud"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Suurtähelukk on lubatud"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Sümbolite režiim"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Sümbolite tõsturežiim"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Režiim Rohkem sümboleid"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Tähtede režiim"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonirežiim"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefoni sümbolite režiim"</string>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index bd3fa20..a8f4e1f 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"‏Caps Lock روشن است (برای غیرفعال کردن ضربه بزنید)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"نمادهای بیشتر"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"تغییر وضعیت"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"نمادها"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"تغییر وضعیت"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏Shift فعال شد"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏Caps lock فعال شد"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"حالت نمادها"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"حالت تغییر نمادها"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"حالت نمادهای بیشتر"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"حالت حروف"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"حالت تلفن"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"حالت نمادهای تلفن"</string>
diff --git a/java/res/values-fi/strings-talkback-descriptions.xml b/java/res/values-fi/strings-talkback-descriptions.xml
index 2ba3cdc..80cf8f9 100644
--- a/java/res/values-fi/strings-talkback-descriptions.xml
+++ b/java/res/values-fi/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <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_mode_symbol" msgid="111186851131446691">"Symbolit-tila"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbolien vaihtotila"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <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>
diff --git a/java/res/values-fr-rCA/strings-talkback-descriptions.xml b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
index f6f1fbb..7f9eaaa 100644
--- a/java/res/values-fr-rCA/strings-talkback-descriptions.xml
+++ b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Code touche %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Majuscule"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Touche Majuscule activée (toucher pour désactiver)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Verrouillage des majuscules activé (toucher pour désactiver)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Autres symboles"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Majuscule"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboles"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Majuscule"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Supprimer"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboles"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Lettres"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Touche Maj activée"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Verrouillage des majuscules activé"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode Symboles"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode majuscule pour les symboles"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Mode Autres symboles"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode Lettres"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode Téléphone"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode Symboles du téléphone"</string>
diff --git a/java/res/values-fr/strings-talkback-descriptions.xml b/java/res/values-fr/strings-talkback-descriptions.xml
index 49e68dd..97f5c6c 100644
--- a/java/res/values-fr/strings-talkback-descriptions.xml
+++ b/java/res/values-fr/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique."</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Code touche %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Touche Maj activée (appuyer pour désactiver)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Verrouillage des majuscules activé (appuyer pour désactiver)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Autres symboles"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maj"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboles"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Maj"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Supprimer"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboles"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Lettres"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"La touche Maj a bien été activée."</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Le verrouillage des majuscules a bien été activé."</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode Symboles"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode majuscule pour les symboles"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Mode Autres symboles"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode Lettres"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode Téléphone"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode Symboles du téléphone"</string>
diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml
index 55d4578..39e53ad 100644
--- a/java/res/values-hi/strings-talkback-descriptions.xml
+++ b/java/res/values-hi/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"शिफ़्ट"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"शिफ़्ट चालू (अक्षम करने के लिए टैप करें)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"कैप्स लॉक चालू (अक्षम करने के लिए टैप करें)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"और प्रतीक"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"शिफ़्ट"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"प्रतीक"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"शिफ़्ट"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"शिफ़्ट सक्षम किया गया"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"कैप्स लॉक सक्षम किया गया"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"प्रतीक मोड"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"प्रतीक शिफ़्ट मोड"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"और प्रतीक मोड"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"अक्षर मोड"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"फ़ोन मोड"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"फ़ोन प्रतीक मोड"</string>
diff --git a/java/res/values-hr/strings-talkback-descriptions.xml b/java/res/values-hr/strings-talkback-descriptions.xml
index b9e3477..e131016 100644
--- a/java/res/values-hr/strings-talkback-descriptions.xml
+++ b/java/res/values-hr/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> vrši samoispravljanje"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Kôd tipke %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Uključena je tipka Shift (dodirnite za onemogućivanje)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Uključeno je pisanje velikim slovima (Caps Lock) (dodirnite za onemogućivanje)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Brisanje"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simboli"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Slova"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Omogućena je tipka Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Omogućen je Caps Lock"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Način unosa simbola"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Način shift simbola"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Način unosa slova"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonski način rada"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Način unosa telefonskih simbola"</string>
diff --git a/java/res/values-hu/strings-talkback-descriptions.xml b/java/res/values-hu/strings-talkback-descriptions.xml
index ef786bc..2bf2a8a 100644
--- a/java/res/values-hu/strings-talkback-descriptions.xml
+++ b/java/res/values-hu/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> billentyű automatikus javítást végez"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Billentyűkód: %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"A Shift be van kapcsolva (érintse meg a kikapcsoláshoz)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"A Caps lock be van kapcsolva (érintse meg a kikapcsoláshoz)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"További szimbólumok"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Szimbólumok"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Törlés"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Szimbólumok"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Betűk"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift bekapcsolva"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock bekapcsolva"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"„Szimbólumok” mód"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Szimbólumok mód"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"További szimbólumok mód"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"„Betű” mód"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"„Telefon” mód"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"„Telefonos szimbólumok” mód"</string>
diff --git a/java/res/values-hy-rAM/strings-talkback-descriptions.xml b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
index 8e5ff67..bbf20cf 100644
--- a/java/res/values-hy-rAM/strings-talkback-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"Caps lock-ը միացված է (հպել՝ անջատելու համար)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift-ը միացված է"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock-ը միացված է"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Նշանների ռեժիմ"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Մեծատառերի ռեժիմ"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Տառերի ռեժիմ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Հեռախոսային ռեժիմ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Հեռախոսի նշանների ռեժիմ"</string>
diff --git a/java/res/values-in/strings-talkback-descriptions.xml b/java/res/values-in/strings-talkback-descriptions.xml
index af03337..8f51fb7 100644
--- a/java/res/values-in/strings-talkback-descriptions.xml
+++ b/java/res/values-in/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan koreksi otomatis"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Kode tombol %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift aktif (ketuk untuk menonaktifkan)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock aktif (ketuk untuk menonaktifkan)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Hapus"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simbol"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Huruf"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift diaktifkan"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock diaktifkan"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode simbol"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode mengubah simbol"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode huruf"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode telepon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode simbol telepon"</string>
diff --git a/java/res/values-it/strings-talkback-descriptions.xml b/java/res/values-it/strings-talkback-descriptions.xml
index d6b55ae..f1d0dae 100644
--- a/java/res/values-it/strings-talkback-descriptions.xml
+++ b/java/res/values-it/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> esegue la correzione automatica"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Codice tasto %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maiusc"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Maiusc attivo (tocca per disattivare)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Blocco maiuscole attivo (tocca per disattivare)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Altri simboli"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maiusc"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simboli"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Maiusc"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Elimina"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simboli"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Lettere"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Maiusc attivo"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloc Maiusc attivo"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modalità simboli"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modalità tastiera simboli"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modalità altri simboli"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modalità lettere"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modalità telefono"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modalità simboli telefono"</string>
diff --git a/java/res/values-iw/strings-talkback-descriptions.xml b/java/res/values-iw/strings-talkback-descriptions.xml
index 8955134..eee16eb 100644
--- a/java/res/values-iw/strings-talkback-descriptions.xml
+++ b/java/res/values-iw/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"‏Caps Lock פועל (הקש כדי להשבית)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"סמלים נוספים"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"סמלים"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏Shift פועל"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏Caps Lock פועל"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"מצב סמלים"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"מצב החלפת סמלים"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"מצב \'סמלים נוספים\'"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"מצב אותיות"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"מצב טלפון"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"מצב סמלי טלפון"</string>
diff --git a/java/res/values-ja/strings-talkback-descriptions.xml b/java/res/values-ja/strings-talkback-descriptions.xml
index 6e917bc..2479603 100644
--- a/java/res/values-ja/strings-talkback-descriptions.xml
+++ b/java/res/values-ja/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"CapsLock有効(タップして解除)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"記号拡張"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"記号"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift有効"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"CapsLock有効"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"記号モード"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"シンボルshiftモード"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"記号拡張モード"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"英数モード"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"電話モード"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"電話記号モード"</string>
diff --git a/java/res/values-ka-rGE/strings-talkback-descriptions.xml b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
index bd131e1..5771a80 100644
--- a/java/res/values-ka-rGE/strings-talkback-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"ჩართულია Caps (შეეხეთ გამოსართავად)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ჩართულია"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"ჩართულია Caps"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"სიმბოლოების რეჟიმი"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"სიმბოლოების shift რეჟიმი"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"ასოების რეჟიმი"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"ტელეფონის რეჟიმი"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"ტელეფონის სიმბოლოების რეჟიმი"</string>
diff --git a/java/res/values-km-rKH/strings-talkback-descriptions.xml b/java/res/values-km-rKH/strings-talkback-descriptions.xml
index ef415a9..7a2c710 100644
--- a/java/res/values-km-rKH/strings-talkback-descriptions.xml
+++ b/java/res/values-km-rKH/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"បើក Caps lock (ប៉ះ​​ដើម្បី​បិទ)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"និមិត្ត​សញ្ញា​​ច្រើន​ទៀត"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"និមិត្តសញ្ញា"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"បាន​បើក Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"បាន​បើក Caps lock"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"របៀប​និមិត្ត​សញ្ញា"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"របៀប Symbols shift"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"របៀប​និមិត្ត​សញ្ញា​​ច្រើន​ទៀត"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"របៀប​អក្សរ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"របៀប​ទូរស័ព្ទ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"​របៀប​និមិត្ត​សញ្ញា​ទូរស័ព្ទ"</string>
diff --git a/java/res/values-ko/strings-talkback-descriptions.xml b/java/res/values-ko/strings-talkback-descriptions.xml
index 71c49d7..7ead943 100644
--- a/java/res/values-ko/strings-talkback-descriptions.xml
+++ b/java/res/values-ko/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"Caps Lock 사용(사용하지 않으려면 탭하세요.)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift 사용"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock 사용"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"기호 모드"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"기호 전환 모드"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"문자 모드"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"다이얼 모드"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"전화 기호 모드"</string>
diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
index b67ec96..4b9294c 100644
--- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"Caps lock ເປີດຢູ່ (ກົດ​ເພື່ອ​ປິດນຳໃຊ້)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"​ສັນ​ຍາ​ລັກ​ເພີ່ມ​ເຕີມ"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"​ສັນ​ຍາ​ລັກ"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ເປີດ​ນຳໃຊ້ຢູ່"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock ເປີດນຳໃຊ້ຢູ່"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"ໂຫມດ​ສັນຍາລັກ"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"ຊີມໂບຊິບໂໝດ"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"ໂໝດ​ສັນ​ຍາ​ລັກ​ເພີ່ມ​ເຕີມ"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"ໂຫມດ​ໂຕອັກ​ສອນ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"ໂຫມດ​ໂທລະສັບ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"ໂຫມດ​ສັນຍາລັກ​ໂທລະສັບ"</string>
diff --git a/java/res/values-lt/strings-talkback-descriptions.xml b/java/res/values-lt/strings-talkback-descriptions.xml
index e584180..63b52a1 100644
--- a/java/res/values-lt/strings-talkback-descriptions.xml
+++ b/java/res/values-lt/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> atlieka automatinį taisymą"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Klavišo kodas %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Klavišas „Shift“"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Klavišas „Shift“ įjungtas (palieskite, kad išjungtumėte)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Įjungtos didžiosios raidės (palieskite, kad išjungtumėte)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Daugiau simbolių"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Klavišas „Shift“"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simboliai"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Klavišas „Shift“"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Ištrinti"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simbolių klavišas"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Raidžių klavišas"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Klavišas „Shift“ įgalintas"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Didžiųjų raidžių klavišas įgalintas"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simbolių režimas"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simbolių perjungimo režimas"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Daugiau simbolių režimas"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Raidžių režimas"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonų numerių režimas"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefonų numerių simbolių režimas"</string>
diff --git a/java/res/values-lv/strings-talkback-descriptions.xml b/java/res/values-lv/strings-talkback-descriptions.xml
index 8278e63..81a65c4 100644
--- a/java/res/values-lv/strings-talkback-descriptions.xml
+++ b/java/res/values-lv/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Taustiņam <xliff:g id="KEY_NAME">%1$s</xliff:g> ir automātiskas labošanas funkcija."</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Taustiņu kods %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Pārslēgšanas taustiņš"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Pārslēgšanas režīms ir iespējots (pieskarieties, lai atspējotu)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Burtslēgs ir iespējots (pieskarieties, lai atspējotu)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Citi simboli"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Pārslēgšanas taustiņš"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simboli"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Pārslēgšanas taustiņš"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Dzēšanas taustiņš"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simboli"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Burti"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Pārslēgšanas režīms ir iespējots"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Burtslēgs ir iespējots"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simbolu režīms"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simbolu pārslēgšanas režīms"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Citu simbolu režīms"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Burtu režīms"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Tālruņa režīms"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Tālruņa simbolu režīms"</string>
diff --git a/java/res/values-mn-rMN/strings-talkback-descriptions.xml b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
index f4c608e..fb0d382 100644
--- a/java/res/values-mn-rMN/strings-talkback-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"Шифт"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Сэлгэхийг идэвхжүүлсэн (товшиж идэвхгүйжүүлнэ үү)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Томоор бичихийг асаасан (товшиж идэвхгүйжүүлнэ үү)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Өөр тэмдэгтүүд"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Шифт"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Симбол"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Шифт"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Сэлгэхийг идэвхжүүлсэн"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Томоор бичихийг идэвхжүүлсэн"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Симбол төлөв"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Симбол сэлгэх горим"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Өөр тэмдэгтийн горим"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Үсэгнүүд төлөв"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Утасны төлөв"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Утасны символ төлөв"</string>
diff --git a/java/res/values-ms-rMY/strings-talkback-descriptions.xml b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
index cbdd02f..9acae9a 100644
--- a/java/res/values-ms-rMY/strings-talkback-descriptions.xml
+++ b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <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_mode_symbol" msgid="111186851131446691">"Mod simbol"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mod shift simbol"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <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>
diff --git a/java/res/values-nb/strings-talkback-descriptions.xml b/java/res/values-nb/strings-talkback-descriptions.xml
index 23a6c85..cdf8057 100644
--- a/java/res/values-nb/strings-talkback-descriptions.xml
+++ b/java/res/values-nb/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> utfører automatisk retting"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Tastaturkode %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift er på (trykk for å deaktivere)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock er på (trykk for å deaktivere)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Flere symboler"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboler"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Slett"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboler"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Bokstaver"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift er aktivert"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock er aktivert"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolmodus"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift-modus for symboler"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modus for flere symboler"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Bokstavmodus"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Ringemodus"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Ringemodus med symboler"</string>
diff --git a/java/res/values-ne-rNP/strings-talkback-descriptions.xml b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
index a1602bb..3395d1b 100644
--- a/java/res/values-ne-rNP/strings-talkback-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"सिफ्ट"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"सिफ्ट सक्रिय छ (असक्षम पार्न ट्याप गर्नुहोस्)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"क्याप्स लक सकृय छ (असक्षम पार्न ट्याप गर्नुहोस्)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"सिफ्ट सक्षम पारिएको छ"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"क्याप्स लक सक्षम पारिएको छ"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"प्रतिक ढाँचा"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"प्रतीक सिफ्ट ढाँचा"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"अक्षर ढाँचा"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"फोन ढाँचा"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"फोन प्रतिक मोड"</string>
diff --git a/java/res/values-nl/strings-talkback-descriptions.xml b/java/res/values-nl/strings-talkback-descriptions.xml
index df87659..7d61d56 100644
--- a/java/res/values-nl/strings-talkback-descriptions.xml
+++ b/java/res/values-nl/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Met <xliff:g id="KEY_NAME">%1$s</xliff:g> voert u automatische correctie uit"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Toetscode %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift aan (tik om uit te schakelen)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock aan (tik om uit te schakelen)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer symbolen"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbolen"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Verwijderen"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbolen"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letters"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ingeschakeld"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock ingeschakeld"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolen"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift-modus voor symbolen"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modus voor meer symbolen"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Alfanumeriek toetsenbord"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Toetsenbord telefoon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefoonsymbolen"</string>
diff --git a/java/res/values-pl/strings-talkback-descriptions.xml b/java/res/values-pl/strings-talkback-descriptions.xml
index d40a107..da5f46b 100644
--- a/java/res/values-pl/strings-talkback-descriptions.xml
+++ b/java/res/values-pl/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> wykonuje autokorektę"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Kod klawisza: %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift włączony (kliknij, by wyłączyć)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock włączony (kliknij, by wyłączyć)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Więcej symboli"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbole"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Usuń"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbole"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Litery"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift włączony"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock włączony"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Tryb symboli"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Tryb zmiany symboli"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Tryb dodatkowych symboli"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Tryb liter"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Tryb telefonu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Tryb symboli telefonu"</string>
diff --git a/java/res/values-pt-rPT/strings-talkback-descriptions.xml b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
index 5495a63..b49b58b 100644
--- a/java/res/values-pt-rPT/strings-talkback-descriptions.xml
+++ b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa a correção automática"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Código da tecla %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift ativado (tocar para desativar)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock ativado (tocar para desativar)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mais símbolos"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Símbolos"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Eliminar"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Símbolos"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letras"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ativado"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock ativado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo para alternar símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modo Mais símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo de telemóvel"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos de telemóvel"</string>
diff --git a/java/res/values-pt/strings-talkback-descriptions.xml b/java/res/values-pt/strings-talkback-descriptions.xml
index 47ab196..b9a70f3 100644
--- a/java/res/values-pt/strings-talkback-descriptions.xml
+++ b/java/res/values-pt/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> realiza correção automática"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Código de tecla %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift ativado (toque para desativar)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock ativado (toque para desativar)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Excluir"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Símbolos"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letras"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ativado"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock ativado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo de alternância de símbolos"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo de telefone"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos do telefone"</string>
diff --git a/java/res/values-ro/strings-talkback-descriptions.xml b/java/res/values-ro/strings-talkback-descriptions.xml
index de19bf1..0398123 100644
--- a/java/res/values-ro/strings-talkback-descriptions.xml
+++ b/java/res/values-ro/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> efectuează corectare automată"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Tasta cu codul %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Tasta Shift este activată (apăsați pentru a o dezactiva)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Tasta Caps Lock este activată (apăsați pentru a o dezactiva)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Ștergeți"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simboluri"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Litere"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Tasta Shift a fost activată"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Tasta Caps Lock este activată"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modul Simboluri"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mod shift simboluri"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modul Alfanumeric"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modul Telefon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modul Telefon cu simboluri"</string>
diff --git a/java/res/values-ru/strings-talkback-descriptions.xml b/java/res/values-ru/strings-talkback-descriptions.xml
index a38da0f..e3ad265 100644
--- a/java/res/values-ru/strings-talkback-descriptions.xml
+++ b/java/res/values-ru/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"Клавиша верхнего регистра."</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Верхний регистр включен. Нажмите, чтобы отключить."</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock включен. Нажмите, чтобы отключить."</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Верхний регистр включен."</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock включен."</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим добавления символов."</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Режим ввода символов в верхнем регистре."</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим ввода текста."</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим набора номера."</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим телефонных символов."</string>
diff --git a/java/res/values-sk/strings-talkback-descriptions.xml b/java/res/values-sk/strings-talkback-descriptions.xml
index 256eb39..9c0a857 100644
--- a/java/res/values-sk/strings-talkback-descriptions.xml
+++ b/java/res/values-sk/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> spustíte automatické opravy"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Kód klávesa %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Kláves Shift je zapnutý (zakážete ho klepnutím)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Kláves Caps Lock je zapnutý (zakážete ho klepnutím)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Ďalšie symboly"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboly"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Odstrániť"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboly"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Písmená"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Kláves Shift je povolený"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Kláves Caps Lock je povolený"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Režim symbolov"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Režim klávesnice symbolov"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Režim ďalších symbolov"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Režim písmen"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Režim telefónu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Režim telefónnych symbolov"</string>
diff --git a/java/res/values-sl/strings-talkback-descriptions.xml b/java/res/values-sl/strings-talkback-descriptions.xml
index 8a35f0f..9cb296c 100644
--- a/java/res/values-sl/strings-talkback-descriptions.xml
+++ b/java/res/values-sl/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Tipka <xliff:g id="KEY_NAME">%1$s</xliff:g> izvede samopopravek"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Koda tipke %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Tipka Shift je vklopljena (dotaknite se, da jo onemogočite)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Tipka Caps lock je vklopljena (dotaknite se, da jo onemogočite)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Več simbolov"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simboli"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Izbriši"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simboli"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Črke"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Način »Shift« je omogočen"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Funkcija »Caps Lock« je omogočena"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Način simbolov"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Način preklopa simbolov"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Način za več simbolov"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Način črk"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Način telefona"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Način simbolov telefona"</string>
diff --git a/java/res/values-sr/strings-talkback-descriptions.xml b/java/res/values-sr/strings-talkback-descriptions.xml
index 626bccc..1eea084 100644
--- a/java/res/values-sr/strings-talkback-descriptions.xml
+++ b/java/res/values-sr/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"Caps lock је укључен (додирните да бисте га онемогућили)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift је омогућен"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock је омогућен"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим симбола"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift режим симбола"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим слова"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим телефона"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим симбола телефона"</string>
diff --git a/java/res/values-sv/strings-talkback-descriptions.xml b/java/res/values-sv/strings-talkback-descriptions.xml
index 50078fd..062d337 100644
--- a/java/res/values-sv/strings-talkback-descriptions.xml
+++ b/java/res/values-sv/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Om du trycker på <xliff:g id="KEY_NAME">%1$s</xliff:g> utförs autokorrigering"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Nyckelkod %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Skift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Skift är aktiverat (tryck för att inaktivera)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps Lock på (tryck för att inaktivera)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Fler symboler"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Skift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symboler"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Skift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Ta bort"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symboler"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Bokstäver"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Skift aktiverat"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock är aktiverat"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolläge"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbolskiftningsläge"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Läge med fler symboler"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Bokstavsläge"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonläge"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefonsymbolläge"</string>
diff --git a/java/res/values-sw/strings-talkback-descriptions.xml b/java/res/values-sw/strings-talkback-descriptions.xml
index 11ac28e..e7ab49f 100644
--- a/java/res/values-sw/strings-talkback-descriptions.xml
+++ b/java/res/values-sw/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"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_symbols_shift" msgid="3483198879916435717">"Alama zaidi"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Badilisha"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Alama"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Badilisha"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Futa"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Alama"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Herufi"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift imewashwa"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock imewashwa"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Hali ya alama"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Hali ya kubadilisha Alama"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Hali ya alama zaidi"</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>
diff --git a/java/res/values-th/strings-talkback-descriptions.xml b/java/res/values-th/strings-talkback-descriptions.xml
index 0135095..62fb444 100644
--- a/java/res/values-th/strings-talkback-descriptions.xml
+++ b/java/res/values-th/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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">"Caps lock เปิดอยู่ (แตะเพื่อปิดใช้งาน)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"เปิดใช้งาน Shift แล้ว"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"เปิดใช้งาน Caps Lock แล้ว"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"โหมดสัญลักษณ์"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"โหมดการเลื่อนสัญลักษณ์"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"โหมดตัวอักษร"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"โหมดโทรศัพท์"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"โหมดสัญลักษณ์โทรศัพท์"</string>
diff --git a/java/res/values-tl/strings-talkback-descriptions.xml b/java/res/values-tl/strings-talkback-descriptions.xml
index e4eff7d..4c34ad4 100644
--- a/java/res/values-tl/strings-talkback-descriptions.xml
+++ b/java/res/values-tl/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Nagsasagawa ang <xliff:g id="KEY_NAME">%1$s</xliff:g> ng auto-correction"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Key code %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Naka-on ang shift (i-tap upang i-disable)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Naka-on ang caps lock (i-tap upang i-disable)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Tanggalin"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Mga Simbolo"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Mga Titik"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Naka-enable ang shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Naka-enable ang caps lock"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift mode ng mga simbolo"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
diff --git a/java/res/values-tr/strings-talkback-descriptions.xml b/java/res/values-tr/strings-talkback-descriptions.xml
index 40bbd36..829fe61 100644
--- a/java/res/values-tr/strings-talkback-descriptions.xml
+++ b/java/res/values-tr/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> otomatik düzeltme yapar"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Tuş kodu: %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Üst karakter"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Üst karakter açık (devre dışı bırakmak için hafifçe vurun)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Büyük harf kilidi açık (devre dışı bırakmak için hafifçe vurun)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Diğer simgeler"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Üst karakter"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Simgeler"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Üst karakter"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Sil"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Simgeler"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Harfler"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Üst karakter etkin"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Büyük harf etkin"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Sembol modu"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Semboller üst karakter modu"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Diğer simgeler modu"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Harf modu"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefon modu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon sembolleri modu"</string>
diff --git a/java/res/values-uk/strings-talkback-descriptions.xml b/java/res/values-uk/strings-talkback-descriptions.xml
index 79675d8..ddb8214 100644
--- a/java/res/values-uk/strings-talkback-descriptions.xml
+++ b/java/res/values-uk/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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">"Caps Lock увімкнено (торкніться, щоб вимкнути)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Більше символів"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Клавіша Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Символи"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Клавіша Shift"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift увімкнено"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock увімкнено"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим символів"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Режим перемикання символів"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Режим \"Більше символів\""</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим літер"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим номерів телефону"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим телефонних символів"</string>
diff --git a/java/res/values-vi/strings-talkback-descriptions.xml b/java/res/values-vi/strings-talkback-descriptions.xml
index 9a618f9..959628a 100644
--- a/java/res/values-vi/strings-talkback-descriptions.xml
+++ b/java/res/values-vi/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> tự động sửa"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Mã phím %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"Shift đang bật (nhấn để tắt)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Caps lock đang bật (nhấn để tắt)"</string>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <string name="spoken_description_delete" msgid="3878902286264983302">"Xóa"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Biểu tượng"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Chữ cái"</string>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Đã bật Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Đã bật Caps lock"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Chế độ biểu tượng"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Chế độ chuyển ký hiệu"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Chế độ chữ cái"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Chế độ điện thoại"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Chế độ biểu tượng điện thoại"</string>
diff --git a/java/res/values-zh-rCN/strings-talkback-descriptions.xml b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
index 24445ab..7797364 100644
--- a/java/res/values-zh-rCN/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"已开启Shift模式"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"已锁定大写模式"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符号模式"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"符号移位模式"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"电话模式"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"电话符号模式"</string>
diff --git a/java/res/values-zh-rHK/strings-talkback-descriptions.xml b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
index e2f63b0..baa56e4 100644
--- a/java/res/values-zh-rHK/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <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_symbols_shift" msgid="3483198879916435717">"更多符號"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift 鍵"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"符號"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift 鍵"</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>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift 鍵已啟用"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"大寫鎖定已啟用"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符號模式"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"符號轉變模式"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"更多符號模式"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"撥號模式"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"符號撥號模式"</string>
diff --git a/java/res/values-zh-rTW/strings-talkback-descriptions.xml b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
index 63ea4d1..3f79420 100644
--- a/java/res/values-zh-rTW/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
@@ -27,8 +27,14 @@
     <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>
+    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
+    <skip />
+    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
+    <skip />
+    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
+    <skip />
+    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
+    <skip />
     <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>
@@ -47,7 +53,8 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift 鍵已啟用"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"大寫鎖定已啟用"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符號模式"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"符號移位模式"</string>
+    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
+    <skip />
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"撥號模式"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"撥號符號模式"</string>
diff --git a/java/res/values-zu/strings-talkback-descriptions.xml b/java/res/values-zu/strings-talkback-descriptions.xml
index 14a1ea8..3f7ae7e 100644
--- a/java/res/values-zu/strings-talkback-descriptions.xml
+++ b/java/res/values-zu/strings-talkback-descriptions.xml
@@ -27,8 +27,10 @@
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> yenza ukulungisa okuzenzakalelayo"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Ikhodi yokhiye %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"U-Shift"</string>
-    <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"U-Shift uvuliwe (thepha ukuwuvimbela)"</string>
-    <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Ofeleba bavuliwe (thepha ukubavimbela)"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Amasimbuli amaningi"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"U-Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Amasimbuli"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"U-Shift"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Susa"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Amasimbuli"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Izinhlamvu"</string>
@@ -47,7 +49,7 @@
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"U-Shift uvunyelwe"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Ofeleba bavunyelwe"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Imodi yezimpawu"</string>
-    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Imodi yamasimbuli we-shift"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Imodi yamasimbuli amaningi"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Imodi yezinhlamvu"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Imodi yefoni"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Imodi yezimpawu zefoni"</string>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 7363b61..b90e82b 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -51,6 +51,7 @@
         <!-- Background image for the spacebar.  This image needs to be a
              {@link StateListDrawable}, with the following possible states: normal, pressed. -->
         <attr name="spacebarBackground" format="reference" />
+        <attr name="spacebarIconWidthRatio" format="float" />
         <!-- Horizontal padding of left/right aligned key label to the edge of the key. -->
         <attr name="keyLabelHorizontalPadding" format="dimension" />
         <!-- Right padding of hint letter to the edge of the key.-->
@@ -284,6 +285,7 @@
             <!-- This should be aligned with Key.LABEL_FLAGS__* -->
             <flag name="alignLeft" value="0x01" />
             <flag name="alignRight" value="0x02" />
+            <flag name="alignButtom" value="0x04" />
             <flag name="alignLeftOfCenter" value="0x08" />
             <flag name="fontNormal" value="0x10" />
             <flag name="fontMonoSpace" value="0x20" />
diff --git a/java/res/values/keyboard-icons-lxx.xml b/java/res/values/keyboard-icons-lxx.xml
index 8a38863..56d6604 100644
--- a/java/res/values/keyboard-icons-lxx.xml
+++ b/java/res/values/keyboard-icons-lxx.xml
@@ -25,7 +25,7 @@
         <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo_dark</item>
         <item name="iconDeleteKey">@drawable/sym_keyboard_delete_lxx_dark</item>
         <item name="iconSettingsKey">@drawable/sym_keyboard_settings_lxx_dark</item>
-        <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo_dark</item>
+        <item name="iconSpaceKey">@drawable/sym_keyboard_spacebar_lxx_dark</item>
         <item name="iconEnterKey">@drawable/sym_keyboard_return_holo_dark</item>
         <item name="iconGoKey">@drawable/sym_keyboard_go_lxx_dark</item>
         <item name="iconSearchKey">@drawable/sym_keyboard_search_lxx_dark</item>
diff --git a/java/res/values/themes-lxx.xml b/java/res/values/themes-lxx.xml
index 3c7a2b5..8016e76 100644
--- a/java/res/values/themes-lxx.xml
+++ b/java/res/values/themes-lxx.xml
@@ -50,7 +50,8 @@
         <item name="keyBackground">@drawable/btn_keyboard_key_lxx</item>
         <item name="functionalKeyBackground">@drawable/btn_keyboard_key_functional_lxx</item>
         <item name="spacebarBackground">@drawable/btn_keyboard_spacebar_lxx</item>
-        <item name="keyTypeface">bold</item>
+        <item name="spacebarIconWidthRatio">0.9</item>
+        <item name="keyTypeface">normal</item>
         <item name="keyTextColor">@color/key_text_color_holo</item>
         <item name="keyTextInactivatedColor">@color/key_text_inactive_color_lxx</item>
         <item name="functionalTextColor">@color/key_hint_letter_color_lxx</item>
@@ -115,7 +116,7 @@
         <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
         <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
         <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
-        <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
+        <item name="android:background">@color/suggestions_strip_background_lxx</item>
         <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
         <item name="colorValidTypedWord">@color/typed_word_color_lxx</item>
         <item name="colorTypedWord">@color/typed_word_color_lxx</item>
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 35b3576..d302ab2 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -79,6 +79,7 @@
     <key-style
         latin:styleName="spaceKeyStyle"
         latin:keySpec="!icon/space_key|!code/key_space"
+        latin:keyLabelFlags="alignButtom"
         latin:keyActionFlags="noKeyPreview|enableLongPress" />
     <!-- U+200C: ZERO WIDTH NON-JOINER
          U+200D: ZERO WIDTH JOINER -->
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index f8b4a2a..0a274e0 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -88,6 +88,7 @@
     <key-style
         latin:styleName="spaceKeyStyle"
         latin:keySpec="!icon/space_key|!code/key_space"
+        latin:keyLabelFlags="alignButtom"
         latin:keyActionFlags="noKeyPreview|enableLongPress" />
     <!-- U+200C: ZERO WIDTH NON-JOINER
          U+200D: ZERO WIDTH JOINER -->
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index df4448c..8a76fe3 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -120,6 +120,7 @@
     <key-style
         latin:styleName="numSpaceKeyStyle"
         latin:keySpec="!icon/space_key_for_number_layout|!code/key_space"
+        latin:keyLabelFlags="alignButtom"
         latin:keyActionFlags="enableLongPress"
         latin:parentStyle="numKeyBaseStyle" />
     <!-- Override defaultEnterKeyStyle in key_styles_enter.xml -->
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index a1269c8..cf68c56 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -60,6 +60,7 @@
     private final int mLabelFlags;
     private static final int LABEL_FLAGS_ALIGN_LEFT = 0x01;
     private static final int LABEL_FLAGS_ALIGN_RIGHT = 0x02;
+    private static final int LABEL_FLAGS_ALIGN_BUTTOM = 0x04;
     private static final int LABEL_FLAGS_ALIGN_LEFT_OF_CENTER = 0x08;
     private static final int LABEL_FLAGS_FONT_NORMAL = 0x10;
     private static final int LABEL_FLAGS_FONT_MONO_SPACE = 0x20;
@@ -646,6 +647,10 @@
         return (mLabelFlags & LABEL_FLAGS_ALIGN_RIGHT) != 0;
     }
 
+    public final boolean isAlignButtom() {
+        return (mLabelFlags & LABEL_FLAGS_ALIGN_BUTTOM) != 0;
+    }
+
     public final boolean isAlignLeftOfCenter() {
         return (mLabelFlags & LABEL_FLAGS_ALIGN_LEFT_OF_CENTER) != 0;
     }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
index e0b74fa..0c0c162 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
@@ -29,8 +29,8 @@
 public final class KeyboardTheme {
     private static final String TAG = KeyboardTheme.class.getSimpleName();
 
-    static final String KITKAT_KEYBOARD_THEME_KEY = "pref_keyboard_layout_20110916";
-    static final String KEYBOARD_THEME_KEY = "pref_keyboard_theme_20140509";
+    static final String KLP_KEYBOARD_THEME_KEY = "pref_keyboard_layout_20110916";
+    static final String LXX_KEYBOARD_THEME_KEY = "pref_keyboard_theme_20140509";
 
     static final int THEME_ID_ICS = 0;
     static final int THEME_ID_KLP = 2;
@@ -39,9 +39,9 @@
 
     private static final KeyboardTheme[] KEYBOARD_THEMES = {
         new KeyboardTheme(THEME_ID_ICS, R.style.KeyboardTheme_ICS,
-                VERSION_CODES.ICE_CREAM_SANDWICH),
+                VERSION_CODES.BASE),
         new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP,
-                VERSION_CODES.KITKAT),
+                VERSION_CODES.ICE_CREAM_SANDWICH),
         new KeyboardTheme(THEME_ID_LXX, R.style.KeyboardTheme_LXX,
                 // TODO: Update this constant once the *next* version becomes available.
                 VERSION_CODES.CUR_DEVELOPMENT),
@@ -116,22 +116,23 @@
 
     static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs,
             final int sdkVersion) {
-        final String obsoleteIdString = prefs.getString(KITKAT_KEYBOARD_THEME_KEY, null);
-        if (obsoleteIdString != null) {
-            // Remove old preference.
-            prefs.edit().remove(KITKAT_KEYBOARD_THEME_KEY).apply();
+        final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null);
+        if (klpThemeIdString != null) {
             if (sdkVersion <= VERSION_CODES.KITKAT) {
                 try {
-                    final int themeId = Integer.parseInt(obsoleteIdString);
+                    final int themeId = Integer.parseInt(klpThemeIdString);
                     final KeyboardTheme theme = searchKeyboardThemeById(themeId);
                     if (theme != null) {
                         return theme;
                     }
-                    Log.w(TAG, "Unknown keyboard theme in preference: " + obsoleteIdString);
+                    Log.w(TAG, "Unknown keyboard theme in KLP preference: " + klpThemeIdString);
                 } catch (final NumberFormatException e) {
-                    Log.w(TAG, "Illegal keyboard theme in preference: " + obsoleteIdString);
+                    Log.w(TAG, "Illegal keyboard theme in KLP preference: " + klpThemeIdString, e);
                 }
             }
+            // Remove old preference.
+            Log.i(TAG, "Remove KLP keyboard theme preference: " + klpThemeIdString);
+            prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply();
         }
         // TODO: This search algorithm isn't optimal if there are many themes.
         for (final KeyboardTheme theme : KEYBOARD_THEMES) {
@@ -144,27 +145,43 @@
 
     public static void saveKeyboardThemeId(final String themeIdString,
             final SharedPreferences prefs) {
-        prefs.edit().putString(KEYBOARD_THEME_KEY, themeIdString).apply();
+        saveKeyboardThemeId(themeIdString, prefs, getSdkVersion());
+    }
+
+    static String getPreferenceKey(final int sdkVersion) {
+        if (sdkVersion <= VERSION_CODES.KITKAT) {
+            return KLP_KEYBOARD_THEME_KEY;
+        }
+        return LXX_KEYBOARD_THEME_KEY;
+    }
+
+    static void saveKeyboardThemeId(final String themeIdString, final SharedPreferences prefs,
+            final int sdkVersion) {
+        final String prefKey = getPreferenceKey(sdkVersion);
+        prefs.edit().putString(prefKey, themeIdString).apply();
     }
 
     public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) {
-        final int sdkVersion = getSdkVersion();
-        final String themeIdString = prefs.getString(KEYBOARD_THEME_KEY, null);
-        if (themeIdString == null) {
+        return getKeyboardTheme(prefs, getSdkVersion());
+    }
+
+    static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion) {
+        final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null);
+        if (lxxThemeIdString == null) {
             return getDefaultKeyboardTheme(prefs, sdkVersion);
         }
         try {
-            final int themeId = Integer.parseInt(themeIdString);
+            final int themeId = Integer.parseInt(lxxThemeIdString);
             final KeyboardTheme theme = searchKeyboardThemeById(themeId);
             if (theme != null) {
                 return theme;
             }
-            Log.w(TAG, "Unknown keyboard theme in preference: " + themeIdString);
+            Log.w(TAG, "Unknown keyboard theme in LXX preference: " + lxxThemeIdString);
         } catch (final NumberFormatException e) {
-            Log.w(TAG, "Illegal keyboard theme in preference: " + themeIdString);
+            Log.w(TAG, "Illegal keyboard theme in LXX preference: " + lxxThemeIdString, e);
         }
-        // Remove preference.
-        prefs.edit().remove(KEYBOARD_THEME_KEY).apply();
+        // Remove preference that contains unknown or illegal theme id.
+        prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply();
         return getDefaultKeyboardTheme(prefs, sdkVersion);
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index a6eac4c..edfc5fd 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -28,6 +28,7 @@
 import android.graphics.Region;
 import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.NinePatchDrawable;
 import android.util.AttributeSet;
 import android.view.View;
 
@@ -49,6 +50,7 @@
  * @attr ref R.styleable#KeyboardView_keyBackground
  * @attr ref R.styleable#KeyboardView_functionalKeyBackground
  * @attr ref R.styleable#KeyboardView_spacebarBackground
+ * @attr ref R.styleable#KeyboardView_spacebarIconWidthRatio
  * @attr ref R.styleable#KeyboardView_keyLabelHorizontalPadding
  * @attr ref R.styleable#KeyboardView_keyHintLetterPadding
  * @attr ref R.styleable#KeyboardView_keyPopupHintLetterPadding
@@ -85,6 +87,7 @@
     private final Drawable mKeyBackground;
     private final Drawable mFunctionalKeyBackground;
     private final Drawable mSpacebarBackground;
+    private final float mSpacebarIconWidthRatio;
     private final Rect mKeyBackgroundPadding = new Rect();
     private static final float KET_TEXT_SHADOW_RADIUS_DISABLED = -1.0f;
 
@@ -135,8 +138,9 @@
                 : mKeyBackground;
         final Drawable spacebarBackground = keyboardViewAttr.getDrawable(
                 R.styleable.KeyboardView_spacebarBackground);
-        mSpacebarBackground = (spacebarBackground != null) ? spacebarBackground
-                : mKeyBackground;
+        mSpacebarBackground = (spacebarBackground != null) ? spacebarBackground : mKeyBackground;
+        mSpacebarIconWidthRatio = keyboardViewAttr.getFloat(
+                R.styleable.KeyboardView_spacebarIconWidthRatio, 1.0f);
         mKeyLabelHorizontalPadding = keyboardViewAttr.getDimensionPixelOffset(
                 R.styleable.KeyboardView_keyLabelHorizontalPadding, 0);
         mKeyHintLetterPadding = keyboardViewAttr.getDimension(
@@ -513,10 +517,16 @@
 
         // Draw key icon.
         if (label == null && icon != null) {
-            final int iconWidth = Math.min(icon.getIntrinsicWidth(), keyWidth);
+            final int iconWidth;
+            if (key.getCode() == Constants.CODE_SPACE && icon instanceof NinePatchDrawable) {
+                iconWidth = (int)(keyWidth * mSpacebarIconWidthRatio);
+            } else {
+                iconWidth = Math.min(icon.getIntrinsicWidth(), keyWidth);
+            }
             final int iconHeight = icon.getIntrinsicHeight();
             final int iconX, alignX;
-            final int iconY = (keyHeight - iconHeight) / 2;
+            final int iconY = key.isAlignButtom() ? keyHeight - iconHeight
+                    : (keyHeight - iconHeight) / 2;
             if (key.isAlignLeft()) {
                 iconX = mKeyLabelHorizontalPadding;
                 alignX = iconX;
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index ac11dca..26b6dd0 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -27,7 +27,6 @@
 import android.graphics.Paint;
 import android.graphics.Paint.Align;
 import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
 import android.preference.PreferenceManager;
 import android.util.AttributeSet;
 import android.util.Log;
@@ -116,7 +115,6 @@
 
     /* Space key and its icon and background. */
     private Key mSpaceKey;
-    private Drawable mSpacebarIcon;
     // Stuff to draw language name on spacebar.
     private final int mLanguageOnSpacebarFinalAlpha;
     private ObjectAnimator mLanguageOnSpacebarFadeoutAnimator;
@@ -389,8 +387,6 @@
         mMoreKeysKeyboardCache.clear();
 
         mSpaceKey = keyboard.getKey(Constants.CODE_SPACE);
-        mSpacebarIcon = (mSpaceKey != null)
-                ? mSpaceKey.getIcon(keyboard.mIconsSet, Constants.Color.ALPHA_OPAQUE) : null;
         final int keyHeight = keyboard.mMostCommonKeyHeight - keyboard.mVerticalGap;
         mLanguageOnSpacebarTextSize = keyHeight * mLanguageOnSpacebarTextRatio;
         if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
@@ -847,18 +843,19 @@
         if (key.altCodeWhileTyping() && key.isEnabled()) {
             params.mAnimAlpha = mAltCodeKeyWhileTypingAnimAlpha;
         }
+        super.onDrawKeyTopVisuals(key, canvas, paint, params);
         final int code = key.getCode();
         if (code == Constants.CODE_SPACE) {
-            drawSpacebar(key, canvas, paint);
+            // If input language are explicitly selected.
+            if (mLanguageOnSpacebarFormatType != LanguageOnSpacebarHelper.FORMAT_TYPE_NONE) {
+                drawLanguageOnSpacebar(key, canvas, paint);
+            }
             // Whether space key needs to show the "..." popup hint for special purposes
             if (key.isLongPressEnabled() && mHasMultipleEnabledIMEsOrSubtypes) {
                 drawKeyPopupHint(key, canvas, paint, params);
             }
         } else if (code == Constants.CODE_LANGUAGE_SWITCH) {
-            super.onDrawKeyTopVisuals(key, canvas, paint, params);
             drawKeyPopupHint(key, canvas, paint, params);
-        } else {
-            super.onDrawKeyTopVisuals(key, canvas, paint, params);
         }
     }
 
@@ -898,42 +895,29 @@
         return "";
     }
 
-    private void drawSpacebar(final Key key, final Canvas canvas, final Paint paint) {
+    private void drawLanguageOnSpacebar(final Key key, final Canvas canvas, final Paint paint) {
         final int width = key.getWidth();
         final int height = key.getHeight();
-
-        // If input language are explicitly selected.
-        if (mLanguageOnSpacebarFormatType != LanguageOnSpacebarHelper.FORMAT_TYPE_NONE) {
-            paint.setTextAlign(Align.CENTER);
-            paint.setTypeface(Typeface.DEFAULT);
-            paint.setTextSize(mLanguageOnSpacebarTextSize);
-            final InputMethodSubtype subtype = getKeyboard().mId.mSubtype;
-            final String language = layoutLanguageOnSpacebar(paint, subtype, width);
-            // Draw language text with shadow
-            final float descent = paint.descent();
-            final float textHeight = -paint.ascent() + descent;
-            final float baseline = height / 2 + textHeight / 2;
-            if (mLanguageOnSpacebarTextShadowRadius > 0.0f) {
-                paint.setShadowLayer(mLanguageOnSpacebarTextShadowRadius, 0, 0,
-                        mLanguageOnSpacebarTextShadowColor);
-            } else {
-                paint.clearShadowLayer();
-            }
-            paint.setColor(mLanguageOnSpacebarTextColor);
-            paint.setAlpha(mLanguageOnSpacebarAnimAlpha);
-            canvas.drawText(language, width / 2, baseline - descent, paint);
+        paint.setTextAlign(Align.CENTER);
+        paint.setTypeface(Typeface.DEFAULT);
+        paint.setTextSize(mLanguageOnSpacebarTextSize);
+        final InputMethodSubtype subtype = getKeyboard().mId.mSubtype;
+        final String language = layoutLanguageOnSpacebar(paint, subtype, width);
+        // Draw language text with shadow
+        final float descent = paint.descent();
+        final float textHeight = -paint.ascent() + descent;
+        final float baseline = height / 2 + textHeight / 2;
+        if (mLanguageOnSpacebarTextShadowRadius > 0.0f) {
+            paint.setShadowLayer(mLanguageOnSpacebarTextShadowRadius, 0, 0,
+                    mLanguageOnSpacebarTextShadowColor);
+        } else {
             paint.clearShadowLayer();
-            paint.setTextScaleX(1.0f);
         }
-
-        // Draw the spacebar icon at the bottom
-        if (mSpacebarIcon != null) {
-            final int iconWidth = mSpacebarIcon.getIntrinsicWidth();
-            final int iconHeight = mSpacebarIcon.getIntrinsicHeight();
-            int x = (width - iconWidth) / 2;
-            int y = height - iconHeight;
-            drawIcon(canvas, mSpacebarIcon, x, y, iconWidth, iconHeight);
-        }
+        paint.setColor(mLanguageOnSpacebarTextColor);
+        paint.setAlpha(mLanguageOnSpacebarAnimAlpha);
+        canvas.drawText(language, width / 2, baseline - descent, paint);
+        paint.clearShadowLayer();
+        paint.setTextScaleX(1.0f);
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 1e31c96..8a6404b 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -113,11 +113,8 @@
         synchronized(mDicTraverseSessions) {
             DicTraverseSession traverseSession = mDicTraverseSessions.get(traverseSessionId);
             if (traverseSession == null) {
-                traverseSession = mDicTraverseSessions.get(traverseSessionId);
-                if (traverseSession == null) {
-                    traverseSession = new DicTraverseSession(mLocale, mNativeDict, mDictSize);
-                    mDicTraverseSessions.put(traverseSessionId, traverseSession);
-                }
+                traverseSession = new DicTraverseSession(mLocale, mNativeDict, mDictSize);
+                mDicTraverseSessions.put(traverseSessionId, traverseSession);
             }
             return traverseSession;
         }
@@ -266,20 +263,10 @@
                 new FormatSpec.FormatOptions(outFormatVersion[0], hasHistoricalInfo));
     }
 
-
     @Override
     public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final String prevWord, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight) {
-        return getSuggestionsWithSessionId(composer, prevWord, proximityInfo, blockOffensiveWords,
-                additionalFeaturesOptions, 0 /* sessionId */, inOutLanguageWeight);
-    }
-
-    @Override
-    public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer,
-            final String prevWord, final ProximityInfo proximityInfo,
-            final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
             final int sessionId, final float[] inOutLanguageWeight) {
         if (!isValidDictionary()) {
             return null;
diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java
index cd380db..5253cc3 100644
--- a/java/src/com/android/inputmethod/latin/Dictionary.java
+++ b/java/src/com/android/inputmethod/latin/Dictionary.java
@@ -73,6 +73,7 @@
      * @param proximityInfo the object for key proximity. May be ignored by some implementations.
      * @param blockOffensiveWords whether to block potentially offensive words
      * @param additionalFeaturesOptions options about additional features used for the suggestion.
+     * @param sessionId the session id.
      * @param inOutLanguageWeight the language weight used for generating suggestions.
      * inOutLanguageWeight is a float array that has only one element. This can be updated when the
      * different language weight is used.
@@ -83,17 +84,7 @@
     abstract public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final String prevWord, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight);
-
-    // The default implementation of this method ignores sessionId.
-    // Subclasses that want to use sessionId need to override this method.
-    public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer,
-            final String prevWord, final ProximityInfo proximityInfo,
-            final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final int sessionId, final float[] inOutLanguageWeight) {
-        return getSuggestions(composer, prevWord, proximityInfo, blockOffensiveWords,
-                additionalFeaturesOptions, inOutLanguageWeight);
-    }
+            final int sessionId, final float[] inOutLanguageWeight);
 
     /**
      * Checks if the given word occurs in the dictionary
@@ -167,7 +158,7 @@
         public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
                 final String prevWord, final ProximityInfo proximityInfo,
                 final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-                final float[] inOutLanguageWeight) {
+                final int sessionId, final float[] inOutLanguageWeight) {
             return null;
         }
 
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index 16173ff..239fd06 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -59,20 +59,20 @@
     public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final String prevWord, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight) {
+            final int sessionId, final float[] inOutLanguageWeight) {
         final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries;
         if (dictionaries.isEmpty()) return null;
         // To avoid creating unnecessary objects, we get the list out of the first
         // dictionary and add the rest to it if not null, hence the get(0)
         ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composer,
                 prevWord, proximityInfo, blockOffensiveWords, additionalFeaturesOptions,
-                inOutLanguageWeight);
+                sessionId, inOutLanguageWeight);
         if (null == suggestions) suggestions = CollectionUtils.newArrayList();
         final int length = dictionaries.size();
         for (int i = 1; i < length; ++ i) {
             final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(composer,
                     prevWord, proximityInfo, blockOffensiveWords, additionalFeaturesOptions,
-                    inOutLanguageWeight);
+                    sessionId, inOutLanguageWeight);
             if (null != sugg) suggestions.addAll(sugg);
         }
         return suggestions;
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index e0220e1..ddbb196 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -455,7 +455,7 @@
             final Dictionary dictionary = dictionaries.getDict(dictType);
             if (null == dictionary) continue;
             final ArrayList<SuggestedWordInfo> dictionarySuggestions =
-                    dictionary.getSuggestionsWithSessionId(composer, prevWord, proximityInfo,
+                    dictionary.getSuggestions(composer, prevWord, proximityInfo,
                             blockOffensiveWords, additionalFeaturesOptions, sessionId,
                             languageWeight);
             if (null == dictionarySuggestions) continue;
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index e323f0a..4358f84 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -366,7 +366,7 @@
     }
 
     @Override
-    public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer,
+    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final String prevWord, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
             final int sessionId, final float[] inOutLanguageWeight) {
@@ -380,9 +380,9 @@
                     return null;
                 }
                 final ArrayList<SuggestedWordInfo> suggestions =
-                        mBinaryDictionary.getSuggestionsWithSessionId(composer, prevWord,
-                                proximityInfo, blockOffensiveWords, additionalFeaturesOptions,
-                                sessionId, inOutLanguageWeight);
+                        mBinaryDictionary.getSuggestions(composer, prevWord, proximityInfo,
+                                blockOffensiveWords, additionalFeaturesOptions, sessionId,
+                                inOutLanguageWeight);
                 if (mBinaryDictionary.isCorrupted()) {
                     Log.i(TAG, "Dictionary (" + mDictName +") is corrupted. "
                             + "Remove and regenerate it.");
@@ -401,15 +401,6 @@
     }
 
     @Override
-    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-            final String prevWord, final ProximityInfo proximityInfo,
-            final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight) {
-        return getSuggestionsWithSessionId(composer, prevWord, proximityInfo, blockOffensiveWords,
-                additionalFeaturesOptions, 0 /* sessionId */, inOutLanguageWeight);
-    }
-
-    @Override
     public boolean isValidWord(final String word) {
         reloadDictionaryIfRequired();
         boolean lockAcquired = false;
diff --git a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
index 9f61d6c..15b1238 100644
--- a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
@@ -52,20 +52,12 @@
     public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final String prevWord, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight) {
-        return getSuggestionsWithSessionId(composer, prevWord, proximityInfo, blockOffensiveWords,
-                additionalFeaturesOptions, 0 /* sessionId */, inOutLanguageWeight);
-    }
-
-    @Override
-    public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer,
-            final String prevWord, final ProximityInfo proximityInfo,
-            final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
             final int sessionId, final float[] inOutLanguageWeight) {
         if (mLock.readLock().tryLock()) {
             try {
                 return mBinaryDictionary.getSuggestions(composer, prevWord, proximityInfo,
-                        blockOffensiveWords, additionalFeaturesOptions, inOutLanguageWeight);
+                        blockOffensiveWords, additionalFeaturesOptions, sessionId,
+                        inOutLanguageWeight);
             } finally {
                 mLock.readLock().unlock();
             }
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index db0a8a8..71355f4 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -94,8 +94,8 @@
             final boolean blockOffensiveWords, final boolean isCorrectionEnabled,
             final int[] additionalFeaturesOptions, final int sequenceNumber,
             final OnGetSuggestedWordsCallback callback) {
-        final int trailingSingleQuotesCount = wordComposer.trailingSingleQuotesCount();
         final String typedWord = wordComposer.getTypedWord();
+        final int trailingSingleQuotesCount = StringUtils.getTrailingSingleQuotesCount(typedWord);
         final String consideredWord = trailingSingleQuotesCount > 0
                 ? typedWord.substring(0, typedWord.length() - trailingSingleQuotesCount)
                 : typedWord;
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index ac69729..9cf71c7 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -149,7 +149,8 @@
     public int copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
             final int[] destination) {
         // lastIndex is exclusive
-        final int lastIndex = mTypedWordCache.length() - trailingSingleQuotesCount();
+        final int lastIndex = mTypedWordCache.length()
+                - StringUtils.getTrailingSingleQuotesCount(mTypedWordCache);
         if (lastIndex <= 0) {
             // The string is empty or contains only single quotes.
             return 0;
@@ -331,15 +332,6 @@
         return mIsFirstCharCapitalized;
     }
 
-    public int trailingSingleQuotesCount() {
-        final int lastIndex = mTypedWordCache.length() - 1;
-        int i = lastIndex;
-        while (i >= 0 && mTypedWordCache.charAt(i) == Constants.CODE_SINGLE_QUOTE) {
-            --i;
-        }
-        return lastIndex - i;
-    }
-
     /**
      * Whether or not all of the user typed chars are upper case
      * @return true if all user typed chars are upper case, false otherwise
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index afacd08..6ef505e 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -138,11 +138,13 @@
                 }
             }
             dictionaryMap.clear();
-            if (!FileUtils.deleteFilteredFiles(
-                    context.getFilesDir(), new DictFilter(dictNamePrefix))) {
+            final File filesDir = context.getFilesDir();
+            if (filesDir == null) {
+                Log.e(TAG, "context.getFilesDir() returned null.");
+            }
+            if (!FileUtils.deleteFilteredFiles(filesDir, new DictFilter(dictNamePrefix))) {
                 Log.e(TAG, "Cannot remove all existing dictionary files. filesDir: "
-                        + context.getFilesDir().getAbsolutePath() + ", dictNamePrefix: "
-                        + dictNamePrefix);
+                        + filesDir.getAbsolutePath() + ", dictNamePrefix: " + dictNamePrefix);
             }
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index 69d0927..4c23d22 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -327,7 +327,7 @@
                 final ArrayList<SuggestedWordInfo> suggestions =
                         dictInfo.mDictionary.getSuggestions(composer, prevWord,
                                 dictInfo.getProximityInfo(), true /* blockOffensiveWords */,
-                                null /* additionalFeaturesOptions */,
+                                null /* additionalFeaturesOptions */, 0 /* sessionId */,
                                 null /* inOutLanguageWeight */);
                 if (suggestions != null) {
                     for (final SuggestedWordInfo suggestion : suggestions) {
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
index c992643..0be2568 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
@@ -54,7 +54,7 @@
                 public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
                         final String prevWord, final ProximityInfo proximityInfo,
                         final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-                        final float[] inOutLanguageWeight) {
+                        final int sessionId, final float[] inOutLanguageWeight) {
                     return noSuggestions;
                 }
                 @Override
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java
index a694bf4..5f6e168 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedContactsBinaryDictionary.java
@@ -38,10 +38,10 @@
     public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes,
             final String prevWordForBigrams, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight) {
+            final int sessionId, final float[] inOutLanguageWeight) {
         synchronized (mLock) {
             return super.getSuggestions(codes, prevWordForBigrams, proximityInfo,
-                    blockOffensiveWords, additionalFeaturesOptions, inOutLanguageWeight);
+                    blockOffensiveWords, additionalFeaturesOptions, sessionId, inOutLanguageWeight);
         }
     }
 
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java
index 1a6dd58..0499ad2 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SynchronouslyLoadedUserBinaryDictionary.java
@@ -43,10 +43,10 @@
     public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes,
             final String prevWordForBigrams, final ProximityInfo proximityInfo,
             final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
-            final float[] inOutLanguageWeight) {
+            final int sessionId, final float[] inOutLanguageWeight) {
         synchronized (mLock) {
             return super.getSuggestions(codes, prevWordForBigrams, proximityInfo,
-                    blockOffensiveWords, additionalFeaturesOptions, inOutLanguageWeight);
+                    blockOffensiveWords, additionalFeaturesOptions, sessionId, inOutLanguageWeight);
         }
     }
 
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
index 0a03799..dc3e9bf 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
@@ -86,9 +86,10 @@
         coordinates = mKeyboard.getCoordinates(codePoints);
         composer.setComposingWord(codePoints, coordinates, prevWord);
 
-        final int trailingSingleQuotesCount = composer.trailingSingleQuotesCount();
-        final String consideredWord = trailingSingleQuotesCount > 0 ? testedWord.substring(0,
-                testedWord.length() - trailingSingleQuotesCount) : testedWord;
+        final int trailingSingleQuotesCount = StringUtils.getTrailingSingleQuotesCount(testedWord);
+        final String consideredWord = trailingSingleQuotesCount > 0 ?
+                testedWord.substring(0, testedWord.length() - trailingSingleQuotesCount) :
+                testedWord;
         final AsyncResultHolder<Boolean> holder = new AsyncResultHolder<Boolean>();
         final OnGetSuggestedWordsCallback callback = new OnGetSuggestedWordsCallback() {
             @Override
diff --git a/java/src/com/android/inputmethod/latin/utils/StringUtils.java b/java/src/com/android/inputmethod/latin/utils/StringUtils.java
index 374badc..73ac9a5 100644
--- a/java/src/com/android/inputmethod/latin/utils/StringUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/StringUtils.java
@@ -538,6 +538,15 @@
                 ? casedText.codePointAt(0) : CODE_UNSPECIFIED;
     }
 
+    public static int getTrailingSingleQuotesCount(final CharSequence charSequence) {
+        final int lastIndex = charSequence.length() - 1;
+        int i = lastIndex;
+        while (i >= 0 && charSequence.charAt(i) == Constants.CODE_SINGLE_QUOTE) {
+            --i;
+        }
+        return lastIndex - i;
+    }
+
     @UsedForTesting
     public static class Stringizer<E> {
         public String stringize(final E element) {
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
index 555b1a4..fb5231b 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
@@ -26,7 +26,13 @@
 public class KeyboardThemeTests extends AndroidTestCase {
     private SharedPreferences mPrefs;
 
+    // TODO: Remove this constant once the *next* version becomes available.
+    private static final int VERSION_CODES_LXX = VERSION_CODES.CUR_DEVELOPMENT;
+
     private static final int THEME_ID_NULL = -1;
+    private static final int THEME_ID_UNKNOWN = -2;
+    private static final int THEME_ID_ILLEGAL = -3;
+    private static final String ILLEGAL_THEME_ID_STRING = "ThisCausesNumberFormatExecption";
     private static final int THEME_ID_ICS = KeyboardTheme.THEME_ID_ICS;
     private static final int THEME_ID_KLP = KeyboardTheme.THEME_ID_KLP;
     private static final int THEME_ID_LXX = KeyboardTheme.THEME_ID_LXX;
@@ -37,57 +43,281 @@
         mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
     }
 
+    /*
+     * Helper functions.
+     */
+
+    private static boolean isValidKeyboardThemeId(final int themeId) {
+        switch (themeId) {
+        case THEME_ID_ICS:
+        case THEME_ID_KLP:
+        case THEME_ID_LXX:
+            return true;
+        default:
+            return false;
+        }
+    }
+
+    private void setKeyboardThemePreference(final String prefKey, final int themeId) {
+        final String themeIdString = Integer.toString(themeId);
+        if (isValidKeyboardThemeId(themeId) || themeId == THEME_ID_UNKNOWN) {
+            // Set valid theme id to preference.
+            mPrefs.edit().putString(prefKey, themeIdString).apply();
+            return;
+        }
+        if (themeId == THEME_ID_NULL) {
+            // Simulate undefined preference.
+            mPrefs.edit().remove(prefKey).apply();
+            return;
+        }
+        // themeId == THEME_ID_ILLEGAL
+        // Simulate illegal format theme id in preference.
+        mPrefs.edit().putString(prefKey, ILLEGAL_THEME_ID_STRING).apply();
+    }
+
+    private void assertKeyboardTheme(final int sdkVersion, final int expectedThemeId) {
+        assertEquals(expectedThemeId, KeyboardTheme.getKeyboardTheme(mPrefs, sdkVersion).mThemeId);
+    }
+
+    /*
+     * Test keyboard theme preference on the same platform version and the same keyboard version.
+     */
+
+    private void assertKeyboardThemePreference(final int sdkVersion, final int oldThemeId,
+            final int expectedThemeId) {
+        final String prefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
+        setKeyboardThemePreference(prefKey, oldThemeId);
+        assertKeyboardTheme(sdkVersion, expectedThemeId);
+    }
+
+    private void assertKeyboardThemePreferenceOnKlp(final int sdkVersion) {
+        final int defaultThemeId = THEME_ID_KLP;
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_NULL, defaultThemeId);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_LXX, THEME_ID_LXX);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_UNKNOWN, defaultThemeId);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_ILLEGAL, defaultThemeId);
+    }
+
+    public void testKeyboardThemePreferenceOnKlp() {
+        assertKeyboardThemePreferenceOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertKeyboardThemePreferenceOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+        assertKeyboardThemePreferenceOnKlp(VERSION_CODES.JELLY_BEAN);
+        assertKeyboardThemePreferenceOnKlp(VERSION_CODES.JELLY_BEAN_MR1);
+        assertKeyboardThemePreferenceOnKlp(VERSION_CODES.JELLY_BEAN_MR2);
+        assertKeyboardThemePreferenceOnKlp(VERSION_CODES.KITKAT);
+    }
+
+    private void assertKeyboardThemePreferenceOnLxx(final int sdkVersion) {
+        final int defaultThemeId = THEME_ID_LXX;
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_NULL, defaultThemeId);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_LXX, THEME_ID_LXX);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_UNKNOWN, defaultThemeId);
+        assertKeyboardThemePreference(sdkVersion, THEME_ID_ILLEGAL, defaultThemeId);
+    }
+
+    public void testKeyboardThemePreferenceOnLxx() {
+        assertKeyboardThemePreferenceOnLxx(VERSION_CODES_LXX);
+    }
+
+    /*
+     * Test default keyboard theme based on the platform version.
+     */
+
     private void assertDefaultKeyboardTheme(final int sdkVersion, final int oldThemeId,
             final int expectedThemeId) {
-        if (oldThemeId == THEME_ID_NULL) {
-            mPrefs.edit().remove(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY).apply();
-        } else {
-            final String themeIdString = Integer.toString(oldThemeId);
-            mPrefs.edit().putString(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY, themeIdString).apply();
-        }
+        final String oldPrefKey = KeyboardTheme.KLP_KEYBOARD_THEME_KEY;
+        setKeyboardThemePreference(oldPrefKey, oldThemeId);
+
         final KeyboardTheme defaultTheme =
                 KeyboardTheme.getDefaultKeyboardTheme(mPrefs, sdkVersion);
+
         assertNotNull(defaultTheme);
         assertEquals(expectedThemeId, defaultTheme.mThemeId);
-        assertFalse(mPrefs.contains(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY));
+        if (sdkVersion <= VERSION_CODES.KITKAT) {
+            // Old preference must be retained if it is valid. Otherwise it must be pruned.
+            assertEquals(isValidKeyboardThemeId(oldThemeId), mPrefs.contains(oldPrefKey));
+            return;
+        }
+        // Old preference must be removed.
+        assertFalse(mPrefs.contains(oldPrefKey));
     }
 
-    private void assertDefaultKeyboardThemeICS(final int sdkVersion) {
-        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_ICS);
-        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
-        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
-    }
-
-    private void assertDefaultKeyboardThemeKLP(final int sdkVersion) {
+    private void assertDefaultKeyboardThemeOnKlp(final int sdkVersion) {
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_KLP);
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_KLP);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_KLP);
     }
 
-    private void assertDefaultKeyboardThemeLXX(final int sdkVersion) {
+    public void testDefaultKeyboardThemeOnKlp() {
+        assertDefaultKeyboardThemeOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertDefaultKeyboardThemeOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+        assertDefaultKeyboardThemeOnKlp(VERSION_CODES.JELLY_BEAN);
+        assertDefaultKeyboardThemeOnKlp(VERSION_CODES.JELLY_BEAN_MR1);
+        assertDefaultKeyboardThemeOnKlp(VERSION_CODES.JELLY_BEAN_MR2);
+        assertDefaultKeyboardThemeOnKlp(VERSION_CODES.KITKAT);
+    }
+
+    private void assertDefaultKeyboardThemeOnLxx(final int sdkVersion) {
         // Forced to switch to LXX theme.
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_LXX);
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_LXX);
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_LXX);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX);
     }
 
-    public void testDefaultKeyboardThemeICS() {
-        assertDefaultKeyboardThemeICS(VERSION_CODES.ICE_CREAM_SANDWICH);
-        assertDefaultKeyboardThemeICS(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+    public void testDefaultKeyboardThemeOnLxx() {
+        assertDefaultKeyboardThemeOnLxx(VERSION_CODES_LXX);
     }
 
-    public void testDefaultKeyboardThemeJB() {
-        assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN);
-        assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN_MR1);
-        assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN_MR2);
+    /*
+     * Test keyboard theme preference while upgrading the keyboard that doesn't support LXX theme
+     * to the keyboard that supports LXX theme.
+     */
+
+    private void assertUpgradeKeyboardToLxxOn(final int sdkVersion, final int oldThemeId,
+            final int expectedThemeId) {
+        setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, oldThemeId);
+        // Clean up new keyboard theme preference to simulate "upgrade to LXX keyboard".
+        setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+
+        final KeyboardTheme theme = KeyboardTheme.getKeyboardTheme(mPrefs, sdkVersion);
+
+        assertNotNull(theme);
+        assertEquals(expectedThemeId, theme.mThemeId);
+        if (sdkVersion <= VERSION_CODES.KITKAT) {
+            // New preference must not exist.
+            assertFalse(mPrefs.contains(KeyboardTheme.LXX_KEYBOARD_THEME_KEY));
+            // Old preference must be retained if it is valid. Otherwise it must be pruned.
+            assertEquals(isValidKeyboardThemeId(oldThemeId),
+                    mPrefs.contains(KeyboardTheme.KLP_KEYBOARD_THEME_KEY));
+            if (isValidKeyboardThemeId(oldThemeId)) {
+                // Old preference must have an expected value.
+                assertEquals(mPrefs.getString(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, null),
+                        Integer.toString(expectedThemeId));
+            }
+            return;
+        }
+        // Old preference must be removed.
+        assertFalse(mPrefs.contains(KeyboardTheme.KLP_KEYBOARD_THEME_KEY));
+        // New preference must not exist.
+        assertFalse(mPrefs.contains(KeyboardTheme.LXX_KEYBOARD_THEME_KEY));
     }
 
-    public void testDefaultKeyboardThemeKLP() {
-        assertDefaultKeyboardThemeKLP(VERSION_CODES.KITKAT);
+    private void assertUpgradeKeyboardToLxxOnKlp(final int sdkVersion) {
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_NULL, THEME_ID_KLP);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_KLP);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_KLP);
     }
 
-    public void testDefaultKeyboardThemeLXX() {
-        // TODO: Update this constant once the *next* version becomes available.
-        assertDefaultKeyboardThemeLXX(VERSION_CODES.CUR_DEVELOPMENT);
+    // Upgrading keyboard on I,J and K.
+    public void testUpgradeKeyboardToLxxOnKlp() {
+        assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+        assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.JELLY_BEAN);
+        assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.JELLY_BEAN_MR1);
+        assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.JELLY_BEAN_MR2);
+        assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.KITKAT);
+    }
+
+    private void assertUpgradeKeyboardToLxxOnLxx(final int sdkVersion) {
+        // Forced to switch to LXX theme.
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_NULL, THEME_ID_LXX);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ICS, THEME_ID_LXX);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_KLP, THEME_ID_LXX);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX);
+        assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX);
+    }
+
+    // Upgrading keyboard on L.
+    public void testUpgradeKeyboardToLxxOnLxx() {
+        assertUpgradeKeyboardToLxxOnLxx(VERSION_CODES_LXX);
+    }
+
+    /*
+     * Test keyboard theme preference while upgrading platform version.
+     */
+
+    private void assertUpgradePlatformFromTo(final int oldSdkVersion, final int newSdkVersion,
+            final int oldThemeId, final int expectedThemeId) {
+        if (newSdkVersion < oldSdkVersion) {
+            // No need to test.
+            return;
+        }
+        // Clean up preferences.
+        setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+        setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+
+        final String oldPrefKey = KeyboardTheme.getPreferenceKey(oldSdkVersion);
+        setKeyboardThemePreference(oldPrefKey, oldThemeId);
+
+        assertKeyboardTheme(newSdkVersion, expectedThemeId);
+    }
+
+    private void assertUpgradePlatformFromKlpToKlp(final int oldSdkVersion,
+            final int newSdkVersion) {
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_KLP);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_KLP);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_KLP);
+    }
+
+    private void assertUpgradePlatformToKlpFrom(final int oldSdkVersion) {
+        assertUpgradePlatformFromKlpToKlp(oldSdkVersion, VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertUpgradePlatformFromKlpToKlp(oldSdkVersion, VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+        assertUpgradePlatformFromKlpToKlp(oldSdkVersion, VERSION_CODES.JELLY_BEAN);
+        assertUpgradePlatformFromKlpToKlp(oldSdkVersion, VERSION_CODES.JELLY_BEAN_MR1);
+        assertUpgradePlatformFromKlpToKlp(oldSdkVersion, VERSION_CODES.JELLY_BEAN_MR2);
+        assertUpgradePlatformFromKlpToKlp(oldSdkVersion, VERSION_CODES.KITKAT);
+    }
+
+    // Update platform from I,J, and K to I,J, and K
+    public void testUpgradePlatformToKlpFromKlp() {
+        assertUpgradePlatformToKlpFrom(VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertUpgradePlatformToKlpFrom(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+        assertUpgradePlatformToKlpFrom(VERSION_CODES.JELLY_BEAN);
+        assertUpgradePlatformToKlpFrom(VERSION_CODES.JELLY_BEAN_MR1);
+        assertUpgradePlatformToKlpFrom(VERSION_CODES.JELLY_BEAN_MR2);
+        assertUpgradePlatformToKlpFrom(VERSION_CODES.KITKAT);
+    }
+
+    private void assertUpgradePlatformToLxxFrom(final int oldSdkVersion) {
+        // Forced to switch to LXX theme.
+        final int newSdkVersion = VERSION_CODES_LXX;
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_ICS, THEME_ID_LXX);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_KLP, THEME_ID_LXX);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX);
+    }
+
+    // Update platform from I,J, and K to L
+    public void testUpgradePlatformToLxx() {
+        assertUpgradePlatformToLxxFrom(VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertUpgradePlatformToLxxFrom(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+        assertUpgradePlatformToLxxFrom(VERSION_CODES.JELLY_BEAN);
+        assertUpgradePlatformToLxxFrom(VERSION_CODES.JELLY_BEAN_MR1);
+        assertUpgradePlatformToLxxFrom(VERSION_CODES.JELLY_BEAN_MR2);
+        assertUpgradePlatformToLxxFrom(VERSION_CODES.KITKAT);
+    }
+
+    // Update platform from L to L.
+    public void testUpgradePlatformToLxxFromLxx() {
+        final int oldSdkVersion = VERSION_CODES_LXX;
+        final int newSdkVersion = VERSION_CODES_LXX;
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX);
+        assertUpgradePlatformFromTo(oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX);
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java
index 2a4ead3..bdc608a 100644
--- a/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java
@@ -372,4 +372,14 @@
         assertTrue("copyCodePointsAndReturnCodePointCount throws when array is too small",
                 exceptionHappened);
     }
+
+    public void testGetTrailingSingleQuotesCount() {
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount(""));
+        assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'"));
+        assertEquals(5, StringUtils.getTrailingSingleQuotesCount("'''''"));
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("a"));
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("'this"));
+        assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'word'"));
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("I'm"));
+    }
 }