diff --git a/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java b/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
index c0a599c..60d420f 100644
--- a/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
+++ b/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
@@ -63,4 +63,13 @@
      */
     public static void forceSync(@Nullable String account) {
     }
+
+    /**
+     * Forces an immediate deletion of user's data.
+     * This should only be used for debugging purposes.
+     *
+     * @param account the account to use for sync.
+     */
+    public static void forceDelete(@Nullable String account) {
+    }
 }
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index f8be8f1..cbee42a 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Gevorderd"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktiveer verdeelde sleutelbord"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skakel oor na die ander invoermetodes"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Taal-wisselsleutel dek ook ander invoermetodes"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Taal-wisselsleutel"</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 9beccdf..8bc90f0 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"የላቀ"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"ገፅታ"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"የተከፈለ ቁልፍ ሰሌዳ አንቃ"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ወደ ሌሎች የግቤት ስልቶች ቀይር"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"የቋንቋ መቀየሪያ ቁልፍ ሌሎች የግቤት ስልቶችንም ይሸፍናል"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"የቋንቋ መቀየሪያ ቁልፍ"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index da414a6..ec6b8a5 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"الإعدادات المتقدمة"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"المظهر"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"هل تريد تمكين لوحة المفاتيح المقسمة"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏لحذف بياناتك التي تمت مزامنتها من Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"سيتم حذف البيانات التي تمت مزامنتها. هل تريد ذلك بالتأكيد؟"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"حذف"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"إلغاء"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"التبديل إلى أسلوب إدخال آخر"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"يغطي مفتاح تبديل اللغات أساليب الإدخال الأخرى أيضًا"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"مفتاح تبديل اللغة"</string>
diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml
index b1a192c..d88d9ba 100644
--- a/java/res/values-az-rAZ/strings.xml
+++ b/java/res/values-az-rAZ/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Qabaqcıl"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Klaviaturanı ayırmağa icazə verin"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Digər daxiletmə metodlarına keçin"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Dil keçid düyməsi başqa daxiletmə metodlarını da əhatə edir"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Dil keçidi düyməsi"</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index 5d7e6b4..de56050 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Разширени"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Активиране на разделената клавиатура"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Други методи за въвеждане"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавишът за превкл. на езика обхваща и други методи за въвеждане"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Клавиш за превкл. на езика"</string>
diff --git a/java/res/values-bn-rBD/strings.xml b/java/res/values-bn-rBD/strings.xml
index f47e271..ff08769 100644
--- a/java/res/values-bn-rBD/strings.xml
+++ b/java/res/values-bn-rBD/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"উন্নত"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"থিম"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"বিভক্ত কীবোর্ড সক্ষম করুন"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"অন্য ইনপুট পদ্ধতিতে স্যুইচ করুন"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ভাষা স্যুইচ কীতে অন্যান্য ইনপুট পদ্ধতি পাওয়া যায়"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ভাষা স্যুইচ কী"</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 3f0e447..e0c79fc 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançat"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Activa el teclat partit"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altres mètodes d\'introducció"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de canvi d\'idioma serveix també per a altres mètodes d\'entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de canvi d\'idioma"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index 4fd0e71..d30f8e8 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Rozšířená nastavení"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Motiv"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivovat rozdělenou klávesnici"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Přepínat metody zadávání"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Klávesa pro přepínání jazyka ovládá i další metody zadávání"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Klávesa přepínání jazyka"</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index 39c51e9..6f2adf0 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanceret"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivér delt tastatur"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skift inputmetode"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasten til sprogskift gælder også for andre inputmetoder"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Knap til sprogskift"</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index 1ced6d0..86e504e 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Erweitert"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Design"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Geteilte Tastatur aktivieren"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Eingabemethoden wechseln"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Sprachwechseltaste umfasst auch andere Eingabemethoden."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Sprachwechsel"</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index d9c4a40..963c0c8 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Σύνθετες"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Θέμα"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ενεργοποίηση διαχωρισμού πληκτρολογίου"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Άλλη μέθοδος εισόδου"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Το κλειδί αλλαγής γλώσσας καλύπτει και άλλες μεθόδους εισόδου"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Πλήκτρο εναλλαγής γλώσσας"</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 1778cde..0adcc08 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Enable split keyboard"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Deletes your synced data from Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"Your synced data will be deleted. Are you sure?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Delete"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"Cancel"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index 1778cde..0adcc08 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Enable split keyboard"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Deletes your synced data from Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"Your synced data will be deleted. Are you sure?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Delete"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"Cancel"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index 7b9e3ba..03846e7 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzada"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Habilitar teclado dividido"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Otros métodos de entrada"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de cambio de idioma abarca otros métodos de entrada."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de selección de idioma"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index a49ae31..d4c3ade 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Opciones avanzadas"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Habilitar teclado dividido"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Otros métodos de introducción"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de cambio de idioma sirve también para otros métodos"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla para cambiar de idioma"</string>
diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml
index 440331e..7606c1f 100644
--- a/java/res/values-et-rEE/strings.xml
+++ b/java/res/values-et-rEE/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Täpsem"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Luba kaheks jaotatud klaviatuur"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Vaheta sisestusmeetodit"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Keelevahetuse võti hõlmab ka muid sisestusmeetodeid"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Keelevahetuse nupp"</string>
diff --git a/java/res/values-eu-rES/strings.xml b/java/res/values-eu-rES/strings.xml
index 23d1593..d510f6a 100644
--- a/java/res/values-eu-rES/strings.xml
+++ b/java/res/values-eu-rES/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Ezarpen aurreratuak"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Gaia"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Gaitu teklatu banatua"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Aldatu idazketa-metodoa"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Hizkuntza aldatzeko teklak beste idazketa-metodoetarako ere balio du"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Hizkuntza aldatzeko tekla"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 16a6f87..0feb10f 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"پیشرفته"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"طرح‌زمینه"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"فعال کردن دونیم‌کردن صفحه‌کلید"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏اطلاعات همگام‌سازی شده شما را از Google حذف می‌کند"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"اطلاعات همگام‌سازی شده شما حذف می‌شوند. مطمئن هستید؟"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"حذف"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"لغو"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"تغییر به دیگر روش‌های ورودی"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"کلید تغییر زبان، سایر ورودی‌های زبان را نیز پوشش می‌دهد"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"کلید تغییر زبان"</string>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 6ef4b4e..1d4ac6c 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Lisäasetukset"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ota jaettu näppäimistö käyttöön"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Käytä toista syöttötapaa"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kielenvaihtonäppäin kattaa myös muut syöttötavat"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kielenvaihtonäppäin"</string>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index 6730a79..4cb0523 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avancés"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Thème"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Activer le clavier en deux parties"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Autres modes de saisie"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La touche de sélection de langue couvre d\'autres modes de saisie"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Touche de sélection de langue"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index 3349f4a..404470a 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Paramètres avancés"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Thème"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Activer le clavier en deux parties"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Autres modes de saisie"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La touche de sélection de langue couvre d\'autres modes de saisie."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Touche de sélection de langue"</string>
diff --git a/java/res/values-gl-rES/strings.xml b/java/res/values-gl-rES/strings.xml
index 9616a26..e9b6969 100644
--- a/java/res/values-gl-rES/strings.xml
+++ b/java/res/values-gl-rES/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Opcións avanzadas"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Activar teclado dividido"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Outros métodos de entrada"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla de cambio de idioma inclúe outros métodos de entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de cambio de idioma"</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index a4f2dd3..3d0edf4 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"अतिरिक्त सेटिंग"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"स्प्लिट कीबोर्ड सक्षम करें"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्‍य इनपुट पद्धतियों पर जाएं"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्‍विच कुंजी में अन्‍य इनपुट पद्धतियां भी शामिल हैं"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच कुंजी"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index e189371..ce400d2 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Napredno"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Omogući razdvojenu tipkovnicu"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prebaci na druge unose"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tipka za prebacivanje jezika pokriva i druge načine unosa"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tipka za izmjenjivanje jezika"</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index 71314b0..e10248e 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Speciális"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Téma"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Megosztott billentyűzet bekapcsolása"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Váltás más beviteli módra"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A nyelvkapcsoló gomb egyéb beviteli módokat is tartalmaz"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"A nyelvkapcsoló"</string>
diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml
index 8d7c5c8..fee3513 100644
--- a/java/res/values-hy-rAM/strings.xml
+++ b/java/res/values-hy-rAM/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Հավելյալ"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Թեմա"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Միացնել բաժանված ստեղնաշարը"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Անցնել մուտքագրման այլ եղանակների"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Լեզվի փոխարկման բանալին ընդգրկում է այլ մուտքագրման եղանակներ ևս"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Լեզվի փոխարկման ստեղն"</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index bd86f01..a83c64d 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktifkan keyboard terpisah"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Menghapus data yang disinkronkan dari Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"Data yang disinkronkan akan dihapus. Anda yakin?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Hapus"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"Batal"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Beralih ke metode masukan lain"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tombol beralih bahasa juga mencakup metode masukan lain"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tombol pengalih bahasa"</string>
diff --git a/java/res/values-is-rIS/strings.xml b/java/res/values-is-rIS/strings.xml
index 8a6927a..6d18ffd 100644
--- a/java/res/values-is-rIS/strings.xml
+++ b/java/res/values-is-rIS/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Ítarlegt"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Þema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Virkja skipt lyklaborð"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skipta um innsláttaraðferð"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Lykill til að skipta um mál inniheldur aðrar innsláttaraðferðir"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Lykill til að breyta tungumáli"</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 2bca3b4..1c0ffa9 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzate"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Attiva tastiera divisa"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altri metodi immissione"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Il tasto per cambiare lingua offre altri metodi di immissione"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tasto cambio lingua"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index c99d512..bb7aa9f 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"מתקדם"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"עיצוב"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"הפעל מקלדת מפוצלת"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏מוחק את הנתונים המסונכרנים שלך מ-Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"הנתונים המסונכרנים שלך יימחקו. האם אתה בטוח?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"מחק"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"בטל"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"עבור לשיטות קלט אחרות"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"מתג החלפת השפה מכסה גם שיטות קלט אחרות"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"מתג החלפת שפה"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 53ef577..9a43008 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"詳細設定"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"テーマ"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"スプリットキーボードを有効にする"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"他の入力方法に切り替え"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"言語切り替えキーは他の入力方法にも対応しています"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"言語切り替えキー"</string>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index d4457a5..71ec1f1 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"გაფართოებული"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"თემა"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"გაყოფილი კლავიატურის გააქტიურება"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"შეყვანის სხვა მეთოდებზე გადართვა"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ენის გადართვის ღილაკს შეყვანის სხვა მეთოდებსაც შეიცავს"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ენის გადართვის კლავიში"</string>
diff --git a/java/res/values-kk-rKZ/strings.xml b/java/res/values-kk-rKZ/strings.xml
index 58f8f30..31097d7 100644
--- a/java/res/values-kk-rKZ/strings.xml
+++ b/java/res/values-kk-rKZ/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Кеңейтілген"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тақырып"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Бөлінген пернетақтаны қосу"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Басқа енгізу әдістеріне ауыстырыңыз"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тілді ауыстыру пернесі басқа енгізу әдістерін де қамтиды"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Тілді ауыстыру пернесі"</string>
diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml
index 8aea853..95c96f2 100644
--- a/java/res/values-km-rKH/strings.xml
+++ b/java/res/values-km-rKH/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"កម្រិត​ខ្ពស់"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"រូបរាង"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"បើក​ការ​បំបែក​ក្ដារចុច"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ប្ដូរ​ទៅ​​​វិធីសាស្ត្រ​បញ្ចូល​​​ផ្សេង​ទៀត"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"គ្រាប់ចុច​ប្ដូរ​ភាសា​តាម​វិធីសាស្ត្រ​បញ្ចូល​ផ្សេងទៀត"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"គ្រាប់​ចុច​ប្ដូរ​​ភាសា"</string>
diff --git a/java/res/values-kn-rIN/strings.xml b/java/res/values-kn-rIN/strings.xml
index 04d9b1c..3b45511 100644
--- a/java/res/values-kn-rIN/strings.xml
+++ b/java/res/values-kn-rIN/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"ಸುಧಾರಿತ"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"ಥೀಮ್"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"ಬೇರ್ಪಡೆ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ಇತರೆ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳಿಗೆ ಬದಲಾಯಿಸು"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ಭಾಷಾ ಬದಲಾವಣೆ ಕೀಯು ಇತರೆ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಕೂಡ ಒಳಗೊಂಡಿರುತ್ತದೆ"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ಭಾಷೆ ಬದಲಾವಣೆ ಕೀ"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index 68195f0..7e609e9 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"고급"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"테마"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"분할 키보드 사용"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"다른 입력 방법으로 전환"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"언어 전환 키가 제공하는 기타 입력 방법"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"언어 전환 키"</string>
diff --git a/java/res/values-ky-rKG/strings.xml b/java/res/values-ky-rKG/strings.xml
index 6b46785..14d5601 100644
--- a/java/res/values-ky-rKG/strings.xml
+++ b/java/res/values-ky-rKG/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Өркүндөтүлгөн"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Баскычтопту бөлүүнү иштетүү"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Башка киргзүү ыкмалрна которуу"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тил которуштуруу баскычында башка киргизүү ыкмалары дагы камтылган"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Тил которуштуруу баскычы"</string>
diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml
index efc09be..3535f94 100644
--- a/java/res/values-lo-rLA/strings.xml
+++ b/java/res/values-lo-rLA/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"​ຂັ້ນ​ສູງ"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"ຮູບແບບສີສັນ"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"ເປີດ​ນຳ​ໃຊ້​ແປ້ນ​ພິມ​ແຍກ​ຕົວ"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"ລຶບ​ຂໍ້​ມູນ​ທີ່​ຊິງ​ຄ໌​ແລ້ວ​ຂອງ​ທ່ານ​ຈາກ Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"ຂໍ້​ມູນ​ທີ່​ຊິງ​ຄ໌​ແລ້ວ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ລຶບ. ທ່ານ​ແນ່​ໃຈ​ບໍ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ລຶບ"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"​ຍົກ​ເລີກ"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ປ່ຽນໄປໃຊ້ການປ້ອນຂໍ້ມູນແບບອື່ນ"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ໂຕປ່ຽນພາສາເປັນທັງໂຕປ່ຽນຮູບແບບການປ້ອນຂໍ້ມູນເຊັ່ນກັນ"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ປຸ່ມປ່ຽນພາສາ"</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index cc8d0ea..8815614 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Išplėstiniai"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Įgalinti suskaidytą klaviatūrą"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Perj. į kt. įvesties būd."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kalbos perjungimo klavišu taip pat perjungiami įvesties būdai"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kalbos keitimo klavišas"</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index 833839b..663f427 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Papildu"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Motīvs"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Iespējot dalīto tastatūru"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Pārsl. uz citām iev. met."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Valodas pārslēgš. taustiņu var lietot arī citām ievades metodēm."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Valodas pārslēgšanas taustiņš"</string>
diff --git a/java/res/values-mk-rMK/strings.xml b/java/res/values-mk-rMK/strings.xml
index f3503f7..ba5402a 100644
--- a/java/res/values-mk-rMK/strings.xml
+++ b/java/res/values-mk-rMK/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Напредни"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Овозможи поделена тастатура"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Префрли на други влезни методи"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Копчето за менување јазици покрива и други методи на внес"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Копче за промена на јазик"</string>
diff --git a/java/res/values-ml-rIN/strings.xml b/java/res/values-ml-rIN/strings.xml
index a34de64..845d04f 100644
--- a/java/res/values-ml-rIN/strings.xml
+++ b/java/res/values-ml-rIN/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"വിപുലമായ"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"തീം"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"സ്‌പ്‌ലിറ്റ് കീബോർഡ് പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"മറ്റു ടൈപ്പുചെയ്യൽ രീതികളിലേക്ക് മാറുക"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ഭാഷ മാറൽ കീയിൽ മറ്റ് ടൈപ്പുചെയ്യൽ രീതികളും ഉൾപ്പെടുന്നു"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ഭാഷ മാറൽ കീ"</string>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index 938c90f..d70fec6 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Дэлгэрэнгүй"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Загвар"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Хуваагдмал гарыг идэвхжүүлэх"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Таны синк хийсэн мэдээллийг Google-ээс устгана."</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"Таны синк хийсэн мэдээлэл устах болно. Та итгэлтэй байна уу?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Устгах"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"Цуцлах"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Оруулах өөр арга руу шилжүүлэх"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Хэл солих түлхүүрт өөр оруулах аргууд мөн багтсан байгаа"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Хэл солих товч"</string>
diff --git a/java/res/values-mr-rIN/strings.xml b/java/res/values-mr-rIN/strings.xml
index 2c6746e..eb2bea5 100644
--- a/java/res/values-mr-rIN/strings.xml
+++ b/java/res/values-mr-rIN/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"प्रगत"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"विभाजित कीबोर्ड सक्षम करा"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट पद्धतींवर स्विच करा"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच की अन्य इनपुट पद्धती देखील समाविष्ट करते"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच की"</string>
diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml
index 3136c3b..a57099a 100644
--- a/java/res/values-ms-rMY/strings.xml
+++ b/java/res/values-ms-rMY/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Dayakan papan kekunci terpisah"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Tukar ke kaedah input lain"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kunci pertukaran bahasa meliputi kaedah masukan lain juga"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kekunci tukar bahasa"</string>
diff --git a/java/res/values-my-rMM/strings.xml b/java/res/values-my-rMM/strings.xml
index ab40378..5a49105 100644
--- a/java/res/values-my-rMM/strings.xml
+++ b/java/res/values-my-rMM/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"အဆင့်မြင့်"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"အပြင်အဆင်"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"ကီးဘုတ် ခွဲခြမ်းမှု ဖွင့်ထားရန်"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"သင်၏ စင့်က် လုပ်ပြီးသား ဒေတာ Google ထဲမှ ဖျက်ခံရမည်။"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"သင်၏ စင့်က် လုပ်ပြီးသား ဒေတာ ဖျက်ခံရမည်။ သင် သေချာသလား?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ဖျက်ရန်"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"ဖျက်သိမ်းရန်"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"အခြားထည့်သွင်းမည့် နည်းလမ်းများသို့ ပြောင်းရန်"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ဘာသာပြောင်းသည့် ကီးသည် အခြားထည့်သွင်းရန် နည်းလမ်းများလည်း ပါဝင်သည်"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ဘာသာစကား ပြောင်းခလုတ်"</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 849d7ab..c28c210 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avansert"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivér delt tastatur"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Bytt inndatametode"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasten for språkbytte dekker også andre inndatametoder"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Nøkkel for språkskifte"</string>
diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml
index 40c2d4f..e6e7098 100644
--- a/java/res/values-ne-rNP/strings.xml
+++ b/java/res/values-ne-rNP/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"उन्नत"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"विषयवस्तु"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"विभाजित कुञ्जीपाटी सक्षम गर्नुहोस्"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google बाट तपाईँको सिङ्क गरिएको डाटा मेटाउँछ"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"तपाईंको समक्रमण गरिएको डाटा मेटाइनेछ। के तपाईं निश्चित हुनुहुन्छ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"मेटाउनुहोस्"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"रद्द गर्नुहोस्"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट विधिमा स्विच गर्नुहोस्"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच किले अन्य इनपुट विधि पनि समेट्छ"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच कुञ्जी"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index d09db3f..4a967ac 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Geavanceerd"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Thema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Gesplitst toetsenbord inschakelen"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Invoermeth. overschakelen"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Schakelknop voor taal ook van toepassing op andere invoermethoden"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Schakelknop voor taal"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index 39cf742..9b8fac4 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Zaawansowane"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Motyw"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Włącz podzieloną klawiaturę"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Inne metody wprowadzania"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Klawisz zmiany języka obejmuje też inne metody wprowadzania"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Klawisz zmiany języka"</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index e063cba..34c6d1a 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ativar teclado dividido"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Mudar p/ outros mét. ent."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla de mudança de idioma abrange outros métodos de entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla alterar idioma"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index 2cc86e1..181782c 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ativar teclado dividido"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Outros métodos de entrada"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla p/ mudar o idioma também cobre outros métodos de entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de seleção de idioma"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 0339873..0529621 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Setări avansate"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Temă"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Activați tastatura divizată"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Comut. alte metode de introd."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasta de comutare între limbi include şi alte metode de introd."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tastă comutare limbi"</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index e5aaf8b..304f998 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Дополнительные настройки"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Включить разделенную клавиатуру"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Смена способов ввода"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавиша переключения языков также служит для смены способа ввода"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Клавиша смены языка"</string>
diff --git a/java/res/values-si-rLK/strings.xml b/java/res/values-si-rLK/strings.xml
index f8fa5e7..27d68c6 100644
--- a/java/res/values-si-rLK/strings.xml
+++ b/java/res/values-si-rLK/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"උසස්"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"තේමාව"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"බෙදු යතුරු පුවරුව සබල කරන්න"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"වෙනත් ආදාන ක්‍රම වෙත මාරුවන්න"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"භාෂා මාරු යතුර වෙනත් ආදාන ක්‍රමද ආවරණය කරයි"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"භාෂා මාරු යතුර"</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index 0d0e69f..c9ce297 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Rozšírené"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Motív"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Povoliť rozdelenie klávesnice"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prepnúť na iné metódy vstupu"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kláves na prepnutie jazyka pokrýva aj ďalšie metódy vstupu"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kľúč na prepínanie jazyka"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index e1f86c3..5aa8105 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Dodatno"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Omogoči razdeljeno tipkovnico"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prekl. na drug nač. vnosa"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tipka za preklop jezika, ki vključuje tudi druge načine vnosa"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tipka za preklop med jeziki"</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index f8c4ff6..4c43497 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Напредно"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Омогући подељену тастатуру"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Пребаци на друге методе уноса"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тастер за пребацивање језика обухвата и друге методе уноса"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Тастер за пребацивање језика"</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 0c7d1a7..396c20e 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avancerat"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivera delat tangentbord"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Byt till annan inmatning"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Språkbytesknappen omfattar även andra inmatningsmetoder"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Knapp för att byta språk"</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index 04c4f2b..c24c900 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Mahiri"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Mandhari"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Washa muundo wa kibodi inayogawanyika"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Badilisha hadi kwa mbinu zingine za ingizo"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Ufunguo wa kubadilisha lugha unashughulikia mbinu zingine za ingizo pia"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kitufe cha kubadilisha lugha"</string>
diff --git a/java/res/values-ta-rIN/strings.xml b/java/res/values-ta-rIN/strings.xml
index 64c573b..8e208b1 100644
--- a/java/res/values-ta-rIN/strings.xml
+++ b/java/res/values-ta-rIN/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"மேம்பட்டவை"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"தீம்"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"பிரிக்கப்பட்ட விசைப்பலகையை இயக்கு"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"பிற உள்ளீட்டு முறைகளுக்கு மாறு"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"மொழி மாற்றல் விசை பிற உள்ளீட்டு முறைகளையும் கட்டுப்படுத்துகிறது"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"மொழி மாற்ற விசை"</string>
diff --git a/java/res/values-te-rIN/strings.xml b/java/res/values-te-rIN/strings.xml
index 0fb55b4..4d891a9 100644
--- a/java/res/values-te-rIN/strings.xml
+++ b/java/res/values-te-rIN/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"అధునాతనం"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"థీమ్"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"విభజన కీబోర్డ్‌ను ప్రారంభించు"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ఇతర ఇన్‌పుట్ పద్ధతులకు మారండి"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"భాష మార్పు కీ ఇతర ఇన్‌పుట్ పద్ధతులను కూడా కవర్ చేస్తుంది"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"భాష మార్పు కీ"</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index fcc76d9..d1580ba 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"ขั้นสูง"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"ธีม"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"เปิดใช้แป้นพิมพ์แยก"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ใช้วิธีการป้อนข้อมูลอื่น"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"แป้นสลับภาษาครอบคลุมวิธีการป้อนข้อมูลอื่นๆ ด้วย"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"แป้นสลับภาษา"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index 82617b8..1ebf4c3 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"I-enable ang split keyboard"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Lipat iba paraan ng input"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Saklaw din ng key ng pagpalit ng wika ang ibang paraan ng input"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Key ng panlipat ng wika"</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 359e0d1..340a417 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Gelişmiş"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Bölünmüş klavyeyi etkinleştir"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Diğer giriş yöntemine geç"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Dil geçiş tuşu diğer giriş yöntemlerini de kapsar"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Dil değiştirme tuşu"</string>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index dd625cb..dd1e068 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Додатково"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Увімкнути розділену клавіатуру"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Інші методи введення"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавіша зміни мови дозволяє змінювати методи введення"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Клавіша зміни мови"</string>
diff --git a/java/res/values-ur-rPK/strings.xml b/java/res/values-ur-rPK/strings.xml
index 4b1f03b..4827eb9e 100644
--- a/java/res/values-ur-rPK/strings.xml
+++ b/java/res/values-ur-rPK/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"جدید ترین"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"تھیم"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"الگ ہونے والا کی بورڈ فعال کریں"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"دیگر اندراج طریقوں پر سوئچ کریں"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"زبان سوئچ کرنے کی کلید اندراج کے دیگر طریقوں کا بھی احاطہ کرتی ہے"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"زبان سوئچ کرنے کی کلید"</string>
diff --git a/java/res/values-uz-rUZ/strings.xml b/java/res/values-uz-rUZ/strings.xml
index 59aba60..4021408 100644
--- a/java/res/values-uz-rUZ/strings.xml
+++ b/java/res/values-uz-rUZ/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Qo‘shimcha"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Mavzu"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ikkiga ajratiladigan klaviaturani yoqish"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Boshqa usullarga o‘tish"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tilni o‘zgartirish tugmasi matn kiritish usulini ham o‘zgartiradi"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tilni o‘zgartirish tugmasi"</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index ec0deb1..104a9dd 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Nâng cao"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Chủ đề"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Bật chia bàn phím"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Phương thức nhập khác"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Khóa chuyển ngôn ngữ bao gồm cả các phương thức nhập liệu khác"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Phím chuyển đổi ngôn ngữ"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 52b0dac..31d6ea6 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"高级"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"主题背景"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"使用分离式键盘"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切换到其他输入法"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"语言切换键也可用于切换其他输入法"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"语言切换键"</string>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index 840f333..3e8d405 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"進階"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"主題背景"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"啟用分離式鍵盤"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切換至其他輸入法"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"語言切換鍵包括其他輸入法"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"語言切換鍵"</string>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 8fac310..2be37d5 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -35,6 +35,14 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"進階"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"主題"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"啟用分離式鍵盤"</string>
+    <!-- no translation found for clear_sync_data_summary (993477139012576584) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_confirmation (6415032621884042784) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_ok (613104067705915132) -->
+    <skip />
+    <!-- no translation found for clear_sync_data_cancel (8543925137765830060) -->
+    <skip />
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切換到其他輸入法"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"使語言切換鍵包含其他輸入法"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"語言切換鍵"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 0177129..db62fe8 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -35,6 +35,10 @@
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Okuthuthukisiwe"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Itimu"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Nika amandla ikhibhodi yokuhlukanisa"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Susa idatha yakho evumelanisiwe esuka ku-Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="6415032621884042784">"Idatha yakho evumelanisiwe izosuswa. Ingabe uqinisekile?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Susa"</string>
+    <string name="clear_sync_data_cancel" msgid="8543925137765830060">"Khansela"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Shintshela kwezinye izindlela zokungena"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Ukhiye wokushintsha ulimi ubandakanya ezinye izindlela zokungenayo"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Ukhiye wokushintsha ullimi"</string>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index e1a72c4..5eaac09 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -61,6 +61,11 @@
     <string name="cloud_sync_summary" translatable="false">Sync your personal dictionary across devices</string>
     <string name="cloud_sync_summary_disabled_signed_out" translatable="false">Select an account to enable sync</string>
     <string name="sync_now_title" translatable="false">[DEBUG] Sync Now</string>
+    <string name="clear_sync_data_title" translatable="false">[DEBUG] Delete Google Keyboard cloud data</string>
+    <string name="clear_sync_data_summary" translable="false">Deletes your synced data from Google</string>
+    <string name="clear_sync_data_confirmation" translable="false">Your synced data will be deleted. Are you sure?</string>
+    <string name="clear_sync_data_ok" translable="false">Delete</string>
+    <string name="clear_sync_data_cancel" translable="false">Cancel</string>
 
     <!-- Option name for including other IMEs in the language switch list [CHAR LIMIT=30] -->
     <string name="include_other_imes_in_language_switch_list">Switch to other input methods</string>
diff --git a/java/res/xml/prefs_screen_accounts.xml b/java/res/xml/prefs_screen_accounts.xml
index 41642bf..4624885 100644
--- a/java/res/xml/prefs_screen_accounts.xml
+++ b/java/res/xml/prefs_screen_accounts.xml
@@ -48,4 +48,11 @@
         android:persistent="false"
         android:title="@string/sync_now_title"
         android:dependency="pref_enable_cloud_sync" />
+
+    <!-- This preference (acts like a button) enables the user to clear data from the cloud. -->
+    <Preference android:key="pref_beanstalk_clear_data"
+        android:persistent="false"
+        android:title="@string/clear_sync_data_title"
+        android:summary="@string/clear_sync_data_summary"
+        android:dependency="pref_enable_cloud_sync" />
 </PreferenceScreen>
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 4c24988..9dc57e3 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -34,7 +34,6 @@
 import com.android.inputmethod.latin.LatinIME;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
-import com.android.inputmethod.latin.SubtypeSwitcher;
 import com.android.inputmethod.latin.WordComposer;
 import com.android.inputmethod.latin.define.ProductionFlags;
 import com.android.inputmethod.latin.settings.Settings;
@@ -50,8 +49,6 @@
         NetworkConnectivityUtils.NetworkStateChangeListener {
     private static final String TAG = KeyboardSwitcher.class.getSimpleName();
 
-    private SubtypeSwitcher mSubtypeSwitcher;
-
     private InputView mCurrentInputView;
     private View mMainKeyboardFrame;
     private MainKeyboardView mKeyboardView;
@@ -86,7 +83,6 @@
     private void initInternal(final LatinIME latinIme) {
         mLatinIME = latinIme;
         mRichImm = RichInputMethodManager.getInstance();
-        mSubtypeSwitcher = SubtypeSwitcher.getInstance();
         mState = new KeyboardState(this);
         mIsHardwareAcceleratedDrawingEnabled =
                 InputMethodServiceCompatUtils.enableHardwareAcceleration(mLatinIME);
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 59763c0..22fd907 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -39,6 +39,8 @@
 import java.util.List;
 import java.util.Locale;
 
+import javax.annotation.Nullable;
+
 public class ContactsBinaryDictionary extends ExpandableBinaryDictionary {
 
     private static final String[] PROJECTION = {BaseColumns._ID, Contacts.DISPLAY_NAME};
@@ -86,7 +88,7 @@
     // Note: This method is called by {@link DictionaryFacilitator} using Java reflection.
     @ExternallyReferenced
     public static ContactsBinaryDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
+            final File dictFile, final String dictNamePrefix, @Nullable final String account) {
         return new ContactsBinaryDictionary(context, locale, dictFile, dictNamePrefix + NAME);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index acf9cf1..b8893a5 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -44,6 +44,7 @@
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -56,8 +57,16 @@
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-// TODO: Consolidate dictionaries in native code.
+/**
+ * Facilitates interaction with different kinds of dictionaries. Provides APIs
+ * to instantiate and select the correct dictionaries (based on language or account),
+ * update entries and fetch suggestions.
+ *
+ * Currently AndroidSpellCheckerService and LatinIME both use DictionaryFacilitator as
+ * a client for interacting with dictionaries.
+ */
 public class DictionaryFacilitator {
+    // TODO: Consolidate dictionaries in native code.
     public static final String TAG = DictionaryFacilitator.class.getSimpleName();
 
     // HACK: This threshold is being used when adding a capitalized entry in the User History
@@ -99,7 +108,7 @@
 
     private static final String DICT_FACTORY_METHOD_NAME = "getDictionary";
     private static final Class<?>[] DICT_FACTORY_METHOD_ARG_TYPES =
-            new Class[] { Context.class, Locale.class, File.class, String.class };
+            new Class[] { Context.class, Locale.class, File.class, String.class, String.class };
 
     private static final String[] SUB_DICT_TYPES =
             Arrays.copyOfRange(DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS, 1 /* start */,
@@ -107,8 +116,8 @@
 
     /**
      * Returns whether this facilitator is exactly for this list of locales.
+     *
      * @param locales the list of locales to test against
-     * @return true if this facilitator handles exactly this list of locales, false otherwise
      */
     public boolean isForLocales(final Locale[] locales) {
         if (locales.length != mDictionaryGroups.length) {
@@ -130,33 +139,62 @@
     }
 
     /**
+     * Returns whether this facilitator is exactly for this account.
+     *
+     * @param account the account to test against.
+     */
+    public boolean isForAccount(@Nullable final String account) {
+        for (final DictionaryGroup group : mDictionaryGroups) {
+            if (!TextUtils.equals(group.mAccount, account)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
      * A group of dictionaries that work together for a single language.
      */
     private static class DictionaryGroup {
+        // TODO: Add null analysis annotations.
         // TODO: Run evaluation to determine a reasonable value for these constants. The current
         // values are ad-hoc and chosen without any particular care or methodology.
         public static final float WEIGHT_FOR_MOST_PROBABLE_LANGUAGE = 1.0f;
         public static final float WEIGHT_FOR_GESTURING_IN_NOT_MOST_PROBABLE_LANGUAGE = 0.95f;
         public static final float WEIGHT_FOR_TYPING_IN_NOT_MOST_PROBABLE_LANGUAGE = 0.6f;
 
-        public final Locale mLocale;
-        private Dictionary mMainDict;
+        /**
+         * The locale associated with the dictionary group.
+         */
+        @Nullable public final Locale mLocale;
+
+        /**
+         * The user account associated with the dictionary group.
+         */
+        @Nullable public final String mAccount;
+
+        @Nullable private Dictionary mMainDict;
         // Confidence that the most probable language is actually the language the user is
         // typing in. For now, this is simply the number of times a word from this language
         // has been committed in a row.
         private int mConfidence = 0;
+
         public float mWeightForTypingInLocale = WEIGHT_FOR_MOST_PROBABLE_LANGUAGE;
         public float mWeightForGesturingInLocale = WEIGHT_FOR_MOST_PROBABLE_LANGUAGE;
         public final ConcurrentHashMap<String, ExpandableBinaryDictionary> mSubDictMap =
                 new ConcurrentHashMap<>();
 
         public DictionaryGroup() {
-            mLocale = null;
+            this(null /* locale */, null /* mainDict */, null /* account */,
+                    Collections.<String, ExpandableBinaryDictionary>emptyMap() /* subDicts */);
         }
 
-        public DictionaryGroup(final Locale locale, final Dictionary mainDict,
+        public DictionaryGroup(@Nullable final Locale locale,
+                @Nullable final Dictionary mainDict,
+                @Nullable final String account,
                 final Map<String, ExpandableBinaryDictionary> subDicts) {
             mLocale = locale;
+            mAccount = account;
             // The main dictionary can be asynchronously loaded.
             setMainDict(mainDict);
             for (final Map.Entry<String, ExpandableBinaryDictionary> entry : subDicts.entrySet()) {
@@ -190,10 +228,17 @@
             return mSubDictMap.get(dictType);
         }
 
-        public boolean hasDict(final String dictType) {
+        public boolean hasDict(final String dictType, @Nullable final String account) {
             if (Dictionary.TYPE_MAIN.equals(dictType)) {
                 return mMainDict != null;
             }
+            if (Dictionary.TYPE_USER_HISTORY.equals(dictType) &&
+                    !TextUtils.equals(account, mAccount)) {
+                // If the dictionary type is user history, & if the account doesn't match,
+                // return immediately. If the account matches, continue looking it up in the
+                // sub dictionary map.
+                return false;
+            }
             return mSubDictMap.containsKey(dictType);
         }
 
@@ -310,7 +355,7 @@
     @Nullable
     private static ExpandableBinaryDictionary getSubDict(final String dictType,
             final Context context, final Locale locale, final File dictFile,
-            final String dictNamePrefix) {
+            final String dictNamePrefix, @Nullable final String account) {
         final Class<? extends ExpandableBinaryDictionary> dictClass =
                 DICT_TYPE_TO_CLASS.get(dictType);
         if (dictClass == null) {
@@ -320,7 +365,7 @@
             final Method factoryMethod = dictClass.getMethod(DICT_FACTORY_METHOD_NAME,
                     DICT_FACTORY_METHOD_ARG_TYPES);
             final Object dict = factoryMethod.invoke(null /* obj */,
-                    new Object[] { context, locale, dictFile, dictNamePrefix });
+                    new Object[] { context, locale, dictFile, dictNamePrefix, account });
             return (ExpandableBinaryDictionary) dict;
         } catch (final NoSuchMethodException | SecurityException | IllegalAccessException
                 | IllegalArgumentException | InvocationTargetException e) {
@@ -332,17 +377,19 @@
     public void resetDictionaries(final Context context, final Locale[] newLocales,
             final boolean useContactsDict, final boolean usePersonalizedDicts,
             final boolean forceReloadMainDictionary,
+            @Nullable final String account,
             final DictionaryInitializationListener listener) {
         resetDictionariesWithDictNamePrefix(context, newLocales, useContactsDict,
-                usePersonalizedDicts, forceReloadMainDictionary, listener, "" /* dictNamePrefix */);
+                usePersonalizedDicts, forceReloadMainDictionary, listener, "" /* dictNamePrefix */,
+                account);
     }
 
     @Nullable
     static DictionaryGroup findDictionaryGroupWithLocale(final DictionaryGroup[] dictionaryGroups,
             final Locale locale) {
-        for (int i = 0; i < dictionaryGroups.length; ++i) {
-            if (locale.equals(dictionaryGroups[i].mLocale)) {
-                return dictionaryGroups[i];
+        for (DictionaryGroup dictionaryGroup : dictionaryGroups) {
+            if (locale.equals(dictionaryGroup.mLocale)) {
+                return dictionaryGroup;
             }
         }
         return null;
@@ -350,11 +397,13 @@
 
     public void resetDictionariesWithDictNamePrefix(final Context context,
             final Locale[] newLocales,
-            final boolean useContactsDict, final boolean usePersonalizedDicts,
+            final boolean useContactsDict,
+            final boolean usePersonalizedDicts,
             final boolean forceReloadMainDictionary,
             @Nullable final DictionaryInitializationListener listener,
-            final String dictNamePrefix) {
-        final HashMap<Locale, ArrayList<String>> existingDictsToCleanup = new HashMap<>();
+            final String dictNamePrefix,
+            @Nullable final String account) {
+        final HashMap<Locale, ArrayList<String>> existingDictionariesToCleanup = new HashMap<>();
         // TODO: Make subDictTypesToUse configurable by resource or a static final list.
         final HashSet<String> subDictTypesToUse = new HashSet<>();
         subDictTypesToUse.add(Dictionary.TYPE_USER);
@@ -369,20 +418,20 @@
 
         // Gather all dictionaries. We'll remove them from the list to clean up later.
         for (final Locale newLocale : newLocales) {
-            final ArrayList<String> dictsForLocale = new ArrayList<>();
-            existingDictsToCleanup.put(newLocale, dictsForLocale);
+            final ArrayList<String> dictTypeForLocale = new ArrayList<>();
+            existingDictionariesToCleanup.put(newLocale, dictTypeForLocale);
             final DictionaryGroup currentDictionaryGroupForLocale =
                     findDictionaryGroupWithLocale(mDictionaryGroups, newLocale);
             if (null == currentDictionaryGroupForLocale) {
                 continue;
             }
             for (final String dictType : SUB_DICT_TYPES) {
-                if (currentDictionaryGroupForLocale.hasDict(dictType)) {
-                    dictsForLocale.add(dictType);
+                if (currentDictionaryGroupForLocale.hasDict(dictType, account)) {
+                    dictTypeForLocale.add(dictType);
                 }
             }
-            if (currentDictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN)) {
-                dictsForLocale.add(Dictionary.TYPE_MAIN);
+            if (currentDictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN, account)) {
+                dictTypeForLocale.add(Dictionary.TYPE_MAIN);
             }
         }
 
@@ -391,34 +440,35 @@
             final Locale newLocale = newLocales[i];
             final DictionaryGroup dictionaryGroupForLocale =
                     findDictionaryGroupWithLocale(mDictionaryGroups, newLocale);
-            final ArrayList<String> dictsToCleanupForLocale = existingDictsToCleanup.get(newLocale);
+            final ArrayList<String> dictTypesToCleanupForLocale =
+                    existingDictionariesToCleanup.get(newLocale);
             final boolean noExistingDictsForThisLocale = (null == dictionaryGroupForLocale);
 
             final Dictionary mainDict;
             if (forceReloadMainDictionary || noExistingDictsForThisLocale
-                    || !dictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN)) {
+                    || !dictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN, account)) {
                 mainDict = null;
             } else {
                 mainDict = dictionaryGroupForLocale.getDict(Dictionary.TYPE_MAIN);
-                dictsToCleanupForLocale.remove(Dictionary.TYPE_MAIN);
+                dictTypesToCleanupForLocale.remove(Dictionary.TYPE_MAIN);
             }
 
             final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
             for (final String subDictType : subDictTypesToUse) {
                 final ExpandableBinaryDictionary subDict;
                 if (noExistingDictsForThisLocale
-                        || !dictionaryGroupForLocale.hasDict(subDictType)) {
+                        || !dictionaryGroupForLocale.hasDict(subDictType, account)) {
                     // Create a new dictionary.
                     subDict = getSubDict(subDictType, context, newLocale, null /* dictFile */,
-                            dictNamePrefix);
+                            dictNamePrefix, account);
                 } else {
                     // Reuse the existing dictionary, and don't close it at the end
                     subDict = dictionaryGroupForLocale.getSubDict(subDictType);
-                    dictsToCleanupForLocale.remove(subDictType);
+                    dictTypesToCleanupForLocale.remove(subDictType);
                 }
                 subDicts.put(subDictType, subDict);
             }
-            newDictionaryGroups[i] = new DictionaryGroup(newLocale, mainDict, subDicts);
+            newDictionaryGroups[i] = new DictionaryGroup(newLocale, mainDict, account, subDicts);
         }
 
         // Replace Dictionaries.
@@ -437,9 +487,9 @@
         }
 
         // Clean up old dictionaries.
-        for (final Locale localeToCleanUp : existingDictsToCleanup.keySet()) {
+        for (final Locale localeToCleanUp : existingDictionariesToCleanup.keySet()) {
             final ArrayList<String> dictTypesToCleanUp =
-                    existingDictsToCleanup.get(localeToCleanUp);
+                    existingDictionariesToCleanup.get(localeToCleanUp);
             final DictionaryGroup dictionarySetToCleanup =
                     findDictionaryGroupWithLocale(oldDictionaryGroups, localeToCleanUp);
             for (final String dictType : dictTypesToCleanUp) {
@@ -493,7 +543,8 @@
     @UsedForTesting
     public void resetDictionariesForTesting(final Context context, final Locale[] locales,
             final ArrayList<String> dictionaryTypes, final HashMap<String, File> dictionaryFiles,
-            final Map<String, Map<String, String>> additionalDictAttributes) {
+            final Map<String, Map<String, String>> additionalDictAttributes,
+            @Nullable final String account) {
         Dictionary mainDictionary = null;
         final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
 
@@ -507,7 +558,7 @@
                 } else {
                     final File dictFile = dictionaryFiles.get(dictType);
                     final ExpandableBinaryDictionary dict = getSubDict(
-                            dictType, context, locale, dictFile, "" /* dictNamePrefix */);
+                            dictType, context, locale, dictFile, "" /* dictNamePrefix */, account);
                     if (additionalDictAttributes.containsKey(dictType)) {
                         dict.clearAndFlushDictionaryWithAdditionalAttributes(
                                 additionalDictAttributes.get(dictType));
@@ -520,7 +571,7 @@
                     subDicts.put(dictType, dict);
                 }
             }
-            dictionaryGroups[i] = new DictionaryGroup(locale, mainDictionary, subDicts);
+            dictionaryGroups[i] = new DictionaryGroup(locale, mainDictionary, account, subDicts);
         }
         mDictionaryGroups = dictionaryGroups;
         mMostProbableDictionaryGroup = dictionaryGroups[0];
@@ -576,7 +627,7 @@
     public boolean hasPersonalizationDictionary() {
         final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
         for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
-            if (dictionaryGroup.hasDict(Dictionary.TYPE_PERSONALIZATION)) {
+            if (dictionaryGroup.hasDict(Dictionary.TYPE_PERSONALIZATION, null /* account */)) {
                 return true;
             }
         }
@@ -677,7 +728,8 @@
             // History dictionary in order to avoid suggesting them until the dictionary
             // consolidation is done.
             // TODO: Remove this hack when ready.
-            final int lowerCaseFreqInMainDict = dictionaryGroup.hasDict(Dictionary.TYPE_MAIN) ?
+            final int lowerCaseFreqInMainDict = dictionaryGroup.hasDict(Dictionary.TYPE_MAIN,
+                    null /* account */) ?
                     dictionaryGroup.getDict(Dictionary.TYPE_MAIN).getFrequency(lowerCasedWord) :
                             Dictionary.NOT_A_PROBABILITY;
             if (maxFreq < lowerCaseFreqInMainDict
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
index b578159..3119ff8 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
@@ -102,10 +102,12 @@
 
     private void resetDictionariesForLocaleLocked(final DictionaryFacilitator dictionaryFacilitator,
             final Locale locale) {
+        // Note: Given that personalized dictionaries are not used here; we can pass null account.
         dictionaryFacilitator.resetDictionariesWithDictNamePrefix(mContext, new Locale[] { locale },
                 mUseContactsDictionary, false /* usePersonalizedDicts */,
                 false /* forceReloadMainDictionary */, null /* listener */,
-                mDictionaryNamePrefix);
+                mDictionaryNamePrefix,
+                null /* account */);
     }
 
     public void setUseContactsDictionary(final boolean useContectsDictionary) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index d6ec57f..45156a3 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -166,7 +166,6 @@
 
     private RichInputMethodManager mRichImm;
     @UsedForTesting final KeyboardSwitcher mKeyboardSwitcher;
-    final SubtypeSwitcher mSubtypeSwitcher;
     private final SubtypeState mSubtypeState = new SubtypeState();
     private final EmojiAltPhysicalKeyDetector mEmojiAltPhysicalKeyDetector =
             new EmojiAltPhysicalKeyDetector();
@@ -563,7 +562,6 @@
     public LatinIME() {
         super();
         mSettings = Settings.getInstance();
-        mSubtypeSwitcher = SubtypeSwitcher.getInstance();
         mKeyboardSwitcher = KeyboardSwitcher.getInstance();
         mStatsUtilsManager = StatsUtilsManager.getInstance();
         mIsHardwareAcceleratedDrawingEnabled =
@@ -577,7 +575,6 @@
         DebugFlags.init(PreferenceManager.getDefaultSharedPreferences(this));
         RichInputMethodManager.init(this);
         mRichImm = RichInputMethodManager.getInstance();
-        SubtypeSwitcher.init(this);
         KeyboardSwitcher.init(this);
         AudioAndHapticFeedbackManager.init(this);
         AccessibilityUtils.init(this);
@@ -633,12 +630,13 @@
         // been displayed. Opening dictionaries never affects responsivity as dictionaries are
         // asynchronously loaded.
         if (!mHandler.hasPendingReopenDictionaries()) {
-            resetDictionaryFacilitatorForLocale(locales);
+            resetDictionaryFacilitator(locales);
         }
         mDictionaryFacilitator.updateEnabledSubtypes(mRichImm.getMyEnabledInputMethodSubtypeList(
                 true /* allowsImplicitlySelectedSubtypes */));
         refreshPersonalizationDictionarySession(currentSettingsValues);
         mStatsUtilsManager.onLoadSettings(currentSettingsValues);
+        resetDictionaryFacilitatorIfNecessary();
     }
 
     private void refreshPersonalizationDictionarySession(
@@ -676,7 +674,8 @@
 
     void resetDictionaryFacilitatorIfNecessary() {
         final Locale[] subtypeSwitcherLocales = mRichImm.getCurrentSubtypeLocales();
-        if (mDictionaryFacilitator.isForLocales(subtypeSwitcherLocales)) {
+        if (mDictionaryFacilitator.isForLocales(subtypeSwitcherLocales)
+                && mDictionaryFacilitator.isForAccount(mSettings.getCurrent().mAccount)) {
             return;
         }
         final Locale[] subtypeLocales;
@@ -690,20 +689,23 @@
         } else {
             subtypeLocales = subtypeSwitcherLocales;
         }
-        resetDictionaryFacilitatorForLocale(subtypeLocales);
+        resetDictionaryFacilitator(subtypeLocales);
     }
 
     /**
-     * Reset the facilitator by loading dictionaries for the locales and the current settings values
+     * Reset the facilitator by loading dictionaries for the locales and
+     * the current settings values.
      *
      * @param locales the locales
      */
-    // TODO: make sure the current settings always have the right locales, and read from them
-    private void resetDictionaryFacilitatorForLocale(final Locale[] locales) {
+    // TODO: make sure the current settings always have the right locales, and read from them.
+    private void resetDictionaryFacilitator(final Locale[] locales) {
         final SettingsValues settingsValues = mSettings.getCurrent();
         mDictionaryFacilitator.resetDictionaries(this /* context */, locales,
                 settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
-                false /* forceReloadMainDictionary */, this);
+                false /* forceReloadMainDictionary */,
+                settingsValues.mAccount,
+                this /* DictionaryInitializationListener */);
         if (settingsValues.mAutoCorrectionEnabledPerUserSettings) {
             mInputLogic.mSuggest.setAutoCorrectionThreshold(
                     settingsValues.mAutoCorrectionThreshold);
@@ -718,7 +720,10 @@
         final SettingsValues settingsValues = mSettings.getCurrent();
         mDictionaryFacilitator.resetDictionaries(this /* context */,
                 mDictionaryFacilitator.getLocales(), settingsValues.mUseContactsDict,
-                settingsValues.mUsePersonalizedDicts, true /* forceReloadMainDictionary */, this);
+                settingsValues.mUsePersonalizedDicts,
+                true /* forceReloadMainDictionary */,
+                settingsValues.mAccount,
+                this /* DictionaryInitializationListener */);
     }
 
     @Override
@@ -869,7 +874,6 @@
         // Note that the calling sequence of onCreate() and onCurrentInputMethodSubtypeChanged()
         // is not guaranteed. It may even be called at the same time on a different thread.
         mRichImm.onSubtypeChanged(subtype);
-        mSubtypeSwitcher.onSubtypeChanged(mRichImm.getCurrentSubtype());
         mInputLogic.onSubtypeChanged(SubtypeLocaleUtils.getCombiningRulesExtraValue(subtype),
                 mSettings.getCurrent());
         loadKeyboard();
@@ -886,7 +890,6 @@
         // also wouldn't be consuming gesture data.
         mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
         mRichImm.refreshSubtypeCaches();
-        mSubtypeSwitcher.onSubtypeChanged(mRichImm.getCurrentSubtype());
         final KeyboardSwitcher switcher = mKeyboardSwitcher;
         switcher.updateKeyboardTheme();
         final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
@@ -948,10 +951,6 @@
                 Settings.getInstance().getCurrent().mDisplayOrientation,
                 !isDifferentTextField);
 
-        if (isDifferentTextField) {
-            mSubtypeSwitcher.updateParametersOnStartInputView();
-        }
-
         // The EditorInfo might have a flag that affects fullscreen mode.
         // Note: This call should be done by InputMethodService?
         updateFullscreenMode();
@@ -1934,7 +1933,9 @@
         final SettingsValues settingsValues = mSettings.getCurrent();
         mDictionaryFacilitator.resetDictionaries(this, new Locale[] { locale },
             settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
-            false /* forceReloadMainDictionary */, this /* listener */);
+            false /* forceReloadMainDictionary */,
+            settingsValues.mAccount,
+            this /* DictionaryInitializationListener */);
     }
 
     // DO NOT USE THIS for any other purpose than testing.
diff --git a/java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java
index 2dbab0a..8926c06 100644
--- a/java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java
@@ -114,7 +114,7 @@
             return personalizationDict;
         }
         personalizationDict = PersonalizationDictionary.getDictionary(context, locale,
-                null /* dictFile */, "" /* dictNamePrefix */);
+                null /* dictFile */, "" /* dictNamePrefix */, null /* account */);
         mPersonalizationDictsToUpdate.put(locale, personalizationDict);
         return personalizationDict;
     }
diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
index d8b0189..811af4b 100644
--- a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
@@ -36,6 +36,7 @@
 import com.android.inputmethod.latin.settings.AdditionalFeaturesSettingUtils;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
+import com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils;
 import com.android.inputmethod.latin.utils.NetworkConnectivityUtils;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
@@ -523,6 +524,15 @@
                     + (mShortcutSubtype == null ? "<null>" : (
                             mShortcutSubtype.getLocale() + ", " + mShortcutSubtype.getMode())));
         }
+        final RichInputMethodSubtype richSubtype = mCurrentRichInputMethodSubtype;
+        final boolean implicitlyEnabledSubtype = checkIfSubtypeBelongsToThisImeAndImplicitlyEnabled(
+                richSubtype.getRawSubtype());
+        final Locale systemLocale = mContext.getResources().getConfiguration().locale;
+        LanguageOnSpacebarUtils.onSubtypeChanged(
+                richSubtype, implicitlyEnabledSubtype, systemLocale);
+        LanguageOnSpacebarUtils.setEnabledSubtypes(getMyEnabledInputMethodSubtypeList(
+                true /* allowsImplicitlySelectedSubtypes */));
+
         // TODO: Update an icon for shortcut IME
         final Map<InputMethodInfo, List<InputMethodSubtype>> shortcuts =
                 getInputMethodManager().getShortcutInputMethodsAndSubtypes();
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
deleted file mode 100644
index d7a03d4..0000000
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.List;
-
-import javax.annotation.Nonnull;
-
-public final class SubtypeSwitcher {
-    private static final SubtypeSwitcher sInstance = new SubtypeSwitcher();
-
-    private /* final */ RichInputMethodManager mRichImm;
-    private /* final */ Resources mResources;
-
-    public static SubtypeSwitcher getInstance() {
-        return sInstance;
-    }
-
-    public static void init(final Context context) {
-        SubtypeLocaleUtils.init(context);
-        RichInputMethodManager.init(context);
-        sInstance.initialize(context);
-    }
-
-    private SubtypeSwitcher() {
-        // Intentional empty constructor for singleton.
-    }
-
-    private void initialize(final Context context) {
-        if (mResources != null) {
-            return;
-        }
-        mResources = context.getResources();
-        mRichImm = RichInputMethodManager.getInstance();
-
-        onSubtypeChanged(mRichImm.getCurrentSubtype());
-        updateParametersOnStartInputView();
-    }
-
-    /**
-     * Update parameters which are changed outside LatinIME. This parameters affect UI so that they
-     * should be updated every time onStartInputView is called.
-     */
-    public void updateParametersOnStartInputView() {
-        final List<InputMethodSubtype> enabledSubtypesOfThisIme =
-                mRichImm.getMyEnabledInputMethodSubtypeList(true);
-        LanguageOnSpacebarUtils.setEnabledSubtypes(enabledSubtypesOfThisIme);
-    }
-
-    // Update the current subtype. LatinIME.onCurrentInputMethodSubtypeChanged calls this function.
-    public void onSubtypeChanged(@Nonnull final RichInputMethodSubtype richSubtype) {
-        final boolean implicitlyEnabledSubtype = mRichImm
-                .checkIfSubtypeBelongsToThisImeAndImplicitlyEnabled(richSubtype.getRawSubtype());
-        LanguageOnSpacebarUtils.onSubtypeChanged(
-                richSubtype, implicitlyEnabledSubtype, mResources.getConfiguration().locale);
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
index 2b7fb17..2d2b3d0 100644
--- a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
@@ -36,6 +36,8 @@
 import java.util.Arrays;
 import java.util.Locale;
 
+import javax.annotation.Nullable;
+
 /**
  * An expandable dictionary that stores the words in the user dictionary provider into a binary
  * dictionary file to use it from native code.
@@ -104,7 +106,7 @@
     // Note: This method is called by {@link DictionaryFacilitator} using Java reflection.
     @ExternallyReferenced
     public static UserBinaryDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
+            final File dictFile, final String dictNamePrefix, @Nullable final String account) {
         return new UserBinaryDictionary(context, locale, false /* alsoUseMoreRestrictiveLocales */,
                 dictFile, dictNamePrefix + NAME);
     }
diff --git a/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java b/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java
index 39d9596..f663fe9 100644
--- a/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java
@@ -25,6 +25,8 @@
 import java.io.File;
 import java.util.Locale;
 
+import javax.annotation.Nullable;
+
 public class ContextualDictionary extends ExpandableBinaryDictionary {
     /* package */ static final String NAME = ContextualDictionary.class.getSimpleName();
 
@@ -40,7 +42,7 @@
     @SuppressWarnings("unused")
     @ExternallyReferenced
     public static ContextualDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
+            final File dictFile, final String dictNamePrefix, @Nullable final String account) {
         return new ContextualDictionary(context, locale, dictFile);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
index 33d1273..76451cc 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
@@ -24,6 +24,8 @@
 import java.io.File;
 import java.util.Locale;
 
+import javax.annotation.Nullable;
+
 public class PersonalizationDictionary extends DecayingExpandableBinaryDictionaryBase {
     /* package */ static final String NAME = PersonalizationDictionary.class.getSimpleName();
 
@@ -37,7 +39,8 @@
     @SuppressWarnings("unused")
     @ExternallyReferenced
     public static PersonalizationDictionary getDictionary(final Context context,
-            final Locale locale, final File dictFile, final String dictNamePrefix) {
+            final Locale locale, final File dictFile, final String dictNamePrefix,
+            @Nullable final String account) {
         return PersonalizationHelper.getPersonalizationDictionary(context, locale);
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index b595f39..4231450 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -64,7 +64,8 @@
                     return dict;
                 }
             }
-            final UserHistoryDictionary dict = new UserHistoryDictionary(context, locale);
+            final UserHistoryDictionary dict = new UserHistoryDictionary(
+                    context, locale, accountName);
             sLangUserHistoryDictCache.put(lookupStr, new SoftReference<>(dict));
             return dict;
         }
diff --git a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
index 946835c..2e41027 100644
--- a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
@@ -37,20 +37,18 @@
 import javax.annotation.Nullable;
 
 /**
- * Locally gathers stats about the words user types and various other signals like auto-correction
- * cancellation or manual picks. This allows the keyboard to adapt to the typist over time.
+ * Locally gathers statistics about the words user types and various other signals like
+ * auto-correction cancellation or manual picks. This allows the keyboard to adapt to the
+ * typist over time.
  */
 public class UserHistoryDictionary extends DecayingExpandableBinaryDictionaryBase {
     static final String NAME = UserHistoryDictionary.class.getSimpleName();
 
     // TODO: Make this constructor private
-    UserHistoryDictionary(final Context context, final Locale locale) {
+    UserHistoryDictionary(final Context context, final Locale locale,
+            @Nullable final String account) {
         super(context,
-                getUserHistoryDictName(
-                        NAME,
-                        locale,
-                        null /* dictFile */,
-                        context),
+                getUserHistoryDictName(NAME, locale, null /* dictFile */, account),
                 locale,
                 Dictionary.TYPE_USER_HISTORY,
                 null /* dictFile */);
@@ -61,24 +59,21 @@
      */
     @UsedForTesting
     static String getUserHistoryDictName(final String name, final Locale locale,
-            @Nullable final File dictFile, final Context context) {
+            @Nullable final File dictFile, @Nullable final String account) {
         if (!ProductionFlags.ENABLE_PER_ACCOUNT_USER_HISTORY_DICTIONARY) {
             return getDictName(name, locale, dictFile);
         }
-        return getUserHistoryDictNamePerAccount(name, locale, dictFile, context);
+        return getUserHistoryDictNamePerAccount(name, locale, dictFile, account);
     }
 
     /**
      * Uses the currently signed in account to determine the dictionary name.
      */
     private static String getUserHistoryDictNamePerAccount(final String name, final Locale locale,
-            @Nullable final File dictFile, final Context context) {
+            @Nullable final File dictFile, @Nullable final String account) {
         if (dictFile != null) {
             return dictFile.getName();
         }
-        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        final String account = prefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME,
-                null /* default */);
         String dictName = name + "." + locale.toString();
         if (account != null) {
             dictName += "." + account;
@@ -90,14 +85,7 @@
     @SuppressWarnings("unused")
     @ExternallyReferenced
     public static UserHistoryDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
-        final String account;
-        if (ProductionFlags.ENABLE_PER_ACCOUNT_USER_HISTORY_DICTIONARY) {
-            account = PreferenceManager.getDefaultSharedPreferences(context)
-                    .getString(LocalSettingsConstants.PREF_ACCOUNT_NAME, null /* default */);
-        } else {
-            account = null;
-        }
+            final File dictFile, final String dictNamePrefix, @Nullable final String account) {
         return PersonalizationHelper.getUserHistoryDictionary(context, locale, account);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
index 4bd15d0..8f4ec4f 100644
--- a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
@@ -33,9 +33,8 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.SubtypeSwitcher;
-import com.android.inputmethod.latin.accounts.LoginAccountUtils;
 import com.android.inputmethod.latin.accounts.AccountStateChangedListener;
+import com.android.inputmethod.latin.accounts.LoginAccountUtils;
 import com.android.inputmethod.latin.define.ProductionFlags;
 
 import javax.annotation.Nullable;
@@ -50,12 +49,15 @@
  */
 public final class AccountsSettingsFragment extends SubScreenFragment {
     private static final String PREF_SYNC_NOW = "pref_beanstalk";
+    private static final String PREF_CLEAR_SYNC_DATA = "pref_beanstalk_clear_data";
 
     static final String PREF_ACCCOUNT_SWITCHER = "account_switcher";
 
     private final DialogInterface.OnClickListener mAccountChangedListener =
             new AccountChangedListener();
     private final Preference.OnPreferenceClickListener mSyncNowListener = new SyncNowListener();
+    private final Preference.OnPreferenceClickListener mClearSyncDataListener =
+            new ClearSyncDataListener();
 
     @Override
     public void onCreate(final Bundle icicle) {
@@ -63,12 +65,6 @@
         addPreferencesFromResource(R.xml.prefs_screen_accounts);
 
         final Resources res = getResources();
-        final Context context = getActivity();
-
-        // When we are called from the Settings application but we are not already running, some
-        // singleton and utility classes may not have been initialized.  We have to call
-        // initialization method of these classes here. See {@link LatinIME#onCreate()}.
-        SubtypeSwitcher.init(context);
 
         if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
             final Preference enableMetricsLogging =
@@ -86,13 +82,18 @@
             removePreference(PREF_ACCCOUNT_SWITCHER);
             removePreference(PREF_ENABLE_CLOUD_SYNC);
             removePreference(PREF_SYNC_NOW);
+            removePreference(PREF_CLEAR_SYNC_DATA);
         }
         if (!ProductionFlags.ENABLE_PERSONAL_DICTIONARY_SYNC) {
             removePreference(PREF_ENABLE_CLOUD_SYNC);
             removePreference(PREF_SYNC_NOW);
+            removePreference(PREF_CLEAR_SYNC_DATA);
         } else {
             final Preference syncNowPreference = findPreference(PREF_SYNC_NOW);
             syncNowPreference.setOnPreferenceClickListener(mSyncNowListener);
+
+            final Preference clearSyncDataPreference = findPreference(PREF_CLEAR_SYNC_DATA);
+            clearSyncDataPreference.setOnPreferenceClickListener(mClearSyncDataListener);
         }
     }
 
@@ -136,7 +137,7 @@
         final String[] accountsForLogin = LoginAccountUtils.getAccountsForLogin(context);
         accountSwitcher.setOnPreferenceClickListener(new OnPreferenceClickListener() {
             @Override
-            public boolean onPreferenceClick(Preference preference) {
+            public boolean onPreferenceClick(final Preference preference) {
                 if (accountsForLogin.length == 0) {
                     // TODO: Handle account addition.
                     Toast.makeText(getActivity(), getString(R.string.account_select_cancel),
@@ -229,7 +230,7 @@
      */
     class AccountChangedListener implements DialogInterface.OnClickListener {
         @Override
-        public void onClick(DialogInterface dialog, int which) {
+        public void onClick(final DialogInterface dialog, final int which) {
             final String oldAccount = getSignedInAccountName();
             switch (which) {
                 case DialogInterface.BUTTON_POSITIVE: // Signed in
@@ -263,4 +264,30 @@
             return true;
         }
     }
+
+    /**
+     * Listener that initiates the process of deleting user's data from the cloud.
+     */
+    class ClearSyncDataListener implements Preference.OnPreferenceClickListener {
+        @Override
+        public boolean onPreferenceClick(final Preference preference) {
+            final AlertDialog confirmationDialog = new AlertDialog.Builder(getActivity())
+                    .setTitle(R.string.clear_sync_data_title)
+                    .setMessage(R.string.clear_sync_data_confirmation)
+                    .setPositiveButton(R.string.clear_sync_data_ok,
+                            new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(final DialogInterface dialog, final int which) {
+                                    if (which == DialogInterface.BUTTON_POSITIVE) {
+                                        AccountStateChangedListener.forceDelete(
+                                                getSignedInAccountName());
+                                    }
+                                }
+                             })
+                    .setNegativeButton(R.string.clear_sync_data_cancel, null /* OnClickListener */)
+                    .create();
+            confirmationDialog.show();
+            return true;
+        }
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index 5f1a7af..0669026 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -36,6 +36,7 @@
 import java.util.Locale;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
  * When you call the constructor of this class, you may want to change the current system locale by
@@ -120,6 +121,8 @@
     public final float mKeyPreviewDismissEndXScale;
     public final float mKeyPreviewDismissEndYScale;
 
+    @Nullable public final String mAccount;
+
     public SettingsValues(final Context context, final SharedPreferences prefs, final Resources res,
             @Nonnull final InputAttributes inputAttributes) {
         mLocale = res.getConfiguration().locale;
@@ -176,6 +179,8 @@
         mPlausibilityThreshold = Settings.readPlausibilityThreshold(res);
         mGestureInputEnabled = Settings.readGestureInputEnabled(prefs, res);
         mGestureTrailEnabled = prefs.getBoolean(Settings.PREF_GESTURE_PREVIEW_TRAIL, true);
+        mAccount = prefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME,
+                null /* default */);
         mGestureFloatingPreviewTextEnabled = !mInputAttributes.mDisableGestureFloatingPreviewText
                 && prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
         mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res);
diff --git a/native/jni/NativeFileList.mk b/native/jni/NativeFileList.mk
index 55bb683..0be7153 100644
--- a/native/jni/NativeFileList.mk
+++ b/native/jni/NativeFileList.mk
@@ -30,8 +30,7 @@
         dictionary_utils.cpp \
         digraph_utils.cpp \
         error_type_utils.cpp \
-        multi_bigram_map.cpp \
-        property/word_property.cpp) \
+        multi_bigram_map.cpp) \
     $(addprefix suggest/core/layout/, \
         additional_proximity_chars.cpp \
         proximity_info.cpp \
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 9c065e0..8f1e35e 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -351,10 +351,9 @@
     }
     const WordProperty wordProperty = dictionary->getWordProperty(
             CodePointArrayView(wordCodePoints, codePointCount));
-    wordProperty.outputProperties(env, outCodePoints, outFlags, outProbabilityInfo,
+    JniDataUtils::outputWordProperty(env, wordProperty, outCodePoints, outFlags, outProbabilityInfo,
             outNgramPrevWordsArray, outNgramPrevWordIsBeginningOfSentenceArray,
-            outNgramTargets, outNgramProbabilityInfo, outShortcutTargets,
-            outShortcutProbabilities);
+            outNgramTargets, outNgramProbabilityInfo, outShortcutTargets, outShortcutProbabilities);
 }
 
 static bool latinime_BinaryDictionary_addUnigramEntry(JNIEnv *env, jclass clazz, jlong dict,
diff --git a/native/jni/src/suggest/core/dictionary/property/word_property.cpp b/native/jni/src/suggest/core/dictionary/property/word_property.cpp
deleted file mode 100644
index 019f088..0000000
--- a/native/jni/src/suggest/core/dictionary/property/word_property.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/core/dictionary/property/word_property.h"
-
-#include "utils/jni_data_utils.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-
-namespace latinime {
-
-void WordProperty::outputProperties(JNIEnv *const env, jintArray outCodePoints,
-        jbooleanArray outFlags, jintArray outProbabilityInfo,
-        jobject outNgramPrevWordsArray, jobject outNgramPrevWordIsBeginningOfSentenceArray,
-        jobject outNgramTargets, jobject outNgramProbabilities, jobject outShortcutTargets,
-        jobject outShortcutProbabilities) const {
-    JniDataUtils::outputCodePoints(env, outCodePoints, 0 /* start */,
-            MAX_WORD_LENGTH /* maxLength */, mCodePoints.data(), mCodePoints.size(),
-            false /* needsNullTermination */);
-    jboolean flags[] = {mUnigramProperty.isNotAWord(), mUnigramProperty.isPossiblyOffensive(),
-            !mNgrams.empty(), mUnigramProperty.hasShortcuts(),
-            mUnigramProperty.representsBeginningOfSentence()};
-    env->SetBooleanArrayRegion(outFlags, 0 /* start */, NELEMS(flags), flags);
-    const HistoricalInfo &historicalInfo = mUnigramProperty.getHistoricalInfo();
-    int probabilityInfo[] = {mUnigramProperty.getProbability(), historicalInfo.getTimestamp(),
-            historicalInfo.getLevel(), historicalInfo.getCount()};
-    env->SetIntArrayRegion(outProbabilityInfo, 0 /* start */, NELEMS(probabilityInfo),
-            probabilityInfo);
-
-    jclass integerClass = env->FindClass("java/lang/Integer");
-    jmethodID intToIntegerConstructorId = env->GetMethodID(integerClass, "<init>", "(I)V");
-    jclass arrayListClass = env->FindClass("java/util/ArrayList");
-    jmethodID addMethodId = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z");
-
-    // Output ngrams.
-    jclass intArrayClass = env->FindClass("[I");
-    for (const auto &ngramProperty : mNgrams) {
-        const NgramContext *const ngramContext = ngramProperty.getNgramContext();
-        jobjectArray prevWordWordCodePointsArray = env->NewObjectArray(
-                ngramContext->getPrevWordCount(), intArrayClass, nullptr);
-        jbooleanArray prevWordIsBeginningOfSentenceArray =
-                env->NewBooleanArray(ngramContext->getPrevWordCount());
-        for (size_t i = 0; i < ngramContext->getPrevWordCount(); ++i) {
-            const CodePointArrayView codePoints = ngramContext->getNthPrevWordCodePoints(i + 1);
-            jintArray prevWordCodePoints = env->NewIntArray(codePoints.size());
-            JniDataUtils::outputCodePoints(env, prevWordCodePoints, 0 /* start */,
-                    codePoints.size(), codePoints.data(), codePoints.size(),
-                    false /* needsNullTermination */);
-            env->SetObjectArrayElement(prevWordWordCodePointsArray, i, prevWordCodePoints);
-            env->DeleteLocalRef(prevWordCodePoints);
-            JniDataUtils::putBooleanToArray(env, prevWordIsBeginningOfSentenceArray, i,
-                    ngramContext->isNthPrevWordBeginningOfSentence(i + 1));
-        }
-        env->CallBooleanMethod(outNgramPrevWordsArray, addMethodId, prevWordWordCodePointsArray);
-        env->CallBooleanMethod(outNgramPrevWordIsBeginningOfSentenceArray, addMethodId,
-                prevWordIsBeginningOfSentenceArray);
-        env->DeleteLocalRef(prevWordWordCodePointsArray);
-        env->DeleteLocalRef(prevWordIsBeginningOfSentenceArray);
-
-        const std::vector<int> *const targetWordCodePoints = ngramProperty.getTargetCodePoints();
-        jintArray targetWordCodePointArray = env->NewIntArray(targetWordCodePoints->size());
-        JniDataUtils::outputCodePoints(env, targetWordCodePointArray, 0 /* start */,
-                targetWordCodePoints->size(), targetWordCodePoints->data(),
-                targetWordCodePoints->size(), false /* needsNullTermination */);
-        env->CallBooleanMethod(outNgramTargets, addMethodId, targetWordCodePointArray);
-        env->DeleteLocalRef(targetWordCodePointArray);
-
-        const HistoricalInfo &ngramHistoricalInfo = ngramProperty.getHistoricalInfo();
-        int bigramProbabilityInfo[] = {ngramProperty.getProbability(),
-                ngramHistoricalInfo.getTimestamp(), ngramHistoricalInfo.getLevel(),
-                ngramHistoricalInfo.getCount()};
-        jintArray bigramProbabilityInfoArray = env->NewIntArray(NELEMS(bigramProbabilityInfo));
-        env->SetIntArrayRegion(bigramProbabilityInfoArray, 0 /* start */,
-                NELEMS(bigramProbabilityInfo), bigramProbabilityInfo);
-        env->CallBooleanMethod(outNgramProbabilities, addMethodId, bigramProbabilityInfoArray);
-        env->DeleteLocalRef(bigramProbabilityInfoArray);
-    }
-
-    // Output shortcuts.
-    for (const auto &shortcut : mUnigramProperty.getShortcuts()) {
-        const std::vector<int> *const targetCodePoints = shortcut.getTargetCodePoints();
-        jintArray shortcutTargetCodePointArray = env->NewIntArray(targetCodePoints->size());
-        JniDataUtils::outputCodePoints(env, shortcutTargetCodePointArray, 0 /* start */,
-                targetCodePoints->size(), targetCodePoints->data(), targetCodePoints->size(),
-                false /* needsNullTermination */);
-        env->CallBooleanMethod(outShortcutTargets, addMethodId, shortcutTargetCodePointArray);
-        env->DeleteLocalRef(shortcutTargetCodePointArray);
-        jobject integerProbability = env->NewObject(integerClass, intToIntegerConstructorId,
-                shortcut.getProbability());
-        env->CallBooleanMethod(outShortcutProbabilities, addMethodId, integerProbability);
-        env->DeleteLocalRef(integerProbability);
-    }
-    env->DeleteLocalRef(integerClass);
-    env->DeleteLocalRef(arrayListClass);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/core/dictionary/property/word_property.h b/native/jni/src/suggest/core/dictionary/property/word_property.h
index d4db3f0..9efc7f3 100644
--- a/native/jni/src/suggest/core/dictionary/property/word_property.h
+++ b/native/jni/src/suggest/core/dictionary/property/word_property.h
@@ -20,7 +20,6 @@
 #include <vector>
 
 #include "defines.h"
-#include "jni.h"
 #include "suggest/core/dictionary/property/ngram_property.h"
 #include "suggest/core/dictionary/property/unigram_property.h"
 #include "utils/int_array_view.h"
@@ -39,12 +38,6 @@
             : mCodePoints(std::move(codePoints)), mUnigramProperty(unigramProperty),
               mNgrams(ngrams) {}
 
-    void outputProperties(JNIEnv *const env, jintArray outCodePoints, jbooleanArray outFlags,
-            jintArray outProbabilityInfo, jobject outNgramPrevWordsArray,
-            jobject outNgramPrevWordIsBeginningOfSentenceArray, jobject outNgramTargets,
-            jobject outNgramProbabilities, jobject outShortcutTargets,
-            jobject outShortcutProbabilities) const;
-
     const CodePointArrayView getCodePoints() const {
         return CodePointArrayView(mCodePoints);
     }
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
index 2bdf077..7bda3dc 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
@@ -16,7 +16,6 @@
 
 #include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
index 39f417e..b7ef2b9 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
@@ -79,6 +79,9 @@
     }
     // Create a value entry and a bitmap entry.
     const int valueEntryIndex = allocateTable(TERMINAL_LINKED_ENTRY_COUNT);
+    if (valueEntryIndex == INVALID_INDEX) {
+        return INVALID_INDEX;
+    }
     if (!writeEntry(Entry(0, terminalEntry.getValue()), valueEntryIndex)) {
         return INVALID_INDEX;
     }
@@ -195,6 +198,9 @@
     }
     // Create value entry and write value.
     const int valueEntryIndex = allocateTable(TERMINAL_LINKED_ENTRY_COUNT);
+    if (valueEntryIndex == INVALID_INDEX) {
+        return false;
+    }
     if (!writeEntry(Entry(value >> (FIELD1_SIZE * CHAR_BIT), value), valueEntryIndex)) {
         return false;
     }
diff --git a/native/jni/src/utils/jni_data_utils.cpp b/native/jni/src/utils/jni_data_utils.cpp
index 5555293..41f0623 100644
--- a/native/jni/src/utils/jni_data_utils.cpp
+++ b/native/jni/src/utils/jni_data_utils.cpp
@@ -16,9 +16,100 @@
 
 #include "utils/jni_data_utils.h"
 
+#include "utils/int_array_view.h"
+
 namespace latinime {
 
 const int JniDataUtils::CODE_POINT_REPLACEMENT_CHARACTER = 0xFFFD;
 const int JniDataUtils::CODE_POINT_NULL = 0;
 
+/* static */ void JniDataUtils::outputWordProperty(JNIEnv *const env,
+        const WordProperty &wordProperty, jintArray outCodePoints, jbooleanArray outFlags,
+        jintArray outProbabilityInfo, jobject outNgramPrevWordsArray,
+        jobject outNgramPrevWordIsBeginningOfSentenceArray, jobject outNgramTargets,
+        jobject outNgramProbabilities, jobject outShortcutTargets,
+        jobject outShortcutProbabilities) {
+    const CodePointArrayView codePoints = wordProperty.getCodePoints();
+    JniDataUtils::outputCodePoints(env, outCodePoints, 0 /* start */,
+            MAX_WORD_LENGTH /* maxLength */, codePoints.data(), codePoints.size(),
+            false /* needsNullTermination */);
+    const UnigramProperty &unigramProperty = wordProperty.getUnigramProperty();
+    const std::vector<NgramProperty> &ngrams = wordProperty.getNgramProperties();
+    jboolean flags[] = {unigramProperty.isNotAWord(), unigramProperty.isPossiblyOffensive(),
+            !ngrams.empty(), unigramProperty.hasShortcuts(),
+            unigramProperty.representsBeginningOfSentence()};
+    env->SetBooleanArrayRegion(outFlags, 0 /* start */, NELEMS(flags), flags);
+    const HistoricalInfo &historicalInfo = unigramProperty.getHistoricalInfo();
+    int probabilityInfo[] = {unigramProperty.getProbability(), historicalInfo.getTimestamp(),
+            historicalInfo.getLevel(), historicalInfo.getCount()};
+    env->SetIntArrayRegion(outProbabilityInfo, 0 /* start */, NELEMS(probabilityInfo),
+            probabilityInfo);
+
+    jclass integerClass = env->FindClass("java/lang/Integer");
+    jmethodID intToIntegerConstructorId = env->GetMethodID(integerClass, "<init>", "(I)V");
+    jclass arrayListClass = env->FindClass("java/util/ArrayList");
+    jmethodID addMethodId = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z");
+
+    // Output ngrams.
+    jclass intArrayClass = env->FindClass("[I");
+    for (const auto &ngramProperty : ngrams) {
+        const NgramContext *const ngramContext = ngramProperty.getNgramContext();
+        jobjectArray prevWordWordCodePointsArray = env->NewObjectArray(
+                ngramContext->getPrevWordCount(), intArrayClass, nullptr);
+        jbooleanArray prevWordIsBeginningOfSentenceArray =
+                env->NewBooleanArray(ngramContext->getPrevWordCount());
+        for (size_t i = 0; i < ngramContext->getPrevWordCount(); ++i) {
+            const CodePointArrayView codePoints = ngramContext->getNthPrevWordCodePoints(i + 1);
+            jintArray prevWordCodePoints = env->NewIntArray(codePoints.size());
+            JniDataUtils::outputCodePoints(env, prevWordCodePoints, 0 /* start */,
+                    codePoints.size(), codePoints.data(), codePoints.size(),
+                    false /* needsNullTermination */);
+            env->SetObjectArrayElement(prevWordWordCodePointsArray, i, prevWordCodePoints);
+            env->DeleteLocalRef(prevWordCodePoints);
+            JniDataUtils::putBooleanToArray(env, prevWordIsBeginningOfSentenceArray, i,
+                    ngramContext->isNthPrevWordBeginningOfSentence(i + 1));
+        }
+        env->CallBooleanMethod(outNgramPrevWordsArray, addMethodId, prevWordWordCodePointsArray);
+        env->CallBooleanMethod(outNgramPrevWordIsBeginningOfSentenceArray, addMethodId,
+                prevWordIsBeginningOfSentenceArray);
+        env->DeleteLocalRef(prevWordWordCodePointsArray);
+        env->DeleteLocalRef(prevWordIsBeginningOfSentenceArray);
+
+        const std::vector<int> *const targetWordCodePoints = ngramProperty.getTargetCodePoints();
+        jintArray targetWordCodePointArray = env->NewIntArray(targetWordCodePoints->size());
+        JniDataUtils::outputCodePoints(env, targetWordCodePointArray, 0 /* start */,
+                targetWordCodePoints->size(), targetWordCodePoints->data(),
+                targetWordCodePoints->size(), false /* needsNullTermination */);
+        env->CallBooleanMethod(outNgramTargets, addMethodId, targetWordCodePointArray);
+        env->DeleteLocalRef(targetWordCodePointArray);
+
+        const HistoricalInfo &ngramHistoricalInfo = ngramProperty.getHistoricalInfo();
+        int bigramProbabilityInfo[] = {ngramProperty.getProbability(),
+                ngramHistoricalInfo.getTimestamp(), ngramHistoricalInfo.getLevel(),
+                ngramHistoricalInfo.getCount()};
+        jintArray bigramProbabilityInfoArray = env->NewIntArray(NELEMS(bigramProbabilityInfo));
+        env->SetIntArrayRegion(bigramProbabilityInfoArray, 0 /* start */,
+                NELEMS(bigramProbabilityInfo), bigramProbabilityInfo);
+        env->CallBooleanMethod(outNgramProbabilities, addMethodId, bigramProbabilityInfoArray);
+        env->DeleteLocalRef(bigramProbabilityInfoArray);
+    }
+
+    // Output shortcuts.
+    for (const auto &shortcut : unigramProperty.getShortcuts()) {
+        const std::vector<int> *const targetCodePoints = shortcut.getTargetCodePoints();
+        jintArray shortcutTargetCodePointArray = env->NewIntArray(targetCodePoints->size());
+        JniDataUtils::outputCodePoints(env, shortcutTargetCodePointArray, 0 /* start */,
+                targetCodePoints->size(), targetCodePoints->data(), targetCodePoints->size(),
+                false /* needsNullTermination */);
+        env->CallBooleanMethod(outShortcutTargets, addMethodId, shortcutTargetCodePointArray);
+        env->DeleteLocalRef(shortcutTargetCodePointArray);
+        jobject integerProbability = env->NewObject(integerClass, intToIntegerConstructorId,
+                shortcut.getProbability());
+        env->CallBooleanMethod(outShortcutProbabilities, addMethodId, integerProbability);
+        env->DeleteLocalRef(integerProbability);
+    }
+    env->DeleteLocalRef(integerClass);
+    env->DeleteLocalRef(arrayListClass);
+}
+
 } // namespace latinime
diff --git a/native/jni/src/utils/jni_data_utils.h b/native/jni/src/utils/jni_data_utils.h
index a259e1c..0129585 100644
--- a/native/jni/src/utils/jni_data_utils.h
+++ b/native/jni/src/utils/jni_data_utils.h
@@ -21,6 +21,7 @@
 
 #include "defines.h"
 #include "jni.h"
+#include "suggest/core/dictionary/property/word_property.h"
 #include "suggest/core/session/ngram_context.h"
 #include "suggest/core/policy/dictionary_header_structure_policy.h"
 #include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
@@ -140,6 +141,12 @@
         env->SetFloatArrayRegion(array, index, 1 /* len */, &value);
     }
 
+    static void outputWordProperty(JNIEnv *const env, const WordProperty &wordProperty,
+            jintArray outCodePoints, jbooleanArray outFlags, jintArray outProbabilityInfo,
+            jobject outNgramPrevWordsArray, jobject outNgramPrevWordIsBeginningOfSentenceArray,
+            jobject outNgramTargets, jobject outNgramProbabilities, jobject outShortcutTargets,
+            jobject outShortcutProbabilities);
+
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(JniDataUtils);
 
diff --git a/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java
index f07dac7..9d211c9 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -42,7 +43,7 @@
         final DictionaryFacilitator dictionaryFacilitator = new DictionaryFacilitator();
         dictionaryFacilitator.resetDictionariesForTesting(getContext(),
                 new Locale[] { LOCALE_EN_US }, dictTypes, new HashMap<String, File>(),
-                new HashMap<String, Map<String, String>>());
+                Collections.<String, Map<String, String>>emptyMap(), null /* account */);
         return dictionaryFacilitator;
     }
 
diff --git a/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java
index dc6fb00..b133d61 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -57,7 +58,7 @@
         final DictionaryFacilitator dictionaryFacilitator = new DictionaryFacilitator(getContext());
         dictionaryFacilitator.resetDictionariesForTesting(getContext(),
                 new Locale[] { LOCALE_EN_US }, dictTypes, new HashMap<String, File>(),
-                new HashMap<String, Map<String, String>>());
+                Collections.<String, Map<String, String>>emptyMap(), null /* account */);
         // Set subtypes.
         RichInputMethodManager.init(getContext());
         final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
index d83c4a5..6dddc97 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
@@ -16,8 +16,6 @@
 
 package com.android.inputmethod.latin.personalization;
 
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.util.Log;
@@ -25,7 +23,6 @@
 import com.android.inputmethod.latin.ExpandableBinaryDictionary;
 import com.android.inputmethod.latin.NgramContext;
 import com.android.inputmethod.latin.NgramContext.WordInfo;
-import com.android.inputmethod.latin.settings.LocalSettingsConstants;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
 import com.android.inputmethod.latin.utils.DistracterFilter;
 
@@ -35,8 +32,6 @@
 import java.util.Random;
 import java.util.concurrent.TimeUnit;
 
-import javax.annotation.Nullable;
-
 /**
  * Unit tests for UserHistoryDictionary
  */
@@ -48,9 +43,6 @@
 
     private int mCurrentTime = 0;
 
-    private SharedPreferences mPrefs;
-    private String mLastKnownAccount = null;
-
     private static void printAllFiles(final File dir) {
         Log.d(TAG, dir.getAbsolutePath());
         for (final File file : dir.listFiles()) {
@@ -78,12 +70,6 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-
-        mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
-        // Keep track of the current account so that we restore it when the test finishes.
-        mLastKnownAccount = mPrefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME, null);
-        updateAccountName(TEST_ACCOUNT);
-
         resetCurrentTimeForTestMode();
         UserHistoryDictionaryTestsHelper.removeAllTestDictFiles(
                 UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, mContext);
@@ -94,10 +80,6 @@
         UserHistoryDictionaryTestsHelper.removeAllTestDictFiles(
                 UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, mContext);
         stopTestModeInNativeCode();
-
-        // Restore the account that was present before running the test.
-        updateAccountName(mLastKnownAccount);
-
         super.tearDown();
     }
 
@@ -106,14 +88,6 @@
         setCurrentTimeForTestMode(mCurrentTime);
     }
 
-    private void updateAccountName(@Nullable final String accountName) {
-        if (accountName == null) {
-            mPrefs.edit().remove(LocalSettingsConstants.PREF_ACCOUNT_NAME).apply();
-        } else {
-            mPrefs.edit().putString(LocalSettingsConstants.PREF_ACCOUNT_NAME, accountName).apply();
-        }
-    }
-
     private void forcePassingShortTime() {
         // 3 days.
         final int timeToElapse = (int)TimeUnit.DAYS.toSeconds(3);
@@ -147,17 +121,20 @@
         dict.waitAllTasksForTests();
     }
 
-    public void testRandomWords() {
+    private void doTestRandomWords(final String testAccount) {
         Log.d(TAG, "This test can be used for profiling.");
         Log.d(TAG, "Usage: please set UserHistoryDictionary.PROFILE_SAVE_RESTORE to true.");
         final Locale dummyLocale = UserHistoryDictionaryTestsHelper.getDummyLocale("random_words");
         final String dictName = UserHistoryDictionary.getUserHistoryDictName(
-                UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */, getContext());
+                UserHistoryDictionary.NAME, dummyLocale,
+                null /* dictFile */,
+                testAccount /* account */);
         final File dictFile = ExpandableBinaryDictionary.getDictFile(
                 mContext, dictName, null /* dictFile */);
         final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
-                getContext(), dummyLocale, TEST_ACCOUNT);
+                getContext(), dummyLocale, testAccount);
         clearHistory(dict);
+
         final int numberOfWords = 1000;
         final Random random = new Random(123456);
         assertTrue(UserHistoryDictionaryTestsHelper.addAndWriteRandomWords(
@@ -165,7 +142,23 @@
         assertDictionaryExists(dict, dictFile);
     }
 
+    public void testRandomWords_NullAccount() {
+        doTestRandomWords(null /* testAccount */);
+    }
+
+    public void testRandomWords() {
+        doTestRandomWords(TEST_ACCOUNT);
+    }
+
     public void testStressTestForSwitchingLanguagesAndAddingWords() {
+        doTestStressTestForSwitchingLanguagesAndAddingWords(TEST_ACCOUNT);
+    }
+
+    public void testStressTestForSwitchingLanguagesAndAddingWords_NullAccount() {
+        doTestStressTestForSwitchingLanguagesAndAddingWords(null /* testAccount */);
+    }
+
+    private void doTestStressTestForSwitchingLanguagesAndAddingWords(final String testAccount) {
         final int numberOfLanguages = 2;
         final int numberOfLanguageSwitching = 80;
         final int numberOfWordsInsertedForEachLanguageSwitch = 100;
@@ -181,11 +174,12 @@
                 final Locale dummyLocale =
                         UserHistoryDictionaryTestsHelper.getDummyLocale("switching_languages" + i);
                 final String dictName = UserHistoryDictionary.getUserHistoryDictName(
-                        UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */, getContext());
+                        UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */,
+                        testAccount /* account */);
                 dictFiles[i] = ExpandableBinaryDictionary.getDictFile(
                         mContext, dictName, null /* dictFile */);
                 dicts[i] = PersonalizationHelper.getUserHistoryDictionary(getContext(),
-                        dummyLocale, TEST_ACCOUNT);
+                        dummyLocale, testAccount);
                 clearHistory(dicts[i]);
             }
 
@@ -212,16 +206,24 @@
     }
 
     public void testAddManyWords() {
+        doTestAddManyWords(TEST_ACCOUNT);
+    }
+
+    public void testAddManyWords_NullAccount() {
+        doTestAddManyWords(null /* testAccount */);
+    }
+
+    private void doTestAddManyWords(final String testAccount) {
         final Locale dummyLocale =
                 UserHistoryDictionaryTestsHelper.getDummyLocale("many_random_words");
         final String dictName = UserHistoryDictionary.getUserHistoryDictName(
-                UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */, getContext());
+                UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */, testAccount);
         final File dictFile = ExpandableBinaryDictionary.getDictFile(
                 mContext, dictName, null /* dictFile */);
         final int numberOfWords = 10000;
         final Random random = new Random(123456);
         final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
-                getContext(), dummyLocale, TEST_ACCOUNT);
+                getContext(), dummyLocale, testAccount);
         clearHistory(dict);
         assertTrue(UserHistoryDictionaryTestsHelper.addAndWriteRandomWords(dict,
                 numberOfWords, random, true /* checksContents */, mCurrentTime));
@@ -229,9 +231,17 @@
     }
 
     public void testDecaying() {
+        doTestDecaying(TEST_ACCOUNT);
+    }
+
+    public void testDecaying_NullAccount() {
+        doTestDecaying(null /* testAccount */);
+    }
+
+    private void doTestDecaying(final String testAccount) {
         final Locale dummyLocale = UserHistoryDictionaryTestsHelper.getDummyLocale("decaying");
         final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
-                getContext(), dummyLocale, TEST_ACCOUNT);
+                getContext(), dummyLocale, testAccount);
         resetCurrentTimeForTestMode();
         clearHistory(dict);
         dict.waitAllTasksForTests();
@@ -262,9 +272,4 @@
             assertFalse(dict.isInDictionary(word));
         }
     }
-
-    public void testRandomWords_NullAccount() {
-        updateAccountName(null);
-        testRandomWords();
-    }
 }
\ No newline at end of file
diff --git a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
index 111d5c5..b5232a3 100644
--- a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
@@ -418,17 +418,9 @@
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI));
                 // These are preliminary subtypes and may not exist.
                 if (HI_LATN != null) {
-                    // TODO: Uncommented because of the current translation of these strings
-                    // in Hindi are described in Latin script.
-                    // assertEquals("hi_ZZ", "हिंग्लिश",
-                    //      SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN));
-                    // assertEquals("hi_ZZ", "हिंग्लिश (Dvorak)",
-                    //      SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN_DVORAK));
-                    // TODO: Remove these tests once the translation of these strings in Hindi
-                    // are described in Devanagari script.
-                    assertEquals("hi_ZZ", "Hinglish",
+                    assertEquals("hi_ZZ", "हिंग्लिश",
                             SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN));
-                    assertEquals("hi_ZZ", "Hinglish (Dvorak)",
+                    assertEquals("hi_ZZ", "हिंग्लिश (Dvorak)",
                             SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN_DVORAK));
                 }
                 return null;
