aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/AndroidManifest.xml6
-rw-r--r--java/res/drawable-hdpi/ic_launcher_keyboard.pngbin8523 -> 3967 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.pngbin774 -> 937 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.pngbin714 -> 901 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.pngbin1020 -> 1199 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.pngbin974 -> 1123 bytes
-rw-r--r--java/res/drawable-mdpi/ic_launcher_keyboard.pngbin4772 -> 2586 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.pngbin517 -> 580 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.pngbin494 -> 553 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.pngbin658 -> 716 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.pngbin643 -> 709 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_launcher_keyboard.pngbin13098 -> 5387 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.pngbin1073 -> 1312 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.pngbin943 -> 1166 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.pngbin1304 -> 1564 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.pngbin1218 -> 1443 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_launcher_keyboard.pngbin25067 -> 8365 bytes
-rw-r--r--java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.pngbin1751 -> 2162 bytes
-rw-r--r--java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.pngbin1573 -> 1975 bytes
-rw-r--r--java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.pngbin2164 -> 2584 bytes
-rw-r--r--java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.pngbin2000 -> 2381 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.pngbin0 -> 3343 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.pngbin0 -> 3342 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.pngbin0 -> 3341 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.pngbin0 -> 3340 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.pngbin0 -> 1162 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.pngbin0 -> 1152 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.pngbin0 -> 1167 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.pngbin0 -> 1164 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.pngbin0 -> 1232 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.pngbin0 -> 1284 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.pngbin0 -> 1147 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.pngbin0 -> 1156 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.pngbin0 -> 1167 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.pngbin0 -> 1172 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.pngbin0 -> 1554 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.pngbin0 -> 1611 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.pngbin0 -> 1606 bytes
-rw-r--r--java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.pngbin0 -> 1655 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.pngbin0 -> 889 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.pngbin0 -> 3558 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.pngbin0 -> 4392 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.pngbin0 -> 3150 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.pngbin0 -> 3974 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.pngbin0 -> 3158 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.pngbin0 -> 3266 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.pngbin0 -> 2918 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.pngbin0 -> 2992 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.pngbin0 -> 2811 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.pngbin0 -> 2899 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.pngbin0 -> 2613 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.pngbin0 -> 2648 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.pngbin0 -> 3111 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.pngbin0 -> 3402 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.pngbin0 -> 2844 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.pngbin0 -> 3113 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.pngbin0 -> 1810 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.pngbin0 -> 1834 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.pngbin0 -> 1747 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.pngbin0 -> 1766 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.pngbin0 -> 2978 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.pngbin0 -> 3220 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.pngbin0 -> 2720 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.pngbin0 -> 2958 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.pngbin0 -> 1916 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.pngbin0 -> 1872 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.pngbin0 -> 1760 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.pngbin0 -> 1783 bytes
-rw-r--r--java/res/drawable-xxxhdpi/ic_launcher_keyboard.pngbin0 -> 11435 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.pngbin0 -> 1139 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.pngbin0 -> 1133 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.pngbin0 -> 3475 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.pngbin0 -> 3259 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.pngbin0 -> 3883 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.pngbin0 -> 3682 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.pngbin0 -> 2780 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.pngbin0 -> 2624 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.pngbin0 -> 1138 bytes
-rw-r--r--java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.pngbin0 -> 1124 bytes
-rw-r--r--java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.pngbin0 -> 1017 bytes
-rw-r--r--java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.pngbin0 -> 1017 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.pngbin0 -> 1974 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.pngbin0 -> 2051 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.pngbin0 -> 2091 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.pngbin0 -> 2162 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.pngbin0 -> 1474 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.pngbin0 -> 1474 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.pngbin0 -> 3263 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.pngbin0 -> 3405 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.pngbin0 -> 1826 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.pngbin0 -> 1826 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.pngbin0 -> 1827 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.pngbin0 -> 1701 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.pngbin0 -> 1385 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.pngbin0 -> 1385 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.pngbin0 -> 2443 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.pngbin0 -> 2434 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.pngbin0 -> 1886 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.pngbin0 -> 1845 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.pngbin0 -> 2565 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.pngbin0 -> 2694 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.pngbin0 -> 1865 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.pngbin0 -> 1865 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.pngbin0 -> 1913 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.pngbin0 -> 1801 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.pngbin0 -> 2587 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.pngbin0 -> 2612 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.pngbin0 -> 1196 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.pngbin0 -> 1208 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.pngbin0 -> 1424 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.pngbin0 -> 1450 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.pngbin0 -> 2135 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.pngbin0 -> 2189 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.pngbin0 -> 2138 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.pngbin0 -> 2209 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.pngbin0 -> 1393 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.pngbin0 -> 1423 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.pngbin0 -> 1370 bytes
-rw-r--r--java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.pngbin0 -> 1397 bytes
-rw-r--r--java/res/values-af/strings.xml39
-rw-r--r--java/res/values-am/strings.xml39
-rw-r--r--java/res/values-ar/strings.xml39
-rw-r--r--java/res/values-az-rAZ/strings.xml41
-rw-r--r--java/res/values-bg/strings.xml39
-rw-r--r--java/res/values-bn-rBD/strings.xml43
-rw-r--r--java/res/values-ca/strings-emoji-descriptions.xml10
-rw-r--r--java/res/values-ca/strings-talkback-descriptions.xml2
-rw-r--r--java/res/values-ca/strings.xml41
-rw-r--r--java/res/values-cs/strings.xml39
-rw-r--r--java/res/values-da/strings.xml43
-rw-r--r--java/res/values-de/strings.xml39
-rw-r--r--java/res/values-el/strings.xml39
-rw-r--r--java/res/values-en-rGB/strings.xml31
-rw-r--r--java/res/values-en-rIN/strings.xml31
-rw-r--r--java/res/values-es-rUS/strings.xml39
-rw-r--r--java/res/values-es/strings.xml45
-rw-r--r--java/res/values-et-rEE/strings.xml39
-rw-r--r--java/res/values-eu-rES/strings.xml39
-rw-r--r--java/res/values-fa/strings.xml39
-rw-r--r--java/res/values-fi/strings.xml41
-rw-r--r--java/res/values-fr-rCA/strings.xml39
-rw-r--r--java/res/values-fr/strings.xml39
-rw-r--r--java/res/values-gl-rES/strings-emoji-descriptions.xml2
-rw-r--r--java/res/values-gl-rES/strings.xml41
-rw-r--r--java/res/values-hi/strings-action-keys.xml2
-rw-r--r--java/res/values-hi/strings-letter-descriptions.xml2
-rw-r--r--java/res/values-hi/strings-talkback-descriptions.xml8
-rw-r--r--java/res/values-hi/strings.xml55
-rw-r--r--java/res/values-hr/strings.xml39
-rw-r--r--java/res/values-hu/strings.xml39
-rw-r--r--java/res/values-hy-rAM/strings.xml41
-rw-r--r--java/res/values-in/strings.xml39
-rw-r--r--java/res/values-is-rIS/strings.xml39
-rw-r--r--java/res/values-it/strings.xml39
-rw-r--r--java/res/values-iw/strings-emoji-descriptions.xml4
-rw-r--r--java/res/values-iw/strings.xml39
-rw-r--r--java/res/values-ja/strings.xml40
-rw-r--r--java/res/values-ka-rGE/strings.xml40
-rw-r--r--java/res/values-kk-rKZ/strings.xml39
-rw-r--r--java/res/values-km-rKH/strings.xml39
-rw-r--r--java/res/values-kn-rIN/strings.xml39
-rw-r--r--java/res/values-ko/strings.xml40
-rw-r--r--java/res/values-ky-rKG/strings.xml39
-rw-r--r--java/res/values-land/config.xml16
-rw-r--r--java/res/values-land/keyboard-heights.xml2
-rw-r--r--java/res/values-lo-rLA/strings.xml32
-rw-r--r--java/res/values-lt/strings.xml40
-rw-r--r--java/res/values-lv/strings.xml39
-rw-r--r--java/res/values-mk-rMK/strings.xml39
-rw-r--r--java/res/values-ml-rIN/strings.xml41
-rw-r--r--java/res/values-mn-rMN/strings.xml31
-rw-r--r--java/res/values-mr-rIN/strings.xml39
-rw-r--r--java/res/values-ms-rMY/strings.xml41
-rw-r--r--java/res/values-my-rMM/strings.xml47
-rw-r--r--java/res/values-nb/strings.xml40
-rw-r--r--java/res/values-ne-rNP/strings.xml39
-rw-r--r--java/res/values-nl/strings.xml39
-rw-r--r--java/res/values-pl/strings.xml39
-rw-r--r--java/res/values-pt-rPT/strings.xml39
-rw-r--r--java/res/values-pt/strings.xml46
-rw-r--r--java/res/values-ro/strings.xml41
-rw-r--r--java/res/values-ru/strings.xml40
-rw-r--r--java/res/values-si-rLK/strings.xml41
-rw-r--r--java/res/values-sk/strings.xml39
-rw-r--r--java/res/values-sl/strings.xml39
-rw-r--r--java/res/values-sr/strings.xml39
-rw-r--r--java/res/values-sv/strings.xml40
-rw-r--r--java/res/values-sw/strings.xml39
-rw-r--r--java/res/values-sw600dp-land/config.xml14
-rw-r--r--java/res/values-sw600dp/config.xml14
-rw-r--r--java/res/values-sw768dp-land/config.xml16
-rw-r--r--java/res/values-sw768dp/config.xml14
-rw-r--r--java/res/values-ta-rIN/strings.xml39
-rw-r--r--java/res/values-te-rIN/strings.xml39
-rw-r--r--java/res/values-th/strings.xml40
-rw-r--r--java/res/values-tl/strings.xml40
-rw-r--r--java/res/values-tr/strings.xml40
-rw-r--r--java/res/values-uk/strings.xml39
-rw-r--r--java/res/values-ur-rPK/strings.xml40
-rw-r--r--java/res/values-uz-rUZ/strings.xml39
-rw-r--r--java/res/values-vi/strings.xml40
-rw-r--r--java/res/values-zh-rCN/strings.xml41
-rw-r--r--java/res/values-zh-rHK/strings.xml46
-rw-r--r--java/res/values-zh-rTW/strings.xml40
-rw-r--r--java/res/values-zu/strings.xml39
-rw-r--r--java/res/values/attrs.xml4
-rw-r--r--java/res/values/config.xml17
-rw-r--r--java/res/values/donottranslate-text-decorator.xml51
-rw-r--r--java/res/values/keyboard-themes.xml4
-rw-r--r--java/res/values/strings.xml42
-rw-r--r--java/res/values/themes-common.xml7
-rw-r--r--java/res/values/themes-holo.xml4
-rw-r--r--java/res/values/themes-ics.xml1
-rw-r--r--java/res/values/themes-klp.xml1
-rw-r--r--java/res/values/themes-lxx-dark.xml3
-rw-r--r--java/res/values/themes-lxx-light.xml3
-rw-r--r--java/res/values/themes-lxx.xml4
-rw-r--r--java/res/xml-sw600dp-land/key_space_3kw.xml69
-rw-r--r--java/res/xml-sw600dp-land/row_qwerty4.xml74
-rw-r--r--java/res/xml-sw600dp-land/rows_qwerty.xml133
-rw-r--r--java/res/xml-sw600dp/key_space_3kw.xml67
-rw-r--r--java/res/xml-sw600dp/row_qwerty4.xml69
-rw-r--r--java/res/xml-sw600dp/rows_qwerty.xml135
-rw-r--r--java/res/xml/key_styles_number.xml1
-rw-r--r--java/res/xml/keyboard_layout_set_qwerty.xml3
-rw-r--r--java/res/xml/prefs.xml20
-rw-r--r--java/res/xml/prefs_screen_accounts.xml37
-rw-r--r--java/res/xml/prefs_screen_appearance.xml34
-rw-r--r--java/res/xml/prefs_screen_multilingual.xml (renamed from java/res/xml/prefs_screen_multi_lingual.xml)8
-rw-r--r--java/res/xml/prefs_screen_preferences.xml (renamed from java/res/xml/prefs_screen_input.xml)2
-rw-r--r--java/res/xml/prefs_screen_theme.xml2
-rw-r--r--java/res/xml/rowkeys_qwerty1.xml55
-rw-r--r--java/res/xml/rowkeys_qwerty1_left5.xml49
-rw-r--r--java/res/xml/rowkeys_qwerty1_right5.xml48
-rw-r--r--java/res/xml/rowkeys_qwerty2.xml32
-rw-r--r--java/res/xml/rowkeys_qwerty2_left5.xml38
-rw-r--r--java/res/xml/rowkeys_qwerty2_right4.xml36
-rw-r--r--java/res/xml/rowkeys_qwerty3.xml25
-rw-r--r--java/res/xml/rowkeys_qwerty3_left4.xml36
-rw-r--r--java/res/xml/rowkeys_qwerty3_right3.xml31
-rw-r--r--java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java18
-rw-r--r--java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java18
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java51
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardId.java13
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java23
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java28
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardTheme.java67
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/TextDecorator.java301
-rw-r--r--java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java73
-rw-r--r--java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java8
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java9
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java4
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionary.java51
-rw-r--r--java/src/com/android/inputmethod/latin/DicTraverseSession.java2
-rw-r--r--java/src/com/android/inputmethod/latin/Dictionary.java34
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryCollection.java7
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitator.java401
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java2
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java40
-rw-r--r--java/src/com/android/inputmethod/latin/InputAttributes.java13
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java129
-rw-r--r--java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java (renamed from java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java)14
-rw-r--r--java/src/com/android/inputmethod/latin/PrevWordsInfo.java50
-rw-r--r--java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java6
-rw-r--r--java/src/com/android/inputmethod/latin/RichInputConnection.java9
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java16
-rw-r--r--java/src/com/android/inputmethod/latin/SuggestedWords.java14
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java11
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java228
-rw-r--r--java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java193
-rw-r--r--java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java8
-rw-r--r--java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java46
-rw-r--r--java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java20
-rw-r--r--java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java43
-rw-r--r--java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java (renamed from java/src/com/android/inputmethod/latin/settings/InputSettingsFragment.java)6
-rw-r--r--java/src/com/android/inputmethod/latin/settings/Settings.java11
-rw-r--r--java/src/com/android/inputmethod/latin/settings/SettingsFragment.java16
-rw-r--r--java/src/com/android/inputmethod/latin/settings/SettingsValues.java30
-rw-r--r--java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java11
-rw-r--r--java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java55
-rw-r--r--java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java30
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java2
-rw-r--r--java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java236
-rw-r--r--java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java2
-rw-r--r--java/src/com/android/inputmethod/latin/utils/DistracterFilter.java2
-rw-r--r--java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java12
-rw-r--r--java/src/com/android/inputmethod/latin/utils/FragmentUtils.java8
-rw-r--r--java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java3
-rw-r--r--java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java4
-rw-r--r--java/src/com/android/inputmethod/latin/utils/StringUtils.java34
-rw-r--r--java/src/com/android/inputmethod/latin/utils/SuggestionResults.java13
292 files changed, 4367 insertions, 2220 deletions
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index a1ffe5a93..b29a6e286 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -18,7 +18,7 @@
coreApp="true"
package="com.android.inputmethod.latin">
- <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
@@ -158,5 +158,9 @@
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>
+
+ <!-- Unexported activity used for tests. -->
+ <activity android:name=".settings.TestFragmentActivity"
+ android:exported="false" />
</application>
</manifest>
diff --git a/java/res/drawable-hdpi/ic_launcher_keyboard.png b/java/res/drawable-hdpi/ic_launcher_keyboard.png
index 7ae00ed3f..3a01e61b9 100644
--- a/java/res/drawable-hdpi/ic_launcher_keyboard.png
+++ b/java/res/drawable-hdpi/ic_launcher_keyboard.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png
index 306e4554c..93f300a13 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png
index 867f5516d..e7c516a0e 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
index b3e6ee784..b56fcf910 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png
index 827f80f13..32005c37b 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_launcher_keyboard.png b/java/res/drawable-mdpi/ic_launcher_keyboard.png
index cc73f3be1..574da25f5 100644
--- a/java/res/drawable-mdpi/ic_launcher_keyboard.png
+++ b/java/res/drawable-mdpi/ic_launcher_keyboard.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png
index 4f6731f60..1a7dd34ed 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png
index 14da5f919..268863e68 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
index 9bca991b2..08d67ef6a 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png
index 14f4b5f24..d0e46b14e 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_launcher_keyboard.png b/java/res/drawable-xhdpi/ic_launcher_keyboard.png
index f2ac50dfe..17695015a 100644
--- a/java/res/drawable-xhdpi/ic_launcher_keyboard.png
+++ b/java/res/drawable-xhdpi/ic_launcher_keyboard.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png
index 654ccd10c..f934e33bd 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png
index c566e3d7c..f70599e99 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
index f5f613caa..fa5ddf2b6 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
index 35aaa7d7c..0da8919b2 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_launcher_keyboard.png b/java/res/drawable-xxhdpi/ic_launcher_keyboard.png
index df386e827..624c82efd 100644
--- a/java/res/drawable-xxhdpi/ic_launcher_keyboard.png
+++ b/java/res/drawable-xxhdpi/ic_launcher_keyboard.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png
index f5215bc56..1b92455e9 100644
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png
index b565ff07c..3effde383 100644
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
index 6d931ed42..55d633098 100644
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
index 2c5ced966..4523be965 100644
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.png
new file mode 100644
index 000000000..eac447583
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.png
new file mode 100644
index 000000000..16d1f687f
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png
new file mode 100644
index 000000000..78923a887
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png
new file mode 100644
index 000000000..e57e80d05
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png
new file mode 100644
index 000000000..0b3d796e4
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png
new file mode 100644
index 000000000..6edd4e3d5
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png
new file mode 100644
index 000000000..61a5efc2f
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png
new file mode 100644
index 000000000..c60a23547
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png
new file mode 100644
index 000000000..842c6858d
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png
new file mode 100644
index 000000000..6b033067f
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png
new file mode 100644
index 000000000..276065e3b
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png
new file mode 100644
index 000000000..e64147f4f
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png
new file mode 100644
index 000000000..c1300140c
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png
new file mode 100644
index 000000000..e433f5669
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png
new file mode 100644
index 000000000..ee4d16b64
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png
new file mode 100644
index 000000000..14cba3c24
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png
new file mode 100644
index 000000000..671c31f08
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png
new file mode 100644
index 000000000..8a6f32afe
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.png b/java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.png
new file mode 100644
index 000000000..a0116fafe
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.png
new file mode 100644
index 000000000..0198bce94
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.png
new file mode 100644
index 000000000..f530ba139
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.png
new file mode 100644
index 000000000..d9022bbe3
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.png
new file mode 100644
index 000000000..89dc4cd92
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.png
new file mode 100644
index 000000000..efbf51c11
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.png
new file mode 100644
index 000000000..95355c635
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.png
new file mode 100644
index 000000000..f5531ea11
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.png
new file mode 100644
index 000000000..b5085cb6a
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.png
new file mode 100644
index 000000000..730f75d94
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.png
new file mode 100644
index 000000000..f4a250ddd
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.png
new file mode 100644
index 000000000..4658ceac0
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.png
new file mode 100644
index 000000000..7b27829e7
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.png
new file mode 100644
index 000000000..b70f07ac5
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.png
new file mode 100644
index 000000000..7e052080b
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.png
new file mode 100644
index 000000000..c960d15e4
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.png
new file mode 100644
index 000000000..44325cf35
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.png
new file mode 100644
index 000000000..bca6bbaa7
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.png
new file mode 100644
index 000000000..8f340d2df
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.png
new file mode 100644
index 000000000..a06e1d858
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.png
new file mode 100644
index 000000000..b247768f7
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.png
new file mode 100644
index 000000000..3508374ba
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.png
new file mode 100644
index 000000000..82a029ee7
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.png
new file mode 100644
index 000000000..6797d7b31
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.png
new file mode 100644
index 000000000..6b622ac6d
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.png
new file mode 100644
index 000000000..51336e93a
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.png
new file mode 100644
index 000000000..2ab8fa6a7
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.png b/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.png
new file mode 100644
index 000000000..e02ad6175
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.png b/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.png
new file mode 100644
index 000000000..b17f06674
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_launcher_keyboard.png b/java/res/drawable-xxxhdpi/ic_launcher_keyboard.png
new file mode 100644
index 000000000..39636a1b7
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/ic_launcher_keyboard.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.png b/java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.png
new file mode 100644
index 000000000..a7dd5378b
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.png b/java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.png
new file mode 100644
index 000000000..ef7ab2097
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.png b/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.png
new file mode 100644
index 000000000..0e08b6b95
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.png b/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.png
new file mode 100644
index 000000000..fb10523d2
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
new file mode 100644
index 000000000..fd88668bb
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
new file mode 100644
index 000000000..ab1bfad7d
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.png b/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.png
new file mode 100644
index 000000000..3489a9c4c
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.png b/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.png
new file mode 100644
index 000000000..2e3797263
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.png b/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.png
new file mode 100644
index 000000000..098fa0652
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.png b/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.png
new file mode 100644
index 000000000..c1c48c973
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.png b/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.png
new file mode 100644
index 000000000..0dc783d7c
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.png b/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.png
new file mode 100644
index 000000000..f3162e422
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.png
new file mode 100644
index 000000000..c8a064d87
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.png
new file mode 100644
index 000000000..2d2e6e158
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.png
new file mode 100644
index 000000000..27426da97
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.png
new file mode 100644
index 000000000..4b1a69f5b
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.png
new file mode 100644
index 000000000..79d3eef5d
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.png
new file mode 100644
index 000000000..a87e24028
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.png
new file mode 100644
index 000000000..26f361540
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.png
new file mode 100644
index 000000000..93efb378f
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.png
new file mode 100644
index 000000000..27bf68941
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.png
new file mode 100644
index 000000000..c62410429
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.png
new file mode 100644
index 000000000..50e0a31d2
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.png
new file mode 100644
index 000000000..3f4424927
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.png
new file mode 100644
index 000000000..c10107125
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.png
new file mode 100644
index 000000000..54e7fb05b
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.png
new file mode 100644
index 000000000..8f7dfcefc
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.png
new file mode 100644
index 000000000..07d555149
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.png
new file mode 100644
index 000000000..9c12ec29f
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.png
new file mode 100644
index 000000000..fc6882833
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.png
new file mode 100644
index 000000000..d728b8308
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.png
new file mode 100644
index 000000000..1351710ad
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.png
new file mode 100644
index 000000000..e75d556b4
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.png
new file mode 100644
index 000000000..00521bf09
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.png
new file mode 100644
index 000000000..f47bf66e2
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.png
new file mode 100644
index 000000000..fdb6cd77a
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.png
new file mode 100644
index 000000000..26fd4e7ef
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.png
new file mode 100644
index 000000000..7b0467aa2
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.png
new file mode 100644
index 000000000..1f6c92da0
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.png
new file mode 100644
index 000000000..656cf99ca
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.png
new file mode 100644
index 000000000..89884698c
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.png
new file mode 100644
index 000000000..aeedba6da
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.png
new file mode 100644
index 000000000..9d5b73307
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.png
new file mode 100644
index 000000000..9db910daa
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.png
new file mode 100644
index 000000000..e233d0993
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.png
new file mode 100644
index 000000000..7e0a964dc
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.png
new file mode 100644
index 000000000..94de9165b
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.png
new file mode 100644
index 000000000..2b13ba737
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.png b/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.png
new file mode 100644
index 000000000..134bca67c
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.png
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.png b/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.png
new file mode 100644
index 000000000..31cf75bb3
--- /dev/null
+++ b/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.png
Binary files differ
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index 72a390f31..3b5354743 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreer met sleuteldruk"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Klank met sleuteldruk"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Opspring met sleuteldruk"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Invoervoorkeure"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Voorkoms"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Veeltalige opsies"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Gebaarinvoervoorkeure"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Voorkeure"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Voorkoms en uitlegte"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Veeltalige opsies"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Gebaarinvoer"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Tekskorrigering"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Wys wanneer meervoudige invoertale geaktiveer is"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Wys glyverklikker"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Vertoon visuele aanduiding terwyl gly van Shift- of Symbol-sleutels af"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Sleutelopspringer-wagperiode"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Geen wagperiode nie"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Verstek"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Steminvoerinstellings"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Geen steminvoermetodes geaktiveer nie. Gaan taal- en invoerinstellings na."</string>
<string name="configure_input_method" msgid="373356270290742459">"Stel invoermetodes op"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Invoertale"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Tale"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Hulp en terugvoering"</string>
- <string name="select_language" msgid="3693815588777926848">"Invoertale"</string>
+ <string name="select_language" msgid="5709487854987078367">"Tale"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Raak weer om te stoor"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Raak hier om te stoor"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Woordeboek beskikbaar"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Sleutelbordtema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Engels (VK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spaans (VS)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Aktiveer"</string>
<string name="not_now" msgid="6172462888202790482">"Nie nou nie"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Dieselfde invoerstyl bestaan ​​reeds: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Vertraging van sleutellangdruk"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Sleuteldruk se vibrasie-tydsduur"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Sleuteldruk se klankvolume"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Pasmaak sleutelvoorskou-animasie"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lees eksterne woordeboeklêer"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Geen woordeboeklêers in die aflaaiselsvouer nie"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Kies \'n woordeboeklêer om te installeer"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Moet hierdie lêer regtig vir <xliff:g id="LANGUAGE_NAME">%s</xliff:g> geïnstalleer word?"</string>
- <string name="error" msgid="8940763624668513648">"Daar was \'n fout"</string>
<string name="button_default" msgid="3988017840431881491">"Verstek"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Welkom by <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"met Gebaar-tik"</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 63c1eb28f..1575f456e 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"በቁልፍመጫንጊዜ አንዝር"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"በቁልፍ መጫን ላይ የሚወጣ ድምፅ"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"ቁልፍ ጫን ላይ ብቅ ባይ"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"የግቤት ምርጫዎች"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"ገጽታ"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ባለብዙ ቋንቋ አማራጮች"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"የመተየብ እንቅስቃሴ ምልክት ምርጫዎች"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ምርጫዎች"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"መልክ እና አቀማመጦች"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"ባለብዙ ቋንቋ አማራጮች"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"በጣት ምልክት መተየብ"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"ፅሁፍ ማስተካከያ"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"በርካታ የግቤት ቋንቋዎች ሲነቁ አሳይ"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"ተንሸራታች አመልካች አሳይ"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ከShift ወይም የምልክት ቁልፎች በማንሸራተት ላይ ሳለ ምስላዊ ምልክት አሳይ"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"የቁልፍ ብቅ ባይ መዘግየትን ያስወገዳል"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"የዘገየ የለም"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ነባሪ"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"የድምፅ ግቤት ቁልፍ"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"ምንም የግቤት ስልቶች አልነቁም። የቋንቋ እና የግቤት ቅንብሮችን ይፈትሹ።"</string>
<string name="configure_input_method" msgid="373356270290742459">"ግቤት ሜተዶችን አዋቀር"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ቋንቋዎች አግቤት"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ቋንቋዎች"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"እገዛ እና ግብረመልስ"</string>
- <string name="select_language" msgid="3693815588777926848">"ቋንቋዎች አግቤት"</string>
+ <string name="select_language" msgid="5709487854987078367">"ቋንቋዎች"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"ለማስቀመጥ እንደገና ንካ"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ለማስቀመጥ እዚህ ይንኩ"</string>
<string name="has_dictionary" msgid="6071847973466625007">"መዝገበ ቃላት አለ"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"የቁልፍ ሰሌዳ ገጽታ"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"እንግሊዘኛ (የታላቋ ብሪታንያ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"እንግሊዘኛ (ዩ.ኤስ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ስፓኒሽኛ (ዩኤስ)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"አንቃ"</string>
<string name="not_now" msgid="6172462888202790482">"አሁን አልፈልግም"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"ተመሳሳዩ የግብዓት ቅጥ አስቀድሞ አለ፦ <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"የሰሌዳ ቁልፍ ጠቅታ በመጫን መዘግየት"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"የቁልፍ ጭነት ንዝረት ርዝመት"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"የቁልፍ ጭነት ድምጽ መጠን"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"ቁልፍ የቅድመ-እይታ እነማን ያብጁ"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ውጫዊ የመዝገበቃላት ፋይል አንብብ"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"በውርዶች አቃፊው ውስጥ ምንም የመዝገበ-ፋይሎች የሉም"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"የሚጭኑት የመዝገበ-ቃላት ፋይል ይምረጡ"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"እውን ይሄ ፋይል ለ<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ይጫን?"</string>
- <string name="error" msgid="8940763624668513648">"ስህተት ተከስቶ ነበር"</string>
<string name="button_default" msgid="3988017840431881491">"ነባሪ"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"እንኳን ወደ <xliff:g id="APPLICATION_NAME">%s</xliff:g> በደህና መጡ"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"በጣት ምልክት መተየብ"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index f550c3411..3192bf2db 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"اهتزاز عند ضغط مفتاح"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"صوت عند الضغط على مفتاح"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"انبثاق عند ضغط مفتاح"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"تفضيلات الإدخال"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"المظهر"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"خيارات تعدد اللغات"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"تفضيلات كتابة الإيماءات"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"التفضيلات"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"المظهر والتنسيقات"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"خيارات اللغات المتعددة"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"الكتابة بالإشارة"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"تصحيح النص"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"يظهر عندما يتم تمكين لغات الإدخال متعددة"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"إظهار مؤشر التمرير"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏عرض تلميح مرئي أثناء التمرير من مفتاح Shift أو Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخير إزالة النافذة المنبثقة الأساسية"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بلا تأخير"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"افتراضي"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"مفتاح الإدخال الصوتي"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"لم يتم تمكين أي أساليب إدخال صوتي. تحقق من إعدادات اللغة والإدخال."</string>
<string name="configure_input_method" msgid="373356270290742459">"تهيئة طرق الإدخال"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"لغات الإدخال"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"اللغات"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"المساعدة والتعليقات"</string>
- <string name="select_language" msgid="3693815588777926848">"لغات الإدخال"</string>
+ <string name="select_language" msgid="5709487854987078367">"اللغات"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"المس مرة أخرى للحفظ"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"المس هنا للحفظ"</string>
<string name="has_dictionary" msgid="6071847973466625007">"القاموس متاح"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"مظهر لوحة المفاتيح"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"الإنجليزية (المملكة المتحدة)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"الإنجليزية (الولايات المتحدة)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"الإسبانية (الأميركية)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"تمكين"</string>
<string name="not_now" msgid="6172462888202790482">"ليس الآن"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"نمط الإدخال ذاته موجود من قبل: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخير الضغط الطويل للمفاتيح"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"مدة اهتزاز الضغط على المفاتيح"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"مستوى صوت الضغط على المفاتيح"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"تخصيص الرسم المتحرك لمعاينة المفاتيح"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"قراءة ملف قاموس خارجي"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ليست هناك ملفات قواميس في مجلد التنزيلات"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"تحديد ملف قاموس للتثبيت"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"هل تريد حقًا تثبيت هذا الملف للغة <xliff:g id="LANGUAGE_NAME">%s</xliff:g>؟"</string>
- <string name="error" msgid="8940763624668513648">"حدث خطأ"</string>
<string name="button_default" msgid="3988017840431881491">"الافتراضية"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"مرحبا بكم في <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"مع الكتابة بالإشارة"</string>
diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml
index 5bb5b14eb..f32bd729c 100644
--- a/java/res/values-az-rAZ/strings.xml
+++ b/java/res/values-az-rAZ/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrasiyalı klikləmə"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Klikləmə səsi"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Klikləmədə popup"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Daxiletmə tərcihləri"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Görünüş"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Çoxdilli seçimlər"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Jest ilə yazı tərcihləri"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Seçimlər"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Görünüş və düzənlər"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Çoxdilli seçimlər"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Jest ilə yazma"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Mətn korreksiyası"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"Qabaqcıl"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Çoxsaylı daxiletmə dilləri aktivləşdikdə göstər"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Slayd indikatorunu göstər"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Sürüşdürmə və ya Simvol düymələrinə keçərkən vizual işarəni göstər"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Klaviş popup kənarlaşdırılmasında gecikmə"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Gecikmə yoxdur"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Varsayılan"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"Səs daxiletmə klavişi"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Heç bir səs daxiletmə metodu aktiv deyil. Dil və daxiletmə ayarlarını yoxlayın."</string>
<string name="configure_input_method" msgid="373356270290742459">"Daxiletmə üsullarını sazla"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Daxiletmə dilləri"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Dillər"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Yardım və geri əlaqə"</string>
- <string name="select_language" msgid="3693815588777926848">"Daxiletmə dilləri"</string>
+ <string name="select_language" msgid="5709487854987078367">"Dillər"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Yadda saxlamaq üçün yenidən toxunun"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Yadda saxlamaq üçün buraya toxunun"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Lüğət mövcuddur"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatura teması"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"İngilis (BK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"İngilis (ABŞ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"İspan (ABŞ)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"Aktiv et"</string>
<string name="not_now" msgid="6172462888202790482">"İndi yox"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Eyni daxiletmə üslubu artıq mövcuddur: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Klavişi uzun müddət basmada gecikmə"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrasiyalı klikləmə müddəti"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Səsli klikləmə səsi"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Xarici lüğət faylını oxuyun"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Endirmə Qovluğunda heç bir lüğət faylı yoxdur"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Yükləmək üçün lüğət faylı seçin"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> üçün faylı quraşdırmaq istədiyinizə əminsiniz?"</string>
- <string name="error" msgid="8940763624668513648">"Xəta var idi"</string>
<string name="button_default" msgid="3988017840431881491">"Defolt"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> təbiqinə xoş gəlmisiniz"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Jest Yazısı ilə"</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index 8b1473316..68b774f86 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Да вибрира при натискане на клавиш"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натискане на клавиш"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Изскачащ прозорец при натискане на клавиш"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Въвеждане: Предпочитания"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Облик"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Опции за няколко езика"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Въвежд. чрез жест: Предпоч."</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Предпочитания"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Облик и оформления"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Опции за няколко езика"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Въвеждане чрез жест"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Коригиране на текст"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Показване при няколко активирани езика за въвеждане"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Индикатор за плъзгане: Показв."</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Визуална подсказка при плъзгане от „Shift“ или клавиш за символи"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Отхвърляне на подсказката"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задържане"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"По подразбиране"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Клавиш за гласово въвеждане"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Няма активирани методи на гласово въвеждане. Проверете настройките за език и въвеждане."</string>
<string name="configure_input_method" msgid="373356270290742459">"Конфигуриране на въвеждането"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Входни езици"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Езици"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Помощ и отзиви"</string>
- <string name="select_language" msgid="3693815588777926848">"Езици за въвеждане"</string>
+ <string name="select_language" msgid="5709487854987078367">"Езици"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Докоснете отново, за да запазите"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Докоснете тук, за да запазите"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Има достъп до речник"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Тема на клавиатурата"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"английски (Великобритания)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"английски (САЩ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"испански (САЩ)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Активиране"</string>
<string name="not_now" msgid="6172462888202790482">"Не сега"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Същият стил на въвеждане вече съществува: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Забавяне при продълж. натискане"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Продълж. на вибриране при натискане"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Сила на звука при натиск. на клавиш"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Аним. за визуал. на клавишите: Перс."</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Четене на файл за външен речник"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"В папката „Изтегляния“ няма файлове за речник"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Изберете файл за речника, който да инсталирате"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Наистина ли да се инсталира този файл за <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Възникна грешка"</string>
<string name="button_default" msgid="3988017840431881491">"Стандартни"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Добре дошли в/ъв <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"с въвеждане чрез жест"</string>
diff --git a/java/res/values-bn-rBD/strings.xml b/java/res/values-bn-rBD/strings.xml
index 53fcde3f4..6b8224676 100644
--- a/java/res/values-bn-rBD/strings.xml
+++ b/java/res/values-bn-rBD/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"কীপ্রেস এর সময় কম্পন"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"কীপ্রেস এর সময়ের শব্দ"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"কীপ্রেস এর ফলে পপআপ"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ইনপুট পছন্দগুলি"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"উপস্থিতি"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"একাধিক ভাষা বিকল্পগুলি"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"অঙ্গভঙ্গি টাইপিং অভিরুচি"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"পছন্দসমূহ"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"চেহারা ও লেআউটগুলি"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"বহুভাষিক বিকল্পগুলি"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"অঙ্গভঙ্গি টাইপিং"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"পাঠ্য সংশোধন"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"যখন একাধিক ইনপুট ভাষা সক্ষম থাকে তখন দেখান"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"স্লাইড সূচক দেখান"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"শিফ্ট বা সাংকেতিক চিহ্ন থেকে স্লাইড করার সময় চাক্ষুষ ইঙ্গিত প্রদর্শন"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"কী পপআপ বিলম্ব খারিজ"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"কোনো বিলম্ব হয়নি"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ডিফল্ট"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"ভয়েস ইনপুট কী"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"কোনো ভয়েস ইনপুট পদ্ধতি সক্ষম নয়। ভাষা &amp; ইনপুট সেটিংস পরীক্ষা করুন।"</string>
<string name="configure_input_method" msgid="373356270290742459">"ইনপুট পদ্ধতি কনফিগার করুন"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ইনপুট ভাষাগুলি"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ভাষাগুলি"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"সহায়তা এবং প্রতিক্রিয়া"</string>
- <string name="select_language" msgid="3693815588777926848">"ইনপুট ভাষাগুলি"</string>
+ <string name="select_language" msgid="5709487854987078367">"ভাষাগুলি"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"সংরক্ষণ করতে আবার ছোঁন"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"সংরক্ষণ করতে এখানে স্পর্শ করুন"</string>
<string name="has_dictionary" msgid="6071847973466625007">"অভিধান উপলব্ধ"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"কীবোর্ড থিম"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ইংরেজি (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ইংরেজি (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"স্প্যানিশ (US)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"সক্ষম করুন"</string>
<string name="not_now" msgid="6172462888202790482">"এখন নয়"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"একই ইনপুট শৈলী ইতোমধ্যে বিদ্যমান: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"কী প্রেসে দীর্ঘ বিলম্ব"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"কীপ্রেস কম্পন সময়কাল"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"কীপ্রেস সাউন্ড ভলিউম"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"কী-এর পূর্বরূপের অ্যানিমেশন কাস্টমাইজ করুন"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"বহিরাগত অভিধান ফাইলটি পড়ুন"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ডাউনলোডস ফোল্ডারে কোনো অভিধান ফাইল নেই"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ইনস্টল করার জন্য একটি অভিধান ফাইল নির্বাচন করুন"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"সত্যিই কি <xliff:g id="LANGUAGE_NAME">%s</xliff:g> এর জন্য এই ফাইলটি ইনস্টল করবেন?"</string>
- <string name="error" msgid="8940763624668513648">"একটি ত্রুটি ছিল"</string>
<string name="button_default" msgid="3988017840431881491">"ডিফল্ট"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> এ স্বাগতম"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"অঙ্গভঙ্গি টাইপিং এর মাধ্যমে"</string>
@@ -130,8 +139,8 @@
<string name="setup_next_action" msgid="371821437915144603">"পরবর্তী পদক্ষেপ"</string>
<string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সেট আপ হচ্ছে"</string>
<string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করুন"</string>
- <string name="setup_step1_instruction" msgid="2578631936624637241">"দয়া করে আপনার ভাষা ও ইনপুট সেটিংস <xliff:g id="APPLICATION_NAME">%s</xliff:g> পরীক্ষা করুন। এর ফলে এটি আপনার ডিভাইসে চলার জন্য অনুমোদন পাবে।"</string>
- <string name="setup_step1_finished_instruction" msgid="10761482004957994">"আপনার ভাষা ও ইনপুট সেটিংসে ইতোমধ্যে <xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করা হয়েছে, তাই এই পদক্ষেপটি সমাপ্ত। পরবর্তীটিতে এগোন!"</string>
+ <string name="setup_step1_instruction" msgid="2578631936624637241">"দয়া করে আপনার ভাষা ও কিবোর্ড সেটিংস <xliff:g id="APPLICATION_NAME">%s</xliff:g> পরীক্ষা করুন। এর ফলে এটি আপনার ডিভাইসে চলার জন্য অনুমোদন পাবে।"</string>
+ <string name="setup_step1_finished_instruction" msgid="10761482004957994">"আপনার ভাষা ও কিবোর্ড সেটিংসে ইতোমধ্যে <xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করা হয়েছে, তাই এই পদক্ষেপটি সমাপ্ত। পরবর্তীটিতে এগোন!"</string>
<string name="setup_step1_action" msgid="4366513534999901728">"সেটিংসে সক্ষম করুন"</string>
<string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> এ স্যুইচ করুন"</string>
<string name="setup_step2_instruction" msgid="9141481964870023336">"এখন, সক্রিয় পাঠ্য-ইনপুট পদ্ধতি হিসেবে \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" নির্বাচন করুন।"</string>
diff --git a/java/res/values-ca/strings-emoji-descriptions.xml b/java/res/values-ca/strings-emoji-descriptions.xml
index 7e4beae3c..0a356f8e2 100644
--- a/java/res/values-ca/strings-emoji-descriptions.xml
+++ b/java/res/values-ca/strings-emoji-descriptions.xml
@@ -84,7 +84,7 @@
<string name="spoken_emoji_267B" msgid="21716857176812762">"Símbol universal de reciclatge negre"</string>
<string name="spoken_emoji_267F" msgid="8833496533226475443">"Símbol de cadira de rodes"</string>
<string name="spoken_emoji_2693" msgid="7443148847598433088">"Àncora"</string>
- <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Senyal de perill"</string>
+ <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Senyal d\'advertiment"</string>
<string name="spoken_emoji_26A1" msgid="5604749644693339145">"Senyal d\'alt voltatge"</string>
<string name="spoken_emoji_26AA" msgid="8005748091690377153">"Cercle blanc mitjà"</string>
<string name="spoken_emoji_26AB" msgid="1655910278422753244">"Cercle negre mitjà"</string>
@@ -578,7 +578,7 @@
<string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Llibre blau"</string>
<string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Llibre taronja"</string>
<string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Llibres"</string>
- <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Insígnia de nom"</string>
+ <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Etiqueta identificativa"</string>
<string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Desplaça"</string>
<string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string>
<string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Auricular del telèfon"</string>
@@ -591,7 +591,7 @@
<string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Safata d\'entrada"</string>
<string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paquet"</string>
<string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbol de correu electrònic"</string>
- <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Sobre entrant"</string>
+ <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Correu entrant"</string>
<string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre amb una fletxa cap avall al damunt"</string>
<string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Bústia tancada amb la bandera baixada"</string>
<string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Bústia tancada amb la bandera aixecada"</string>
@@ -616,8 +616,8 @@
<string name="spoken_emoji_1F502" msgid="2361976580513178391">"Fletxes cap a la dreta i l\'esquerra que formen un cercle obert en sentit horari i un número u encerclat"</string>
<string name="spoken_emoji_1F503" msgid="8936283551917858793">"Fletxes cap avall i cap amunt que formen un cercle obert en sentit horari"</string>
<string name="spoken_emoji_1F504" msgid="708290317843535943">"Fletxes cap avall i cap amunt que formen un cercle obert en sentit antihorari"</string>
- <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Signe de brillantor baixa"</string>
- <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Signe de brillantor alta"</string>
+ <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbol de brillantor baixa"</string>
+ <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbol de brillantor alta"</string>
<string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altaveu amb barra de cancel·lació"</string>
<string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altaveu"</string>
<string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altaveu amb una ona de so"</string>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 9b01c75ed..a77db8b94 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -57,7 +57,7 @@
<string name="announce_keyboard_mode" msgid="6698257917367823205">"Es mostra el teclat per a <xliff:g id="KEYBOARD_MODE">%s</xliff:g>."</string>
<string name="keyboard_mode_date" msgid="6597407244976713364">"data"</string>
<string name="keyboard_mode_date_time" msgid="3642804408726668808">"data i hora"</string>
- <string name="keyboard_mode_email" msgid="1239682082047693644">"correu electrònic"</string>
+ <string name="keyboard_mode_email" msgid="1239682082047693644">"adreça electrònica"</string>
<string name="keyboard_mode_im" msgid="3812086215529493501">"missatgeria"</string>
<string name="keyboard_mode_number" msgid="5395042245837996809">"número"</string>
<string name="keyboard_mode_phone" msgid="2486230278064523665">"telèfon"</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 6fe958b66..f5cfcf564 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibra en prémer tecles"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"So en prémer tecles"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Amplia en prémer tecles"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferències d\'entrada"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparença"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opcions diversos idiomes"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Ajust escriptura gestual"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferències"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aparença i dissenys"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opcions de diversos idiomes"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Escriptura gestual"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Correcció de textos"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostra-la quan hi hagi diversos idiomes d\'introducció activats"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostra l\'indicador per lliscar"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostra la indicació visual en lliscar des de la tecla Maj o Símbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retard en ampliar tecla"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sense retard"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminat"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tecla d\'entrada de veu"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"No hi ha cap mètode d\'introducció activat. Comprova la configuració d\'Idioma i introducció de text."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configura mètodes d\'entrada"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idiomes"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Idiomes"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Ajuda i opinió"</string>
- <string name="select_language" msgid="3693815588777926848">"Idiomes d\'introducció"</string>
+ <string name="select_language" msgid="5709487854987078367">"Idiomes"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Torna a tocar per desar"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí per desar."</string>
<string name="has_dictionary" msgid="6071847973466625007">"Diccionari disponible"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema del teclat"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Anglès (Regne Unit)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglès (EUA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Espanyol (EUA)"</string>
@@ -104,7 +120,7 @@
<string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
<string name="keyboard_theme" msgid="4909551808526178852">"Tema del teclat"</string>
<string name="custom_input_styles_title" msgid="8429952441821251512">"Estils d\'entrada personalitzats"</string>
- <string name="add_style" msgid="6163126614514489951">"Afeg. estil"</string>
+ <string name="add_style" msgid="6163126614514489951">"Afegeix estil"</string>
<string name="add" msgid="8299699805688017798">"Afegeix"</string>
<string name="remove" msgid="4486081658752944606">"Elimina"</string>
<string name="save" msgid="7646738597196767214">"Desa"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Activa"</string>
<string name="not_now" msgid="6172462888202790482">"Ara no"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ja existeix aquest estil d\'entrada: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retard en mantenir premut"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durada vibració en prémer"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volum del so en prémer tecles"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Personal. animació vis. prèv. tecla"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lectura d\'un fitxer de diccionari extern"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No hi ha cap fitxer de diccionari a la carpeta Baixades"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecció d\'un fitxer de diccionari per instal·lar"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Realment vols instal·lar aquest fitxer per a <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"S\'ha produït un error"</string>
<string name="button_default" msgid="3988017840431881491">"Predeterminat"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Et donem la benvinguda a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"amb Escriptura gestual"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index 5a67fa55c..5972be483 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Při stisku klávesy vibrovat"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk při stisku klávesy"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Detail znaku při stisku klávesy"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Předvolby pro zadávání"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Vzhled"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Možnosti pro více jazyků"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Předvolby pro psaní gesty"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Předvolby"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Vzhled a rozvržení"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Možnosti pro více jazyků"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Psaní gesty"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Oprava textu"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Zobrazit, když je aktivováno více vstupních jazyků"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Indikátor přejetí prstem"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Zobrazit vizuální signál při přejetí z klávesy Shift nebo Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Prodleva vysk. okna klávesnice"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez prodlevy"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Výchozí"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Klávesa hlasového vstupu"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nejsou povoleny žádné metody hlasového vstupu. Zkontrolujte nastavení Jazyk a vstup."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurace metod zadávání"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Vstupní jazyky"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Jazyky"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Nápověda a zpětná vazba"</string>
- <string name="select_language" msgid="3693815588777926848">"Vstupní jazyky"</string>
+ <string name="select_language" msgid="5709487854987078367">"Jazyky"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Opětovným dotykem provedete uložení"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klepnutím sem položku uložíte"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Slovník k dispozici"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Motiv klávesnice"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"angličtina (Velká Británie)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angličtina (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"španělština (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Povolit"</string>
<string name="not_now" msgid="6172462888202790482">"Teď ne"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Tento styl zadávání již existuje: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Prodleva dlouhého stisknutí"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Délka vibrace u stisku klávesy"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Hlasitost stisknutí klávesy"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Upravit animaci náhledu kláves"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Číst soubor externího slovníku"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Ve složce Stažené nejsou žádné soubory slovníků."</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vyberte soubor slovníku k instalaci"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Chcete nainstalovat tento soubor pro jazyk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Došlo k chybě"</string>
<string name="button_default" msgid="3988017840431881491">"Výchozí"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Vítá vás <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"s psaním gesty"</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index f5a09e923..7143af588 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibration ved tastetryk"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetryk"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop op ved tastetryk"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Indstillinger for input"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Udseende"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Indst. for flere sprog"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Indstillinger for Glidende indtastning"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Præferencer"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Udseende og layouts"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Indstillinger for flere sprog"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Glidende indtastning"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Tekstkorrigering"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Vis, når der er aktiveret flere inputsprog"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Vis indikator ved glidning"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Vis et visuelt tip, når du glider fra Shift eller symboltaster"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Forsink. afvis. af taste-pop op"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Ingen forsink."</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -67,22 +69,36 @@
<string name="bigram_prediction" msgid="1084449187723948550">"Forslag til næste ord"</string>
<string name="bigram_prediction_summary" msgid="3896362682751109677">"Brug det forrige ord til at give forslag"</string>
<string name="gesture_input" msgid="826951152254563827">"Aktivér glidende indtastning"</string>
- <string name="gesture_input_summary" msgid="9180350639305731231">"Skriv et ord ved at glide mellem bogstaverne"</string>
+ <string name="gesture_input_summary" msgid="9180350639305731231">"Skriv et ord ved at trække fingeren rundt mellem bogstaverne"</string>
<string name="gesture_preview_trail" msgid="3802333369335722221">"Vis glidende trykspor"</string>
<string name="gesture_floating_preview_text" msgid="4443240334739381053">"Dynamiske ordeksempler"</string>
<string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Se ordforslag ved glidende indtastning"</string>
- <string name="gesture_space_aware" msgid="2078291600664682496">"Bevægelse for udtryk"</string>
+ <string name="gesture_space_aware" msgid="2078291600664682496">"Glidende mellemrum"</string>
<string name="gesture_space_aware_summary" msgid="4371385818348528538">"Tilføj mellemrum ved at glide til mellemrumstasten"</string>
<string name="voice_input" msgid="3583258583521397548">"Knap til taleinput"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Der er ingen aktiverede stemmeinputmetoder. Kontrollér Indstillinger for sprog og input."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurer inputmetoder"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Inputsprog"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Sprog"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Hjælp og feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Inputsprog"</string>
+ <string name="select_language" msgid="5709487854987078367">"Sprog"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Tryk igen for at gemme"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klik her for at gemme"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Ordbog er tilgængelig"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannien)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spansk (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Aktivér"</string>
<string name="not_now" msgid="6172462888202790482">"Ikke nu"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Denne inputstil findes allerede: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Forsinket langt tastetryk"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrationstid ved tastetryk"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Lydstyrke ved tastetryk"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Tilpas animation for tastgennemsyn"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Læs ekstern ordbogsfil"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Der er ingen ordbogsfiler i mappen Downloads"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vælg den ordbog, som du vil installere"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vil du virkelig installere denne fil for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Der opstod en fejl"</string>
<string name="button_default" msgid="3988017840431881491">"Standard"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Velkommen til <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"med glidende indtastning"</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index 47b6184aa..b6b21af03 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Bei Tastendruck vibrieren"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Ton bei Tastendruck"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bei Tastendruck"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Eingabeeinstellungen"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Darstellung"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Mehrsprachige Optionen"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Bewegungseingabe-Einst."</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Einstellungen"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Darstellung &amp; Layouts"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Mehrsprachige Optionen"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Bewegungseingabe"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Textkorrektur"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Anzeigen, wenn mehrere Eingabesprachen aktiviert sind"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Ziehbewegung anzeigen"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Ziehen mit gedrückter Symboltaste oder Shift visuell darstellen"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tasten-Pop-up"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Keine Verzögerung"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Taste für Spracheingabe"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Keine Spracheingabemethoden aktiviert. Rufen Sie die Einstellungen für \"Sprache &amp; Eingabe\" auf."</string>
<string name="configure_input_method" msgid="373356270290742459">"Eingabemethoden konfigurieren"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Eingabesprachen"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Sprachen"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Hilfe &amp; Feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Eingabesprachen"</string>
+ <string name="select_language" msgid="5709487854987078367">"Sprachen"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Zum Speichern erneut berühren"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tippen Sie hier zum Speichern."</string>
<string name="has_dictionary" msgid="6071847973466625007">"Wörterbuch verfügbar"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tastaturdesign"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Englisch (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Englisch (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spanisch (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Aktivieren"</string>
<string name="not_now" msgid="6172462888202790482">"Später"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Der gleiche Eingabestil ist bereits vorhanden: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Verzögerung für langes Drücken"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrationsdauer bei Tastendruck"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tonlautstärke bei Tastendruck"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Vorschau-Animation anpassen"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Externe Wörterbuchdatei lesen"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Keine Wörterbuchdateien im Ordner \"Downloads\""</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Wörterbuchdatei zum Installieren auswählen"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Möchten Sie diese Datei für <xliff:g id="LANGUAGE_NAME">%s</xliff:g> installieren?"</string>
- <string name="error" msgid="8940763624668513648">"Es ist ein Fehler aufgetreten"</string>
<string name="button_default" msgid="3988017840431881491">"Standard"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Willkommen bei <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"mit Bewegungseingabe"</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index fc3983bed..4bebe3ec2 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Δόνηση κατά το πάτημα πλήκτρων"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Ήχος κατά το πάτημα πλήκτρων"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Εμφάνιση με το πάτημα πλήκτρου"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Προτιμήσεις εισαγωγής"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Εμφάνιση"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Πολυγλωσσικές επιλογές"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Προτιμήσεις πληκτρολόγησης χειρονομιών"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Προτιμήσεις"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Εμφάνιση και διάταξη"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Επιλογές για πολλές γλώσσες"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Πληκτρολόγηση με κίνηση"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Διόρθωση κειμένου"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Εμφάνιση κατά την ενεργοποίηση πολλών γλωσσών εισόδου"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Εμφάνιση δείκτη ολίσθησης"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Εμφ.ένδειξης κατά την ολίσθηση από το Shift ή τα πλήκτρα συμβόλων"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Χρόνος εξαφ. αναδ. παραθ."</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Χωρίς καθυστέρ."</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Προεπιλογή"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Κλειδί φωνητικής εξόδου"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Δεν έχουν ενεργοποιηθεί μέθοδοι φωνητικής εισαγωγής. Ελέγξτε τις Ρυθμίσεις Γλώσσας και εισαγωγής."</string>
<string name="configure_input_method" msgid="373356270290742459">"Διαμόρφωση μεθόδων εισαγωγής"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Γλώσσες εισόδου"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Γλώσσες"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Βοήθεια και σχόλια"</string>
- <string name="select_language" msgid="3693815588777926848">"Γλώσσες εισόδου"</string>
+ <string name="select_language" msgid="5709487854987078367">"Γλώσσες"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Αγγίξτε ξανά για αποθήκευση"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Αγγίξτε εδώ για αποθήκευση"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Λεξικό διαθέσιμο"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Θέμα πληκτρολογίου"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Αγγλικά (Η.Β.)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Αγγλικά (Η.Π.Α)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Ισπανικά (ΗΠΑ)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Ενεργοποίηση"</string>
<string name="not_now" msgid="6172462888202790482">"Όχι τώρα"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Το ίδιο στυλ εισόδου υπάρχει ήδη: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Καθυστέρηση παρατεταμένου πατήματος πλήκτρου"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Διάρκεια δόνησης πατήμ. πλήκτ."</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Ένταση ήχου πατήματος πλήκτρου"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Προσαρμ. κιν. εικόνα προεπ.κλειδιού"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ανάγνωση εξωτερικού αρχείου λεξικού"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Δεν υπάρχουν αρχεία λεξικού στο φάκελο \"Λήψεις\""</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Επιλογή αρχείου λεξικού για εγκατάσταση"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Εγκατάσταση αυτού του αρχείου για τα <xliff:g id="LANGUAGE_NAME">%s</xliff:g>;"</string>
- <string name="error" msgid="8940763624668513648">"Παρουσιάστηκε σφάλμα."</string>
<string name="button_default" msgid="3988017840431881491">"Προεπιλογή"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Καλώς ορίσατε στο <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"με Πληκτρολόγηση με κίνηση"</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index c1c93995f..14ddafcee 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -26,18 +26,19 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Input preferences"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Appearance"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Multilingual options"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Gesture typing preferences"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+ <string name="settings_screen_accounts" msgid="7570397912370223287">"Accounts &amp; privacy"</string>
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Appearance &amp; layouts"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Multilingual options"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Show when multiple input languages are enabled"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Show slide indicator"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Display visual cue while sliding from Shift or Symbol keys"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Key pop-up dismiss delay"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"No delay"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -76,13 +77,20 @@
<string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language &amp; input settings."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Input languages"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Help &amp; feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Input languages"</string>
+ <string name="select_language" msgid="5709487854987078367">"Languages"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Keyboard theme"</string>
+ <string name="switch_accounts" msgid="3321216593719006162">"Change accounts"</string>
+ <string name="no_accounts_selected" msgid="2073821619103904330">"No accounts selected"</string>
+ <string name="account_selected" msgid="2846876462199625974">"Currently using <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+ <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+ <string name="account_select_cancel" msgid="5181012062618504340">"Cancel"</string>
+ <string name="account_select_sign_out" msgid="3299651159390187933">"Sign out"</string>
+ <string name="account_select_title" msgid="6279711684772922649">"Select an account to use"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"English (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"English (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
@@ -114,15 +122,8 @@
<string name="enable" msgid="5031294444630523247">"Enable"</string>
<string name="not_now" msgid="6172462888202790482">"Not now"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Keypress vibration duration"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Keypress sound volume"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Customise key preview animation"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Read external dictionary file"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No dictionary files in the Downloads folder"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Select a dictionary file to install"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Really install this file for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"There was an error"</string>
<string name="button_default" msgid="3988017840431881491">"Default"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Welcome to <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"with Gesture Typing"</string>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index c1c93995f..14ddafcee 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -26,18 +26,19 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Input preferences"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Appearance"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Multilingual options"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Gesture typing preferences"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+ <string name="settings_screen_accounts" msgid="7570397912370223287">"Accounts &amp; privacy"</string>
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Appearance &amp; layouts"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Multilingual options"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Show when multiple input languages are enabled"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Show slide indicator"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Display visual cue while sliding from Shift or Symbol keys"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Key pop-up dismiss delay"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"No delay"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -76,13 +77,20 @@
<string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language &amp; input settings."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Input languages"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Help &amp; feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Input languages"</string>
+ <string name="select_language" msgid="5709487854987078367">"Languages"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Keyboard theme"</string>
+ <string name="switch_accounts" msgid="3321216593719006162">"Change accounts"</string>
+ <string name="no_accounts_selected" msgid="2073821619103904330">"No accounts selected"</string>
+ <string name="account_selected" msgid="2846876462199625974">"Currently using <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+ <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+ <string name="account_select_cancel" msgid="5181012062618504340">"Cancel"</string>
+ <string name="account_select_sign_out" msgid="3299651159390187933">"Sign out"</string>
+ <string name="account_select_title" msgid="6279711684772922649">"Select an account to use"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"English (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"English (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
@@ -114,15 +122,8 @@
<string name="enable" msgid="5031294444630523247">"Enable"</string>
<string name="not_now" msgid="6172462888202790482">"Not now"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Keypress vibration duration"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Keypress sound volume"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Customise key preview animation"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Read external dictionary file"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No dictionary files in the Downloads folder"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Select a dictionary file to install"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Really install this file for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"There was an error"</string>
<string name="button_default" msgid="3988017840431881491">"Default"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Welcome to <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"with Gesture Typing"</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index 7dc027586..a7fb3aef1 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar teclas"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sonar al pulsar las teclas"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Aviso emergente al pulsar tecla"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferencias de entrada"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Apariencia"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opciones multilingües"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. escritura gestual"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Apariencia y diseños"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opciones multilingües"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura gestual"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Corrección ortográfica"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar cuando se habiliten varios idiomas de entrada"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador p. deslizar"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar indic. visual al deslizar de teclas símbolo o mayúscula"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Demora para ignorar tecla emergente"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sin demora"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminada"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tecla de entrada por voz"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"No hay métodos de entrada de voz habilitados. Comprueba la configuración de Teclado e idioma."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y comentarios"</string>
- <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string>
+ <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Vuelve a tocar para guardar."</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tocar aquí para guardar."</string>
<string name="has_dictionary" msgid="6071847973466625007">"Diccionario disponible"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema del teclado"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Inglés (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglés (EE.UU.)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Español (EE.UU.)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Activar"</string>
<string name="not_now" msgid="6172462888202790482">"Ahora no"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ya existe el estilo de entrada <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Demora de presión prolongada"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durac. vibrac. al presionar"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Vol. sonido al presionar tecla"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Personaliz. anim. vista prev. clave"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Leer archivo de diccionario externo"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No hay archivos de diccionario en la carpeta de descargas."</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Seleccionar archivo de diccionario para instalar"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"¿Realmente quieres instalar este archivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Se produjo un error."</string>
<string name="button_default" msgid="3988017840431881491">"Predeterminado"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Te damos la bienvenida a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"con escritura gestual"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index affaae469..56079f100 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar tecla"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sonar al pulsar tecla"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ampliar al pulsar tecla"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferencias de entrada"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspecto"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opciones multilingües"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Opciones escritura gestual"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspecto y diseño"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opciones multilingües"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura gestual"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Corrección ortográfica"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar cuando haya varios idiomas de introducción habilitados"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador deslizante"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar pista visual al deslizar desde la tecla Mayús o la tecla de símbolos"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retraso para ampliar tecla"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sin retraso"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminado"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Sin métodos de introducción de voz habilitados. Comprueba ajustes de Idioma e introducción de texto."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idiomas"</string>
- <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y opiniones"</string>
- <string name="select_language" msgid="3693815588777926848">"Idiomas de introducción"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+ <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y sugerencias"</string>
+ <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Toca otra vez para guardar"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí para guardar"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Hay un diccionario disponible"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema de teclado"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"inglés (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"inglés (EE.UU.)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Español (EE.UU.)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Habilitar"</string>
<string name="not_now" msgid="6172462888202790482">"Ahora no"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ya existe el estilo de entrada <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retraso de pulsación prolongada"</string>
- <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración vibración al pulsar"</string>
+ <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración de vibración al pulsar"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volumen sonido al pulsar tecla"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Personalizar animación vista previa clave"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Leer archivo de diccionario externo"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No hay archivos de diccionario en la carpeta de descargas."</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecciona un archivo de diccionario para instalar"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"¿Seguro que quieres instalar este archivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Se ha producido un error"</string>
<string name="button_default" msgid="3988017840431881491">"Predeterminado"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Te damos la bienvenida a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"con escritura gestual"</string>
@@ -184,7 +193,7 @@
<string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Acceso directo:"</string>
<string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Idioma:"</string>
<string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"Escribe una palabra"</string>
- <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Acceso directo opcional"</string>
+ <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Introducir"</string>
<string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Editar palabra"</string>
<string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Editar"</string>
<string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Eliminar"</string>
diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml
index 7e771bc69..bb9c78ffd 100644
--- a/java/res/values-et-rEE/strings.xml
+++ b/java/res/values-et-rEE/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreeri klahvivajutusel"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Heli klahvivajutusel"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Klahvivajutusel kuva hüpik"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Sisestuseelistused"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Ilme"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Mitme keele valikud"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Viipesisestuseelistused"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Eelistused"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Välimus ja paigutused"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Mitmekeelsed valikud"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Joonistusega sisestamine"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Tekstiparandus"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Kuva, kui lubatud on mitu sisendkeelt"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Kuva lohistamisnäidik"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Tõstu- või sümboliklahvidelt lohistades anna visuaalselt märku"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Hüpiku loobumisviivitus"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Viivituseta"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Vaikeseade"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Häälesisendi klahv"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ühtegi häälsisendmeetodit pole lubatud. Kontrollige keele- ja sisendiseadeid."</string>
<string name="configure_input_method" msgid="373356270290742459">"Sisestusmeetodite seadistamine"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Sisestuskeeled"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Keeled"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Abi ja tagasiside"</string>
- <string name="select_language" msgid="3693815588777926848">"Sisestuskeeled"</string>
+ <string name="select_language" msgid="5709487854987078367">"Keeled"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Salvestamiseks puudutage uuesti"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Salvestamiseks puudutage siin"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Sõnastik saadaval"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatuuri teema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Inglise (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglise (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"hispaania (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Luba"</string>
<string name="not_now" msgid="6172462888202790482">"Mitte kohe"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Sama sisendstiil on juba olemas: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Pika klahvivajutuse viide"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Klahvivajutuse vibreerimise kestus"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Klahvivajutuse helitugevus"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Klahvi eelvaate anim. kohandamine"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Välise sõnastikufaili lugemine"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Kaustas Allalaadimised pole ühtegi sõnastikufaili"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Installitava sõnastikufaili valimine"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Kas soovite tõesti installida faili <xliff:g id="LANGUAGE_NAME">%s</xliff:g> keele jaoks?"</string>
- <string name="error" msgid="8940763624668513648">"Ilmnes viga"</string>
<string name="button_default" msgid="3988017840431881491">"Vaikeväärtus"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Tere tulemast rakendusse <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"joonistusega sisestamisega"</string>
diff --git a/java/res/values-eu-rES/strings.xml b/java/res/values-eu-rES/strings.xml
index ce5036b35..9b2e5f56c 100644
--- a/java/res/values-eu-rES/strings.xml
+++ b/java/res/values-eu-rES/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Egin dar-dar sakatzean"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Egin soinua tekla sakatzean"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Handitu teklak, sakatzean"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Idazketa-hobespenak"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Itxura"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Aukera eleanitzak"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Keinu-idazketaren hobespenak"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Hobespenak"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Itxura eta diseinuak"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Aukera eleanitzak"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Keinu bidezko idazketa"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Testu-zuzenketa"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Erakutsi hainbat sarrera-hizkuntza gaituta daudenean"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Erakutsi lerratze-adierazlea"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Bistaratu ikusizko seinalea Maius edo Ikur tekletatik lerratzean"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Desagertzeko atzerapena"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Atzerapenik gabe"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Lehenetsia"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Ahots bidezko idazketaren tekla"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ez da ahots bidezko idazketa-metodorik gaitu. Egiaztatu Hizkuntza eta idazketa ataleko ezarpenak."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfiguratu idazketa-metodoak"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idazketa-hizkuntzak"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Hizkuntzak"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Laguntza eta iritziak"</string>
- <string name="select_language" msgid="3693815588777926848">"Idazketa-hizkuntzak"</string>
+ <string name="select_language" msgid="5709487854987078367">"Hizkuntzak"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Gordetzeko, ukitu berriro"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Gordetzeko, ukitu hau"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Hiztegia erabilgarri"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Teklatuaren gaia"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Ingelesa (Erresuma Batua)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Ingelesa (AEB)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Gaztelania (AEB)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Gaitu"</string>
<string name="not_now" msgid="6172462888202790482">"Orain ez"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Idazketa-estilo hori badago lehendik ere: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tekla luze sakatzearen atzerapena"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tekla sakatzearen dardararen iraupena"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tekla sakatzearen bolumena"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Pertsonalizatu tekla aurreikusteko animazioa"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Irakurri kanpoko hiztegi-fitxategia"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Ez dago hiztegi-fitxategirik Deskargak karpetan"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Hautatu hiztegi-fitxategi bat instalatzeko"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Fitxategi hau <xliff:g id="LANGUAGE_NAME">%s</xliff:g> hizkuntzarako instalatu nahi duzu?"</string>
- <string name="error" msgid="8940763624668513648">"Errore bat gertatu da"</string>
<string name="button_default" msgid="3988017840431881491">"Lehenetsia"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Ongi etorri <xliff:g id="APPLICATION_NAME">%s</xliff:g> aplikaziora"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Keinu bidezko idazketarekin"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 73aaacd55..70f481a62 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"لرزش با فشار کلید"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"صدا با فشار کلید"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"بازشدن با فشار کلید"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"اولویت‌های ورودی"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"ظاهر"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"انتخاب‌های چندزبانه"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"موارد ترجیحی تایپ با اشاره"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"تنظیمات ترجیحی"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"ظاهر و طرح‌بندی‌ها"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"گزینه‌های چندزبانی"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"ورودی اشاره‌ای"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"اصلاح نوشتار"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"وقتی چند زبان ورودی فعال است نشان داده شود"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"نمایش نشانگر لغزاندن"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏نمایش نشان بصری، هنگام لغزاندن کلیدهای Shift یا نماد"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخیر در رد کردن کلید نمایشی"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بدون تأخیر"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"پیش‌فرض"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"کلید ورودی صدا"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"هیچ روش ورودی صوتی فعال نشده است. تنظیمات زبان و ورودی را بررسی کنید."</string>
<string name="configure_input_method" msgid="373356270290742459">"پیکربندی روش‌های ورودی"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"زبان‌های ورودی"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"زبان‌ها"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"راهنما و بازخورد"</string>
- <string name="select_language" msgid="3693815588777926848">"زبان‌های ورودی"</string>
+ <string name="select_language" msgid="5709487854987078367">"زبان‌ها"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"برای ذخیره دوباره لمس کنید"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"برای ذخیره اینجا را لمس کنید"</string>
<string name="has_dictionary" msgid="6071847973466625007">"دیکشنری موجود است"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"طرح زمینه صفحه‌کلید"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"انگلیسی (بریتانیا)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"انگلیسی (امریکا)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"اسپانیایی (آمریکا)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"فعال کردن"</string>
<string name="not_now" msgid="6172462888202790482">"الآن نه"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"سبک ورودی مشابهی در حال حاضر وجود دارد: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخیر فشار طولانی کلید"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"طول مدت لرزش در اثر فشردن کلید"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"میزان صدای فشردن کلید"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"سفارشی کردن پویانمایی پیش‌دید اصلی"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"خواندن فایل فرهنگ لغت خارجی"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"فایل فرهنگ لغتی در پوشه دانلودها وجود ندارد"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"یک فایل فرهنگ لغت برای نصب انتخاب کنید"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"این فایل واقعاً برای <xliff:g id="LANGUAGE_NAME">%s</xliff:g> نصب شود؟"</string>
- <string name="error" msgid="8940763624668513648">"خطایی روی داد"</string>
<string name="button_default" msgid="3988017840431881491">"پیش‌فرض"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"به <xliff:g id="APPLICATION_NAME">%s</xliff:g> خوش آمدید"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"با ورودی اشاره‌ای"</string>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 447f7a8df..da7014647 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Käytä värinää näppäimiä painettaessa"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Toista ääni näppäimiä painettaessa"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ponnahdusikkuna painalluksella"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Syöttöasetukset"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Ulkonäkö"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Kieliasetukset"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Piirtokirjoitusasetukset"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Asetukset"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Ulkoasu ja asettelut"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Monikielisyysasetukset"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Piirtokirjoitus"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Tekstin korjaus"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"Lisäasetukset"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Näytä, kun käytössä on useita syöttökieliä"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Näytä liu\'utuksen tilaosoitin"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Näytä visuaalinen vihje Vaihto- tai Symbol-näppäim. liu\'uttam."</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Näppäimen hylkäysviive"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Ei viivettä"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Oletus"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"Äänisyöteavain"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Äänen syöttötapoja ei ole otettu käyttöön. Tarkista Kieli ja syöttötapa -asetukset."</string>
<string name="configure_input_method" msgid="373356270290742459">"Määritä syöttötavat"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Syöttökielet"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Kielet"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Ohje ja palaute"</string>
- <string name="select_language" msgid="3693815588777926848">"Syöttökielet"</string>
+ <string name="select_language" msgid="5709487854987078367">"Kielet"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Tallenna koskettamalla uudelleen"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tallenna koskettamalla tätä"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Sanakirja saatavilla"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Näppäimistöteema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"englanti (Iso-Britannia)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"englanti (Yhdysvallat)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"espanja (Yhdysvallat)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"Ota käyttöön"</string>
<string name="not_now" msgid="6172462888202790482">"Ei nyt"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Syöttötyyli on jo olemassa: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Pitkän painalluksen viive"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Painalluksen värinän kesto"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Näppäinpainalluksen äänenvoim."</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lue ulkoista sanakirjatiedostoa"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Lataukset-kansiossa ei ole sanakirjatiedostoja"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Valitse asennettava sanakirjatiedosto"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Haluatko asentaa tämän tiedoston kielelle <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Tapahtui virhe"</string>
<string name="button_default" msgid="3988017840431881491">"Oletusarvot"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Tervetuloa käyttämään sovellusta <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ja piirtokirjoitus"</string>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index 1b0f97b24..2773c3b19 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Agrandir les caractères"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Préférences d\'entrée"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Apparence"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Options multilingues"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Préfér. entrée gestuelle"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Préférences"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Apparence et dispositions"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Options multilingues"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Entrée gestuelle"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Correction du texte"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Afficher lorsque plusieurs langues de saisie sont activées"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Aff. indicateur saisie gestuelle"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Aff. un repère visuel si l\'utilisateur appuie sur Maj ou Symboles"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Masquer touche agrandie"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Aucun délai"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Par défaut"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Aucun mode d\'entrée vocale n\'a été activé. Vérifiez les paramètres de langues et d\'entrée de texte."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurer les modes de saisie"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Langues"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Aide et commentaires"</string>
- <string name="select_language" msgid="3693815588777926848">"Langues de saisie"</string>
+ <string name="select_language" msgid="5709487854987078367">"Langues"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Appuyer de nouveau pour enregistrer"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touchez ici pour enregistrer le mot dans le dictionnaire"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Thème du clavier"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Anglais (britannique)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Espagnol (États-Unis)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Activer"</string>
<string name="not_now" msgid="6172462888202790482">"Pas maintenant"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Le style de saisie suivant existe déjà : <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Délai appui prolongé sur touche"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durée vibration press. touche"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume pression de touche"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Personn. animation clé de l\'aperçu"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lire un fichier de dictionnaire externe"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Aucun fichier de dictionnaire dans le dossier \"Téléchargements\""</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Sélectionner un fichier de dictionnaire à installer"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Installer ce fichier pour la langue « <xliff:g id="LANGUAGE_NAME">%s</xliff:g> »?"</string>
- <string name="error" msgid="8940763624668513648">"Une erreur s\'est produite"</string>
<string name="button_default" msgid="3988017840431881491">"Par défaut"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Bienvenue dans <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"avec la saisie gestuelle"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index e41f08dd9..fd945fbed 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Agrandir les caractères"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Préférences de saisie"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Apparence"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Options multilingues"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Préf. saisie gestuelle"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Préférences"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Apparence et dispositions"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Options multilingues"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Saisie gestuelle"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Correction du texte"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Afficher lorsque plusieurs langues de saisie sont activées"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Aff. indicateur saisie gest."</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Aff. un repère visuel si l\'utilisateur appuie sur Maj ou Symboles"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Masquer touche agrandie"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sans délai"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Par défaut"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Aucun mode de saisie vocale activé. Vérifiez les paramètres de langue et de saisie."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurer les modes de saisie"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Langues"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Aide et commentaires"</string>
- <string name="select_language" msgid="3693815588777926848">"Langues de saisie"</string>
+ <string name="select_language" msgid="5709487854987078367">"Langues"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Appuyer de nouveau pour enregistrer"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Appuyez ici pour enregistrer."</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Thème du clavier"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Anglais (Royaume-Uni)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Espagnol (États-Unis)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Activer"</string>
<string name="not_now" msgid="6172462888202790482">"Pas maintenant"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Le style de saisie suivant existe déjà : <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Délai appui prolongé sur touche"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durée vibration press. touche"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume son pression de touche"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Personnaliser animation aperçu clé"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lire un fichier de dictionnaire externe"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Aucun fichier de dictionnaire dans le dossier \"Téléchargements\""</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Sélectionner un fichier de dictionnaire à installer"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Installer ce fichier pour la langue \"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>\" ?"</string>
- <string name="error" msgid="8940763624668513648">"Une erreur s\'est produite"</string>
<string name="button_default" msgid="3988017840431881491">"Par défaut"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Bienvenue dans <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"avec la saisie gestuelle"</string>
diff --git a/java/res/values-gl-rES/strings-emoji-descriptions.xml b/java/res/values-gl-rES/strings-emoji-descriptions.xml
index ec179780f..cdb67fa45 100644
--- a/java/res/values-gl-rES/strings-emoji-descriptions.xml
+++ b/java/res/values-gl-rES/strings-emoji-descriptions.xml
@@ -804,7 +804,7 @@
<string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automóbil"</string>
<string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automóbil próximo"</string>
<string name="spoken_emoji_1F699" msgid="630317052666590607">"Caravana"</string>
- <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de reparto"</string>
+ <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de entrega"</string>
<string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camión articulado"</string>
<string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
<string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorraíl"</string>
diff --git a/java/res/values-gl-rES/strings.xml b/java/res/values-gl-rES/strings.xml
index 9ef23e8b9..fc8773a0b 100644
--- a/java/res/values-gl-rES/strings.xml
+++ b/java/res/values-gl-rES/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar as teclas"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Son ao premer as teclas"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ventás emerxentes ao premer as teclas"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferencias de entrada"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparencia"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opcións multilingües"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Preferencias de escritura de xestos"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aparencia e deseños"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opcións multilingües"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura mediante xestos"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Corrección de texto"</string>
<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">"Activar teclado dividido"</string>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostra cando hai varios idiomas de entrada activados"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador movemento"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Indicación visual ao pasar o dedo nas teclas Maiús ou de símbolos"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retraso ao ampliar tecla"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sen retraso"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminado"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Non hai ningún método de entrada de voz activado. Comproba a configuración de Idioma e entrada de texto."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
- <string name="help_and_feedback" msgid="5328219371839879161">"Axuda e opinións"</string>
- <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+ <string name="help_and_feedback" msgid="5328219371839879161">"Axuda e suxerencias"</string>
+ <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Toca de novo para gardar"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí para gardar"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dicionario dispoñible"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Inglés (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglés (EUA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Español (EUA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Activar"</string>
<string name="not_now" msgid="6172462888202790482">"Agora non"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Xa existe o mesmo estilo de entrada: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retraso de pulsación prolongada"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración vibración ao premer teclas"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume do son ao premer teclas"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Person. animación vista prev. clave"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler ficheiro de dicionario externo"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Non hai ningún ficheiro de dicionario no cartafol de descargas"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecciona un ficheiro de dicionario para instalar"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Realmente queres instalar este ficheiro para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Produciuse un erro"</string>
<string name="button_default" msgid="3988017840431881491">"Predeterminado"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Benvido a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"con escritura xestual"</string>
diff --git a/java/res/values-hi/strings-action-keys.xml b/java/res/values-hi/strings-action-keys.xml
index 7237c24bb..8768ee7da 100644
--- a/java/res/values-hi/strings-action-keys.xml
+++ b/java/res/values-hi/strings-action-keys.xml
@@ -21,7 +21,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="label_go_key" msgid="4033615332628671065">"जाएं"</string>
- <string name="label_next_key" msgid="5586407279258592635">"अगला"</string>
+ <string name="label_next_key" msgid="5586407279258592635">"आगे"</string>
<string name="label_previous_key" msgid="1421141755779895275">"पिछला"</string>
<string name="label_done_key" msgid="7564866296502630852">"पूर्ण"</string>
<string name="label_send_key" msgid="482252074224462163">"भेजें"</string>
diff --git a/java/res/values-hi/strings-letter-descriptions.xml b/java/res/values-hi/strings-letter-descriptions.xml
index ecf589ab7..1e817fd98 100644
--- a/java/res/values-hi/strings-letter-descriptions.xml
+++ b/java/res/values-hi/strings-letter-descriptions.xml
@@ -200,7 +200,7 @@
<string name="spoken_symbol_2105" msgid="7289404939366976829">"द्वारा"</string>
<string name="spoken_symbol_2192" msgid="827804523596125414">"दायां तीर"</string>
<string name="spoken_symbol_2193" msgid="2659541693445985717">"नीचे तीर"</string>
- <string name="spoken_symbol_2205" msgid="4457188084269117343">"रिक्त सेट"</string>
+ <string name="spoken_symbol_2205" msgid="4457188084269117343">"खाली सेट"</string>
<string name="spoken_symbol_2206" msgid="4856786565708380687">"वृद्धि"</string>
<string name="spoken_symbol_2264" msgid="5092061257745123554">"इससे कम या इसके बराबर"</string>
<string name="spoken_symbol_2265" msgid="1907966479878036357">"इससे अधिक या इसके बराबर"</string>
diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml
index aba2592b8..6a55f292e 100644
--- a/java/res/values-hi/strings-talkback-descriptions.xml
+++ b/java/res/values-hi/strings-talkback-descriptions.xml
@@ -21,8 +21,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_use_headphones" msgid="4313642710742229868">"जोर से बोली जाने वाली पासवर्ड कुंजियां सुनने के लिए हैडसेट प्‍लग करें."</string>
- <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान पाठ %s है"</string>
- <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई पाठ नहीं डाला गया"</string>
+ <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान लेख %s है"</string>
+ <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई लेख नहीं डाला गया"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> को सुधार कर <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> करता है"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वत: सुधार करता है"</string>
<string name="spoken_description_unknown" msgid="5139930082759824442">"अज्ञात वर्ण"</string>
@@ -44,7 +44,7 @@
<string name="spoken_description_search" msgid="5099937658231911288">"खोजें"</string>
<string name="spoken_description_dot" msgid="5644176501632325560">"डॉट"</string>
<string name="spoken_description_language_switch" msgid="6818666779313544553">"भाषा स्विच करें"</string>
- <string name="spoken_description_action_next" msgid="431761808119616962">"अगला"</string>
+ <string name="spoken_description_action_next" msgid="431761808119616962">"आगे"</string>
<string name="spoken_description_action_previous" msgid="2919072174697865110">"पिछला"</string>
<string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"शिफ़्ट सक्षम किया गया"</string>
<string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"कैप्स लॉक सक्षम किया गया"</string>
@@ -61,7 +61,7 @@
<string name="keyboard_mode_im" msgid="3812086215529493501">"संदेश सेवा"</string>
<string name="keyboard_mode_number" msgid="5395042245837996809">"संख्या"</string>
<string name="keyboard_mode_phone" msgid="2486230278064523665">"फ़ोन"</string>
- <string name="keyboard_mode_text" msgid="9138789594969187494">"पाठ"</string>
+ <string name="keyboard_mode_text" msgid="9138789594969187494">"लेख"</string>
<string name="keyboard_mode_time" msgid="8558297845514402675">"समय"</string>
<string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
<string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"हाल ही के"</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index ccd195f09..3453b44c9 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"कुंजी दबाने पर कंपन करता है"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"कुंजी दबाने पर आवाज"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"कुंजी दबाने पर पॉपअप दिखाएं"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"इनपुट प्राथमिकताएं"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"प्रकटन"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषी विकल्प"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"हावभाव लेखन वरीयताएं"</string>
- <string name="settings_screen_correction" msgid="1616818407747682955">"पाठ सुधार"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राथमिकताएं"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"प्रकटन और लेआउट"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"बहुभाषीय विकल्प"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"हावभाव लेखन"</string>
+ <string name="settings_screen_correction" msgid="1616818407747682955">"लेख सुधार"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"एकाधिक इनपुट भाषाएं सक्षम होने पर दिखाएं"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"स्लाइड संकेतक दिखाएं"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift या Symbol कुंजियो से स्लाइड करते समय विज़ुअल क्यू दिखाएं"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"कुंजी पॉपअप खारिज़ विलंब"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"कोई विलंब नहीं"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"सामान्य"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"ध्‍वनि‍ इनपुट कुंजी"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"कोई ध्वनि इनपुट पद्धति सक्षम नहीं है. भाषा और इनपुट सेटिंग जांचें."</string>
<string name="configure_input_method" msgid="373356270290742459">"इनपुट पद्धति कॉन्‍फ़िगर करें"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषा"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"भाषाएं"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"सहायता और फ़ीडबैक"</string>
- <string name="select_language" msgid="3693815588777926848">"इनपुट भाषाएं"</string>
+ <string name="select_language" msgid="5709487854987078367">"भाषाएं"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"सहेजने के लिए पुन: स्‍पर्श करें"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"सहेजने के लिए यहां स्पर्श करें"</string>
<string name="has_dictionary" msgid="6071847973466625007">"शब्‍दकोश उपलब्‍ध है"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"कीबोर्ड थीम"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"अंग्रेज़ी (यूके)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"अंग्रेज़ी (यूएस)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"स्पेनिश (यूएस)"</string>
@@ -107,22 +123,15 @@
<string name="add_style" msgid="6163126614514489951">"शैली जोड़ें"</string>
<string name="add" msgid="8299699805688017798">"जोड़ें"</string>
<string name="remove" msgid="4486081658752944606">"निकालें"</string>
- <string name="save" msgid="7646738597196767214">"सहेजें"</string>
+ <string name="save" msgid="7646738597196767214">"जोड़ें"</string>
<string name="subtype_locale" msgid="8576443440738143764">"भाषा"</string>
<string name="keyboard_layout_set" msgid="4309233698194565609">"लेआउट"</string>
<string name="custom_input_style_note_message" msgid="8826731320846363423">"कस्‍टम इनपुट शैली का उपयोग करने से पहले सक्षम करना होगा. उसे सक्षम करना चाहते हैं?"</string>
<string name="enable" msgid="5031294444630523247">"सक्षम करें"</string>
<string name="not_now" msgid="6172462888202790482">"अभी नहीं"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"ऐसी ही इनपुट शैली पहले से मौजूद है: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"कुंजी को देर तक दबाने का विलंब"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"कुंजी-स्पर्श कंपन अवधि"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"कुंजी-स्पर्श ध्वनि आवाज़"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"कुंजी पूर्वावलोकन एनिमेशन कस्टमाइज़ करें"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाहरी शब्दकोश फ़ाइल पढ़ें"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फ़ोल्डर में कोई शब्दकोश फ़ाइल नहीं है"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"इंस्टॉल करने के लिए कोई शब्दकोश फ़ाइल चुनें"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"क्या वाकई <xliff:g id="LANGUAGE_NAME">%s</xliff:g> के लिए यह फ़ाइल इंस्‍टॉल करें?"</string>
- <string name="error" msgid="8940763624668513648">"कोई त्रुटि हुई थी"</string>
<string name="button_default" msgid="3988017840431881491">"सामान्य"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> में आपका स्वागत है"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"हावभाव लेखन के साथ"</string>
@@ -130,11 +139,11 @@
<string name="setup_next_action" msgid="371821437915144603">"अगला चरण"</string>
<string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> सेट करना"</string>
<string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> को सक्षम करें"</string>
- <string name="setup_step1_instruction" msgid="2578631936624637241">"कृपया अपनी भाषा और अक्षर सेटिंग में \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को चेक करें. इससे वह आपके उपकरण पर चलने के लिए अधिकृत हो जाएगा."</string>
+ <string name="setup_step1_instruction" msgid="2578631936624637241">"कृपया अपनी भाषा और अक्षर सेटिंग में \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को चेक करें. इससे वह आपके डिवाइस पर चलने के लिए अधिकृत हो जाएगा."</string>
<string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> आपकी भाषा और अक्षर सेटिंग में पहले से सक्षम है, इसलिए यह चरण पूर्ण हो गया है. अगले चरण पर जाएं!"</string>
<string name="setup_step1_action" msgid="4366513534999901728">"सेटिंग में सक्षम करें"</string>
<string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> पर स्विच करें"</string>
- <string name="setup_step2_instruction" msgid="9141481964870023336">"इसके बाद, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को अपनी सक्रिय पाठ-इनपुट पद्धति के रूप में चुनें."</string>
+ <string name="setup_step2_instruction" msgid="9141481964870023336">"इसके बाद, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को अपनी सक्रिय लेख-इनपुट पद्धति के रूप में चुनें."</string>
<string name="setup_step2_action" msgid="1660330307159824337">"इनपुट पद्धतियां स्विच करें"</string>
<string name="setup_step3_title" msgid="3154757183631490281">"बधाई हो, आप बिल्कुल तैयार हैं!"</string>
<string name="setup_step3_instruction" msgid="8025981829605426000">"अब आप <xliff:g id="APPLICATION_NAME">%s</xliff:g> के साथ अपने सभी पसंदीदा ऐप्स में लिख सकते हैं."</string>
@@ -162,18 +171,18 @@
<string name="message_updating" msgid="4457761393932375219">"नई जानकारी देखा जा रहा हैं"</string>
<string name="message_loading" msgid="5638680861387748936">"लोड हो रहा है…"</string>
<string name="main_dict_description" msgid="3072821352793492143">"मुख्‍य डिक्‍शनरी"</string>
- <string name="cancel" msgid="6830980399865683324">"रद्द करें"</string>
+ <string name="cancel" msgid="6830980399865683324">"रहने दें"</string>
<string name="go_to_settings" msgid="3876892339342569259">"सेटिंग"</string>
<string name="install_dict" msgid="180852772562189365">"इंस्टॉल करें"</string>
- <string name="cancel_download_dict" msgid="7843340278507019303">"रद्द करें"</string>
+ <string name="cancel_download_dict" msgid="7843340278507019303">"रहने दें"</string>
<string name="delete_dict" msgid="756853268088330054">"हटाएं"</string>
- <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्‍दकोश उपलब्‍ध है.&lt;br/&gt; हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्‍दकोश &lt;b&gt;डाउनलोड करने&lt;/b&gt; की सुझाव देते हैं.&lt;br/&gt; &lt;br/&gt; 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास &lt;b&gt;असीमित डेटा योजना&lt;/b&gt; नहीं है, तो शुल्क लागू हो सकते हैं.&lt;br/&gt; यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए वाई-फ़ाई कनेक्‍शन ढूंढने की सुझाव देते हैं.&lt;br/&gt; &lt;br/&gt; युक्ति: आप अपने मोबाइल उपकरण के &lt;b&gt;सेटिंग&lt;/b&gt; मेनू में &lt;b&gt;भाषा और इनपुट&lt;/b&gt; पर जाकर शब्‍दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string>
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्‍दकोश उपलब्‍ध है.&lt;br/&gt; हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्‍दकोश &lt;b&gt;डाउनलोड करने&lt;/b&gt; की सुझाव देते हैं.&lt;br/&gt; &lt;br/&gt; 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास &lt;b&gt;असीमित डेटा योजना&lt;/b&gt; नहीं है, तो शुल्क लागू हो सकते हैं.&lt;br/&gt; यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए वाई-फ़ाई कनेक्‍शन ढूंढने की सुझाव देते हैं.&lt;br/&gt; &lt;br/&gt; युक्ति: आप अपने मोबाइल डिवाइस के &lt;b&gt;सेटिंग&lt;/b&gt; मेनू में &lt;b&gt;भाषा और इनपुट&lt;/b&gt; पर जाकर शब्‍दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string>
<string name="download_over_metered" msgid="1643065851159409546">"अभी डाउनलोड करें (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"वाई-फ़ाई से डाउनलोड करें"</string>
<string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए एक शब्‍दकोश उपलब्‍ध है"</string>
<string name="dict_available_notification_description" msgid="1075194169443163487">"समीक्षा करने और डाउनलोड करने के लिए दबाएं"</string>
<string name="toast_downloading_suggestions" msgid="6128155879830851739">"डाउनलोड प्रारंभ हो रहा है: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए सुझाव जल्दी ही उपलब्ध होंगे."</string>
- <string name="version_text" msgid="2715354215568469385">"संस्करण <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+ <string name="version_text" msgid="2715354215568469385">"वर्शन <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
<string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"जोड़ें"</string>
<string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"शब्दकोश में जोड़ें"</string>
<string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"वाक्यांश"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 4e9c1b6af..45a78abfd 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibracija pri pritisku na tipku"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri pritisku tipke"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Povećanja na pritisak tipke"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Postavke unosa"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Izgled"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Višejezične opcije"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Postavke pisanja kretnjama"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Postavke"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Prikaz i izgled"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Višejezične opcije"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanje kretnjama"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Ispravljanje teksta"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Prikaži kada je omogućen unos na više jezika"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Prikaži pokazivač klizanja"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Prikaži vizualni znak tijekom klizanja od tipke Shift ili tipki sa znakovima"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Odgoda prikaza tipki"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez odgode"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Zadano"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni unos"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nije omogućen nijedan način glasovnog unosa. Provjerite postavke jezika i unosa."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfiguriraj načine ulaza"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Jezici unosa"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Jezici"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Pomoć i povratne informacije"</string>
- <string name="select_language" msgid="3693815588777926848">"Jezici unosa"</string>
+ <string name="select_language" msgid="5709487854987078367">"Jezici"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Dodirnite ponovo za spremanje"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Dodirnite ovdje za spremanje"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Rječnik je dostupan"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Engleski (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engleski (SAD)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"španjolski (SAD)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Omogući"</string>
<string name="not_now" msgid="6172462888202790482">"Ne sada"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Već postoji isti stil unosa: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Odgoda dugog pritiska tipke"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trajanje vibracije pritiska"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Glasnoća pritiska tipke"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Prilagodi animaciju pregleda tipki"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Čitanje datoteke vanjskog rječnika"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"U mapi Preuzimanja nema datoteka rječnika"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Odabir datoteke rječnika za instaliranje"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Želite li zaista instalirati tu datoteku za <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Došlo je do pogreške"</string>
<string name="button_default" msgid="3988017840431881491">"Zadano"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Dobro došli u aplikaciju <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"s Pisanjem kretnjama"</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index 4d5aab2ee..5b082d4f5 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Rezgés gombnyomásra"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Hangjelzés gombnyomásra"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Nagyobb billentyű gombnyomásra"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Beviteli preferenciák"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Megjelenés"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Többnyelvű beállítások"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Kézmozdulatokkal gépelés"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Beállítások"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Megjelenés és elrendezés"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Többnyelvű beállítások"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Kézmozdulatokkal történő gépelés"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Szövegjavítás"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Megjelenítés, ha több beviteli nyelv engedélyezett"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Diajelző megjelenítése"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Vizuális jelzés Shift vagy Szimbólumok billentyűről csúsztatásnál"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Gombeltüntetés késése"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Nincs késés"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Alapbeállítás"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Hangbeviteli gomb"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nincs engedélyezett hangbeviteli módszer. Nézze meg a Nyelvi és beviteli beállításokat."</string>
<string name="configure_input_method" msgid="373356270290742459">"Beviteli módok beállítása"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Beviteli nyelvek"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Nyelvek"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Súgó és visszajelzés"</string>
- <string name="select_language" msgid="3693815588777926848">"Beviteli nyelvek"</string>
+ <string name="select_language" msgid="5709487854987078367">"Nyelvek"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Érintse meg újból a mentéshez"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"A mentéshez érintse meg itt"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Van elérhető szótár"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Billentyűzettéma"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"angol (brit)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angol (amerikai)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"spanyol (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Engedélyezés"</string>
<string name="not_now" msgid="6172462888202790482">"Most nem"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ugyanez a bemenetstílus már létezik: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Hosszú nyomás késleltetése"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Gombnyomás rezgési időtartama"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Gombnyomás hangereje"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Animáció-előnézet billentyűje"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Külső szótárfájl olvasása"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nincs szótárfájl a Letöltések mappában."</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Válasszon ki egy szótárfájlt a telepítéshez."</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Valóban telepíti ezt a fájlt <xliff:g id="LANGUAGE_NAME">%s</xliff:g> nyelvhez?"</string>
- <string name="error" msgid="8940763624668513648">"Hiba történt."</string>
<string name="button_default" msgid="3988017840431881491">"Alapértelmezett"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Üdvözli a(z) <xliff:g id="APPLICATION_NAME">%s</xliff:g>!"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"kézmozdulatokkal történő bevitellel"</string>
diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml
index 0445438ad..ac277bb8b 100644
--- a/java/res/values-hy-rAM/strings.xml
+++ b/java/res/values-hy-rAM/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Թրթռալ սեղմման ժամանակ"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Ձայնը սեղմման ժամանակ"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ելնող պատուհան՝ ստեղնի հպման դեպքում"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Ներածման նախընտրանքներ"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Արտաքին տեսք"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Լեզվի ընտրանքներ"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Ժեստերով ներածում"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Նախընտրանքներ"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Արտաքին տեսք և դասավորություն"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Բազմալեզու ընտրանքներ"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Ժեստերով մուտքագրում"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Տեքստի ուղղում"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"Հավելյալ"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"Թեմա"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Ցույց տալ, երբ մուտքագրման մի քանի լեզուներ են միացված"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Ցուցադրել սահքի ցուցիչը"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Ցուցադրել տեսողական հուշումը Shift-ի կամ նշանների ստեղներից սահեցման ընթացքում"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ելնող պատուհանի հեռացման հետաձգման ստեղն"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Առանց հետաձգման"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Նախնականը"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"Ձայնային մուտքագրման ստեղն"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ձայնային ներածման որևէ եղանակ միացված չէ։ Ստուգեք Լեզվի և ներածման կարգավորումները։"</string>
<string name="configure_input_method" msgid="373356270290742459">"Կարգավորել մուտքագրման մեթոդները"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Մուտքագրման լեզուներ"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Լեզուներ"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Օգնություն և հետադարձ կապ"</string>
- <string name="select_language" msgid="3693815588777926848">"Մուտքագրման լեզուներ"</string>
+ <string name="select_language" msgid="5709487854987078367">"Լեզուներ"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Պահպանելու համար կրկին հպեք"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Պահելու համար հպեք այստեղ"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Բառարանն առկա է"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Ստեղնաշարի թեման"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Անգլերեն (ՄԹ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Անգլերեն (ԱՄՆ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Իսպաներեն (ԱՄՆ)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"Միացնել"</string>
<string name="not_now" msgid="6172462888202790482">"Ոչ հիմա"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Մուտքագրման այսպիսի ոճ արդեն գոյություն ունի՝ <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ստեղնի երկար սեղմման ուշացում"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Սեղմման թրթռոցի տևողություն"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Սեղմման ձայնի բարձրությունը"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Կարդալ արտաքին բառարանի ֆայլը"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Ներբեռնումների թղթապանակում բառարանային ֆայլեր չկան"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Ընտրեք բառարանային ֆայլը տեղադրման համար"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Տեղադրե՞լ այս ֆայլը <xliff:g id="LANGUAGE_NAME">%s</xliff:g> լեզվի համար:"</string>
- <string name="error" msgid="8940763624668513648">"Տեղի է ունեցել սխալ"</string>
<string name="button_default" msgid="3988017840431881491">"Լռելյայնը"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Բարի գալուստ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Ժեստային մուտքագրմամբ"</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index f68e4545e..8a6d47e75 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar jika tombol ditekan"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Berbunyi jika tombol ditekan"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Muncul saat tombol ditekan"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferensi masukan"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Tampilan"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opsi multi bahasa"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Preferensi ketikan isyarat"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferensi"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Tampilan &amp; tata letak"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opsi multibahasa"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Ketikan Isyarat"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Koreksi teks"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Tampilkan saat beberapa bahasa masukan diaktifkan"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Tampilkan indikator geser"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Tampilkan isyarat visual saat menggeser dari tombol Shift/Simbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tundaan singkir munculan kunci"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Tanpa penundaan"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tombol masukan suara"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Tidak ada metode masukan suara yang diaktifkan. Periksa setelan Bahasan &amp; masukan."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan metode masukan"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Bahasa masukan"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Bantuan &amp; masukan"</string>
- <string name="select_language" msgid="3693815588777926848">"Bahasa masukan"</string>
+ <string name="select_language" msgid="5709487854987078367">"Bahasa"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Sentuh lagi untuk menyimpan"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Sentuh di sini untuk menyimpan"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Kamus yang tersedia"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema keyboard"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Inggris (Inggris)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inggris (AS)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spanyol (AS)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Aktifkan"</string>
<string name="not_now" msgid="6172462888202790482">"Nanti saja"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Sudah ada gaya masukan yang sama: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Penundaan tekan lama tombol"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durasi getar saat tekan tombol"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume suara saat tekan tombol"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Sesuaikan animasi pratinjau kunci"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Membaca file kamus eksternal"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Tidak ada file kamus di folder Unduhan"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pilih file kamus untuk dipasang"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Yakin ingin memasang file ini untuk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Terjadi kesalahan"</string>
<string name="button_default" msgid="3988017840431881491">"Default"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Selamat datang di <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"dengan Ketikan Isyarat"</string>
diff --git a/java/res/values-is-rIS/strings.xml b/java/res/values-is-rIS/strings.xml
index d2aaf1d46..a525f2bc0 100644
--- a/java/res/values-is-rIS/strings.xml
+++ b/java/res/values-is-rIS/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Titringur þegar ýtt er á lykla"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Hljóð þegar ýtt er á lykil"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Stækkaðir stafir við innslátt"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Inntaksvalkostir"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Útlit"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Tungumálavalkostir"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Still. bendingainnsláttar"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Kjörstillingar"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Útlit og skipulag"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Fjölmálavalkostir"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Bendingainnsláttur"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Textaleiðrétting"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Sýna þegar mörg innsláttartungumál eru virk"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Sýna rennivísi"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Sýna myndræna vísbendingu þegar rennt er af Shift eða táknalykli"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Hunsunartöf lyklaglugga"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Engin töf"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Sjálfgefið"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Raddinntakslykill"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Engar innsláttaraðferðir fyrir rödd virkar. Kannaðu stillingar tungumáls og innsláttar."</string>
<string name="configure_input_method" msgid="373356270290742459">"Stilla innsláttaraðferðir"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Innsláttartungumál"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Tungumál"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Hjálp og ábendingar"</string>
- <string name="select_language" msgid="3693815588777926848">"Innsláttartungumál"</string>
+ <string name="select_language" msgid="5709487854987078367">"Tungumál"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Snertu aftur til að vista"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Snertu hér til að vista"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Orðabók í boði"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Þema lyklaborðs"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Enskt (Bretland)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Enskt (Bandaríkin)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spænskt (US)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Kveikja"</string>
<string name="not_now" msgid="6172462888202790482">"Ekki núna"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Sama innsláttaraðferð er þegar fyrir hendi: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Töf áður en lykli er haldið inni"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Lengd lyklatitrings"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Styrkur lyklahljóða"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Sérsníða hreyfingu lykilforskoðunar"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lesa utanaðkomandi orðabókarskrá"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Engar orðabókarskrár í niðurhalsmöppunni"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Veldu orðabókarskrá til að setja upp"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Viltu setja upp þessa skrá fyrir <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Villa kom upp"</string>
<string name="button_default" msgid="3988017840431881491">"Sjálfgefið"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Velkomin(n) í <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"með bendingainnslætti"</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 8fc88c8ae..ff6cefc03 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrazione tasti"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Suono tasti"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Popup sui tasti"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferenze di immissione"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspetto"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opzioni multilingue"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref digitazione testuale"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferenze"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspetto e layout"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opzioni multilingue"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Digitazione gestuale"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Correzione testo"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostra quando sono attive più lingue di immissione"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostra indicatore scorrimento"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Visualizza indicatore durante scorrimento da Maiusc o Simbolo"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ritardo eliminaz. popup tasto"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Nessun ritardo"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predefinito"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tasto input vocale"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nessun metodo di immissione vocale abilitato. Controlla le impostazioni Lingua e input."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configura metodi di immissione"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Lingue comandi"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Lingue"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Guida e feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Lingue comandi"</string>
+ <string name="select_language" msgid="5709487854987078367">"Lingue"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Tocca di nuovo per salvare"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tocca qui per salvare"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dizionario disponibile"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema della tastiera"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Inglese (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglese (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spagnolo (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Attiva"</string>
<string name="not_now" msgid="6172462888202790482">"Non ora"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Esiste già uno stile di inuput uguale: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ritardo pressione lunga tasti"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durata vibraz. pressione tasto"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume audio a pressione tasto"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Personalizza animaz. anteprima tasti"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Leggi file dizionario esterno"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nessun file di dizionario nella cartella Download"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Seleziona un file di dizionario da installare"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vuoi davvero installare questo file per <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Si è verificato un errore"</string>
<string name="button_default" msgid="3988017840431881491">"Predefinito"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Benvenuto in <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"con la Digitazione gestuale"</string>
diff --git a/java/res/values-iw/strings-emoji-descriptions.xml b/java/res/values-iw/strings-emoji-descriptions.xml
index 975ca10a8..d8ef20f53 100644
--- a/java/res/values-iw/strings-emoji-descriptions.xml
+++ b/java/res/values-iw/strings-emoji-descriptions.xml
@@ -556,8 +556,8 @@
<string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"תיקיית קבצים פתוחה"</string>
<string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"דף עם גלילה מלמטה"</string>
<string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"דף פונה כלפי מעלה"</string>
- <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"לוח שנה"</string>
- <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"לוח שנה נתלש"</string>
+ <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"יומן"</string>
+ <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"יומן נתלש"</string>
<string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"כרטסת"</string>
<string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"תרשים עם מגמת עלייה"</string>
<string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"תרשים עם מגמת ירידה"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 918a0de50..d6e51111b 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"רטט בלחיצה על מקשים"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"צלילים בעת לחיצה על מקשים"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"חלון קופץ בלחיצה על מקש"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"העדפות קלט"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"מראה"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"אפשרויות ריבוי שפות"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"העדפות של הקלדת החלקה"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"העדפות"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"מראה ופריסות"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"אפשרויות לריבוי שפות"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"הקלדת החלקה"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"תיקון טקסט"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"הצג כאשר ניתן להשתמש בשפות קלט מרובות"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"הצג את סמן ההסטה"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏הצג סימון ויזואלי בעת הסטה מ-Shift או ממקשי סמלים"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"עיכוב בסגירת חלון קופץ של מקש"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ללא עיכוב"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ברירת מחדל"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"מקש קלט קולי"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"לא הופעלו שיטות של קלט קולי. בדוק את הגדרות השפה והקלט."</string>
<string name="configure_input_method" msgid="373356270290742459">"הגדרת שיטות קלט"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"שפות קלט"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"שפות"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"עזרה ומשוב"</string>
- <string name="select_language" msgid="3693815588777926848">"שפות קלט"</string>
+ <string name="select_language" msgid="5709487854987078367">"שפות"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"גע שוב כדי לשמור"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"גע כאן כדי לשמור"</string>
<string name="has_dictionary" msgid="6071847973466625007">"מילון זמין"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"עיצוב מקלדת"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"אנגלית (בריטניה)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"אנגלית (ארה\"ב)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ספרדית (ארצות הברית)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"הפעל"</string>
<string name="not_now" msgid="6172462888202790482">"לא עכשיו"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"סגנון קלט זהה כבר קיים: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"השהיית לחיצה ארוכה על מקש"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"משך רטט של לחיצת מקש"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"עוצמת קול של לחיצת מקש"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"התאם הנפשת תצוגה מקדימה של מפתח"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"קריאה של קובץ מילון חיצוני"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"אין קובצי מילונים בתיקיית ההורדות"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"בחירת קובץ מילון להתקנה"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"האם אתה באמת רוצה להתקין את הקובץ הזה עבור <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"אירעה שגיאה"</string>
<string name="button_default" msgid="3988017840431881491">"ברירת מחדל"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"ברוך הבא אל <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"עם הקלדת החלקה"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 56dc96bd1..cee8c16cb 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"キー操作バイブ"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"キー操作音"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"キー押下時ポップアップ"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"入力設定"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"デザイン"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"複数言語オプション"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"ジェスチャー入力の設定"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"設定"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"外観とレイアウト"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"多言語オプション"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"ジェスチャー入力"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"テキストの修正"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"複数の入力言語が有効なときに表示"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"スライドインジケーターを表示"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shiftまたは記号キーからスライドするとビジュアルキューを表示します"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"キーのポップアップ時間"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"すぐに消去"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"デフォルト"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"音声入力キー"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"有効になっている音声入力方法がありません。[言語と入力]設定をご確認ください。"</string>
<string name="configure_input_method" msgid="373356270290742459">"入力方法を設定"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"入力言語"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"言語"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"ヘルプとフィードバック"</string>
- <string name="select_language" msgid="3693815588777926848">"入力言語"</string>
+ <string name="select_language" msgid="5709487854987078367">"言語"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"保存するにはもう一度タップ"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ここをタップして保存します"</string>
<string name="has_dictionary" msgid="6071847973466625007">"辞書を利用できます"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"キーボードのテーマ"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"英語 (英国)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英語 (米国)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"スペイン語 (米国)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"有効にする"</string>
<string name="not_now" msgid="6172462888202790482">"後で行う"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"同じ入力スタイルが既に存在します: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"キーの長押し時間"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"キー操作バイブの振動時間"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"キー操作音の音量"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"外部辞書ファイルの読み取り"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ダウンロードフォルダに辞書ファイルはありません"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"インストールする辞書ファイルの選択"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"この<xliff:g id="LANGUAGE_NAME">%s</xliff:g>のファイルをインストールしますか?"</string>
- <string name="error" msgid="8940763624668513648">"エラーが発生しました"</string>
<string name="button_default" msgid="3988017840431881491">"デフォルト"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>へようこそ"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"新しいジェスチャー入力をお試しください"</string>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index 31aefbdd1..656b32067 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"ვიბრაცია კლავიშზე დაჭერისას"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"ხმა კლავიშზე დაჭერისას"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"გადიდება ღილაკზე დაჭერისას"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"შეყვანის პარამეტრები"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"იერსახე"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"მრავალენობრივი ვარიანტები"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"ჟესტით შეყვ. პარამეტრები"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"პარამეტრები"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"იერსახე &amp; განლაგებები"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"მრავალენობრივი ვარიანტები"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"ჟესტებით წერა"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"ტექსტის კორექცია"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"აჩვენე, როდესაც ჩართულია სხვადასხვა შეყვანის ენა"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"გასრიალების ინდიკატ. ჩვენება"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift ან Symbol კლავიშებიდან გასრიალებისას ვიზუალური მინიშნების ჩვენება"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ამომხტ.კლავიშის დაყოვნება"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"არ დაყოვნდეს"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ნაგულისხმევი"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"ხმოვანი შეყვანის კლავიში"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"ხმოვანი შეყვანის მეთოდები ჩართული არ არის. შეამოწმეთ ენის &amp; შეყვანის პარამეტრები."</string>
<string name="configure_input_method" msgid="373356270290742459">"შეყვანის მეთოდების კონფიგურაცია"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"შეყვანის ენები"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ენები"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"დახმარება და უკუკავშირი"</string>
- <string name="select_language" msgid="3693815588777926848">"შეყვანის ენები"</string>
+ <string name="select_language" msgid="5709487854987078367">"ენები"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"შეეხეთ ისევ შესანახად"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"აქ შეეხეთ, რომ შეინახოს"</string>
<string name="has_dictionary" msgid="6071847973466625007">"ხელმისაწვდომია ლექსიკონი"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"კლავიატურის თემა"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ინგლისური (გართ. სამ.)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ინგლისური (აშშ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ესპანური (აშშ)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"ჩართვა"</string>
<string name="not_now" msgid="6172462888202790482">"ახლა არა"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"შეყვანის იგივე სტილი უკვე არსებობს: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"კლავიშზე გრძელი დაჭერის დაყოვნება"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"კლავიშზე დაჭერის ვიბრაციის ხანგრძლივობა"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"კლავიშზე დაჭერის ხმა"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"გარე ლექსიკონის ფაილის წაკითხვა"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ჩამოტვირთვების საქაღალდეში ლექსიკონის ფაილები არ არის"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ინსტალაციისათვის აირჩიეთ ლექსიკონის ფაილი"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ნამდვილად გსურთ ამ ფაილის <xliff:g id="LANGUAGE_NAME">%s</xliff:g>-ისთვის ინსტალაცია?"</string>
- <string name="error" msgid="8940763624668513648">"წარმოიშვა შეცდომა"</string>
<string name="button_default" msgid="3988017840431881491">"ნაგულისხმევი"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"კეთილი იყოს თქვენი მობრძანება <xliff:g id="APPLICATION_NAME">%s</xliff:g>-ში"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ჟესტებით წერით"</string>
diff --git a/java/res/values-kk-rKZ/strings.xml b/java/res/values-kk-rKZ/strings.xml
index e290d6d85..f3d49e3f1 100644
--- a/java/res/values-kk-rKZ/strings.xml
+++ b/java/res/values-kk-rKZ/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Пернені басқан кездегі діріл"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Пернені басу кезіндегі дыбыс"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Пернені басқан кездегі ашылмалы мәзір"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Енгізу параметрлері"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Сыртқы түр"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Көп тілді опциялар"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Қимыл арқылы теру параметрлері"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Қалауларыңыз"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Сыртқы түр және орналасулар"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Көп тілдік опциялар"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Қимыл арқылы теру"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Мәтінді түзету"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Бірнеше енгізу тілдері қосылған кезде көрсету"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Жылжыту индикаторын көрсету"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift немесе Таңба пернелерінен жылжыту кезіндегі көрнекі сөзкөмекті көрсету"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Перненің ашылмалы мәзірі кідірісті жояды"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Кідіріс жоқ"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Әдепкі"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Дауыстық енгізу пернесі"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Дауыспен енгізу әдістері қосылмаған. «Тіл және енгізу параметрлері» тармағын тексеріңіз."</string>
<string name="configure_input_method" msgid="373356270290742459">"Енгізу әдістерін теңшеу"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Енгізу тілдері"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Тілдер"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Анықтама және кері байланыс"</string>
- <string name="select_language" msgid="3693815588777926848">"Енгізу тілдері"</string>
+ <string name="select_language" msgid="5709487854987078367">"Тілдер"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Сақтау үшін қайта түртіңіз"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Сақтау үшін осы жерді түртіңіз"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Сөздік қолжетімді"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Пернетақта тақырыбы"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ағылшын (ҰБ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ағылшын (АҚШ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Испан (АҚШ)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Қосу"</string>
<string name="not_now" msgid="6172462888202790482">"Қазір емес"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Бірдей енгізу стилі бұрыннан бар: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Пернені ұзақ басу кідірісі"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Пернені басқан кездегі діріл ұзақтығы"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Пернені басқан кездегі дыбыс деңгейі"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Перн. алдын ала қарау аним. теңшеу"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Сыртқы сөздік файлын оқу"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Жүктеп алулар қалтасында сөздік файлдары жоқ"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Орнату үшін сөздік файлын таңдау"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> үшін осы файлды орнату керек пе?"</string>
- <string name="error" msgid="8940763624668513648">"Қате болды"</string>
<string name="button_default" msgid="3988017840431881491">"Әдепкі"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> қолданбасына қош келдіңіз"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Қимылмен теру арқылы"</string>
diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml
index ad1d5f30e..0188b3ee2 100644
--- a/java/res/values-km-rKH/strings.xml
+++ b/java/res/values-km-rKH/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"ញ័រ​នៅ​ពេល​ចុច​គ្រាប់ចុច"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"សំឡេង​នៅ​ពេល​ចុច​គ្រាប់ចុច"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"លេច​ឡើង​នៅ​​ពេល​ចុច​គ្រាប់​ចុច"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ចំណូលចិត្ត​បញ្ចូល"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"រូបរាង"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ជម្រើស​ភាសា​​ច្រើន"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"ចំណូលចិត្តបញ្ចូលកាយវិការ"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ចំណូលចិត្ត"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"រូបរាង &amp; ប្លង់"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"ជម្រើស​ច្រើន​ភាសា"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"កាយវិការ​បញ្ចូល"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"ការ​កែ​​អត្ថបទ"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"បង្ហាញ​នៅ​ពេល​ដែល​បើក​ភាសា​បញ្ចូល​ច្រើន"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"បង្ហាញ​ទ្រនិច​បង្ហាញ​ស្លាយ"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"បង្ហាញ​​សញ្ញា​មើល​​ឃើញ​ខណៈ​ពេល​ដែល​រុញ​ពី​ឆ្វេង ឬ​​គ្រាប់​ចុច​​និមិត្ត​សញ្ញា"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"​សោ​លេចឡើង​បោះបង់​ការ​​ពន្យារពេល​"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"គ្មាន​ការ​ពន្យារពេល"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"លំនាំដើម"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"គ្រាប់​ចុច​បញ្ចូល​​សំឡេង"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"គ្មាន​វិធីសាស្ត្រ​បញ្ចូល​សំឡេង​បាន​បើក។ ពិនិត្យ​មើល​ការ​កំណត់​ភាសា &amp; ការ​បញ្ចូល។"</string>
<string name="configure_input_method" msgid="373356270290742459">"កំណត់​រចនាសម្ព័ន្ធ​វិធីសាស្ត្រ​បញ្ចូល"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"បញ្ចូល​ភាសា"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ភាសា"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"ជំនួយ &amp; មតិ​ត្រឡប់"</string>
- <string name="select_language" msgid="3693815588777926848">"​​បញ្ចូល​ភាសា"</string>
+ <string name="select_language" msgid="5709487854987078367">"ភាសា"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"ប៉ះ​ម្ដង​ទៀត​ ដើម្បី​រក្សា​ទុក"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ប៉ះ​ទីនេះ​ដើម្បី​រក្សាទុក"</string>
<string name="has_dictionary" msgid="6071847973466625007">"មាន​វចនានុក្រម"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"រូបរាង​ក្ដារចុច"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"អង់គ្លេស (​អង់គ្លេស)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"អង់គ្លេស (សហរដ្ឋ​អាមេរិក)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"អេស្ប៉ាញ (សហរដ្ឋ​អាមេរិក​)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"បើក"</string>
<string name="not_now" msgid="6172462888202790482">"មិនមែន​ឥឡូវ"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"មាន​រចនាប័ទ្ម​បញ្ចូល​ដូច​គ្នា​ដូច​ហើយ៖ <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ពន្យារពេល​​​ចុច​គ្រាប់​ចុច​ឲ្យ​​យូរ"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ថិរវេលា​​ញ័រ​​ពេល​ចុច​គ្រាប់ចុច"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"កម្រិត​សំឡេង​ពេល​ចុច​គ្រាប់​ចុច"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"ប្ដូរចលនាមើលជាមុនសំខាន់តាមតម្រូវការ"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"អាន​ឯកសារ​វចនានុក្រម​ខាង​ក្រៅ"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"គ្មាន​ឯកសារ​វចនានុក្រម​នៅ​ក្នុង​ថត​ទាញ​យក​​"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ជ្រើស​ឯកសារ​វចនានុក្រម​ ដើម្បី​ដំឡើង"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ពិត​ជា​ដំឡើង​ឯកសារ​នេះ​សម្រាប់ <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"មាន​កំហុស"</string>
<string name="button_default" msgid="3988017840431881491">"លំនាំដើម"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"សូម​ស្វាគមន៍​មក​កាន់ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ជាមួយ​​​ការ​វាយ​បញ្ចូល​ដោយ​ប្រើ​​​កាយវិការ"</string>
diff --git a/java/res/values-kn-rIN/strings.xml b/java/res/values-kn-rIN/strings.xml
index 7319ebd88..0560787d4 100644
--- a/java/res/values-kn-rIN/strings.xml
+++ b/java/res/values-kn-rIN/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ವೈಬ್ರೇಷನ್‌"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ಶಬ್ದಮಾಡು"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"ಕೀ ಒತ್ತಿದಾಗ ಪಾಪ್ ಅಪ್‌ ಮಾಡು"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ಇನ್‌ಪುಟ್ ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"ಗೋಚರತೆ"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ಬಹು ಭಾಷಾ ಆಯ್ಕೆಗಳು"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"ಗೆಶ್ಚರ್ ಟೈಪಿಂಗ್ ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ಆದ್ಯತೆಗಳು"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"ಗೋಚರತೆ &amp; ಲೇಔಟ್‌ಗಳು"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"ಬಹುಭಾಷೆ ಆಯ್ಕೆಗಳು"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"ಗೆಸ್ಚರ್ ಟೈಪಿಂಗ್"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"ಪಠ್ಯ ತಿದ್ದುಪಡಿ"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"ಬಹು ಇನ್‌ಪುಟ್ ಭಾಷೆಗಳು ಸಕ್ರಿಯಗೊಂಡಾಗ ತೋರಿಸು"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"ಸ್ಲೈಡ್ ಸೂಚಕ ತೋರಿಸು"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift ಅಥವಾ ಚಿಹ್ನೆ ಕೀಗಳಿಂದ ಸ್ಲೈಡ್ ಮಾಡುವಾಗ ದೃಶ್ಯ ಕ್ಯೂ ಪ್ರದರ್ಶಿಸು"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ಕೀ ಪಾಪ್‌ಅಪ್‌ನ ವಜಾ ವಿಳಂಬ"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ಯಾವುದೇ ವಿಳಂಬವಿಲ್ಲ"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ಡೀಫಾಲ್ಟ್"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"ಧ್ವನಿ ಇನ್‌ಪುಟ್ ಕೀ"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"ಯಾವುದೇ ಧ್ವನಿ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ. ಭಾಷೆ &amp; ಇನ್‌ಪುಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ."</string>
<string name="configure_input_method" msgid="373356270290742459">"ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ಇನ್‌ಪುಟ್ ಭಾಷೆಗಳು"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ಭಾಷೆಗಳು"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"ಸಹಾಯ &amp; ಪ್ರತಿಕ್ರಿಯೆ"</string>
- <string name="select_language" msgid="3693815588777926848">"ಇನ್‌ಪುಟ್ ಭಾಷೆಗಳು"</string>
+ <string name="select_language" msgid="5709487854987078367">"ಭಾಷೆಗಳು"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"ಉಳಿಸಲು ಮತ್ತೆ ಸ್ಪರ್ಶಿಸಿ"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ಉಳಿಸಲು ಇಲ್ಲಿ ಸ್ಪರ್ಶಿಸಿ"</string>
<string name="has_dictionary" msgid="6071847973466625007">"ನಿಘಂಟು ಲಭ್ಯವಿದೆ"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"ಕೀಬೋರ್ಡ್ ಥೀಮ್"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ಇಂಗ್ಲಿಷ್ (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ಇಂಗ್ಲಿಷ್ (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ಸ್ಪ್ಯಾನಿಷ್ (US)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"ಸಕ್ರಿಯಗೊಳಿಸು"</string>
<string name="not_now" msgid="6172462888202790482">"ಸದ್ಯಕ್ಕೆ ಬೇಡ"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"ಅದೇ ರೀತಿಯ ಇನ್‌ಪುಟ್ ಶೈಲಿಯು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ಕೀಯ ದೀರ್ಘ ಒತ್ತುವ ವಿಳಂಬ"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ಕೀಒತ್ತುವ ವೈಬ್ರೇಷನ್‌‌ ಅವಧಿ"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ಕೀಒತ್ತುವ ಶಬ್ದದ ವಾಲ್ಯೂಮ್"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"ಪೂರ್ವವೀಕ್ಷಣೆ ಅನಿಮೇಷನ್‌ನ ಕಸ್ಟಮೈಸ್ ಕೀ"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ಬಾಹ್ಯ ನಿಘಂಟು ಫೈಲ್ ಓದಿ"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ಡೌನ್‌ಲೋಡ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಯಾವುದೇ ನಿಘಂಟು ಫೈಲ್‌ಗಳಿಲ್ಲ"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ಸ್ಥಾಪಿಸಬೇಕಾದ ನಿಘಂಟು ಫೈಲ್ ಆಯ್ಕೆಮಾಡಿ"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ಗಾಗಿ ಈ ಫೈಲ್‌ ಅನ್ನು ನಿಜಕ್ಕೂ ಸ್ಥಾಪಿಸುವುದೇ?"</string>
- <string name="error" msgid="8940763624668513648">"ದೋಷ ಉಂಟಾಗಿದೆ"</string>
<string name="button_default" msgid="3988017840431881491">"ಡೀಫಾಲ್ಟ್"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ಗೆ ಸುಸ್ವಾಗತ"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ಗೆಶ್ಚರ್ ಟೈಪಿಂಗ್‌ನೊಂದಿಗೆ"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index ab6e10eaf..0698b2b0e 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"키를 누를 때 진동 발생"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"키를 누를 때 소리 발생"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"키를 누를 때 팝업"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"입력 환경설정"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"디자인"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"다중 언어 옵션"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"제스처 타이핑 환경설정"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"환경설정"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"모양 및 레이아웃"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"다국어 옵션"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"제스처 타이핑"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"텍스트 수정"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"여러 입력 언어를 사용하도록 설정할 때 표시"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"슬라이드 표시기 표시"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift 또는 기호 키에서 슬라이드하는 동안 시각 효과 표시"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"키 팝업 해제 지연"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"지연 없음"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"기본값"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"음성 입력 키"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"사용 설정된 음성 입력 방법이 없습니다. 언어 및 입력 설정을 확인하세요."</string>
<string name="configure_input_method" msgid="373356270290742459">"입력 방법 설정"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"입력 언어"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"언어"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"도움말 및 의견"</string>
- <string name="select_language" msgid="3693815588777926848">"입력 언어"</string>
+ <string name="select_language" msgid="5709487854987078367">"언어"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"저장하려면 다시 터치"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"저장하려면 여기를 터치하세요."</string>
<string name="has_dictionary" msgid="6071847973466625007">"사전 사용 가능"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"키보드 테마"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"영어(영국)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"영어(미국)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"스페인어(미국)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"사용"</string>
<string name="not_now" msgid="6172462888202790482">"나중에"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"같은 입력 스타일이 다음과 같이 이미 존재합니다. <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"키 길게 누르기 지연"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"키를 누를 때 진동 시간"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"키를 누를 때 소리 볼륨"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"외부 사전 파일 읽기"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"다운로드 폴더에 사전 파일이 없음"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"설치할 사전 파일 선택"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"이 파일을 <xliff:g id="LANGUAGE_NAME">%s</xliff:g>(으)로 설치하시겠습니까?"</string>
- <string name="error" msgid="8940763624668513648">"오류 발생"</string>
<string name="button_default" msgid="3988017840431881491">"기본값"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>에 오신 것을 환영합니다."</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"제스처 타이핑 사용"</string>
diff --git a/java/res/values-ky-rKG/strings.xml b/java/res/values-ky-rKG/strings.xml
index 6205dd8d0..7deb72c0d 100644
--- a/java/res/values-ky-rKG/strings.xml
+++ b/java/res/values-ky-rKG/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Баскыч басылганда дирилдесин"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Баскыч басылганда чыккан үн"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Баскыч басылганда калкып чыкма"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Киргизүү жеке жөндөөлөрү"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Сырткы көрүнүшү"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Көп тилдүү параметрлер"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Жаңсп терүү жеке жөндлөрү"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Мүмкүнчүлүктөрдү тандоо"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Көрүнүш &amp; жайгашуулар"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Көп тилдүү параметрлер"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Жаңсап терүү"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Текстти оңдоо"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Бир нече киргизүү тили иштетилгенде көрсөтүлсүн"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Сүрүү көрсөткүчүн көрсөтүү"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift же Символ баскычтары сүрүлүп жаткнда кеңештр көрсөтүлп турсн"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Кечигүүнү өткөрүү калкып чыкма баскычы"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Дароо"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Демейки"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Үн менен киргизүү баскычы"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Үн менен киргизүү ыкмаларынын бири да иштетилген эмес. Тил &amp; киргизүү жөндөөлөрүн текшериңиз."</string>
<string name="configure_input_method" msgid="373356270290742459">"Дайндрд киргзүү ыкмалрн конфигрцлоо"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Киргизүү тилдери"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Тилдер"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Жардам &amp; жооп пикир"</string>
- <string name="select_language" msgid="3693815588777926848">"Киргизүү тилдери"</string>
+ <string name="select_language" msgid="5709487854987078367">"Тилдер"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Сактоо үчүн кайра тийип коюңуз"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Сактоо үчүн бул жерди басыңыз"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Сөздүк бар"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Баскычтоп темасы"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Англисче (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Англисче (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Испанча (US)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Иштетүү"</string>
<string name="not_now" msgid="6172462888202790482">"Азыр эмес"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Мындай жазуу стили мурунтан бар: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Баскычты көпкө басууну кечиктирүү"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Басылган баскычтын дирлдөө узактгы"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Басылган баскычтын үнүнүн катуулугу"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Баскч алдырт көрүү анимцясн өзгөчлш"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Тышкы сөздүк файлын окуу"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Жүктөп алынгандар папкасында сөздүк файлдары жок"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Орнотула турган сөздүк файлын тандаңыз"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Бул файл <xliff:g id="LANGUAGE_NAME">%s</xliff:g> үчүн орнотулсунбу?"</string>
- <string name="error" msgid="8940763624668513648">"Ката кетти"</string>
<string name="button_default" msgid="3988017840431881491">"Демейки"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> кош келиңиз"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Жаңсап терүү менен"</string>
diff --git a/java/res/values-land/config.xml b/java/res/values-land/config.xml
index 34d6d4e19..d36f6a0fc 100644
--- a/java/res/values-land/config.xml
+++ b/java/res/values-land/config.xml
@@ -40,16 +40,22 @@
<!-- config_more_keys_keyboard_key_height x -0.5 -->
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-22.4dp</dimen>
<dimen name="config_key_preview_offset_holo">1.6dp</dimen>
-
+ <dimen name="config_key_preview_height_holo">80dp</dimen>
+ <dimen name="config_key_preview_offset_lxx">43.6dp</dimen>
+ <dimen name="config_key_preview_height_lxx">122dp</dimen>
<fraction name="config_key_preview_text_ratio">90%</fraction>
- <fraction name="config_key_letter_ratio">65%</fraction>
+ <fraction name="config_key_letter_ratio_holo">65%</fraction>
+ <fraction name="config_key_letter_ratio_lxx">65%</fraction>
<fraction name="config_key_large_letter_ratio_holo">74%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">90%</fraction>
- <fraction name="config_key_label_ratio">40%</fraction>
- <fraction name="config_key_hint_letter_ratio">30%</fraction>
+ <fraction name="config_key_label_ratio_holo">40%</fraction>
+ <fraction name="config_key_label_ratio_lxx">40%</fraction>
+ <fraction name="config_key_hint_letter_ratio_holo">30%</fraction>
+ <fraction name="config_key_hint_letter_ratio_lxx">30%</fraction>
<fraction name="config_key_hint_label_ratio_holo">52%</fraction>
<fraction name="config_key_hint_label_ratio_lxx">30%</fraction>
- <fraction name="config_key_shifted_letter_hint_ratio">40%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_holo">40%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_lxx">40%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">40.000%</fraction>
<!-- For 5-row keyboard -->
diff --git a/java/res/values-land/keyboard-heights.xml b/java/res/values-land/keyboard-heights.xml
index d57f96be3..02d8b14c8 100644
--- a/java/res/values-land/keyboard-heights.xml
+++ b/java/res/values-land/keyboard-heights.xml
@@ -33,5 +33,7 @@
<!-- Preferable keyboard height in absolute scale: 45.0mm -->
<!-- Xoom -->
<item>HARDWARE=stingray,265.4378</item>
+ <!-- Volantis -->
+ <item>HARDWARE=flounder,272.0</item>
</string-array>
</resources>
diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml
index 6830c085c..f9a917101 100644
--- a/java/res/values-lo-rLA/strings.xml
+++ b/java/res/values-lo-rLA/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"ສັ່ນເຕືອນເມື່ອພິມ"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"ສຽງໃນການກົດປຸ່ມ"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"ໂຕອັກສອນເວລາພິມ"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"​ການ​ຕັ້ງ​ຄ່າ​ການ​ປ້ອນ​ຂໍ້​ມູນ"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"​ຮູບ​ແບບ​ໜ້າ​ຕາ"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"​ໂຕ​ເລືອກ​ລະ​ບົບຫຼາຍ​ພາ​ສາ"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"​ການ​ຕັ້ງ​ຄ່າ​ການ​ພິມ​ດ້ວຍ​ທ່າ​ທາງ"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"​​ການ​ຕັ້ງ​ຄ່າ"</string>
+ <string name="settings_screen_accounts" msgid="7570397912370223287">"ບັນຊີ &amp; ​ຄວາມ​ເປັນ​ສ່ວນ​ໂຕ"</string>
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"​ລັກ​ສະ​ນະ &amp; ໂຄງ​ຮ່າງ"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"ຕົວເລືອກຫຼາຍພາສາ"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"​ກາ​ນ​ພິມ​ແບບ​ລາກ​ນິ້ວ"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"​ການ​ແປງ​ຄຳ​ໃຫ້​ຖືກ​ຕ້ອງ"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"​ຂັ້ນ​ສູງ"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"ຮູບແບບສີສັນ"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"ສະແດງໃນເວລາທີ່ຕົວເລືອກການປ້ອນຂໍ້ມູນຫຼາຍໂຕຖືກເປີດຢູ່"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"ສະແດງໂຕບົ່ງບອກການສະໄລ້"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ສະແດງແນວທາງໃນຂະນະທີ່ສະໄລ້ຈາກ Shift ຫຼື ປຸ່ມເຄື່ອງໝາຍ"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ໄລຍະເວລາການສະແດງໂຕອັກສອນ"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ບໍ່ຕ້ອໜ່ວງເວລາ"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ຄ່າເລີ່ມຕົ້ນ"</string>
@@ -76,13 +78,20 @@
<string name="voice_input" msgid="3583258583521397548">"ປຸ່ມປ້ອນຂໍ້ມູນດ້ວຍສຽງ"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"ບໍ່ມີວິທີການປ້ອນສຽງເປີດນໍາໃຊ້. ໃຫ້ກວດເບິ່ງການຕັ້ງຄ່າໃນເມນູ ພາສາ &amp; ການປ້ອນຂໍ້ມູນ."</string>
<string name="configure_input_method" msgid="373356270290742459">"ຕັ້ງຄ່າຮູບແບບການປ້ອນຂໍ້ມູນ"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ພາສາການປ້ອນຂໍ້ມູນ"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ພາ​ສາ"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"ຊ່ວຍ​ເຫຼືອ &amp; ຄຳ​ຕິ​ຊົມ"</string>
- <string name="select_language" msgid="3693815588777926848">"ພາສາການປ້ອນຂໍ້ມູນ"</string>
+ <string name="select_language" msgid="5709487854987078367">"ພາ​ສາ"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"ກົດອີກຄັ້ງເພື່ອບັນທຶກ"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ແຕະ​ບ່ອນ​ນີ້​ເພື່ອ​ບັນ​ທຶກ"</string>
<string name="has_dictionary" msgid="6071847973466625007">"ມີວັດຈະນານຸກົມ"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"ສີສັນແປ້ນພິມ"</string>
+ <string name="switch_accounts" msgid="3321216593719006162">"ສະລັບບັນຊີ"</string>
+ <string name="no_accounts_selected" msgid="2073821619103904330">"​ບໍ່​ໄດ້​ເລືອກ​ບັນ​ຊີ​ເທື່ອ"</string>
+ <string name="account_selected" msgid="2846876462199625974">"ຕອນ​ນີ້​ກຳ​ລັງ​ໃຊ້ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+ <string name="account_select_ok" msgid="9141195141763227797">"ຕົກລົງ"</string>
+ <string name="account_select_cancel" msgid="5181012062618504340">"​ຍົກ​ເລີກ"</string>
+ <string name="account_select_sign_out" msgid="3299651159390187933">"ອອກຈາກລະບົບ"</string>
+ <string name="account_select_title" msgid="6279711684772922649">"​ເລືອກ​ບັນ​ຊີ​ທີ່​ຈະ​ໃຊ້"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"ອັງກິດ (ສະຫະລາດຊະອານາຈັກ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ອັງກິດ (ສະຫະລັດຯ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ສະເປນ (ອາເມລິກາ)"</string>
@@ -114,15 +123,8 @@
<string name="enable" msgid="5031294444630523247">"ເປີດນຳໃຊ້"</string>
<string name="not_now" msgid="6172462888202790482">"ບໍ່ແມ່ນຕອນນີ້"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"ຮູບແບບການປ້ອນຂໍ້ມູນທີ່ຄືກັນມີຢູ່ແລ້ວ: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ໄລຍະເວລາຂອງການກົດປຸ່ມ"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ໄລຍະເວລາຂອງການສັ່ນໃນການກົດປຸ່ມ"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ລະດັບສຽງຂອງການກົດປຸ່ມ"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"ປັບແຕ່ງ​ອະນິເມຊັນ​ຕົວຢ່າງ​ປຸ່ມ​ກົດ"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ອ່ານໄຟລ໌ວັດຈະນານຸກົມພາຍນອກ"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ບໍ່ມີໄຟລ໌ວັດຈະນານຸກົມໃນໂຟນເດີຂອງການດາວໂຫລດ"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ເລືອກໄຟລ໌ວັດຈະນານຸກົມເພື່ອຕິດຕັ້ງ"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ຕິດ​ຕັ້ງ​ໄຟ​ລ໌​ນີ້​ສຳ​ລັບ <xliff:g id="LANGUAGE_NAME">%s</xliff:g> ແທ້ບໍ່??"</string>
- <string name="error" msgid="8940763624668513648">"ມີຂໍ້ຜິດພາດເກີດຂຶ້ນ"</string>
<string name="button_default" msgid="3988017840431881491">"ຄ່າເລີ່ມຕົ້ນ"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"ຍິນ​ດີ​ຕ້ອນ​ຮັບສູ່ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ດ້ວຍການພິມແບບ Gesture"</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index ab55c1f34..c8a212d34 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibruoti, kai paspaudžiami klavišai"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Klavišo paspaudimo garsas"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Iššoka paspaudus klavišą"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Įvesties nuostatos"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Išvaizda"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Kelių kalbų parinktys"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Įvesties gestais nuostat."</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Nuostatos"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Išvaizda ir išdėstymai"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Kelių kalbų parinktys"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Įvestis gestais"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Teksto taisymas"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Rodyti, kai įgalintos kelios įvesties kalbos"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Rodyti šliaužiklio indikatorių"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Rodyti vaizd. užuominą slenkant nuo „Shift“ ar simb. klavišų"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Pagr. išš. l. atsis. d."</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Be delsos"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Numatytasis"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Įvesties balsu klavišas"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nėra jokių įgalintų įvesties balsu metodų. Patikrinkite kalbos ir įvesties nustatymus."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigūruoti įvesties metodus"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Įvesties kalbos"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Kalbos"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Pagalba ir atsiliepimai"</string>
- <string name="select_language" msgid="3693815588777926848">"Įvesties kalbos"</string>
+ <string name="select_language" msgid="5709487854987078367">"Kalbos"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Jei norite išsaugoti, palieskite dar kartą"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Palieskite čia, kad išsaugotumėte"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Žodynas galimas"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatūros tema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Anglų k. (JK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglų k. (JAV)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Ispanų k. (JAV)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Įgalinti"</string>
<string name="not_now" msgid="6172462888202790482">"Ne dabar"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Toks pat įvesties stilius jau yra: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Klavišo ilgo paspaudimo delsa"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrav. paspaudus mygt. trukmė"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Garso paspaudus mygt. garsumas"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Skaityti išorinį žodyno failą"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Atsisiuntimų aplanke nėra žodyno failų"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pasirinkite diegiamą žodyno failą"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ar tikrai įdiegti šį failą <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Įvyko klaida"</string>
<string name="button_default" msgid="3988017840431881491">"Numatytieji"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Sveiki! Tai „<xliff:g id="APPLICATION_NAME">%s</xliff:g>“"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"naudojant įvestį gestais"</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index 4579a2991..ecb7270ed 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrēt, nospiežot taustiņu"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Skaņa, nospiežot taustiņu"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Nospiežot taustiņu, parādīt uznirstošo izvēlni"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Ievades preferences"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Izskats"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Vairāku valodu opcijas"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Ievade ar žestiem"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Izskats un izkārtojumi"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Vairākvalodu opcijas"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Ievade ar žestiem"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Teksta korekcija"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Parādīt, ja ir iespējotas vairākas ievades valodas"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Rādīt vilkšanas indikatoru"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Attēlot vizuālu norādījumu, velkot no Shift vai simbolu taustiņa"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Taust. uzn. loga noraid. aizk."</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez aizkaves"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Noklusējums"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Balss ievades atslēga"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nav iespējota neviena balss ievades metode. Pārbaudiet valodas un ievades iestatījumus."</string>
<string name="configure_input_method" msgid="373356270290742459">"Ievades metožu konfigurēšana"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Ievades valodas"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Valodas"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Palīdzība un atsauksmes"</string>
- <string name="select_language" msgid="3693815588777926848">"Ievades valodas"</string>
+ <string name="select_language" msgid="5709487854987078367">"Valodas"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Pieskarieties vēlreiz, lai saglabātu."</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Lai saglabātu, pieskarieties šeit"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Ir pieejama vārdnīca."</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tastatūras motīvs"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Angļu valoda (Lielbritānija)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Angļu valoda (ASV)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spāņu (ASV)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Iespējot"</string>
<string name="not_now" msgid="6172462888202790482">"Vēlāk"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Šāds ievades stils jau pastāv: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Taustiņa ilgās nosp. noildze"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Taust. nosp. vibrācijas ilgums"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Taustiņu nosp. skaņas skaļums"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Atslēgas animācijas pielāgošana"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ārējās vārdnīcas faila nolasīšana"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Mapē Lejupielādes nav neviena vārdnīcas faila."</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Instalējamā vārdnīcas faila atlasīšana"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vai tiešām instalēt šo failu šādai valodai: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Radās kļūda"</string>
<string name="button_default" msgid="3988017840431881491">"Noklusējums"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Laipni lūdzam pakalpojumā <xliff:g id="APPLICATION_NAME">%s</xliff:g>,"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"kurā varat izmantot ievadi ar žestiem"</string>
diff --git a/java/res/values-mk-rMK/strings.xml b/java/res/values-mk-rMK/strings.xml
index f3c2fea0a..cce837a4e 100644
--- a/java/res/values-mk-rMK/strings.xml
+++ b/java/res/values-mk-rMK/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирање при притисок на копче"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притискање копче"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Појавен прозорец на притискање копче"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Приоритети за внесување"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Изглед"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Повеќејазични опции"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Параметри за пишување"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Претпочитани поставки"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Изглед и распоред"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Повеќејазични опции"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Пишување со движење"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Корекција на текст"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Покажи кога се овозможени повеќе влезни јазици"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Покажи индикатор за лизгање"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Прикажи визуелен знак при лизгање од копчињата Shift или Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Откажи доцнење за копче"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задоцнување"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Стандардно"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Копче за влез на глас"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Не се овозможени методи за гласовно внесување. Проверете ги поставките за Јазик и внесување."</string>
<string name="configure_input_method" msgid="373356270290742459">"Конфигурирај методи на влез"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Влезни јазици"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Јазици"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Помош и повратни информации"</string>
- <string name="select_language" msgid="3693815588777926848">"Влезни јазици"</string>
+ <string name="select_language" msgid="5709487854987078367">"Јазици"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Допрете повторно за да се зачува"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Допри тука да се зачува"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Речникот е достапен"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Тема на тастатурата"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"англиски (ОК)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"англиски (САД)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"шпански (САД)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Овозможи"</string>
<string name="not_now" msgid="6172462888202790482">"Не сега"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Истиот стил на влез веќе постои: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Доцнење на долго притискање копче"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Траење на вибрација од копче"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Копче за јачина на звук"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Приспособи го приказот на клучот"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Прочитај надворешна датотека на речник"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Нема датотеки на речник во папката Преземања"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Изберете датотека на речник за инсталирање"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Дали навистина да се инсталира оваа датотека за <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Настана грешка"</string>
<string name="button_default" msgid="3988017840431881491">"Стандардно"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Добре дојдовте во <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"со Пишување со движење"</string>
diff --git a/java/res/values-ml-rIN/strings.xml b/java/res/values-ml-rIN/strings.xml
index b05457c26..521dc1bc0 100644
--- a/java/res/values-ml-rIN/strings.xml
+++ b/java/res/values-ml-rIN/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"കീ അമർത്തുമ്പോൾ വൈബ്രേറ്റുചെയ്യുക"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"കീ അമർത്തുമ്പോഴുള്ള ശബ്‌ദമുണ്ടാക്കുക"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"കീ അമർത്തുമ്പോൾ പോപ്പ്അപ്പ് ചെയ്യുക"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ഇൻപുട്ട് മുൻഗണനകൾ"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"കാഴ്ച്ച"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ഒന്നിലധികം ഭാഷകൾക്കുള്ള ഓ‌പ്ഷനുകൾ"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"ടൈപ്പുചെയ്യുന്നതിന് മുൻഗണന നൽകുന്ന സവിശേഷത"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"മുൻഗണനകൾ"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"രൂപഭാവവും ലേഔട്ടുകളും"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"മൾട്ടിലിംഗ്വൽ ഓപ്‌ഷനുകൾ"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"ഗെസ്ചർ ടൈപ്പിംഗ്"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"വാചകം തിരുത്തൽ"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"ഒന്നിലധികം ടൈപ്പുചെയ്യൽ ഭാഷകൾ പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ കാണിക്കുക"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"സ്ലൈഡ് ഇൻഡിക്കേറ്റർ കാണിക്കുക"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift അല്ലെങ്കിൽ ചിഹ്ന കീകളിൽ നിന്ന് സ്ലൈഡ് ചെയ്യുമ്പോൾ ദൃശ്യ സൂചകം പ്രദർശിപ്പിക്കുക"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"കീ പോപ്പ്അപ്പ് നിരസിക്കൽ കാലതാമസം"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"കാലതാമസമില്ല"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"സ്ഥിരമായത്"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"വോയ്‌സ് ടൈപ്പുചെയ്യൽ കീ"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"വോയ്‌സ് ടൈപ്പുചെയ്യൽ രീതികളൊന്നും പ്രവർത്തനക്ഷമമല്ല. ഭാഷ &amp; ടൈപ്പു ചെയ്യൽ ക്രമീകരണങ്ങൾ പരിശോധിക്കുക."</string>
<string name="configure_input_method" msgid="373356270290742459">"ടൈപ്പുചെയ്യൽ രീതികൾ കോൺഫിഗർ ചെയ്യുക"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ടൈപ്പുചെയ്യൽ ഭാഷകൾ"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ഭാഷകള്‍‌"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"സഹായവും ഫീഡ്‌ബാക്കും"</string>
- <string name="select_language" msgid="3693815588777926848">"ടൈപ്പുചെയ്യൽ ഭാഷകൾ"</string>
+ <string name="select_language" msgid="5709487854987078367">"ഭാഷകള്‍‌"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"സംരക്ഷിക്കുന്നതിനായി വീണ്ടും സ്‌പർശിക്കുക"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"സംരക്ഷിക്കാൻ ഇവിടെ സ്‌പർശിക്കുക"</string>
<string name="has_dictionary" msgid="6071847973466625007">"നിഘണ്ടു ലഭ്യമാണ്"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"കീബോർഡ് തീം"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ഇംഗ്ലീഷ് (യുകെ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ഇംഗ്ലീഷ് (യുഎസ്)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"സ്‌പാനിഷ് (യുഎസ്)"</string>
@@ -104,7 +120,7 @@
<string name="subtype_emoji" msgid="7483586578074549196">"ഇമോജി"</string>
<string name="keyboard_theme" msgid="4909551808526178852">"കീബോർഡ് തീം"</string>
<string name="custom_input_styles_title" msgid="8429952441821251512">"ഇഷ്‌ടാനുസൃത ടൈപ്പുചെയ്യൽ ശൈലികൾ"</string>
- <string name="add_style" msgid="6163126614514489951">"ശൈലി ചേർക്കുക"</string>
+ <string name="add_style" msgid="6163126614514489951">"സ്റ്റൈൽ ചേർക്കുക"</string>
<string name="add" msgid="8299699805688017798">"ചേര്‍ക്കുക"</string>
<string name="remove" msgid="4486081658752944606">"നീക്കംചെയ്യുക"</string>
<string name="save" msgid="7646738597196767214">"സംരക്ഷിക്കുക"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"പ്രവർത്തനക്ഷമമാക്കുക"</string>
<string name="not_now" msgid="6172462888202790482">"ഇപ്പോൾ വേണ്ട"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"സമാന ടൈപ്പുചെയ്യൽ ശൈലി ഇതിനകം നിലവിലുണ്ട്: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"കീ ദീർഘനേരം അമർത്തിപ്പിടിക്കൽ കാലതാമസം"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"കീ അമർത്തുമ്പോഴുള്ള വൈബ്രേഷൻ ദൈർഘ്യം"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"കീ അമർത്തുമ്പോഴുള്ള ശബ്‌ദ വോളിയം"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"കീ പ്രിവ്യൂ ആനിമേഷൻ ഇഷ്‌ടാനുസൃതമാക്കുക"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ബാഹ്യ നിഘണ്ടു ഫയൽ റീഡുചെയ്യുക"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ഡൗൺലോഡുകളുടെ ഫോൾഡറിൽ നിഘണ്ടു ഫയലുകളൊന്നുമില്ല"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതിനായി ഒരു നിഘണ്ടു ഫയൽ തിരഞ്ഞെടുക്കുക"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ഭാഷയ്‌ക്കായി ശരിക്കും ഈ ഫയൽ ഇൻസ്‌റ്റാൾ ചെയ്യണോ?"</string>
- <string name="error" msgid="8940763624668513648">"ഒരു പിശകുണ്ടായി"</string>
<string name="button_default" msgid="3988017840431881491">"സ്ഥിരമായത്"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> എന്നതിലേക്ക് സ്വാഗതം"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ജെസ്റ്റർ ടൈപ്പുചെയ്യലിനൊപ്പം"</string>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index d65e0e40f..5dcf1f216 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -26,18 +26,19 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Товч дарахад чичрэх"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Товч дарахад дуу гаргах"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Товч дарахад попап гарна"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Оруулгын тохируулга"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Харагдац"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Олон хэлний сонголтууд"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Зангалтын бичих тохируулга"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Тохируулга"</string>
+ <string name="settings_screen_accounts" msgid="7570397912370223287">"Акаунт &amp; нууцлал"</string>
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Харагдац &amp; байрлал"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Олон хэлний сонголт"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Зангаагаар бичих"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Текст залруулалт"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Оруулах хэл олныг идэвхжүүлсэн үед харуулах"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Гулсалт заагчийг харуулах"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Сэлгэх буюу Симбол товчуудаас гулсах үед нүдэнд харагдуулах"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Товчны попап арилах хугацаа"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Хүлээхгүй"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Үндсэн"</string>
@@ -76,13 +77,20 @@
<string name="voice_input" msgid="3583258583521397548">"Дуун оруулгын товч"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ямар ч дуу оруулах хэрэглүүр идэвхжээгүй байна. Хэл болон оруулалтын тохиргоог шалгана уу."</string>
<string name="configure_input_method" msgid="373356270290742459">"Оруулах аргуудын тохиргоо"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Оруулах хэл"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Хэл"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Тусламж &amp; санал хүсэлт"</string>
- <string name="select_language" msgid="3693815588777926848">"Оруулах хэл"</string>
+ <string name="select_language" msgid="5709487854987078367">"Хэл"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Хадгалахын тулд дахин хүрнэ үү"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Хадгалахын тулд хүрнэ үү"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Толь бичиг байна"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Гарын загвар"</string>
+ <string name="switch_accounts" msgid="3321216593719006162">"Акаунт сэлгэх"</string>
+ <string name="no_accounts_selected" msgid="2073821619103904330">"Акаунт сонгогдоогүй"</string>
+ <string name="account_selected" msgid="2846876462199625974">"Одоо <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>-г ашиглаж байна"</string>
+ <string name="account_select_ok" msgid="9141195141763227797">"ТИЙМ"</string>
+ <string name="account_select_cancel" msgid="5181012062618504340">"Цуцлах"</string>
+ <string name="account_select_sign_out" msgid="3299651159390187933">"Гарах"</string>
+ <string name="account_select_title" msgid="6279711684772922649">"Ашиглах акаунтаа сонгоно уу"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Англи (ИБ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Англи (АНУ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Испани (АНУ)"</string>
@@ -114,15 +122,8 @@
<string name="enable" msgid="5031294444630523247">"Идэвхжүүлэх"</string>
<string name="not_now" msgid="6172462888202790482">"Одоо биш"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ижилхэн оруулах загвар байна: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Товч удаан дарах хугацааны тохиргоо"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Товч дарах чичиргээний хугацаа"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Товчны дууны хэмжээ"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Урьдчилан үзэх анимацийг тохируулах"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Толь бичгийн гадны файлыг унших"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Татаж авсан фолдерт толь бичгийн файл байхгүй байна"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Суулгах толь бичгийн файлыг сонгоно уу"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>-д зориулсан энэ файлыг үнэхээр суулгах уу?"</string>
- <string name="error" msgid="8940763624668513648">"Алдаа гарсан"</string>
<string name="button_default" msgid="3988017840431881491">"Үндсэн"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Та <xliff:g id="APPLICATION_NAME">%s</xliff:g>-д тавтай морилно уу"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Зангаагаар бичихээр"</string>
diff --git a/java/res/values-mr-rIN/strings.xml b/java/res/values-mr-rIN/strings.xml
index ba33e2a2b..ee89e1744 100644
--- a/java/res/values-mr-rIN/strings.xml
+++ b/java/res/values-mr-rIN/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"कीप्रेस करताना होणारे कंपन"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"कीप्रेस करताना होणारा ध्वनी"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"कीप्रेस करताना पॉपअप"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"इनपुट प्राधान्ये"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"दिसणे"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषिक पर्याय"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"हावभाग टायपिंग प्राधान्ये"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राधान्ये"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"स्वरूप आणि लेआउट"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"बहुभाषिक पर्याय"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"जेश्चर टायपिंग"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"मजकूर दुरुस्ती"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"एकाधिक इनपुट भाषा सक्षम केलेल्या असताना दर्शवा"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"स्लाइड दर्शक दर्शवा"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift किंवा Symbol की वरून स्लाइड करताना व्हिज्युअल सूचक प्रदर्शित करा"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"की पॉपअप विलंब डिसमिस करते"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"विलंब नाही"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"डीफॉल्ट"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"व्हॉइस इनपुट की"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"व्हॉइस इनपुट पद्धती सक्षम केल्या नाहीत. भाषा आणि इनपुट सेटिंग्ज तपासा."</string>
<string name="configure_input_method" msgid="373356270290742459">"इनपुट पद्धती कॉन्फिगर करा"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषा"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"भाषा"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"मदत आणि अभिप्राय"</string>
- <string name="select_language" msgid="3693815588777926848">"इनपुट भाषा"</string>
+ <string name="select_language" msgid="5709487854987078367">"भाषा"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"जतन करण्यासाठी पुन्हा स्पर्श करा"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"जतन करण्यासाठी येथे स्पर्श करा"</string>
<string name="has_dictionary" msgid="6071847973466625007">"शब्दकोश उपलब्ध"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"कीबोर्ड थीम"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"इंग्रजी (यूके)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"इंग्रजी (यूएस)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"स्पॅनिश (यूएस)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"सक्षम करा"</string>
<string name="not_now" msgid="6172462888202790482">"आता नाही"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"समान इनपुट शैली आधीपासूनच अस्तित्वात आहे: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"की जास्त दाबण्यात विलंब"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"कीप्रेस कंपन कालावधी"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"कीप्रेस ध्वनी तीव्रता"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"सानुकूल की पूर्वावलोकन अॅनिमेशन"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाह्य शब्दकोश फाईल वाचा"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फोल्डरमध्ये शब्दकोश फायली नाहीत"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"स्थापित करण्यासाठी शब्दकोश फाईल निवडा"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> साठी ही फाईल खरोखर स्थापित करायची?"</string>
- <string name="error" msgid="8940763624668513648">"एक त्रुटी आली"</string>
<string name="button_default" msgid="3988017840431881491">"डीफॉल्ट"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> वर स्वागत आहे"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"जेश्चर टायपिंग करून"</string>
diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml
index 738ec13e4..26d9d8ca6 100644
--- a/java/res/values-ms-rMY/strings.xml
+++ b/java/res/values-ms-rMY/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar pada tekanan kekunci"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Bunyi pada tekanan kekunci"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop timbul pada tekanan kunci"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Pilihan input"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Tampilan"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Pilihan berbilang bahasa"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Plhn taipan gerak isyarat"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Pilihan"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Rupa &amp; reka letak"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Pilihan berbilang bahasa"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Taipan Gerak Isyarat"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Pembetulan teks"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Tunjukkan apabila berbilang bahasa input didayakan"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Tunjukkan penunjuk slaid"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Paparkan petunjuk visual semasa meluncur daripada kekunci Shift atau Simbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Pop tmbl knci ketpkn lengah"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Tiada kelewatan"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Lalai"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"Kunci input suara"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Tiada kaedah input suara didayakan. Semak Bahasa &amp; tetapan input."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan kaedah input"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Bahasa input"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Bantuan &amp; m/balas"</string>
- <string name="select_language" msgid="3693815588777926848">"Bahasa input"</string>
+ <string name="select_language" msgid="5709487854987078367">"Bahasa"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Sentuh lagi untuk menyimpan"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Sentuh di sini untuk menyimpan"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Kamus tersedia"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema papan kekunci"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Bahasa Inggeris (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Bahasa Inggeris (Australia)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Bahasa Sepanyol (AS)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"Dayakan"</string>
<string name="not_now" msgid="6172462888202790482">"Bukan sekarang"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Kelewatan tekan lama kekunci"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tempoh getaran tekan kekunci"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Kelantangan bunyi tekan kekunci"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Baca fail kamus luaran"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Tiada fail kamus dalam folder Muat Turun"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pilih fail kamus untuk dipasang"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Betul-betul pasang fail ini untuk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Berlaku ralat"</string>
<string name="button_default" msgid="3988017840431881491">"Lalai"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Selamat datang ke <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"dengan Taipan Gerak Isyarat"</string>
diff --git a/java/res/values-my-rMM/strings.xml b/java/res/values-my-rMM/strings.xml
index 85aaf592a..35bc2cfd9 100644
--- a/java/res/values-my-rMM/strings.xml
+++ b/java/res/values-my-rMM/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"ခလုတ်နှိပ်သည်နှင့် တုံခါစေပါ"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"ခလုတ်နှိပ်လျှင် အသံမြည်"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"ကီးနှိပ်လိုက်သည်နှင့် ပေါ်လာရန်"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ထည့်သွင်းမှု စိတ်ကြိုက်"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"အပြင်အဆင်"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ဘာသာများစွာ ရွေးချယ်မှု"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"အမူယာစာရိုက်ခြင်း စိတ်ကြိုက်များ"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ရွေးချယ်စရာများ"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"အပြင်ပန်း &amp; အပြင်အဆင်များ"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"ဘာသာစကားစုံ ရွေးချယ်စရာများ"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"လှုပ်ရှားမှုဖြင့်စာရိုက်ခြင်း"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"စာအမှားပြပြင်ခြင်း"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"များပြားသည့် ထည့်သွင်းရန်နည်းလမ်းများဖွင့်ထားလျှင် ပြပါ"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"ဆွဲရွှေ့ခြင်း ညွှန်ပြကိရိယာ ပြရန်"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift ခလုတ် သို့မဟုတ် သင်္ကေတခလုတ်မှ ဆွဲရွှေ့လျှင် ဖွင့်ထားသည့် အရာများအား ပြရန်"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ကီးပေါ်လာ၍ ဖျောက်ရန်နှုန်း"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"နောက်မကျ"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"မူရင်းအတိုင်း"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"အသံထည့်သွင်းရန် ခလုတ်"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"မည်သည့် Check Language &amp; input settings."</string>
<string name="configure_input_method" msgid="373356270290742459">"ထည့်သွင်းရန် နည်းလမ်းကို ပြုပြင်မည်"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ထည့်သွင်းမှု ဘာသာ"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ဘာသာစကားများ"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"အကူအညီ &amp; တုံ့ပြန်ချက်"</string>
- <string name="select_language" msgid="3693815588777926848">"ထည့်သွင်းမှု ဘာသာ"</string>
+ <string name="select_language" msgid="5709487854987078367">"ဘာသာစကားများ"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"သိမ်းရန် နောက်တစ်ကြိမ်နှိပ်ပါ"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"သိမ်းရန် ဤနေရာကို ထိပါ"</string>
<string name="has_dictionary" msgid="6071847973466625007">"အဘိဓါန်ရနိုင်"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"ကီးဘုတ်အရောင်"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"အင်္ဂလိပ်(ယူကေ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"အင်္ဂလိပ် (ယူအက်စ်)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"စပိန် (ယူအက်စ်)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"ဖွင့်ရန်"</string>
<string name="not_now" msgid="6172462888202790482">"ယခု မဟုတ်"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"တူညီသည့် ထည့်သွင်းရန် စတိုင်လ် ရှိပြီးဖြစ်: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ကီးကြာမြင့်စွာ ဖိနှိပ်မှုနှုန်း"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ခလုတ်နှိပ်တုန်ခါမှု ကြာမြင့်ချိန်"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ခလုတ်နှိပ်သည့် အသံအတိုးကျယ်"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"ကီး လှုပ်ပုံ စမ်းကြည့် စိတ်တိုင်းကျ"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ပြင်ပ အဘိဓါန်ဖိုင် ဖတ်မည်"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ဒေါင်းလုပ်ဖိုင်တွဲထဲတွင် အဘိဓါန်ဖိုင်များ မရှိပါ"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ထည့်သွင်းရန် အဘိဓါန်ဖိုင်အားရွေးပါ"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> အတွက်ဤအရာအား တကယ်ထည့်သွင်းမည်လား?"</string>
- <string name="error" msgid="8940763624668513648">"မှားယွင်းမှု တစ်ခုရှိခဲ့သည်"</string>
<string name="button_default" msgid="3988017840431881491">"ပုံသေ"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> မှကြိုဆိုပါသည်"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"အမူယာ ရိုက်ခြင်းဖြင့်"</string>
@@ -130,12 +139,12 @@
<string name="setup_next_action" msgid="371821437915144603">"နောက်တစ်ဆင့်"</string>
<string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> တပ်ဆင်ရန်"</string>
<string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ဖွင့်ရန်"</string>
- <string name="setup_step1_instruction" msgid="2578631936624637241">"သင့်ဘာသာစကား&amp; ထည့်သွင်းမှု ဆက်တင်များတွင် \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" အားစစ်ဆေးပါ။ ဤသည်မှာ သင့်ကိရိယာတွင် ဖွင့်ရန် အခွင့်ပေးပါမည်။"</string>
- <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> သည် သင့်ဘာသာစကား &amp; ထည့်သွင်းမှု ဆက်တင်များတွင် ဖွင့်ပြီးသောကြောင့်၊ ဤအဆင့်ပြီးပါပြီ။ နောက်တစ်ခုသို့!"</string>
+ <string name="setup_step1_instruction" msgid="2578631936624637241">"သင့်ဘာသာစကား&amp; စာရိုက်ထည့်မှု ဆက်တင်များတွင် \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" အားစစ်ဆေးပါ။ ဤသည်မှာ သင့်ကိရိယာတွင် ဖွင့်ရန် အခွင့်ပေးပါမည်။"</string>
+ <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> သည် သင့်ဘာသာစကား &amp; စာရိုက်ထည့်မှု ဆက်တင်များတွင် ဖွင့်ပြီးသောကြောင့်၊ ဤအဆင့်ပြီးပါပြီ။ နောက်တစ်ခုသို့!"</string>
<string name="setup_step1_action" msgid="4366513534999901728">"ဆက်တင်များတွင် ဖွင့်ရန်"</string>
<string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> သို့ပြောင်းမည်"</string>
<string name="setup_step2_instruction" msgid="9141481964870023336">"ရှေ့၊ \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" အားသင်၏ ပွင့်နေသည့်ထည့်သွင်းမှု နည်းလမ်းအဖြစ်ရွေးပါ။"</string>
- <string name="setup_step2_action" msgid="1660330307159824337">"ထည့်သွင်းခြင်းနည်းလမ်းများ ပြောင်းရန်"</string>
+ <string name="setup_step2_action" msgid="1660330307159824337">"စာရိုက်သွင်းမှုနည်းလမ်း ပြောင်းရန်"</string>
<string name="setup_step3_title" msgid="3154757183631490281">"ဝမ်းသာပါသည်၊ သင်အားလုံးသတ်မှတ်ပြီးပါပြီ!"</string>
<string name="setup_step3_instruction" msgid="8025981829605426000">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ဖြင့်သင့် ကြိုက်နှစ်သက်ရာ အပလီကေးရှင်းများအားလုံးအား ရိုက်ထည့်နိုင်ပါပြီ။"</string>
<string name="setup_step3_action" msgid="600879797256942259">"ထပ်ပေါင်းဘာသာစကားများ ပြုပြင်မည်"</string>
@@ -167,7 +176,7 @@
<string name="install_dict" msgid="180852772562189365">"တပ်ဆင်ပါ"</string>
<string name="cancel_download_dict" msgid="7843340278507019303">"ပယ်ဖျက်ရန်"</string>
<string name="delete_dict" msgid="756853268088330054">"ဖျက်ရန်"</string>
- <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"သင့်ဖုန်းရှိ ရွေးချယ်ထားသည့် ဘာသာအတွက် အဘိဓါန်ရှိပါသည်။ &lt;br/&gt; အဘိဓါန်အား &lt;b&gt;ဒေါင်းလုပ်လုပ်ကာ&lt;/b&gt; the <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> သင့်စာရိုက် အတွေ့အကြုံတိုးတက်စေရန် ကျွန်ုပ်တို့အကြံပြုပါသည်။ &lt;br/&gt; &lt;br/&gt; ဒေါင်းလုပ်လုပ်ရန် 3G ပေါ်တွင် ၁ မှ ၂ မိနစ်ခန့်ကြာနိုင်သည်။ သင့်တွင် &lt;b&gt;အကန့်သတ်မှရိ အချက်လက် သုံးစွဲမှု&lt;/b&gt;မရှိလျှင် ငွေကျသင့်နိုင်ပါသည်။ &lt;br/&gt; သင့်တွင် မည်သည့်အချက်လက်သုံးစွဲမှု ရှိနေသည်ကိုမသိလျှင်၊ အလိုအလျောက် ဒေါင်းလုပ်လုပ်ရန် Wi-Fi ကွန်ရက်တစ်ခု ရှာဖွေရန် တိုက်တွန်းပါသည်။ &lt;br/&gt; &lt;br/&gt; နည်းလမ်း: သင့်ဖုန်းကိရိယာရှိ &lt;b&gt;ဆက်တင်ထဲတွင်&lt;/b&gt; &lt;b&gt;ဘာသာ &amp; ထည့်သွင်းမှု&lt;/b&gt; သို့သွားကာ အဘိဓါန်များကို ဒေါင်းလုပ်လုပ်နိုင် ဖယ်ရှားနိုင်ပါသည်။"</string>
+ <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"သင့်ဖုန်းရှိ ရွေးချယ်ထားသည့် ဘာသာအတွက် အဘိဓါန်ရှိပါသည်။ &lt;br/&gt; အဘိဓါန်အား &lt;b&gt;ဒေါင်းလုပ်လုပ်ကာ&lt;/b&gt; the <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> သင့်စာရိုက် အတွေ့အကြုံတိုးတက်စေရန် ကျွန်ုပ်တို့အကြံပြုပါသည်။ &lt;br/&gt; &lt;br/&gt; ဒေါင်းလုပ်လုပ်ရန် 3G ပေါ်တွင် ၁ မှ ၂ မိနစ်ခန့်ကြာနိုင်သည်။ သင့်တွင် &lt;b&gt;အကန့်သတ်မှရိ အချက်လက် သုံးစွဲမှု&lt;/b&gt;မရှိလျှင် ငွေကျသင့်နိုင်ပါသည်။ &lt;br/&gt; သင့်တွင် မည်သည့်အချက်လက်သုံးစွဲမှု ရှိနေသည်ကိုမသိလျှင်၊ အလိုအလျောက် ဒေါင်းလုပ်လုပ်ရန် Wi-Fi ကွန်ရက်တစ်ခု ရှာဖွေရန် တိုက်တွန်းပါသည်။ &lt;br/&gt; &lt;br/&gt; နည်းလမ်း: သင့်ဖုန်းကိရိယာရှိ &lt;b&gt;ဆက်တင်ထဲတွင်&lt;/b&gt; &lt;b&gt;ဘာသာ &amp; စာရိုက်ထည့်မှု&lt;/b&gt; သို့သွားကာ အဘိဓါန်များကို ဒေါင်းလုပ်လုပ်နိုင် ဖယ်ရှားနိုင်ပါသည်။"</string>
<string name="download_over_metered" msgid="1643065851159409546">"ယခုဒေါင်းလုပ်လုပ်မည် (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
<string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi အသုံးပြု၍ ဒေါင်းလုပ်လုပ်ရန်"</string>
<string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> အတွက် အဘိဓါန် ရနိုင်ပါသည်"</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 11a87479a..d30912698 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer ved tastetrykk"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetrykk"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Hurtigvindu ved tastetrykk"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Inndatainnstillinger"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Utseende"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Flerspråksalternativer"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Innstillinger for ordføring"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Innstillinger"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Utseende og utforming"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Flerspråksalternativer"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Ordføring"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Tekstkorrigering"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Vis når flere inndataspråk er aktivert"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Vis lysbildeindikator"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Bruk en visuell indikator når du skyver fra Shift- eller symboltaster"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tregt tastevindu"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"U/ forsinkelse"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tast for taleinndata"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ingen taleinndatametoder er aktivert. Sjekk Språk og inndata-innstillingene."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurer inndatametoder"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Inndataspråk"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Språk"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Hjelp og tilbakemelding"</string>
- <string name="select_language" msgid="3693815588777926848">"Inndataspråk"</string>
+ <string name="select_language" msgid="5709487854987078367">"Språk"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Trykk på nytt for å lagre"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Trykk her for å lagre"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Ordbok tilgjengelig"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannia)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spansk (USA)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Aktiver"</string>
<string name="not_now" msgid="6172462888202790482">"Ikke nå"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Inndatastilen finnes allerede: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Forsinkelse lange tastetrykk"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrasjonstid ved tastetrykk"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Lydstyrke ved tastetrykk"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Bruk en ekstern ordlistefil"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Det ligger ingen ordboksfiler i Nedlastinger-mappen"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Velg ordboksfilen du vil installere"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vil du virkelig installere denne filen for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Det oppsto en feil"</string>
<string name="button_default" msgid="3988017840431881491">"Standard"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Velkommen til <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"med Ordføring"</string>
diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml
index 606517a08..bb9060822 100644
--- a/java/res/values-ne-rNP/strings.xml
+++ b/java/res/values-ne-rNP/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"कुञ्जी थिच्दा भाइब्रेट"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"कुञ्जी थिच्दा आवाज"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"कुञ्जी दबाउँदा पपअप"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"निवेश प्राथमिकता"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"उपस्थिति"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषी विकल्प"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"इशारा टाइप प्राथमिकता"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राथमिकताहरू"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"देखिने; रूपरेखा"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"बहुभाषी विकल्पहरू"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"इशारा टाइपिङ"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"पाठ सुधार"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"जब बहुसङ्ख्यक इनपुट भाषाहरू सक्षम भएपछि देखाउनुहोस्"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"स्लाइड सूचक देखाउनुहोस्"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"सिफ्ट वा प्रतिक कुञ्जीमा स्लाइड गर्ने बेला दृश्य सङ्केत देखाउनुहोस्"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"कि पपअप खारेजी ढिलाइ"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ढिलाइ छैन"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"पूर्वनिर्धारित"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"आवाज इनपुट कुञ्जी"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"कुनै आवाज इनपुट विधिहरू सक्षम गरिएका छैनन्। भाषा र इनपुट सेटिङहरूको जाँच गर्नुहोस्।"</string>
<string name="configure_input_method" msgid="373356270290742459">"इनपुट विधिहरू कन्फिगर गर्नुहोस्"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषाहरू"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"भाषाहरू"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"मद्दत र प्रतिक्रिया"</string>
- <string name="select_language" msgid="3693815588777926848">"इनपुट भाषाहरू"</string>
+ <string name="select_language" msgid="5709487854987078367">"भाषाहरू"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"बचत गर्न पुनः छुनुहोस्"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"सुरक्षित गर्न यहाँ छुनुहोस्"</string>
<string name="has_dictionary" msgid="6071847973466625007">"उपलब्ध शब्दकोश"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"किबोर्ड थिम"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"अंग्रेजी (युके)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"अंग्रेजी (युएस्)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"स्पेनिस (युएस्)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"सक्षम पार्नुहोस्"</string>
<string name="not_now" msgid="6172462888202790482">"अहिले होइन"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"यस्तो इनपुट शैली पहिले नै अवस्थित छ: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"कुञ्जी लामो थिचाइ ढिलाइ"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"कुञ्जी थिचाइ भाइब्रेसन अवधि"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"कुञ्जी थिचाइ आवाज भोल्युम"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"प्रमुख पूर्वावलोकन एनिमेसन अनुकूलित"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाह्य शब्दकोश फाइल पढ्नुहोस्"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फोल्डरमा कुनै शब्दकोश फाइलहरू छैनन्।"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"स्थापना गर्न कुनै शब्दकोश फाइल चयन गर्नुहोस्"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"वास्तवमै <xliff:g id="LANGUAGE_NAME">%s</xliff:g> को लागि यो फाइल स्थापना गर्नुहुन्छ?"</string>
- <string name="error" msgid="8940763624668513648">"कुनै त्रुटि भयो"</string>
<string name="button_default" msgid="3988017840431881491">"पूर्वनिर्धारित"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"तपाईँलाई स्वागत छ<xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"इशारा टाइप गर्नेसँग"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index 9a27aa1ff..26b1ff30a 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Trillen bij toetsaanslag"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Geluid bij toetsaanslag"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bij toetsaanslag"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Invoervoorkeuren"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Weergave"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Meertalige opties"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Voorkeuren voor Invoer met bewegingen"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Voorkeuren"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Uiterlijk en indelingen"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Meertalige opties"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Invoer met bewegingen"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Tekstcorrectie"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Weergeven wanneer meerdere invoertalen zijn geselecteerd"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Schuifaanduiding weergeven"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Zichtbare aanduiding weergeven wanneer wordt geschoven met Shift- of symbooltoetsen"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Afwijz.vertr. toetspop-up"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Geen vertraging"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standaard"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Toets voor spraakinvoer"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Geen spraakinvoermethoden ingeschakeld. Ga naar \'Instellingen voor taal en invoer\'."</string>
<string name="configure_input_method" msgid="373356270290742459">"Invoermethoden configureren"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Invoertalen"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Talen"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Help en feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Invoertalen"</string>
+ <string name="select_language" msgid="5709487854987078367">"Talen"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Tik nogmaals om op te slaan"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tik hier om op te slaan"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Woordenboek beschikbaar"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Toetsenbordthema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Engels (GB)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spaans (VS)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Inschakelen"</string>
<string name="not_now" msgid="6172462888202790482">"Niet nu"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Dezelfde invoerstijl bestaat al: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Vertraging toets lang indrukkn"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trilingsduur bij toetsgebruik"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Geluidsvolume bij toetsgebruik"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Toetsvoorbeeldanimatie aanpassen"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Extern woordenboekbestand lezen"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Geen woordenboekbestanden in de map \'Downloads\'"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecteer een woordenboekbestand om te installeren"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Wilt u dit bestand voor het <xliff:g id="LANGUAGE_NAME">%s</xliff:g> echt installeren?"</string>
- <string name="error" msgid="8940763624668513648">"Er is een fout opgetreden"</string>
<string name="button_default" msgid="3988017840431881491">"Standaard"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Welkom bij <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"met Invoer met bewegingen"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index c0b93d6a5..29e255e88 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Wibracja przy naciśnięciu"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Dźwięk przy naciśnięciu"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Powiększ po naciśnięciu"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Opcje wprowadzania"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Wygląd"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opcje obsługi wielu języków"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Ustawienia pisania gestami"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Ustawienia"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Wygląd i układy"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opcje obsługi wielu języków"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanie gestami"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Korekta tekstu"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Pokaż, gdy włączonych jest kilka języków wprowadzania"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Pokaż wskaźnik przesuwania"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Wyświetl ślad przesuwania od klawiszy Shift lub Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Opóźnienie znikania klawiszy"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez opóźnienia"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Wartość domyślna"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Klawisz rozpoznawania mowy"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nie włączono żadnych metod wprowadzania głosowego. Sprawdź ustawienia języka i wprowadzania."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfiguruj metody wprowadzania"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Języki wprowadzania"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Języki"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Pomoc i opinie"</string>
- <string name="select_language" msgid="3693815588777926848">"Języki wprowadzania"</string>
+ <string name="select_language" msgid="5709487854987078367">"Języki"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Dotknij ponownie, aby zapisać"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Kliknij tutaj, by zapisać"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Słownik dostępny"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Motyw klawiatury"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"angielski (Wielka Brytania)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angielski (Stany Zjednoczone)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"hiszpański (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Włącz"</string>
<string name="not_now" msgid="6172462888202790482">"Nie teraz"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Taki styl wprowadzania już istnieje: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Opóźnienie przy długim naciśnięciu"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Wibracja przy naciśniętym klawiszu"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Głośność przy naciśniętym klawiszu"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Dostosowywanie animacji podglądu klucza"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Odczyt zewnętrznego pliku słownika"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Brak plików słownika w folderze Pobrane pliki"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Wybierz plik słownika do zainstalowania"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Czy na pewno zainstalować ten plik dla języka: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Wystąpił błąd"</string>
<string name="button_default" msgid="3988017840431881491">"Domyślne"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Witamy w aplikacji <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"z pisaniem gestami"</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index ec506c0a3..bf180bfba 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao primir as teclas"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Som ao premir as teclas"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Mostrar popup ao premir tecla"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferências introdução"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspeto"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opções p/ vários idiomas"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. de intr. de gestos"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspeto e esquemas"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opções para vários idiomas"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar quando estão ativados vários idiomas de entrada"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador de deslize"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar pista visual ao deslizar das teclas Shift ou Símbolo"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Atraso p/ ignorar pop-up"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sem atraso"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predefinido"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Chave de entrada de voz"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nenhum método de entrada de texto por voz ativado. Verifique as definições de Idioma e introdução."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de introdução"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Ajuda e comentários"</string>
- <string name="select_language" msgid="3693815588777926848">"Idiomas de introdução"</string>
+ <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Toque novamente para guardar"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toque aqui para guardar"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Inglês (RU)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglês (EUA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Espanhol (EUA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Ativar"</string>
<string name="not_now" msgid="6172462888202790482">"Agora não"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Já existe o mesmo estilo de introdução: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao manter tecla premida"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duração vibr. ao premir teclas"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume do som ao premir teclas"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Pers. animação de pré-vis. teclas"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler ficheiro de dicionário externo"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Não há ficheiros de dicionário na pasta Transferências"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecione um ficheiro de dicionário para instalar"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Instalar mesmo este ficheiro para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Ocorreu um erro"</string>
<string name="button_default" msgid="3988017840431881491">"Predefinido"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Bem-vindo(a) a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"com a Escrita com Gestos"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index bf8c07ac5..d3ea70b0e 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar a tecla"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Som ao tocar a tecla"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Exibir pop-up ao digitar"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferências de entrada"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparência"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opções multilíngues"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. da entr. por gestos"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aparência e layouts"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opções multilíngues"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar quando vários idiomas de entrada estiverem ativados"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador de deslize"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar indicação visual ao deslizar teclas Shift ou de símbolos"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Duração de popup da tecla"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sem atraso"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Padrão"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tecla p/ inserir texto por voz"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nenhum método de entrada de texto por voz ativado. Verifique as configurações \"Idioma e entrada\"."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Ajuda e feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string>
+ <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Toque novamente para salvar"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toque aqui para salvar"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"inglês (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"inglês (EUA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"espanhol (EUA)"</string>
@@ -114,15 +131,8 @@
<string name="enable" msgid="5031294444630523247">"Ativar"</string>
<string name="not_now" msgid="6172462888202790482">"Agora não"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"O estilo de entrada já existe: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao pressionar teclas"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duração da vibração ao tocar"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume ao tocar na tela"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Person. princ. anim. de visualiz."</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler arquivo de dicionário externo"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nenhum arquivo de dicionário na pasta Downloads"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecione um arquivo de dicionário para instalar"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Deseja instalar este arquivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Ocorreu um erro"</string>
<string name="button_default" msgid="3988017840431881491">"Padrão"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Bem-vindo ao <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"com entrada por gestos"</string>
@@ -137,11 +147,11 @@
<string name="setup_step2_instruction" msgid="9141481964870023336">"Em seguida, selecione \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" como o método de entrada de texto ativo."</string>
<string name="setup_step2_action" msgid="1660330307159824337">"Alternar métodos de entrada"</string>
<string name="setup_step3_title" msgid="3154757183631490281">"Parabéns, você terminou!"</string>
- <string name="setup_step3_instruction" msgid="8025981829605426000">"Agora você pode digitar em todos os seus aplicativos favoritos com o <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
+ <string name="setup_step3_instruction" msgid="8025981829605426000">"Agora você pode digitar em todos os seus apps favoritos com o <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
<string name="setup_step3_action" msgid="600879797256942259">"Configurar idiomas adicionais"</string>
<string name="setup_finish_action" msgid="276559243409465389">"Concluído"</string>
- <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar ícone do aplicativo"</string>
- <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostrar ícone do aplicativo no iniciador"</string>
+ <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar ícone do app"</string>
+ <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostrar ícone do app no iniciador"</string>
<string name="app_name" msgid="6320102637491234792">"Provedor de dicionário"</string>
<string name="dictionary_provider_name" msgid="3027315045397363079">"Provedor de dicionário"</string>
<string name="dictionary_service_name" msgid="6237472350693511448">"Serviço de dicionário"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 0ec513aaf..9eaf0f57f 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrare la apăsarea tastei"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Sunet la apăsarea tastei"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Pop-up la apăsarea tastei"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Preferințe pentru intrare"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspect"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opțiuni pt. diverse limbi"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Prefer. tastare gestuală"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferinţe"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Aspect"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opțiuni multilingve"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Tastare gestuală"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Corectare text"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"Setări avansate"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"Temă"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Afişaţi când sunt activate mai multe limbi de intrare"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Afișați indicator glisare"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Afișați un indicator în timpul glisării de la Shift sau tasta de simboluri"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Închidere pop-up taste"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Fără întârziere"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Prestabilit"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tastă pentru intrarea vocală"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nicio metodă de intrare vocală activată. Verificați setările pentru limbă și introducere de text."</string>
<string name="configure_input_method" msgid="373356270290742459">"Configuraţi metodele de intrare"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Selectaţi limba"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Limbi"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Ajutor și feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Limbi de introducere de text"</string>
+ <string name="select_language" msgid="5709487854987078367">"Limbi"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Atingeţi din nou pentru a salva"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Atingeți aici pentru a salva"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Dicţionar disponibil"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Temă pentru tastatură"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"engleză (Regatul Unit)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"engleză (S.U.A.)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"spaniolă (S.U.A.)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"Activaţi"</string>
<string name="not_now" msgid="6172462888202790482">"Nu acum"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Acelaşi stil de introducere există deja: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Timpul apăsării lungi a tastei"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrare după apăsarea tastei"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Sunet la apăsarea tastelor"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Citiți fișierul de dicționar extern"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nu există fișiere dicționar în dosarul Descărcări"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selectați un fișier dicționar de instalat"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Doriți să instalați acest fișier pentru <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"A apărut o eroare"</string>
<string name="button_default" msgid="3988017840431881491">"Prestabilit"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Bun venit la <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"cu Tastarea gestuală"</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index 016bcb30d..23e84b1b5 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Виброотклик клавиш"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук клавиш"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Увеличение нажатых"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Параметры ввода"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Внешний вид"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Языковые параметры"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Непрерывный ввод"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Настройки"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Вид и раскладки"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Дополнительные языки"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Непрерывный ввод"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Исправление текста"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Показывать, когда включено несколько раскладок"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"След от переключателя режима"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Показывать след при проведении пальцем от кнопок Shift и \"Символы\""</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Задержка закрытия"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задержки"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"По умолчанию"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Кнопка голосового ввода"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Голосовой способ ввода не включен. Проверьте раздел настроек \"Язык и ввод\"."</string>
<string name="configure_input_method" msgid="373356270290742459">"Настройка способов ввода"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Языки ввода"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Выберите язык"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Справка/отзыв"</string>
- <string name="select_language" msgid="3693815588777926848">"Языки ввода"</string>
+ <string name="select_language" msgid="5709487854987078367">"Язык"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Нажмите, чтобы сохранить"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Нажмите, чтобы сохранить"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Доступен словарь"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Тема клавиатуры"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"английский (Великобритания)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"английский (США)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Испанский (США)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Включить"</string>
<string name="not_now" msgid="6172462888202790482">"Не сейчас"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Такой стиль ввода уже существует: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Долгое нажатие"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Вибросигнал при нажатии клавиш"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Звук при нажатии клавиш"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Загрузить словарь из файла"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"В папке \"Загрузки\" нет словарей"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Выберите файл словаря"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Установить этот файл для следующего языка: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Ошибка"</string>
<string name="button_default" msgid="3988017840431881491">"По умолчанию"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Представляем приложение \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\""</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"с непрерывным вводом"</string>
diff --git a/java/res/values-si-rLK/strings.xml b/java/res/values-si-rLK/strings.xml
index 98caa36db..7324c28ed 100644
--- a/java/res/values-si-rLK/strings.xml
+++ b/java/res/values-si-rLK/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"යතුර එබීමට කම්පනය කිරීම සක්‍රියයි"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"යතුරු එබිම මත හඬ"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"යතුරු එබීම මත උත්පතනය"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ආදාන මනාපය"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"පෙනුම"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"බහු මූර්ධජ අක්ෂර විකල්ප"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"ඉංගිතයෙන් ටයිප් කිරීමේ මනාපය"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"අභිරුචි"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"පෙනුම සහ පිරිසැලසුම්"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"බහු භාෂා විකල්ප"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"ඉංගිත ටයිප් කිරීම"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"පෙළ නිවැරදි කිරීම"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"උසස්"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"තේමාව"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"බහුවිධ ආදාන භාෂා සබල කර ඇති විට පෙන්වන්න"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"සර්පණ දර්ශකය පෙන්වන්න"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ෂිෆ්ට් හෝ සංකේත යතුරු වෙතින් සර්පණය කරන අතරතුර දෘෂ්‍ය ඉඟි දර්ශනය කරන්න"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"යතුරු උත්පතන ඉවත් කිරීමේ ප්‍රමාදය"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ප්‍රමාද නැත"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"සුපුරුදු"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"හඬ ආදාන යතුර"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"හඬ ආදාන සබල කර නැත. භාෂාව සහ ආදාන සැකසීම් පරීක්ෂා කරන්න."</string>
<string name="configure_input_method" msgid="373356270290742459">"ආදාන ක්‍රම වින්‍යාස කරන්න"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ආදාන භාෂා"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"භාෂා"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"උදවු සහ ප්‍රතිපෝෂණ"</string>
- <string name="select_language" msgid="3693815588777926848">"ආදාන භාෂා"</string>
+ <string name="select_language" msgid="5709487854987078367">"භාෂා"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"සුරැකීමට නැවත ස්පර්ශ කරන්න"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"සුරැකීමට මෙතැන ස්පර්ෂ කරන්න"</string>
<string name="has_dictionary" msgid="6071847973466625007">"ශබ්ද කෝෂය ලබාගත හැක"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"යතුරු පුවරු තේමාව"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ඉංග්‍රීසි (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ඉංග්‍රීසි (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ස්පාඤ්ඤ (US)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"සබල කරන්න"</string>
<string name="not_now" msgid="6172462888202790482">"දැන් නොවේ"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"සමාන ආදාන විලාසය දැනටමත් පවතී: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"යතුරු දිගු එබීම් ප්‍රමාදය"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"යතුරු එබිම් කම්පන කාලපරිච්ඡේදය"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"යතුරු එබීම් හඬ තීව්‍රතාවය"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"බාහිර ශබ්ද කෝෂ ගොනුව කියවන්න"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"බාගැනීම් ෆෝල්ඩරය තුළ ශබ්දකෝෂ ගොනු නොමැත"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ස්ථාපනය කිරීමට ශබ්ද කෝෂ ගොනුවක් තෝරන්න"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> සඳහා ඇත්තටම මෙම ගොනුව ස්ථාපනය කරන්නද?"</string>
- <string name="error" msgid="8940763624668513648">"දෝෂයක් ඇති විය"</string>
<string name="button_default" msgid="3988017840431881491">"සුපුරුදු"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> වෙත සාදරයෙන් පිළිගනිමු"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"ඉංගිත ටයිප් කිරීම් සමග"</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index 6a164923e..77e718cf8 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Pri stlačení klávesu vibrovať"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri stlačení klávesu"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Zobraziť znaky pri stlačení klávesu"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Predvoľby vstupu"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Vzhľad"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Možnosti viacer. jazykov"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Predvoľby písania gestami"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Predvoľby"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Vzhľad a rozloženia"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Možnosti viacerých jazykov"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Písanie gestami"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Oprava textu"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Zobraziť, keď je povolených viac jazykov vstupu"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Zobraziť posuvný indikátor"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Zobraziť vizuálny signál pri prejdení z klávesov Shift alebo Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Onesk. zrušenia kľúč. kon. okna"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez oneskorenia"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predvolená"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Kľúč hlasového vstupu"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nie sú povolené žiadne metódy hlasového vstupu. Skontrolujte nastavenia položky Jazyk a vstup."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurovať metódy vstupu"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Jazyky vstupu"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Jazyky"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Pomocník a spätná väzba"</string>
- <string name="select_language" msgid="3693815588777926848">"Jazyky vstupu"</string>
+ <string name="select_language" msgid="5709487854987078367">"Jazyky"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Opätovným dotykom uložíte"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klepnutím tu uložíte"</string>
<string name="has_dictionary" msgid="6071847973466625007">"K dispozícii je slovník"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Motív klávesnice"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Anglická klávesnica (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglická klávesnica (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"španielčina (USA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Povoliť"</string>
<string name="not_now" msgid="6172462888202790482">"Teraz nie"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Rovnaký štýl vstupu už existuje: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Oneskor. pri stlač. a podržaní"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trvanie vibrov. pri stlač. kl."</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Hlasitosť pri stlačení klávesu"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Prispôsobiť animáciu ukážky kľúča"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Čítať súbor externého slovníka"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"V priečinku Sťahovanie nie sú žiadne súbory slovníka"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vyberte súbor slovníka, ktorý chcete nainštalovať"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Chcete nainštalovať tento súbor pre jazyk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Vyskytla sa chyba"</string>
<string name="button_default" msgid="3988017840431881491">"Predvolené"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Vitajte v aplikácii <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"s funkciou Písanie gestami"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index 692ec60ec..d44fd0a48 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibriranje ob pritisku tipke"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Zvok ob pritisku tipke"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Povečaj črko ob pritisku"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Nastavitve vnosa"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Videz"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Večjezikovne možnosti"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Nastavitve pisanja s kretnjami"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Nastavitve"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Videz in postavitve"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Večjezikovne možnosti"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanje s kretnjami"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Popravki besedila"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Pokaži, ko je omogočenih več jezikov vnosa"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Pokaži indikator drsenja"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Pokaži vizualni znak pri drsenju s tipk Shift ali Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Trajanje povečanja tipke"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Brez zakasnitve"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Privzeto"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni vnos"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ni omogočenih glasovnih načinov vnosa. Preverite nastavitve v razdelku »Jezik in vnos«."</string>
<string name="configure_input_method" msgid="373356270290742459">"Nastavitev načinov vnosa"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Jeziki vnosa"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Jeziki"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Pomoč in povratne informacije"</string>
- <string name="select_language" msgid="3693815588777926848">"Jeziki vnosa"</string>
+ <string name="select_language" msgid="5709487854987078367">"Jeziki"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Dotaknite se še enkrat, da shranite"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Če želite shraniti, se dotaknite tukaj"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Slovar je na voljo"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"angleščina (Združeno kraljestvo)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angleščina (ZDA)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"španščina (ZDA)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Omogoči"</string>
<string name="not_now" msgid="6172462888202790482">"Ne zdaj"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Isti slog vnosa že obstaja: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Zakasn. za dolg pritisk tipke"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trajanje vibr. ob prit. tipke"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Glasn. zvoka ob pritisku tipke"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Prilagaj. animacij predogleda tipk"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Branje zunanje datoteke slovarja"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"V mapi »Prenosi« ni nobene datoteke slovarja"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Izberite datoteko slovarja, ki jo želite namestiti"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Zares želite namestiti to datoteko za ta jezik: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Prišlo je do napake"</string>
<string name="button_default" msgid="3988017840431881491">"Privzeto"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Pozdravljeni v aplikaciji <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"s pisanjem s kretnjami"</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index 6e2f26694..1e86769a4 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирај на притисак тастера"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притисак тастера"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Искачући прозор приликом притиска тастера"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Подешавања уноса"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Изглед"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Опције за више језика"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Подешавања за унос покретима"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Подешавања"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Изглед и распореди"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Опције за више језика"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Куцање покретима"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Исправљање текста"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Прикажи када је омогућено више језика уноса"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Прикажи индикатор превлачења"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Приказује визуел. траг при превлачењу са тастера Shift или Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Одложи одбац. иск. прозора тастера"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без одлагања"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Подразумевано"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Тастер за гласовни унос"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ниједан метод гласовног уноса није омогућен. Проверите Подешавања језика и уноса."</string>
<string name="configure_input_method" msgid="373356270290742459">"Конфигурисање метода уноса"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Језици за унос"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Језици"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Помоћ и повратне информације"</string>
- <string name="select_language" msgid="3693815588777926848">"Језици уноса"</string>
+ <string name="select_language" msgid="5709487854987078367">"Језици"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Поново додирните да бисте сачували"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Додирните овде да бисте сачували"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Речник је доступан"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Тема тастатуре"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"енглески (УК)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"енглески (САД)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"шпански (САД)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Омогући"</string>
<string name="not_now" msgid="6172462888202790482">"Не сада"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Исти стил уноса већ постоји: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Одлагање при дугом притиску"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Трајање вибрације при притиску"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Јачина звука при притиску"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Прилаг. анимац. за преглед тастера"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Читање датотеке спољног речника"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"У директоријуму Преузимања нема датотека речника"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Избор датотеке речника за инсталирање"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Желите ли стварно да инсталирате ову датотеку за <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Дошло је до грешке"</string>
<string name="button_default" msgid="3988017840431881491">"Подразумевано"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Добро дошли у <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"помоћу Куцања покретима"</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 3ea4b9d51..d66c6c8d8 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrera vid tangenttryck"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Knappljud"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Popup vid knapptryck"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Inmatningsinställningar"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Utseende"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Flerspråkiga alternativ"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Inställningar för att skriva in gester"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Inställningar"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Utseende och layouter"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Alternativ för flera språk"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Svepskrivning"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Textkorrigering"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Visa när flera inmatningsspråk är aktiverade"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Visa dragreglage"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Visa svepning när du drar från Skift- eller Symboltangenten"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ta bort popup-fördröjning"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Fördröj inte"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Röstinmatningsknapp"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ingen röstinmatningsmetod har aktiverats. Kontrollera språk- och inmatningsinställningarna."</string>
<string name="configure_input_method" msgid="373356270290742459">"Konfigurera inmatningsmetoder"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Inmatningsspråk"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Språk"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Hjälp och feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Inmatningsspråk"</string>
+ <string name="select_language" msgid="5709487854987078367">"Språk"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Spara genom att trycka igen"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tryck här om du vill spara"</string>
<string name="has_dictionary" msgid="6071847973466625007">"En ordlista är tillgänglig"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tangentbordstema"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Engelskt (brittiskt)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engelskt (amerikanskt)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"spanska (USA)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Aktivera"</string>
<string name="not_now" msgid="6172462888202790482">"Inte nu"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Samma indatastil finns redan: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Fördröjning vid långt tryck"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrationslängd för tangenter"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Ljudvolym för tangenter"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Läs extern ordboksfil"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Inga ordboksfiler i mappen Hämtningar"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Välj en ordboksfil att installera"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vill du verkligen installera filen för <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Ett fel uppstod"</string>
<string name="button_default" msgid="3988017840431881491">"Standard"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Välkommen till <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"med svepskrivning"</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index cfcf2af44..761d0b326 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Tetema unabofya kitufe"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Toa sauti unapobofya kitufe"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ibuka kitufe kinapobonyezwa"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Andika mapendeleo"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Mwonekano"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Chaguo za lugha nyingi"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Mapendeleo ya kuchapa kwa ishara"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Mapendeleo"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Mwonekano na mipangilio"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Chaguo za lugha nyingi"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Kuandika kwa Ishara"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Masahihisho ya maandishi"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Onyesha wakati lugha ingizo mbalimbali zinapowezeshwa"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Onyesha kiashirio cha slaidi"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Onyesha ishara dhahiri unapotelezesha kutoka kwenye vitufe vya Shift au Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Kuchelewesha kutupa kitufe ibukizi"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Hakuna kuchelewa"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Chaguo-msingi"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Kibao cha kuweka data kwa kutamka"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Hakuna mbinu ya kuweka data kwa kutamka iliyowashwa. Angalia Lugha na mipangilio ya kuingiza data."</string>
<string name="configure_input_method" msgid="373356270290742459">"Sanidi mbinu za uingizaji"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Lugha za uingizaji"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Lugha"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Usaidizi na maoni"</string>
- <string name="select_language" msgid="3693815588777926848">"Lugha zinazoruhusiwa"</string>
+ <string name="select_language" msgid="5709487854987078367">"Lugha"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Gusa tena ili kuhifadhi"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Gusa hapa ili uhifadhi"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Kamusi inapatikana"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Maandhari ya kibodi"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Kiingereza cha (Uingereza)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Kiingereza cha (Marekani)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Kihispania (Marekani)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Washa"</string>
<string name="not_now" msgid="6172462888202790482">"Sio sasa"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Mfumo sawa wa maingizo tayari upo: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ubofyaji kitufe kunakochelewa"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Bonyeza kitufe cha muda wa kutetema"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Bonyeza kitufe cha kiwango cha sauti"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Wekea mapendeleo uhuishaji maalum wa kuchungulia kwanza"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Soma faili ya kamusi ya nje"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Hakuna faili za kamusi katika folda ya Vilivyopakuliwa"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Chagua faili ya kamusi ya kusakinisha"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ungependa kusakinisha faili hii ya <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Kulikuwa na hitilafu"</string>
<string name="button_default" msgid="3988017840431881491">"Chaguo-msingi"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Karibu kwenye <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"kwa Kuandika kwa ishara"</string>
diff --git a/java/res/values-sw600dp-land/config.xml b/java/res/values-sw600dp-land/config.xml
index c238b2c42..d33af2e37 100644
--- a/java/res/values-sw600dp-land/config.xml
+++ b/java/res/values-sw600dp-land/config.xml
@@ -23,7 +23,7 @@
<!-- Preferable keyboard height in absolute scale: 45.0mm -->
<!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
<dimen name="config_default_keyboard_height">283.5dp</dimen>
- <fraction name="config_min_keyboard_height">45%p</fraction>
+ <fraction name="config_min_keyboard_height">40%p</fraction>
<dimen name="config_more_keys_keyboard_key_height">81.9dp</dimen>
@@ -32,14 +32,18 @@
<fraction name="config_key_vertical_gap_holo">4.5%p</fraction>
<fraction name="config_key_horizontal_gap_holo">0.9%p</fraction>
- <fraction name="config_key_letter_ratio">50%</fraction>
+ <fraction name="config_key_letter_ratio_holo">50%</fraction>
+ <fraction name="config_key_letter_ratio_lxx">50%</fraction>
<fraction name="config_key_large_letter_ratio_holo">48%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">60%</fraction>
- <fraction name="config_key_label_ratio">32%</fraction>
- <fraction name="config_key_hint_letter_ratio">23%</fraction>
+ <fraction name="config_key_label_ratio_holo">32%</fraction>
+ <fraction name="config_key_label_ratio_lxx">32%</fraction>
+ <fraction name="config_key_hint_letter_ratio_holo">23%</fraction>
+ <fraction name="config_key_hint_letter_ratio_lxx">23%</fraction>
<fraction name="config_key_hint_label_ratio_holo">34%</fraction>
<fraction name="config_key_hint_label_ratio_lxx">20%</fraction>
- <fraction name="config_key_shifted_letter_hint_ratio">29%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_holo">29%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_lxx">29%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">30.0%</fraction>
<dimen name="config_key_shifted_letter_hint_padding">4dp</dimen>
diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index 3c489bbe8..44e0d0632 100644
--- a/java/res/values-sw600dp/config.xml
+++ b/java/res/values-sw600dp/config.xml
@@ -40,18 +40,20 @@
<fraction name="config_key_horizontal_gap_holo">1.565%p</fraction>
<!-- config_more_keys_keyboard_key_height x -0.5 -->
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
- <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
- <dimen name="config_key_preview_height">94.5dp</dimen>
<fraction name="config_key_preview_text_ratio">50%</fraction>
- <fraction name="config_key_letter_ratio">42%</fraction>
+ <fraction name="config_key_letter_ratio_holo">42%</fraction>
+ <fraction name="config_key_letter_ratio_lxx">50%</fraction>
<fraction name="config_key_large_letter_ratio_holo">45%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">60%</fraction>
- <fraction name="config_key_label_ratio">25%</fraction>
- <fraction name="config_key_hint_letter_ratio">23%</fraction>
+ <fraction name="config_key_label_ratio_holo">25%</fraction>
+ <fraction name="config_key_label_ratio_lxx">32%</fraction>
+ <fraction name="config_key_hint_letter_ratio_holo">23%</fraction>
+ <fraction name="config_key_hint_letter_ratio_lxx">23%</fraction>
<fraction name="config_key_hint_label_ratio_holo">28%</fraction>
<fraction name="config_key_hint_label_ratio_lxx">20%</fraction>
- <fraction name="config_key_shifted_letter_hint_ratio">22%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_holo">22%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_lxx">22%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">28.0%</fraction>
<dimen name="config_key_hint_letter_padding">3dp</dimen>
<dimen name="config_key_shifted_letter_hint_padding">3dp</dimen>
diff --git a/java/res/values-sw768dp-land/config.xml b/java/res/values-sw768dp-land/config.xml
index 587a3c1a4..fdb95c6cc 100644
--- a/java/res/values-sw768dp-land/config.xml
+++ b/java/res/values-sw768dp-land/config.xml
@@ -23,25 +23,27 @@
<!-- Preferable keyboard height in absolute scale: 58.0mm -->
<!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
<dimen name="config_default_keyboard_height">365.4dp</dimen>
- <fraction name="config_min_keyboard_height">45%p</fraction>
+ <fraction name="config_min_keyboard_height">35%p</fraction>
<fraction name="config_keyboard_top_padding_holo">1.896%p</fraction>
<fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
<fraction name="config_key_vertical_gap_holo">3.690%p</fraction>
<fraction name="config_key_horizontal_gap_holo">1.030%p</fraction>
- <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
<dimen name="config_more_keys_keyboard_key_height">81.9dp</dimen>
- <dimen name="config_key_preview_height">107.1dp</dimen>
- <fraction name="config_key_letter_ratio">43%</fraction>
+ <fraction name="config_key_letter_ratio_holo">43%</fraction>
+ <fraction name="config_key_letter_ratio_lxx">50%</fraction>
<fraction name="config_key_large_letter_ratio_holo">42%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">60%</fraction>
- <fraction name="config_key_label_ratio">28%</fraction>
- <fraction name="config_key_hint_letter_ratio">23%</fraction>
+ <fraction name="config_key_label_ratio_holo">28%</fraction>
+ <fraction name="config_key_label_ratio_lxx">32%</fraction>
+ <fraction name="config_key_hint_letter_ratio_holo">23%</fraction>
+ <fraction name="config_key_hint_letter_ratio_lxx">23%</fraction>
<fraction name="config_key_hint_label_ratio_holo">28%</fraction>
<fraction name="config_key_hint_label_ratio_lxx">20%</fraction>
- <fraction name="config_key_shifted_letter_hint_ratio">24%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_holo">24%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_lxx">24%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">24.00%</fraction>
<!-- For 5-row keyboard -->
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index f573c40df..13be6bedf 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -32,7 +32,6 @@
<fraction name="config_key_horizontal_gap_holo">1.066%p</fraction>
<!-- config_more_keys_keyboard_key_height x -0.5 -->
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
- <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
<dimen name="config_more_keys_keyboard_key_height">63.0dp</dimen>
<dimen name="config_more_keys_keyboard_key_horizontal_padding">12dp</dimen>
@@ -40,16 +39,19 @@
<!-- config_more_keys_keyboard_key_height x 1.2 -->
<dimen name="config_more_keys_keyboard_slide_allowance">98.3dp</dimen>
- <dimen name="config_key_preview_height">94.5dp</dimen>
<fraction name="config_key_preview_text_ratio">50%</fraction>
- <fraction name="config_key_letter_ratio">40%</fraction>
+ <fraction name="config_key_letter_ratio_holo">40%</fraction>
+ <fraction name="config_key_letter_ratio_lxx">50%</fraction>
<fraction name="config_key_large_letter_ratio_holo">42%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">60%</fraction>
- <fraction name="config_key_label_ratio">28%</fraction>
- <fraction name="config_key_hint_letter_ratio">23%</fraction>
+ <fraction name="config_key_label_ratio_holo">28%</fraction>
+ <fraction name="config_key_label_ratio_lxx">32%</fraction>
+ <fraction name="config_key_hint_letter_ratio_holo">23%</fraction>
+ <fraction name="config_key_hint_letter_ratio_lxx">23%</fraction>
<fraction name="config_key_hint_label_ratio_holo">28%</fraction>
<fraction name="config_key_hint_label_ratio_lxx">20%</fraction>
- <fraction name="config_key_shifted_letter_hint_ratio">26%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_holo">26%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_lxx">26%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">29.03%</fraction>
<dimen name="config_key_hint_letter_padding">3dp</dimen>
<dimen name="config_key_shifted_letter_hint_padding">3dp</dimen>
diff --git a/java/res/values-ta-rIN/strings.xml b/java/res/values-ta-rIN/strings.xml
index 3b5953582..93282278e 100644
--- a/java/res/values-ta-rIN/strings.xml
+++ b/java/res/values-ta-rIN/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"விசையழுத்தின்போது அதிர்வுரு"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"விசையழுத்தத்தின்போது ஒலியெழுப்பு"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"விழை அழுத்தத்தின்போது பாப்அப் செய்"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"உள்ளீட்டு விருப்பங்கள்"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"தோற்றம்"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"பல மொழி விருப்பங்கள்"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"சைகைத்தட்டச்சு விருப்பம்"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"விருப்பங்கள்"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"தோற்றம் &amp; தளவமைப்புகள்"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"பன்மொழி தேர்வுகள்"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"சைகைத் தட்டச்சு"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"உரை திருத்தம்"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"பல உள்ளீட்டு மொழிகள் இயக்கப்பட்டிருக்கும்போது காட்டு"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"இழுத்தல் குறிப்பானைக் காட்டு"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ஷிப்ட் அல்லது குறியீட்டு விசைகளிலிருந்து இழுத்து செல்லும்போது காட்சித் தடத்தைக் காட்டு"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"விசை பாப்அப் விலக்கின் தாமதம்"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"தாமதம் வேண்டாம்"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"இயல்புநிலை"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"குரல் உள்ளீட்டு விசை"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"குரல் உள்ளீட்டு முறைகள் எதுவும் இயக்கப்படவில்லை. மொழி &amp; உள்ளீட்டு அமைப்புகளைச் சரிபார்க்கவும்."</string>
<string name="configure_input_method" msgid="373356270290742459">"உள்ளீட்டு முறைகளை உள்ளமைத்தல்"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"உள்ளீட்டு மொழிகள்"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"மொழிகள்"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"உதவி &amp; கருத்து"</string>
- <string name="select_language" msgid="3693815588777926848">"உள்ளீட்டு மொழிகள்"</string>
+ <string name="select_language" msgid="5709487854987078367">"மொழிகள்"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"சேமிக்க தொடவும்"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"சேமிக்க இங்கு தொடவும்"</string>
<string name="has_dictionary" msgid="6071847973466625007">"அகராதி உள்ளது"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"விசைப்பலகை தீம்"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ஆங்கிலம் (யூகே)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ஆங்கிலம் (யூஎஸ்)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ஸ்பானிஷ் (யூஎஸ்)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"இயக்கு"</string>
<string name="not_now" msgid="6172462888202790482">"இப்பொழுது வேண்டாம்"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"இதே உள்ளீட்டு நடை ஏற்கனவே உள்ளது: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"விசையின் நீண்ட அழுத்தத்தின் தாமதம்"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"விசையழுத்த அதிர்வின் காலஅளவு"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"விசையழுத்த ஒலியளவு"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"விசை முன்னோட்ட அனிமேஷனைத் தனிப்பயனாக்கு"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"வெளிப்புற அகராதி கோப்பைப் படித்தல்"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"பதிவிறக்கங்கள் கோப்புறையில் அகராதி கோப்புகள் எதுவும் இல்லை"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"நிறுவுவதற்கு அகராதி கோப்பைத் தேர்ந்தெடுக்கவும்"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> மொழிக்கான இந்தக் கோப்பை நிச்சயமாக நிறுவ வேண்டுமா?"</string>
- <string name="error" msgid="8940763624668513648">"பிழை ஏற்பட்டது"</string>
<string name="button_default" msgid="3988017840431881491">"இயல்புநிலை"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> பயன்பாட்டிற்கு வரவேற்கிறோம்"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"சைகை உள்ளீடு மூலம்"</string>
diff --git a/java/res/values-te-rIN/strings.xml b/java/res/values-te-rIN/strings.xml
index 340553d9c..7b18342f1 100644
--- a/java/res/values-te-rIN/strings.xml
+++ b/java/res/values-te-rIN/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"కీని నొక్కినప్పుడు వైబ్రేట్"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"కీని నొక్కినప్పుడు ధ్వని"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"కీని నొక్కినప్పుడు పాప్‌అప్ చూపు"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ఇన్‌పుట్ ప్రాధాన్యతలు"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"కనిపించే తీరు"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"బహుళ భాషా ఎంపికలు"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"సంజ్ఞ టైపింగ్ ప్రాధాన్యతలు"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ప్రాధాన్యతలు"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"కనిపించే తీరు &amp; లేఅవుట్‌లు"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"బహుభాషా ఎంపికలు"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"సంజ్ఞ టైపింగ్"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"వచన సవరణ"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"బహుళ ఇన్‌పుట్ భాషలు ప్రారంభించబడినప్పుడు చూపు"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"స్లైడ్ సూచికను చూపు"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift లేదా గుర్తు కీల నుండి స్లైడ్ చేసేటప్పుడు దృశ్యమాన సంకేతాన్ని ప్రదర్శించు"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"కీ పాప్‌అప్ తీసివేత ఆలస్యం"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ఆలస్యం లేదు"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"డిఫాల్ట్"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"వాయిస్ ఇన్‌పుట్ కీ"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"వాయిస్ ఇన్‌పుట్ పద్ధతులు ఏవీ ప్రారంభించబడలేదు. భాష &amp; ఇన్‌పుట్ సెట్టింగ్‌లను తనిఖీ చేయండి."</string>
<string name="configure_input_method" msgid="373356270290742459">"ఇన్‌పుట్ పద్ధతులను కాన్ఫిగర్ చేయండి"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ఇన్‌పుట్ భాషలు"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"భాషలు"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"సహాయం &amp; అభిప్రాయం"</string>
- <string name="select_language" msgid="3693815588777926848">"ఇన్‌పుట్ భాషలు"</string>
+ <string name="select_language" msgid="5709487854987078367">"భాషలు"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"సేవ్ చేయడానికి మళ్లీ తాకండి"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"సేవ్ చేయడానికి ఇక్కడ తాకండి"</string>
<string name="has_dictionary" msgid="6071847973466625007">"నిఘంటువు అందుబాటులో ఉంది"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"కీబోర్డ్ థీమ్"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"ఆంగ్లం (యుకె)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"ఆంగ్లం (యుఎస్)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"స్పానిష్ (యుఎస్)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"ప్రారంభించండి"</string>
<string name="not_now" msgid="6172462888202790482">"ఇప్పుడు కాదు"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"ఇదే ఇన్‌పుట్ శైలి ఇప్పటికే ఉంది: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"కీని ఎక్కువసేపు నొక్కి ఉంచాల్సిన సమయంలో ఆలస్యం"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"కీని నొక్కినప్పుడు వైబ్రేషన్ వ్యవధి"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"కీని నొక్కినప్పుడు చేసే ధ్వని వాల్యూమ్"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"కీ పరిదృశ్య యానిమే. అనుకూలీకరించండి"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"బాహ్య నిఘంటువు ఫైల్‌ను చదవండి"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"డౌన్‌లోడ్‌ల ఫోల్డర్‌లో నిఘంటువు ఫైల్‌లు ఏవీ లేవు"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ఇన్‌స్టాల్ చేయాల్సిన నిఘంటువు ఫైల్‌ను ఎంచుకోండి"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> కోసం ఈ ఫైల్‌ను నిజంగానే ఇన్‌స్టాల్ చేయాలా?"</string>
- <string name="error" msgid="8940763624668513648">"లోపం ఏర్పడింది"</string>
<string name="button_default" msgid="3988017840431881491">"డిఫాల్ట్"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>కు స్వాగతం"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"సంజ్ఞ టైపింగ్‌తో"</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 3e69f12b1..8c6701d0a 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"สั่นเมื่อกดปุ่ม"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"ส่งเสียงเมื่อกดปุ่ม"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"ป๊อปอัปเมื่อกดแป้น"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ค่ากำหนดการป้อนข้อมูล"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"ลักษณะที่ปรากฏ"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ตัวเลือกหลายภาษา"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"การป้อนข้อมูลด้วยท่าทาง"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ค่ากำหนด"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"ลักษณะที่ปรากฏและรูปแบบ"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"ตัวเลือกหลายภาษา"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"การป้อนข้อมูลด้วยท่าทาง"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"การแก้ไขข้อความ"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"แสดงเมื่อเปิดใช้งานภาษาสำหรับอินพุตหลายภาษา"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"แสดงสัญลักษณ์การเลื่อน"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"แสดงสัญลักษณ์ภาพขณะเลื่อนจากแป้น Shift หรือแป้นสัญลักษณ์"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"หน่วงเวลาก่อนปิดป๊อปอัพหลัก"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ไม่มีการหน่วงเวลา"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ค่าเริ่มต้น"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"แป้นการป้อนข้อมูลด้วยเสียง"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"ไม่ได้เปิดใช้วิธีการป้อนข้อมูลด้วยเสียง ตรวจสอบภาษาและการตั้งค่าการป้อนข้อมูล"</string>
<string name="configure_input_method" msgid="373356270290742459">"กำหนดค่าวิธีการป้อนข้อมูล"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ภาษาในการป้อนข้อมูล"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"ภาษา"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"ความช่วยเหลือและความคิดเห็น"</string>
- <string name="select_language" msgid="3693815588777926848">"ภาษาสำหรับการป้อนข้อมูล"</string>
+ <string name="select_language" msgid="5709487854987078367">"ภาษา"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"แตะอีกครั้งเพื่อบัน​​ทึก"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"แตะที่นี่เพื่อบันทึก"</string>
<string name="has_dictionary" msgid="6071847973466625007">"มีพจนานุกรมให้ใช้งาน"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"ชุดรูปแบบแป้นพิมพ์"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"อังกฤษ (สหราชอาณาจักร)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"อังกฤษ (อเมริกัน)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"สเปน (สหรัฐอเมริกา)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"เปิดใช้งาน"</string>
<string name="not_now" msgid="6172462888202790482">"ข้ามไปก่อน"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"รูปแบบการป้อนข้อมูลเดียวกันนี้มีอยู่แล้ว: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"การหน่วงเวลาของการกดแป้นค้าง"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ระยะเวลาการสั่นเมื่อกดแป้นพิมพ์"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ระดับเสียงเมื่อกดแป้นพิมพ์"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"อ่านไฟล์พจนานุกรมภายนอก"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ไม่มีไฟล์พจนานุกรมในโฟลเดอร์ดาวน์โหลด"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"เลือกไฟล์พจนานุกรมที่จะติดตั้ง"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ต้องการติดตั้งไฟล์นี้สำหรับ <xliff:g id="LANGUAGE_NAME">%s</xliff:g> จริงหรือ"</string>
- <string name="error" msgid="8940763624668513648">"เกิดข้อผิดพลาด"</string>
<string name="button_default" msgid="3988017840431881491">"ค่าเริ่มต้น"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"ยินดีต้อนรับสู่ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"พร้อมการป้อนข้อมูลด้วยท่าทาง"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index 69c3250fc..2329c7b48 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Mag-vibrate sa keypress"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Tumunog sa keypress"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Mag-popup sa keypress"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Mga kagustuhan sa input"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Hitsura"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opsyon sa maraming wika"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Gustong gesture typing"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Mga Kagustuhan"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Hitsura at mga layout"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Opsyon na pangmaraming wika"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Pagta-type Gamit ang Galaw"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Pagwawasto ng text"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Ipakita kapag maraming wika ng input na pinagana"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Ipakita ang indicator ng slide"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Magpakita ng visual cue kapag nag-i-slide sa Shift o Symbol key"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Balewala antala key popup"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Walang antala"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Walang naka-enable na pamamaraan ng pag-input ng boses. Suriin ang mga setting ng Pag-input ng wika."</string>
<string name="configure_input_method" msgid="373356270290742459">"I-configure ang mga pamamaraan ng pag-input"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Mag-input ng mga wika"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Mga Wika"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Tulong at feedback"</string>
- <string name="select_language" msgid="3693815588777926848">"Mga wika ng input"</string>
+ <string name="select_language" msgid="5709487854987078367">"Mga Wika"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Pinduting muli upang i-save"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Pumindot dito upang mag-save"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Available ang diksyunaryo"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Tema ng keyboard"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Ingles (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Ingles (Estados Unidos)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Paganahin"</string>
<string name="not_now" msgid="6172462888202790482">"Hindi ngayon"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Umiiral na ang parehong estilo ng input: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tagal ng vibration ng keypress"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume ng tunog ng keypress"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Magbasa ng panlabas na file ng diksyunaryo"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Walang mga file ng diksyunaryo sa folder na Mga Download"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pumili ng file ng diksyunaryo na ii-install"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Talagang ii-install ang file na ito para sa <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Nagkaroon ng error"</string>
<string name="button_default" msgid="3988017840431881491">"Default"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Maligayang pagdating sa <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"gamit ang Gesture na Pag-type"</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 84313cb8d..8bba7936b 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Tuşa basıldığında titret"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Tuşa basıldığında ses çıkar"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Tuşa basıldığında pop-up aç"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Giriş tercihleri"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Görünüm"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Çok dilli seçenekler"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Hareketle yazma tercihleri"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Tercihler"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Görünüm ve düzen"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Çok dilli seçenekler"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Hareketle Yazma"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Metin düzeltme"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Birden fazla giriş dili etkin olduğunda göster"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Kaydırma göstergesini aç"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Üst Karakter veya Sembol tuşlarından kaydırırken görsel ipucu ver"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tuş popup\'ının kapatılmasını geciktirme"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Gecikme yok"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Varsayılan"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Ses girişi tuşu"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Hiçbir ses girişi yöntemi etkinleştirilmedi. Dil ve giriş ayarlarını kontrol edin."</string>
<string name="configure_input_method" msgid="373356270290742459">"Giriş yöntemlerini yapılandır"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Giriş dilleri"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Diller"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Yardım ve geri bildirim"</string>
- <string name="select_language" msgid="3693815588777926848">"Giriş dilleri"</string>
+ <string name="select_language" msgid="5709487854987078367">"Diller"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Kaydetmek için tekrar dokunun"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Kaydetmek için buraya dokunun"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Sözlük kullanılabilir"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klavye teması"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (BK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"İngilizce (ABD)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"İspanyolca (ABD)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Etkinleştir"</string>
<string name="not_now" msgid="6172462888202790482">"Şimdi değil"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Aynı giriş stili zaten var: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tuşa uzun basma gecikmesi"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tuşa basma titreşim süresi"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tuşa basma ses seviyesi"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Harici sözlük dosyasını oku"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"İndirilenler klasöründe sözlük dosyası yok"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Yüklemek için bir sözlük dosyası seçin"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> için bu dosya gerçekten yüklensin mi?"</string>
- <string name="error" msgid="8940763624668513648">"Bir hata oluştu"</string>
<string name="button_default" msgid="3988017840431881491">"Varsayılan"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> uygulamasına hoş geldiniz"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Hareketle Yazmayı içerir"</string>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index a2a153154..850efc0c9 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Вібр. при натисканні клавіш"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натиску клав."</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Сплив. при нат.клав."</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Параметри введення"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Вигляд"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Параметри кількома мовами"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Параметри вводу жестами"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Параметри"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Вигляд і макети"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Опції кількома мовами"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Введення тексту жестами"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Виправлення тексту"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Показувати, коли ввімкнено декілька мов введення"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Показати індикатор переходу"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Показувати сигнал під час переходу від клавіш символів чи Shift"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Затримка клавіши закриття"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без затримки"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"За умовчанням"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Ключ голосового вводу"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Способи голосового вводу не ввімкнено. Перейдіть у налаштування \"Мова та введення\"."</string>
<string name="configure_input_method" msgid="373356270290742459">"Налаштування методів введення"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Мови вводу"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Мови"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Довідка й відгуки"</string>
- <string name="select_language" msgid="3693815588777926848">"Мови введення"</string>
+ <string name="select_language" msgid="5709487854987078367">"Мови"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Торкніться знову, щоб зберегти"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Торкніться тут, щоб зберегти"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Словник доступний"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Тема клавіатури"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Англійська (Великобританія)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Англійська (США)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"іспанська (США)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Увімкнути"</string>
<string name="not_now" msgid="6172462888202790482">"Не зараз"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Такий стиль введення вже існує: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Затримка довгого натискання"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Вібрація при натисканні клавіш"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Гучність натискання клавіш"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Налаштування анімації перегляду"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Читати файл зовнішнього словника"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"У папці \"Завантаження\" немає файлів словника"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Вибрати файл словника, який потрібно встановити"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Справді встановити цей файл для такої мови: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Сталася помилка"</string>
<string name="button_default" msgid="3988017840431881491">"За умовчанням"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Вітаємо в програмі <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"з функцією Ввід жестами"</string>
diff --git a/java/res/values-ur-rPK/strings.xml b/java/res/values-ur-rPK/strings.xml
index 433bd2bb8..971a7099d 100644
--- a/java/res/values-ur-rPK/strings.xml
+++ b/java/res/values-ur-rPK/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"کلید دبانے پر وائبریٹ کریں"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"کلید دبانے پر آواز"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"کلید دبانے پر پاپ اپ"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"ان پٹ کی ترجیحات"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"موجودگی"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"کثیر لسانی اختیارات"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"اشارہ ٹائپنگ کی ترجیحات"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"ترجیحات"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"ظہور اور لے آؤٹس"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"کثیر لسانی اختیارات"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"اشارہ جاتی ٹائپنگ"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"متن کی اصلاح"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"متعدد ان پٹ زبانیں فعال ہونے پر دکھائیں"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"سلائیڈ انڈیکیٹر کو دکھائیں"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏Shift یا علامت کلیدوں سے سلائیڈ کرتے ہوئے بصری اشارہ ڈسپلے کریں"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"کلید پاپ اپ رفع کی تاخیر"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"کوئی تاخیر نہیں"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ڈیفالٹ"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"صوتی ان پٹ کلید"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"کوئی صوتی اندراج کے طریقے فعال نہیں ہیں۔ زبان اور ان پٹ ترتیبات کو چیک کریں۔"</string>
<string name="configure_input_method" msgid="373356270290742459">"اندراج کے طریقے کنفیگر کریں"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"ان پٹ زبانیں"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"زبانیں"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"مدد اور تاثرات"</string>
- <string name="select_language" msgid="3693815588777926848">"ان پٹ زبانیں"</string>
+ <string name="select_language" msgid="5709487854987078367">"زبانیں"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"محفوظ کرنے کیلئے دوبارہ ٹچ کریں"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"محفوظ کرنے کیلئے یہاں ٹچ کریں"</string>
<string name="has_dictionary" msgid="6071847973466625007">"لغت دستیاب ہے"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"کی بورڈ تھیم"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"انگریزی (برطانیہ)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"انگریزی (امریکہ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"ہسپانوی (امریکہ)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"فعال کریں"</string>
<string name="not_now" msgid="6172462888202790482">"ابھی نہیں"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"ایسا ہی ان پٹ اسٹائل پہلے سے موجود ہے: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"کلید کو دیر تک دبانے کی تاخیر"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"کلید دبانے پر وائبریشن کا دورانیہ"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"کلید دبانے پر آواز کا والیوم"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"خارجی لغت کی فائل پڑھیں"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ڈاؤن لوڈز فولڈر میں کوئی لغت فائلیں نہیں ہیں"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"انسٹال کرنے کیلئے ایک لغت فائل منتخب کریں"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> کیلئے واقعی اس فائل کو انسٹال کریں؟"</string>
- <string name="error" msgid="8940763624668513648">"ایک خرابی پیش آگئی"</string>
<string name="button_default" msgid="3988017840431881491">"ڈیفالٹ"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> میں خوش آمدید"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"اشارہ ٹائپنگ کے ساتھ"</string>
diff --git a/java/res/values-uz-rUZ/strings.xml b/java/res/values-uz-rUZ/strings.xml
index ab0c474d1..eee56ea9c 100644
--- a/java/res/values-uz-rUZ/strings.xml
+++ b/java/res/values-uz-rUZ/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Tugma bosilganda tebranish"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Tugma bosilganda ovoz"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Tugma bosilganda qalqib chiqish"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Matn kiritish sozlamalari"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Tashqi ko‘rinishi"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Ko‘p tilli tanlamalar"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Ishora b-n yozish soz-ri"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Shaxsiy sozlamalar"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Tashqi ko‘rinishi va joylashuvi"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Ko‘p tilli tanlamalar"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Imo-ishoralar bilan yozish"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Matnni tuzatish"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Bir nechta matn kiritish tili mavjud bo‘lganda ko‘rsatilsin"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Rejimlarni almashtirish effekti"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Barmoq Shift yoki Belgilar tugmasidan o‘tganda vizual effekt"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Yopilish uchun to‘xtalish"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"To‘xtalishlarsiz"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standart"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Ovoz bilan kiritish tugmasi"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ovoz bilan yozish usuli yoqilmagan. Til va matn kiritish sozlamalarini tekshiring."</string>
<string name="configure_input_method" msgid="373356270290742459">"Matn kiritish usullarini sozlash"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Matn kiritish tillari"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Tillar"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Yordam va fikr-mulohaza"</string>
- <string name="select_language" msgid="3693815588777926848">"Matn kiritish tillari"</string>
+ <string name="select_language" msgid="5709487854987078367">"Tillar"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Saqlash uchun yana bosing"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Saqlash uchun bu yerga bosing"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Lug‘at mavjud"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatura mavzusi"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Ingliz (Buyuk Britaniya)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Ingliz (AQSH)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Ispan (AQSH)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Yoqish"</string>
<string name="not_now" msgid="6172462888202790482">"Hozir emas"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Xuddi shunday matn kiritish usuli allaqachon mavjud: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Uzoq bosib turish"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tugma bosilganda tebranish vaqti"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tugma bosilgandagi ovoz"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Tugma animatsiyasini sozlash"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Tashqi fayldagi lug‘atni yuklash"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Yuklab olinganlar jildida hech qanday lug‘at fayli mavjud emas"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"O‘rnatish uchun lug‘at faylini tanlang"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ushbu fayl quyidagi til uchun o‘rnatilsinmi: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Xatolik yuz berdi"</string>
<string name="button_default" msgid="3988017840431881491">"Standart"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ilovasiga xush kelibsiz!"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"Imo-ishoralar bilan yozish"</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 0a4613928..de0d011b1 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Rung khi nhấn phím"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Âm thanh khi nhấn phím"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Cửa sổ bật lên khi nhấn phím"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Tùy chọn nhập"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Giao diện"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Tùy chọn đa ngôn ngữ"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Tùy chọn nhập bằng cử chỉ"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Tùy chọn"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Giao diện và bố cục"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Tùy chọn đa ngôn ngữ"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Nhập bằng cử chỉ"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Sửa văn bản"</string>
<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>
<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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Hiển thị khi nhiều ngôn ngữ đầu vào được bật"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Hiển thị chỉ báo trượt"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Hiển thị tín hiệu hình ảnh trong khi trượt từ phím Shift hoặc phím Biểu tượng"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Loại bỏ hiển thị phím trễ"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Không có tgian trễ"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Mặc định"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Khóa nhập giọng nói"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Không có phương thức nhập bằng giọng nói nào được bật. Kiểm tra cài đặt Ngôn ngữ và phương thức nhập."</string>
<string name="configure_input_method" msgid="373356270290742459">"Định cấu hình phương thức nhập"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Ngôn ngữ nhập"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Ngôn ngữ"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Trợ giúp và phản hồi"</string>
- <string name="select_language" msgid="3693815588777926848">"Ngôn ngữ nhập"</string>
+ <string name="select_language" msgid="5709487854987078367">"Ngôn ngữ"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Chạm lại để lưu"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Chạm vào đây để lưu"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Có sẵn từ điển"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Chủ đề bàn phím"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"Tiếng Anh (Anh)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Tiếng Anh (Mỹ)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"Tiếng Tây Ban Nha (Mỹ)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Bật"</string>
<string name="not_now" msgid="6172462888202790482">"Để sau"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Đã tồn tại kiểu nhập tương tự: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tgian chờ cho nhấn và giữ phím"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Thời gian rung khi nhấn phím"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Âm lượng khi nhấn phím"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Đọc tệp từ điển bên ngoài"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Không có tệp từ điển nào trong thư mục Nội dung tải xuống"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Chọn tệp từ điển để cài đặt"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Thực sự cài đặt tệp này cho <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Đã xảy ra lỗi"</string>
<string name="button_default" msgid="3988017840431881491">"Mặc định"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Chào mừng bạn đến với <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"với Nhập bằng cử chỉ"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 8d90f37ce..a1c8d181f 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -26,18 +26,21 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"按键振动"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"按键音效"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"按键时弹出显示字符"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"输入偏好设置"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"外观"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"多语言选项"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"滑行输入偏好设置"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好设置"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"外观和布局"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"多语言选项"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"滑行输入"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"文字更正"</string>
<string name="settings_screen_advanced" msgid="7472408607625972994">"高级"</string>
+ <string name="settings_screen_theme" msgid="2137262503543943871">"主题背景"</string>
+ <!-- no translation found for enable_split_keyboard (4177264923999493614) -->
+ <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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"启用了多种输入语言时显示"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"显示滑动指示效果"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"从 Shift 键或符号键滑动时显示视觉提示"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"弹出字符隐藏延迟"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"无延迟"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"默认"</string>
@@ -76,13 +79,27 @@
<string name="voice_input" msgid="3583258583521397548">"语音输入键"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"未启用任何语音输入法。请检查“语言和输入法”设置。"</string>
<string name="configure_input_method" msgid="373356270290742459">"配置输入法"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"输入语言"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"语言"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"帮助和反馈"</string>
- <string name="select_language" msgid="3693815588777926848">"输入语言"</string>
+ <string name="select_language" msgid="5709487854987078367">"语言"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"再次触摸即可保存"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"触摸此处即可保存"</string>
<string name="has_dictionary" msgid="6071847973466625007">"有可用字典"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"键盘主题"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"英语(英国)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英语(美国)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"西班牙语(美国)"</string>
@@ -114,16 +131,8 @@
<string name="enable" msgid="5031294444630523247">"启用"</string>
<string name="not_now" msgid="6172462888202790482">"以后再说"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"已经存在相同的输入风格:<xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"按键长按延迟"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"按键振动时长"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"按键音量"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"读取外部字典文件"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"“下载内容”文件夹中没有字典文件"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"选择要安装的字典文件"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"确定要安装这个<xliff:g id="LANGUAGE_NAME">%s</xliff:g>字典吗?"</string>
- <string name="error" msgid="8940763624668513648">"出现错误"</string>
<string name="button_default" msgid="3988017840431881491">"默认"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"欢迎使用 <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"体验顺畅的滑行输入体验"</string>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index 94052d65d..475ae0a2a 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"按鍵時播放音效"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"按鍵時顯示彈出式視窗"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"輸入偏好設定"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"外觀"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"多語言選項"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"觸控輸入偏好設定"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好設定"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"外觀和版面配置"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"多語選項"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"手勢輸入"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"文字更正"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"在啟用多種輸入語言時顯示"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"顯示滑動指示器"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"從 Shift 鍵或符號鍵開始滑動時顯示視覺提示"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"關閉彈出式鍵盤的延遲時間"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"不延遲"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"預設"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"語音輸入鍵"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"尚未啟用語音輸入法,請檢查語言和輸入設定。"</string>
<string name="configure_input_method" msgid="373356270290742459">"設定輸入法"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"語言"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"說明與意見反映"</string>
- <string name="select_language" msgid="3693815588777926848">"輸入語言"</string>
+ <string name="select_language" msgid="5709487854987078367">"語言"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"再次輕觸即可儲存"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"輕觸即可儲存"</string>
<string name="has_dictionary" msgid="6071847973466625007">"可使用字典"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"鍵盤主題"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"英文 (英國)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英文 (美國)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"西班牙文 (美國)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"啟用"</string>
<string name="not_now" msgid="6172462888202790482">"暫時不要"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"已存在相同的輸入樣式:<xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"長按鍵延遲"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"按鍵震動時間"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"按鍵音量"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"讀取外部字典檔案"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"「下載」資料夾中沒有任何字典檔案"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"選取要安裝的字典檔案"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"準備為<xliff:g id="LANGUAGE_NAME">%s</xliff:g>版本安裝這個檔案嗎?"</string>
- <string name="error" msgid="8940763624668513648">"發生錯誤"</string>
<string name="button_default" msgid="3988017840431881491">"預設"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"歡迎使用「<xliff:g id="APPLICATION_NAME">%s</xliff:g>」"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"配備觸控輸入功能"</string>
@@ -150,8 +158,8 @@
<string name="dictionary_settings_title" msgid="8091417676045693313">"附加字典"</string>
<string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"可使用字典"</string>
<string name="dictionary_settings_summary" msgid="5305694987799824349">"字典設定"</string>
- <string name="user_dictionaries" msgid="3582332055892252845">"用戶字典"</string>
- <string name="default_user_dict_pref_name" msgid="1625055720489280530">"用戶字典"</string>
+ <string name="user_dictionaries" msgid="3582332055892252845">"使用者字典"</string>
+ <string name="default_user_dict_pref_name" msgid="1625055720489280530">"使用者字典"</string>
<string name="dictionary_available" msgid="4728975345815214218">"可使用字典"</string>
<string name="dictionary_downloading" msgid="2982650524622620983">"目前下載中"</string>
<string name="dictionary_installed" msgid="8081558343559342962">"已安裝"</string>
@@ -189,7 +197,7 @@
<string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"編輯字詞"</string>
<string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"編輯"</string>
<string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"刪除"</string>
- <string name="user_dict_settings_empty_text" msgid="558499587532668203">"您的用戶字典中沒有任何字詞。輕觸 [新增] (+) 按鈕即可新增字詞。"</string>
+ <string name="user_dict_settings_empty_text" msgid="558499587532668203">"您的使用者字典中沒有任何字詞。輕觸 [新增] (+) 按鈕即可新增字詞。"</string>
<string name="user_dict_settings_all_languages" msgid="8276126583216298886">"所有語言"</string>
<string name="user_dict_settings_more_languages" msgid="7131268499685180461">"更多語言..."</string>
<string name="user_dict_settings_delete" msgid="110413335187193859">"刪除"</string>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 37c16a5df..316f3f786 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"按鍵聲音"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"按鍵時彈出"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"輸入偏好設定"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"外觀"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"多語言選項"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"手勢輸入偏好設定"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好設定"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"外觀與版面配置"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"多語選項"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"手勢輸入"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"文字修正"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"有多種輸入語言可選用時顯示切換鍵"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"顯示滑動指示器"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"從 Shift 鍵或符號鍵滑動時顯示視覺提示"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"關閉彈出式鍵盤的延遲時間"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"不延遲"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"預設"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"語音輸入按鍵"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"尚未啟動語音輸入法,請檢查語言與輸入設定。"</string>
<string name="configure_input_method" msgid="373356270290742459">"設定輸入法"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"語言"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"說明與意見回饋"</string>
- <string name="select_language" msgid="3693815588777926848">"輸入語言"</string>
+ <string name="select_language" msgid="5709487854987078367">"語言"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"再次輕觸即可儲存"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"輕觸這裡即可儲存"</string>
<string name="has_dictionary" msgid="6071847973466625007">"可用的字典"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"鍵盤主題"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"英文 (英國)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英文 (美國)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"西班牙文 (美國)"</string>
@@ -114,16 +130,8 @@
<string name="enable" msgid="5031294444630523247">"啟用"</string>
<string name="not_now" msgid="6172462888202790482">"暫時不要"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"已存在相同的輸入樣式:<xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"按鍵長按延遲"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"按鍵震動持續時間"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"按鍵音量"</string>
- <!-- no translation found for prefs_customize_key_preview_animation (4537507402140318920) -->
- <skip />
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"讀取外部字典檔案"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"「下載」資料夾中沒有任何字典檔案"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"選取要安裝的字典檔案"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"確定要安裝這個<xliff:g id="LANGUAGE_NAME">%s</xliff:g>檔案嗎?"</string>
- <string name="error" msgid="8940763624668513648">"發生錯誤"</string>
<string name="button_default" msgid="3988017840431881491">"預設"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"歡迎使用 <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"含滑行輸入功能"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index c8248482a..607407e3f 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -26,18 +26,20 @@
<string name="vibrate_on_keypress" msgid="5258079494276955460">"Dlidlizelisa ngokucindezela inkinobho"</string>
<string name="sound_on_keypress" msgid="6093592297198243644">"Umsindo wokucindezela ukhiye"</string>
<string name="popup_on_keypress" msgid="123894815723512944">"Ugaxekile ngokucindezela ukhiye"</string>
- <string name="settings_screen_input" msgid="2808654300248306866">"Okuthandwayo kokokufaka"</string>
- <string name="settings_screen_appearances" msgid="3611951947835553700">"Ukubonakala"</string>
- <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Izinketho zezilimi eziningi"</string>
- <string name="settings_screen_gesture" msgid="9113437621722871665">"Okuthandwayo kokuthayipha kokuthinta"</string>
+ <string name="settings_screen_preferences" msgid="2696713156722014624">"Izintandokazi"</string>
+ <!-- no translation found for settings_screen_accounts (7570397912370223287) -->
+ <skip />
+ <string name="settings_screen_appearance" msgid="9153102634339912029">"Ukubonakala nezakhiwo"</string>
+ <string name="settings_screen_multilingual" msgid="1391301621464509659">"Izinketho zezilimi eziningi"</string>
+ <string name="settings_screen_gesture" msgid="8826372746901183556">"Ukuthayipha ngokuthinta"</string>
<string name="settings_screen_correction" msgid="1616818407747682955">"Ukulungisa umbhalo"</string>
<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="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>
<string name="show_language_switch_key_summary" msgid="7343403647474265713">"Bonisa uma izilimi zokufaka zinikwe amandla"</string>
- <string name="sliding_key_input_preview" msgid="6604262359510068370">"Bonisa isikhombi sesilayidi"</string>
- <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Bonisa isiboniso ngenkathi uslayida kusukela kukhiye ongu-Shift noma i-Symbol"</string>
<string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ukuvela kokhiye cashisa ukulibazisa"</string>
<string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Cha ukulibazisa"</string>
<string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Okuzenzakalelayo"</string>
@@ -76,13 +78,27 @@
<string name="voice_input" msgid="3583258583521397548">"Inkinobho yokufaka izwi"</string>
<string name="voice_input_disabled_summary" msgid="8141750303464726129">"Azikho izindlela zokufaka zezwi ezinikwe amandla. Hlola izilungiselelo zolimi kanye nezokufaka."</string>
<string name="configure_input_method" msgid="373356270290742459">"Misa izindlela zokufakwayo"</string>
- <string name="language_selection_title" msgid="1651299598555326750">"Izilimi zokufakwayo"</string>
+ <string name="language_selection_title" msgid="3666971864764478269">"Izilimi"</string>
<string name="help_and_feedback" msgid="5328219371839879161">"Usizo nempendulo"</string>
- <string name="select_language" msgid="3693815588777926848">"Izilimi zokufakwayo"</string>
+ <string name="select_language" msgid="5709487854987078367">"Izilimi"</string>
<string name="hint_add_to_dictionary" msgid="573678656946085380">"Thinta futhi ukuze ulondoloze"</string>
<string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Thinta lapha ukuze ulondoloze"</string>
<string name="has_dictionary" msgid="6071847973466625007">"Isichazamazwi siyatholakala"</string>
<string name="keyboard_layout" msgid="8451164783510487501">"Indikimba yekhibhodi"</string>
+ <!-- no translation found for switch_accounts (3321216593719006162) -->
+ <skip />
+ <!-- no translation found for no_accounts_selected (2073821619103904330) -->
+ <skip />
+ <!-- no translation found for account_selected (2846876462199625974) -->
+ <skip />
+ <!-- no translation found for account_select_ok (9141195141763227797) -->
+ <skip />
+ <!-- no translation found for account_select_cancel (5181012062618504340) -->
+ <skip />
+ <!-- no translation found for account_select_sign_out (3299651159390187933) -->
+ <skip />
+ <!-- no translation found for account_select_title (6279711684772922649) -->
+ <skip />
<string name="subtype_en_GB" msgid="88170601942311355">"i-English(UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"i-English (US)"</string>
<string name="subtype_es_US" msgid="5583145191430180200">"I-Spanish (US)"</string>
@@ -114,15 +130,8 @@
<string name="enable" msgid="5031294444630523247">"Nika amandla"</string>
<string name="not_now" msgid="6172462888202790482">"Hhayi manje"</string>
<string name="custom_input_style_already_exists" msgid="8008728952215449707">"Isitayela sokufaka esifanayo sesivele sikhona: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
- <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ukulibazisa ukucindezela isikhashana ukhiye"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Ubude besikhathi sokudlidliza ukucindezela ukhiye"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Ivolumu yomsindo wokucindezela ukhiye"</string>
- <string name="prefs_customize_key_preview_animation" msgid="4537507402140318920">"Yenza ngokwezifiso opopayi bokubuka kuqala abangukhiye"</string>
- <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Funda ifayela elangaphandle lesichazamazwi"</string>
- <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Awekho amafayela wesichazamazwi kufolda yokulandiwe"</string>
- <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Khetha ifayela lesichazamazwi ukuze ulifake"</string>
- <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Fakela ngempela leli fayela i-<xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
- <string name="error" msgid="8940763624668513648">"Kube nephutha"</string>
<string name="button_default" msgid="3988017840431881491">"Okuzenzakalelayo"</string>
<string name="setup_welcome_title" msgid="6112821709832031715">"Siyakwamukela ku-<xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
<string name="setup_welcome_additional_description" msgid="8150252008545768953">"nokuthayipha ngokuthinta"</string>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index f1253b40c..8ee859bc7 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -483,6 +483,8 @@
<attr name="localeCode" format="string" />
<attr name="languageCode" format="string" />
<attr name="countryCode" format="string" />
+ <!-- Enable split keyboard layout. Disabled by default. -->
+ <attr name="isSplitLayout" format="boolean" />
</declare-styleable>
<declare-styleable name="Keyboard_KeyStyle">
@@ -514,6 +516,8 @@
<attr name="elementKeyboard" format="reference"/>
<!-- Enable proximity characters correction. Disabled by default. -->
<attr name="enableProximityCharsCorrection" format="boolean" />
+ <!-- Indicates if the keyboard layout supports being split or not. false by default -->
+ <attr name="supportsSplitLayout" format="boolean" />
</declare-styleable>
<declare-styleable name="KeyboardLayoutSet_Feature">
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index af3b5890b..40760f686 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -43,17 +43,22 @@
<!-- config_more_keys_keyboard_key_height x -0.5 -->
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-26.4dp</dimen>
<dimen name="config_key_preview_offset_holo">8.0dp</dimen>
-
- <dimen name="config_key_preview_height">80dp</dimen>
+ <dimen name="config_key_preview_height_holo">80dp</dimen>
+ <dimen name="config_key_preview_offset_lxx">50.0dp</dimen>
+ <dimen name="config_key_preview_height_lxx">122dp</dimen>
<fraction name="config_key_preview_text_ratio">82%</fraction>
- <fraction name="config_key_letter_ratio">55%</fraction>
+ <fraction name="config_key_letter_ratio_holo">55%</fraction>
+ <fraction name="config_key_letter_ratio_lxx">55%</fraction>
<fraction name="config_key_large_letter_ratio_holo">65%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">90%</fraction>
- <fraction name="config_key_label_ratio">34%</fraction>
- <fraction name="config_key_hint_letter_ratio">25%</fraction>
+ <fraction name="config_key_label_ratio_holo">34%</fraction>
+ <fraction name="config_key_label_ratio_lxx">34%</fraction>
+ <fraction name="config_key_hint_letter_ratio_holo">25%</fraction>
+ <fraction name="config_key_hint_letter_ratio_lxx">25%</fraction>
<fraction name="config_key_hint_label_ratio_holo">44%</fraction>
<fraction name="config_key_hint_label_ratio_lxx">30%</fraction>
- <fraction name="config_key_shifted_letter_hint_ratio">35%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_holo">35%</fraction>
+ <fraction name="config_key_shifted_letter_hint_ratio_lxx">35%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">33.735%</fraction>
<dimen name="config_key_hint_letter_padding">1dp</dimen>
<dimen name="config_key_shifted_letter_hint_padding">2dp</dimen>
diff --git a/java/res/values/donottranslate-text-decorator.xml b/java/res/values/donottranslate-text-decorator.xml
index 832610b96..269364573 100644
--- a/java/res/values/donottranslate-text-decorator.xml
+++ b/java/res/values/donottranslate-text-decorator.xml
@@ -19,62 +19,11 @@
-->
<resources>
- <!-- The delay time in milliseconds from to show the commit indicator -->
- <integer name="text_decorator_delay_in_milliseconds_to_show_commit_indicator">
- 500
- </integer>
-
<!-- The extra margin in dp around the hit area of the commit/add-to-dictionary indicator -->
<integer name="text_decorator_hit_area_margin_in_dp">
4
</integer>
- <!-- If true, the commit/add-to-text indicator will be suppressed when the word isn't going to
- trigger auto-correction. -->
- <bool name="text_decorator_only_for_auto_correction">true</bool>
-
- <!-- If true, the commit/add-to-text indicator will be suppressed when the word is already in
- the dictionary. -->
- <bool name="text_decorator_only_for_out_of_vocabulary">false</bool>
-
- <!-- Background color to be used to highlight the target text when the commit indicator is
- visible. -->
- <color name="text_decorator_commit_indicator_text_highlight_color">
- #B6E2DE
- </color>
-
- <!-- Background color of the commit indicator. -->
- <color name="text_decorator_commit_indicator_background_color">
- #48B6AC
- </color>
-
- <!-- Foreground color of the commit indicator. -->
- <color name="text_decorator_commit_indicator_foreground_color">
- #FFFFFF
- </color>
-
- <!-- Viewport size of "text_decorator_commit_indicator_path". -->
- <integer name="text_decorator_commit_indicator_path_size">
- 480
- </integer>
-
- <!-- Coordinates of the closed path to be used to render the commit indicator.
- The format is: X[0], Y[0], X[1], Y[1], ..., X[N-1], Y[N-1] -->
- <integer-array name="text_decorator_commit_indicator_path">
- <item>180</item>
- <item>323</item>
- <item>97</item>
- <item>240</item>
- <item>68</item>
- <item>268</item>
- <item>180</item>
- <item>380</item>
- <item>420</item>
- <item>140</item>
- <item>392</item>
- <item>112</item>
- </integer-array>
-
<!-- Background color to be used to highlight the target text when the add-to-dictionary
indicator is visible. -->
<color name="text_decorator_add_to_dictionary_indicator_text_highlight_color">
diff --git a/java/res/values/keyboard-themes.xml b/java/res/values/keyboard-themes.xml
index 9d772c4e7..b0bae9647 100644
--- a/java/res/values/keyboard-themes.xml
+++ b/java/res/values/keyboard-themes.xml
@@ -26,10 +26,10 @@
<item>@string/keyboard_theme_holo_blue</item>
</string-array>
<!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. -->
- <string-array name="keyboard_theme_ids" translatable="false">
+ <integer-array name="keyboard_theme_ids" translatable="false">
<item>3</item>
<item>4</item>
<item>2</item>
<item>0</item>
- </string-array>
+ </integer-array>
</resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 8b8b28f02..d64444e01 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -36,18 +36,25 @@
<!-- Option to control whether or not to show a popup with a larger font on each key press. -->
<string name="popup_on_keypress">Popup on keypress</string>
- <!-- Settings screen title for input preferences [CHAR LIMIT=33]-->
- <string name="settings_screen_input">Input preferences</string>
- <!-- Settings screen title for appearance preferences [CHAR LIMIT=33] -->
- <string name="settings_screen_appearances">Appearance</string>
- <!-- Settings screen title for multi lingual options [CHAR_LIMIT=33] -->
- <string name="settings_screen_multi_lingual">Multi lingual options</string>
+ <!-- Settings screen title for preferences [CHAR LIMIT=33]-->
+ <string name="settings_screen_preferences">Preferences</string>
+ <!-- Settings screen title for accounts and privacy preferences [CHAR LIMIT=33]-->
+ <string name="settings_screen_accounts">Accounts &amp; privacy</string>
+ <!-- Settings screen title for appearance & layouts preferences [CHAR LIMIT=33] -->
+ <string name="settings_screen_appearance">Appearance &amp; layouts</string>
+ <!-- Settings screen title for multilingual options [CHAR_LIMIT=33] -->
+ <string name="settings_screen_multilingual">Multilingual options</string>
<!-- Settings screen title for gesture typing preferences [CHAR_LIMIT=33] -->
- <string name="settings_screen_gesture">Gesture typing preferences</string>
+ <string name="settings_screen_gesture">Gesture Typing</string>
<!-- Settings screen title for text correction options [CHAR_LIMIT=33] -->
<string name="settings_screen_correction">Text correction</string>
<!-- Settings screen title for advanced settings [CHAR LIMIT=33] -->
<string name="settings_screen_advanced">Advanced</string>
+ <!-- Settings screen title for keyboard theme settings [CHAR LIMIT=33] -->
+ <string name="settings_screen_theme">Theme</string>
+
+ <!-- Option for enabling or disabling the split keyboard layout. [CHAR LIMIT=65]-->
+ <string name="enable_split_keyboard">Enable split keyboard</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>
@@ -152,14 +159,14 @@
<string name="configure_input_method">Configure input methods</string>
<!-- Title for input language selection screen -->
- <string name="language_selection_title">Input languages</string>
+ <string name="language_selection_title">Languages</string>
<!-- Title for the 'Help & feedback' settings fragment which shows a help page and has a button
for submitting feedback. [CHAR LIMIT=35] -->
<string name="help_and_feedback">Help &amp; feedback</string>
<!-- Preference for input language selection -->
- <string name="select_language">Input languages</string>
+ <string name="select_language">Languages</string>
<!-- Add to dictionary hint -->
<string name="hint_add_to_dictionary">Touch again to save</string>
@@ -172,6 +179,23 @@
<!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]-->
<string name="keyboard_layout">Keyboard theme</string>
+ <!-- Title of the preference item for switching accounts [CHAR LIMIT=30] -->
+ <string name="switch_accounts">Switch accounts</string>
+ <!-- Summary of the preference item for switching accounts when no accounts
+ are selected [CHAR LIMIT=65] -->
+ <string name="no_accounts_selected">No accounts selected</string>
+ <!-- Summary of the preference item for switching accounts when an account
+ is selected [CHAR LIMIT=65] -->
+ <string name="account_selected">Currently using <xliff:g id="EMAIL_ADDRESS" example="someone@example.com">%1$s</xliff:g></string>
+ <!-- Positive text for selecting an account -->
+ <string name="account_select_ok">OK</string>
+ <!-- Negative text for selecting an account -->
+ <string name="account_select_cancel">Cancel</string>
+ <!-- Text for signing out of an account -->
+ <string name="account_select_sign_out">Sign out</string>
+ <!-- Title of the account picker dialog for selecting an account [CHAR LIMIT=40] -->
+ <string name="account_select_title">Select an account to use</string>
+
<!-- Description for English (UK) keyboard subtype [CHAR LIMIT=25]
(UK) should be an abbreviation of United Kingdom to fit in the CHAR LIMIT. -->
<string name="subtype_en_GB">English (UK)</string>
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index becaddd35..110f6b792 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -37,12 +37,6 @@
<!-- This keyBackground is needed to run unit tests based on {@link InputTestBase}. -->
<!-- TODO: Apply default {@link KeyboardTheme} to {@link InputTestBase} and remove this. -->
<item name="keyBackground">@drawable/btn_keyboard_key_klp</item>
- <item name="keyLetterSize">@fraction/config_key_letter_ratio</item>
- <item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio_holo</item>
- <item name="keyLabelSize">@fraction/config_key_label_ratio</item>
- <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio</item>
- <item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio_holo</item>
- <item name="keyShiftedLetterHintRatio">@fraction/config_key_shifted_letter_hint_ratio</item>
<item name="keyTypeface">normal</item>
<!-- A negative value to disable key text shadow layer. -->
<item name="keyTextShadowRadius">-1.0</item>
@@ -81,7 +75,6 @@
<item name="keyRepeatInterval">@integer/config_key_repeat_interval</item>
<item name="longPressShiftLockTimeout">@integer/config_longpress_shift_lock_timeout</item>
<item name="ignoreAltCodeKeyTimeout">@integer/config_ignore_alt_code_key_timeout</item>
- <item name="keyPreviewHeight">@dimen/config_key_preview_height</item>
<!-- TODO: consolidate key preview linger timeout with the key preview animation parameters. -->
<item name="keyPreviewLingerTimeout">@integer/config_key_preview_linger_timeout</item>
<item name="moreKeysKeyboardLayout">@layout/more_keys_keyboard</item>
diff --git a/java/res/values/themes-holo.xml b/java/res/values/themes-holo.xml
index cb3ad7a3a..9f1bd2f78 100644
--- a/java/res/values/themes-holo.xml
+++ b/java/res/values/themes-holo.xml
@@ -25,6 +25,10 @@
parent="KeyboardView"
>
<item name="keyTypeface">bold</item>
+ <item name="keyLetterSize">@fraction/config_key_letter_ratio_holo</item>
+ <item name="keyLabelSize">@fraction/config_key_label_ratio_holo</item>
+ <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio_holo</item>
+ <item name="keyShiftedLetterHintRatio">@fraction/config_key_shifted_letter_hint_ratio_holo</item>
<item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio_holo</item>
<item name="keyLabelOffCenterRatio">-175%</item>
<item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio_holo</item>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 9e656dd74..bfbac0a94 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -60,6 +60,7 @@
parent="KeyboardView.ICS"
>
<item name="keyPreviewBackground">@drawable/keyboard_key_feedback_ics</item>
+ <item name="keyPreviewHeight">@dimen/config_key_preview_height_holo</item>
<item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
<item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_holo</item>
<item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_holo</item>
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
index c6319bc4e..36b1fc117 100644
--- a/java/res/values/themes-klp.xml
+++ b/java/res/values/themes-klp.xml
@@ -60,6 +60,7 @@
parent="KeyboardView.KLP"
>
<item name="keyPreviewBackground">@drawable/keyboard_key_feedback_klp</item>
+ <item name="keyPreviewHeight">@dimen/config_key_preview_height_holo</item>
<item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
<item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_holo</item>
<item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_holo</item>
diff --git a/java/res/values/themes-lxx-dark.xml b/java/res/values/themes-lxx-dark.xml
index 5b2681359..67f94f329 100644
--- a/java/res/values/themes-lxx-dark.xml
+++ b/java/res/values/themes-lxx-dark.xml
@@ -60,7 +60,8 @@
>
<item name="moreKeysKeyboardForActionLayout">@layout/more_keys_keyboard_for_action_lxx</item>
<item name="keyPreviewBackground">@drawable/keyboard_key_feedback_lxx_dark</item>
- <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
+ <item name="keyPreviewHeight">@dimen/config_key_preview_height_lxx</item>
+ <item name="keyPreviewOffset">@dimen/config_key_preview_offset_lxx</item>
<item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_lxx</item>
<item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_lxx</item>
<item name="gestureFloatingPreviewTextColor">@color/auto_correct_color_lxx_dark</item>
diff --git a/java/res/values/themes-lxx-light.xml b/java/res/values/themes-lxx-light.xml
index f607807c8..be817f46a 100644
--- a/java/res/values/themes-lxx-light.xml
+++ b/java/res/values/themes-lxx-light.xml
@@ -60,7 +60,8 @@
>
<item name="moreKeysKeyboardForActionLayout">@layout/more_keys_keyboard_for_action_lxx</item>
<item name="keyPreviewBackground">@drawable/keyboard_key_feedback_lxx_light</item>
- <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
+ <item name="keyPreviewHeight">@dimen/config_key_preview_height_lxx</item>
+ <item name="keyPreviewOffset">@dimen/config_key_preview_offset_lxx</item>
<item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_lxx</item>
<item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_lxx</item>
<item name="gestureFloatingPreviewTextColor">@color/auto_correct_color_lxx_light</item>
diff --git a/java/res/values/themes-lxx.xml b/java/res/values/themes-lxx.xml
index 1c33cd60b..c72188871 100644
--- a/java/res/values/themes-lxx.xml
+++ b/java/res/values/themes-lxx.xml
@@ -25,6 +25,10 @@
parent="KeyboardView"
>
<item name="keyTypeface">normal</item>
+ <item name="keyLetterSize">@fraction/config_key_letter_ratio_lxx</item>
+ <item name="keyLabelSize">@fraction/config_key_label_ratio_lxx</item>
+ <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio_lxx</item>
+ <item name="keyShiftedLetterHintRatio">@fraction/config_key_shifted_letter_hint_ratio_lxx</item>
<item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio_lxx</item>
<item name="keyLabelOffCenterRatio">-80%</item>
<item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio_lxx</item>
diff --git a/java/res/xml-sw600dp-land/key_space_3kw.xml b/java/res/xml-sw600dp-land/key_space_3kw.xml
new file mode 100644
index 000000000..47c4e4809
--- /dev/null
+++ b/java/res/xml-sw600dp-land/key_space_3kw.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <!-- TODO: Consolidate the layout specification between protrait and landscape.
+ Ideally just the keyWidth should be different -->
+ <switch>
+ <!-- fa: Perisan
+ kn: Kannada
+ ne: Nepali
+ te: Telugu -->
+ <case
+ latin:languageCode="fa|kn|ne|te"
+ latin:languageSwitchKeyEnabled="true"
+ >
+ <Key
+ latin:keyStyle="languageSwitchKeyStyle" />
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="7.0%p" />
+ <Key
+ latin:keyStyle="zwnjKeyStyle" />
+ </case>
+ <case
+ latin:languageCode="fa|kn|ne|te"
+ latin:languageSwitchKeyEnabled="false"
+ >
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="14.0%p" />
+ <Key
+ latin:keyStyle="zwnjKeyStyle" />
+ </case>
+ <case
+ latin:languageSwitchKeyEnabled="true"
+ >
+ <Key
+ latin:keyStyle="languageSwitchKeyStyle" />
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="14.0%p" />
+ </case>
+ <!-- languageSwitchKeyEnabled="false" -->
+ <default>
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="21.0%p" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml-sw600dp-land/row_qwerty4.xml b/java/res/xml-sw600dp-land/row_qwerty4.xml
new file mode 100644
index 000000000..0fdb5c6f5
--- /dev/null
+++ b/java/res/xml-sw600dp-land/row_qwerty4.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <!-- Split the 4th row for split layouts -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <Row
+ latin:keyWidth="7.0%p"
+ latin:backgroundType="functional"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle" />
+ <include
+ latin:keyboardLayout="@xml/key_comma" />
+ <!-- Space key. -->
+ <include
+ latin:keyboardLayout="@xml/key_space_3kw"
+ latin:backgroundType="normal" />
+ <Spacer
+ latin:keyWidth="28.0%p" />
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="21.0%p" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
+ <include
+ latin:keyboardLayout="@xml/key_emoji" />
+ </Row>
+ </case>
+ <default>
+ <Row
+ latin:keyWidth="9.0%p"
+ latin:backgroundType="functional"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/key_comma" />
+ <!-- Space key. -->
+ <include
+ latin:keyXPos="19.0%p"
+ latin:keyboardLayout="@xml/key_space_7kw"
+ latin:backgroundType="normal" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
+ <include
+ latin:keyboardLayout="@xml/key_emoji" />
+ </Row>
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml-sw600dp-land/rows_qwerty.xml b/java/res/xml-sw600dp-land/rows_qwerty.xml
new file mode 100644
index 000000000..b580dcf6a
--- /dev/null
+++ b/java/res/xml-sw600dp-land/rows_qwerty.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/key_styles_common" />
+ <!-- First row -->
+ <Row>
+ <switch>
+ <!-- Split keyboard layout for the first row -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1_left5"
+ latin:keyWidth="7.0%p" />
+ <Spacer
+ latin:keyWidth="20.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1_right5"
+ latin:keyWidth="7.0%p" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="10.0%p" />
+ </case>
+ <!-- Regular layout for the first row -->
+ <default>
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1"
+ latin:keyWidth="9.0%p" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
+ </default>
+ </switch>
+ </Row>
+ <!-- Second row -->
+ <Row>
+ <switch>
+ <!-- Split keyboard layout for the second row -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2_left5"
+ latin:keyXPos="4.0%p"
+ latin:keyWidth="7.0%p" />
+ <Spacer
+ latin:keyWidth="23.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2_right4"
+ latin:keyWidth="7.0%p" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="10.0%p" />
+ </case>
+ <!-- Regular layout for the second row -->
+ <default>
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2"
+ latin:keyXPos="4.5%p"
+ latin:keyWidth="9.0%p" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="fillRight" />
+ </default>
+ </switch>
+ </Row>
+ <!-- Third row -->
+ <Row>
+ <switch>
+ <!-- Split keyboard layout for the third row -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3_left4"
+ latin:keyWidth="7.0%p" />
+ <Spacer
+ latin:keyWidth="17.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3_right3"
+ latin:keyWidth="7.0%p" />
+ <include
+ latin:keyboardLayout="@xml/keys_exclamation_question"
+ latin:keyWidth="7.0%p" />
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ </case>
+ <!-- Regular layout for the third row -->
+ <default>
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3"
+ latin:keyWidth="9.0%p" />
+ <include
+ latin:keyboardLayout="@xml/keys_exclamation_question"
+ latin:keyWidth="9.0%p" />
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="fillRight" />
+ </default>
+ </switch>
+ </Row>
+ <!-- Fourth row -->
+ <include
+ latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-sw600dp/key_space_3kw.xml b/java/res/xml-sw600dp/key_space_3kw.xml
new file mode 100644
index 000000000..9932d342e
--- /dev/null
+++ b/java/res/xml-sw600dp/key_space_3kw.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <!-- fa: Perisan
+ kn: Kannada
+ ne: Nepali
+ te: Telugu -->
+ <case
+ latin:languageCode="fa|kn|ne|te"
+ latin:languageSwitchKeyEnabled="true"
+ >
+ <Key
+ latin:keyStyle="languageSwitchKeyStyle" />
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="8.0%p" />
+ <Key
+ latin:keyStyle="zwnjKeyStyle" />
+ </case>
+ <case
+ latin:languageCode="fa|kn|ne|te"
+ latin:languageSwitchKeyEnabled="false"
+ >
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="16.0%p" />
+ <Key
+ latin:keyStyle="zwnjKeyStyle" />
+ </case>
+ <case
+ latin:languageSwitchKeyEnabled="true"
+ >
+ <Key
+ latin:keyStyle="languageSwitchKeyStyle" />
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="16.0%p" />
+ </case>
+ <!-- languageSwitchKeyEnabled="false" -->
+ <default>
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="24.0%p" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index ed7150de4..bcfd2cb7f 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -21,23 +21,54 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <Row
- latin:keyWidth="9.0%p"
- latin:backgroundType="functional"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyWidth="10.0%p" />
- <include
- latin:keyboardLayout="@xml/key_comma" />
- <!-- Space key. -->
- <include
- latin:keyXPos="19.0%p"
- latin:keyboardLayout="@xml/key_space_7kw"
- latin:backgroundType="normal" />
- <include
- latin:keyboardLayout="@xml/key_period" />
- <include
- latin:keyboardLayout="@xml/key_emoji" />
- </Row>
+ <switch>
+ <!-- Split the 4th row for split layouts -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <Row
+ latin:keyWidth="8.0%p"
+ latin:backgroundType="functional"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle" />
+ <include
+ latin:keyboardLayout="@xml/key_comma" />
+ <!-- Space key. -->
+ <include
+ latin:keyboardLayout="@xml/key_space_3kw"
+ latin:backgroundType="normal" />
+ <Spacer
+ latin:keyWidth="20.0%p" />
+ <Key
+ latin:keyStyle="spaceKeyStyle"
+ latin:keyWidth="24.0%p" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
+ <include
+ latin:keyboardLayout="@xml/key_emoji" />
+ </Row>
+ </case>
+ <default>
+ <Row
+ latin:keyWidth="9.0%p"
+ latin:backgroundType="functional"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/key_comma" />
+ <!-- Space key. -->
+ <include
+ latin:keyXPos="19.0%p"
+ latin:keyboardLayout="@xml/key_space_7kw"
+ latin:backgroundType="normal" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
+ <include
+ latin:keyboardLayout="@xml/key_emoji" />
+ </Row>
+ </default>
+ </switch>
</merge>
diff --git a/java/res/xml-sw600dp/rows_qwerty.xml b/java/res/xml-sw600dp/rows_qwerty.xml
index 58ba1d713..51df4b0cc 100644
--- a/java/res/xml-sw600dp/rows_qwerty.xml
+++ b/java/res/xml-sw600dp/rows_qwerty.xml
@@ -23,39 +23,114 @@
>
<include
latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="9.0%p"
- >
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
+ <!-- TODO: Consolidate the layout specification between protrait and landscape.
+ Ideally just the keyWidth should be different and the spacer should adjust to fill
+ the available space. -->
+ <!-- First row -->
+ <Row>
+ <switch>
+ <!-- Split keyboard layout for the first row -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1_left5"
+ latin:keyWidth="8.0%p" />
+ <Spacer
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1_right5"
+ latin:keyWidth="8.0%p" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="10.0%p" />
+ </case>
+ <!-- Regular layout for the first row -->
+ <default>
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1"
+ latin:keyWidth="9.0%p" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
+ </default>
+ </switch>
</Row>
- <Row
- latin:keyWidth="9.0%p"
- >
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty2"
- latin:keyXPos="4.5%p" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
+ <!-- Second row -->
+ <Row>
+ <switch>
+ <!-- Split keyboard layout for the second row -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2_left5"
+ latin:keyXPos="4.0%p"
+ latin:keyWidth="8.0%p" />
+ <Spacer
+ latin:keyWidth="14.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2_right4"
+ latin:keyWidth="8.0%p" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="10.0%p" />
+ </case>
+ <!-- Regular layout for the second row -->
+ <default>
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2"
+ latin:keyXPos="4.5%p"
+ latin:keyWidth="9.0%p" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="fillRight" />
+ </default>
+ </switch>
</Row>
- <Row
- latin:keyWidth="9.0%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="10.0%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty3" />
- <include
- latin:keyboardLayout="@xml/keys_exclamation_question" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
+ <!-- Third row -->
+ <Row>
+ <switch>
+ <!-- Split keyboard layout for the third row -->
+ <case
+ latin:isSplitLayout="true"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3_left4"
+ latin:keyWidth="8.0%p" />
+ <Spacer
+ latin:keyWidth="8.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3_right3"
+ latin:keyWidth="8.0%p" />
+ <include
+ latin:keyboardLayout="@xml/keys_exclamation_question"
+ latin:keyWidth="8.0%p" />
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ </case>
+ <!-- Regular layout for the third row -->
+ <default>
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3"
+ latin:keyWidth="9.0%p" />
+ <include
+ latin:keyboardLayout="@xml/keys_exclamation_question"
+ latin:keyWidth="9.0%p" />
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="fillRight" />
+ </default>
+ </switch>
</Row>
+ <!-- Fourth row -->
<include
latin:keyboardLayout="@xml/row_qwerty4" />
</merge>
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index 97ae6c6c3..847b43610 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -44,6 +44,7 @@
<key-style
latin:styleName="num0KeyStyle"
latin:keySpec="0"
+ latin:keyHintLabel="+"
latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num1KeyStyle"
diff --git a/java/res/xml/keyboard_layout_set_qwerty.xml b/java/res/xml/keyboard_layout_set_qwerty.xml
index 821517081..7c9a1403e 100644
--- a/java/res/xml/keyboard_layout_set_qwerty.xml
+++ b/java/res/xml/keyboard_layout_set_qwerty.xml
@@ -23,7 +23,8 @@
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_qwerty"
- latin:enableProximityCharsCorrection="true" />
+ latin:enableProximityCharsCorrection="true"
+ latin:supportsSplitLayout="true" />
<Element
latin:elementName="symbols"
latin:elementKeyboard="@xml/kbd_symbols" />
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index ba285de09..2a5134df6 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -19,17 +19,21 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
android:key="english_ime_settings">
<PreferenceScreen
- android:fragment="com.android.inputmethod.latin.settings.InputSettingsFragment"
- android:title="@string/settings_screen_input"
- android:key="screen_input" />
+ android:fragment="com.android.inputmethod.latin.settings.PreferencesSettingsFragment"
+ android:title="@string/settings_screen_preferences"
+ android:key="screen_preferences" />
<PreferenceScreen
- android:fragment="com.android.inputmethod.latin.settings.ThemeSettingsFragment"
- android:title="@string/keyboard_theme"
- android:key="screen_theme" />
+ android:fragment="com.android.inputmethod.latin.settings.AccountsSettingsFragment"
+ android:title="@string/settings_screen_accounts"
+ android:key="screen_accounts" />
+ <PreferenceScreen
+ android:fragment="com.android.inputmethod.latin.settings.AppearanceSettingsFragment"
+ android:title="@string/settings_screen_appearance"
+ android:key="screen_appearance" />
<PreferenceScreen
android:fragment="com.android.inputmethod.latin.settings.MultiLingualSettingsFragment"
- android:title="@string/settings_screen_multi_lingual"
- android:key="screen_multi_lingual" />
+ android:title="@string/settings_screen_multilingual"
+ android:key="screen_multilingual" />
<PreferenceScreen
android:fragment="com.android.inputmethod.latin.settings.GestureSettingsFragment"
android:title="@string/settings_screen_gesture"
diff --git a/java/res/xml/prefs_screen_accounts.xml b/java/res/xml/prefs_screen_accounts.xml
new file mode 100644
index 000000000..b5d526a3a
--- /dev/null
+++ b/java/res/xml/prefs_screen_accounts.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ android:title="@string/settings_screen_accounts">
+
+ <!-- This preference is a dummy view of the underlying preference.
+ This isn't persisted and the summary/title is refreshed by the fragment
+ after inspecting the underlying account preference. -->
+ <Preference
+ android:key="account_switcher"
+ android:persistent="false"
+ android:title="@string/switch_accounts"
+ android:summary="@string/no_accounts_selected" />
+
+ <!-- title will be set programmatically to embed application name -->
+ <CheckBoxPreference
+ android:key="pref_enable_metrics_logging"
+ android:summary="@string/enable_metrics_logging_summary"
+ android:defaultValue="true"
+ android:persistent="true" />
+</PreferenceScreen>
diff --git a/java/res/xml/prefs_screen_appearance.xml b/java/res/xml/prefs_screen_appearance.xml
new file mode 100644
index 000000000..036b66553
--- /dev/null
+++ b/java/res/xml/prefs_screen_appearance.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="screen_appearance"
+ android:title="@string/settings_screen_appearance">
+ <PreferenceScreen
+ android:fragment="com.android.inputmethod.latin.settings.ThemeSettingsFragment"
+ android:key="screen_theme"
+ android:title="@string/settings_screen_theme" />
+ <PreferenceScreen
+ android:fragment="com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment"
+ android:key="custom_input_styles"
+ android:title="@string/custom_input_styles_title" />
+ <CheckBoxPreference
+ android:key="pref_split_keyboard"
+ android:title="@string/enable_split_keyboard"
+ android:persistent="true"
+ android:defaultValue="false" />
+</PreferenceScreen>
diff --git a/java/res/xml/prefs_screen_multi_lingual.xml b/java/res/xml/prefs_screen_multilingual.xml
index 937d439d6..07a4b701c 100644
--- a/java/res/xml/prefs_screen_multi_lingual.xml
+++ b/java/res/xml/prefs_screen_multilingual.xml
@@ -16,8 +16,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/settings_screen_multi_lingual"
- android:key="screen_multi_lingual">
+ android:title="@string/settings_screen_multilingual"
+ android:key="screen_multilingual">
<CheckBoxPreference
android:key="pref_show_language_switch_key"
android:title="@string/show_language_switch_key"
@@ -31,8 +31,4 @@
android:summary="@string/include_other_imes_in_language_switch_list_summary"
android:defaultValue="false"
android:persistent="true" />
- <PreferenceScreen
- android:fragment="com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment"
- android:key="custom_input_styles"
- android:title="@string/custom_input_styles_title" />
</PreferenceScreen>
diff --git a/java/res/xml/prefs_screen_input.xml b/java/res/xml/prefs_screen_preferences.xml
index 7704e3f80..101edc855 100644
--- a/java/res/xml/prefs_screen_input.xml
+++ b/java/res/xml/prefs_screen_preferences.xml
@@ -17,7 +17,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- android:title="@string/settings_screen_input">
+ android:title="@string/settings_screen_preferences">
<CheckBoxPreference
android:key="auto_cap"
android:title="@string/auto_cap"
diff --git a/java/res/xml/prefs_screen_theme.xml b/java/res/xml/prefs_screen_theme.xml
index b49f0bea6..677a6ea3b 100644
--- a/java/res/xml/prefs_screen_theme.xml
+++ b/java/res/xml/prefs_screen_theme.xml
@@ -17,7 +17,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- android:title="@string/keyboard_theme"
+ android:title="@string/settings_screen_theme"
android:key="screen_theme">
<!-- Keyboard theme list will be populated programmatically here. -->
</PreferenceScreen>
diff --git a/java/res/xml/rowkeys_qwerty1.xml b/java/res/xml/rowkeys_qwerty1.xml
index 8f3b160fe..b8e4a4c78 100644
--- a/java/res/xml/rowkeys_qwerty1.xml
+++ b/java/res/xml/rowkeys_qwerty1.xml
@@ -21,53 +21,10 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <Key
- latin:keySpec="!text/keyspec_q"
- latin:keyHintLabel="1"
- latin:additionalMoreKeys="1"
- latin:moreKeys="!text/morekeys_q" />
- <Key
- latin:keySpec="!text/keyspec_w"
- latin:keyHintLabel="2"
- latin:additionalMoreKeys="2"
- latin:moreKeys="!text/morekeys_w" />
- <Key
- latin:keySpec="e"
- latin:keyHintLabel="3"
- latin:additionalMoreKeys="3"
- latin:moreKeys="!text/morekeys_e" />
- <Key
- latin:keySpec="r"
- latin:keyHintLabel="4"
- latin:additionalMoreKeys="4"
- latin:moreKeys="!text/morekeys_r" />
- <Key
- latin:keySpec="t"
- latin:keyHintLabel="5"
- latin:additionalMoreKeys="5"
- latin:moreKeys="!text/morekeys_t" />
- <Key
- latin:keySpec="!text/keyspec_y"
- latin:keyHintLabel="6"
- latin:additionalMoreKeys="6"
- latin:moreKeys="!text/morekeys_y" />
- <Key
- latin:keySpec="u"
- latin:keyHintLabel="7"
- latin:additionalMoreKeys="7"
- latin:moreKeys="!text/morekeys_u" />
- <Key
- latin:keySpec="i"
- latin:keyHintLabel="8"
- latin:additionalMoreKeys="8"
- latin:moreKeys="!text/morekeys_i" />
- <Key
- latin:keySpec="o"
- latin:keyHintLabel="9"
- latin:additionalMoreKeys="9"
- latin:moreKeys="!text/morekeys_o" />
- <Key
- latin:keySpec="p"
- latin:keyHintLabel="0"
- latin:additionalMoreKeys="0" />
+ <!-- q,w,e,r,t -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1_left5" />
+ <!-- y,u,i,o,p -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty1_right5" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty1_left5.xml b/java/res/xml/rowkeys_qwerty1_left5.xml
new file mode 100644
index 000000000..ff9f1b2b5
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty1_left5.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="!text/keyspec_q"
+ latin:keyHintLabel="1"
+ latin:additionalMoreKeys="1"
+ latin:moreKeys="!text/morekeys_q" />
+ <Key
+ latin:keySpec="!text/keyspec_w"
+ latin:keyHintLabel="2"
+ latin:additionalMoreKeys="2"
+ latin:moreKeys="!text/morekeys_w" />
+ <Key
+ latin:keySpec="e"
+ latin:keyHintLabel="3"
+ latin:additionalMoreKeys="3"
+ latin:moreKeys="!text/morekeys_e" />
+ <Key
+ latin:keySpec="r"
+ latin:keyHintLabel="4"
+ latin:additionalMoreKeys="4"
+ latin:moreKeys="!text/morekeys_r" />
+ <Key
+ latin:keySpec="t"
+ latin:keyHintLabel="5"
+ latin:additionalMoreKeys="5"
+ latin:moreKeys="!text/morekeys_t" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty1_right5.xml b/java/res/xml/rowkeys_qwerty1_right5.xml
new file mode 100644
index 000000000..2b3cae2e8
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty1_right5.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="!text/keyspec_y"
+ latin:keyHintLabel="6"
+ latin:additionalMoreKeys="6"
+ latin:moreKeys="!text/morekeys_y" />
+ <Key
+ latin:keySpec="u"
+ latin:keyHintLabel="7"
+ latin:additionalMoreKeys="7"
+ latin:moreKeys="!text/morekeys_u" />
+ <Key
+ latin:keySpec="i"
+ latin:keyHintLabel="8"
+ latin:additionalMoreKeys="8"
+ latin:moreKeys="!text/morekeys_i" />
+ <Key
+ latin:keySpec="o"
+ latin:keyHintLabel="9"
+ latin:additionalMoreKeys="9"
+ latin:moreKeys="!text/morekeys_o" />
+ <Key
+ latin:keySpec="p"
+ latin:keyHintLabel="0"
+ latin:additionalMoreKeys="0" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty2.xml b/java/res/xml/rowkeys_qwerty2.xml
index 4077beaf6..550db3b3f 100644
--- a/java/res/xml/rowkeys_qwerty2.xml
+++ b/java/res/xml/rowkeys_qwerty2.xml
@@ -21,30 +21,10 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <Key
- latin:keySpec="a"
- latin:moreKeys="!text/morekeys_a" />
- <Key
- latin:keySpec="s"
- latin:moreKeys="!text/morekeys_s" />
- <Key
- latin:keySpec="d"
- latin:moreKeys="!text/morekeys_d" />
- <Key
- latin:keySpec="f" />
- <Key
- latin:keySpec="g"
- latin:moreKeys="!text/morekeys_g" />
- <Key
- latin:keySpec="h"
- latin:moreKeys="!text/morekeys_h" />
- <Key
- latin:keySpec="j"
- latin:moreKeys="!text/morekeys_j" />
- <Key
- latin:keySpec="k"
- latin:moreKeys="!text/morekeys_k" />
- <Key
- latin:keySpec="l"
- latin:moreKeys="!text/morekeys_l" />
+ <!-- a,s,d,f,g -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2_left5" />
+ <!-- h,j,k,l -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty2_right4" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty2_left5.xml b/java/res/xml/rowkeys_qwerty2_left5.xml
new file mode 100644
index 000000000..1803bf203
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty2_left5.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="a"
+ latin:moreKeys="!text/morekeys_a" />
+ <Key
+ latin:keySpec="s"
+ latin:moreKeys="!text/morekeys_s" />
+ <Key
+ latin:keySpec="d"
+ latin:moreKeys="!text/morekeys_d" />
+ <Key
+ latin:keySpec="f" />
+ <Key
+ latin:keySpec="g"
+ latin:moreKeys="!text/morekeys_g" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty2_right4.xml b/java/res/xml/rowkeys_qwerty2_right4.xml
new file mode 100644
index 000000000..99936b7a2
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty2_right4.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="h"
+ latin:moreKeys="!text/morekeys_h" />
+ <Key
+ latin:keySpec="j"
+ latin:moreKeys="!text/morekeys_j" />
+ <Key
+ latin:keySpec="k"
+ latin:moreKeys="!text/morekeys_k" />
+ <Key
+ latin:keySpec="l"
+ latin:moreKeys="!text/morekeys_l" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty3.xml b/java/res/xml/rowkeys_qwerty3.xml
index 8562003d2..7a523f1f6 100644
--- a/java/res/xml/rowkeys_qwerty3.xml
+++ b/java/res/xml/rowkeys_qwerty3.xml
@@ -21,23 +21,10 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <Key
- latin:keySpec="z"
- latin:moreKeys="!text/morekeys_z" />
- <Key
- latin:keySpec="!text/keyspec_x"
- latin:moreKeys="!text/morekeys_x" />
- <Key
- latin:keySpec="c"
- latin:moreKeys="!text/morekeys_c" />
- <Key
- latin:keySpec="v"
- latin:moreKeys="!text/morekeys_v" />
- <Key
- latin:keySpec="b" />
- <Key
- latin:keySpec="n"
- latin:moreKeys="!text/morekeys_n" />
- <Key
- latin:keySpec="m" />
+ <!-- z,x,c,v -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3_left4" />
+ <!-- b,n,m -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwerty3_right3" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty3_left4.xml b/java/res/xml/rowkeys_qwerty3_left4.xml
new file mode 100644
index 000000000..6043c3bba
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty3_left4.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="z"
+ latin:moreKeys="!text/morekeys_z" />
+ <Key
+ latin:keySpec="!text/keyspec_x"
+ latin:moreKeys="!text/morekeys_x" />
+ <Key
+ latin:keySpec="c"
+ latin:moreKeys="!text/morekeys_c" />
+ <Key
+ latin:keySpec="v"
+ latin:moreKeys="!text/morekeys_v" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty3_right3.xml b/java/res/xml/rowkeys_qwerty3_right3.xml
new file mode 100644
index 000000000..f69910344
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty3_right3.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="b" />
+ <Key
+ latin:keySpec="n"
+ latin:moreKeys="!text/morekeys_n" />
+ <Key
+ latin:keySpec="m" />
+</merge>
diff --git a/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java b/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java
index 8a2818508..c937eeeaa 100644
--- a/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java
@@ -41,6 +41,8 @@ public final class CursorAnchorInfoCompatWrapper {
// Note that CursorAnchorInfo has been introduced in API level XX (Build.VERSION_CODE.LXX).
private static final CompatUtils.ClassWrapper sCursorAnchorInfoClass;
+ private static final CompatUtils.ToIntMethodWrapper sGetSelectionStartMethod;
+ private static final CompatUtils.ToIntMethodWrapper sGetSelectionEndMethod;
private static final CompatUtils.ToObjectMethodWrapper<RectF> sGetCharacterBoundsMethod;
private static final CompatUtils.ToIntMethodWrapper sGetCharacterBoundsFlagsMethod;
private static final CompatUtils.ToObjectMethodWrapper<CharSequence> sGetComposingTextMethod;
@@ -52,10 +54,14 @@ public final class CursorAnchorInfoCompatWrapper {
private static final CompatUtils.ToObjectMethodWrapper<Matrix> sGetMatrixMethod;
private static final CompatUtils.ToIntMethodWrapper sGetInsertionMarkerFlagsMethod;
- private static int COMPOSING_TEXT_START_DEFAULT = -1;
+ private static int INVALID_TEXT_INDEX = -1;
static {
sCursorAnchorInfoClass = CompatUtils.getClassWrapper(
"android.view.inputmethod.CursorAnchorInfo");
+ sGetSelectionStartMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
+ "getSelectionStart", INVALID_TEXT_INDEX);
+ sGetSelectionEndMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
+ "getSelectionEnd", INVALID_TEXT_INDEX);
sGetCharacterBoundsMethod = sCursorAnchorInfoClass.getMethod(
"getCharacterBounds", (RectF)null, int.class);
sGetCharacterBoundsFlagsMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
@@ -63,7 +69,7 @@ public final class CursorAnchorInfoCompatWrapper {
sGetComposingTextMethod = sCursorAnchorInfoClass.getMethod(
"getComposingText", (CharSequence)null);
sGetComposingTextStartMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
- "getComposingTextStart", COMPOSING_TEXT_START_DEFAULT);
+ "getComposingTextStart", INVALID_TEXT_INDEX);
sGetInsertionMarkerBaselineMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
"getInsertionMarkerBaseline", 0.0f);
sGetInsertionMarkerBottomMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
@@ -105,6 +111,14 @@ public final class CursorAnchorInfoCompatWrapper {
return FakeHolder.sInstance;
}
+ public int getSelectionStart() {
+ return sGetSelectionStartMethod.invoke(mInstance);
+ }
+
+ public int getSelectionEnd() {
+ return sGetSelectionEndMethod.invoke(mInstance);
+ }
+
public CharSequence getComposingText() {
return sGetComposingTextMethod.invoke(mInstance);
}
diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java
index 75cc7d4cb..3dbbc9b9b 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java
@@ -54,15 +54,13 @@ public class DownloadManagerWrapper {
if (null != mDownloadManager) {
mDownloadManager.remove(ids);
}
+ } catch (IllegalArgumentException e) {
+ // This is expected to happen on boot when the device is encrypted.
} catch (SQLiteException e) {
// We couldn't remove the file from DownloadManager. Apparently, the database can't
// be opened. It may be a problem with file system corruption. In any case, there is
// not much we can do apart from avoiding crashing.
Log.e(TAG, "Can't remove files with ID " + ids + " from download manager", e);
- } catch (IllegalArgumentException e) {
- // Not sure how this can happen, but it could be another case where the provider
- // is disabled. Or it could be a bug in older versions of the framework.
- Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
}
@@ -71,10 +69,10 @@ public class DownloadManagerWrapper {
if (null != mDownloadManager) {
return mDownloadManager.openDownloadedFile(fileId);
}
+ } catch (IllegalArgumentException e) {
+ // This is expected to happen on boot when the device is encrypted.
} catch (SQLiteException e) {
Log.e(TAG, "Can't open downloaded file with ID " + fileId, e);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
// We come here if mDownloadManager is null or if an exception was thrown.
throw new FileNotFoundException();
@@ -85,10 +83,10 @@ public class DownloadManagerWrapper {
if (null != mDownloadManager) {
return mDownloadManager.query(query);
}
+ } catch (IllegalArgumentException e) {
+ // This is expected to happen on boot when the device is encrypted.
} catch (SQLiteException e) {
Log.e(TAG, "Can't query the download manager", e);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
// We come here if mDownloadManager is null or if an exception was thrown.
return null;
@@ -99,10 +97,10 @@ public class DownloadManagerWrapper {
if (null != mDownloadManager) {
return mDownloadManager.enqueue(request);
}
+ } catch (IllegalArgumentException e) {
+ // This is expected to happen on boot when the device is encrypted.
} catch (SQLiteException e) {
Log.e(TAG, "Can't enqueue a request with the download manager", e);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "Can't find the content URL for DownloadManager?", e);
}
return 0;
}
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index bd1c1479a..863a8b7ad 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -98,6 +98,16 @@ public class Key implements Comparable<Key> {
private final int mWidth;
/** Height of the key, excluding the gap */
private final int mHeight;
+ /**
+ * The combined width in pixels of the horizontal gaps belonging to this key, both to the left
+ * and to the right. I.e., mWidth + mHorizontalGap = total width belonging to the key.
+ */
+ private final int mHorizontalGap;
+ /**
+ * The combined height in pixels of the vertical gaps belonging to this key, both above and
+ * below. I.e., mHeight + mVerticalGap = total height belonging to the key.
+ */
+ private final int mVerticalGap;
/** X coordinate of the top-left corner of the key in the keyboard layout, excluding the gap. */
private final int mX;
/** Y coordinate of the top-left corner of the key in the keyboard layout, excluding the gap. */
@@ -198,8 +208,10 @@ public class Key implements Comparable<Key> {
final String hintLabel, final int labelFlags, final int backgroundType, final int x,
final int y, final int width, final int height, final int horizontalGap,
final int verticalGap) {
- mHeight = height - verticalGap;
mWidth = width - horizontalGap;
+ mHeight = height - verticalGap;
+ mHorizontalGap = horizontalGap;
+ mVerticalGap = verticalGap;
mHintLabel = hintLabel;
mLabelFlags = labelFlags;
mBackgroundType = backgroundType;
@@ -214,7 +226,7 @@ public class Key implements Comparable<Key> {
mEnabled = (code != CODE_UNSPECIFIED);
mIconId = iconId;
// Horizontal gap is divided equally to both sides of the key.
- mX = x + horizontalGap / 2;
+ mX = x + mHorizontalGap / 2;
mY = y;
mHitBox.set(x, y, x + width + 1, y + height);
mKeyVisualAttributes = null;
@@ -235,18 +247,21 @@ public class Key implements Comparable<Key> {
*/
public Key(final String keySpec, final TypedArray keyAttr, final KeyStyle style,
final KeyboardParams params, final KeyboardRow row) {
- final float horizontalGap = isSpacer() ? 0 : params.mHorizontalGap;
+ mHorizontalGap = isSpacer() ? 0 : params.mHorizontalGap;
+ mVerticalGap = params.mVerticalGap;
+
+ final float horizontalGapFloat = mHorizontalGap;
final int rowHeight = row.getRowHeight();
- mHeight = rowHeight - params.mVerticalGap;
+ mHeight = rowHeight - mVerticalGap;
final float keyXPos = row.getKeyX(keyAttr);
final float keyWidth = row.getKeyWidth(keyAttr, keyXPos);
final int keyYPos = row.getKeyY();
// Horizontal gap is divided equally to both sides of the key.
- mX = Math.round(keyXPos + horizontalGap / 2);
+ mX = Math.round(keyXPos + horizontalGapFloat / 2);
mY = keyYPos;
- mWidth = Math.round(keyWidth - horizontalGap);
+ mWidth = Math.round(keyWidth - horizontalGapFloat);
mHitBox.set(Math.round(keyXPos), keyYPos, Math.round(keyXPos + keyWidth) + 1,
keyYPos + rowHeight);
// Update row to have current x coordinate.
@@ -388,6 +403,8 @@ public class Key implements Comparable<Key> {
mIconId = key.mIconId;
mWidth = key.mWidth;
mHeight = key.mHeight;
+ mHorizontalGap = key.mHorizontalGap;
+ mVerticalGap = key.mVerticalGap;
mX = key.mX;
mY = key.mY;
mHitBox.set(key.mHitBox);
@@ -702,6 +719,10 @@ public class Key implements Comparable<Key> {
return ((mLabelFlags | defaultFlags) & LABEL_FLAGS_KEEP_BACKGROUND_ASPECT_RATIO) != 0;
}
+ public final boolean hasCustomActionLabel() {
+ return (mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0;
+ }
+
private final boolean isShiftedLetterActivated() {
return (mLabelFlags & LABEL_FLAGS_SHIFTED_LETTER_ACTIVATED) != 0
&& !TextUtils.isEmpty(mHintLabel);
@@ -784,6 +805,24 @@ public class Key implements Comparable<Key> {
}
/**
+ * The combined width in pixels of the horizontal gaps belonging to this key, both above and
+ * below. I.e., getWidth() + getHorizontalGap() = total width belonging to the key.
+ * @return Horizontal gap belonging to this key.
+ */
+ public int getHorizontalGap() {
+ return mHorizontalGap;
+ }
+
+ /**
+ * The combined height in pixels of the vertical gaps belonging to this key, both above and
+ * below. I.e., getHeight() + getVerticalGap() = total height belonging to the key.
+ * @return Vertical gap belonging to this key.
+ */
+ public int getVerticalGap() {
+ return mVerticalGap;
+ }
+
+ /**
* Gets the x-coordinate of the top-left corner of the key in pixels, excluding the gap.
* @return The x-coordinate of the top-left corner of the key in pixels, excluding the gap.
*/
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
index 538e515bc..f9cf3535e 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
@@ -73,6 +73,7 @@ public final class KeyboardId {
public final boolean mLanguageSwitchKeyEnabled;
public final String mCustomActionLabel;
public final boolean mHasShortcutKey;
+ public final boolean mIsSplitLayout;
private final int mHashCode;
@@ -89,6 +90,7 @@ public final class KeyboardId {
mCustomActionLabel = (mEditorInfo.actionLabel != null)
? mEditorInfo.actionLabel.toString() : null;
mHasShortcutKey = params.mVoiceInputKeyEnabled;
+ mIsSplitLayout = params.mIsSplitLayoutEnabled;
mHashCode = computeHashCode(this);
}
@@ -108,7 +110,8 @@ public final class KeyboardId {
id.mCustomActionLabel,
id.navigateNext(),
id.navigatePrevious(),
- id.mSubtype
+ id.mSubtype,
+ id.mIsSplitLayout
});
}
@@ -128,7 +131,8 @@ public final class KeyboardId {
&& TextUtils.equals(other.mCustomActionLabel, mCustomActionLabel)
&& other.navigateNext() == navigateNext()
&& other.navigatePrevious() == navigatePrevious()
- && other.mSubtype.equals(mSubtype);
+ && other.mSubtype.equals(mSubtype)
+ && other.mIsSplitLayout == mIsSplitLayout;
}
private static boolean isAlphabetKeyboard(final int elementId) {
@@ -175,7 +179,7 @@ public final class KeyboardId {
@Override
public String toString() {
- return String.format(Locale.ROOT, "[%s %s:%s %dx%d %s %s%s%s%s%s%s%s%s]",
+ return String.format(Locale.ROOT, "[%s %s:%s %dx%d %s %s%s%s%s%s%s%s%s%s]",
elementIdToName(mElementId),
mLocale, mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET),
mWidth, mHeight,
@@ -187,7 +191,8 @@ public final class KeyboardId {
(passwordInput() ? " passwordInput" : ""),
(mHasShortcutKey ? " hasShortcutKey" : ""),
(mLanguageSwitchKeyEnabled ? " languageSwitchKeyEnabled" : ""),
- (isMultiLine() ? " isMultiLine" : "")
+ (isMultiLine() ? " isMultiLine" : ""),
+ (mIsSplitLayout ? " isSplitLayout" : "")
);
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
index 3f4367313..47fb7b320 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
@@ -96,6 +96,7 @@ public final class KeyboardLayoutSet {
private static final class ElementParams {
int mKeyboardXmlId;
boolean mProximityCharsCorrectionEnabled;
+ boolean mSupportsSplitLayout;
public ElementParams() {}
}
@@ -114,6 +115,12 @@ public final class KeyboardLayoutSet {
int mKeyboardWidth;
int mKeyboardHeight;
int mScriptId = ScriptUtils.SCRIPT_LATIN;
+ // Indicates if the user has enabled the split-layout preference
+ // and the required ProductionFlags are enabled.
+ boolean mIsSplitLayoutEnabledByUser;
+ // Indicates if split layout is actually enabled, taking into account
+ // whether the user has enabled it, and the keyboard layout supports it.
+ boolean mIsSplitLayoutEnabled;
// Sparse array of KeyboardLayoutSet element parameters indexed by element's id.
final SparseArray<ElementParams> mKeyboardLayoutSetElementIdToParamsMap =
new SparseArray<>();
@@ -168,6 +175,9 @@ public final class KeyboardLayoutSet {
// attribute in a keyboard_layout_set XML file. Also each keyboard layout XML resource is
// specified as an elementKeyboard attribute in the file.
// The KeyboardId is an internal key for a Keyboard object.
+
+ mParams.mIsSplitLayoutEnabled = mParams.mIsSplitLayoutEnabledByUser
+ && elementParams.mSupportsSplitLayout;
final KeyboardId id = new KeyboardId(keyboardLayoutSetElementId, mParams);
try {
return getKeyboard(elementParams, id);
@@ -286,12 +296,19 @@ public final class KeyboardLayoutSet {
return this;
}
- public void disableTouchPositionCorrectionData() {
+ public Builder disableTouchPositionCorrectionData() {
mParams.mDisableTouchPositionCorrectionDataForTest = true;
+ return this;
}
- public void setScriptId(final int scriptId) {
+ public Builder setScriptId(final int scriptId) {
mParams.mScriptId = scriptId;
+ return this;
+ }
+
+ public Builder setSplitLayoutEnabledByUser(final boolean enabled) {
+ mParams.mIsSplitLayoutEnabledByUser = enabled;
+ return this;
}
public KeyboardLayoutSet build() {
@@ -376,6 +393,8 @@ public final class KeyboardLayoutSet {
elementParams.mProximityCharsCorrectionEnabled = a.getBoolean(
R.styleable.KeyboardLayoutSet_Element_enableProximityCharsCorrection,
false);
+ elementParams.mSupportsSplitLayout = a.getBoolean(
+ R.styleable.KeyboardLayoutSet_Element_supportsSplitLayout, false);
mParams.mKeyboardLayoutSetElementIdToParamsMap.put(elementName, elementParams);
} finally {
a.recycle();
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 28f2dcf89..246d11bac 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -17,10 +17,7 @@
package com.android.inputmethod.keyboard;
import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.res.Configuration;
import android.content.res.Resources;
-import android.preference.PreferenceManager;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -39,6 +36,7 @@ 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;
import com.android.inputmethod.latin.settings.SettingsValues;
import com.android.inputmethod.latin.utils.ResourceUtils;
@@ -48,7 +46,6 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
private static final String TAG = KeyboardSwitcher.class.getSimpleName();
private SubtypeSwitcher mSubtypeSwitcher;
- private SharedPreferences mPrefs;
private InputView mCurrentInputView;
private View mMainKeyboardFrame;
@@ -77,13 +74,11 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
}
public static void init(final LatinIME latinIme) {
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(latinIme);
- sInstance.initInternal(latinIme, prefs);
+ sInstance.initInternal(latinIme);
}
- private void initInternal(final LatinIME latinIme, final SharedPreferences prefs) {
+ private void initInternal(final LatinIME latinIme) {
mLatinIME = latinIme;
- mPrefs = prefs;
mSubtypeSwitcher = SubtypeSwitcher.getInstance();
mState = new KeyboardState(this);
mIsHardwareAcceleratedDrawingEnabled =
@@ -92,7 +87,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
public void updateKeyboardTheme() {
final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper(
- mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
+ mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */));
if (themeUpdated && mKeyboardView != null) {
mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
}
@@ -120,6 +115,8 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype());
builder.setVoiceInputKeyEnabled(settingsValues.mShowsVoiceInputKey);
builder.setLanguageSwitchKeyEnabled(mLatinIME.shouldShowLanguageSwitchKey());
+ builder.setSplitLayoutEnabledByUser(ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED
+ && settingsValues.mIsSplitKeyboardEnabled);
mKeyboardLayoutSet = builder.build();
try {
mState.onLoadKeyboard(currentAutoCapsState, currentRecapitalizeState);
@@ -257,13 +254,12 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
}
public void onToggleEmojiKeyboard() {
- if (mKeyboardLayoutSet == null) {
- return;
- }
- if (isShowingEmojiPalettes()) {
- setAlphabetKeyboard();
- } else {
+ if (mKeyboardLayoutSet == null || !isShowingEmojiPalettes()) {
+ mLatinIME.startShowingInputView();
setEmojiKeyboard();
+ } else {
+ mLatinIME.stopShowingInputView();
+ setAlphabetKeyboard();
}
}
@@ -350,7 +346,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
}
updateKeyboardThemeAndContextThemeWrapper(
- mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
+ mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */));
mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
R.layout.input_view, null);
mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
index 7161d3f26..6d8c8b76f 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
@@ -16,14 +16,17 @@
package com.android.inputmethod.keyboard;
+import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build.VERSION_CODES;
+import android.preference.PreferenceManager;
import android.util.Log;
import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.compat.BuildCompatUtils;
import com.android.inputmethod.latin.R;
+import java.util.ArrayList;
import java.util.Arrays;
public final class KeyboardTheme implements Comparable<KeyboardTheme> {
@@ -40,7 +43,10 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
public static final int THEME_ID_LXX_DARK = 4;
public static final int DEFAULT_THEME_ID = THEME_ID_KLP;
- private static final KeyboardTheme[] KEYBOARD_THEMES = {
+ private static KeyboardTheme[] AVAILABLE_KEYBOARD_THEMES;
+
+ @UsedForTesting
+ static final KeyboardTheme[] KEYBOARD_THEMES = {
new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS,
// This has never been selected because we support ICS or later.
VERSION_CODES.BASE),
@@ -93,9 +99,10 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
}
@UsedForTesting
- static KeyboardTheme searchKeyboardThemeById(final int themeId) {
+ static KeyboardTheme searchKeyboardThemeById(final int themeId,
+ final KeyboardTheme[] availableThemeIds) {
// TODO: This search algorithm isn't optimal if there are many themes.
- for (final KeyboardTheme theme : KEYBOARD_THEMES) {
+ for (final KeyboardTheme theme : availableThemeIds) {
if (theme.mThemeId == themeId) {
return theme;
}
@@ -105,13 +112,14 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
@UsedForTesting
static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs,
- final int sdkVersion) {
+ final int sdkVersion, final KeyboardTheme[] availableThemeArray) {
final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null);
if (klpThemeIdString != null) {
if (sdkVersion <= VERSION_CODES.KITKAT) {
try {
final int themeId = Integer.parseInt(klpThemeIdString);
- final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+ final KeyboardTheme theme = searchKeyboardThemeById(themeId,
+ availableThemeArray);
if (theme != null) {
return theme;
}
@@ -125,22 +133,21 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply();
}
// TODO: This search algorithm isn't optimal if there are many themes.
- for (final KeyboardTheme theme : KEYBOARD_THEMES) {
+ for (final KeyboardTheme theme : availableThemeArray) {
if (sdkVersion >= theme.mMinApiVersion) {
return theme;
}
}
- return searchKeyboardThemeById(DEFAULT_THEME_ID);
+ return searchKeyboardThemeById(DEFAULT_THEME_ID, availableThemeArray);
}
public static String getKeyboardThemeName(final int themeId) {
- final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+ final KeyboardTheme theme = searchKeyboardThemeById(themeId, KEYBOARD_THEMES);
return theme.mThemeName;
}
- public static void saveKeyboardThemeId(final String themeIdString,
- final SharedPreferences prefs) {
- saveKeyboardThemeId(themeIdString, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
+ public static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs) {
+ saveKeyboardThemeId(themeId, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
}
@UsedForTesting
@@ -152,25 +159,45 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
}
@UsedForTesting
- static void saveKeyboardThemeId(final String themeIdString,
- final SharedPreferences prefs, final int sdkVersion) {
+ static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs,
+ final int sdkVersion) {
final String prefKey = getPreferenceKey(sdkVersion);
- prefs.edit().putString(prefKey, themeIdString).apply();
+ prefs.edit().putString(prefKey, Integer.toString(themeId)).apply();
}
- public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) {
- return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
+ public static KeyboardTheme getKeyboardTheme(final Context context) {
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context);
+ return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT, availableThemeArray);
+ }
+
+ static KeyboardTheme[] getAvailableThemeArray(final Context context) {
+ if (AVAILABLE_KEYBOARD_THEMES == null) {
+ final int[] availableThemeIdStringArray = context.getResources().getIntArray(
+ R.array.keyboard_theme_ids);
+ final ArrayList<KeyboardTheme> availableThemeList = new ArrayList<>();
+ for (final int id : availableThemeIdStringArray) {
+ final KeyboardTheme theme = searchKeyboardThemeById(id, KEYBOARD_THEMES);
+ if (theme != null) {
+ availableThemeList.add(theme);
+ }
+ }
+ AVAILABLE_KEYBOARD_THEMES = availableThemeList.toArray(
+ new KeyboardTheme[availableThemeList.size()]);
+ }
+ return AVAILABLE_KEYBOARD_THEMES;
}
@UsedForTesting
- static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion) {
+ static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion,
+ final KeyboardTheme[] availableThemeArray) {
final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null);
if (lxxThemeIdString == null) {
- return getDefaultKeyboardTheme(prefs, sdkVersion);
+ return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
}
try {
final int themeId = Integer.parseInt(lxxThemeIdString);
- final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+ final KeyboardTheme theme = searchKeyboardThemeById(themeId, availableThemeArray);
if (theme != null) {
return theme;
}
@@ -180,6 +207,6 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
}
// Remove preference that contains unknown or illegal theme id.
prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply();
- return getDefaultKeyboardTheme(prefs, sdkVersion);
+ return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index bb3cbb0eb..98cd1da54 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -343,7 +343,9 @@ public class KeyboardView extends View {
final int keyWidth = key.getDrawWidth();
final int keyHeight = key.getHeight();
final int bgWidth, bgHeight, bgX, bgY;
- if (key.needsToKeepBackgroundAspectRatio(mDefaultKeyLabelFlags)) {
+ if (key.needsToKeepBackgroundAspectRatio(mDefaultKeyLabelFlags)
+ // HACK: To disable expanding normal/functional key background.
+ && !key.hasCustomActionLabel()) {
final int intrinsicWidth = background.getIntrinsicWidth();
final int intrinsicHeight = background.getIntrinsicHeight();
final float minScale = Math.min(
diff --git a/java/src/com/android/inputmethod/keyboard/TextDecorator.java b/java/src/com/android/inputmethod/keyboard/TextDecorator.java
index cf58d6a09..6e4e3281e 100644
--- a/java/src/com/android/inputmethod/keyboard/TextDecorator.java
+++ b/java/src/com/android/inputmethod/keyboard/TextDecorator.java
@@ -17,7 +17,6 @@
package com.android.inputmethod.keyboard;
import android.graphics.Matrix;
-import android.graphics.PointF;
import android.graphics.RectF;
import android.inputmethodservice.InputMethodService;
import android.os.Message;
@@ -28,13 +27,12 @@ import android.view.inputmethod.CursorAnchorInfo;
import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper;
-import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.utils.LeakGuardHandlerWrapper;
import javax.annotation.Nonnull;
/**
- * A controller class of commit/add-to-dictionary indicator (a.k.a. TextDecorator). This class
+ * A controller class of the add-to-dictionary indicator (a.k.a. TextDecorator). This class
* is designed to be independent of UI subsystems such as {@link View}. All the UI related
* operations are delegated to {@link TextDecoratorUi} via {@link TextDecoratorUiOperator}.
*/
@@ -42,18 +40,22 @@ public class TextDecorator {
private static final String TAG = TextDecorator.class.getSimpleName();
private static final boolean DEBUG = false;
- private static final int MODE_NONE = 0;
- private static final int MODE_COMMIT = 1;
- private static final int MODE_ADD_TO_DICTIONARY = 2;
+ private static final int INVALID_CURSOR_INDEX = -1;
- private int mMode = MODE_NONE;
+ private static final int MODE_MONITOR = 0;
+ private static final int MODE_WAITING_CURSOR_INDEX = 1;
+ private static final int MODE_SHOWING_INDICATOR = 2;
- private final PointF mLocalOrigin = new PointF();
- private final RectF mRelativeIndicatorBounds = new RectF();
- private final RectF mRelativeComposingTextBounds = new RectF();
+ private int mMode = MODE_MONITOR;
+
+ private String mLastComposingText = null;
+ private boolean mHasRtlCharsInLastComposingText = false;
+ private RectF mComposingTextBoundsForLastComposingText = new RectF();
private boolean mIsFullScreenMode = false;
- private SuggestedWordInfo mWaitingWord = null;
+ private String mWaitingWord = null;
+ private int mWaitingCursorStart = INVALID_CURSOR_INDEX;
+ private int mWaitingCursorEnd = INVALID_CURSOR_INDEX;
private CursorAnchorInfoCompatWrapper mCursorAnchorInfoWrapper = null;
@Nonnull
@@ -64,16 +66,10 @@ public class TextDecorator {
public interface Listener {
/**
- * Called when the user clicks the composing text to commit.
- * @param wordInfo the suggested word which the user clicked on.
+ * Called when the user clicks the indicator to add the word into the dictionary.
+ * @param word the word which the user clicked on.
*/
- void onClickComposingTextToCommit(final SuggestedWordInfo wordInfo);
-
- /**
- * Called when the user clicks the composing text to add the word into the dictionary.
- * @param wordInfo the suggested word which the user clicked on.
- */
- void onClickComposingTextToAddToDictionary(final SuggestedWordInfo wordInfo);
+ void onClickComposingTextToAddToDictionary(final String word);
}
public TextDecorator(final Listener listener) {
@@ -104,46 +100,19 @@ public class TextDecorator {
}
/**
- * Shows the "Commit" indicator and associates it with the given suggested word.
- *
- * <p>The effect of {@link #showCommitIndicator(SuggestedWordInfo)} and
- * {@link #showAddToDictionaryIndicator(SuggestedWordInfo)} are exclusive to each other. Call
- * {@link #reset()} to hide the indicator.</p>
+ * Shows the "Add to dictionary" indicator and associates it with associating the given word.
*
- * @param wordInfo the suggested word which should be associated with the indicator. This object
- * will be passed back in {@link Listener#onClickComposingTextToCommit(SuggestedWordInfo)}
+ * @param word the word which should be associated with the indicator. This object will be
+ * passed back in {@link Listener#onClickComposingTextToAddToDictionary(String)}.
+ * @param selectionStart the cursor index (inclusive) when the indicator should be displayed.
+ * @param selectionEnd the cursor index (exclusive) when the indicator should be displayed.
*/
- public void showCommitIndicator(final SuggestedWordInfo wordInfo) {
- if (mMode == MODE_COMMIT && wordInfo != null &&
- TextUtils.equals(mWaitingWord.mWord, wordInfo.mWord)) {
- // Skip layout for better performance.
- return;
- }
- mWaitingWord = wordInfo;
- mMode = MODE_COMMIT;
- layoutLater();
- }
-
- /**
- * Shows the "Add to dictionary" indicator and associates it with associating the given
- * suggested word.
- *
- * <p>The effect of {@link #showCommitIndicator(SuggestedWordInfo)} and
- * {@link #showAddToDictionaryIndicator(SuggestedWordInfo)} are exclusive to each other. Call
- * {@link #reset()} to hide the indicator.</p>
- *
- * @param wordInfo the suggested word which should be associated with the indicator. This object
- * will be passed back in
- * {@link Listener#onClickComposingTextToAddToDictionary(SuggestedWordInfo)}.
- */
- public void showAddToDictionaryIndicator(final SuggestedWordInfo wordInfo) {
- if (mMode == MODE_ADD_TO_DICTIONARY && wordInfo != null &&
- TextUtils.equals(mWaitingWord.mWord, wordInfo.mWord)) {
- // Skip layout for better performance.
- return;
- }
- mWaitingWord = wordInfo;
- mMode = MODE_ADD_TO_DICTIONARY;
+ public void showAddToDictionaryIndicator(final String word, final int selectionStart,
+ final int selectionEnd) {
+ mWaitingWord = word;
+ mWaitingCursorStart = selectionStart;
+ mWaitingCursorEnd = selectionEnd;
+ mMode = MODE_WAITING_CURSOR_INDEX;
layoutLater();
return;
}
@@ -154,13 +123,11 @@ public class TextDecorator {
* {@code false} is the input method is finishing the full screen mode.
*/
public void notifyFullScreenMode(final boolean fullScreenMode) {
- final boolean currentFullScreenMode = mIsFullScreenMode;
- if (!currentFullScreenMode && fullScreenMode) {
- // Currently full screen mode is not supported.
- // TODO: Support full screen mode.
- mUiOperator.hideUi();
- }
+ final boolean fullScreenModeChanged = (mIsFullScreenMode != fullScreenMode);
mIsFullScreenMode = fullScreenMode;
+ if (fullScreenModeChanged) {
+ layoutLater();
+ }
}
/**
@@ -168,54 +135,27 @@ public class TextDecorator {
*/
public void reset() {
mWaitingWord = null;
- mMode = MODE_NONE;
- mLocalOrigin.set(0.0f, 0.0f);
- mRelativeIndicatorBounds.set(0.0f, 0.0f, 0.0f, 0.0f);
- mRelativeComposingTextBounds.set(0.0f, 0.0f, 0.0f, 0.0f);
+ mMode = MODE_MONITOR;
+ mWaitingCursorStart = INVALID_CURSOR_INDEX;
+ mWaitingCursorEnd = INVALID_CURSOR_INDEX;
cancelLayoutInternalExpectedly("Resetting internal state.");
}
/**
- * Must be called when the {@link InputMethodService#onUpdateCursorAnchorInfo()} is called.
+ * Must be called when the {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)}
+ * is called.
*
* <p>CAVEAT: Currently the input method author is responsible for ignoring
- * {@link InputMethodService#onUpdateCursorAnchorInfo()} called in full screen mode.</p>
+ * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} called in full screen
+ * mode.</p>
* @param info the compatibility wrapper object for the received {@link CursorAnchorInfo}.
*/
public void onUpdateCursorAnchorInfo(final CursorAnchorInfoCompatWrapper info) {
- if (mIsFullScreenMode) {
- // TODO: Consider to call InputConnection#requestCursorAnchorInfo to disable the
- // event callback to suppress unnecessary event callbacks.
- return;
- }
mCursorAnchorInfoWrapper = info;
// Do not use layoutLater() to minimize the latency.
layoutImmediately();
}
- /**
- * Hides indicator if the new composing text doesn't match the expected one.
- *
- * <p>Calling this method is optional but recommended whenever the new composition is passed to
- * the application. The motivation of this method is to reduce the UI latency. With this method,
- * we can hide the indicator without waiting the arrival of the
- * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} callback, assuming that
- * the application accepts the new composing text without any modification. Even if this
- * assumption is false, the indicator will be shown again when
- * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} is actually received.
- * </p>
- *
- * @param newComposingText the new composing text that is being passed to the application.
- */
- public void hideIndicatorIfNecessary(final CharSequence newComposingText) {
- if (mMode != MODE_COMMIT && mMode != MODE_ADD_TO_DICTIONARY) {
- return;
- }
- if (!TextUtils.equals(newComposingText, mWaitingWord.mWord)) {
- mUiOperator.hideUi();
- }
- }
-
private void cancelLayoutInternalUnexpectedly(final String message) {
mUiOperator.hideUi();
Log.d(TAG, message);
@@ -240,20 +180,6 @@ public class TextDecorator {
}
private void layoutMain() {
- if (mIsFullScreenMode) {
- cancelLayoutInternalUnexpectedly("Full screen mode isn't yet supported.");
- return;
- }
-
- if (mMode != MODE_COMMIT && mMode != MODE_ADD_TO_DICTIONARY) {
- if (mMode == MODE_NONE) {
- cancelLayoutInternalExpectedly("Not ready for layouting.");
- } else {
- cancelLayoutInternalUnexpectedly("Unknown mMode=" + mMode);
- }
- return;
- }
-
final CursorAnchorInfoCompatWrapper info = mCursorAnchorInfoWrapper;
if (info == null) {
@@ -267,104 +193,105 @@ public class TextDecorator {
}
final CharSequence composingText = info.getComposingText();
- if (mMode == MODE_COMMIT) {
- if (composingText == null) {
- cancelLayoutInternalExpectedly("composingText is null.");
- return;
- }
+ if (!TextUtils.isEmpty(composingText)) {
final int composingTextStart = info.getComposingTextStart();
final int lastCharRectIndex = composingTextStart + composingText.length() - 1;
final RectF lastCharRect = info.getCharacterBounds(lastCharRectIndex);
- final int lastCharRectFlag = info.getCharacterBoundsFlags(lastCharRectIndex);
+ final int lastCharRectFlags = info.getCharacterBoundsFlags(lastCharRectIndex);
final boolean hasInvisibleRegionInLastCharRect =
- (lastCharRectFlag & CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION)
+ (lastCharRectFlags & CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION)
!= 0;
if (lastCharRect == null || matrix == null || hasInvisibleRegionInLastCharRect) {
mUiOperator.hideUi();
return;
}
- final RectF segmentStartCharRect = new RectF(lastCharRect);
- for (int i = composingText.length() - 2; i >= 0; --i) {
- final RectF charRect = info.getCharacterBounds(composingTextStart + i);
- if (charRect == null) {
+
+ // Note that the following layout information is fragile, and must be invalidated
+ // even when surrounding text next to the composing text is changed because it can
+ // affect how the composing text is rendered.
+ // TODO: Investigate if we can change the input logic to make the target text
+ // composing state so that we can retrieve the character bounds reliably.
+ final String composingTextString = composingText.toString();
+ final float top = lastCharRect.top;
+ final float bottom = lastCharRect.bottom;
+ float left = lastCharRect.left;
+ float right = lastCharRect.right;
+ boolean useRtlLayout = false;
+ for (int i = composingText.length() - 1; i >= 0; --i) {
+ final int characterIndex = composingTextStart + i;
+ final RectF characterBounds = info.getCharacterBounds(characterIndex);
+ final int characterBoundsFlags = info.getCharacterBoundsFlags(characterIndex);
+ if (characterBounds == null) {
break;
}
- if (charRect.top != segmentStartCharRect.top) {
+ if (characterBounds.top != top) {
break;
}
- if (charRect.bottom != segmentStartCharRect.bottom) {
+ if (characterBounds.bottom != bottom) {
break;
}
- segmentStartCharRect.set(charRect);
+ if ((characterBoundsFlags & CursorAnchorInfoCompatWrapper.FLAG_IS_RTL) != 0) {
+ // This is for both RTL text and bi-directional text. RTL languages usually mix
+ // RTL characters with LTR characters and in this case we should display the
+ // indicator on the left, while in LTR languages that normally never happens.
+ // TODO: Try to come up with a better algorithm.
+ useRtlLayout = true;
+ }
+ left = Math.min(characterBounds.left, left);
+ right = Math.max(characterBounds.right, right);
}
+ mLastComposingText = composingTextString;
+ mHasRtlCharsInLastComposingText = useRtlLayout;
+ mComposingTextBoundsForLastComposingText.set(left, top, right, bottom);
+ }
- mLocalOrigin.set(lastCharRect.right, lastCharRect.top);
- mRelativeIndicatorBounds.set(lastCharRect.right, lastCharRect.top,
- lastCharRect.right + lastCharRect.height(), lastCharRect.bottom);
- mRelativeIndicatorBounds.offset(-mLocalOrigin.x, -mLocalOrigin.y);
-
- mRelativeIndicatorBounds.set(lastCharRect.right, lastCharRect.top,
- lastCharRect.right + lastCharRect.height(), lastCharRect.bottom);
- mRelativeIndicatorBounds.offset(-mLocalOrigin.x, -mLocalOrigin.y);
-
- mRelativeComposingTextBounds.set(segmentStartCharRect.left, segmentStartCharRect.top,
- segmentStartCharRect.right, segmentStartCharRect.bottom);
- mRelativeComposingTextBounds.offset(-mLocalOrigin.x, -mLocalOrigin.y);
-
- if (mWaitingWord == null) {
- cancelLayoutInternalExpectedly("mWaitingText is null.");
- return;
- }
- if (TextUtils.isEmpty(mWaitingWord.mWord)) {
- cancelLayoutInternalExpectedly("mWaitingText.mWord is empty.");
- return;
- }
- if (!TextUtils.equals(composingText, mWaitingWord.mWord)) {
- // This is indeed an expected situation because of the asynchronous nature of
- // input method framework in Android. Note that composingText is notified from the
- // application, while mWaitingWord.mWord is obtained directly from the InputLogic.
- cancelLayoutInternalExpectedly(
- "Composing text doesn't match the one we are waiting for.");
- return;
- }
- } else {
- if (!TextUtils.isEmpty(composingText)) {
- // This is an unexpected case.
- // TODO: Document this.
+ final int selectionStart = info.getSelectionStart();
+ final int selectionEnd = info.getSelectionEnd();
+ switch (mMode) {
+ case MODE_MONITOR:
mUiOperator.hideUi();
return;
- }
- // In MODE_ADD_TO_DICTIONARY, we cannot retrieve the character position at all because
- // of the lack of composing text. We will use the insertion marker position instead.
- if ((info.getInsertionMarkerFlags() &
- CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) != 0) {
- mUiOperator.hideUi();
+ case MODE_WAITING_CURSOR_INDEX:
+ if (selectionStart != mWaitingCursorStart || selectionEnd != mWaitingCursorEnd) {
+ mUiOperator.hideUi();
+ return;
+ }
+ mMode = MODE_SHOWING_INDICATOR;
+ break;
+ case MODE_SHOWING_INDICATOR:
+ if (selectionStart != mWaitingCursorStart || selectionEnd != mWaitingCursorEnd) {
+ mUiOperator.hideUi();
+ mMode = MODE_MONITOR;
+ mWaitingCursorStart = INVALID_CURSOR_INDEX;
+ mWaitingCursorEnd = INVALID_CURSOR_INDEX;
+ return;
+ }
+ break;
+ default:
+ cancelLayoutInternalUnexpectedly("Unexpected internal mode=" + mMode);
return;
- }
- final float insertionMarkerHolizontal = info.getInsertionMarkerHorizontal();
- final float insertionMarkerTop = info.getInsertionMarkerTop();
- mLocalOrigin.set(insertionMarkerHolizontal, insertionMarkerTop);
}
- final RectF indicatorBounds = new RectF(mRelativeIndicatorBounds);
- final RectF composingTextBounds = new RectF(mRelativeComposingTextBounds);
- indicatorBounds.offset(mLocalOrigin.x, mLocalOrigin.y);
- composingTextBounds.offset(mLocalOrigin.x, mLocalOrigin.y);
- mUiOperator.layoutUi(mMode == MODE_COMMIT, matrix, indicatorBounds, composingTextBounds);
+ if (!TextUtils.equals(mLastComposingText, mWaitingWord)) {
+ cancelLayoutInternalUnexpectedly("mLastComposingText doesn't match mWaitingWord");
+ return;
+ }
+
+ if ((info.getInsertionMarkerFlags() &
+ CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) != 0) {
+ mUiOperator.hideUi();
+ return;
+ }
+
+ mUiOperator.layoutUi(matrix, mComposingTextBoundsForLastComposingText,
+ mHasRtlCharsInLastComposingText);
}
private void onClickIndicator() {
- if (mWaitingWord == null || TextUtils.isEmpty(mWaitingWord.mWord)) {
+ if (mMode != MODE_SHOWING_INDICATOR) {
return;
}
- switch (mMode) {
- case MODE_COMMIT:
- mListener.onClickComposingTextToCommit(mWaitingWord);
- break;
- case MODE_ADD_TO_DICTIONARY:
- mListener.onClickComposingTextToAddToDictionary(mWaitingWord);
- break;
- }
+ mListener.onClickComposingTextToAddToDictionary(mWaitingWord);
}
private final LayoutInvalidator mLayoutInvalidator = new LayoutInvalidator(this);
@@ -420,10 +347,7 @@ public class TextDecorator {
private final static Listener EMPTY_LISTENER = new Listener() {
@Override
- public void onClickComposingTextToCommit(SuggestedWordInfo wordInfo) {
- }
- @Override
- public void onClickComposingTextToAddToDictionary(SuggestedWordInfo wordInfo) {
+ public void onClickComposingTextToAddToDictionary(final String word) {
}
};
@@ -438,8 +362,7 @@ public class TextDecorator {
public void setOnClickListener(Runnable listener) {
}
@Override
- public void layoutUi(boolean isCommitMode, Matrix matrix, RectF indicatorBounds,
- RectF composingTextBounds) {
+ public void layoutUi(Matrix matrix, RectF composingTextBounds, boolean useRtlLayout) {
}
};
}
diff --git a/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java b/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java
index 6e215a9ca..d87dc1bfa 100644
--- a/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java
+++ b/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java
@@ -26,6 +26,7 @@ import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.drawable.ColorDrawable;
import android.inputmethodservice.InputMethodService;
+import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
@@ -46,11 +47,11 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator {
private static final int VISUAL_DEBUG_HIT_AREA_COLOR = 0x80ff8000;
private final RelativeLayout mLocalRootView;
- private final CommitIndicatorView mCommitIndicatorView;
private final AddToDictionaryIndicatorView mAddToDictionaryIndicatorView;
private final PopupWindow mTouchEventWindow;
private final View mTouchEventWindowClickListenerView;
private final float mHitAreaMarginInPixels;
+ private final RectF mDisplayRect;
/**
* This constructor is designed to be called from {@link InputMethodService#setInputView(View)}.
@@ -65,6 +66,9 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator {
R.integer.text_decorator_hit_area_margin_in_dp);
mHitAreaMarginInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
hitAreaMarginInDP, resources.getDisplayMetrics());
+ final DisplayMetrics displayMetrics = resources.getDisplayMetrics();
+ mDisplayRect = new RectF(0.0f, 0.0f, displayMetrics.widthPixels,
+ displayMetrics.heightPixels);
mLocalRootView = new RelativeLayout(context);
mLocalRootView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
@@ -73,9 +77,7 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator {
mLocalRootView.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
final ViewGroup contentView = getContentView(inputView);
- mCommitIndicatorView = new CommitIndicatorView(context);
mAddToDictionaryIndicatorView = new AddToDictionaryIndicatorView(context);
- mLocalRootView.addView(mCommitIndicatorView);
mLocalRootView.addView(mAddToDictionaryIndicatorView);
if (contentView != null) {
contentView.addView(mLocalRootView);
@@ -110,43 +112,53 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator {
@Override
public void hideUi() {
- mCommitIndicatorView.setVisibility(View.GONE);
mAddToDictionaryIndicatorView.setVisibility(View.GONE);
mTouchEventWindow.dismiss();
}
+ private static final RectF getIndicatorBoundsInScreenCoordinates(final Matrix matrix,
+ final RectF composingTextBounds, final boolean showAtLeftSide) {
+ final float indicatorSize = composingTextBounds.height();
+ final RectF indicatorBounds;
+ if (showAtLeftSide) {
+ indicatorBounds = new RectF(composingTextBounds.left - indicatorSize,
+ composingTextBounds.top, composingTextBounds.left,
+ composingTextBounds.top + indicatorSize);
+ } else {
+ indicatorBounds = new RectF(composingTextBounds.right, composingTextBounds.top,
+ composingTextBounds.right + indicatorSize,
+ composingTextBounds.top + indicatorSize);
+ }
+ matrix.mapRect(indicatorBounds);
+ return indicatorBounds;
+ }
+
@Override
- public void layoutUi(final boolean isCommitMode, final Matrix matrix,
- final RectF indicatorBounds, final RectF composingTextBounds) {
- final RectF indicatorBoundsInScreenCoordinates = new RectF();
- matrix.mapRect(indicatorBoundsInScreenCoordinates, indicatorBounds);
- mCommitIndicatorView.setBounds(indicatorBoundsInScreenCoordinates);
+ public void layoutUi(final Matrix matrix, final RectF composingTextBounds,
+ final boolean useRtlLayout) {
+ RectF indicatorBoundsInScreenCoordinates = getIndicatorBoundsInScreenCoordinates(matrix,
+ composingTextBounds, useRtlLayout /* showAtLeftSide */);
+ if (indicatorBoundsInScreenCoordinates.left < mDisplayRect.left ||
+ mDisplayRect.right < indicatorBoundsInScreenCoordinates.right) {
+ // The indicator is clipped by the screen. Show the indicator at the opposite side.
+ indicatorBoundsInScreenCoordinates = getIndicatorBoundsInScreenCoordinates(matrix,
+ composingTextBounds, !useRtlLayout /* showAtLeftSide */);
+ }
+
mAddToDictionaryIndicatorView.setBounds(indicatorBoundsInScreenCoordinates);
- final RectF hitAreaBounds = new RectF(composingTextBounds);
- hitAreaBounds.union(indicatorBounds);
final RectF hitAreaBoundsInScreenCoordinates = new RectF();
- matrix.mapRect(hitAreaBoundsInScreenCoordinates, hitAreaBounds);
+ matrix.mapRect(hitAreaBoundsInScreenCoordinates, composingTextBounds);
+ hitAreaBoundsInScreenCoordinates.union(indicatorBoundsInScreenCoordinates);
hitAreaBoundsInScreenCoordinates.inset(-mHitAreaMarginInPixels, -mHitAreaMarginInPixels);
final int[] originScreen = new int[2];
mLocalRootView.getLocationOnScreen(originScreen);
final int viewOriginX = originScreen[0];
final int viewOriginY = originScreen[1];
-
- final View toBeShown;
- final View toBeHidden;
- if (isCommitMode) {
- toBeShown = mCommitIndicatorView;
- toBeHidden = mAddToDictionaryIndicatorView;
- } else {
- toBeShown = mAddToDictionaryIndicatorView;
- toBeHidden = mCommitIndicatorView;
- }
- toBeShown.setX(indicatorBoundsInScreenCoordinates.left - viewOriginX);
- toBeShown.setY(indicatorBoundsInScreenCoordinates.top - viewOriginY);
- toBeShown.setVisibility(View.VISIBLE);
- toBeHidden.setVisibility(View.GONE);
+ mAddToDictionaryIndicatorView.setX(indicatorBoundsInScreenCoordinates.left - viewOriginX);
+ mAddToDictionaryIndicatorView.setY(indicatorBoundsInScreenCoordinates.top - viewOriginY);
+ mAddToDictionaryIndicatorView.setVisibility(View.VISIBLE);
if (mTouchEventWindow.isShowing()) {
mTouchEventWindow.update((int)hitAreaBoundsInScreenCoordinates.left - viewOriginX,
@@ -239,15 +251,6 @@ public final class TextDecoratorUi implements TextDecoratorUiOperator {
return windowContentView;
}
- private static final class CommitIndicatorView extends TextDecoratorUi.IndicatorView {
- public CommitIndicatorView(final Context context) {
- super(context, R.array.text_decorator_commit_indicator_path,
- R.integer.text_decorator_commit_indicator_path_size,
- R.color.text_decorator_commit_indicator_background_color,
- R.color.text_decorator_commit_indicator_foreground_color);
- }
- }
-
private static final class AddToDictionaryIndicatorView extends TextDecoratorUi.IndicatorView {
public AddToDictionaryIndicatorView(final Context context) {
super(context, R.array.text_decorator_add_to_dictionary_indicator_path,
diff --git a/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java b/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java
index f84e12d8c..9e30e417e 100644
--- a/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java
+++ b/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java
@@ -17,7 +17,6 @@
package com.android.inputmethod.keyboard;
import android.graphics.Matrix;
-import android.graphics.PointF;
import android.graphics.RectF;
/**
@@ -44,12 +43,9 @@ public interface TextDecoratorUiOperator {
/**
* Called when the layout should be updated.
- * @param isCommitMode {@code true} if the commit indicator should be shown. Show the
- * add-to-dictionary indicator otherwise.
* @param matrix The matrix that transforms the local coordinates into the screen coordinates.
- * @param indicatorBounds The bounding box of the indicator, in local coordinates.
* @param composingTextBounds The bounding box of the composing text, in local coordinates.
+ * @param useRtlLayout {@code true} if the indicator should be optimized for RTL layout.
*/
- void layoutUi(final boolean isCommitMode, final Matrix matrix, final RectF indicatorBounds,
- final RectF composingTextBounds);
+ void layoutUi(final Matrix matrix, final RectF composingTextBounds, final boolean useRtlLayout);
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index fa4192790..2056a0b9d 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -674,15 +674,18 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
final boolean countryCodeMatched = matchString(caseAttr,
R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
+ final boolean splitLayoutMatched = matchBoolean(caseAttr,
+ R.styleable.Keyboard_Case_isSplitLayout, id.mIsSplitLayout);
final boolean selected = keyboardLayoutSetMatched && keyboardLayoutSetElementMatched
&& keyboardThemeMacthed && modeMatched && navigateNextMatched
&& navigatePreviousMatched && passwordInputMatched && clobberSettingsKeyMatched
&& hasShortcutKeyMatched && languageSwitchKeyEnabledMatched
&& isMultiLineMatched && imeActionMatched && isIconDefinedMatched
- && localeCodeMatched && languageCodeMatched && countryCodeMatched;
+ && localeCodeMatched && languageCodeMatched && countryCodeMatched
+ && splitLayoutMatched;
if (DEBUG) {
- startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
+ startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
textAttr(caseAttr.getString(
R.styleable.Keyboard_Case_keyboardLayoutSet), "keyboardLayoutSet"),
textAttr(caseAttr.getString(
@@ -707,6 +710,8 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
"languageSwitchKeyEnabled"),
booleanAttr(caseAttr, R.styleable.Keyboard_Case_isMultiLine,
"isMultiLine"),
+ booleanAttr(caseAttr, R.styleable.Keyboard_Case_isSplitLayout,
+ "splitLayout"),
textAttr(caseAttr.getString(R.styleable.Keyboard_Case_isIconDefined),
"isIconDefined"),
textAttr(caseAttr.getString(R.styleable.Keyboard_Case_localeCode),
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 0e3acff84..aae134ec6 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -3028,16 +3028,16 @@ public final class KeyboardTextsTable {
/* Locale ro: Romanian */
private static final String[] TEXTS_ro = {
+ // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- /* morekeys_a */ "\u00E2,\u00E3,\u0103,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101",
+ /* morekeys_a */ "\u0103,\u00E2,\u00E3,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101",
/* morekeys_o ~ */
null, null, null, null,
/* ~ morekeys_e */
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 2e108756e..9bca0bf35 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -186,9 +186,10 @@ public final class BinaryDictionary extends Dictionary {
long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times,
int[] pointerIds, int[] inputCodePoints, int inputSize, int[] suggestOptions,
int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
- int[] outputSuggestionCount, int[] outputCodePoints, int[] outputScores,
- int[] outputIndices, int[] outputTypes, int[] outputAutoCommitFirstWordConfidence,
- float[] inOutLanguageWeight);
+ int prevWordCount, int[] outputSuggestionCount, int[] outputCodePoints,
+ int[] outputScores, int[] outputIndices, int[] outputTypes,
+ int[] outputAutoCommitFirstWordConfidence,
+ float[] inOutWeightOfLangModelVsSpatialModel);
private static native boolean addUnigramEntryNative(long dict, int[] word, int probability,
int[] shortcutTarget, int shortcutProbability, boolean isBeginningOfSentence,
boolean isNotAWord, boolean isBlacklisted, int timestamp);
@@ -256,7 +257,8 @@ public final class BinaryDictionary extends Dictionary {
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion,
- final int sessionId, final float[] inOutLanguageWeight) {
+ final int sessionId, final float weightForLocale,
+ final float[] inOutWeightOfLangModelVsSpatialModel) {
if (!isValidDictionary()) {
return null;
}
@@ -284,10 +286,12 @@ public final class BinaryDictionary extends Dictionary {
settingsValuesForSuggestion.mSpaceAwareGestureEnabled);
session.mNativeSuggestOptions.setAdditionalFeaturesOptions(
settingsValuesForSuggestion.mAdditionalFeaturesSettingValues);
- if (inOutLanguageWeight != null) {
- session.mInputOutputLanguageWeight[0] = inOutLanguageWeight[0];
+ if (inOutWeightOfLangModelVsSpatialModel != null) {
+ session.mInputOutputWeightOfLangModelVsSpatialModel[0] =
+ inOutWeightOfLangModelVsSpatialModel[0];
} else {
- session.mInputOutputLanguageWeight[0] = Dictionary.NOT_A_LANGUAGE_WEIGHT;
+ session.mInputOutputWeightOfLangModelVsSpatialModel[0] =
+ Dictionary.NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL;
}
// TOOD: Pass multiple previous words information for n-gram.
getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
@@ -295,12 +299,14 @@ public final class BinaryDictionary extends Dictionary {
inputPointers.getYCoordinates(), inputPointers.getTimes(),
inputPointers.getPointerIds(), session.mInputCodePoints, inputSize,
session.mNativeSuggestOptions.getOptions(), session.mPrevWordCodePointArrays,
- session.mIsBeginningOfSentenceArray, session.mOutputSuggestionCount,
- session.mOutputCodePoints, session.mOutputScores, session.mSpaceIndices,
- session.mOutputTypes, session.mOutputAutoCommitFirstWordConfidence,
- session.mInputOutputLanguageWeight);
- if (inOutLanguageWeight != null) {
- inOutLanguageWeight[0] = session.mInputOutputLanguageWeight[0];
+ session.mIsBeginningOfSentenceArray, prevWordsInfo.getPrevWordCount(),
+ session.mOutputSuggestionCount, session.mOutputCodePoints, session.mOutputScores,
+ session.mSpaceIndices, session.mOutputTypes,
+ session.mOutputAutoCommitFirstWordConfidence,
+ session.mInputOutputWeightOfLangModelVsSpatialModel);
+ if (inOutWeightOfLangModelVsSpatialModel != null) {
+ inOutWeightOfLangModelVsSpatialModel[0] =
+ session.mInputOutputWeightOfLangModelVsSpatialModel[0];
}
final int count = session.mOutputSuggestionCount[0];
final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<>();
@@ -314,7 +320,8 @@ public final class BinaryDictionary extends Dictionary {
if (len > 0) {
suggestions.add(new SuggestedWordInfo(
new String(session.mOutputCodePoints, start, len),
- session.mOutputScores[j], session.mOutputTypes[j], this /* sourceDict */,
+ (int)(session.mOutputScores[j] * weightForLocale), session.mOutputTypes[j],
+ this /* sourceDict */,
session.mSpaceIndices[j] /* indexOfTouchPointOfSecondWord */,
session.mOutputAutoCommitFirstWordConfidence[0]));
}
@@ -358,9 +365,8 @@ public final class BinaryDictionary extends Dictionary {
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
return NOT_A_PROBABILITY;
}
- final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
- final boolean[] isBeginningOfSentenceArray =
- new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][];
+ final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()];
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
return getNgramProbabilityNative(mNativeDict, prevWordCodePointArrays,
@@ -455,9 +461,8 @@ public final class BinaryDictionary extends Dictionary {
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
return false;
}
- final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
- final boolean[] isBeginningOfSentenceArray =
- new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][];
+ final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()];
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
if (!addNgramEntryNative(mNativeDict, prevWordCodePointArrays,
@@ -473,9 +478,8 @@ public final class BinaryDictionary extends Dictionary {
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
return false;
}
- final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
- final boolean[] isBeginningOfSentenceArray =
- new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][];
+ final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()];
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
if (!removeNgramEntryNative(mNativeDict, prevWordCodePointArrays,
@@ -486,6 +490,7 @@ public final class BinaryDictionary extends Dictionary {
return true;
}
+ @UsedForTesting
public void addMultipleDictionaryEntries(final LanguageModelParam[] languageModelParams) {
if (!isValidDictionary()) return;
int processedParamCount = 0;
diff --git a/java/src/com/android/inputmethod/latin/DicTraverseSession.java b/java/src/com/android/inputmethod/latin/DicTraverseSession.java
index b341f623e..2751c1250 100644
--- a/java/src/com/android/inputmethod/latin/DicTraverseSession.java
+++ b/java/src/com/android/inputmethod/latin/DicTraverseSession.java
@@ -40,7 +40,7 @@ public final class DicTraverseSession {
public final int[] mOutputTypes = new int[MAX_RESULTS];
// Only one result is ever used
public final int[] mOutputAutoCommitFirstWordConfidence = new int[1];
- public final float[] mInputOutputLanguageWeight = new float[1];
+ public final float[] mInputOutputWeightOfLangModelVsSpatialModel = new float[1];
public final NativeSuggestOptions mNativeSuggestOptions = new NativeSuggestOptions();
diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java
index 2f79c7662..b58a52b41 100644
--- a/java/src/com/android/inputmethod/latin/Dictionary.java
+++ b/java/src/com/android/inputmethod/latin/Dictionary.java
@@ -22,6 +22,8 @@ import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
import java.util.ArrayList;
import java.util.Locale;
+import java.util.Arrays;
+import java.util.HashSet;
/**
* Abstract base class for a dictionary that can do a fuzzy search for words based on a set of key
@@ -29,7 +31,7 @@ import java.util.Locale;
*/
public abstract class Dictionary {
public static final int NOT_A_PROBABILITY = -1;
- public static final float NOT_A_LANGUAGE_WEIGHT = -1.0f;
+ public static final float NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL = -1.0f;
// The following types do not actually come from real dictionary instances, so we create
// corresponding instances.
@@ -65,6 +67,14 @@ public abstract class Dictionary {
// The locale for this dictionary. May be null if unknown (phony dictionary for example).
public final Locale mLocale;
+ /**
+ * Set out of the dictionary types listed above that are based on data specific to the user,
+ * e.g., the user's contacts.
+ */
+ private static final HashSet<String> sUserSpecificDictionaryTypes =
+ new HashSet(Arrays.asList(new String[] { TYPE_USER_TYPED, TYPE_USER, TYPE_CONTACTS,
+ TYPE_USER_HISTORY, TYPE_PERSONALIZATION, TYPE_CONTEXTUAL }));
+
public Dictionary(final String dictType, final Locale locale) {
mDictType = dictType;
mLocale = locale;
@@ -78,15 +88,18 @@ public abstract class Dictionary {
* @param proximityInfo the object for key proximity. May be ignored by some implementations.
* @param settingsValuesForSuggestion the settings values used for the suggestion.
* @param sessionId the session id.
- * @param inOutLanguageWeight the language weight used for generating suggestions.
- * inOutLanguageWeight is a float array that has only one element. This can be updated when the
- * different language weight is used.
+ * @param weightForLocale the weight given to this locale, to multiply the output scores for
+ * multilingual input.
+ * @param inOutWeightOfLangModelVsSpatialModel the weight of the language model as a ratio of
+ * the spatial model, used for generating suggestions. inOutWeightOfLangModelVsSpatialModel is
+ * a float array that has only one element. This can be updated when a different value is used.
* @return the list of suggestions (possibly null if none)
*/
abstract public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion,
- final int sessionId, final float[] inOutLanguageWeight);
+ final int sessionId, final float weightForLocale,
+ final float[] inOutWeightOfLangModelVsSpatialModel);
/**
* Checks if the given word has to be treated as a valid word. Please note that some
@@ -159,6 +172,14 @@ public abstract class Dictionary {
}
/**
+ * Whether this dictionary is based on data specific to the user, e.g., the user's contacts.
+ * @return Whether this dictionary is specific to the user.
+ */
+ public boolean isUserSpecific() {
+ return sUserSpecificDictionaryTypes.contains(mDictType);
+ }
+
+ /**
* Not a true dictionary. A placeholder used to indicate suggestions that don't come from any
* real dictionary.
*/
@@ -172,7 +193,8 @@ public abstract class Dictionary {
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion,
- final int sessionId, final float[] inOutLanguageWeight) {
+ final int sessionId, final float weightForLocale,
+ final float[] inOutWeightOfLangModelVsSpatialModel) {
return null;
}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index ca5e93714..b26b37817 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -62,20 +62,21 @@ public final class DictionaryCollection extends Dictionary {
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion,
- final int sessionId, final float[] inOutLanguageWeight) {
+ final int sessionId, final float weightForLocale,
+ final float[] inOutWeightOfLangModelVsSpatialModel) {
final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries;
if (dictionaries.isEmpty()) return null;
// To avoid creating unnecessary objects, we get the list out of the first
// dictionary and add the rest to it if not null, hence the get(0)
ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composer,
prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId,
- inOutLanguageWeight);
+ weightForLocale, inOutWeightOfLangModelVsSpatialModel);
if (null == suggestions) suggestions = new ArrayList<>();
final int length = dictionaries.size();
for (int i = 1; i < length; ++ i) {
final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(composer,
prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId,
- inOutLanguageWeight);
+ weightForLocale, inOutWeightOfLangModelVsSpatialModel);
if (null != sugg) suggestions.addAll(sugg);
}
return suggestions;
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index 46428839f..aa15bd6bf 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -61,13 +61,13 @@ public class DictionaryFacilitator {
// dictionary.
private static final int CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT = 140;
- private DictionaryGroup mDictionaryGroup = new DictionaryGroup();
+ private DictionaryGroup[] mDictionaryGroups = new DictionaryGroup[] { new DictionaryGroup() };
private boolean mIsUserDictEnabled = false;
- private volatile CountDownLatch mLatchForWaitingLoadingMainDictionary = new CountDownLatch(0);
+ private volatile CountDownLatch mLatchForWaitingLoadingMainDictionaries = new CountDownLatch(0);
// To synchronize assigning mDictionaryGroup to ensure closing dictionaries.
private final Object mLock = new Object();
private final DistracterFilter mDistracterFilter;
- private final PersonalizationDictionaryFacilitator mPersonalizationDictionaryFacilitator;
+ private final PersonalizationHelperForDictionaryFacilitator mPersonalizationHelper;
private static final String[] DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS =
new String[] {
@@ -104,6 +104,7 @@ public class DictionaryFacilitator {
private static class DictionaryGroup {
public final Locale mLocale;
private Dictionary mMainDict;
+ public float mWeightForLocale = 1.0f;
public final ConcurrentHashMap<String, ExpandableBinaryDictionary> mSubDictMap =
new ConcurrentHashMap<>();
@@ -175,26 +176,27 @@ public class DictionaryFacilitator {
public DictionaryFacilitator() {
mDistracterFilter = DistracterFilter.EMPTY_DISTRACTER_FILTER;
- mPersonalizationDictionaryFacilitator = null;
+ mPersonalizationHelper = null;
}
public DictionaryFacilitator(final Context context) {
mDistracterFilter = new DistracterFilterCheckingExactMatchesAndSuggestions(context);
- mPersonalizationDictionaryFacilitator =
- new PersonalizationDictionaryFacilitator(context, mDistracterFilter);
+ mPersonalizationHelper =
+ new PersonalizationHelperForDictionaryFacilitator(context, mDistracterFilter);
}
public void updateEnabledSubtypes(final List<InputMethodSubtype> enabledSubtypes) {
mDistracterFilter.updateEnabledSubtypes(enabledSubtypes);
- mPersonalizationDictionaryFacilitator.updateEnabledSubtypes(enabledSubtypes);
+ mPersonalizationHelper.updateEnabledSubtypes(enabledSubtypes);
}
public void setIsMonolingualUser(final boolean isMonolingualUser) {
- mPersonalizationDictionaryFacilitator.setIsMonolingualUser(isMonolingualUser);
+ mPersonalizationHelper.setIsMonolingualUser(isMonolingualUser);
}
+ // TODO: remove this, replace with version returning multiple locales
public Locale getLocale() {
- return mDictionaryGroup.mLocale;
+ return mDictionaryGroups[0].mLocale;
}
private static ExpandableBinaryDictionary getSubDict(final String dictType,
@@ -226,97 +228,151 @@ public class DictionaryFacilitator {
usePersonalizedDicts, forceReloadMainDictionary, listener, "" /* dictNamePrefix */);
}
- public void resetDictionariesWithDictNamePrefix(final Context context, final Locale newLocale,
+ private 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];
+ }
+ }
+ return null;
+ }
+
+ private DictionaryGroup getDictionaryGroupForActiveLanguage() {
+ // TODO: implement this
+ return mDictionaryGroups[0];
+ }
+
+ public void resetDictionariesWithDictNamePrefix(final Context context,
+ final Locale newLocaleToUse,
final boolean useContactsDict, final boolean usePersonalizedDicts,
final boolean forceReloadMainDictionary,
final DictionaryInitializationListener listener,
final String dictNamePrefix) {
- final boolean localeHasBeenChanged = !newLocale.equals(mDictionaryGroup.mLocale);
- // We always try to have the main dictionary. Other dictionaries can be unused.
- final boolean reloadMainDictionary = localeHasBeenChanged || forceReloadMainDictionary;
+ final HashMap<Locale, ArrayList<String>> existingDictsToCleanup = new HashMap<>();
+ // TODO: use several locales
+ final Locale[] newLocales = new Locale[] { newLocaleToUse };
// TODO: Make subDictTypesToUse configurable by resource or a static final list.
final HashSet<String> subDictTypesToUse = new HashSet<>();
+ subDictTypesToUse.add(Dictionary.TYPE_USER);
if (useContactsDict) {
subDictTypesToUse.add(Dictionary.TYPE_CONTACTS);
}
- subDictTypesToUse.add(Dictionary.TYPE_USER);
if (usePersonalizedDicts) {
subDictTypesToUse.add(Dictionary.TYPE_USER_HISTORY);
subDictTypesToUse.add(Dictionary.TYPE_PERSONALIZATION);
subDictTypesToUse.add(Dictionary.TYPE_CONTEXTUAL);
}
- final Dictionary newMainDict;
- if (reloadMainDictionary) {
- // The main dictionary will be asynchronously loaded.
- newMainDict = null;
- } else {
- newMainDict = mDictionaryGroup.getDict(Dictionary.TYPE_MAIN);
- }
-
- final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
- for (final String dictType : SUB_DICT_TYPES) {
- if (!subDictTypesToUse.contains(dictType)) {
- // This dictionary will not be used.
+ // 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 DictionaryGroup currentDictionaryGroupForLocale =
+ findDictionaryGroupWithLocale(mDictionaryGroups, newLocale);
+ if (null == currentDictionaryGroupForLocale) {
continue;
}
- final ExpandableBinaryDictionary dict;
- if (!localeHasBeenChanged && mDictionaryGroup.hasDict(dictType)) {
- // Continue to use current dictionary.
- dict = mDictionaryGroup.getSubDict(dictType);
+ for (final String dictType : SUB_DICT_TYPES) {
+ if (currentDictionaryGroupForLocale.hasDict(dictType)) {
+ dictsForLocale.add(dictType);
+ }
+ }
+ if (currentDictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN)) {
+ dictsForLocale.add(Dictionary.TYPE_MAIN);
+ }
+ }
+
+ final DictionaryGroup[] newDictionaryGroups = new DictionaryGroup[newLocales.length];
+ for (int i = 0; i < newLocales.length; ++i) {
+ final Locale newLocale = newLocales[i];
+ final DictionaryGroup dictionaryGroupForLocale =
+ findDictionaryGroupWithLocale(mDictionaryGroups, newLocale);
+ final ArrayList<String> dictsToCleanupForLocale = existingDictsToCleanup.get(newLocale);
+ final boolean noExistingDictsForThisLocale = (null == dictionaryGroupForLocale);
+
+ final Dictionary mainDict;
+ if (forceReloadMainDictionary || noExistingDictsForThisLocale
+ || !dictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN)) {
+ mainDict = null;
} else {
- // Start to use new dictionary.
- dict = getSubDict(dictType, context, newLocale, null /* dictFile */,
- dictNamePrefix);
+ mainDict = dictionaryGroupForLocale.getDict(Dictionary.TYPE_MAIN);
+ dictsToCleanupForLocale.remove(Dictionary.TYPE_MAIN);
+ }
+
+ final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
+ for (final String subDictType : subDictTypesToUse) {
+ final ExpandableBinaryDictionary subDict;
+ if (noExistingDictsForThisLocale
+ || !dictionaryGroupForLocale.hasDict(subDictType)) {
+ // Create a new dictionary.
+ subDict = getSubDict(subDictType, context, newLocale, null /* dictFile */,
+ dictNamePrefix);
+ } else {
+ // Reuse the existing dictionary, and don't close it at the end
+ subDict = dictionaryGroupForLocale.getSubDict(subDictType);
+ dictsToCleanupForLocale.remove(subDictType);
+ }
+ subDicts.put(subDictType, subDict);
}
- subDicts.put(dictType, dict);
+ newDictionaryGroups[i] = new DictionaryGroup(newLocale, mainDict, subDicts);
}
- // Replace DictionaryGroup.
- final DictionaryGroup newDictionaryGroup = new DictionaryGroup(newLocale, newMainDict, subDicts);
- final DictionaryGroup oldDictionaryGroup;
+ // Replace Dictionaries.
+ final DictionaryGroup[] oldDictionaryGroups;
synchronized (mLock) {
- oldDictionaryGroup = mDictionaryGroup;
- mDictionaryGroup = newDictionaryGroup;
+ oldDictionaryGroups = mDictionaryGroups;
+ mDictionaryGroups = newDictionaryGroups;
mIsUserDictEnabled = UserBinaryDictionary.isEnabled(context);
- if (reloadMainDictionary) {
- asyncReloadMainDictionary(context, newLocale, listener);
+ if (hasAtLeastOneUninitializedMainDictionary()) {
+ asyncReloadUninitializedMainDictionaries(context, newLocales, listener);
}
}
if (listener != null) {
- listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
+ listener.onUpdateMainDictionaryAvailability(hasAtLeastOneInitializedMainDictionary());
}
+
// Clean up old dictionaries.
- if (reloadMainDictionary) {
- oldDictionaryGroup.closeDict(Dictionary.TYPE_MAIN);
- }
- for (final String dictType : SUB_DICT_TYPES) {
- if (localeHasBeenChanged || !subDictTypesToUse.contains(dictType)) {
- oldDictionaryGroup.closeDict(dictType);
+ for (final Locale localeToCleanUp : existingDictsToCleanup.keySet()) {
+ final ArrayList<String> dictTypesToCleanUp =
+ existingDictsToCleanup.get(localeToCleanUp);
+ final DictionaryGroup dictionarySetToCleanup =
+ findDictionaryGroupWithLocale(oldDictionaryGroups, localeToCleanUp);
+ for (final String dictType : dictTypesToCleanUp) {
+ dictionarySetToCleanup.closeDict(dictType);
}
}
- oldDictionaryGroup.mSubDictMap.clear();
}
- private void asyncReloadMainDictionary(final Context context, final Locale locale,
- final DictionaryInitializationListener listener) {
+ private void asyncReloadUninitializedMainDictionaries(final Context context,
+ final Locale[] locales, final DictionaryInitializationListener listener) {
final CountDownLatch latchForWaitingLoadingMainDictionary = new CountDownLatch(1);
- mLatchForWaitingLoadingMainDictionary = latchForWaitingLoadingMainDictionary;
+ mLatchForWaitingLoadingMainDictionaries = latchForWaitingLoadingMainDictionary;
ExecutorUtils.getExecutor("InitializeBinaryDictionary").execute(new Runnable() {
@Override
public void run() {
- final Dictionary mainDict =
- DictionaryFactory.createMainDictionaryFromManager(context, locale);
- synchronized (mLock) {
- if (locale.equals(mDictionaryGroup.mLocale)) {
- mDictionaryGroup.setMainDict(mainDict);
- } else {
- // Dictionary facilitator has been reset for another locale.
- mainDict.close();
+ for (final Locale locale : locales) {
+ final DictionaryGroup dictionaryGroup =
+ findDictionaryGroupWithLocale(mDictionaryGroups, locale);
+ if (null == dictionaryGroup) {
+ // This should never happen, but better safe than crashy
+ Log.w(TAG, "Expected a dictionary group for " + locale + " but none found");
+ continue;
+ }
+ final Dictionary mainDict =
+ DictionaryFactory.createMainDictionaryFromManager(context, locale);
+ synchronized (mLock) {
+ if (locale.equals(dictionaryGroup.mLocale)) {
+ dictionaryGroup.setMainDict(mainDict);
+ } else {
+ // Dictionary facilitator has been reset for another locale.
+ mainDict.close();
+ }
}
}
if (listener != null) {
- listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
+ listener.onUpdateMainDictionaryAvailability(
+ hasAtLeastOneInitializedMainDictionary());
}
latchForWaitingLoadingMainDictionary.countDown();
}
@@ -349,60 +405,94 @@ public class DictionaryFacilitator {
subDicts.put(dictType, dict);
}
}
- mDictionaryGroup = new DictionaryGroup(locale, mainDictionary, subDicts);
+ mDictionaryGroups = new DictionaryGroup[] {
+ new DictionaryGroup(locale, mainDictionary, subDicts) };
}
public void closeDictionaries() {
- final DictionaryGroup dictionaryGroup;
+ final DictionaryGroup[] dictionaryGroups;
synchronized (mLock) {
- dictionaryGroup = mDictionaryGroup;
- mDictionaryGroup = new DictionaryGroup();
+ dictionaryGroups = mDictionaryGroups;
+ mDictionaryGroups = new DictionaryGroup[] { new DictionaryGroup() };
}
- for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
- dictionaryGroup.closeDict(dictType);
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
+ dictionaryGroup.closeDict(dictType);
+ }
}
mDistracterFilter.close();
- if (mPersonalizationDictionaryFacilitator != null) {
- mPersonalizationDictionaryFacilitator.close();
+ if (mPersonalizationHelper != null) {
+ mPersonalizationHelper.close();
}
}
@UsedForTesting
public ExpandableBinaryDictionary getSubDictForTesting(final String dictName) {
- return mDictionaryGroup.getSubDict(dictName);
+ return mDictionaryGroups[0].getSubDict(dictName);
+ }
+
+ // The main dictionaries are loaded asynchronously. Don't cache the return value
+ // of these methods.
+ public boolean hasAtLeastOneInitializedMainDictionary() {
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ final Dictionary mainDict = dictionaryGroup.getDict(Dictionary.TYPE_MAIN);
+ if (mainDict != null && mainDict.isInitialized()) {
+ return true;
+ }
+ }
+ return false;
}
- // The main dictionary could have been loaded asynchronously. Don't cache the return value
- // of this method.
- public boolean hasInitializedMainDictionary() {
- final Dictionary mainDict = mDictionaryGroup.getDict(Dictionary.TYPE_MAIN);
- return mainDict != null && mainDict.isInitialized();
+ public boolean hasAtLeastOneUninitializedMainDictionary() {
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ final Dictionary mainDict = dictionaryGroup.getDict(Dictionary.TYPE_MAIN);
+ if (mainDict == null || !mainDict.isInitialized()) {
+ return true;
+ }
+ }
+ return false;
}
public boolean hasPersonalizationDictionary() {
- return mDictionaryGroup.hasDict(Dictionary.TYPE_PERSONALIZATION);
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ if (dictionaryGroup.hasDict(Dictionary.TYPE_PERSONALIZATION)) {
+ return true;
+ }
+ }
+ return false;
}
public void flushPersonalizationDictionary() {
- final ExpandableBinaryDictionary personalizationDictUsedForSuggestion =
- mDictionaryGroup.getSubDict(Dictionary.TYPE_PERSONALIZATION);
- mPersonalizationDictionaryFacilitator.flushPersonalizationDictionariesToUpdate(
- personalizationDictUsedForSuggestion);
+ final HashSet<ExpandableBinaryDictionary> personalizationDictsUsedForSuggestion =
+ new HashSet<>();
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ final ExpandableBinaryDictionary personalizationDictUsedForSuggestion =
+ dictionaryGroup.getSubDict(Dictionary.TYPE_PERSONALIZATION);
+ personalizationDictsUsedForSuggestion.add(personalizationDictUsedForSuggestion);
+ }
+ mPersonalizationHelper.flushPersonalizationDictionariesToUpdate(
+ personalizationDictsUsedForSuggestion);
mDistracterFilter.close();
}
- public void waitForLoadingMainDictionary(final long timeout, final TimeUnit unit)
+ public void waitForLoadingMainDictionaries(final long timeout, final TimeUnit unit)
throws InterruptedException {
- mLatchForWaitingLoadingMainDictionary.await(timeout, unit);
+ mLatchForWaitingLoadingMainDictionaries.await(timeout, unit);
}
@UsedForTesting
public void waitForLoadingDictionariesForTesting(final long timeout, final TimeUnit unit)
throws InterruptedException {
- waitForLoadingMainDictionary(timeout, unit);
- final Map<String, ExpandableBinaryDictionary> dictMap = mDictionaryGroup.mSubDictMap;
- for (final ExpandableBinaryDictionary dict : dictMap.values()) {
- dict.waitAllTasksForTests();
+ waitForLoadingMainDictionaries(timeout, unit);
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ for (final ExpandableBinaryDictionary dict : dictionaryGroup.mSubDictMap.values()) {
+ dict.waitAllTasksForTests();
+ }
}
}
@@ -421,7 +511,7 @@ public class DictionaryFacilitator {
public void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized,
final PrevWordsInfo prevWordsInfo, final int timeStampInSeconds,
final boolean blockPotentiallyOffensive) {
- final DictionaryGroup dictionaryGroup = mDictionaryGroup;
+ final DictionaryGroup dictionaryGroup = getDictionaryGroupForActiveLanguage();
final String[] words = suggestion.split(Constants.WORD_SEPARATOR);
PrevWordsInfo prevWordsInfoForCurrentWord = prevWordsInfo;
for (int i = 0; i < words.length; i++) {
@@ -488,7 +578,8 @@ public class DictionaryFacilitator {
}
private void removeWord(final String dictName, final String word) {
- final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
+ final ExpandableBinaryDictionary dictionary =
+ getDictionaryGroupForActiveLanguage().getSubDict(dictName);
if (dictionary != null) {
dictionary.removeUnigramEntryDynamically(word);
}
@@ -504,20 +595,25 @@ public class DictionaryFacilitator {
public SuggestionResults getSuggestionResults(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId) {
- final DictionaryGroup dictionaryGroup = mDictionaryGroup;
- final SuggestionResults suggestionResults =
- new SuggestionResults(SuggestedWords.MAX_SUGGESTIONS);
- final float[] languageWeight = new float[] { Dictionary.NOT_A_LANGUAGE_WEIGHT };
- for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
- final Dictionary dictionary = dictionaryGroup.getDict(dictType);
- if (null == dictionary) continue;
- final ArrayList<SuggestedWordInfo> dictionarySuggestions =
- dictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
- settingsValuesForSuggestion, sessionId, languageWeight);
- if (null == dictionarySuggestions) continue;
- suggestionResults.addAll(dictionarySuggestions);
- if (null != suggestionResults.mRawSuggestions) {
- suggestionResults.mRawSuggestions.addAll(dictionarySuggestions);
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ final SuggestionResults suggestionResults = new SuggestionResults(
+ SuggestedWords.MAX_SUGGESTIONS,
+ prevWordsInfo.mPrevWordsInfo[0].mIsBeginningOfSentence);
+ final float[] weightOfLangModelVsSpatialModel =
+ new float[] { Dictionary.NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL };
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
+ final Dictionary dictionary = dictionaryGroup.getDict(dictType);
+ if (null == dictionary) continue;
+ final ArrayList<SuggestedWordInfo> dictionarySuggestions =
+ dictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
+ settingsValuesForSuggestion, sessionId,
+ dictionaryGroup.mWeightForLocale, weightOfLangModelVsSpatialModel);
+ if (null == dictionarySuggestions) continue;
+ suggestionResults.addAll(dictionarySuggestions);
+ if (null != suggestionResults.mRawSuggestions) {
+ suggestionResults.mRawSuggestions.addAll(dictionarySuggestions);
+ }
}
}
return suggestionResults;
@@ -527,20 +623,22 @@ public class DictionaryFacilitator {
if (TextUtils.isEmpty(word)) {
return false;
}
- final DictionaryGroup dictionaryGroup = mDictionaryGroup;
- if (dictionaryGroup.mLocale == null) {
- return false;
- }
- final String lowerCasedWord = word.toLowerCase(dictionaryGroup.mLocale);
- for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
- final Dictionary dictionary = dictionaryGroup.getDict(dictType);
- // Ideally the passed map would come out of a {@link java.util.concurrent.Future} and
- // would be immutable once it's finished initializing, but concretely a null test is
- // probably good enough for the time being.
- if (null == dictionary) continue;
- if (dictionary.isValidWord(word)
- || (ignoreCase && dictionary.isValidWord(lowerCasedWord))) {
- return true;
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ if (dictionaryGroup.mLocale == null) {
+ continue;
+ }
+ final String lowerCasedWord = word.toLowerCase(dictionaryGroup.mLocale);
+ for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
+ final Dictionary dictionary = dictionaryGroup.getDict(dictType);
+ // Ideally the passed map would come out of a {@link java.util.concurrent.Future} and
+ // would be immutable once it's finished initializing, but concretely a null test is
+ // probably good enough for the time being.
+ if (null == dictionary) continue;
+ if (dictionary.isValidWord(word)
+ || (ignoreCase && dictionary.isValidWord(lowerCasedWord))) {
+ return true;
+ }
}
}
return false;
@@ -552,18 +650,20 @@ public class DictionaryFacilitator {
return Dictionary.NOT_A_PROBABILITY;
}
int maxFreq = Dictionary.NOT_A_PROBABILITY;
- final DictionaryGroup dictionaryGroup = mDictionaryGroup;
- for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
- final Dictionary dictionary = dictionaryGroup.getDict(dictType);
- if (dictionary == null) continue;
- final int tempFreq;
- if (isGettingMaxFrequencyOfExactMatches) {
- tempFreq = dictionary.getMaxFrequencyOfExactMatches(word);
- } else {
- tempFreq = dictionary.getFrequency(word);
- }
- if (tempFreq >= maxFreq) {
- maxFreq = tempFreq;
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
+ final Dictionary dictionary = dictionaryGroup.getDict(dictType);
+ if (dictionary == null) continue;
+ final int tempFreq;
+ if (isGettingMaxFrequencyOfExactMatches) {
+ tempFreq = dictionary.getMaxFrequencyOfExactMatches(word);
+ } else {
+ tempFreq = dictionary.getFrequency(word);
+ }
+ if (tempFreq >= maxFreq) {
+ maxFreq = tempFreq;
+ }
}
}
return maxFreq;
@@ -578,9 +678,12 @@ public class DictionaryFacilitator {
}
private void clearSubDictionary(final String dictName) {
- final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
- if (dictionary != null) {
- dictionary.clear();
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ final ExpandableBinaryDictionary dictionary = dictionaryGroup.getSubDict(dictName);
+ if (dictionary != null) {
+ dictionary.clear();
+ }
}
}
@@ -592,7 +695,7 @@ public class DictionaryFacilitator {
// personalization dictionary.
public void clearPersonalizationDictionary() {
clearSubDictionary(Dictionary.TYPE_PERSONALIZATION);
- mPersonalizationDictionaryFacilitator.clearDictionariesToUpdate();
+ mPersonalizationHelper.clearDictionariesToUpdate();
}
public void clearContextualDictionary() {
@@ -603,14 +706,17 @@ public class DictionaryFacilitator {
final PersonalizationDataChunk personalizationDataChunk,
final SpacingAndPunctuations spacingAndPunctuations,
final AddMultipleDictionaryEntriesCallback callback) {
- mPersonalizationDictionaryFacilitator.addEntriesToPersonalizationDictionariesToUpdate(
+ mPersonalizationHelper.addEntriesToPersonalizationDictionariesToUpdate(
getLocale(), personalizationDataChunk, spacingAndPunctuations, callback);
}
+ @UsedForTesting
public void addPhraseToContextualDictionary(final String[] phrase, final int probability,
final int bigramProbabilityForWords, final int bigramProbabilityForPhrases) {
+ // TODO: we're inserting the phrase into the dictionary for the active language. Rethink
+ // this a bit from a theoretical point of view.
final ExpandableBinaryDictionary contextualDict =
- mDictionaryGroup.getSubDict(Dictionary.TYPE_CONTEXTUAL);
+ getDictionaryGroupForActiveLanguage().getSubDict(Dictionary.TYPE_CONTEXTUAL);
if (contextualDict == null) {
return;
}
@@ -643,22 +749,27 @@ public class DictionaryFacilitator {
}
public void dumpDictionaryForDebug(final String dictName) {
- final ExpandableBinaryDictionary dictToDump = mDictionaryGroup.getSubDict(dictName);
- if (dictToDump == null) {
- Log.e(TAG, "Cannot dump " + dictName + ". "
- + "The dictionary is not being used for suggestion or cannot be dumped.");
- return;
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ final ExpandableBinaryDictionary dictToDump = dictionaryGroup.getSubDict(dictName);
+ if (dictToDump == null) {
+ Log.e(TAG, "Cannot dump " + dictName + ". "
+ + "The dictionary is not being used for suggestion or cannot be dumped.");
+ return;
+ }
+ dictToDump.dumpAllWordsForDebug();
}
- dictToDump.dumpAllWordsForDebug();
}
public ArrayList<Pair<String, DictionaryStats>> getStatsOfEnabledSubDicts() {
final ArrayList<Pair<String, DictionaryStats>> statsOfEnabledSubDicts = new ArrayList<>();
- final DictionaryGroup dictionaryGroup = mDictionaryGroup;
- for (final String dictType : SUB_DICT_TYPES) {
- final ExpandableBinaryDictionary dictionary = dictionaryGroup.getSubDict(dictType);
- if (dictionary == null) continue;
- statsOfEnabledSubDicts.add(new Pair<>(dictType, dictionary.getDictionaryStats()));
+ final DictionaryGroup[] dictionaryGroups = mDictionaryGroups;
+ for (final DictionaryGroup dictionaryGroup : dictionaryGroups) {
+ for (final String dictType : SUB_DICT_TYPES) {
+ final ExpandableBinaryDictionary dictionary = dictionaryGroup.getSubDict(dictType);
+ if (dictionary == null) continue;
+ statsOfEnabledSubDicts.add(new Pair<>(dictType, dictionary.getDictionaryStats()));
+ }
}
return statsOfEnabledSubDicts;
}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
index fa0265d86..ff4a6bde1 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
@@ -84,7 +84,7 @@ public class DictionaryFacilitatorLruCache {
private void waitForLoadingMainDictionary(final DictionaryFacilitator dictionaryFacilitator) {
for (int i = 0; i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT; i++) {
try {
- dictionaryFacilitator.waitForLoadingMainDictionary(
+ dictionaryFacilitator.waitForLoadingMainDictionaries(
WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS, TimeUnit.MILLISECONDS);
return;
} catch (final InterruptedException e) {
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index a1dd67f27..53abd2ecc 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -27,6 +27,7 @@ import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import com.android.inputmethod.latin.makedict.WordProperty;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
+import com.android.inputmethod.latin.utils.AsyncResultHolder;
import com.android.inputmethod.latin.utils.CombinedFormatUtils;
import com.android.inputmethod.latin.utils.DistracterFilter;
import com.android.inputmethod.latin.utils.ExecutorUtils;
@@ -156,23 +157,25 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
}
private void asyncExecuteTaskWithWriteLock(final Runnable task) {
- asyncExecuteTaskWithLock(mLock.writeLock(), task);
+ asyncExecuteTaskWithLock(mLock.writeLock(), mDictName /* executorName */, task);
}
- private void asyncExecuteTaskWithLock(final Lock lock, final Runnable task) {
- asyncPreCheckAndExecuteTaskWithLock(lock, null /* preCheckTask */, task);
+ private void asyncExecuteTaskWithLock(final Lock lock, final String executorName,
+ final Runnable task) {
+ asyncPreCheckAndExecuteTaskWithLock(lock, null /* preCheckTask */, executorName, task);
}
private void asyncPreCheckAndExecuteTaskWithWriteLock(
final Callable<Boolean> preCheckTask, final Runnable task) {
- asyncPreCheckAndExecuteTaskWithLock(mLock.writeLock(), preCheckTask, task);
+ asyncPreCheckAndExecuteTaskWithLock(mLock.writeLock(), preCheckTask,
+ mDictName /* executorName */, task);
}
// Execute task with lock when the result of preCheckTask is true or preCheckTask is null.
private void asyncPreCheckAndExecuteTaskWithLock(final Lock lock,
- final Callable<Boolean> preCheckTask, final Runnable task) {
- ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
+ final Callable<Boolean> preCheckTask, final String executorName, final Runnable task) {
+ ExecutorUtils.getExecutor(executorName).execute(new Runnable() {
@Override
public void run() {
if (preCheckTask != null) {
@@ -433,7 +436,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId,
- final float[] inOutLanguageWeight) {
+ final float weightForLocale, final float[] inOutWeightOfLangModelVsSpatialModel) {
reloadDictionaryIfRequired();
boolean lockAcquired = false;
try {
@@ -445,7 +448,8 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
}
final ArrayList<SuggestedWordInfo> suggestions =
mBinaryDictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
- settingsValuesForSuggestion, sessionId, inOutLanguageWeight);
+ settingsValuesForSuggestion, sessionId, weightForLocale,
+ inOutWeightOfLangModelVsSpatialModel);
if (mBinaryDictionary.isCorrupted()) {
Log.i(TAG, "Dictionary (" + mDictName +") is corrupted. "
+ "Remove and regenerate it.");
@@ -642,13 +646,15 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
public DictionaryStats getDictionaryStats() {
reloadDictionaryIfRequired();
- mLock.readLock().lock();
- try {
- // TODO: Get stats form the dictionary.
- return new DictionaryStats(mLocale, mDictName, mDictFile);
- } finally {
- mLock.readLock().unlock();
- }
+ final AsyncResultHolder<DictionaryStats> result = new AsyncResultHolder<>();
+ asyncExecuteTaskWithLock(mLock.readLock(), mDictName /* executorName */, new Runnable() {
+ @Override
+ public void run() {
+ // TODO: Get stats from the dictionary.
+ result.set(new DictionaryStats(mLocale, mDictName, mDictFile));
+ }
+ });
+ return result.get(null /* defaultValue */, TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS);
}
@UsedForTesting
@@ -676,10 +682,10 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
public void dumpAllWordsForDebug() {
reloadDictionaryIfRequired();
- asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() {
+ asyncExecuteTaskWithLock(mLock.readLock(), "dumpAllWordsForDebug", new Runnable() {
@Override
public void run() {
- Log.d(TAG, "Dump dictionary: " + mDictName);
+ Log.d(TAG, "Dump dictionary: " + mDictName + " for " + mLocale);
try {
final DictionaryHeader header = mBinaryDictionary.getHeader();
Log.d(TAG, "Format version: " + mBinaryDictionary.getFormatVersion());
diff --git a/java/src/com/android/inputmethod/latin/InputAttributes.java b/java/src/com/android/inputmethod/latin/InputAttributes.java
index 782e18255..ffd363b5d 100644
--- a/java/src/com/android/inputmethod/latin/InputAttributes.java
+++ b/java/src/com/android/inputmethod/latin/InputAttributes.java
@@ -49,6 +49,7 @@ public final class InputAttributes {
* {@link com.android.inputmethod.latin.settings.SettingsValues#mGestureFloatingPreviewTextEnabled}
*/
final public boolean mDisableGestureFloatingPreviewText;
+ final public boolean mIsGeneralTextInput;
final private int mInputType;
final private EditorInfo mEditorInfo;
final private String mPackageNameForPrivateImeOptions;
@@ -84,6 +85,7 @@ public final class InputAttributes {
mShouldInsertSpacesAutomatically = false;
mShouldShowVoiceInputKey = false;
mDisableGestureFloatingPreviewText = false;
+ mIsGeneralTextInput = false;
return;
}
// inputClass == InputType.TYPE_CLASS_TEXT
@@ -110,7 +112,7 @@ public final class InputAttributes {
mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType);
final boolean noMicrophone = mIsPasswordField
- || InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS == variation
+ || InputTypeUtils.isEmailVariation(variation)
|| InputType.TYPE_TEXT_VARIATION_URI == variation
|| hasNoMicrophoneKeyOption();
mShouldShowVoiceInputKey = !noMicrophone;
@@ -128,6 +130,15 @@ public final class InputAttributes {
|| (!flagAutoCorrect && !flagMultiLine);
mApplicationSpecifiedCompletionOn = flagAutoComplete && isFullscreenMode;
+
+ // If we come here, inputClass is always TYPE_CLASS_TEXT
+ mIsGeneralTextInput = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS != variation
+ && InputType.TYPE_TEXT_VARIATION_PASSWORD != variation
+ && InputType.TYPE_TEXT_VARIATION_PHONETIC != variation
+ && InputType.TYPE_TEXT_VARIATION_URI != variation
+ && InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD != variation
+ && InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS != variation
+ && InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD != variation;
}
public boolean isTypeNull() {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index a6243430b..69fe6de9a 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -46,13 +46,14 @@ import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
+import android.view.ViewTreeObserver;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.CompletionInfo;
import android.view.inputmethod.CursorAnchorInfo;
import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethod;
import android.view.inputmethod.InputMethodSubtype;
+import android.widget.TextView;
import com.android.inputmethod.accessibility.AccessibilityUtils;
import com.android.inputmethod.annotations.UsedForTesting;
@@ -86,6 +87,7 @@ import com.android.inputmethod.latin.suggestions.SuggestionStripViewAccessor;
import com.android.inputmethod.latin.utils.ApplicationUtils;
import com.android.inputmethod.latin.utils.CapsModeUtils;
import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.utils.CursorAnchorInfoUtils;
import com.android.inputmethod.latin.utils.DialogUtils;
import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatchesAndSuggestions;
import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
@@ -152,6 +154,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// TODO: Move these {@link View}s to {@link KeyboardSwitcher}.
private View mInputView;
private SuggestionStripView mSuggestionStripView;
+ private TextView mExtractEditText;
private RichInputMethodManager mRichImm;
@UsedForTesting final KeyboardSwitcher mKeyboardSwitcher;
@@ -159,6 +162,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private final SubtypeState mSubtypeState = new SubtypeState();
private final SpecialKeyDetector mSpecialKeyDetector;
private StatsUtilsManager mStatsUtilsManager;
+ // Working variable for {@link #startShowingInputView()} and
+ // {@link #onEvaluateInputViewShown()}.
+ private boolean mIsExecutingStartShowingInputView;
// Object for reacting to adding/removing a dictionary pack.
private final BroadcastReceiver mDictionaryPackInstallReceiver =
@@ -183,9 +189,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private static final int MSG_UPDATE_TAIL_BATCH_INPUT_COMPLETED = 6;
private static final int MSG_RESET_CACHES = 7;
private static final int MSG_WAIT_FOR_DICTIONARY_LOAD = 8;
- private static final int MSG_SHOW_COMMIT_INDICATOR = 9;
// Update this when adding new messages
- private static final int MSG_LAST = MSG_SHOW_COMMIT_INDICATOR;
+ private static final int MSG_LAST = MSG_WAIT_FOR_DICTIONARY_LOAD;
private static final int ARG1_NOT_GESTURE_INPUT = 0;
private static final int ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1;
@@ -196,7 +201,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private int mDelayInMillisecondsToUpdateSuggestions;
private int mDelayInMillisecondsToUpdateShiftState;
- private int mDelayInMillisecondsToShowCommitIndicator;
public UIHandler(final LatinIME ownerInstance) {
super(ownerInstance);
@@ -212,8 +216,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
R.integer.config_delay_in_milliseconds_to_update_suggestions);
mDelayInMillisecondsToUpdateShiftState = res.getInteger(
R.integer.config_delay_in_milliseconds_to_update_shift_state);
- mDelayInMillisecondsToShowCommitIndicator = res.getInteger(
- R.integer.text_decorator_delay_in_milliseconds_to_show_commit_indicator);
}
@Override
@@ -271,14 +273,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
latinIme.getCurrentRecapitalizeState());
}
break;
- case MSG_SHOW_COMMIT_INDICATOR:
- // Protocol of MSG_SET_COMMIT_INDICATOR_ENABLED:
- // - what: MSG_SHOW_COMMIT_INDICATOR
- // - arg1: not used.
- // - arg2: not used.
- // - obj: the Runnable object to be called back.
- ((Runnable) msg.obj).run();
- break;
case MSG_WAIT_FOR_DICTIONARY_LOAD:
Log.i(TAG, "Timeout waiting for dictionary load");
break;
@@ -379,19 +373,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
obtainMessage(MSG_UPDATE_TAIL_BATCH_INPUT_COMPLETED, suggestedWords).sendToTarget();
}
- /**
- * Posts a delayed task to show the commit indicator.
- *
- * <p>Only one task can exist in the queue. When this method is called, any prior task that
- * has not yet fired will be canceled.</p>
- * @param task the runnable object that will be fired when the delayed task is dispatched.
- */
- public void postShowCommitIndicatorTask(final Runnable task) {
- removeMessages(MSG_SHOW_COMMIT_INDICATOR);
- sendMessageDelayed(obtainMessage(MSG_SHOW_COMMIT_INDICATOR, task),
- mDelayInMillisecondsToShowCommitIndicator);
- }
-
// Working variables for the following methods.
private boolean mIsOrientationChanging;
private boolean mPendingSuccessiveImsCallback;
@@ -756,6 +737,49 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
@Override
+ public void setExtractView(final View view) {
+ final TextView prevExtractEditText = mExtractEditText;
+ super.setExtractView(view);
+ TextView nextExtractEditText = null;
+ if (view != null) {
+ final View extractEditText = view.findViewById(android.R.id.inputExtractEditText);
+ if (extractEditText instanceof TextView) {
+ nextExtractEditText = (TextView)extractEditText;
+ }
+ }
+ if (prevExtractEditText == nextExtractEditText) {
+ return;
+ }
+ if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK && prevExtractEditText != null) {
+ prevExtractEditText.getViewTreeObserver().removeOnPreDrawListener(
+ mExtractTextViewPreDrawListener);
+ }
+ mExtractEditText = nextExtractEditText;
+ if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK && mExtractEditText != null) {
+ mExtractEditText.getViewTreeObserver().addOnPreDrawListener(
+ mExtractTextViewPreDrawListener);
+ }
+ }
+
+ private final ViewTreeObserver.OnPreDrawListener mExtractTextViewPreDrawListener =
+ new ViewTreeObserver.OnPreDrawListener() {
+ @Override
+ public boolean onPreDraw() {
+ onExtractTextViewPreDraw();
+ return true;
+ }
+ };
+
+ private void onExtractTextViewPreDraw() {
+ if (!ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK || !isFullscreenMode()
+ || mExtractEditText == null) {
+ return;
+ }
+ final CursorAnchorInfo info = CursorAnchorInfoUtils.getCursorAnchorInfo(mExtractEditText);
+ mInputLogic.onUpdateCursorAnchorInfo(CursorAnchorInfoCompatWrapper.fromObject(info));
+ }
+
+ @Override
public void setCandidatesView(final View view) {
// To ensure that CandidatesView will never be set.
return;
@@ -951,7 +975,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mHandler.cancelUpdateSuggestionStrip();
mainKeyboardView.setMainDictionaryAvailability(
- mDictionaryFacilitator.hasInitializedMainDictionary());
+ mDictionaryFacilitator.hasAtLeastOneInitializedMainDictionary());
mainKeyboardView.setKeyPreviewPopupEnabled(currentSettingsValues.mKeyPreviewPopupOn,
currentSettingsValues.mKeyPreviewPopupDismissDelay);
mainKeyboardView.setSlidingKeyInputPreviewEnabled(
@@ -1023,9 +1047,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// We cannot mark this method as @Override until new SDK becomes publicly available.
// @Override
public void onUpdateCursorAnchorInfo(final CursorAnchorInfo info) {
- if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK) {
- mInputLogic.onUpdateCursorAnchorInfo(CursorAnchorInfoCompatWrapper.fromObject(info));
+ if (!ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK || isFullscreenMode()) {
+ return;
}
+ mInputLogic.onUpdateCursorAnchorInfo(CursorAnchorInfoCompatWrapper.fromObject(info));
}
/**
@@ -1144,22 +1169,24 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
outInsets.visibleTopInsets = visibleTopY;
}
- @Override
- public boolean onEvaluateInputViewShown() {
- // Always show {@link InputView}.
- return true;
+ public void startShowingInputView() {
+ mIsExecutingStartShowingInputView = true;
+ // This {@link #showWindow(boolean)} will eventually call back
+ // {@link #onEvaluateInputViewShown()}.
+ showWindow(true /* showInput */);
+ mIsExecutingStartShowingInputView = false;
+ }
+
+ public void stopShowingInputView() {
+ showWindow(false /* showInput */);
}
@Override
- public boolean onShowInputRequested(final int flags, final boolean configChange) {
- final SettingsValues settingsValues = mSettings.getCurrent();
- if ((flags & InputMethod.SHOW_EXPLICIT) == 0 && settingsValues.mHasHardwareKeyboard) {
- // Even when IME is implicitly shown and physical keyboard is connected, we should
- // show {@link InputView}.
- // See {@link InputMethodService#onShowInputRequested(int,boolean)}.
+ public boolean onEvaluateInputViewShown() {
+ if (mIsExecutingStartShowingInputView) {
return true;
}
- return super.onShowInputRequested(flags, configChange);
+ return super.onEvaluateInputViewShown();
}
@Override
@@ -1178,9 +1205,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// hack for now. Let's get rid of this once the framework gets fixed.
final EditorInfo ei = getCurrentInputEditorInfo();
return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
- } else {
- return false;
}
+ return false;
}
@Override
@@ -1226,9 +1252,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
if (null == keyboard) {
return CoordinateUtils.newCoordinateArray(codePoints.length,
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
- } else {
- return keyboard.getCoordinates(codePoints);
}
+ return keyboard.getCoordinates(codePoints);
}
// Callback for the {@link SuggestionStripView}, to call when the "add to dictionary" hint is
@@ -1466,19 +1491,23 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final boolean isEmptyApplicationSpecifiedCompletions =
currentSettingsValues.isApplicationSpecifiedCompletionsOn()
&& suggestedWords.isEmpty();
- final boolean noSuggestionsToShow = (SuggestedWords.EMPTY == suggestedWords)
+ final boolean noSuggestionsFromDictionaries = (SuggestedWords.EMPTY == suggestedWords)
|| suggestedWords.isPunctuationSuggestions()
|| isEmptyApplicationSpecifiedCompletions;
- if (shouldShowImportantNotice && noSuggestionsToShow) {
+ final boolean isBeginningOfSentencePrediction = (suggestedWords.mInputStyle
+ == SuggestedWords.INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION);
+ final boolean noSuggestionsToOverrideImportantNotice = noSuggestionsFromDictionaries
+ || isBeginningOfSentencePrediction;
+ if (shouldShowImportantNotice && noSuggestionsToOverrideImportantNotice) {
if (mSuggestionStripView.maybeShowImportantNoticeTitle()) {
return;
}
}
if (currentSettingsValues.isSuggestionsEnabledPerUserSettings()
- // We should clear suggestions if there is no suggestion to show.
- || noSuggestionsToShow
- || currentSettingsValues.isApplicationSpecifiedCompletionsOn()) {
+ || currentSettingsValues.isApplicationSpecifiedCompletionsOn()
+ // We should clear the contextual strip if there is no suggestion from dictionaries.
+ || noSuggestionsFromDictionaries) {
mSuggestionStripView.setSuggestions(suggestedWords,
SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype()));
}
diff --git a/java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java
index aa8e312a4..396d062f8 100644
--- a/java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/PersonalizationHelperForDictionaryFacilitator.java
@@ -38,15 +38,15 @@ import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
/**
* Class for managing and updating personalization dictionaries.
*/
-public class PersonalizationDictionaryFacilitator {
+public class PersonalizationHelperForDictionaryFacilitator {
private final Context mContext;
private final DistracterFilter mDistracterFilter;
private final HashMap<String, HashSet<Locale>> mLangToLocalesMap = new HashMap<>();
private final HashMap<Locale, ExpandableBinaryDictionary> mPersonalizationDictsToUpdate =
new HashMap<>();
- private boolean mIsMonolingualUser = false;;
+ private boolean mIsMonolingualUser = false;
- PersonalizationDictionaryFacilitator(final Context context,
+ PersonalizationHelperForDictionaryFacilitator(final Context context,
final DistracterFilter distracterFilter) {
mContext = context;
mDistracterFilter = distracterFilter;
@@ -88,17 +88,17 @@ public class PersonalizationDictionaryFacilitator {
/**
* Flush personalization dictionaries to dictionary files. Close dictionaries after writing
- * files except the dictionary that is used for generating suggestions.
+ * files except the dictionaries that is used for generating suggestions.
*
- * @param personalizationDictUsedForSuggestion the personalization dictionary used for
+ * @param personalizationDictsUsedForSuggestion the personalization dictionaries used for
* generating suggestions that won't be closed.
*/
public void flushPersonalizationDictionariesToUpdate(
- final ExpandableBinaryDictionary personalizationDictUsedForSuggestion) {
+ final HashSet<ExpandableBinaryDictionary> personalizationDictsUsedForSuggestion) {
for (final ExpandableBinaryDictionary personalizationDict :
mPersonalizationDictsToUpdate.values()) {
personalizationDict.asyncFlushBinaryDictionary();
- if (personalizationDict != personalizationDictUsedForSuggestion) {
+ if (!personalizationDictsUsedForSuggestion.contains(personalizationDict)) {
// Close if the dictionary is not being used for suggestion.
personalizationDict.close();
}
diff --git a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
index db877ab7a..76d4f57da 100644
--- a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
+++ b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
@@ -86,33 +86,30 @@ public class PrevWordsInfo {
// For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the
// WordComposer was reset and before starting a new composing word, but we should never be
// calling getSuggetions* in this situation.
- public WordInfo[] mPrevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ public final WordInfo[] mPrevWordsInfo;
// Construct from the previous word information.
public PrevWordsInfo(final WordInfo prevWordInfo) {
- mPrevWordsInfo[0] = prevWordInfo;
+ mPrevWordsInfo = new WordInfo[] { prevWordInfo };
}
// Construct from WordInfo array. n-th element represents (n+1)-th previous word's information.
public PrevWordsInfo(final WordInfo[] prevWordsInfo) {
- for (int i = 0; i < Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM; i++) {
- mPrevWordsInfo[i] =
- (prevWordsInfo.length > i) ? prevWordsInfo[i] : WordInfo.EMPTY_WORD_INFO;
- }
+ mPrevWordsInfo = prevWordsInfo;
}
// Create next prevWordsInfo using current prevWordsInfo.
public PrevWordsInfo getNextPrevWordsInfo(final WordInfo wordInfo) {
- final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ final int nextPrevWordCount = Math.min(Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM,
+ mPrevWordsInfo.length + 1);
+ final WordInfo[] prevWordsInfo = new WordInfo[nextPrevWordCount];
prevWordsInfo[0] = wordInfo;
- for (int i = 1; i < prevWordsInfo.length; i++) {
- prevWordsInfo[i] = mPrevWordsInfo[i - 1];
- }
+ System.arraycopy(mPrevWordsInfo, 0, prevWordsInfo, 1, prevWordsInfo.length - 1);
return new PrevWordsInfo(prevWordsInfo);
}
public boolean isValid() {
- return mPrevWordsInfo[0].isValid();
+ return mPrevWordsInfo.length > 0 && mPrevWordsInfo[0].isValid();
}
public void outputToArray(final int[][] codePointArrays,
@@ -129,9 +126,14 @@ public class PrevWordsInfo {
}
}
+ public int getPrevWordCount() {
+ return mPrevWordsInfo.length;
+ }
+
@Override
public int hashCode() {
- return Arrays.hashCode(mPrevWordsInfo);
+ // Just for having equals().
+ return mPrevWordsInfo[0].hashCode();
}
@Override
@@ -139,7 +141,23 @@ public class PrevWordsInfo {
if (this == o) return true;
if (!(o instanceof PrevWordsInfo)) return false;
final PrevWordsInfo prevWordsInfo = (PrevWordsInfo)o;
- return Arrays.equals(mPrevWordsInfo, prevWordsInfo.mPrevWordsInfo);
+
+ final int minLength = Math.min(mPrevWordsInfo.length, prevWordsInfo.mPrevWordsInfo.length);
+ for (int i = 0; i < minLength; i++) {
+ if (!mPrevWordsInfo[i].equals(prevWordsInfo.mPrevWordsInfo[i])) {
+ return false;
+ }
+ }
+ final WordInfo[] longerWordsInfo =
+ (mPrevWordsInfo.length > prevWordsInfo.mPrevWordsInfo.length) ?
+ mPrevWordsInfo : prevWordsInfo.mPrevWordsInfo;
+ for (int i = minLength; i < longerWordsInfo.length; i++) {
+ if (longerWordsInfo[i] != null
+ && !WordInfo.EMPTY_WORD_INFO.equals(longerWordsInfo[i])) {
+ return false;
+ }
+ }
+ return true;
}
@Override
@@ -150,7 +168,11 @@ public class PrevWordsInfo {
builder.append("PrevWord[");
builder.append(i);
builder.append("]: ");
- if (wordInfo == null || !wordInfo.isValid()) {
+ if (wordInfo == null) {
+ builder.append("null. ");
+ continue;
+ }
+ if (!wordInfo.isValid()) {
builder.append("Empty. ");
continue;
}
diff --git a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
index ecf25c28b..827367bb4 100644
--- a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
@@ -53,11 +53,13 @@ public final class ReadOnlyBinaryDictionary extends Dictionary {
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
final SettingsValuesForSuggestion settingsValuesForSuggestion,
- final int sessionId, final float[] inOutLanguageWeight) {
+ final int sessionId, final float weightForLocale,
+ final float[] inOutWeightOfLangModelVsSpatialModel) {
if (mLock.readLock().tryLock()) {
try {
return mBinaryDictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
- settingsValuesForSuggestion, sessionId, inOutLanguageWeight);
+ settingsValuesForSuggestion, sessionId, weightForLocale,
+ inOutWeightOfLangModelVsSpatialModel);
} finally {
mLock.readLock().unlock();
}
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index dc00ecc8f..d672430a1 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -252,7 +252,7 @@ public final class RichInputConnection {
* See {@link InputConnection#commitText(CharSequence, int)}.
*/
public void commitText(final CharSequence text, final int newCursorPosition) {
- commitTextWithBackgroundColor(text, newCursorPosition, Color.TRANSPARENT);
+ commitTextWithBackgroundColor(text, newCursorPosition, Color.TRANSPARENT, text.length());
}
/**
@@ -265,9 +265,11 @@ public final class RichInputConnection {
* the background color. Note that this method specifies {@link BackgroundColorSpan} with
* {@link Spanned#SPAN_COMPOSING} flag, meaning that the background color persists until
* {@link #finishComposingText()} is called.
+ * @param coloredTextLength the length of text, in Java chars, which should be rendered with
+ * the given background color.
*/
public void commitTextWithBackgroundColor(final CharSequence text, final int newCursorPosition,
- final int color) {
+ final int color, final int coloredTextLength) {
if (DEBUG_BATCH_NESTING) checkBatchEdit();
if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
mCommittedTextBeforeComposingText.append(text);
@@ -285,7 +287,8 @@ public final class RichInputConnection {
mTempObjectForCommitText.clear();
mTempObjectForCommitText.append(text);
final BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(color);
- mTempObjectForCommitText.setSpan(backgroundColorSpan, 0, text.length(),
+ final int spanLength = Math.min(coloredTextLength, text.length());
+ mTempObjectForCommitText.setSpan(backgroundColorSpan, 0, spanLength,
Spanned.SPAN_COMPOSING | Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mIC.commitText(mTempObjectForCommitText, newCursorPosition);
mLastCommittedTextHasBackgroundColor = true;
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 9e4aa40a2..1ecc995b2 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -157,7 +157,7 @@ public final class Suggest {
if (!isCorrectionEnabled || !allowsToBeAutoCorrected || resultsArePredictions
|| suggestionResults.isEmpty() || wordComposer.hasDigits()
|| wordComposer.isMostlyCaps() || wordComposer.isResumed()
- || !mDictionaryFacilitator.hasInitializedMainDictionary()
+ || !mDictionaryFacilitator.hasAtLeastOneInitializedMainDictionary()
|| suggestionResults.first().isKindOf(SuggestedWordInfo.KIND_SHORTCUT)) {
// If we don't have a main dictionary, we never want to auto-correct. The reason for
// this is, the user may have a contact whose name happens to match a valid word in
@@ -188,8 +188,14 @@ public final class Suggest {
suggestionsList = suggestionsContainer;
}
- final int inputStyle = resultsArePredictions ? SuggestedWords.INPUT_STYLE_PREDICTION :
- inputStyleIfNotPrediction;
+ final int inputStyle;
+ if (resultsArePredictions) {
+ inputStyle = suggestionResults.mIsBeginningOfSentence
+ ? SuggestedWords.INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION
+ : SuggestedWords.INPUT_STYLE_PREDICTION;
+ } else {
+ inputStyle = inputStyleIfNotPrediction;
+ }
callback.onGetSuggestedWords(new SuggestedWords(suggestionsList,
suggestionResults.mRawSuggestions,
// TODO: this first argument is lying. If this is a whitelisted word which is an
@@ -235,7 +241,7 @@ public final class Suggest {
SuggestedWordInfo.removeDups(null /* typedWord */, suggestionsContainer);
// For some reason some suggestions with MIN_VALUE are making their way here.
- // TODO: Find a more robust way to detect distractors.
+ // TODO: Find a more robust way to detect distracters.
for (int i = suggestionsContainer.size() - 1; i >= 0; --i) {
if (suggestionsContainer.get(i).mScore < SUPPRESS_SUGGEST_THRESHOLD) {
suggestionsContainer.remove(i);
@@ -244,6 +250,8 @@ public final class Suggest {
// In the batch input mode, the most relevant suggested word should act as a "typed word"
// (typedWordValid=true), not as an "auto correct word" (willAutoCorrect=false).
+ // Note that because this method is never used to get predictions, there is no need to
+ // modify inputType such in getSuggestedWordsForNonBatchInput.
callback.onGetSuggestedWords(new SuggestedWords(suggestionsContainer,
suggestionResults.mRawSuggestions,
true /* typedWordValid */,
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index dcfaa3f6d..3eefafc1f 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -39,6 +39,7 @@ public class SuggestedWords {
public static final int INPUT_STYLE_APPLICATION_SPECIFIED = 4;
public static final int INPUT_STYLE_RECORRECTION = 5;
public static final int INPUT_STYLE_PREDICTION = 6;
+ public static final int INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION = 7;
// The maximum number of suggestions available.
public static final int MAX_SUGGESTIONS = 18;
@@ -80,10 +81,9 @@ public class SuggestedWords {
final int inputStyle,
final int sequenceNumber) {
this(suggestedWordInfoList, rawSuggestions,
- (suggestedWordInfoList.isEmpty() || INPUT_STYLE_PREDICTION == inputStyle) ? null
+ (suggestedWordInfoList.isEmpty() || isPrediction(inputStyle)) ? null
: suggestedWordInfoList.get(INDEX_OF_TYPED_WORD).mWord,
- typedWordValid, willAutoCorrect, isObsoleteSuggestions, inputStyle,
- sequenceNumber);
+ typedWordValid, willAutoCorrect, isObsoleteSuggestions, inputStyle, sequenceNumber);
}
public SuggestedWords(final ArrayList<SuggestedWordInfo> suggestedWordInfoList,
@@ -180,6 +180,7 @@ public class SuggestedWords {
return "SuggestedWords:"
+ " mTypedWordValid=" + mTypedWordValid
+ " mWillAutoCorrect=" + mWillAutoCorrect
+ + " mInputStyle=" + mInputStyle
+ " words=" + Arrays.toString(mSuggestedWordInfoList.toArray());
}
@@ -386,8 +387,13 @@ public class SuggestedWords {
}
}
+ private static boolean isPrediction(final int inputStyle) {
+ return INPUT_STYLE_PREDICTION == inputStyle
+ || INPUT_STYLE_BEGINNING_OF_SENTENCE_PREDICTION == inputStyle;
+ }
+
public boolean isPrediction() {
- return INPUT_STYLE_PREDICTION == mInputStyle;
+ return isPrediction(mInputStyle);
}
// SuggestedWords is an immutable object, as much as possible. We must not just remove
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 32d1fe372..567aa07f1 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -49,6 +49,7 @@ public final class WordComposer {
private final ArrayList<Event> mEvents;
private final InputPointers mInputPointers = new InputPointers(MAX_WORD_LENGTH);
private String mAutoCorrection;
+ private String mAutoCorrectionDictionaryType;
private boolean mIsResumed;
private boolean mIsBatchMode;
// A memory of the last rejected batch mode suggestion, if any. This goes like this: the user
@@ -418,8 +419,9 @@ public final class WordComposer {
/**
* Sets the auto-correction for this word.
*/
- public void setAutoCorrection(final String correction) {
+ public void setAutoCorrection(final String correction, String dictType) {
mAutoCorrection = correction;
+ mAutoCorrectionDictionaryType = dictType;
}
/**
@@ -430,6 +432,13 @@ public final class WordComposer {
}
/**
+ * @return the auto-correction dictionary type or null if none.
+ */
+ public String getAutoCorrectionDictionaryTypeOrNull() {
+ return mAutoCorrectionDictionaryType;
+ }
+
+ /**
* @return whether we started composing this word by resuming suggestion on an existing string
*/
public boolean isResumed() {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index c5e60d677..18c740bd7 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -28,6 +28,7 @@ import android.util.Log;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.inputmethod.CorrectionInfo;
+import android.view.inputmethod.CursorAnchorInfo;
import android.view.inputmethod.EditorInfo;
import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper;
@@ -91,12 +92,8 @@ public final class InputLogic {
private final TextDecorator mTextDecorator = new TextDecorator(new TextDecorator.Listener() {
@Override
- public void onClickComposingTextToCommit(SuggestedWordInfo wordInfo) {
- mLatinIME.pickSuggestionManually(wordInfo);
- }
- @Override
- public void onClickComposingTextToAddToDictionary(SuggestedWordInfo wordInfo) {
- mLatinIME.addWordToUserDictionary(wordInfo.mWord);
+ public void onClickComposingTextToAddToDictionary(final String word) {
+ mLatinIME.addWordToUserDictionary(word);
mLatinIME.dismissAddToDictionaryHint();
}
});
@@ -148,6 +145,13 @@ public final class InputLogic {
*/
public void startInput(final String combiningSpec, final SettingsValues settingsValues) {
mEnteredText = null;
+ if (!mWordComposer.getTypedWord().isEmpty()) {
+ // For messaging apps that offer send button, the IME does not get the opportunity
+ // to capture the last word. This block should capture those uncommitted words.
+ // The timestamp at which it is captured is not accurate but close enough.
+ StatsUtils.onWordCommitUserTyped(
+ mWordComposer.getTypedWord(), mWordComposer.isBatchMode());
+ }
mWordComposer.restartCombining(combiningSpec);
resetComposingState(true /* alsoResetLastComposedWord */);
mDeleteCount = 0;
@@ -171,6 +175,7 @@ public final class InputLogic {
mConnection.requestCursorUpdates(true /* enableMonitor */,
true /* requestImmediateCallback */);
}
+ mTextDecorator.reset();
}
}
@@ -207,6 +212,8 @@ public final class InputLogic {
public void finishInput() {
if (mWordComposer.isComposingWord()) {
mConnection.finishComposingText();
+ StatsUtils.onWordCommitUserTyped(
+ mWordComposer.getTypedWord(), mWordComposer.isBatchMode());
}
resetComposingState(true /* alsoResetLastComposedWord */);
mInputLogicHandler.reset();
@@ -253,6 +260,7 @@ public final class InputLogic {
promotePhantomSpace(settingsValues);
}
mConnection.commitText(text, 1);
+ StatsUtils.onWordCommitUserTyped(mEnteredText, mWordComposer.isBatchMode());
mConnection.endBatchEdit();
// Space state must be updated before calling updateShiftState
mSpaceState = SpaceState.NONE;
@@ -334,17 +342,8 @@ public final class InputLogic {
}
final boolean shouldShowAddToDictionaryHint = shouldShowAddToDictionaryHint(suggestionInfo);
- final boolean shouldShowAddToDictionaryIndicator =
- shouldShowAddToDictionaryHint && settingsValues.mShouldShowUiToAcceptTypedWord;
- final int backgroundColor;
- if (shouldShowAddToDictionaryIndicator) {
- backgroundColor = settingsValues.mTextHighlightColorForAddToDictionaryIndicator;
- } else {
- backgroundColor = Color.TRANSPARENT;
- }
- commitChosenWordWithBackgroundColor(settingsValues, suggestion,
- LastComposedWord.COMMIT_TYPE_MANUAL_PICK, LastComposedWord.NOT_A_SEPARATOR,
- backgroundColor);
+ commitChosenWord(settingsValues, suggestion, LastComposedWord.COMMIT_TYPE_MANUAL_PICK,
+ LastComposedWord.NOT_A_SEPARATOR);
mConnection.endBatchEdit();
// Don't allow cancellation of manual pick
mLastComposedWord.deactivate();
@@ -359,11 +358,10 @@ public final class InputLogic {
// That's going to be predictions (or punctuation suggestions), so INPUT_STYLE_NONE.
handler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_NONE);
}
- if (shouldShowAddToDictionaryIndicator) {
- mTextDecorator.showAddToDictionaryIndicator(suggestionInfo);
- }
StatsUtils.onPickSuggestionManually(mSuggestedWords, suggestionInfo);
+ StatsUtils.onWordCommitSuggestionPickedManually(
+ suggestionInfo.mWord, mWordComposer.isBatchMode());
return inputTransaction;
}
@@ -433,6 +431,9 @@ public final class InputLogic {
mRecapitalizeStatus.enable();
// We moved the cursor and need to invalidate the indicator right now.
mTextDecorator.reset();
+ // Remaining background color that was used for the add-to-dictionary indicator should be
+ // removed.
+ mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
// We moved the cursor. If we are touching a word, we need to resume suggestion.
mLatinIME.mHandler.postResumeSuggestions(false /* shouldIncludeResumedWordInSuggestions */,
true /* shouldDelay */);
@@ -511,7 +512,9 @@ public final class InputLogic {
handler.cancelUpdateSuggestionStrip();
++mAutoCommitSequenceNumber;
mConnection.beginBatchEdit();
- if (mWordComposer.isComposingWord()) {
+ if (!mWordComposer.isComposingWord()) {
+ mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
+ } else {
if (mWordComposer.isCursorFrontOrMiddleOfComposingWord()) {
// If we are in the middle of a recorrection, we need to commit the recorrection
// first so that we can insert the batch input at the current cursor position.
@@ -582,6 +585,7 @@ public final class InputLogic {
batchPointers.shift(candidate.mIndexOfTouchPointOfSecondWord);
promotePhantomSpace(settingsValues);
mConnection.commitText(commitParts[0], 0);
+ StatsUtils.onWordCommitUserTyped(commitParts[0], mWordComposer.isBatchMode());
mSpaceState = SpaceState.PHANTOM;
keyboardSwitcher.requestUpdatingShiftState(
getCurrentAutoCapsState(settingsValues), getCurrentRecapitalizeState());
@@ -612,53 +616,24 @@ public final class InputLogic {
final SettingsValues settingsValues, final LatinIME.UIHandler handler) {
if (SuggestedWords.EMPTY != suggestedWords) {
final String autoCorrection;
+ final String dictType;
if (suggestedWords.mWillAutoCorrect) {
- autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION);
+ SuggestedWordInfo info = suggestedWords.getInfo(
+ SuggestedWords.INDEX_OF_AUTO_CORRECTION);
+ autoCorrection = info.mWord;
+ dictType = info.mSourceDict.mDictType;
} else {
// We can't use suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD)
// because it may differ from mWordComposer.mTypedWord.
autoCorrection = suggestedWords.mTypedWord;
+ dictType = Dictionary.TYPE_USER_TYPED;
}
- mWordComposer.setAutoCorrection(autoCorrection);
+ // TODO: Use the SuggestedWordInfo to set the auto correction when
+ // user typed word is available via SuggestedWordInfo.
+ mWordComposer.setAutoCorrection(autoCorrection, dictType);
}
mSuggestedWords = suggestedWords;
final boolean newAutoCorrectionIndicator = suggestedWords.mWillAutoCorrect;
- if (shouldShowCommitIndicator(suggestedWords, settingsValues)) {
- // typedWordInfo is never null here.
- final int textBackgroundColor = settingsValues.mTextHighlightColorForCommitIndicator;
- final SuggestedWordInfo typedWordInfo = suggestedWords.getTypedWordInfoOrNull();
- handler.postShowCommitIndicatorTask(new Runnable() {
- @Override
- public void run() {
- // TODO: This needs to be refactored to ensure that mWordComposer is accessed
- // only from the UI thread.
- if (!mWordComposer.isComposingWord()) {
- mTextDecorator.reset();
- return;
- }
- final SuggestedWordInfo currentTypedWordInfo =
- mSuggestedWords.getTypedWordInfoOrNull();
- if (currentTypedWordInfo == null) {
- mTextDecorator.reset();
- return;
- }
- if (!currentTypedWordInfo.equals(typedWordInfo)) {
- // Suggested word has been changed. This task is obsolete.
- mTextDecorator.reset();
- return;
- }
- // TODO: As with the above TODO comment, this operation must be performed only
- // on the UI thread too. Needs to be refactored.
- setComposingTextInternalWithBackgroundColor(typedWordInfo.mWord,
- 1 /* newCursorPosition */, textBackgroundColor);
- mTextDecorator.showCommitIndicator(typedWordInfo);
- }
- });
- } else {
- // Note: It is OK to not cancel previous postShowCommitIndicatorTask() here. Having a
- // cancellation mechanism could improve performance a bit though.
- mTextDecorator.reset();
- }
// Put a blue underline to a word in TextView which will be auto-corrected.
if (mIsAutoCorrectionIndicatorOn != newAutoCorrectionIndicator
@@ -836,13 +811,14 @@ public final class InputLogic {
final InputTransaction inputTransaction,
// TODO: remove this argument
final LatinIME.UIHandler handler) {
- // In case the "add to dictionary" hint was still displayed.
- // TODO: Do we really need to check if we have composing text here?
- if (!mWordComposer.isComposingWord() &&
- mSuggestionStripViewAccessor.isShowingAddToDictionaryHint()) {
- mSuggestionStripViewAccessor.dismissAddToDictionaryHint();
+ if (!mWordComposer.isComposingWord()) {
mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
- mTextDecorator.reset();
+ // In case the "add to dictionary" hint was still displayed.
+ // TODO: Do we really need to check if we have composing text here?
+ if (mSuggestionStripViewAccessor.isShowingAddToDictionaryHint()) {
+ mSuggestionStripViewAccessor.dismissAddToDictionaryHint();
+ mTextDecorator.reset();
+ }
}
final int codePoint = event.mCodePoint;
@@ -1101,8 +1077,10 @@ public final class InputLogic {
inputTransaction.setRequiresUpdateSuggestions();
} else {
if (mLastComposedWord.canRevertCommit()) {
- revertCommit(inputTransaction);
+ final String lastComposedWord = mLastComposedWord.mTypedWord;
+ revertCommit(inputTransaction, inputTransaction.mSettingsValues);
StatsUtils.onRevertAutoCorrect();
+ StatsUtils.onWordCommitUserTyped(lastComposedWord, mWordComposer.isBatchMode());
return;
}
if (mEnteredText != null && mConnection.sameAsTextBeforeCursor(mEnteredText)) {
@@ -1602,14 +1580,19 @@ public final class InputLogic {
* This is triggered upon pressing backspace just after a commit with auto-correction.
*
* @param inputTransaction The transaction in progress.
+ * @param settingsValues the current values of the settings.
*/
- private void revertCommit(final InputTransaction inputTransaction) {
+ private void revertCommit(final InputTransaction inputTransaction,
+ final SettingsValues settingsValues) {
final CharSequence originallyTypedWord = mLastComposedWord.mTypedWord;
+ final String originallyTypedWordString =
+ originallyTypedWord != null ? originallyTypedWord.toString() : "";
final CharSequence committedWord = mLastComposedWord.mCommittedWord;
final String committedWordString = committedWord.toString();
final int cancelLength = committedWord.length();
+ final String separatorString = mLastComposedWord.mSeparatorString;
// We want java chars, not codepoints for the following.
- final int separatorLength = mLastComposedWord.mSeparatorString.length();
+ final int separatorLength = separatorString.length();
// TODO: should we check our saved separator against the actual contents of the text view?
final int deleteLength = cancelLength + separatorLength;
if (DebugFlags.DEBUG_ENABLED) {
@@ -1628,7 +1611,7 @@ public final class InputLogic {
if (!TextUtils.isEmpty(committedWord)) {
mDictionaryFacilitator.removeWordFromPersonalizedDicts(committedWordString);
}
- final String stringToCommit = originallyTypedWord + mLastComposedWord.mSeparatorString;
+ final String stringToCommit = originallyTypedWord + separatorString;
final SpannableString textToCommit = new SpannableString(stringToCommit);
if (committedWord instanceof SpannableString) {
final SpannableString committedWordWithSuggestionSpans = (SpannableString)committedWord;
@@ -1665,23 +1648,53 @@ public final class InputLogic {
suggestions.toArray(new String[suggestions.size()]), 0 /* flags */),
0 /* start */, lastCharIndex /* end */, 0 /* flags */);
}
+
+ final boolean shouldShowAddToDictionaryForTypedWord =
+ shouldShowAddToDictionaryForTypedWord(mLastComposedWord, settingsValues);
+
if (inputTransaction.mSettingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) {
// For languages with spaces, we revert to the typed string, but the cursor is still
// after the separator so we don't resume suggestions. If the user wants to correct
// the word, they have to press backspace again.
- mConnection.commitText(textToCommit, 1);
+ if (shouldShowAddToDictionaryForTypedWord) {
+ mConnection.commitTextWithBackgroundColor(textToCommit, 1,
+ settingsValues.mTextHighlightColorForAddToDictionaryIndicator,
+ originallyTypedWordString.length());
+ } else {
+ mConnection.commitText(textToCommit, 1);
+ }
} else {
// For languages without spaces, we revert the typed string but the cursor is flush
// with the typed word, so we need to resume suggestions right away.
final int[] codePoints = StringUtils.toCodePointArray(stringToCommit);
mWordComposer.setComposingWord(codePoints,
mLatinIME.getCoordinatesForCurrentKeyboard(codePoints));
- setComposingTextInternal(textToCommit, 1);
+ if (shouldShowAddToDictionaryForTypedWord) {
+ setComposingTextInternalWithBackgroundColor(textToCommit, 1,
+ settingsValues.mTextHighlightColorForAddToDictionaryIndicator,
+ originallyTypedWordString.length());
+ } else {
+ setComposingTextInternal(textToCommit, 1);
+ }
}
// Don't restart suggestion yet. We'll restart if the user deletes the separator.
mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD;
- // We have a separator between the word and the cursor: we should show predictions.
- inputTransaction.setRequiresUpdateSuggestions();
+
+ if (shouldShowAddToDictionaryForTypedWord) {
+ // Due to the API limitation as of L, we cannot reliably retrieve the reverted text
+ // when the separator causes line breaking. Until this API limitation is addressed in
+ // the framework, show the indicator only when the separator doesn't contain
+ // line-breaking characters.
+ if (!StringUtils.hasLineBreakCharacter(separatorString)) {
+ mTextDecorator.showAddToDictionaryIndicator(originallyTypedWordString,
+ mConnection.getExpectedSelectionStart(),
+ mConnection.getExpectedSelectionEnd());
+ }
+ mSuggestionStripViewAccessor.showAddToDictionaryHint(originallyTypedWordString);
+ } else {
+ // We have a separator between the word and the cursor: we should show predictions.
+ inputTransaction.setRequiresUpdateSuggestions();
+ }
}
/**
@@ -2003,6 +2016,8 @@ public final class InputLogic {
final int indexOfLastSpace = batchInputText.lastIndexOf(Constants.CODE_SPACE) + 1;
if (0 != indexOfLastSpace) {
mConnection.commitText(batchInputText.substring(0, indexOfLastSpace), 1);
+ StatsUtils.onWordCommitUserTyped(
+ batchInputText.substring(0, indexOfLastSpace), mWordComposer.isBatchMode());
final SuggestedWords suggestedWordsForLastWordOfPhraseGesture =
suggestedWords.getSuggestedWordsForLastWordOfPhraseGesture();
mLatinIME.showSuggestionStrip(suggestedWordsForLastWordOfPhraseGesture);
@@ -2041,8 +2056,10 @@ public final class InputLogic {
if (!mWordComposer.isComposingWord()) return;
final String typedWord = mWordComposer.getTypedWord();
if (typedWord.length() > 0) {
+ final boolean isBatchMode = mWordComposer.isBatchMode();
commitChosenWord(settingsValues, typedWord,
LastComposedWord.COMMIT_TYPE_USER_TYPED_WORD, separatorString);
+ StatsUtils.onWordCommitUserTyped(typedWord, isBatchMode);
}
}
@@ -2088,6 +2105,7 @@ public final class InputLogic {
throw new RuntimeException("We have an auto-correction but the typed word "
+ "is empty? Impossible! I must commit suicide.");
}
+ final boolean isBatchMode = mWordComposer.isBatchMode();
commitChosenWord(settingsValues, autoCorrection,
LastComposedWord.COMMIT_TYPE_DECIDED_WORD, separator);
if (!typedWord.equals(autoCorrection)) {
@@ -2100,14 +2118,17 @@ public final class InputLogic {
mConnection.commitCorrection(new CorrectionInfo(
mConnection.getExpectedSelectionEnd() - autoCorrection.length(),
typedWord, autoCorrection));
+ StatsUtils.onAutoCorrection(typedWord, autoCorrection, isBatchMode,
+ mWordComposer.getAutoCorrectionDictionaryTypeOrNull());
+ StatsUtils.onWordCommitAutoCorrect(autoCorrection, isBatchMode);
+ } else {
+ StatsUtils.onWordCommitUserTyped(autoCorrection, isBatchMode);
}
}
}
/**
- * Commits the chosen word to the text field and saves it for later retrieval. This is a
- * synonym of {@code commitChosenWordWithBackgroundColor(settingsValues, chosenWord,
- * commitType, separatorString, Color.TRANSPARENT}.
+ * Commits the chosen word to the text field and saves it for later retrieval.
*
* @param settingsValues the current values of the settings.
* @param chosenWord the word we want to commit.
@@ -2116,23 +2137,6 @@ public final class InputLogic {
*/
private void commitChosenWord(final SettingsValues settingsValues, final String chosenWord,
final int commitType, final String separatorString) {
- commitChosenWordWithBackgroundColor(settingsValues, chosenWord, commitType, separatorString,
- Color.TRANSPARENT);
- }
-
- /**
- * Commits the chosen word to the text field and saves it for later retrieval.
- *
- * @param settingsValues the current values of the settings.
- * @param chosenWord the word we want to commit.
- * @param commitType the type of the commit, as one of LastComposedWord.COMMIT_TYPE_*
- * @param separatorString the separator that's causing the commit, or NOT_A_SEPARATOR if none.
- * @param backgroundColor the background color to be specified with the committed text. Pass
- * {@link Color#TRANSPARENT} to not specify the background color.
- */
- private void commitChosenWordWithBackgroundColor(final SettingsValues settingsValues,
- final String chosenWord, final int commitType, final String separatorString,
- final int backgroundColor) {
final SuggestedWords suggestedWords = mSuggestedWords;
final CharSequence chosenWordWithSuggestions =
SuggestionSpanUtils.getTextWithSuggestionSpan(mLatinIME, chosenWord,
@@ -2142,7 +2146,7 @@ public final class InputLogic {
// information from the 1st previous word.
final PrevWordsInfo prevWordsInfo = mConnection.getPrevWordsInfoFromNthPreviousWord(
settingsValues.mSpacingAndPunctuations, mWordComposer.isComposingWord() ? 2 : 1);
- mConnection.commitTextWithBackgroundColor(chosenWordWithSuggestions, 1, backgroundColor);
+ mConnection.commitText(chosenWordWithSuggestions, 1);
// Add the word to the user history dictionary
performAdditionToUserHistoryDictionary(settingsValues, chosenWord, prevWordsInfo);
// TODO: figure out here if this is an auto-correct or if the best word is actually
@@ -2226,7 +2230,7 @@ public final class InputLogic {
private void setComposingTextInternal(final CharSequence newComposingText,
final int newCursorPosition) {
setComposingTextInternalWithBackgroundColor(newComposingText, newCursorPosition,
- Color.TRANSPARENT);
+ Color.TRANSPARENT, newComposingText.length());
}
/**
@@ -2242,9 +2246,11 @@ public final class InputLogic {
* @param newCursorPosition the new cursor position
* @param backgroundColor the background color to be set to the composing text. Set
* {@link Color#TRANSPARENT} to disable the background color.
+ * @param coloredTextLength the length of text, in Java chars, which should be rendered with
+ * the given background color.
*/
private void setComposingTextInternalWithBackgroundColor(final CharSequence newComposingText,
- final int newCursorPosition, final int backgroundColor) {
+ final int newCursorPosition, final int backgroundColor, final int coloredTextLength) {
final CharSequence composingTextToBeSet;
if (backgroundColor == Color.TRANSPARENT) {
composingTextToBeSet = newComposingText;
@@ -2252,7 +2258,8 @@ public final class InputLogic {
final SpannableString spannable = new SpannableString(newComposingText);
final BackgroundColorSpan backgroundColorSpan =
new BackgroundColorSpan(backgroundColor);
- spannable.setSpan(backgroundColorSpan, 0, spannable.length(),
+ final int spanLength = Math.min(coloredTextLength, spannable.length());
+ spannable.setSpan(backgroundColorSpan, 0, spanLength,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE | Spanned.SPAN_COMPOSING);
composingTextToBeSet = spannable;
}
@@ -2274,7 +2281,8 @@ public final class InputLogic {
}
/**
- * Must be called from {@link InputMethodService#onUpdateCursorAnchorInfo} is called.
+ * Must be called from {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} is
+ * called.
* @param info The wrapper object with which we can access cursor/anchor info.
*/
public void onUpdateCursorAnchorInfo(final CursorAnchorInfoCompatWrapper info) {
@@ -2298,12 +2306,12 @@ public final class InputLogic {
}
/**
- * Returns whether the commit indicator should be shown or not.
- * @param suggestedWords the suggested word that is being displayed.
+ * Returns whether the add to dictionary indicator should be shown or not.
+ * @param lastComposedWord the last composed word information.
* @param settingsValues the current settings value.
* @return {@code true} if the commit indicator should be shown.
*/
- private boolean shouldShowCommitIndicator(final SuggestedWords suggestedWords,
+ private boolean shouldShowAddToDictionaryForTypedWord(final LastComposedWord lastComposedWord,
final SettingsValues settingsValues) {
if (!mConnection.isCursorAnchorInfoMonitorEnabled()) {
// We cannot help in this case because we are heavily relying on this new API.
@@ -2312,24 +2320,16 @@ public final class InputLogic {
if (!settingsValues.mShouldShowUiToAcceptTypedWord) {
return false;
}
- final SuggestedWordInfo typedWordInfo = suggestedWords.getTypedWordInfoOrNull();
- if (typedWordInfo == null) {
+ if (TextUtils.isEmpty(lastComposedWord.mTypedWord)) {
return false;
}
- if (suggestedWords.mInputStyle != SuggestedWords.INPUT_STYLE_TYPING){
+ if (TextUtils.equals(lastComposedWord.mTypedWord, lastComposedWord.mCommittedWord)) {
return false;
}
- if (settingsValues.mShowCommitIndicatorOnlyForAutoCorrection
- && !suggestedWords.mWillAutoCorrect) {
+ if (!mDictionaryFacilitator.isUserDictionaryEnabled()) {
return false;
}
- // TODO: Calling shouldShowAddToDictionaryHint(typedWordInfo) multiple times should be fine
- // in terms of performance, but we can do better. One idea is to make SuggestedWords include
- // a boolean that tells whether the word is a dictionary word or not.
- if (settingsValues.mShowCommitIndicatorOnlyForOutOfVocabulary
- && !shouldShowAddToDictionaryHint(typedWordInfo)) {
- return false;
- }
- return true;
+ return !mDictionaryFacilitator.isValidWord(lastComposedWord.mTypedWord,
+ true /* ignoreCase */);
}
}
diff --git a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
new file mode 100644
index 000000000..06ab1e2d2
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
+import android.text.TextUtils;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.SubtypeSwitcher;
+import com.android.inputmethod.latin.define.ProductionFlags;
+import com.android.inputmethod.latin.utils.LoginAccountUtils;
+
+import javax.annotation.Nullable;
+
+/**
+ * "Accounts & Privacy" settings sub screen.
+ *
+ * This settings sub screen handles the following preferences:
+ * <li> Account selection/management for IME
+ * <li> TODO: Sync preferences
+ * <li> TODO: Privacy preferences
+ */
+public final class AccountsSettingsFragment extends SubScreenFragment {
+ static final String PREF_ACCCOUNT_SWITCHER = "account_switcher";
+
+ private final DialogInterface.OnClickListener mAccountSelectedListener =
+ new AccountSelectedListener();
+ private final DialogInterface.OnClickListener mAccountSignedOutListener =
+ new AccountSignedOutListener();
+
+ @Override
+ public void onCreate(final Bundle icicle) {
+ super.onCreate(icicle);
+ 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 =
+ findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
+ if (enableMetricsLogging != null) {
+ final String enableMetricsLoggingTitle = res.getString(
+ R.string.enable_metrics_logging, getApplicationName());
+ enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
+ }
+ } else {
+ removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ refreshAccountSelection();
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
+ // TODO: Look at the preference that changed before refreshing the view.
+ refreshAccountSelection();
+ }
+
+ private void refreshAccountSelection() {
+ final String currentAccount = getCurrentlySelectedAccount();
+ final Preference accountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER);
+ if (currentAccount == null) {
+ // No account is currently selected.
+ accountSwitcher.setSummary(getString(R.string.no_accounts_selected));
+ } else {
+ // Set the currently selected account.
+ accountSwitcher.setSummary(getString(R.string.account_selected, currentAccount));
+ }
+ final Context context = getActivity();
+ final String[] accountsForLogin = LoginAccountUtils.getAccountsForLogin(context);
+ accountSwitcher.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ if (accountsForLogin.length == 0) {
+ // TODO: Handle account addition.
+ Toast.makeText(getActivity(),
+ getString(R.string.account_select_cancel), Toast.LENGTH_SHORT).show();
+ } else {
+ createAccountPicker(accountsForLogin, currentAccount).show();
+ }
+ return true;
+ }
+ });
+
+ // TODO: Depending on the account selection, enable/disable preferences that
+ // depend on an account.
+ }
+
+ @Nullable
+ private String getCurrentlySelectedAccount() {
+ return getSharedPreferences().getString(Settings.PREF_ACCOUNT_NAME, null);
+ }
+
+ /**
+ * Creates an account picker dialog showing the given accounts in a list and selecting
+ * the selected account by default.
+ * The list of accounts must not be null/empty.
+ *
+ * Package-private for testing.
+ */
+ AlertDialog createAccountPicker(final String[] accounts,
+ final String selectedAccount) {
+ if (accounts == null || accounts.length == 0) {
+ throw new IllegalArgumentException("List of accounts must not be empty");
+ }
+
+ // See if the currently selected account is in the list.
+ // If it is, the entry is selected, and a sign-out button is provided.
+ // If it isn't, select the 0th account by default which will get picked up
+ // if the user presses OK.
+ int index = 0;
+ boolean isSignedIn = false;
+ for (int i = 0; i < accounts.length; i++) {
+ if (TextUtils.equals(accounts[i], selectedAccount)) {
+ index = i;
+ isSignedIn = true;
+ break;
+ }
+ }
+ final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.account_select_title)
+ .setSingleChoiceItems(accounts, index, null)
+ .setPositiveButton(R.string.account_select_ok, mAccountSelectedListener)
+ .setNegativeButton(R.string.account_select_cancel, null);
+ if (isSignedIn) {
+ builder.setNeutralButton(R.string.account_select_sign_out, mAccountSignedOutListener);
+ }
+ return builder.create();
+ }
+
+ /**
+ * Listener for an account being selected from the picker.
+ * Persists the account to shared preferences.
+ */
+ class AccountSelectedListener implements DialogInterface.OnClickListener {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ final ListView lv = ((AlertDialog)dialog).getListView();
+ final Object selectedItem = lv.getItemAtPosition(lv.getCheckedItemPosition());
+ getSharedPreferences()
+ .edit()
+ .putString(Settings.PREF_ACCOUNT_NAME, (String) selectedItem)
+ .apply();
+ }
+ }
+
+ /**
+ * Listener for sign-out being initiated from from the picker.
+ * Removed the account from shared preferences.
+ */
+ class AccountSignedOutListener implements DialogInterface.OnClickListener {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ getSharedPreferences()
+ .edit()
+ .remove(Settings.PREF_ACCOUNT_NAME)
+ .apply();
+ }
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
index 00f2c73dd..a6cb55db1 100644
--- a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
@@ -93,14 +93,16 @@ public final class AdvancedSettingsFragment extends SubScreenFragment {
removePreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON);
}
+ // If metrics logging isn't supported, or account sign in is enabled
+ // don't show the logging preference.
+ // TODO: Eventually when we enable account sign in by default,
+ // we'll remove logging preference from here.
if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
final Preference enableMetricsLogging =
findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
if (enableMetricsLogging != null) {
- final int applicationLabelRes = context.getApplicationInfo().labelRes;
- final String applicationName = res.getString(applicationLabelRes);
final String enableMetricsLoggingTitle = res.getString(
- R.string.enable_metrics_logging, applicationName);
+ R.string.enable_metrics_logging, getApplicationName());
enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
}
} else {
diff --git a/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java
new file mode 100644
index 000000000..a9884ba13
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import android.os.Bundle;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.define.ProductionFlags;
+
+
+/**
+ * "Appearance" settings sub screen.
+ */
+public final class AppearanceSettingsFragment extends SubScreenFragment {
+ @Override
+ public void onCreate(final Bundle icicle) {
+ super.onCreate(icicle);
+ addPreferencesFromResource(R.xml.prefs_screen_appearance);
+ if (!ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED
+ || !Settings.getInstance().getCurrent().isTablet()) {
+ removePreference(Settings.PREF_ENABLE_SPLIT_KEYBOARD);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ CustomInputStyleSettingsFragment.updateCustomInputStylesSummary(
+ findPreference(Settings.PREF_CUSTOM_INPUT_STYLES));
+ ThemeSettingsFragment.updateKeyboardThemeSummary(findPreference(Settings.SCREEN_THEME));
+ }
+} \ No newline at end of file
diff --git a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
index d53a61654..9bc398654 100644
--- a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
@@ -31,6 +31,7 @@ import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import android.support.v4.view.ViewCompat;
+import android.text.TextUtils;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -396,6 +397,25 @@ public final class CustomInputStyleSettingsFragment extends PreferenceFragment {
// Empty constructor for fragment generation.
}
+ static void updateCustomInputStylesSummary(final Preference pref) {
+ // 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()}.
+ SubtypeLocaleUtils.init(pref.getContext());
+
+ final Resources res = pref.getContext().getResources();
+ final SharedPreferences prefs = pref.getSharedPreferences();
+ final String prefSubtype = Settings.readPrefAdditionalSubtypes(prefs, res);
+ final InputMethodSubtype[] subtypes =
+ AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefSubtype);
+ final ArrayList<String> subtypeNames = new ArrayList<>();
+ for (final InputMethodSubtype subtype : subtypes) {
+ subtypeNames.add(SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(subtype));
+ }
+ // TODO: A delimiter of custom input styles should be localized.
+ pref.setSummary(TextUtils.join(", ", subtypeNames));
+ }
+
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java
index fcdd39316..b073c50a4 100644
--- a/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java
@@ -16,66 +16,27 @@
package com.android.inputmethod.latin.settings;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
import android.os.Bundle;
-import android.preference.PreferenceScreen;
-import android.text.TextUtils;
-import android.view.inputmethod.InputMethodSubtype;
import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
import java.util.ArrayList;
/**
- * "Multi lingual options" settings sub screen.
+ * "Multilingual options" settings sub screen.
*
* This settings sub screen handles the following input preferences.
* - Language switch key
* - Switch to other input methods
- * - Custom input styles
*/
public final class MultiLingualSettingsFragment extends SubScreenFragment {
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
- addPreferencesFromResource(R.xml.prefs_screen_multi_lingual);
-
- 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()}.
- SubtypeLocaleUtils.init(context);
-
+ addPreferencesFromResource(R.xml.prefs_screen_multilingual);
if (!Settings.ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS) {
removePreference(Settings.PREF_SHOW_LANGUAGE_SWITCH_KEY);
removePreference(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST);
}
}
-
- @Override
- public void onResume() {
- super.onResume();
- updateCustomInputStylesSummary();
- }
-
- private void updateCustomInputStylesSummary() {
- final SharedPreferences prefs = getSharedPreferences();
- final Resources res = getResources();
- final PreferenceScreen customInputStyles =
- (PreferenceScreen)findPreference(Settings.PREF_CUSTOM_INPUT_STYLES);
- final String prefSubtype = Settings.readPrefAdditionalSubtypes(prefs, res);
- final InputMethodSubtype[] subtypes =
- AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefSubtype);
- final ArrayList<String> subtypeNames = new ArrayList<>();
- for (final InputMethodSubtype subtype : subtypes) {
- subtypeNames.add(SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(subtype));
- }
- // TODO: A delimiter of custom input styles should be localized.
- customInputStyles.setSummary(TextUtils.join(", ", subtypeNames));
- }
}
diff --git a/java/src/com/android/inputmethod/latin/settings/InputSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java
index f459d68dd..49db2bdc0 100644
--- a/java/src/com/android/inputmethod/latin/settings/InputSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java
@@ -27,7 +27,7 @@ import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SubtypeSwitcher;
/**
- * "Input preferences" settings sub screen.
+ * "Preferences" settings sub screen.
*
* This settings sub screen handles the following input preferences.
* - Auto-capitalization
@@ -37,11 +37,11 @@ import com.android.inputmethod.latin.SubtypeSwitcher;
* - Popup on keypress
* - Voice input key
*/
-public final class InputSettingsFragment extends SubScreenFragment {
+public final class PreferencesSettingsFragment extends SubScreenFragment {
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
- addPreferencesFromResource(R.xml.prefs_screen_input);
+ addPreferencesFromResource(R.xml.prefs_screen_preferences);
final Resources res = getResources();
final Context context = getActivity();
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java
index 3c7a99102..a171fc330 100644
--- a/java/src/com/android/inputmethod/latin/settings/Settings.java
+++ b/java/src/com/android/inputmethod/latin/settings/Settings.java
@@ -42,9 +42,11 @@ import java.util.concurrent.locks.ReentrantLock;
public final class Settings implements SharedPreferences.OnSharedPreferenceChangeListener {
private static final String TAG = Settings.class.getSimpleName();
// Settings screens
- public static final String SCREEN_INPUT = "screen_input";
+ public static final String SCREEN_PREFERENCES = "screen_preferences";
+ public static final String SCREEN_ACCOUNTS = "screen_accounts";
+ public static final String SCREEN_APPEARANCE = "screen_appearance";
public static final String SCREEN_THEME = "screen_theme";
- public static final String SCREEN_MULTI_LINGUAL = "screen_multi_lingual";
+ public static final String SCREEN_MULTILINGUAL = "screen_multilingual";
public static final String SCREEN_GESTURE = "screen_gesture";
public static final String SCREEN_CORRECTION = "screen_correction";
public static final String SCREEN_ADVANCED = "screen_advanced";
@@ -69,6 +71,9 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
"pref_key_use_double_space_period";
public static final String PREF_BLOCK_POTENTIALLY_OFFENSIVE =
"pref_key_block_potentially_offensive";
+ // No multilingual options in Android L and above for now.
+ public static final boolean SHOW_MULTILINGUAL_SETTINGS =
+ BuildCompatUtils.EFFECTIVE_SDK_INT <= Build.VERSION_CODES.KITKAT;
public static final boolean ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS =
BuildCompatUtils.EFFECTIVE_SDK_INT <= Build.VERSION_CODES.KITKAT;
public static final boolean HAS_UI_TO_ACCEPT_TYPED_WORD =
@@ -79,6 +84,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
"pref_include_other_imes_in_language_switch_list";
public static final String PREF_KEYBOARD_THEME = "pref_keyboard_theme";
public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles";
+ public static final String PREF_ENABLE_SPLIT_KEYBOARD = "pref_split_keyboard";
// TODO: consolidate key preview dismiss delay with the key preview animation parameters.
public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY =
"pref_key_preview_popup_dismiss_delay";
@@ -99,6 +105,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal";
public static final String PREF_ENABLE_METRICS_LOGGING = "pref_enable_metrics_logging";
+ public static final String PREF_ACCOUNT_NAME = "pref_account_name";
// This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead.
// This is being used only for the backward compatibility.
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
index ff7495853..8c4801798 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
@@ -18,12 +18,14 @@ package com.android.inputmethod.latin.settings;
import android.content.Intent;
import android.os.Bundle;
+import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.define.ProductionFlags;
import com.android.inputmethod.latin.utils.ApplicationUtils;
import com.android.inputmethod.latin.utils.FeedbackUtils;
import com.android.inputmethodcommon.InputMethodSettingsFragment;
@@ -46,12 +48,14 @@ public final class SettingsFragment extends InputMethodSettingsFragment {
final PreferenceScreen preferenceScreen = getPreferenceScreen();
preferenceScreen.setTitle(
ApplicationUtils.getActivityTitleResId(getActivity(), SettingsActivity.class));
- }
-
- @Override
- public void onResume() {
- super.onResume();
- ThemeSettingsFragment.updateKeyboardThemeSummary(findPreference(Settings.SCREEN_THEME));
+ if (!Settings.SHOW_MULTILINGUAL_SETTINGS) {
+ final Preference multilingualOptions = findPreference(Settings.SCREEN_MULTILINGUAL);
+ preferenceScreen.removePreference(multilingualOptions);
+ }
+ if (!ProductionFlags.ENABLE_ACCOUNT_SIGN_IN) {
+ final Preference accountsPreference = findPreference(Settings.SCREEN_ACCOUNTS);
+ preferenceScreen.removePreference(accountsPreference);
+ }
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index c891a2e14..3339ab57f 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -25,6 +25,7 @@ import android.util.Log;
import android.view.inputmethod.EditorInfo;
import com.android.inputmethod.compat.AppWorkaroundsUtils;
+import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.InputAttributes;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.RichInputMethodManager;
@@ -79,6 +80,9 @@ public class SettingsValues {
public final int mKeyLongpressTimeout;
public final boolean mEnableMetricsLogging;
public final boolean mShouldShowUiToAcceptTypedWord;
+ // Use split layout for keyboard.
+ public final boolean mIsSplitKeyboardEnabled;
+ public final int mScreenMetrics;
// From the input box
public final InputAttributes mInputAttributes;
@@ -98,10 +102,7 @@ public class SettingsValues {
new int[AdditionalFeaturesSettingUtils.ADDITIONAL_FEATURES_SETTINGS_SIZE];
// TextDecorator
- public final int mTextHighlightColorForCommitIndicator;
public final int mTextHighlightColorForAddToDictionaryIndicator;
- public final boolean mShowCommitIndicatorOnlyForAutoCorrection;
- public final boolean mShowCommitIndicatorOnlyForOutOfVocabulary;
// Debug settings
public final boolean mIsInternal;
@@ -149,13 +150,17 @@ public class SettingsValues {
? Settings.readShowsLanguageSwitchKey(prefs) : true /* forcibly */;
mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true);
- mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true);
+ mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true)
+ && inputAttributes.mIsGeneralTextInput;
mBlockPotentiallyOffensive = Settings.readBlockPotentiallyOffensive(prefs, res);
mAutoCorrectEnabled = Settings.readAutoCorrectEnabled(autoCorrectionThresholdRawValue, res);
mBigramPredictionEnabled = readBigramPredictionEnabled(prefs, res);
mDoubleSpacePeriodTimeout = res.getInteger(R.integer.config_double_space_period_timeout);
mHasHardwareKeyboard = Settings.readHasHardwareKeyboard(res.getConfiguration());
mEnableMetricsLogging = prefs.getBoolean(Settings.PREF_ENABLE_METRICS_LOGGING, true);
+ mIsSplitKeyboardEnabled = prefs.getBoolean(Settings.PREF_ENABLE_SPLIT_KEYBOARD, false);
+ mScreenMetrics = res.getInteger(R.integer.config_screen_metrics);
+
mShouldShowUiToAcceptTypedWord = Settings.HAS_UI_TO_ACCEPT_TYPED_WORD
&& prefs.getBoolean(DebugSettings.PREF_SHOW_UI_TO_ACCEPT_TYPED_WORD, true);
// Compute other readable settings
@@ -175,12 +180,6 @@ public class SettingsValues {
mSuggestionsEnabledPerUserSettings = readSuggestionsEnabled(prefs);
AdditionalFeaturesSettingUtils.readAdditionalFeaturesPreferencesIntoArray(
prefs, mAdditionalFeaturesSettingValues);
- mShowCommitIndicatorOnlyForAutoCorrection = res.getBoolean(
- R.bool.text_decorator_only_for_auto_correction);
- mShowCommitIndicatorOnlyForOutOfVocabulary = res.getBoolean(
- R.bool.text_decorator_only_for_out_of_vocabulary);
- mTextHighlightColorForCommitIndicator = res.getColor(
- R.color.text_decorator_commit_indicator_text_highlight_color);
mTextHighlightColorForAddToDictionaryIndicator = res.getColor(
R.color.text_decorator_add_to_dictionary_indicator_text_highlight_color);
mIsInternal = Settings.isInternal(prefs);
@@ -224,6 +223,11 @@ public class SettingsValues {
return mEnableMetricsLogging;
}
+ public boolean isTablet() {
+ return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_TABLET
+ || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_TABLET;
+ }
+
public boolean isApplicationSpecifiedCompletionsOn() {
return mInputAttributes.mApplicationSpecifiedCompletionOn;
}
@@ -430,12 +434,6 @@ public class SettingsValues {
sb.append("" + (null == awu ? "null" : awu.toString()));
sb.append("\n mAdditionalFeaturesSettingValues = ");
sb.append("" + Arrays.toString(mAdditionalFeaturesSettingValues));
- sb.append("\n mShowCommitIndicatorOnlyForAutoCorrection = ");
- sb.append("" + mShowCommitIndicatorOnlyForAutoCorrection);
- sb.append("\n mShowCommitIndicatorOnlyForOutOfVocabulary = ");
- sb.append("" + mShowCommitIndicatorOnlyForOutOfVocabulary);
- sb.append("\n mTextHighlightColorForCommitIndicator = ");
- sb.append("" + mTextHighlightColorForCommitIndicator);
sb.append("\n mTextHighlightColorForAddToDictionaryIndicator = ");
sb.append("" + mTextHighlightColorForAddToDictionaryIndicator);
sb.append("\n mIsInternal = ");
diff --git a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
index ca5b395ce..240f8f89b 100644
--- a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
@@ -20,6 +20,7 @@ import android.app.backup.BackupManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.content.res.Resources;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
@@ -79,6 +80,16 @@ abstract class SubScreenFragment extends PreferenceFragment
return getPreferenceManager().getSharedPreferences();
}
+ /**
+ * Gets the application name to display on the UI.
+ */
+ final String getApplicationName() {
+ final Context context = getActivity();
+ final Resources res = getResources();
+ final int applicationLabelRes = context.getApplicationInfo().labelRes;
+ return res.getString(applicationLabelRes);
+ }
+
@Override
public void addPreferencesFromResource(final int preferencesResId) {
super.addPreferencesFromResource(preferencesResId);
diff --git a/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java b/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java
new file mode 100644
index 000000000..254bc6567
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.content.Intent;
+import android.os.Bundle;
+
+/**
+ * Test activity to use when testing preference fragments. <br/>
+ * Usage: <br/>
+ * Create an ActivityInstrumentationTestCase2 for this activity
+ * and call setIntent() with an intent that specifies the fragment to load in the activity.
+ * The fragment can then be obtained from this activity and used for testing/verification.
+ */
+public final class TestFragmentActivity extends Activity {
+ /**
+ * The fragment name that should be loaded when starting this activity.
+ * This must be specified when starting this activity, as this activity is only
+ * meant to test fragments from instrumentation tests.
+ */
+ public static final String EXTRA_SHOW_FRAGMENT = "show_fragment";
+
+ public Fragment mFragment;
+
+ @Override
+ protected void onCreate(final Bundle savedState) {
+ super.onCreate(savedState);
+ final Intent intent = getIntent();
+ final String fragmentName = intent.getStringExtra(EXTRA_SHOW_FRAGMENT);
+ if (fragmentName == null) {
+ throw new IllegalArgumentException("No fragment name specified for testing");
+ }
+
+ mFragment = Fragment.instantiate(this, fragmentName);
+ FragmentManager fragmentManager = getFragmentManager();
+ fragmentManager.beginTransaction().add(mFragment, fragmentName).commit();
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
index 5a3fc3600..29289aed2 100644
--- a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
@@ -17,7 +17,6 @@
package com.android.inputmethod.latin.settings;
import android.content.Context;
-import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.preference.Preference;
@@ -32,12 +31,12 @@ import com.android.inputmethod.latin.settings.RadioButtonPreference.OnRadioButto
*/
public final class ThemeSettingsFragment extends SubScreenFragment
implements OnRadioButtonClickedListener {
- private String mSelectedThemeId;
+ private int mSelectedThemeId;
static class KeyboardThemePreference extends RadioButtonPreference {
- final String mThemeId;
+ final int mThemeId;
- KeyboardThemePreference(final Context context, final String name, final String id) {
+ KeyboardThemePreference(final Context context, final String name, final int id) {
super(context);
setTitle(name);
mThemeId = id;
@@ -45,14 +44,13 @@ public final class ThemeSettingsFragment extends SubScreenFragment
}
static void updateKeyboardThemeSummary(final Preference pref) {
- final Resources res = pref.getContext().getResources();
- final SharedPreferences prefs = pref.getSharedPreferences();
- final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
- final String keyboardThemeId = String.valueOf(keyboardTheme.mThemeId);
+ final Context context = pref.getContext();
+ final Resources res = context.getResources();
+ final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context);
final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
- final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids);
+ final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids);
for (int index = 0; index < keyboardThemeNames.length; index++) {
- if (keyboardThemeId.equals(keyboardThemeIds[index])) {
+ if (keyboardTheme.mThemeId == keyboardThemeIds[index]) {
pref.setSummary(keyboardThemeNames[index]);
return;
}
@@ -64,18 +62,18 @@ public final class ThemeSettingsFragment extends SubScreenFragment
super.onCreate(icicle);
addPreferencesFromResource(R.xml.prefs_screen_theme);
final PreferenceScreen screen = getPreferenceScreen();
+ final Context context = getActivity();
final Resources res = getResources();
final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
- final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids);
+ final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids);
for (int index = 0; index < keyboardThemeNames.length; index++) {
final KeyboardThemePreference pref = new KeyboardThemePreference(
- getActivity(), keyboardThemeNames[index], keyboardThemeIds[index]);
+ context, keyboardThemeNames[index], keyboardThemeIds[index]);
screen.addPreference(pref);
pref.setOnRadioButtonClickedListener(this);
}
- final SharedPreferences prefs = getSharedPreferences();
- final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
- mSelectedThemeId = String.valueOf(keyboardTheme.mThemeId);
+ final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context);
+ mSelectedThemeId = keyboardTheme.mThemeId;
}
@Override
@@ -106,7 +104,7 @@ public final class ThemeSettingsFragment extends SubScreenFragment
final Preference preference = screen.getPreference(index);
if (preference instanceof KeyboardThemePreference) {
final KeyboardThemePreference pref = (KeyboardThemePreference)preference;
- final boolean selected = mSelectedThemeId.equals(pref.mThemeId);
+ final boolean selected = (mSelectedThemeId == pref.mThemeId);
pref.setSelected(selected);
}
}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 49b34d391..352391611 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -185,7 +185,7 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
try {
final DictionaryFacilitator dictionaryFacilitator =
mDictionaryFacilitatorCache.get(locale);
- return dictionaryFacilitator.hasInitializedMainDictionary();
+ return dictionaryFacilitator.hasAtLeastOneInitializedMainDictionary();
} finally {
mSemaphore.release();
}
diff --git a/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java
new file mode 100644
index 000000000..9dc0524a2
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java
@@ -0,0 +1,236 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.graphics.Matrix;
+import android.graphics.Rect;
+import android.inputmethodservice.ExtractEditText;
+import android.inputmethodservice.InputMethodService;
+import android.text.Layout;
+import android.text.Spannable;
+import android.view.View;
+import android.view.ViewParent;
+import android.view.inputmethod.CursorAnchorInfo;
+import android.widget.TextView;
+
+/**
+ * This class allows input methods to extract {@link CursorAnchorInfo} directly from the given
+ * {@link TextView}. This is useful and even necessary to support full-screen mode where the default
+ * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} event callback must be
+ * ignored because it reports the character locations of the target application rather than
+ * characters on {@link ExtractEditText}.
+ */
+public final class CursorAnchorInfoUtils {
+ private CursorAnchorInfoUtils() {
+ // This helper class is not instantiable.
+ }
+
+ private static boolean isPositionVisible(final View view, final float positionX,
+ final float positionY) {
+ final float[] position = new float[] { positionX, positionY };
+ View currentView = view;
+
+ while (currentView != null) {
+ if (currentView != view) {
+ // Local scroll is already taken into account in positionX/Y
+ position[0] -= currentView.getScrollX();
+ position[1] -= currentView.getScrollY();
+ }
+
+ if (position[0] < 0 || position[1] < 0 ||
+ position[0] > currentView.getWidth() || position[1] > currentView.getHeight()) {
+ return false;
+ }
+
+ if (!currentView.getMatrix().isIdentity()) {
+ currentView.getMatrix().mapPoints(position);
+ }
+
+ position[0] += currentView.getLeft();
+ position[1] += currentView.getTop();
+
+ final ViewParent parent = currentView.getParent();
+ if (parent instanceof View) {
+ currentView = (View) parent;
+ } else {
+ // We've reached the ViewRoot, stop iterating
+ currentView = null;
+ }
+ }
+
+ // We've been able to walk up the view hierarchy and the position was never clipped
+ return true;
+ }
+
+ /**
+ * Returns {@link CursorAnchorInfo} from the given {@link TextView}.
+ * @param textView the target text view from which {@link CursorAnchorInfo} is to be extracted.
+ * @return the {@link CursorAnchorInfo} object based on the current layout. {@code null} if it
+ * is not feasible.
+ */
+ public static CursorAnchorInfo getCursorAnchorInfo(final TextView textView) {
+ Layout layout = textView.getLayout();
+ if (layout == null) {
+ return null;
+ }
+
+ final CursorAnchorInfo.Builder builder = new CursorAnchorInfo.Builder();
+
+ final int selectionStart = textView.getSelectionStart();
+ builder.setSelectionRange(selectionStart, textView.getSelectionEnd());
+
+ // Construct transformation matrix from view local coordinates to screen coordinates.
+ final Matrix viewToScreenMatrix = new Matrix(textView.getMatrix());
+ final int[] viewOriginInScreen = new int[2];
+ textView.getLocationOnScreen(viewOriginInScreen);
+ viewToScreenMatrix.postTranslate(viewOriginInScreen[0], viewOriginInScreen[1]);
+ builder.setMatrix(viewToScreenMatrix);
+
+ if (layout.getLineCount() == 0) {
+ return null;
+ }
+ final Rect lineBoundsWithoutOffset = new Rect();
+ final Rect lineBoundsWithOffset = new Rect();
+ layout.getLineBounds(0, lineBoundsWithoutOffset);
+ textView.getLineBounds(0, lineBoundsWithOffset);
+ final float viewportToContentHorizontalOffset = lineBoundsWithOffset.left
+ - lineBoundsWithoutOffset.left - textView.getScrollX();
+ final float viewportToContentVerticalOffset = lineBoundsWithOffset.top
+ - lineBoundsWithoutOffset.top - textView.getScrollY();
+
+ final CharSequence text = textView.getText();
+ if (text instanceof Spannable) {
+ // Here we assume that the composing text is marked as SPAN_COMPOSING flag. This is not
+ // necessarily true, but basically works.
+ int composingTextStart = text.length();
+ int composingTextEnd = 0;
+ final Spannable spannable = (Spannable) text;
+ final Object[] spans = spannable.getSpans(0, text.length(), Object.class);
+ for (Object span : spans) {
+ final int spanFlag = spannable.getSpanFlags(span);
+ if ((spanFlag & Spannable.SPAN_COMPOSING) != 0) {
+ composingTextStart = Math.min(composingTextStart,
+ spannable.getSpanStart(span));
+ composingTextEnd = Math.max(composingTextEnd, spannable.getSpanEnd(span));
+ }
+ }
+
+ final boolean hasComposingText =
+ (0 <= composingTextStart) && (composingTextStart < composingTextEnd);
+ if (hasComposingText) {
+ final CharSequence composingText = text.subSequence(composingTextStart,
+ composingTextEnd);
+ builder.setComposingText(composingTextStart, composingText);
+
+ final int minLine = layout.getLineForOffset(composingTextStart);
+ final int maxLine = layout.getLineForOffset(composingTextEnd - 1);
+ for (int line = minLine; line <= maxLine; ++line) {
+ final int lineStart = layout.getLineStart(line);
+ final int lineEnd = layout.getLineEnd(line);
+ final int offsetStart = Math.max(lineStart, composingTextStart);
+ final int offsetEnd = Math.min(lineEnd, composingTextEnd);
+ final boolean ltrLine =
+ layout.getParagraphDirection(line) == Layout.DIR_LEFT_TO_RIGHT;
+ final float[] widths = new float[offsetEnd - offsetStart];
+ layout.getPaint().getTextWidths(text, offsetStart, offsetEnd, widths);
+ final float top = layout.getLineTop(line);
+ final float bottom = layout.getLineBottom(line);
+ for (int offset = offsetStart; offset < offsetEnd; ++offset) {
+ final float charWidth = widths[offset - offsetStart];
+ final boolean isRtl = layout.isRtlCharAt(offset);
+ final float primary = layout.getPrimaryHorizontal(offset);
+ final float secondary = layout.getSecondaryHorizontal(offset);
+ // TODO: This doesn't work perfectly for text with custom styles and TAB
+ // chars.
+ final float left;
+ final float right;
+ if (ltrLine) {
+ if (isRtl) {
+ left = secondary - charWidth;
+ right = secondary;
+ } else {
+ left = primary;
+ right = primary + charWidth;
+ }
+ } else {
+ if (!isRtl) {
+ left = secondary;
+ right = secondary + charWidth;
+ } else {
+ left = primary - charWidth;
+ right = primary;
+ }
+ }
+ // TODO: Check top-right and bottom-left as well.
+ final float localLeft = left + viewportToContentHorizontalOffset;
+ final float localRight = right + viewportToContentHorizontalOffset;
+ final float localTop = top + viewportToContentVerticalOffset;
+ final float localBottom = bottom + viewportToContentVerticalOffset;
+ final boolean isTopLeftVisible = isPositionVisible(textView,
+ localLeft, localTop);
+ final boolean isBottomRightVisible =
+ isPositionVisible(textView, localRight, localBottom);
+ int characterBoundsFlags = 0;
+ if (isTopLeftVisible || isBottomRightVisible) {
+ characterBoundsFlags |= CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION;
+ }
+ if (!isTopLeftVisible || !isTopLeftVisible) {
+ characterBoundsFlags |= CursorAnchorInfo.FLAG_HAS_INVISIBLE_REGION;
+ }
+ if (isRtl) {
+ characterBoundsFlags |= CursorAnchorInfo.FLAG_IS_RTL;
+ }
+ // Here offset is the index in Java chars.
+ builder.addCharacterBounds(offset, localLeft, localTop, localRight,
+ localBottom, characterBoundsFlags);
+ }
+ }
+ }
+ }
+
+ // Treat selectionStart as the insertion point.
+ if (0 <= selectionStart) {
+ final int offset = selectionStart;
+ final int line = layout.getLineForOffset(offset);
+ final float insertionMarkerX = layout.getPrimaryHorizontal(offset)
+ + viewportToContentHorizontalOffset;
+ final float insertionMarkerTop = layout.getLineTop(line)
+ + viewportToContentVerticalOffset;
+ final float insertionMarkerBaseline = layout.getLineBaseline(line)
+ + viewportToContentVerticalOffset;
+ final float insertionMarkerBottom = layout.getLineBottom(line)
+ + viewportToContentVerticalOffset;
+ final boolean isTopVisible =
+ isPositionVisible(textView, insertionMarkerX, insertionMarkerTop);
+ final boolean isBottomVisible =
+ isPositionVisible(textView, insertionMarkerX, insertionMarkerBottom);
+ int insertionMarkerFlags = 0;
+ if (isTopVisible || isBottomVisible) {
+ insertionMarkerFlags |= CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION;
+ }
+ if (!isTopVisible || !isBottomVisible) {
+ insertionMarkerFlags |= CursorAnchorInfo.FLAG_HAS_INVISIBLE_REGION;
+ }
+ if (layout.isRtlCharAt(offset)) {
+ insertionMarkerFlags |= CursorAnchorInfo.FLAG_IS_RTL;
+ }
+ builder.setInsertionMarkerLocation(insertionMarkerX, insertionMarkerTop,
+ insertionMarkerBaseline, insertionMarkerBottom, insertionMarkerFlags);
+ }
+ return builder.build();
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java
index 197908032..249478785 100644
--- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java
@@ -23,6 +23,7 @@ import android.content.res.Resources;
import android.text.TextUtils;
import android.util.Log;
+import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.latin.AssetFileAddress;
import com.android.inputmethod.latin.BinaryDictionaryGetter;
import com.android.inputmethod.latin.Constants;
@@ -382,6 +383,7 @@ public class DictionaryInfoUtils {
return dictList;
}
+ @UsedForTesting
public static boolean looksValidForDictionaryInsertion(final CharSequence text,
final SpacingAndPunctuations spacingAndPunctuations) {
if (TextUtils.isEmpty(text)) return false;
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
index 94c62429e..6fd241ee9 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
@@ -21,6 +21,7 @@ import java.util.Locale;
import android.view.inputmethod.InputMethodSubtype;
+import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.latin.PrevWordsInfo;
public interface DistracterFilter {
@@ -36,6 +37,7 @@ public interface DistracterFilter {
public boolean isDistracterToWordsInDictionaries(final PrevWordsInfo prevWordsInfo,
final String testedWord, final Locale locale);
+ @UsedForTesting
public int getWordHandlingType(final PrevWordsInfo prevWordsInfo, final String testedWord,
final Locale locale);
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
index 1db525502..f8a845304 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
@@ -64,9 +64,9 @@ public class DistracterFilterCheckingExactMatchesAndSuggestions implements Distr
private final Object mLock = new Object();
// If the score of the top suggestion exceeds this value, the tested word (e.g.,
- // an OOV, a misspelling, or an in-vocabulary word) would be considered as a distractor to
+ // an OOV, a misspelling, or an in-vocabulary word) would be considered as a distracter to
// words in dictionary. The greater the threshold is, the less likely the tested word would
- // become a distractor, which means the tested word will be more likely to be added to
+ // become a distracter, which means the tested word will be more likely to be added to
// the dictionary.
private static final float DISTRACTER_WORD_SCORE_THRESHOLD = 0.4f;
@@ -196,7 +196,7 @@ public class DistracterFilterCheckingExactMatchesAndSuggestions implements Distr
}
final boolean Word = dictionaryFacilitator.isValidWord(testedWord, false /* ignoreCase */);
if (Word) {
- // Valid word is not a distractor.
+ // Valid word is not a distracter.
if (DEBUG) {
Log.d(TAG, "isDistracter: false (valid word)");
}
@@ -257,12 +257,12 @@ public class DistracterFilterCheckingExactMatchesAndSuggestions implements Distr
return false;
}
final SuggestedWordInfo firstSuggestion = suggestionResults.first();
- final boolean isDistractor = suggestionExceedsDistracterThreshold(
+ final boolean isDistracter = suggestionExceedsDistracterThreshold(
firstSuggestion, consideredWord, DISTRACTER_WORD_SCORE_THRESHOLD);
if (DEBUG) {
- Log.d(TAG, "isDistracter: " + isDistractor);
+ Log.d(TAG, "isDistracter: " + isDistracter);
}
- return isDistractor;
+ return isDistracter;
}
private static boolean suggestionExceedsDistracterThreshold(final SuggestedWordInfo suggestion,
diff --git a/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java b/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java
index 08f5b0b41..ae2de44c7 100644
--- a/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java
@@ -18,13 +18,15 @@ package com.android.inputmethod.latin.utils;
import com.android.inputmethod.dictionarypack.DictionarySettingsFragment;
import com.android.inputmethod.latin.about.AboutPreferences;
+import com.android.inputmethod.latin.settings.AccountsSettingsFragment;
import com.android.inputmethod.latin.settings.AdvancedSettingsFragment;
+import com.android.inputmethod.latin.settings.AppearanceSettingsFragment;
import com.android.inputmethod.latin.settings.CorrectionSettingsFragment;
import com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment;
import com.android.inputmethod.latin.settings.DebugSettingsFragment;
import com.android.inputmethod.latin.settings.GestureSettingsFragment;
-import com.android.inputmethod.latin.settings.InputSettingsFragment;
import com.android.inputmethod.latin.settings.MultiLingualSettingsFragment;
+import com.android.inputmethod.latin.settings.PreferencesSettingsFragment;
import com.android.inputmethod.latin.settings.SettingsFragment;
import com.android.inputmethod.latin.settings.ThemeSettingsFragment;
import com.android.inputmethod.latin.spellcheck.SpellCheckerSettingsFragment;
@@ -40,7 +42,9 @@ public class FragmentUtils {
static {
sLatinImeFragments.add(DictionarySettingsFragment.class.getName());
sLatinImeFragments.add(AboutPreferences.class.getName());
- sLatinImeFragments.add(InputSettingsFragment.class.getName());
+ sLatinImeFragments.add(PreferencesSettingsFragment.class.getName());
+ sLatinImeFragments.add(AccountsSettingsFragment.class.getName());
+ sLatinImeFragments.add(AppearanceSettingsFragment.class.getName());
sLatinImeFragments.add(ThemeSettingsFragment.class.getName());
sLatinImeFragments.add(MultiLingualSettingsFragment.class.getName());
sLatinImeFragments.add(CustomInputStyleSettingsFragment.class.getName());
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
index 05d124764..7955541aa 100644
--- a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
+++ b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
@@ -18,6 +18,7 @@ package com.android.inputmethod.latin.utils;
import android.util.Log;
+import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.latin.Dictionary;
import com.android.inputmethod.latin.DictionaryFacilitator;
import com.android.inputmethod.latin.PrevWordsInfo;
@@ -58,12 +59,14 @@ public final class LanguageModelParam {
public final int mTimestamp;
// Constructor for unigram. TODO: support shortcuts
+ @UsedForTesting
public LanguageModelParam(final CharSequence word, final int unigramProbability,
final int timestamp) {
this(null /* word0 */, word, unigramProbability, Dictionary.NOT_A_PROBABILITY, timestamp);
}
// Constructor for unigram and bigram.
+ @UsedForTesting
public LanguageModelParam(final CharSequence word0, final CharSequence word1,
final int unigramProbability, final int bigramProbability,
final int timestamp) {
diff --git a/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java
index 3cd63612c..5720d9388 100644
--- a/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java
@@ -16,6 +16,7 @@
package com.android.inputmethod.latin.utils;
+import java.util.Arrays;
import java.util.regex.Pattern;
import com.android.inputmethod.latin.Constants;
@@ -56,6 +57,7 @@ public final class PrevWordsInfoUtils {
if (prev == null) return PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
final String[] w = SPACE_REGEX.split(prev);
final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+ Arrays.fill(prevWordsInfo, WordInfo.EMPTY_WORD_INFO);
for (int i = 0; i < prevWordsInfo.length; i++) {
final int focusedWordIndex = w.length - n - i;
// Referring to the word after the focused word.
@@ -66,7 +68,6 @@ public final class PrevWordsInfoUtils {
if (spacingAndPunctuations.isWordConnector(firstChar)) {
// The word following the focused word is starting with a word connector.
// TODO: Return meaningful context for this case.
- prevWordsInfo[i] = WordInfo.EMPTY_WORD_INFO;
break;
}
}
@@ -93,7 +94,6 @@ public final class PrevWordsInfoUtils {
// TODO: Return meaningful context for this case.
if (spacingAndPunctuations.isWordSeparator(lastChar)
|| spacingAndPunctuations.isWordConnector(lastChar)) {
- prevWordsInfo[i] = WordInfo.EMPTY_WORD_INFO;
break;
}
prevWordsInfo[i] = new WordInfo(focusedWord);
diff --git a/java/src/com/android/inputmethod/latin/utils/StringUtils.java b/java/src/com/android/inputmethod/latin/utils/StringUtils.java
index 55557de9d..bbcef990d 100644
--- a/java/src/com/android/inputmethod/latin/utils/StringUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/StringUtils.java
@@ -37,6 +37,14 @@ public final class StringUtils {
private static final String EMPTY_STRING = "";
+ private static final char CHAR_LINE_FEED = 0X000A;
+ private static final char CHAR_VERTICAL_TAB = 0X000B;
+ private static final char CHAR_FORM_FEED = 0X000C;
+ private static final char CHAR_CARRIAGE_RETURN = 0X000D;
+ private static final char CHAR_NEXT_LINE = 0X0085;
+ private static final char CHAR_LINE_SEPARATOR = 0X2028;
+ private static final char CHAR_PARAGRAPH_SEPARATOR = 0X2029;
+
private StringUtils() {
// This utility class is not publicly instantiable.
}
@@ -594,4 +602,30 @@ public final class StringUtils {
return sb + "]";
}
}
+
+ /**
+ * Returns whether the last composed word contains line-breaking character (e.g. CR or LF).
+ * @param text the text to be examined.
+ * @return {@code true} if the last composed word contains line-breaking separator.
+ */
+ @UsedForTesting
+ public static boolean hasLineBreakCharacter(final String text) {
+ if (TextUtils.isEmpty(text)) {
+ return false;
+ }
+ for (int i = text.length() - 1; i >= 0; --i) {
+ final char c = text.charAt(i);
+ switch (c) {
+ case CHAR_LINE_FEED:
+ case CHAR_VERTICAL_TAB:
+ case CHAR_FORM_FEED:
+ case CHAR_CARRIAGE_RETURN:
+ case CHAR_NEXT_LINE:
+ case CHAR_LINE_SEPARATOR:
+ case CHAR_PARAGRAPH_SEPARATOR:
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java b/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java
index eaa5743d4..d6f644228 100644
--- a/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java
+++ b/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java
@@ -22,7 +22,6 @@ import com.android.inputmethod.latin.define.ProductionFlags;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
-import java.util.Locale;
import java.util.TreeSet;
/**
@@ -31,14 +30,17 @@ import java.util.TreeSet;
*/
public final class SuggestionResults extends TreeSet<SuggestedWordInfo> {
public final ArrayList<SuggestedWordInfo> mRawSuggestions;
+ // TODO: Instead of a boolean , we may want to include the context of this suggestion results,
+ // such as {@link PrevWordsInfo}.
+ public final boolean mIsBeginningOfSentence;
private final int mCapacity;
- public SuggestionResults(final int capacity) {
- this(sSuggestedWordInfoComparator, capacity);
+ public SuggestionResults(final int capacity, final boolean isBeginningOfSentence) {
+ this(sSuggestedWordInfoComparator, capacity, isBeginningOfSentence);
}
- public SuggestionResults(final Comparator<SuggestedWordInfo> comparator,
- final int capacity) {
+ private SuggestionResults(final Comparator<SuggestedWordInfo> comparator,
+ final int capacity, final boolean isBeginningOfSentence) {
super(comparator);
mCapacity = capacity;
if (ProductionFlags.INCLUDE_RAW_SUGGESTIONS) {
@@ -46,6 +48,7 @@ public final class SuggestionResults extends TreeSet<SuggestedWordInfo> {
} else {
mRawSuggestions = null;
}
+ mIsBeginningOfSentence = isBeginningOfSentence;
}
@Override