diff options
Diffstat (limited to 'java')
61 files changed, 426 insertions, 861 deletions
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index dc6fdf262..4daf46568 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Lettermodus"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Foonmodus"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Foonsimbool-modus"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Sleutelbord versteek"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Wys <xliff:g id="MODE">%s</xliff:g>-sleutelbord"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datum en tyd"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-pos"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"boodskappe"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"nommer"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"foon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teks"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"tyd"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Steminvoerinstellings"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Op hoofsleutelbord"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Op simbolesleutelbord"</string> diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml index 1907dc962..d1fe341b9 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"የደብዳቤዎች ሁኔታ ላይ"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"የስልክ ሁኔታ ላይ"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"የስልክ ምልክቶች ሁኔታ ላይ"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"የቁልፍ ሰሌዳ ተደብቋል"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"የ<xliff:g id="MODE">%s</xliff:g> ቁልፍ ሰሌዳን በማሳየት ላይ"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"ቀን"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"ቀን እና ሰዓት"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"ኢሜይል"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"አላላክ"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"ቁጥር"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"ስልክ"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"ፅሁፍ"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"ጊዜ"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"ዩ አር ኤል"</string> <string name="voice_input" msgid="3583258583521397548">"የድምፅ ግቤት ቁልፍ"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"በዋናቁልፍ ሰሌዳ ላይ"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"በምልክቶች ቁልፍ ሰሌዳ ላይ"</string> diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index 1268f4395..bca3c2aa3 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"وضع الأحرف"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"وضع الهاتف"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"وضع رموز الهاتف"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"لوحة المفاتيح مخفية"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"إظهار لوحة مفاتيح <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"التاريخ"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"التاريخ والوقت"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"البريد الإلكتروني"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"المراسلة"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"الرقم"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"الهاتف"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"النص"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"الوقت"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"عنوان URL"</string> <string name="voice_input" msgid="3583258583521397548">"مفتاح الإدخال الصوتي"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"لوحة مفاتيح رئيسية"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"لوحة مفاتيح الرموز"</string> diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml index 6fc28e573..56382e42e 100644 --- a/java/res/values-be/strings.xml +++ b/java/res/values-be/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Рэжым лiтар"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Рэжым тэлефона"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Рэжым тэлефонных знакаў"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Клавіятура схавана"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Паказана клавiятура ў рэжыме \" <xliff:g id="MODE">%s</xliff:g>\""</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"дата"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"дата i час"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"электронная пошта"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"абмен паведамленнямі"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"нумар"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"тэлефон"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"тэкст"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"час"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Ключ галасавога ўводу"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"На асн. клавіятуры"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"На сімв. клавіятуры"</string> diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml index 76bd2d15b..3ffebea48 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Режим за букви"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Режим за телефон"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Режим за символи на телефона"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Клавиатурата е скрита"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Показва се клавиатурата за <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"дата"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"дата и час"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"имейл aдреси"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"съобщения"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"числа"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"телефонни номера"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"текст"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"часа"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL адреси"</string> <string name="voice_input" msgid="3583258583521397548">"Клавиш за гласово въвеждане"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"На осн. клавиатура"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"На клав. на симв."</string> @@ -141,7 +130,7 @@ <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"английски (САЩ) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_es_US" msgid="6261791057007890189">"испански (САЩ) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Без език"</string> - <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"без език („QWERTY“)"</string> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Без език („QWERTY“)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Без език (QWERTZ)"</string> <string name="subtype_no_language_azerty" msgid="8721460968141187394">"Без език (AZERTY)"</string> <string name="subtype_no_language_dvorak" msgid="3122976737669823935">"Без език (Дворак)"</string> diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml index ed883334c..26527381f 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Mode de lletres"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode de telèfon"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode de símbols de telèfon"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Teclat amagat"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Es mostra el teclat <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"data"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"data i hora"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"correu electrònic"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"missatgeria"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"número"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telèfon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"hora"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tecla d\'entrada de veu"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Al teclat principal"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Al teclat de símbols"</string> diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index b924dad60..7e12f06d8 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Režim písmen"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Režim telefonu"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Režim telefonních symbolů"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klávesnice je skrytá"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Zobrazení klávesnice: <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datum a čas"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"zprávy"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"čísla"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"čas"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"adresy URL"</string> <string name="voice_input" msgid="3583258583521397548">"Klávesa hlasového vstupu"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Na hlavní klávesnici"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Na klávesnici se symboly"</string> diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index 58ee41b1f..3ea4aaaef 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Bogstavtilstand"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefontilstand"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefonsymboltilstand"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastaturet er skjult"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Viser tastatur til <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"dato"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"Dato og klokkeslæt"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"beskeder"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"tal"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"tekst"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"klokkeslæt"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"Webadresse"</string> <string name="voice_input" msgid="3583258583521397548">"Nøgle til stemmeinput"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"På hovedtastatur"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"På symboltastatur"</string> diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml index ce620f0c3..a50cdf0d0 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Buchstabenmodus"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefonmodus"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefon-Symbolmodus"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastatur ausgeblendet"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Tastatur für <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"Datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"Datum & Uhrzeit"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"E-Mail-Adresse"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"SMS/MMS"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"Zahl"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"Telefonnummer"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"Text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"Zeit"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Taste für Spracheingabe"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Auf Haupttastatur"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Auf Symboltastatur"</string> diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml index 1294df031..153dbbbf4 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Λειτουργία γραμμάτων"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Λειτουργία τηλεφώνου"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Λειτουργία συμβόλων τηλεφώνου"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Απόκρυψη πληκτρολογίου"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Εμφάνιση πληκτρολογίου <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"ημερομηνία"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"ημερομηνία και ώρα"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"διεύθυνση ηλεκτρονικού ταχυδρομείου"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"ανταλλαγή μηνυμάτων"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"αριθμός"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"τηλέφωνο"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"κείμενο"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"ώρα"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"διεύθυνση URL"</string> <string name="voice_input" msgid="3583258583521397548">"Κλειδί φωνητικής εξόδου"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Στο κύριο πληκτρολ."</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Πληκτρ. συμβ. ενερ."</string> diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index 9e7d64f73..5fbbdf667 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Letters mode"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Phone mode"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Phone symbols mode"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Keyboard hidden"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Showing <xliff:g id="MODE">%s</xliff:g> keyboard"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"date"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"date and time"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"messaging"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"number"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"phone"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"time"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"On main keyboard"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"On symbols keyboard"</string> diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index 7585b28e6..71841f805 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Modo Letras"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modo Teléfono"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modo Símbolos del teléfono"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Teclado oculto"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Mostrando teclado para <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"fecha"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"fecha y hora"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"correo"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"Centro de Mensajes"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"número"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"teléfono"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"texto"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"hora"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada por voz"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"En el teclado principal"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"En el teclado de símbolos"</string> diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index 42427fe5c..9b31884a2 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Modo de letras"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modo de teléfono"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modo de símbolos de teléfono"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Teclado oculto"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Mostrando teclado <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"fecha"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"fecha y hora"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"correo electrónico"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"mensajes"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"número"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"teléfono"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"texto"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"hora"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"En teclado principal"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"En teclado de símbolos"</string> diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml index 51eb47bcd..3364abe5e 100644 --- a/java/res/values-et/strings.xml +++ b/java/res/values-et/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Tähtede režiim"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefonirežiim"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefoni sümbolite režiim"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klaviatuur on peidetud"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Näitab klaviatuuri režiimil <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"kuupäev"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"kuupäev ja kellaaeg"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-post"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"sõnumiside"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"number"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"tekst"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"aeg"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Häälesisendi klahv"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Peamisel klaviatuuril"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Sümbol. klaviatuuril"</string> diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index 8f71f1912..54ba41256 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -112,17 +112,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"حالت حروف"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"حالت تلفن"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"حالت نمادهای تلفن"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"صفحه کلید پنهان شد"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"نمایش صفحه کلید <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"تاریخ"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"تاریخ و زمان"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"ایمیل"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"پیامرسانی"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"عدد"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"تلفن"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"نوشتار"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"زمان"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"نشانی اینترنتی"</string> <string name="voice_input" msgid="3583258583521397548">"کلید ورودی صدا"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"در صفحهکلید اصلی"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"در صفحهکلید نمادها"</string> diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml index 9fe8f1b0b..2d754023c 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Näppäimistötila"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Puhelintila"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Puhelinsymbolit-tila"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Näppäimistö on piilotettu"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Näytetään <xliff:g id="MODE">%s</xliff:g>-näppäimistö"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"päivämäärä"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"päivämäärä ja aika"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"sähköposti"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"viestit"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"numero"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"puhelin"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teksti"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"aika"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL-osoite"</string> <string name="voice_input" msgid="3583258583521397548">"Ääniohjausavain"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Päänäppäimistössä"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Symbolinäppäimistössä"</string> diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index 8b2287415..f327f90f9 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Mode Lettres"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode Téléphone"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode Symboles du téléphone"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Clavier masqué"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Affichage du clavier <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"Date"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"Date et heure"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"Adresse e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"SMS/MMS"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"Chiffre"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"Numéro de téléphone"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"Texte"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"Heure"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Sur clavier principal"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Sur clavier symboles"</string> diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml index 77081bd99..e52143dc6 100644 --- a/java/res/values-hi/strings.xml +++ b/java/res/values-hi/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"अक्षर मोड"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"फ़ोन मोड"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"फ़ोन प्रतीक मोड"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"कीबोर्ड छिपा हुआ है"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"<xliff:g id="MODE">%s</xliff:g> कीबोर्ड दिखाया जा रहा है"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"दिनांक"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"दिनांक और समय"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"ईमेल"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"संदेश सेवा"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"संख्या"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"फ़ोन"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"पाठ"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"समय"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"ध्वनि इनपुट कुंजी"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"मुख्य कीबोर्ड पर"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"प्रतीक कीबोर्ड पर"</string> diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index 0710d307e..564d48f14 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Način pisanja slova"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefonski način rada"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Način unosa telefonskih simbola"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tipkovnica je skrivena"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Način prikazane tipkovnice: <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datum i vrijeme"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-pošta"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"slanje poruka"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"brojevi"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"tekst"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"vrijeme"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni unos"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Na glavnoj tipkovnici"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Na tipkovnici simb."</string> diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index e9c7aa018..047a31a6c 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"\"Betű\" mód"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"\"Telefon\" mód"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"\"Telefonos szimbólumok\" mód"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Billentyűzet elrejtve"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"<xliff:g id="MODE">%s</xliff:g> billentyűzet megjelenítve"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"dátum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"dátum és idő"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"üzenetváltás"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"szám"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"szöveg"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"idő"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Hangbeviteli gomb"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"A fő billentyűzeten"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Szimbólumoknál"</string> diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index d5732545e..ba9a7da4c 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Mode huruf"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode telepon"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode simbol telepon"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Keyboard disembunyikan"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Menampilkan keyboard <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"tanggal"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"tanggal dan waktu"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"pesan"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"angka"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telepon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teks"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"waktu"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tombol masukan suara"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Pada keyboard utama"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Pada keyboard simbol"</string> diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml index 0a62f8ad4..56acdf8ce 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Modalità lettere"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modalità telefono"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modalità simboli telefono"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastiera nascosta"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Visualizzazione tastiera <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"data"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"data e ora"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"messaggi"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"numero"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefono"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"testo"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"ora"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tasto input vocale"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Su tastiera principale"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Su tastiera simboli"</string> diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index 33d9fc57e..7c55ab569 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"מצב אותיות"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"מצב טלפון"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"מצב סמלי טלפון"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"המקלדת מוסתרת"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"מציג מקלדת <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"תאריך"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"תאריך ושעה"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"דוא\"ל"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"העברת הודעות"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"מספרים"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"מספרי טלפון"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"טקסט"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"זמן"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"כתובות אתרים"</string> <string name="voice_input" msgid="3583258583521397548">"מקש קלט קולי"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"במקלדת הראשית"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"במקלדת סמלים"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 25b37a4b4..9328f0184 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"英数モード"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"電話モード"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"電話記号モード"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"キーボードは非表示です"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"<xliff:g id="MODE">%s</xliff:g>のキーボードを表示しています"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"日付"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"日時"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"メールアドレス"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"メッセージ"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"数値"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"電話番号"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"テキスト"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"時刻"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"音声入力キー"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"メインキーボード上"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"記号キーボード上"</string> diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index 3b0228a88..f6086eed5 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"문자 모드"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"다이얼 모드"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"전화 기호 모드"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"키보드 숨김"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"<xliff:g id="MODE">%s</xliff:g> 키보드 표시"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"날짜"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"날짜 및 시간"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"이메일"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"문자 메시지"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"숫자"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"전화번호"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"텍스트"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"시간"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"음성 입력 키"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"기본 키보드"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"기호 키보드"</string> diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index 9bfffbc52..a815003b2 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Raidžių režimas"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefono režimas"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefono simbolių režimas"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klaviatūra paslėpta"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Klaviatūra rodoma <xliff:g id="MODE">%s</xliff:g> režimu"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datos"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datos ir laiko"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"el. pašto"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"susirašinėjimo pranešimais"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"skaičių"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefonų numerių"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teksto"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"laiko"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Įvesties balsu klavišas"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Pagr. klaviatūroje"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Simbolių klaviatūr."</string> diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index 5dcaa0100..6a408cfce 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Burtu režīms"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Tālruņa režīms"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Tālruņa simbolu režīms"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastatūra ir paslēpta"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Tiek rādīts tastatūras režīms <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datums"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datums un laiks"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-pasts"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"ziņojumapmaiņa"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"cipari"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"tālrunis"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teksts"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"laiks"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Balss ievades atslēga"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Uz galv. tastatūras"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Uz simbolu tastat."</string> diff --git a/java/res/values-ms/strings.xml b/java/res/values-ms/strings.xml index 4866fed8f..0d4ccf42d 100644 --- a/java/res/values-ms/strings.xml +++ b/java/res/values-ms/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Mod huruf"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mod telefon"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mod simbol telefon"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Papan kekunci tersembunyi"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Menunjukkan <xliff:g id="MODE">%s</xliff:g> papan kekunci"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"tarikh"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"tarikh dan masa"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mel"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"pemesejan"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"nombor"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teks"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"masa"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Kunci input suara"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Hidpkn kekunci utama"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Pd ppn k’unci simbol"</string> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index 32793ef8c..f0b3a4623 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Bokstavmodus"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Ringemodus"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Ringemodus med symboler"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastaturet er skjult"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Viser <xliff:g id="MODE">%s</xliff:g>-tastatur"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"dato"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"dato og klokkeslett"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-post"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"tekstmeldinger"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"tall"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"tekst"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"tid"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"Nettadresse"</string> <string name="voice_input" msgid="3583258583521397548">"Tast for taleinndata"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"På hovedtastatur"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"På talltastatur"</string> diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 4822617f4..dc3a9c3f4 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -108,22 +108,11 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Alfanumeriek toetsenbord"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Toetsenbord telefoon"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefoonsymbolen"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Toetsenbord verborgen"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"<xliff:g id="MODE">%s</xliff:g> toetsenbord wordt weergegeven"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datum en tijd"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"berichten"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"nummer"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefoon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"tekst"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"tijd"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Toets voor spraakinvoer"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Op hoofdtoetsenbord"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Op symbooltoetsenb."</string> <string name="voice_input_modes_off" msgid="3745699748218082014">"Uitgeschakeld"</string> - <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"Microfoon op hoofdtoetsenbord"</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"Mic op hoofdtoetsb."</string> <string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Mic op symb.toetsb."</string> <string name="voice_input_modes_summary_off" msgid="63875609591897607">"Spraakinvoer is uit"</string> <string name="configure_input_method" msgid="373356270290742459">"Invoermethoden configureren"</string> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index 7bb8b772f..de100bc86 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Tryb liter"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Tryb telefonu"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Tryb symboli telefonu"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klawiatura ukryta"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Pokazuję klawiaturę w trybie <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"data"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"data i godzina"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"SMS"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"liczba"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"tekst"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"godzina"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Klawisz rozpoznawania mowy"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Na klawiaturze głównej"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Na klawiaturze z symbolami"</string> diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index caa4019ba..68a34574f 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Modo de letras"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modo de telemóvel"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modo de símbolos de telemóvel"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Teclado oculto"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"A mostrar teclado de <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"data"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"data e hora"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"mensagens"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"números"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telemóvel"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"texto"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"hora"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URLs"</string> <string name="voice_input" msgid="3583258583521397548">"Chave de entrada de voz"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"No teclado principal"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"No teclado símbolos"</string> diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index ed8cdec38..00ab88ced 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Modo de cartas"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modo de telefone"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modo de símbolos de telefone"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Teclado oculto"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Mostrando teclado <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"data"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"data e hora"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"mensagens"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"número"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefone"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"texto"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"hora"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Chave de entrada de texto por voz"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"No teclado principal"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"No teclado de símb."</string> diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml index 5dad59fc2..9eec7f883 100644 --- a/java/res/values-rm/strings.xml +++ b/java/res/values-rm/strings.xml @@ -187,28 +187,6 @@ <skip /> <!-- no translation found for spoken_description_mode_phone_shift (5499629753962641227) --> <skip /> - <!-- no translation found for announce_keyboard_hidden (8718927835531429807) --> - <skip /> - <!-- no translation found for announce_keyboard_mode (4729081055438508321) --> - <skip /> - <!-- no translation found for keyboard_mode_date (3137520166817128102) --> - <skip /> - <!-- no translation found for keyboard_mode_date_time (339593358488851072) --> - <skip /> - <!-- no translation found for keyboard_mode_email (6216248078128294262) --> - <skip /> - <!-- no translation found for keyboard_mode_im (1137405089766557048) --> - <skip /> - <!-- no translation found for keyboard_mode_number (7991623440699957069) --> - <skip /> - <!-- no translation found for keyboard_mode_phone (6851627527401433229) --> - <skip /> - <!-- no translation found for keyboard_mode_text (6479436687899701619) --> - <skip /> - <!-- no translation found for keyboard_mode_time (4381856885582143277) --> - <skip /> - <!-- no translation found for keyboard_mode_url (1519819835514911218) --> - <skip /> <!-- no translation found for voice_input (3583258583521397548) --> <skip /> <!-- no translation found for voice_input_modes_main_keyboard (3360660341121083174) --> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index 5fbcbe5a3..c5a80e397 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Modul Alfanumeric"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Modul Telefon"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Modul Telefon cu simboluri"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tastatura este ascunsă"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Se afișează tastatura pentru <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"date"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"date și ore"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"adrese de e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"mesaje"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"numere"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefoane"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"ore"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"adrese URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tastă pentru intrarea vocală"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Pe tastat. princip."</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Pe tastat. simbol."</string> diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index c21bbf918..13a567808 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Режим ввода текста"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Режим набора номера"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Режим телефонных символов"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Клавиатура скрыта"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Включен режим <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"ввода даты"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"ввода даты и времени"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"ввода адреса электронной почты"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"ввода сообщения"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"ввода цифр"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"набора номера"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"ввода текста"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"ввода времени"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"ввода URL"</string> <string name="voice_input" msgid="3583258583521397548">"Кнопка голосового ввода"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Значок на основной клавиатуре"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Значок на клавиатуре символов"</string> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index aad236ee2..0b28bf193 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Režim písmen"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Režim telefónu"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Režim telefónnych symbolov"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klávesnica je skrytá"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Zobrazenie klávesnice v režime <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"dátum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"dátum a čas"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-mail"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"odosielanie správ"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"číslo"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefón"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"čas"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"Adresa URL"</string> <string name="voice_input" msgid="3583258583521397548">"Kľúč hlasového vstupu"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Na hlavnej klávesnici"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Na klávesnici so symbolmi"</string> diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index a93bf0a41..50f3869d4 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Način črk"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Način telefona"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Način simbolov telefona"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tipkovnica je skrita"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Prikaz tipkovnice: <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datum in ura"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-pošta"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"sporočila SMS"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"števila"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefonske številke"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"besedilo"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"ura"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni vnos"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Na glavni tipkovnici"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Na tipk. s simboli"</string> diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index 8450da15b..2d13db099 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Режим слова"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Режим телефона"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Режим симбола телефона"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Тастатура је сакривена"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Приказује се тастатура у режиму <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"датум"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"датум и време"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"адреса е-поште"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"размена порука"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"број"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"телефон"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"текст"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"време"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL адреса"</string> <string name="voice_input" msgid="3583258583521397548">"Тастер за гласовни унос"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"На главној тастатури"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"На тастатури са симболима"</string> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index be278fa2d..608caad17 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Bokstavsläge"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefonläge"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefonsymbolläge"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Tangentbordet är dolt"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Tangentbord för <xliff:g id="MODE">%s</xliff:g> visas"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"datum"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"datum och tid"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-post"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"sms"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"siffror"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefonnummer"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"text"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"klockslag"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"webbadresser"</string> <string name="voice_input" msgid="3583258583521397548">"Röstinmatningsknapp"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"På huvudtangentbord"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"På symboltangentbord"</string> diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml index 1fc92fb3e..104a5d42e 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Hali ya barua"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Hali ya simu"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Hali ya alama za simu"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Kibodi imefichwa"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Inaonyesha kibodi <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"tarehe"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"tarehe na wakati"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"barua pepe"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"inatuma ujumbe"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"nambari"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"simu"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"maandishi"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"wakati"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Kibao cha kuingizia sauti"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Kwenye kibodi kuu"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Kwenye kibodi ya ishara"</string> diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index 84c4a0327..1db5e91cd 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"โหมดตัวอักษร"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"โหมดโทรศัพท์"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"โหมดสัญลักษณ์โทรศัพท์"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"ซ่อนแป้นพิมพ์แล้ว"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"กำลังแสดงแป้นพิมพ์ <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"วันที่"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"วันที่และเวลา"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"อีเมล"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"ข้อความ"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"หมายเลข"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"โทรศัพท์"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"ข้อความ"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"เวลา"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"แป้นการป้อนข้อมูลด้วยเสียง"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"บนแป้นพิมพ์หลัก"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"บนแป้นพิมพ์สัญลักษณ์"</string> diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index e2a59a43b..adf0a1982 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Mode ng mga titik"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Mode ng telepono"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Mode ng mga simbolo ng telepono"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Nakatago ang keyboard"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Ipinapakita ang <xliff:g id="MODE">%s</xliff:g> keyboard"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"petsa"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"petsa at oras"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"pagmemensahe"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"numero"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telepono"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"teksto"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"oras"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Sa pangunahing keyboard"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Sa keyboard ng mga simbolo"</string> diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index c78d56b55..fd80fea5b 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Harf modu"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Telefon modu"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Telefon sembolleri modu"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Klavye gizli"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"<xliff:g id="MODE">%s</xliff:g> klavyesi gösteriliyor"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"tarih"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"tarih ve saat"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"e-posta"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"mesajlaşma"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"rakam"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"telefon"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"metin"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"saat"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Ses girişi tuşu"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Ana klavyede"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Simge klavyesinde"</string> diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index 2b92d03ec..2e2fdfcff 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Режим букв і цифр"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Режим набору номера"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Режим набору символів"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Клавіатуру сховано"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Зараз клавіатура в такому режимі: <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"дата"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"дата й час"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"електронні адреси"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"повідомлення"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"цифри"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"номери телефонів"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"текст"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"час"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL-адреси"</string> <string name="voice_input" msgid="3583258583521397548">"Ключ голосового вводу"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"На основ. клавіатурі"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Символьна клавіатура"</string> @@ -141,7 +130,7 @@ <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Англійська (США) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_es_US" msgid="6261791057007890189">"іспанська (США) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Мову не вибрано"</string> - <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"QWERTY-клавіатура"</string> + <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Немає мови (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Без мови (QWERTZ)"</string> <string name="subtype_no_language_azerty" msgid="8721460968141187394">"Без мови (AZERTY)"</string> <string name="subtype_no_language_dvorak" msgid="3122976737669823935">"Без мови (Dvorak)"</string> diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 2dcfb1941..6721980cf 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Chế độ chữ cái"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Chế độ điện thoại"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Chế độ biểu tượng điện thoại"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Bàn phím bị ẩn"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Hiển thị bàn phím <xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"ngày"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"ngày và giờ"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"email"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"nhắn tin"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"số"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"điện thoại"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"văn bản"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"giờ"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"URL"</string> <string name="voice_input" msgid="3583258583521397548">"Khóa nhập giọng nói"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Trên bàn phím chính"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Trên bàn phím biểu tượng"</string> diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index 3e4777639..ebb6b9161 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"字母模式"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"电话模式"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"电话符号模式"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"键盘已隐藏"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"目前显示的是<xliff:g id="MODE">%s</xliff:g>键盘"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"日期"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"日期和时间"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"电子邮件"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"短信"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"数字"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"电话"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"文字"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"时间"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"网址"</string> <string name="voice_input" msgid="3583258583521397548">"语音输入键"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"主键盘上"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"符号键盘上"</string> diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index ab6c66402..7d4ea72eb 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"字母模式"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"撥號模式"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"撥號符號模式"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"鍵盤已隱藏"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"目前顯示的是<xliff:g id="MODE">%s</xliff:g>鍵盤"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"日期"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"日期和時間"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"電子郵件"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"簡訊"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"數字"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"電話"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"文字"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"時間"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"網址"</string> <string name="voice_input" msgid="3583258583521397548">"語音輸入按鍵"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"主鍵盤上"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"符號鍵盤上"</string> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index 677588b4f..29ed595b7 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -108,17 +108,6 @@ <string name="spoken_description_mode_alpha" msgid="3528307674390156956">"Imodi yezinhlamvu"</string> <string name="spoken_description_mode_phone" msgid="6520207943132026264">"Imodi yefoni"</string> <string name="spoken_description_mode_phone_shift" msgid="5499629753962641227">"Imodi yezimpawu zefoni"</string> - <string name="announce_keyboard_hidden" msgid="8718927835531429807">"Ikhibhodi ifihliwe"</string> - <string name="announce_keyboard_mode" msgid="4729081055438508321">"Kuboniswa ikhibhodi engu-<xliff:g id="MODE">%s</xliff:g>"</string> - <string name="keyboard_mode_date" msgid="3137520166817128102">"idethi"</string> - <string name="keyboard_mode_date_time" msgid="339593358488851072">"idethi nesikhathi"</string> - <string name="keyboard_mode_email" msgid="6216248078128294262">"i-imeyili"</string> - <string name="keyboard_mode_im" msgid="1137405089766557048">"imilayezo"</string> - <string name="keyboard_mode_number" msgid="7991623440699957069">"inombolo"</string> - <string name="keyboard_mode_phone" msgid="6851627527401433229">"ifoni"</string> - <string name="keyboard_mode_text" msgid="6479436687899701619">"umbhalo"</string> - <string name="keyboard_mode_time" msgid="4381856885582143277">"isikhathi"</string> - <string name="keyboard_mode_url" msgid="1519819835514911218">"I-URL"</string> <string name="voice_input" msgid="3583258583521397548">"Inkinobho yokufaka izwi"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Kwikhibhodi eyisisekelo"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Ikhibhodi yezimpawu"</string> diff --git a/java/src/com/android/inputmethod/latin/DebugSettings.java b/java/src/com/android/inputmethod/latin/DebugSettings.java index 7df266ef2..c2aade64d 100644 --- a/java/src/com/android/inputmethod/latin/DebugSettings.java +++ b/java/src/com/android/inputmethod/latin/DebugSettings.java @@ -57,7 +57,7 @@ public final class DebugSettings extends PreferenceFragment if (usabilityStudyPref instanceof CheckBoxPreference) { final CheckBoxPreference checkbox = (CheckBoxPreference)usabilityStudyPref; checkbox.setChecked(prefs.getBoolean(PREF_USABILITY_STUDY_MODE, - ResearchLogger.DEFAULT_USABILITY_STUDY_MODE)); + LatinImeLogger.getUsabilityStudyMode(prefs))); checkbox.setSummary(R.string.settings_warning_researcher_mode); } final Preference statisticsLoggingPref = findPreference(PREF_STATISTICS_LOGGING); diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index e3a53068a..e7c64c695 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -428,7 +428,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction initSuggest(); if (ProductionFlag.IS_EXPERIMENTAL) { - ResearchLogger.getInstance().init(this, mKeyboardSwitcher); + ResearchLogger.getInstance().init(this, mKeyboardSwitcher, mSuggest); } mDisplayOrientation = getResources().getConfiguration().orientation; @@ -563,6 +563,9 @@ public final class LatinIME extends InputMethodService implements KeyboardAction } mSettings.onDestroy(); unregisterReceiver(mReceiver); + if (ProductionFlag.IS_EXPERIMENTAL) { + ResearchLogger.getInstance().onDestroy(); + } // TODO: The experimental version is not supported by the Dictionary Pack Service yet. if (!ProductionFlag.IS_EXPERIMENTAL) { unregisterReceiver(mDictionaryPackInstallReceiver); diff --git a/java/src/com/android/inputmethod/latin/LatinImeLogger.java b/java/src/com/android/inputmethod/latin/LatinImeLogger.java index e4e8b94b2..3f2b0a3f4 100644 --- a/java/src/com/android/inputmethod/latin/LatinImeLogger.java +++ b/java/src/com/android/inputmethod/latin/LatinImeLogger.java @@ -37,6 +37,10 @@ public final class LatinImeLogger implements SharedPreferences.OnSharedPreferenc public static void commit() { } + public static boolean getUsabilityStudyMode(final SharedPreferences prefs) { + return false; + } + public static void onDestroy() { } diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java index acfcd5354..7a604dc6a 100644 --- a/java/src/com/android/inputmethod/latin/Utils.java +++ b/java/src/com/android/inputmethod/latin/Utils.java @@ -28,6 +28,7 @@ import android.os.Process; import android.text.TextUtils; import android.util.Log; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import java.io.BufferedReader; @@ -77,6 +78,7 @@ public final class Utils { private RingCharBuffer() { // Intentional empty constructor for singleton. } + @UsedForTesting public static RingCharBuffer getInstance() { return sRingCharBuffer; } @@ -93,6 +95,7 @@ public final class Utils { return ret < 0 ? ret + BUFSIZE : ret; } // TODO: accept code points + @UsedForTesting public void push(char c, int x, int y) { if (!mEnabled) return; mCharBuf[mEnd] = c; diff --git a/java/src/com/android/inputmethod/latin/define/ProductionFlag.java b/java/src/com/android/inputmethod/latin/define/ProductionFlag.java index 8e93eda39..3df0d044e 100644 --- a/java/src/com/android/inputmethod/latin/define/ProductionFlag.java +++ b/java/src/com/android/inputmethod/latin/define/ProductionFlag.java @@ -28,5 +28,5 @@ public final class ProductionFlag { // for any released build. public static final boolean IS_EXPERIMENTAL_DEBUG = false; - public static final boolean IS_HARDWARE_KEYBOARD_SUPPORTED = false; + public static final boolean IS_HARDWARE_KEYBOARD_SUPPORTED = true; } diff --git a/java/src/com/android/inputmethod/research/LogUnit.java b/java/src/com/android/inputmethod/research/LogUnit.java index e91976a03..839e2b7ba 100644 --- a/java/src/com/android/inputmethod/research/LogUnit.java +++ b/java/src/com/android/inputmethod/research/LogUnit.java @@ -16,7 +16,6 @@ package com.android.inputmethod.research; -import android.content.SharedPreferences; import android.os.SystemClock; import android.text.TextUtils; import android.util.JsonWriter; @@ -45,7 +44,7 @@ import java.util.List; * will not violate the user's privacy. Checks for this may include whether other LogUnits have * been published recently, or whether the LogUnit contains numbers, etc. */ -/* package */ class LogUnit { +public class LogUnit { private static final String TAG = LogUnit.class.getSimpleName(); private static final boolean DEBUG = false && ProductionFlag.IS_EXPERIMENTAL_DEBUG; diff --git a/java/src/com/android/inputmethod/research/MainLogBuffer.java b/java/src/com/android/inputmethod/research/MainLogBuffer.java index 45b83dd76..9aa60f859 100644 --- a/java/src/com/android/inputmethod/research/MainLogBuffer.java +++ b/java/src/com/android/inputmethod/research/MainLogBuffer.java @@ -18,6 +18,7 @@ package com.android.inputmethod.research; import android.util.Log; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.Dictionary; import com.android.inputmethod.latin.Suggest; import com.android.inputmethod.latin.define.ProductionFlag; @@ -64,7 +65,11 @@ public abstract class MainLogBuffer extends FixedLogBuffer { // The size of the n-grams logged. E.g. N_GRAM_SIZE = 2 means to sample bigrams. public static final int N_GRAM_SIZE = 2; - private Suggest mSuggest; + // TODO: Remove dependence on Suggest, and pass in Dictionary as a parameter to an appropriate + // method. + private final Suggest mSuggest; + @UsedForTesting + private Dictionary mDictionaryForTesting; private boolean mIsStopping = false; /* package for test */ int mNumWordsBetweenNGrams; @@ -73,17 +78,23 @@ public abstract class MainLogBuffer extends FixedLogBuffer { // after a sample is taken. /* package for test */ int mNumWordsUntilSafeToSample; - public MainLogBuffer(final int wordsBetweenSamples, final int numInitialWordsToIgnore) { + public MainLogBuffer(final int wordsBetweenSamples, final int numInitialWordsToIgnore, + final Suggest suggest) { super(N_GRAM_SIZE + wordsBetweenSamples); mNumWordsBetweenNGrams = wordsBetweenSamples; mNumWordsUntilSafeToSample = DEBUG ? 0 : numInitialWordsToIgnore; + mSuggest = suggest; } - public void setSuggest(final Suggest suggest) { - mSuggest = suggest; + @UsedForTesting + /* package for test */ void setDictionaryForTesting(final Dictionary dictionary) { + mDictionaryForTesting = dictionary; } private Dictionary getDictionary() { + if (mDictionaryForTesting != null) { + return mDictionaryForTesting; + } if (mSuggest == null || !mSuggest.hasMainDictionary()) return null; return mSuggest.getMainDictionary(); } diff --git a/java/src/com/android/inputmethod/research/ResearchLog.java b/java/src/com/android/inputmethod/research/ResearchLog.java index 99d84938f..f7c5fd50e 100644 --- a/java/src/com/android/inputmethod/research/ResearchLog.java +++ b/java/src/com/android/inputmethod/research/ResearchLog.java @@ -20,11 +20,11 @@ import android.content.Context; import android.util.JsonWriter; import android.util.Log; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.define.ProductionFlag; import java.io.BufferedWriter; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; @@ -38,16 +38,22 @@ import java.util.concurrent.TimeUnit; /** * Logs the use of the LatinIME keyboard. * - * This class logs operations on the IME keyboard, including what the user has typed. - * Data is stored locally in a file in app-specific storage. + * This class logs operations on the IME keyboard, including what the user has typed. Data is + * written to a {@link JsonWriter}, which will write to a local file. + * + * The JsonWriter is created on-demand by calling {@link #getInitializedJsonWriterLocked}. + * + * This class uses an executor to perform file-writing operations on a separate thread. It also + * tries to avoid creating unnecessary files if there is nothing to write. It also handles + * flushing, making sure it happens, but not too frequently. * * This functionality is off by default. See {@link ProductionFlag#IS_EXPERIMENTAL}. */ public class ResearchLog { + // TODO: Automatically initialize the JsonWriter rather than requiring the caller to manage it. private static final String TAG = ResearchLog.class.getSimpleName(); private static final boolean DEBUG = false && ProductionFlag.IS_EXPERIMENTAL_DEBUG; private static final long FLUSH_DELAY_IN_MS = 1000 * 5; - private static final int ABORT_TIMEOUT_IN_MS = 1000 * 4; /* package */ final ScheduledExecutorService mExecutor; /* package */ final File mFile; @@ -87,27 +93,30 @@ public class ResearchLog { mContext = context; } - public synchronized void close(final Runnable onClosed) { + /** + * Waits for any publication requests to finish and closes the {@link JsonWriter} used for + * output. + * + * See class comment for details about {@code JsonWriter} construction. + * + * @param onClosed run after the close() operation has completed asynchronously + */ + private synchronized void close(final Runnable onClosed) { mExecutor.submit(new Callable<Object>() { @Override public Object call() throws Exception { try { if (mHasWrittenData) { mJsonWriter.endArray(); - mJsonWriter.flush(); - mJsonWriter.close(); - if (DEBUG) { - Log.d(TAG, "wrote log to " + mFile); - } mHasWrittenData = false; - } else { - if (DEBUG) { - Log.d(TAG, "close() called, but no data, not outputting"); - } + } + mJsonWriter.flush(); + mJsonWriter.close(); + if (DEBUG) { + Log.d(TAG, "wrote log to " + mFile); } } catch (Exception e) { - Log.d(TAG, "error when closing ResearchLog:"); - e.printStackTrace(); + Log.d(TAG, "error when closing ResearchLog:", e); } finally { if (mFile != null && mFile.exists()) { mFile.setWritable(false, false); @@ -123,9 +132,24 @@ public class ResearchLog { mExecutor.shutdown(); } - private boolean mIsAbortSuccessful; + /** + * Block until the research log has shut down and spooled out all output or {@code timeout} + * occurs. + * + * @param timeout time to wait for close in milliseconds + */ + public void blockingClose(final long timeout) { + close(null); + awaitTermination(timeout, TimeUnit.MILLISECONDS); + } - public synchronized void abort() { + /** + * Waits for publication requests to finish, closes the JsonWriter, but then deletes the backing + * output file. + * + * @param onAbort run after the abort() operation has completed asynchronously + */ + private synchronized void abort(final Runnable onAbort) { mExecutor.submit(new Callable<Object>() { @Override public Object call() throws Exception { @@ -137,7 +161,10 @@ public class ResearchLog { } } finally { if (mFile != null) { - mIsAbortSuccessful = mFile.delete(); + mFile.delete(); + } + if (onAbort != null) { + onAbort.run(); } } return null; @@ -147,14 +174,25 @@ public class ResearchLog { mExecutor.shutdown(); } - public boolean blockingAbort() throws InterruptedException { - abort(); - mExecutor.awaitTermination(ABORT_TIMEOUT_IN_MS, TimeUnit.MILLISECONDS); - return mIsAbortSuccessful; + /** + * Block until the research log has aborted or {@code timeout} occurs. + * + * @param timeout time to wait for close in milliseconds + */ + public void blockingAbort(final long timeout) { + abort(null); + awaitTermination(timeout, TimeUnit.MILLISECONDS); } - public void awaitTermination(int delay, TimeUnit timeUnit) throws InterruptedException { - mExecutor.awaitTermination(delay, timeUnit); + @UsedForTesting + public void awaitTermination(final long delay, final TimeUnit timeUnit) { + try { + if (!mExecutor.awaitTermination(delay, timeUnit)) { + Log.e(TAG, "ResearchLog executor timed out while awaiting terminaion"); + } + } catch (final InterruptedException e) { + Log.e(TAG, "ResearchLog executor interrupted while awaiting terminaion", e); + } } /* package */ synchronized void flush() { @@ -184,6 +222,12 @@ public class ResearchLog { mFlushFuture = mExecutor.schedule(mFlushCallable, FLUSH_DELAY_IN_MS, TimeUnit.MILLISECONDS); } + /** + * Queues up {@code logUnit} to be published in the background. + * + * @param logUnit the {@link LogUnit} to be published + * @param canIncludePrivateData whether private data in the LogUnit should be included + */ public synchronized void publish(final LogUnit logUnit, final boolean canIncludePrivateData) { try { mExecutor.submit(new Callable<Object>() { @@ -194,10 +238,10 @@ public class ResearchLog { return null; } }); - } catch (RejectedExecutionException e) { + } catch (final RejectedExecutionException e) { // TODO: Add code to record loss of data, and report. if (DEBUG) { - Log.d(TAG, "ResearchLog.publish() rejecting scheduled execution"); + Log.d(TAG, "ResearchLog.publish() rejecting scheduled execution", e); } } } diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java index 25633d630..11d1a5222 100644 --- a/java/src/com/android/inputmethod/research/ResearchLogger.java +++ b/java/src/com/android/inputmethod/research/ResearchLogger.java @@ -122,11 +122,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang // field holds a channel name, the developer does not have to re-enter it when using the // feedback mechanism to generate multiple tests. private static final boolean FEEDBACK_DIALOG_SHOULD_PRESERVE_TEXT_FIELD = false; - public static final boolean DEFAULT_USABILITY_STUDY_MODE = false; /* package */ static boolean sIsLogging = false; private static final int OUTPUT_FORMAT_VERSION = 5; private static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode"; - private static final String PREF_RESEARCH_HAS_SEEN_SPLASH = "pref_research_has_seen_splash"; /* package */ static final String LOG_FILENAME_PREFIX = "researchLog"; private static final String LOG_FILENAME_SUFFIX = ".txt"; /* package */ static final String USER_RECORDING_FILENAME_PREFIX = "recording"; @@ -154,15 +152,16 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang // constants related to specific log points private static final String WHITESPACE_SEPARATORS = " \t\n\r"; private static final int MAX_INPUTVIEW_LENGTH_TO_CAPTURE = 8192; // must be >=1 - private static final String PREF_RESEARCH_LOGGER_UUID_STRING = "pref_research_logger_uuid"; private static final String PREF_RESEARCH_SAVED_CHANNEL = "pref_research_saved_channel"; + private static final long RESEARCHLOG_CLOSE_TIMEOUT_IN_MS = 5 * 1000; + private static final long RESEARCHLOG_ABORT_TIMEOUT_IN_MS = 5 * 1000; + private static final ResearchLogger sInstance = new ResearchLogger(); private static String sAccountType = null; private static String sAllowedAccountDomain = null; // to write to a different filename, e.g., for testing, set mFile before calling start() /* package */ File mFilesDir; - /* package */ String mUUIDString; /* package */ ResearchLog mMainResearchLog; // mFeedbackLog records all events for the session, private or not (excepting // passwords). It is written to permanent storage only if the user explicitly commands @@ -208,7 +207,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private Intent mUploadIntent; private Intent mUploadNowIntent; - private LogUnit mCurrentLogUnit = new LogUnit(); + /* package for test */ LogUnit mCurrentLogUnit = new LogUnit(); // Gestured or tapped words may be committed after the gesture of the next word has started. // To ensure that the gesture data of the next word is not associated with the previous word, @@ -237,50 +236,44 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang return sInstance; } - public void init(final LatinIME latinIME, final KeyboardSwitcher keyboardSwitcher) { + public void init(final LatinIME latinIME, final KeyboardSwitcher keyboardSwitcher, + final Suggest suggest) { assert latinIME != null; - if (latinIME == null) { - Log.w(TAG, "IMS is null; logging is off"); - } else { - mFilesDir = latinIME.getFilesDir(); - if (mFilesDir == null || !mFilesDir.exists()) { - Log.w(TAG, "IME storage directory does not exist."); - } - } - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(latinIME); - if (prefs != null) { - mUUIDString = getUUID(prefs); - if (!prefs.contains(PREF_USABILITY_STUDY_MODE)) { - Editor e = prefs.edit(); - e.putBoolean(PREF_USABILITY_STUDY_MODE, DEFAULT_USABILITY_STUDY_MODE); - e.apply(); - } - sIsLogging = prefs.getBoolean(PREF_USABILITY_STUDY_MODE, false); - prefs.registerOnSharedPreferenceChangeListener(this); - - final long lastCleanupTime = prefs.getLong(PREF_LAST_CLEANUP_TIME, 0L); - final long now = System.currentTimeMillis(); - if (lastCleanupTime + DURATION_BETWEEN_DIR_CLEANUP_IN_MS < now) { - final long timeHorizon = now - MAX_LOGFILE_AGE_IN_MS; - cleanupLoggingDir(mFilesDir, timeHorizon); - Editor e = prefs.edit(); - e.putLong(PREF_LAST_CLEANUP_TIME, now); - e.apply(); - } + mLatinIME = latinIME; + mFilesDir = latinIME.getFilesDir(); + if (mFilesDir == null || !mFilesDir.exists()) { + Log.w(TAG, "IME storage directory does not exist. Cannot start logging."); + return; } + mPrefs = PreferenceManager.getDefaultSharedPreferences(latinIME); + mPrefs.registerOnSharedPreferenceChangeListener(this); + + // Initialize fields from preferences + sIsLogging = ResearchSettings.readResearchLoggerEnabledFlag(mPrefs); + + // Initialize fields from resources final Resources res = latinIME.getResources(); sAccountType = res.getString(R.string.research_account_type); sAllowedAccountDomain = res.getString(R.string.research_allowed_account_domain); - mLatinIME = latinIME; - mPrefs = prefs; + + // Cleanup logging directory + // TODO: Move this and other file-related components to separate file. + final long lastCleanupTime = mPrefs.getLong(PREF_LAST_CLEANUP_TIME, 0L); + final long now = System.currentTimeMillis(); + if (now - lastCleanupTime > DURATION_BETWEEN_DIR_CLEANUP_IN_MS) { + final long timeHorizon = now - MAX_LOGFILE_AGE_IN_MS; + cleanupLoggingDir(mFilesDir, timeHorizon); + mPrefs.edit().putLong(PREF_LAST_CLEANUP_TIME, now).apply(); + } + + // Initialize external services mUploadIntent = new Intent(mLatinIME, UploaderService.class); mUploadNowIntent = new Intent(mLatinIME, UploaderService.class); mUploadNowIntent.putExtra(UploaderService.EXTRA_UPLOAD_UNCONDITIONALLY, true); - mReplayer.setKeyboardSwitcher(keyboardSwitcher); - if (ProductionFlag.IS_EXPERIMENTAL) { scheduleUploadingService(mLatinIME); } + mReplayer.setKeyboardSwitcher(keyboardSwitcher); } /** @@ -322,14 +315,16 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang mMainKeyboardView = null; } - private boolean hasSeenSplash() { - return mPrefs.getBoolean(PREF_RESEARCH_HAS_SEEN_SPLASH, false); + public void onDestroy() { + if (mPrefs != null) { + mPrefs.unregisterOnSharedPreferenceChangeListener(this); + } } private Dialog mSplashDialog = null; private void maybeShowSplashScreen() { - if (hasSeenSplash()) { + if (ResearchSettings.readHasSeenSplash(mPrefs)) { return; } if (mSplashDialog != null && mSplashDialog.isShowing()) { @@ -382,32 +377,23 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang } public void onUserLoggingConsent() { - setLoggingAllowed(true); if (mPrefs == null) { - return; + mPrefs = PreferenceManager.getDefaultSharedPreferences(mLatinIME); + if (mPrefs == null) return; } - final Editor e = mPrefs.edit(); - e.putBoolean(PREF_RESEARCH_HAS_SEEN_SPLASH, true); - e.apply(); + sIsLogging = true; + ResearchSettings.writeResearchLoggerEnabledFlag(mPrefs, true); + ResearchSettings.writeHasSeenSplash(mPrefs, true); restart(); } - private void setLoggingAllowed(boolean enableLogging) { - if (mPrefs == null) { - return; - } - Editor e = mPrefs.edit(); - e.putBoolean(PREF_USABILITY_STUDY_MODE, enableLogging); - e.apply(); - sIsLogging = enableLogging; - } - private static int sLogFileCounter = 0; private File createLogFile(final File filesDir) { final StringBuilder sb = new StringBuilder(); sb.append(LOG_FILENAME_PREFIX).append('-'); - sb.append(mUUIDString).append('-'); + final String uuid = ResearchSettings.readResearchLoggerUuid(mPrefs); + sb.append(uuid).append('-'); sb.append(TIMESTAMP_DATEFORMAT.format(new Date())).append('-'); // Sometimes logFiles are created within milliseconds of each other. Append a counter to // separate these. @@ -425,7 +411,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private File createUserRecordingFile(final File filesDir) { final StringBuilder sb = new StringBuilder(); sb.append(USER_RECORDING_FILENAME_PREFIX).append('-'); - sb.append(mUUIDString).append('-'); + final String uuid = ResearchSettings.readResearchLoggerUuid(mPrefs); + sb.append(uuid).append('-'); sb.append(TIMESTAMP_DATEFORMAT.format(new Date())); sb.append(USER_RECORDING_FILENAME_SUFFIX); return new File(filesDir, sb.toString()); @@ -467,14 +454,11 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang // Log.w(TAG, "not in usability mode; not logging"); return; } - if (mFilesDir == null || !mFilesDir.exists()) { - Log.w(TAG, "IME storage directory does not exist. Cannot start logging."); - return; - } if (mMainLogBuffer == null) { mMainResearchLog = new ResearchLog(createLogFile(mFilesDir), mLatinIME); final int numWordsToIgnore = new Random().nextInt(NUMBER_OF_WORDS_BETWEEN_SAMPLES + 1); - mMainLogBuffer = new MainLogBuffer(NUMBER_OF_WORDS_BETWEEN_SAMPLES, numWordsToIgnore) { + mMainLogBuffer = new MainLogBuffer(NUMBER_OF_WORDS_BETWEEN_SAMPLES, numWordsToIgnore, + mSuggest) { @Override protected void publish(final ArrayList<LogUnit> logUnits, boolean canIncludePrivateData) { @@ -497,7 +481,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang } } }; - mMainLogBuffer.setSuggest(mSuggest); } if (mFeedbackLogBuffer == null) { resetFeedbackLogging(); @@ -522,42 +505,29 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang commitCurrentLogUnit(); mMainLogBuffer.setIsStopping(); mMainLogBuffer.shiftAndPublishAll(); - mMainResearchLog.close(null /* callback */); + mMainResearchLog.blockingClose(RESEARCHLOG_CLOSE_TIMEOUT_IN_MS); mMainLogBuffer = null; } if (mFeedbackLogBuffer != null) { - mFeedbackLog.close(null /* callback */); + mFeedbackLog.blockingClose(RESEARCHLOG_CLOSE_TIMEOUT_IN_MS); mFeedbackLogBuffer = null; } } - public boolean abort() { + public void abort() { if (DEBUG) { Log.d(TAG, "abort called"); } - boolean didAbortMainLog = false; if (mMainLogBuffer != null) { mMainLogBuffer.clear(); - try { - didAbortMainLog = mMainResearchLog.blockingAbort(); - } catch (InterruptedException e) { - // Don't know whether this succeeded or not. We assume not; this is reported - // to the caller. - } + mMainResearchLog.blockingAbort(RESEARCHLOG_ABORT_TIMEOUT_IN_MS); mMainLogBuffer = null; } - boolean didAbortFeedbackLog = false; if (mFeedbackLogBuffer != null) { mFeedbackLogBuffer.clear(); - try { - didAbortFeedbackLog = mFeedbackLog.blockingAbort(); - } catch (InterruptedException e) { - // Don't know whether this succeeded or not. We assume not; this is reported - // to the caller. - } + mFeedbackLog.blockingAbort(RESEARCHLOG_ABORT_TIMEOUT_IN_MS); mFeedbackLogBuffer = null; } - return didAbortMainLog && didAbortFeedbackLog; } private void restart() { @@ -574,7 +544,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang } @Override - public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { + public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { if (key == null || prefs == null) { return; } @@ -596,7 +566,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang presentFeedbackDialog(latinIME); } - public void presentFeedbackDialog(LatinIME latinIME) { + public void presentFeedbackDialog(final LatinIME latinIME) { if (isMakingUserRecording()) { saveRecording(); } @@ -640,7 +610,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private void startRecordingInternal() { if (mUserRecordingLog != null) { - mUserRecordingLog.abort(); + mUserRecordingLog.blockingAbort(RESEARCHLOG_ABORT_TIMEOUT_IN_MS); } mUserRecordingFile = createUserRecordingFile(mFilesDir); mUserRecordingLog = new ResearchLog(mUserRecordingFile, mLatinIME); @@ -678,7 +648,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private void cancelRecording() { if (mUserRecordingLog != null) { - mUserRecordingLog.abort(); + mUserRecordingLog.blockingAbort(RESEARCHLOG_ABORT_TIMEOUT_IN_MS); } mUserRecordingLog = null; mUserRecordingLogBuffer = null; @@ -690,7 +660,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private void saveRecording() { commitCurrentLogUnit(); publishLogBuffer(mUserRecordingLogBuffer, mUserRecordingLog, true); - mUserRecordingLog.close(null); + mUserRecordingLog.blockingClose(RESEARCHLOG_CLOSE_TIMEOUT_IN_MS); mUserRecordingLog = null; mUserRecordingLogBuffer = null; @@ -802,12 +772,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang feedbackContents, accountName, recording); mFeedbackLogBuffer.shiftIn(feedbackLogUnit); publishLogBuffer(mFeedbackLogBuffer, mSavedFeedbackLog, true /* isIncludingPrivateData */); - mSavedFeedbackLog.close(new Runnable() { - @Override - public void run() { - uploadNow(); - } - }); + mSavedFeedbackLog.blockingClose(RESEARCHLOG_CLOSE_TIMEOUT_IN_MS); + uploadNow(); if (isIncludingRecording && DEBUG_REPLAY_AFTER_FEEDBACK) { final Handler handler = new Handler(); @@ -828,9 +794,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang if (mPrefs == null) { return; } - final Editor e = mPrefs.edit(); - e.putString(PREF_RESEARCH_SAVED_CHANNEL, channelName); - e.apply(); + mPrefs.edit().putString(PREF_RESEARCH_SAVED_CHANNEL, channelName).apply(); } } @@ -845,10 +809,13 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang mInFeedbackDialog = false; } - public void initSuggest(Suggest suggest) { + public void initSuggest(final Suggest suggest) { mSuggest = suggest; + // MainLogBuffer has out-of-date Suggest object. Need to close it down and create a new + // one. if (mMainLogBuffer != null) { - mMainLogBuffer.setSuggest(mSuggest); + stop(); + start(); } } @@ -1137,18 +1104,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang } } - private static String getUUID(final SharedPreferences prefs) { - String uuidString = prefs.getString(PREF_RESEARCH_LOGGER_UUID_STRING, null); - if (null == uuidString) { - UUID uuid = UUID.randomUUID(); - uuidString = uuid.toString(); - Editor editor = prefs.edit(); - editor.putString(PREF_RESEARCH_LOGGER_UUID_STRING, uuidString); - editor.apply(); - } - return uuidString; - } - private String scrubWord(String word) { final Dictionary dictionary = getDictionary(); if (dictionary == null) { @@ -1195,9 +1150,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang 0); final Integer versionCode = packageInfo.versionCode; final String versionName = packageInfo.versionName; + final String uuid = ResearchSettings.readResearchLoggerUuid(researchLogger.mPrefs); researchLogger.enqueueEvent(LOGSTATEMENT_LATIN_IME_ON_START_INPUT_VIEW_INTERNAL, - researchLogger.mUUIDString, editorInfo.packageName, - Integer.toHexString(editorInfo.inputType), + uuid, editorInfo.packageName, Integer.toHexString(editorInfo.inputType), Integer.toHexString(editorInfo.imeOptions), editorInfo.fieldId, Build.DISPLAY, Build.MODEL, prefs, versionCode, versionName, OUTPUT_FORMAT_VERSION, IS_LOGGING_EVERYTHING, diff --git a/java/src/com/android/inputmethod/research/ResearchSettings.java b/java/src/com/android/inputmethod/research/ResearchSettings.java new file mode 100644 index 000000000..11e9ac77a --- /dev/null +++ b/java/src/com/android/inputmethod/research/ResearchSettings.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.research; + +import android.content.SharedPreferences; + +import java.util.UUID; + +public final class ResearchSettings { + public static final String PREF_RESEARCH_LOGGER_UUID = "pref_research_logger_uuid"; + public static final String PREF_RESEARCH_LOGGER_ENABLED_FLAG = + "pref_research_logger_enabled_flag"; + public static final String PREF_RESEARCH_LOGGER_HAS_SEEN_SPLASH = + "pref_research_logger_has_seen_splash"; + + private ResearchSettings() { + // Intentional empty constructor for singleton. + } + + public static String readResearchLoggerUuid(final SharedPreferences prefs) { + if (prefs.contains(PREF_RESEARCH_LOGGER_UUID)) { + return prefs.getString(PREF_RESEARCH_LOGGER_UUID, null); + } + // Generate a random string as uuid if not yet set + final String newUuid = UUID.randomUUID().toString(); + prefs.edit().putString(PREF_RESEARCH_LOGGER_UUID, newUuid).apply(); + return newUuid; + } + + public static boolean readResearchLoggerEnabledFlag(final SharedPreferences prefs) { + return prefs.getBoolean(PREF_RESEARCH_LOGGER_ENABLED_FLAG, false); + } + + public static void writeResearchLoggerEnabledFlag(final SharedPreferences prefs, + final boolean isEnabled) { + prefs.edit().putBoolean(PREF_RESEARCH_LOGGER_ENABLED_FLAG, isEnabled).apply(); + } + + public static boolean readHasSeenSplash(final SharedPreferences prefs) { + return prefs.getBoolean(PREF_RESEARCH_LOGGER_HAS_SEEN_SPLASH, false); + } + + public static void writeHasSeenSplash(final SharedPreferences prefs, + final boolean hasSeenSplash) { + prefs.edit().putBoolean(PREF_RESEARCH_LOGGER_HAS_SEEN_SPLASH, hasSeenSplash).apply(); + } +} diff --git a/java/src/com/android/inputmethod/research/Uploader.java b/java/src/com/android/inputmethod/research/Uploader.java new file mode 100644 index 000000000..df495a88d --- /dev/null +++ b/java/src/com/android/inputmethod/research/Uploader.java @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.research; + +import android.Manifest; +import android.app.AlarmManager; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.PackageManager; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.BatteryManager; +import android.text.TextUtils; +import android.util.Log; + +import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.define.ProductionFlag; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileFilter; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +/** + * Manages the uploading of ResearchLog files. + */ +public final class Uploader { + private static final String TAG = Uploader.class.getSimpleName(); + private static final boolean DEBUG = false && ProductionFlag.IS_EXPERIMENTAL_DEBUG; + // Set IS_INHIBITING_AUTO_UPLOAD to true for local testing + private static final boolean IS_INHIBITING_AUTO_UPLOAD = false + && ProductionFlag.IS_EXPERIMENTAL_DEBUG; // Force false for non-debug builds + private static final int BUF_SIZE = 1024 * 8; + + private final Context mContext; + private final File mFilesDir; + private final URL mUrl; + + public Uploader(final Context context) { + mContext = context; + mFilesDir = context.getFilesDir(); + + final String urlString = context.getString(R.string.research_logger_upload_url); + if (TextUtils.isEmpty(urlString)) { + mUrl = null; + return; + } + URL url = null; + try { + url = new URL(urlString); + } catch (final MalformedURLException e) { + Log.e(TAG, "Bad URL for uploading", e); + } + mUrl = url; + } + + public boolean isPossibleToUpload() { + return hasUploadingPermission() && mUrl != null && !IS_INHIBITING_AUTO_UPLOAD; + } + + private boolean hasUploadingPermission() { + final PackageManager packageManager = mContext.getPackageManager(); + return packageManager.checkPermission(Manifest.permission.INTERNET, + mContext.getPackageName()) == PackageManager.PERMISSION_GRANTED; + } + + public boolean isConvenientToUpload() { + return isExternallyPowered() && hasWifiConnection(); + } + + private boolean isExternallyPowered() { + final Intent intent = mContext.registerReceiver(null, new IntentFilter( + Intent.ACTION_BATTERY_CHANGED)); + final int pluggedState = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + return pluggedState == BatteryManager.BATTERY_PLUGGED_AC + || pluggedState == BatteryManager.BATTERY_PLUGGED_USB; + } + + private boolean hasWifiConnection() { + final ConnectivityManager manager = + (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); + final NetworkInfo wifiInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); + return wifiInfo.isConnected(); + } + + public void doUpload() { + if (mFilesDir == null) { + return; + } + final File[] files = mFilesDir.listFiles(new FileFilter() { + @Override + public boolean accept(final File pathname) { + return pathname.getName().startsWith(ResearchLogger.LOG_FILENAME_PREFIX) + && !pathname.canWrite(); + } + }); + for (final File file : files) { + uploadFile(file); + } + } + + private void uploadFile(final File file) { + if (DEBUG) { + Log.d(TAG, "attempting upload of " + file.getAbsolutePath()); + } + final int contentLength = (int) file.length(); + HttpURLConnection connection = null; + InputStream fileInputStream = null; + try { + fileInputStream = new FileInputStream(file); + connection = (HttpURLConnection) mUrl.openConnection(); + connection.setRequestMethod("PUT"); + connection.setDoOutput(true); + connection.setFixedLengthStreamingMode(contentLength); + final OutputStream outputStream = connection.getOutputStream(); + uploadContents(fileInputStream, outputStream); + if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { + Log.d(TAG, "upload failed: " + connection.getResponseCode()); + final InputStream netInputStream = connection.getInputStream(); + final BufferedReader reader = new BufferedReader(new InputStreamReader( + netInputStream)); + String line; + while ((line = reader.readLine()) != null) { + Log.d(TAG, "| " + reader.readLine()); + } + reader.close(); + return; + } + file.delete(); + if (DEBUG) { + Log.d(TAG, "upload successful"); + } + } catch (final IOException e) { + Log.e(TAG, "Exception uploading file", e); + } finally { + if (fileInputStream != null) { + try { + fileInputStream.close(); + } catch (final IOException e) { + Log.e(TAG, "Exception closing uploaded file", e); + } + } + if (connection != null) { + connection.disconnect(); + } + } + } + + private static void uploadContents(final InputStream is, final OutputStream os) + throws IOException { + // TODO: Switch to NIO. + final byte[] buf = new byte[BUF_SIZE]; + int numBytesRead; + while ((numBytesRead = is.read(buf)) != -1) { + os.write(buf, 0, numBytesRead); + } + } +} diff --git a/java/src/com/android/inputmethod/research/UploaderService.java b/java/src/com/android/inputmethod/research/UploaderService.java index 89c67fbb2..26b651056 100644 --- a/java/src/com/android/inputmethod/research/UploaderService.java +++ b/java/src/com/android/inputmethod/research/UploaderService.java @@ -16,189 +16,44 @@ package com.android.inputmethod.research; -import android.Manifest; import android.app.AlarmManager; import android.app.IntentService; -import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import android.os.BatteryManager; import android.os.Bundle; -import android.util.Log; -import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.define.ProductionFlag; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileFilter; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; - +/** + * Service to invoke the uploader. + * + * Can be regularly invoked, invoked on boot, etc. + */ public final class UploaderService extends IntentService { private static final String TAG = UploaderService.class.getSimpleName(); private static final boolean DEBUG = false && ProductionFlag.IS_EXPERIMENTAL_DEBUG; - // Set IS_INHIBITING_AUTO_UPLOAD to true for local testing - private static final boolean IS_INHIBITING_AUTO_UPLOAD = false - && ProductionFlag.IS_EXPERIMENTAL_DEBUG; // Force false in production public static final long RUN_INTERVAL = AlarmManager.INTERVAL_HOUR; public static final String EXTRA_UPLOAD_UNCONDITIONALLY = UploaderService.class.getName() + ".extra.UPLOAD_UNCONDITIONALLY"; - private static final int BUF_SIZE = 1024 * 8; protected static final int TIMEOUT_IN_MS = 1000 * 4; - private boolean mCanUpload; - private File mFilesDir; - private URL mUrl; - public UploaderService() { super("Research Uploader Service"); } @Override - public void onCreate() { - super.onCreate(); - - mCanUpload = false; - mFilesDir = null; - mUrl = null; - - final PackageManager packageManager = getPackageManager(); - final boolean hasPermission = packageManager.checkPermission(Manifest.permission.INTERNET, - getPackageName()) == PackageManager.PERMISSION_GRANTED; - if (!hasPermission) { - return; - } - - try { - final String urlString = getString(R.string.research_logger_upload_url); - if (urlString == null || urlString.equals("")) { - return; - } - mFilesDir = getFilesDir(); - mUrl = new URL(urlString); - mCanUpload = true; - } catch (MalformedURLException e) { - e.printStackTrace(); - } - } - - @Override - protected void onHandleIntent(Intent intent) { - if (!mCanUpload) { - return; - } - boolean isUploadingUnconditionally = false; - Bundle bundle = intent.getExtras(); - if (bundle != null && bundle.containsKey(EXTRA_UPLOAD_UNCONDITIONALLY)) { - isUploadingUnconditionally = bundle.getBoolean(EXTRA_UPLOAD_UNCONDITIONALLY); - } - doUpload(isUploadingUnconditionally); - } - - private boolean isExternallyPowered() { - final Intent intent = registerReceiver(null, new IntentFilter( - Intent.ACTION_BATTERY_CHANGED)); - final int pluggedState = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); - return pluggedState == BatteryManager.BATTERY_PLUGGED_AC - || pluggedState == BatteryManager.BATTERY_PLUGGED_USB; - } - - private boolean hasWifiConnection() { - final ConnectivityManager manager = - (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - final NetworkInfo wifiInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - return wifiInfo.isConnected(); - } - - private void doUpload(final boolean isUploadingUnconditionally) { - if (!isUploadingUnconditionally && (!isExternallyPowered() || !hasWifiConnection() - || IS_INHIBITING_AUTO_UPLOAD)) { - return; - } - if (mFilesDir == null) { - return; - } - final File[] files = mFilesDir.listFiles(new FileFilter() { - @Override - public boolean accept(File pathname) { - return pathname.getName().startsWith(ResearchLogger.LOG_FILENAME_PREFIX) - && !pathname.canWrite(); - } - }); - boolean success = true; - if (files.length == 0) { - success = false; - } - for (final File file : files) { - if (!uploadFile(file)) { - success = false; - } + protected void onHandleIntent(final Intent intent) { + final Uploader uploader = new Uploader(this); + if (!uploader.isPossibleToUpload()) return; + if (isUploadingUnconditionally(intent.getExtras()) || uploader.isConvenientToUpload()) { + uploader.doUpload(); } } - private boolean uploadFile(File file) { - if (DEBUG) { - Log.d(TAG, "attempting upload of " + file.getAbsolutePath()); - } - boolean success = false; - final int contentLength = (int) file.length(); - HttpURLConnection connection = null; - InputStream fileInputStream = null; - try { - fileInputStream = new FileInputStream(file); - connection = (HttpURLConnection) mUrl.openConnection(); - connection.setRequestMethod("PUT"); - connection.setDoOutput(true); - connection.setFixedLengthStreamingMode(contentLength); - final OutputStream os = connection.getOutputStream(); - final byte[] buf = new byte[BUF_SIZE]; - int numBytesRead; - while ((numBytesRead = fileInputStream.read(buf)) != -1) { - os.write(buf, 0, numBytesRead); - if (DEBUG) { - Log.d(TAG, new String(buf)); - } - } - if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { - Log.d(TAG, "upload failed: " + connection.getResponseCode()); - InputStream netInputStream = connection.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(netInputStream)); - String line; - while ((line = reader.readLine()) != null) { - Log.d(TAG, "| " + reader.readLine()); - } - reader.close(); - return success; - } - file.delete(); - success = true; - if (DEBUG) { - Log.d(TAG, "upload successful"); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (fileInputStream != null) { - try { - fileInputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - if (connection != null) { - connection.disconnect(); - } + private boolean isUploadingUnconditionally(final Bundle bundle) { + if (bundle == null) return false; + if (bundle.containsKey(EXTRA_UPLOAD_UNCONDITIONALLY)) { + return bundle.getBoolean(EXTRA_UPLOAD_UNCONDITIONALLY); } - return success; + return false; } } |