diff options
Diffstat (limited to 'java')
84 files changed, 2029 insertions, 686 deletions
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index 4daf46568..dc6fdf262 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -108,6 +108,17 @@ <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 d1fe341b9..1907dc962 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -108,6 +108,17 @@ <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 bca3c2aa3..1268f4395 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -108,6 +108,17 @@ <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 56382e42e..6fc28e573 100644 --- a/java/res/values-be/strings.xml +++ b/java/res/values-be/strings.xml @@ -108,6 +108,17 @@ <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 3ffebea48..76bd2d15b 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -108,6 +108,17 @@ <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> @@ -130,7 +141,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 26527381f..ed883334c 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -108,6 +108,17 @@ <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 7e12f06d8..b924dad60 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -108,6 +108,17 @@ <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 3ea4aaaef..58ee41b1f 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -108,6 +108,17 @@ <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 a50cdf0d0..ce620f0c3 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -108,6 +108,17 @@ <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 153dbbbf4..1294df031 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -108,6 +108,17 @@ <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 5fbbdf667..9e7d64f73 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -108,6 +108,17 @@ <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 71841f805..7585b28e6 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -108,6 +108,17 @@ <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 9b31884a2..42427fe5c 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -108,6 +108,17 @@ <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 3364abe5e..51eb47bcd 100644 --- a/java/res/values-et/strings.xml +++ b/java/res/values-et/strings.xml @@ -108,6 +108,17 @@ <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 54ba41256..8f71f1912 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -112,6 +112,17 @@ <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 2d754023c..9fe8f1b0b 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -108,6 +108,17 @@ <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 f327f90f9..8b2287415 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -108,6 +108,17 @@ <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 e52143dc6..77081bd99 100644 --- a/java/res/values-hi/strings.xml +++ b/java/res/values-hi/strings.xml @@ -108,6 +108,17 @@ <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 564d48f14..0710d307e 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -108,6 +108,17 @@ <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 047a31a6c..e9c7aa018 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -108,6 +108,17 @@ <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 ba9a7da4c..d5732545e 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -108,6 +108,17 @@ <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 56acdf8ce..0a62f8ad4 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -108,6 +108,17 @@ <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 7c55ab569..33d9fc57e 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -108,6 +108,17 @@ <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 9328f0184..25b37a4b4 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -108,6 +108,17 @@ <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 f6086eed5..3b0228a88 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -108,6 +108,17 @@ <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 a815003b2..9bfffbc52 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -108,6 +108,17 @@ <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 6a408cfce..5dcaa0100 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -108,6 +108,17 @@ <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 0d4ccf42d..4866fed8f 100644 --- a/java/res/values-ms/strings.xml +++ b/java/res/values-ms/strings.xml @@ -108,6 +108,17 @@ <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 f0b3a4623..32793ef8c 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -108,6 +108,17 @@ <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 dc3a9c3f4..4822617f4 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -108,11 +108,22 @@ <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">"Mic op hoofdtoetsb."</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"Microfoon op hoofdtoetsenbord"</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 de100bc86..7bb8b772f 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -108,6 +108,17 @@ <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 68a34574f..caa4019ba 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -108,6 +108,17 @@ <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 00ab88ced..ed8cdec38 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -108,6 +108,17 @@ <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 9eec7f883..5dad59fc2 100644 --- a/java/res/values-rm/strings.xml +++ b/java/res/values-rm/strings.xml @@ -187,6 +187,28 @@ <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 c5a80e397..5fbcbe5a3 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -108,6 +108,17 @@ <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 13a567808..c21bbf918 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -108,6 +108,17 @@ <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 0b28bf193..aad236ee2 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -108,6 +108,17 @@ <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 50f3869d4..a93bf0a41 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -108,6 +108,17 @@ <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 2d13db099..8450da15b 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -108,6 +108,17 @@ <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 608caad17..be278fa2d 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -108,6 +108,17 @@ <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 104a5d42e..1fc92fb3e 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -108,6 +108,17 @@ <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 1db5e91cd..84c4a0327 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -108,6 +108,17 @@ <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 adf0a1982..e2a59a43b 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -108,6 +108,17 @@ <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 fd80fea5b..c78d56b55 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -108,6 +108,17 @@ <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 2e2fdfcff..2b92d03ec 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -108,6 +108,17 @@ <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> @@ -130,7 +141,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 6721980cf..2dcfb1941 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -108,6 +108,17 @@ <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 ebb6b9161..3e4777639 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -108,6 +108,17 @@ <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 7d4ea72eb..ab6c66402 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -108,6 +108,17 @@ <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 29ed595b7..677588b4f 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -108,6 +108,17 @@ <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/res/values/strings.xml b/java/res/values/strings.xml index 68fa8fd37..e89174b02 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -223,6 +223,29 @@ <!-- Spoken feedback after changing to the shifted phone dialer (symbols) keyboard. --> <string name="spoken_description_mode_phone_shift">Phone symbols mode</string> + <!-- Spoken feedback when the keyboard is hidden. --> + <string name="announce_keyboard_hidden">Keyboard hidden</string> + <!-- Spoken feedback when the keyboard mode changes. --> + <string name="announce_keyboard_mode">Showing <xliff:g id="mode" example="email">%s</xliff:g> keyboard</string> + <!-- Description of the keyboard mode for entering dates. --> + <string name="keyboard_mode_date">date</string> + <!-- Description of the keyboard mode for entering dates and times. --> + <string name="keyboard_mode_date_time">date and time</string> + <!-- Description of the keyboard mode for entering email addresses. --> + <string name="keyboard_mode_email">email</string> + <!-- Description of the keyboard mode for entering text messages. --> + <string name="keyboard_mode_im">messaging</string> + <!-- Description of the keyboard mode for entering numbers. --> + <string name="keyboard_mode_number">number</string> + <!-- Description of the keyboard mode for entering phone numbers. --> + <string name="keyboard_mode_phone">phone</string> + <!-- Description of the keyboard mode for entering generic text. --> + <string name="keyboard_mode_text">text</string> + <!-- Description of the keyboard mode for entering times. --> + <string name="keyboard_mode_time">time</string> + <!-- Description of the keyboard mode for entering URLs. --> + <string name="keyboard_mode_url">URL</string> + <!-- Preferences item for enabling speech input --> <string name="voice_input">Voice input key</string> diff --git a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml index a0e5cbb92..0e3013afe 100644 --- a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml +++ b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml @@ -28,19 +28,9 @@ <Key latin:keyLabel=";" latin:moreKeys=":" /> - <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - moreKeys="!fixedColumnOrder!4,“,”,„,‟,‘,’,‚,‛" --> <Key latin:keyLabel="\'" - latin:moreKeys="!fixedColumnOrder!4,“,”,‘,’,‚,‛,"" /> + latin:moreKeys="!fixedColumnOrder!3,!text/double_quotes,!text/single_quotes" /> </case> <default> <Key @@ -48,20 +38,10 @@ latin:keyHintLabel=":" latin:moreKeys=":" latin:keyStyle="hasShiftedLetterHintStyle" /> - <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - moreKeys="!fixedColumnOrder!4,“,”,„,‟,‘,’,‚,‛" --> <Key latin:keyLabel="\'" latin:keyHintLabel=""" - latin:moreKeys="!fixedColumnOrder!4,“,”,‘,’,‚,‛,"" + latin:moreKeys="!fixedColumnOrder!4,!text/double_quotes,",!text/single_quotes" latin:keyStyle="hasShiftedLetterHintStyle" /> </default> </switch> diff --git a/java/res/xml-v16/key_hindi1_shift.xml b/java/res/xml-v16/key_hindi1_shift.xml new file mode 100644 index 000000000..19b964367 --- /dev/null +++ b/java/res/xml-v16/key_hindi1_shift.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA --> + <Key + latin:keyLabel="ः" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/key_hindi3_right.xml b/java/res/xml-v16/key_hindi3_right.xml new file mode 100644 index 000000000..232810f98 --- /dev/null +++ b/java/res/xml-v16/key_hindi3_right.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+093C: "़" DEVANAGARI SIGN NUKTA + U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP + U+0970: "॰" DEVANAGARI ABBREVIATION SIGN + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <Key + latin:keyLabel="़" + latin:moreKeys="ॽ,॰,ऽ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/key_hindi3_shift_left.xml b/java/res/xml-v16/key_hindi3_shift_left.xml new file mode 100644 index 000000000..1eb1768a1 --- /dev/null +++ b/java/res/xml-v16/key_hindi3_shift_left.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU + U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E --> + <Key + latin:keyLabel="ँ" + latin:moreKeys="ॅ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/key_hindi3_shift_right.xml b/java/res/xml-v16/key_hindi3_shift_right.xml new file mode 100644 index 000000000..0f26cb55c --- /dev/null +++ b/java/res/xml-v16/key_hindi3_shift_right.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R + U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> + <Key + latin:keyLabel="ृ" + latin:moreKeys="ॄ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keys_hindi1_left5.xml b/java/res/xml-v16/keys_hindi1_left5.xml new file mode 100644 index 000000000..e3ad299ff --- /dev/null +++ b/java/res/xml-v16/keys_hindi1_left5.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU + U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA + U+0967: "१" DEVANAGARI DIGIT ONE --> + <Key + latin:keyLabel="ौ" + latin:moreKeys="ौं,%" + latin:keyHintLabel="1" + latin:additionalMoreKeys="१,1" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI + U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA + U+0968: "२" DEVANAGARI DIGIT TWO --> + <Key + latin:keyLabel="ै" + latin:moreKeys="ैं,%" + latin:keyHintLabel="2" + latin:additionalMoreKeys="२,2" + latin:keyLabelFlags="fontNormal" /> + <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA + U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA + U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU + U+0969: "३" DEVANAGARI DIGIT THREE --> + <Key + latin:keyLabel="ा" + latin:moreKeys="ां,ाँ,%" + latin:keyHintLabel="3" + latin:additionalMoreKeys="३,3" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II + U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA + U+096A: "४" DEVANAGARI DIGIT FOUR --> + <Key + latin:keyLabel="ी" + latin:moreKeys="ीं,%" + latin:keyHintLabel="4" + latin:additionalMoreKeys="४,4" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU + U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA + U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU + U+096B: "५" DEVANAGARI DIGIT FIVE --> + <Key + latin:keyLabel="ू" + latin:moreKeys="ूं,ूँ,%" + latin:keyHintLabel="5" + latin:additionalMoreKeys="५,5" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keys_hindi2_left5.xml b/java/res/xml-v16/keys_hindi2_left5.xml new file mode 100644 index 000000000..05c4f57e9 --- /dev/null +++ b/java/res/xml-v16/keys_hindi2_left5.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O + U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA + U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O + U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> + <Key + latin:keyLabel="ो" + latin:moreKeys="ों,ॉ,ॊ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E + U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> + <Key + latin:keyLabel="े" + latin:moreKeys="ें" + latin:keyLabelFlags="fontNormal" /> + <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA --> + <Key + latin:keyLabel="्" + latin:keyLabelFlags="fontNormal" /> + <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I + U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> + <Key + latin:keyLabel="ि" + latin:moreKeys="िं" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U + U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA + U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> + <Key + latin:keyLabel="ु" + latin:moreKeys="ुं,ुँ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keys_hindi3_left2.xml b/java/res/xml-v16/keys_hindi3_left2.xml new file mode 100644 index 000000000..9474c1763 --- /dev/null +++ b/java/res/xml-v16/keys_hindi3_left2.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O --> + <Key + latin:keyLabel="ॉ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> + <Key + latin:keyLabel="ं" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml/key_hindi1_shift.xml b/java/res/xml/key_hindi1_shift.xml new file mode 100644 index 000000000..0db5ae9af --- /dev/null +++ b/java/res/xml/key_hindi1_shift.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0903: "ः" DEVANAGARI SIGN VISARGA --> + <Key + latin:keyLabel="◌ः" + latin:code="0x0903" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/key_hindi3_right.xml b/java/res/xml/key_hindi3_right.xml new file mode 100644 index 000000000..5a97355f6 --- /dev/null +++ b/java/res/xml/key_hindi3_right.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093C: "़" DEVANAGARI SIGN NUKTA + U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP + U+0970: "॰" DEVANAGARI ABBREVIATION SIGN + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <Key + latin:keyLabel="◌़" + latin:code="0x093C" + latin:moreKeys="◌ॽ|ॽ,◌॰|॰,◌ऽ|ऽ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/key_hindi3_shift_left.xml b/java/res/xml/key_hindi3_shift_left.xml new file mode 100644 index 000000000..c5e2f1386 --- /dev/null +++ b/java/res/xml/key_hindi3_shift_left.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU + U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E --> + <Key + latin:keyLabel="◌ँ" + latin:code="0x0901" + latin:moreKeys="◌ॅ|ॅ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/key_hindi3_shift_right.xml b/java/res/xml/key_hindi3_shift_right.xml new file mode 100644 index 000000000..0da116ab8 --- /dev/null +++ b/java/res/xml/key_hindi3_shift_right.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R + U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> + <Key + latin:keyLabel="◌ृ" + latin:code="0x0943" + latin:moreKeys="◌ॄ|ॄ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keys_hindi1_left5.xml b/java/res/xml/keys_hindi1_left5.xml new file mode 100644 index 000000000..8757afeaf --- /dev/null +++ b/java/res/xml/keys_hindi1_left5.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+094C: "ौ" DEVANAGARI VOWEL SIGN AU + U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA + U+0967: "१" DEVANAGARI DIGIT ONE --> + <Key + latin:keyLabel="◌ौ" + latin:code="0x094C" + latin:moreKeys="◌ौं|ौं,%" + latin:keyHintLabel="1" + latin:additionalMoreKeys="१,1" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0948: "ै" DEVANAGARI VOWEL SIGN AI + U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA + U+0968: "२" DEVANAGARI DIGIT TWO --> + <Key + latin:keyLabel="◌ै" + latin:code="0x0948" + latin:moreKeys="◌ैं|ैं,%" + latin:keyHintLabel="2" + latin:additionalMoreKeys="२,2" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093E: "ा" DEVANAGARI VOWEL SIGN AA + U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA + U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU + U+0969: "३" DEVANAGARI DIGIT THREE --> + <Key + latin:keyLabel="◌ा" + latin:code="0x093E" + latin:moreKeys="◌ां|ां,◌ाँ|ाँ,%" + latin:keyHintLabel="3" + latin:additionalMoreKeys="३,3" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0940: "ी" DEVANAGARI VOWEL SIGN II + U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA + U+096A: "४" DEVANAGARI DIGIT FOUR --> + <Key + latin:keyLabel="◌ी" + latin:code="0x0940" + latin:moreKeys="◌ीं|ीं,%" + latin:keyHintLabel="4" + latin:additionalMoreKeys="४,4" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0942: "ू" DEVANAGARI VOWEL SIGN UU + U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA + U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU + U+096B: "५" DEVANAGARI DIGIT FIVE --> + <Key + latin:keyLabel="◌ू" + latin:code="0x0942" + latin:moreKeys="◌ूं|ूं,◌ूँ|ूँ,%" + latin:keyHintLabel="5" + latin:additionalMoreKeys="५,5" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keys_hindi2_left5.xml b/java/res/xml/keys_hindi2_left5.xml new file mode 100644 index 000000000..4c3a5e051 --- /dev/null +++ b/java/res/xml/keys_hindi2_left5.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+094B: "ो" DEVANAGARI VOWEL SIGN O + U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA + U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O + U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> + <Key + latin:keyLabel="◌ो" + latin:code="0x094B" + latin:moreKeys="◌ों|ों,◌ॉ,ॊ|ॉ,ॊ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0947: "े" DEVANAGARI VOWEL SIGN E + U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> + <Key + latin:keyLabel="◌े" + latin:code="0x0947" + latin:moreKeys="◌ें|ें" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+094D: "्" DEVANAGARI SIGN VIRAMA --> + <Key + latin:keyLabel="◌्" + latin:code="0x094D" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093F: "ि" DEVANAGARI VOWEL SIGN I + U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> + <Key + latin:keyLabel="ि◌" + latin:code="0x093F" + latin:moreKeys="ि◌ं|िं" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0941: "ु" DEVANAGARI VOWEL SIGN U + U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA + U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> + <Key + latin:keyLabel="◌ु" + latin:code="0x0941" + latin:moreKeys="◌ुं|ुं,◌ुँ|ुँ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keys_hindi3_left2.xml b/java/res/xml/keys_hindi3_left2.xml new file mode 100644 index 000000000..4f1ad16ef --- /dev/null +++ b/java/res/xml/keys_hindi3_left2.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O --> + <Key + latin:keyLabel="◌ॉ" + latin:code="0x0949" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> + <Key + latin:keyLabel="◌ं" + latin:code="0x0902" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keys_pcqwerty3_right2.xml b/java/res/xml/keys_pcqwerty3_right2.xml index fd9d3b8b0..aa150afb3 100644 --- a/java/res/xml/keys_pcqwerty3_right2.xml +++ b/java/res/xml/keys_pcqwerty3_right2.xml @@ -30,25 +30,15 @@ latin:moreKeys=":" /> <Key latin:keyLabel="\'" - latin:moreKeys=""" /> + latin:moreKeys="!fixedColumnOrder!4,!text/double_quotes,",!text/single_quotes" /> </case> <!-- keyboardLayoutSetElement="alphabet*Shifted|symbols*" --> <default> <Key latin:keyLabel=":" /> - <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK - U+2019: "’" RIGHT SINGLE QUOTATION MARK - U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - U+201C: "“" LEFT DOUBLE QUOTATION MARK - U+201D: "”" RIGHT DOUBLE QUOTATION MARK - U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - moreKeys="!fixedColumnOrder!4,“,”,„,‟,‘,’,‚,‛" --> <Key latin:keyLabel=""" - latin:moreKeys="!fixedColumnOrder!4,“,”,‘,’,‚,‛" /> + latin:moreKeys="!fixedColumnOrder!3,!text/double_quotes,!text/single_quotes" /> </default> </switch> </merge> diff --git a/java/res/xml/row_symbols_shift4.xml b/java/res/xml/row_symbols_shift4.xml index 1bfb5ecd1..99a685c45 100644 --- a/java/res/xml/row_symbols_shift4.xml +++ b/java/res/xml/row_symbols_shift4.xml @@ -27,13 +27,11 @@ <Key latin:keyStyle="toAlphaKeyStyle" latin:keyWidth="15%p" /> - <!-- U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> - <!-- latin:keyLabelFlags="hasPopupHint" --> - <!-- latin:moreKeys="‟" --> - <!-- U+201E: "„" DOUBLE LOW-9 QUOTATION MARK --> + <!-- U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + U+201E: "„" DOUBLE LOW-9 QUOTATION MARK --> <Key latin:keyLabel="„" + latin:moreKeys="‚" latin:backgroundType="functional" /> <include latin:keyXPos="25%p" diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml index 11208045c..a761a6c69 100644 --- a/java/res/xml/rowkeys_hindi1.xml +++ b/java/res/xml/rowkeys_hindi1.xml @@ -61,10 +61,11 @@ <Key latin:keyLabel="भ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA --> - <Key - latin:keyLabel="ः" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_hindi1_shift" /> <!-- U+0918: "घ" DEVANAGARI LETTER GHA --> <Key latin:keyLabel="घ" @@ -86,53 +87,11 @@ latin:keyLabelFlags="fontNormal" /> </case> <default> - <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU - U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA - U+0967: "१" DEVANAGARI DIGIT ONE --> - <Key - latin:keyLabel="ौ" - latin:moreKeys="ौं,%" - latin:keyHintLabel="1" - latin:additionalMoreKeys="१,1" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI - U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA - U+0968: "२" DEVANAGARI DIGIT TWO --> - <Key - latin:keyLabel="ै" - latin:moreKeys="ैं,%" - latin:keyHintLabel="2" - latin:additionalMoreKeys="२,2" - latin:keyLabelFlags="fontNormal" /> - <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA - U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA - U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU - U+0969: "३" DEVANAGARI DIGIT THREE --> - <Key - latin:keyLabel="ा" - latin:moreKeys="ां,ाँ,%" - latin:keyHintLabel="3" - latin:additionalMoreKeys="३,3" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II - U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA - U+096A: "४" DEVANAGARI DIGIT FOUR --> - <Key - latin:keyLabel="ी" - latin:moreKeys="ीं,%" - latin:keyHintLabel="4" - latin:additionalMoreKeys="४,4" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU - U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA - U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU - U+096B: "५" DEVANAGARI DIGIT FIVE --> - <Key - latin:keyLabel="ू" - latin:moreKeys="ूं,ूँ,%" - latin:keyHintLabel="5" - latin:additionalMoreKeys="५,5" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keys_hindi1_left5" /> <!-- U+092C: "ब" DEVANAGARI LETTER BA U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA --> <Key diff --git a/java/res/xml/rowkeys_hindi2.xml b/java/res/xml/rowkeys_hindi2.xml index e7c67dbe7..9545b840f 100644 --- a/java/res/xml/rowkeys_hindi2.xml +++ b/java/res/xml/rowkeys_hindi2.xml @@ -96,37 +96,11 @@ latin:keyLabelFlags="fontNormal" /> </case> <default> - <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O - U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA - U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O - U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> - <Key - latin:keyLabel="ो" - latin:moreKeys="ों,ॉ,ॊ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E - U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="े" - latin:moreKeys="ें" - latin:keyLabelFlags="fontNormal" /> - <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA --> - <Key - latin:keyLabel="्" - latin:keyLabelFlags="fontNormal" /> - <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I - U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="ि" - latin:moreKeys="िं" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U - U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA - U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> - <Key - latin:keyLabel="ु" - latin:moreKeys="ुं,ुँ" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keys_hindi2_left5" /> <!-- U+092A: "प" DEVANAGARI LETTER PA --> <Key latin:keyLabel="प" diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml index ebbff3e33..3014907ed 100644 --- a/java/res/xml/rowkeys_hindi3.xml +++ b/java/res/xml/rowkeys_hindi3.xml @@ -29,12 +29,11 @@ <Key latin:keyLabel="ऑ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU - U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E--> - <Key - latin:keyLabel="ँ" - latin:moreKeys="ॅ" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_hindi3_shift_left" /> <!-- U+0923: "ण" DEVANAGARI LETTER NNA --> <Key latin:keyLabel="ण" @@ -56,26 +55,22 @@ <Key latin:keyLabel="ष" latin:keyLabelFlags="fontNormal" /> - <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R - U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> - <Key - latin:keyLabel="ृ" - latin:moreKeys="ॄ" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_hindi3_shift_right" /> <!-- U+091E: "ञ" DEVANAGARI LETTER NYA --> <Key latin:keyLabel="ञ" latin:keyLabelFlags="fontNormal" /> </case> <default> - <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O --> - <Key - latin:keyLabel="ॉ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="ं" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keys_hindi3_left2" /> <!-- U+092E: "म" DEVANAGARI LETTER MA U+0950: "ॐ" DEVANAGARI OM --> <Key @@ -111,14 +106,11 @@ latin:keyLabel="य" latin:moreKeys="य़" latin:keyLabelFlags="fontNormal" /> - <!-- U+093C: "़" DEVANAGARI SIGN NUKTA - U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP - U+0970: "॰" DEVANAGARI ABBREVIATION SIGN - U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> - <Key - latin:keyLabel="़" - latin:moreKeys="ॽ,॰,ऽ" - latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of Hindi, different set of + Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_hindi3_right" /> </default> </switch> </merge> diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java index bf1cea9c3..ee52de1d1 100644 --- a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java +++ b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java @@ -80,16 +80,24 @@ public final class AccessibilityUtils { } /** + * Returns {@code true} if accessibility is enabled. Currently, this means + * that the kill switch is off and system accessibility is turned on. + * + * @return {@code true} if accessibility is enabled. + */ + public boolean isAccessibilityEnabled() { + return ENABLE_ACCESSIBILITY && mAccessibilityManager.isEnabled(); + } + + /** * Returns {@code true} if touch exploration is enabled. Currently, this * means that the kill switch is off, the device supports touch exploration, - * and a spoken feedback service is turned on. + * and system accessibility is turned on. * * @return {@code true} if touch exploration is enabled. */ public boolean isTouchExplorationEnabled() { - return ENABLE_ACCESSIBILITY - && mAccessibilityManager.isEnabled() - && mAccessibilityManager.isTouchExplorationEnabled(); + return isAccessibilityEnabled() && mAccessibilityManager.isTouchExplorationEnabled(); } /** @@ -113,6 +121,7 @@ public final class AccessibilityUtils { * * @return {@code true} if the device should obscure password characters. */ + @SuppressWarnings("deprecation") public boolean shouldObscureInput(final EditorInfo editorInfo) { if (editorInfo == null) return false; diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java index d05fd9eb5..e6b44120f 100644 --- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java +++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java @@ -22,8 +22,11 @@ import android.support.v4.view.AccessibilityDelegateCompat; import android.support.v4.view.ViewCompat; import android.support.v4.view.accessibility.AccessibilityEventCompat; import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; +import android.util.SparseIntArray; import android.view.MotionEvent; import android.view.View; +import android.view.ViewParent; +import android.view.accessibility.AccessibilityEvent; import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Keyboard; @@ -35,6 +38,21 @@ import com.android.inputmethod.latin.R; public final class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat { private static final AccessibleKeyboardViewProxy sInstance = new AccessibleKeyboardViewProxy(); + /** Map of keyboard modes to resource IDs. */ + private static final SparseIntArray KEYBOARD_MODE_RES_IDS = new SparseIntArray(); + + static { + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_DATE, R.string.keyboard_mode_date); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_DATETIME, R.string.keyboard_mode_date_time); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_EMAIL, R.string.keyboard_mode_email); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_IM, R.string.keyboard_mode_im); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_NUMBER, R.string.keyboard_mode_number); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_PHONE, R.string.keyboard_mode_phone); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_TEXT, R.string.keyboard_mode_text); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_TIME, R.string.keyboard_mode_time); + KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_URL, R.string.keyboard_mode_url); + } + private InputMethodService mInputMethod; private MainKeyboardView mView; private AccessibilityEntityProvider mAccessibilityNodeProvider; @@ -85,11 +103,75 @@ public final class AccessibleKeyboardViewProxy extends AccessibilityDelegateComp mAccessibilityNodeProvider.setView(view); } + /** + * Called when the keyboard layout changes. + * <p> + * <b>Note:</b> This method will be called even if accessibility is not + * enabled. + */ public void setKeyboard() { - if (mAccessibilityNodeProvider == null) { + if (mAccessibilityNodeProvider != null) { + mAccessibilityNodeProvider.setKeyboard(); + } + + // Since this method is called even when accessibility is off, make sure + // to check the state before announcing anything. + if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) { + announceKeyboardMode(); + } + } + + /** + * Called when the keyboard is hidden and accessibility is enabled. + */ + public void onHideWindow() { + announceKeyboardHidden(); + } + + /** + * Announces which type of keyboard is being displayed. If the keyboard type + * is unknown, no announcement is made. + */ + private void announceKeyboardMode() { + final Keyboard keyboard = mView.getKeyboard(); + final int resId = KEYBOARD_MODE_RES_IDS.get(keyboard.mId.mMode); + if (resId == 0) { return; } - mAccessibilityNodeProvider.setKeyboard(); + + final Context context = mView.getContext(); + final String keyboardMode = context.getString(resId); + final String text = context.getString(R.string.announce_keyboard_mode, keyboardMode); + + sendWindowStateChanged(text); + } + + /** + * Announces that the keyboard has been hidden. + */ + private void announceKeyboardHidden() { + final Context context = mView.getContext(); + final String text = context.getString(R.string.announce_keyboard_hidden); + + sendWindowStateChanged(text); + } + + /** + * Sends a window state change event with the specified text. + * + * @param text + */ + private void sendWindowStateChanged(final String text) { + final AccessibilityEvent stateChange = AccessibilityEvent.obtain( + AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); + mView.onInitializeAccessibilityEvent(stateChange); + stateChange.getText().add(text); + stateChange.setContentDescription(null); + + final ViewParent parent = mView.getParent(); + if (parent != null) { + parent.requestSendAccessibilityEvent(mView, stateChange); + } } /** diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 1e5af5154..d160038ad 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -519,11 +519,11 @@ public class Key implements Comparable<Key> { // TODO: Handle "bold" here too? if ((mLabelFlags & LABEL_FLAGS_FONT_NORMAL) != 0) { return Typeface.DEFAULT; - } else if ((mLabelFlags & LABEL_FLAGS_FONT_MONO_SPACE) != 0) { + } + if ((mLabelFlags & LABEL_FLAGS_FONT_MONO_SPACE) != 0) { return Typeface.MONOSPACE; - } else { - return params.mTypeface; } + return params.mTypeface; } public final int selectTextSize(final KeyDrawParams params) { @@ -550,28 +550,51 @@ public class Key implements Comparable<Key> { public final int selectHintTextSize(final KeyDrawParams params) { if (hasHintLabel()) { return params.mHintLabelSize; - } else if (hasShiftedLetterHint()) { + } + if (hasShiftedLetterHint()) { return params.mShiftedLetterHintSize; - } else { - return params.mHintLetterSize; } + return params.mHintLetterSize; } public final int selectHintTextColor(final KeyDrawParams params) { if (hasHintLabel()) { return params.mHintLabelColor; - } else if (hasShiftedLetterHint()) { + } + if (hasShiftedLetterHint()) { return isShiftedLetterActivated() ? params.mShiftedLetterHintActivatedColor : params.mShiftedLetterHintInactivatedColor; - } else { - return params.mHintLetterColor; } + return params.mHintLetterColor; } public final int selectMoreKeyTextSize(final KeyDrawParams params) { return hasLabelsInMoreKeys() ? params.mLabelSize : params.mLetterSize; } + public final String getPreviewLabel() { + return isShiftedLetterActivated() ? mHintLabel : mLabel; + } + + private boolean previewHasLetterSize() { + return (mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO) != 0 + || StringUtils.codePointCount(getPreviewLabel()) == 1; + } + + public final int selectPreviewTextSize(final KeyDrawParams params) { + if (previewHasLetterSize()) { + return params.mPreviewTextSize; + } + return params.mLetterSize; + } + + public Typeface selectPreviewTypeface(final KeyDrawParams params) { + if (previewHasLetterSize()) { + return selectTypeface(params); + } + return Typeface.DEFAULT_BOLD; + } + public final boolean isAlignLeft() { return (mLabelFlags & LABEL_FLAGS_ALIGN_LEFT) != 0; } diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java index bc27f8553..d37b69b00 100644 --- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java @@ -811,18 +811,14 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack background.setState(KEY_PREVIEW_BACKGROUND_DEFAULT_STATE); background.setAlpha(PREVIEW_ALPHA); } - final String label = key.isShiftedLetterActivated() ? key.mHintLabel : key.mLabel; + final String label = key.getPreviewLabel(); // What we show as preview should match what we show on a key top in onDraw(). if (label != null) { // TODO Should take care of temporaryShiftLabel here. previewText.setCompoundDrawables(null, null, null, null); - if (StringUtils.codePointCount(label) > 1) { - previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, drawParams.mLetterSize); - previewText.setTypeface(Typeface.DEFAULT_BOLD); - } else { - previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, drawParams.mPreviewTextSize); - previewText.setTypeface(key.selectTypeface(drawParams)); - } + previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, + key.selectPreviewTextSize(drawParams)); + previewText.setTypeface(key.selectPreviewTypeface(drawParams)); previewText.setText(label); } else { previewText.setCompoundDrawables(null, null, null, diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java index 493093e95..d0b382e35 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java @@ -145,94 +145,110 @@ public final class KeyboardTextsSet { /* 40 */ "more_keys_for_cyrillic_ie", /* 41 */ "more_keys_for_cyrillic_i", /* 42 */ "label_to_alpha_key", - /* 43 */ "more_keys_for_single_quote", - /* 44 */ "more_keys_for_double_quote", - /* 45 */ "more_keys_for_tablet_double_quote", - /* 46 */ "more_keys_for_currency_dollar", - /* 47 */ "keylabel_for_currency_generic", - /* 48 */ "more_keys_for_currency_generic", - /* 49 */ "more_keys_for_punctuation", - /* 50 */ "more_keys_for_star", - /* 51 */ "more_keys_for_bullet", - /* 52 */ "more_keys_for_plus", - /* 53 */ "more_keys_for_left_parenthesis", - /* 54 */ "more_keys_for_right_parenthesis", - /* 55 */ "more_keys_for_less_than", - /* 56 */ "more_keys_for_greater_than", - /* 57 */ "more_keys_for_arabic_diacritics", - /* 58 */ "keyhintlabel_for_arabic_diacritics", - /* 59 */ "keylabel_for_symbols_1", - /* 60 */ "keylabel_for_symbols_2", - /* 61 */ "keylabel_for_symbols_3", - /* 62 */ "keylabel_for_symbols_4", - /* 63 */ "keylabel_for_symbols_5", - /* 64 */ "keylabel_for_symbols_6", - /* 65 */ "keylabel_for_symbols_7", - /* 66 */ "keylabel_for_symbols_8", - /* 67 */ "keylabel_for_symbols_9", - /* 68 */ "keylabel_for_symbols_0", - /* 69 */ "label_to_symbol_key", - /* 70 */ "label_to_symbol_with_microphone_key", - /* 71 */ "additional_more_keys_for_symbols_1", - /* 72 */ "additional_more_keys_for_symbols_2", - /* 73 */ "additional_more_keys_for_symbols_3", - /* 74 */ "additional_more_keys_for_symbols_4", - /* 75 */ "additional_more_keys_for_symbols_5", - /* 76 */ "additional_more_keys_for_symbols_6", - /* 77 */ "additional_more_keys_for_symbols_7", - /* 78 */ "additional_more_keys_for_symbols_8", - /* 79 */ "additional_more_keys_for_symbols_9", - /* 80 */ "additional_more_keys_for_symbols_0", - /* 81 */ "more_keys_for_symbols_1", - /* 82 */ "more_keys_for_symbols_2", - /* 83 */ "more_keys_for_symbols_3", - /* 84 */ "more_keys_for_symbols_4", - /* 85 */ "more_keys_for_symbols_5", - /* 86 */ "more_keys_for_symbols_6", - /* 87 */ "more_keys_for_symbols_7", - /* 88 */ "more_keys_for_symbols_8", - /* 89 */ "more_keys_for_symbols_9", - /* 90 */ "more_keys_for_symbols_0", - /* 91 */ "keylabel_for_comma", - /* 92 */ "more_keys_for_comma", - /* 93 */ "keylabel_for_symbols_question", - /* 94 */ "keylabel_for_symbols_semicolon", - /* 95 */ "keylabel_for_symbols_percent", - /* 96 */ "more_keys_for_symbols_exclamation", - /* 97 */ "more_keys_for_symbols_question", - /* 98 */ "more_keys_for_symbols_semicolon", - /* 99 */ "more_keys_for_symbols_percent", - /* 100 */ "keylabel_for_tablet_comma", - /* 101 */ "keyhintlabel_for_tablet_comma", - /* 102 */ "more_keys_for_tablet_comma", - /* 103 */ "keyhintlabel_for_tablet_period", - /* 104 */ "more_keys_for_tablet_period", - /* 105 */ "keylabel_for_apostrophe", - /* 106 */ "keyhintlabel_for_apostrophe", - /* 107 */ "more_keys_for_apostrophe", - /* 108 */ "more_keys_for_q", - /* 109 */ "more_keys_for_x", - /* 110 */ "keylabel_for_q", - /* 111 */ "keylabel_for_w", - /* 112 */ "keylabel_for_y", - /* 113 */ "keylabel_for_x", - /* 114 */ "keylabel_for_spanish_row2_10", - /* 115 */ "more_keys_for_am_pm", - /* 116 */ "settings_as_more_key", - /* 117 */ "shortcut_as_more_key", - /* 118 */ "action_next_as_more_key", - /* 119 */ "action_previous_as_more_key", - /* 120 */ "label_to_more_symbol_key", - /* 121 */ "label_to_more_symbol_for_tablet_key", - /* 122 */ "label_tab_key", - /* 123 */ "label_to_phone_numeric_key", - /* 124 */ "label_to_phone_symbols_key", - /* 125 */ "label_time_am", - /* 126 */ "label_time_pm", - /* 127 */ "label_to_symbol_key_pcqwerty", - /* 128 */ "keylabel_for_popular_domain", - /* 129 */ "more_keys_for_popular_domain", - /* 130 */ "more_keys_for_smiley", + /* 43 */ "single_quotes", + /* 44 */ "double_quotes", + /* 45 */ "single_angle_quotes", + /* 46 */ "double_angle_quotes", + /* 47 */ "more_keys_for_currency_dollar", + /* 48 */ "keylabel_for_currency_generic", + /* 49 */ "more_keys_for_currency_generic", + /* 50 */ "more_keys_for_punctuation", + /* 51 */ "more_keys_for_star", + /* 52 */ "more_keys_for_bullet", + /* 53 */ "more_keys_for_plus", + /* 54 */ "more_keys_for_left_parenthesis", + /* 55 */ "more_keys_for_right_parenthesis", + /* 56 */ "more_keys_for_less_than", + /* 57 */ "more_keys_for_greater_than", + /* 58 */ "more_keys_for_arabic_diacritics", + /* 59 */ "keyhintlabel_for_arabic_diacritics", + /* 60 */ "keylabel_for_symbols_1", + /* 61 */ "keylabel_for_symbols_2", + /* 62 */ "keylabel_for_symbols_3", + /* 63 */ "keylabel_for_symbols_4", + /* 64 */ "keylabel_for_symbols_5", + /* 65 */ "keylabel_for_symbols_6", + /* 66 */ "keylabel_for_symbols_7", + /* 67 */ "keylabel_for_symbols_8", + /* 68 */ "keylabel_for_symbols_9", + /* 69 */ "keylabel_for_symbols_0", + /* 70 */ "label_to_symbol_key", + /* 71 */ "label_to_symbol_with_microphone_key", + /* 72 */ "additional_more_keys_for_symbols_1", + /* 73 */ "additional_more_keys_for_symbols_2", + /* 74 */ "additional_more_keys_for_symbols_3", + /* 75 */ "additional_more_keys_for_symbols_4", + /* 76 */ "additional_more_keys_for_symbols_5", + /* 77 */ "additional_more_keys_for_symbols_6", + /* 78 */ "additional_more_keys_for_symbols_7", + /* 79 */ "additional_more_keys_for_symbols_8", + /* 80 */ "additional_more_keys_for_symbols_9", + /* 81 */ "additional_more_keys_for_symbols_0", + /* 82 */ "more_keys_for_symbols_1", + /* 83 */ "more_keys_for_symbols_2", + /* 84 */ "more_keys_for_symbols_3", + /* 85 */ "more_keys_for_symbols_4", + /* 86 */ "more_keys_for_symbols_5", + /* 87 */ "more_keys_for_symbols_6", + /* 88 */ "more_keys_for_symbols_7", + /* 89 */ "more_keys_for_symbols_8", + /* 90 */ "more_keys_for_symbols_9", + /* 91 */ "more_keys_for_symbols_0", + /* 92 */ "keylabel_for_comma", + /* 93 */ "more_keys_for_comma", + /* 94 */ "keylabel_for_symbols_question", + /* 95 */ "keylabel_for_symbols_semicolon", + /* 96 */ "keylabel_for_symbols_percent", + /* 97 */ "more_keys_for_symbols_exclamation", + /* 98 */ "more_keys_for_symbols_question", + /* 99 */ "more_keys_for_symbols_semicolon", + /* 100 */ "more_keys_for_symbols_percent", + /* 101 */ "keylabel_for_tablet_comma", + /* 102 */ "keyhintlabel_for_tablet_comma", + /* 103 */ "more_keys_for_tablet_comma", + /* 104 */ "keyhintlabel_for_tablet_period", + /* 105 */ "more_keys_for_tablet_period", + /* 106 */ "keylabel_for_apostrophe", + /* 107 */ "keyhintlabel_for_apostrophe", + /* 108 */ "more_keys_for_apostrophe", + /* 109 */ "more_keys_for_q", + /* 110 */ "more_keys_for_x", + /* 111 */ "keylabel_for_q", + /* 112 */ "keylabel_for_w", + /* 113 */ "keylabel_for_y", + /* 114 */ "keylabel_for_x", + /* 115 */ "keylabel_for_spanish_row2_10", + /* 116 */ "more_keys_for_am_pm", + /* 117 */ "settings_as_more_key", + /* 118 */ "shortcut_as_more_key", + /* 119 */ "action_next_as_more_key", + /* 120 */ "action_previous_as_more_key", + /* 121 */ "label_to_more_symbol_key", + /* 122 */ "label_to_more_symbol_for_tablet_key", + /* 123 */ "label_tab_key", + /* 124 */ "label_to_phone_numeric_key", + /* 125 */ "label_to_phone_symbols_key", + /* 126 */ "label_time_am", + /* 127 */ "label_time_pm", + /* 128 */ "label_to_symbol_key_pcqwerty", + /* 129 */ "keylabel_for_popular_domain", + /* 130 */ "more_keys_for_popular_domain", + /* 131 */ "more_keys_for_smiley", + /* 132 */ "single_laqm_raqm", + /* 133 */ "single_laqm_raqm_rtl", + /* 134 */ "single_raqm_laqm", + /* 135 */ "double_laqm_raqm", + /* 136 */ "double_laqm_raqm_rtl", + /* 137 */ "double_raqm_laqm", + /* 138 */ "single_lqm_rqm", + /* 139 */ "single_9qm_lqm", + /* 140 */ "single_9qm_rqm", + /* 141 */ "double_lqm_rqm", + /* 142 */ "double_9qm_lqm", + /* 143 */ "double_9qm_rqm", + /* 144 */ "more_keys_for_single_quote", + /* 145 */ "more_keys_for_double_quote", + /* 146 */ "more_keys_for_tablet_double_quote", }; private static final String EMPTY = ""; @@ -247,155 +263,182 @@ public final class KeyboardTextsSet { /* ~41 */ // Label for "switch to alphabetic" key. /* 42 */ "ABC", - /* 43 */ "!fixedColumnOrder!4,\u2018,\u2019,\u201A,\u201B", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - // <string name="more_keys_for_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»</string> - /* 44 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB,\u00BB", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> - /* 45 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB,\u00BB,\u2018,\u2019,\u201A,\u201B", + /* 43 */ "!text/single_lqm_rqm", + /* 44 */ "!text/double_lqm_rqm", + /* 45 */ "!text/single_laqm_raqm", + /* 46 */ "!text/double_laqm_raqm", // U+00A2: "¢" CENT SIGN // U+00A3: "£" POUND SIGN // U+20AC: "€" EURO SIGN // U+00A5: "¥" YEN SIGN // U+20B1: "₱" PESO SIGN - /* 46 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", - /* 47 */ "$", - /* 48 */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1", - /* 49 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)", + /* 47 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", + /* 48 */ "$", + /* 49 */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1", + /* 50 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)", // U+2020: "†" DAGGER // U+2021: "‡" DOUBLE DAGGER // U+2605: "★" BLACK STAR - /* 50 */ "\u2020,\u2021,\u2605", + /* 51 */ "\u2020,\u2021,\u2605", // U+266A: "♪" EIGHTH NOTE // U+2665: "♥" BLACK HEART SUIT // U+2660: "♠" BLACK SPADE SUIT // U+2666: "♦" BLACK DIAMOND SUIT // U+2663: "♣" BLACK CLUB SUIT - /* 51 */ "\u266A,\u2665,\u2660,\u2666,\u2663", + /* 52 */ "\u266A,\u2665,\u2660,\u2666,\u2663", // U+00B1: "±" PLUS-MINUS SIGN - /* 52 */ "\u00B1", + /* 53 */ "\u00B1", // The all letters need to be mirrored are found at // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt - /* 53 */ "!fixedColumnOrder!3,<,{,[", - /* 54 */ "!fixedColumnOrder!3,>,},]", + /* 54 */ "!fixedColumnOrder!3,<,{,[", + /* 55 */ "!fixedColumnOrder!3,>,},]", // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK // U+2264: "≤" LESS-THAN OR EQUAL TO // U+2265: "≥" GREATER-THAN EQUAL TO // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - // The following characters don't need BIDI mirroring. - // U+2018: "‘" LEFT SINGLE QUOTATION MARK - // U+2019: "’" RIGHT SINGLE QUOTATION MARK - // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - // U+201C: "“" LEFT DOUBLE QUOTATION MARK - // U+201D: "”" RIGHT DOUBLE QUOTATION MARK - // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - /* 55 */ "!fixedColumnOrder!3,\u2039,\u2264,\u00AB", - /* 56 */ "!fixedColumnOrder!3,\u203A,\u2265,\u00BB", - /* 57 */ EMPTY, + /* 56 */ "!fixedColumnOrder!3,\u2039,\u2264,\u00AB", + /* 57 */ "!fixedColumnOrder!3,\u203A,\u2265,\u00BB", /* 58 */ EMPTY, - /* 59 */ "1", - /* 60 */ "2", - /* 61 */ "3", - /* 62 */ "4", - /* 63 */ "5", - /* 64 */ "6", - /* 65 */ "7", - /* 66 */ "8", - /* 67 */ "9", - /* 68 */ "0", + /* 59 */ EMPTY, + /* 60 */ "1", + /* 61 */ "2", + /* 62 */ "3", + /* 63 */ "4", + /* 64 */ "5", + /* 65 */ "6", + /* 66 */ "7", + /* 67 */ "8", + /* 68 */ "9", + /* 69 */ "0", // Label for "switch to symbols" key. - /* 69 */ "?123", + /* 70 */ "?123", // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" // part because it'll be appended by the code. - /* 70 */ "123", - /* 71~ */ + /* 71 */ "123", + /* 72~ */ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, - /* ~80 */ + /* ~81 */ // U+00B9: "¹" SUPERSCRIPT ONE // U+00BD: "½" VULGAR FRACTION ONE HALF // U+2153: "⅓" VULGAR FRACTION ONE THIRD // U+00BC: "¼" VULGAR FRACTION ONE QUARTER // U+215B: "⅛" VULGAR FRACTION ONE EIGHTH - /* 81 */ "\u00B9,\u00BD,\u2153,\u00BC,\u215B", + /* 82 */ "\u00B9,\u00BD,\u2153,\u00BC,\u215B", // U+00B2: "²" SUPERSCRIPT TWO // U+2154: "⅔" VULGAR FRACTION TWO THIRDS - /* 82 */ "\u00B2,\u2154", + /* 83 */ "\u00B2,\u2154", // U+00B3: "³" SUPERSCRIPT THREE // U+00BE: "¾" VULGAR FRACTION THREE QUARTERS // U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS - /* 83 */ "\u00B3,\u00BE,\u215C", + /* 84 */ "\u00B3,\u00BE,\u215C", // U+2074: "⁴" SUPERSCRIPT FOUR - /* 84 */ "\u2074", + /* 85 */ "\u2074", // U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS - /* 85 */ "\u215D", - /* 86 */ EMPTY, + /* 86 */ "\u215D", + /* 87 */ EMPTY, // U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS - /* 87 */ "\u215E", - /* 88 */ EMPTY, + /* 88 */ "\u215E", /* 89 */ EMPTY, + /* 90 */ EMPTY, // U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N // U+2205: "∅" EMPTY SET - /* 90 */ "\u207F,\u2205", - /* 91 */ ",", - /* 92 */ EMPTY, - /* 93 */ "?", - /* 94 */ ";", - /* 95 */ "%", + /* 91 */ "\u207F,\u2205", + /* 92 */ ",", + /* 93 */ EMPTY, + /* 94 */ "?", + /* 95 */ ";", + /* 96 */ "%", // U+00A1: "¡" INVERTED EXCLAMATION MARK - /* 96 */ "\u00A1", + /* 97 */ "\u00A1", // U+00BF: "¿" INVERTED QUESTION MARK - /* 97 */ "\u00BF", - /* 98 */ EMPTY, + /* 98 */ "\u00BF", + /* 99 */ EMPTY, // U+2030: "‰" PER MILLE SIGN - /* 99 */ "\u2030", - /* 100 */ ",", - /* 101 */ "!", + /* 100 */ "\u2030", + /* 101 */ ",", /* 102 */ "!", - /* 103 */ "?", + /* 103 */ "!", /* 104 */ "?", - /* 105 */ "\'", - /* 106 */ "\"", + /* 105 */ "?", + /* 106 */ "\'", /* 107 */ "\"", - /* 108 */ EMPTY, + /* 108 */ "\"", /* 109 */ EMPTY, - /* 110 */ "q", - /* 111 */ "w", - /* 112 */ "y", - /* 113 */ "x", + /* 110 */ EMPTY, + /* 111 */ "q", + /* 112 */ "w", + /* 113 */ "y", + /* 114 */ "x", // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE - /* 114 */ "\u00F1", - /* 115 */ "!fixedColumnOrder!2,!hasLabels!,!text/label_time_am,!text/label_time_pm", - /* 116 */ "!icon/settings_key|!code/key_settings", - /* 117 */ "!icon/shortcut_key|!code/key_shortcut", - /* 118 */ "!hasLabels!,!text/label_next_key|!code/key_action_next", - /* 119 */ "!hasLabels!,!text/label_previous_key|!code/key_action_previous", + /* 115 */ "\u00F1", + /* 116 */ "!fixedColumnOrder!2,!hasLabels!,!text/label_time_am,!text/label_time_pm", + /* 117 */ "!icon/settings_key|!code/key_settings", + /* 118 */ "!icon/shortcut_key|!code/key_shortcut", + /* 119 */ "!hasLabels!,!text/label_next_key|!code/key_action_next", + /* 120 */ "!hasLabels!,!text/label_previous_key|!code/key_action_previous", // Label for "switch to more symbol" modifier key. Must be short to fit on key! - /* 120 */ "= \\ <", + /* 121 */ "= \\ <", // Label for "switch to more symbol" modifier key on tablets. Must be short to fit on key! - /* 121 */ "~ \\ {", + /* 122 */ "~ \\ {", // Label for "Tab" key. Must be short to fit on key! - /* 122 */ "Tab", + /* 123 */ "Tab", // Label for "switch to phone numeric" key. Must be short to fit on key! - /* 123 */ "123", + /* 124 */ "123", // Label for "switch to phone symbols" key. Must be short to fit on key! // U+FF0A: "*" FULLWIDTH ASTERISK // U+FF03: "#" FULLWIDTH NUMBER SIGN - /* 124 */ "\uFF0A\uFF03", + /* 125 */ "\uFF0A\uFF03", // Key label for "ante meridiem" - /* 125 */ "AM", + /* 126 */ "AM", // Key label for "post meridiem" - /* 126 */ "PM", + /* 127 */ "PM", // Label for "switch to symbols" key on PC QWERTY layout - /* 127 */ "Sym", - /* 128 */ ".com", + /* 128 */ "Sym", + /* 129 */ ".com", // popular web domains for the locale - most popular, displayed on the keyboard - /* 129 */ "!hasLabels!,.net,.org,.gov,.edu", - /* 130 */ "!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ ", + /* 130 */ "!hasLabels!,.net,.org,.gov,.edu", + /* 131 */ "!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ ", + // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK + // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + // The following characters don't need BIDI mirroring. + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + // Abbreviations are: + // laqm: LEFT-POINTING ANGLE QUOTATION MARK + // raqm: RIGHT-POINTING ANGLE QUOTATION MARK + // rtl: Right-To-Left script order + // lqm: LEFT QUOTATION MARK + // rqm: RIGHT QUOTATION MARK + // 9qm: LOW-9 QUOTATION MARK + // The following each quotation mark pair consist of + // <opening quotation mark>, <closing quotation mark> + // and is named after (single|double)_<opening quotation mark>_<closing quotation mark>. + /* 132 */ "\u2039,\u203A", + /* 133 */ "\u2039|\u203A,\u203A|\u2039", + /* 134 */ "\u203A,\u2039", + /* 135 */ "\u00AB,\u00BB", + /* 136 */ "\u00AB|\u00BB,\u00BB|\u00AB", + /* 137 */ "\u00BB,\u00AB", + // The following each quotation mark triplet consists of + // <another quotation mark>, <opening quotation mark>, <closing quotation mark> + // and is named after (single|double)_<opening quotation mark>_<closing quotation mark>. + /* 138 */ "\u201A,\u2018,\u2019", + /* 139 */ "\u2019,\u201A,\u2018", + /* 140 */ "\u2018,\u201A,\u2019", + /* 141 */ "\u201E,\u201C,\u201D", + /* 142 */ "\u201D,\u201E,\u201C", + /* 143 */ "\u201C,\u201E,\u201D", + /* 144 */ "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes", + /* 145 */ "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes", + /* 146 */ "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes", }; /* Language af: Afrikaans */ @@ -465,54 +508,36 @@ public final class KeyboardTextsSet { // U+062C: "پ" ARABIC LETTER PEH /* 42 */ "\u0623\u200C\u0628\u200C\u062C", /* 43 */ null, - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> - /* 44 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> - /* 45 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", - // U+00A2: "¢" CENT SIGN - // U+00A3: "£" POUND SIGN - // U+20AC: "€" EURO SIGN - // U+00A5: "¥" YEN SIGN - // U+20B1: "₱" PESO SIGN - // U+FDFC: "﷼" RIAL SIGN - /* 46 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1,\uFDFC", - /* 47 */ null, - /* 48 */ null, + /* 44 */ null, + /* 45 */ "!text/single_laqm_raqm_rtl", + /* 46 */ "!text/double_laqm_raqm_rtl", + /* 47~ */ + null, null, null, + /* ~49 */ // U+061F: "؟" ARABIC QUESTION MARK // U+060C: "،" ARABIC COMMA // U+061B: "؛" ARABIC SEMICOLON - /* 49 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\u060C,\u061F,@,&,\\%,+,\u061B,/,(,)", + /* 50 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\u060C,\u061F,@,&,\\%,+,\u061B,/,(,)", // U+2605: "★" BLACK STAR // U+066D: "٭" ARABIC FIVE POINTED STAR - /* 50 */ "\u2605,\u066D", + /* 51 */ "\u2605,\u066D", // U+266A: "♪" EIGHTH NOTE - /* 51 */ "\u266A", - /* 52 */ null, + /* 52 */ "\u266A", + /* 53 */ null, // The all letters need to be mirrored are found at // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt // U+FD3E: "﴾" ORNATE LEFT PARENTHESIS // U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS - /* 53 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", - /* 54 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", + /* 54 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", + /* 55 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", // U+2264: "≤" LESS-THAN OR EQUAL TO // U+2265: "≥" GREATER-THAN EQUAL TO // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - // The following characters don't need BIDI mirroring. - // U+2018: "‘" LEFT SINGLE QUOTATION MARK - // U+2019: "’" RIGHT SINGLE QUOTATION MARK - // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - // U+201C: "“" LEFT DOUBLE QUOTATION MARK - // U+201D: "”" RIGHT DOUBLE QUOTATION MARK - // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - /* 55 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", - /* 56 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + /* 56 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", + /* 57 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", // U+0655: "ٕ" ARABIC HAMZA BELOW // U+0654: "ٔ" ARABIC HAMZA ABOVE // U+0652: "ْ" ARABIC SUKUN @@ -529,70 +554,70 @@ public final class KeyboardTextsSet { // U+0640: "ـ" ARABIC TATWEEL // In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. // Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly. - /* 57 */ "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064D|\u064D, \u064C|\u064C, \u064B|\u064B, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064F|\u064F, \u064E|\u064E,\u0640\u0640\u0640|\u0640", - /* 58 */ "\u0651", + /* 58 */ "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064D|\u064D, \u064C|\u064C, \u064B|\u064B, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064F|\u064F, \u064E|\u064E,\u0640\u0640\u0640|\u0640", + /* 59 */ "\u0651", // U+0661: "١" ARABIC-INDIC DIGIT ONE - /* 59 */ "\u0661", + /* 60 */ "\u0661", // U+0662: "٢" ARABIC-INDIC DIGIT TWO - /* 60 */ "\u0662", + /* 61 */ "\u0662", // U+0663: "٣" ARABIC-INDIC DIGIT THREE - /* 61 */ "\u0663", + /* 62 */ "\u0663", // U+0664: "٤" ARABIC-INDIC DIGIT FOUR - /* 62 */ "\u0664", + /* 63 */ "\u0664", // U+0665: "٥" ARABIC-INDIC DIGIT FIVE - /* 63 */ "\u0665", + /* 64 */ "\u0665", // U+0666: "٦" ARABIC-INDIC DIGIT SIX - /* 64 */ "\u0666", + /* 65 */ "\u0666", // U+0667: "٧" ARABIC-INDIC DIGIT SEVEN - /* 65 */ "\u0667", + /* 66 */ "\u0667", // U+0668: "٨" ARABIC-INDIC DIGIT EIGHT - /* 66 */ "\u0668", + /* 67 */ "\u0668", // U+0669: "٩" ARABIC-INDIC DIGIT NINE - /* 67 */ "\u0669", + /* 68 */ "\u0669", // U+0660: "٠" ARABIC-INDIC DIGIT ZERO - /* 68 */ "\u0660", + /* 69 */ "\u0660", // Label for "switch to symbols" key. // U+061F: "؟" ARABIC QUESTION MARK - /* 69 */ "\u0663\u0662\u0661\u061F", + /* 70 */ "\u0663\u0662\u0661\u061F", // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" // part because it'll be appended by the code. - /* 70 */ "\u0663\u0662\u0661", - /* 71 */ "1", - /* 72 */ "2", - /* 73 */ "3", - /* 74 */ "4", - /* 75 */ "5", - /* 76 */ "6", - /* 77 */ "7", - /* 78 */ "8", - /* 79 */ "9", + /* 71 */ "\u0663\u0662\u0661", + /* 72 */ "1", + /* 73 */ "2", + /* 74 */ "3", + /* 75 */ "4", + /* 76 */ "5", + /* 77 */ "6", + /* 78 */ "7", + /* 79 */ "8", + /* 80 */ "9", // U+066B: "٫" ARABIC DECIMAL SEPARATOR // U+066C: "٬" ARABIC THOUSANDS SEPARATOR - /* 80 */ "0,\u066B,\u066C", - /* 81~ */ + /* 81 */ "0,\u066B,\u066C", + /* 82~ */ null, null, null, null, null, null, null, null, null, null, - /* ~90 */ + /* ~91 */ // U+060C: "،" ARABIC COMMA - /* 91 */ "\u060C", - /* 92 */ "\\,", - /* 93 */ "\u061F", - /* 94 */ "\u061B", + /* 92 */ "\u060C", + /* 93 */ "\\,", + /* 94 */ "\u061F", + /* 95 */ "\u061B", // U+066A: "٪" ARABIC PERCENT SIGN - /* 95 */ "\u066A", - /* 96 */ null, - /* 97 */ "?", - /* 98 */ ";", + /* 96 */ "\u066A", + /* 97 */ null, + /* 98 */ "?", + /* 99 */ ";", // U+2030: "‰" PER MILLE SIGN - /* 99 */ "\\%,\u2030", - /* 100~ */ + /* 100 */ "\\%,\u2030", + /* 101~ */ null, null, null, null, null, - /* ~104 */ + /* ~105 */ // U+060C: "،" ARABIC COMMA // U+061B: "؛" ARABIC SEMICOLON // U+061F: "؟" ARABIC QUESTION MARK - /* 105 */ "\u060C", - /* 106 */ "\u061F", - /* 107 */ "\u061F,\u061B,!,:,-,/,\',\"", + /* 106 */ "\u060C", + /* 107 */ "\u061F", + /* 108 */ "\u061F,\u061B,!,:,-,/,\',\"", }; /* Language be: Belarusian */ @@ -627,6 +652,8 @@ public final class KeyboardTextsSet { // U+0411: "Б" CYRILLIC CAPITAL LETTER BE // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language bg: Bulgarian */ @@ -641,6 +668,9 @@ public final class KeyboardTextsSet { // U+0411: "Б" CYRILLIC CAPITAL LETTER BE // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", + /* 43 */ null, + // single_quotes of Bulgarian is default single_quotes_right_left. + /* 44 */ "!text/double_9qm_lqm", }; /* Language ca: Catalan */ @@ -771,6 +801,14 @@ public final class KeyboardTextsSet { // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE /* 12 */ "\u017E,\u017A,\u017C", + /* 13~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language da: Danish */ @@ -832,6 +870,14 @@ public final class KeyboardTextsSet { /* 23 */ "\u00E4", // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS /* 24 */ "\u00F6", + /* 25~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language de: German */ @@ -874,6 +920,15 @@ public final class KeyboardTextsSet { // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE /* 6 */ "\u00F1,\u0144", + /* 7~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language el: Greek */ @@ -1058,20 +1113,20 @@ public final class KeyboardTextsSet { null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, - /* ~107 */ - /* 108 */ "q", - /* 109 */ "x", + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~108 */ + /* 109 */ "q", + /* 110 */ "x", // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX - /* 110 */ "\u015D", + /* 111 */ "\u015D", // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX - /* 111 */ "\u011D", + /* 112 */ "\u011D", // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE - /* 112 */ "\u016D", + /* 113 */ "\u016D", // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX - /* 113 */ "\u0109", + /* 114 */ "\u0109", // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX - /* 114 */ "\u0135", + /* 115 */ "\u0135", }; /* Language es: Spanish */ @@ -1129,25 +1184,25 @@ public final class KeyboardTextsSet { /* 8~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, - /* ~48 */ + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~49 */ // U+00A1: "¡" INVERTED EXCLAMATION MARK // U+00BF: "¿" INVERTED QUESTION MARK - /* 49 */ "!fixedColumnOrder!9,\u00A1,\",\',#,-,:,!,\\,,?,\u00BF,@,&,\\%,+,;,/,(,)", - /* 50~ */ + /* 50 */ "!fixedColumnOrder!9,\u00A1,\",\',#,-,:,!,\\,,?,\u00BF,@,&,\\%,+,;,/,(,)", + /* 51~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - /* ~101 */ + /* ~102 */ // U+00A1: "¡" INVERTED EXCLAMATION MARK - /* 102 */ "!,\u00A1", - /* 103 */ null, + /* 103 */ "!,\u00A1", + /* 104 */ null, // U+00BF: "¿" INVERTED QUESTION MARK - /* 104 */ "?,\u00BF", - /* 105 */ "\"", - /* 106 */ "\'", + /* 105 */ "?,\u00BF", + /* 106 */ "\"", /* 107 */ "\'", + /* 108 */ "\'", }; /* Language et: Estonian */ @@ -1248,6 +1303,12 @@ public final class KeyboardTextsSet { /* 22 */ "\u00E4", // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE /* 23 */ "\u00F5", + /* 24~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language fa: Persian */ @@ -1264,55 +1325,36 @@ public final class KeyboardTextsSet { // U+067E: "پ" ARABIC LETTER PEH /* 42 */ "\u0627\u200C\u0628\u200C\u067E", /* 43 */ null, - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> - /* 44 */ "!fixedColumnOrder!4,\u201C,\u201D,\",\'", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> - /* 45 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", - /* 46 */ null, - // U+FDFC: "﷼" RIAL SIGN - // U+060B: "؋" AFGHANI SIGN - // U+00A2: "¢" CENT SIGN - // U+00A3: "£" POUND SIGN - // U+20AC: "€" EURO SIGN - // U+00A5: "¥" YEN SIGN - // U+20B1: "₱" PESO SIGN - /* 47 */ "\uFDFC", - /* 48 */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1,\u060B", + /* 44 */ null, + /* 45 */ "!text/single_laqm_raqm_rtl", + /* 46 */ "!text/double_laqm_raqm_rtl", + /* 47~ */ + null, null, null, + /* ~49 */ // U+061F: "؟" ARABIC QUESTION MARK // U+060C: "،" ARABIC COMMA // U+061B: "؛" ARABIC SEMICOLON - /* 49 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\u060C,\u061F,@,&,\\%,+,\u061B,/,(,)", + /* 50 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\u060C,\u061F,@,&,\\%,+,\u061B,/,(,)", // U+2605: "★" BLACK STAR // U+066D: "٭" ARABIC FIVE POINTED STAR - /* 50 */ "\u2605,\u066D", + /* 51 */ "\u2605,\u066D", // U+266A: "♪" EIGHTH NOTE - /* 51 */ "\u266A", - /* 52 */ null, + /* 52 */ "\u266A", + /* 53 */ null, // The all letters need to be mirrored are found at // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt // U+FD3E: "﴾" ORNATE LEFT PARENTHESIS // U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS - /* 53 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", - /* 54 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", + /* 54 */ "!fixedColumnOrder!4,\uFD3E|\uFD3F,<|>,{|},[|]", + /* 55 */ "!fixedColumnOrder!4,\uFD3F|\uFD3E,>|<,}|{,]|[", // U+2264: "≤" LESS-THAN OR EQUAL TO // U+2265: "≥" GREATER-THAN EQUAL TO // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - // The following characters don't need BIDI mirroring. - // U+2018: "‘" LEFT SINGLE QUOTATION MARK - // U+2019: "’" RIGHT SINGLE QUOTATION MARK - // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - // U+201C: "“" LEFT DOUBLE QUOTATION MARK - // U+201D: "”" RIGHT DOUBLE QUOTATION MARK - // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - /* 55 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,<|>", - /* 56 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,>|<", + /* 56 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,<|>", + /* 57 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,>|<", // U+0655: "ٕ" ARABIC HAMZA BELOW // U+0652: "ْ" ARABIC SUKUN // U+0651: "ّ" ARABIC SHADDA @@ -1329,74 +1371,74 @@ public final class KeyboardTextsSet { // U+0640: "ـ" ARABIC TATWEEL // In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. // Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly. - /* 57 */ "!fixedColumnOrder!7, \u0655|\u0655, \u0652|\u0652, \u0651|\u0651, \u064C|\u064C, \u064D|\u064D, \u064B|\u064B, \u0654|\u0654, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u064F|\u064F, \u0650|\u0650, \u064E|\u064E,\u0640\u0640\u0640|\u0640", - /* 58 */ "\u064B", + /* 58 */ "!fixedColumnOrder!7, \u0655|\u0655, \u0652|\u0652, \u0651|\u0651, \u064C|\u064C, \u064D|\u064D, \u064B|\u064B, \u0654|\u0654, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u064F|\u064F, \u0650|\u0650, \u064E|\u064E,\u0640\u0640\u0640|\u0640", + /* 59 */ "\u064B", // U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE - /* 59 */ "\u06F1", + /* 60 */ "\u06F1", // U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO - /* 60 */ "\u06F2", + /* 61 */ "\u06F2", // U+06F3: "۳" EXTENDED ARABIC-INDIC DIGIT THREE - /* 61 */ "\u06F3", + /* 62 */ "\u06F3", // U+06F4: "۴" EXTENDED ARABIC-INDIC DIGIT FOUR - /* 62 */ "\u06F4", + /* 63 */ "\u06F4", // U+06F5: "۵" EXTENDED ARABIC-INDIC DIGIT FIVE - /* 63 */ "\u06F5", + /* 64 */ "\u06F5", // U+06F6: "۶" EXTENDED ARABIC-INDIC DIGIT SIX - /* 64 */ "\u06F6", + /* 65 */ "\u06F6", // U+06F7: "۷" EXTENDED ARABIC-INDIC DIGIT SEVEN - /* 65 */ "\u06F7", + /* 66 */ "\u06F7", // U+06F8: "۸" EXTENDED ARABIC-INDIC DIGIT EIGHT - /* 66 */ "\u06F8", + /* 67 */ "\u06F8", // U+06F9: "۹" EXTENDED ARABIC-INDIC DIGIT NINE - /* 67 */ "\u06F9", + /* 68 */ "\u06F9", // U+06F0: "۰" EXTENDED ARABIC-INDIC DIGIT ZERO - /* 68 */ "\u06F0", + /* 69 */ "\u06F0", // Label for "switch to symbols" key. // U+061F: "؟" ARABIC QUESTION MARK - /* 69 */ "\u06F3\u06F2\u06F1\u061F", + /* 70 */ "\u06F3\u06F2\u06F1\u061F", // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" // part because it'll be appended by the code. - /* 70 */ "\u06F3\u06F2\u06F1", - /* 71 */ "1", - /* 72 */ "2", - /* 73 */ "3", - /* 74 */ "4", - /* 75 */ "5", - /* 76 */ "6", - /* 77 */ "7", - /* 78 */ "8", - /* 79 */ "9", + /* 71 */ "\u06F3\u06F2\u06F1", + /* 72 */ "1", + /* 73 */ "2", + /* 74 */ "3", + /* 75 */ "4", + /* 76 */ "5", + /* 77 */ "6", + /* 78 */ "7", + /* 79 */ "8", + /* 80 */ "9", // U+066B: "٫" ARABIC DECIMAL SEPARATOR // U+066C: "٬" ARABIC THOUSANDS SEPARATOR - /* 80 */ "0,\u066B,\u066C", - /* 81~ */ + /* 81 */ "0,\u066B,\u066C", + /* 82~ */ null, null, null, null, null, null, null, null, null, null, - /* ~90 */ + /* ~91 */ // U+060C: "،" ARABIC COMMA - /* 91 */ "\u060C", - /* 92 */ "\\,", - /* 93 */ "\u061F", - /* 94 */ "\u061B", + /* 92 */ "\u060C", + /* 93 */ "\\,", + /* 94 */ "\u061F", + /* 95 */ "\u061B", // U+066A: "٪" ARABIC PERCENT SIGN - /* 95 */ "\u066A", - /* 96 */ null, - /* 97 */ "?", - /* 98 */ ";", + /* 96 */ "\u066A", + /* 97 */ null, + /* 98 */ "?", + /* 99 */ ";", // U+2030: "‰" PER MILLE SIGN - /* 99 */ "\\%,\u2030", + /* 100 */ "\\%,\u2030", // U+060C: "،" ARABIC COMMA // U+061B: "؛" ARABIC SEMICOLON // U+061F: "؟" ARABIC QUESTION MARK // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - /* 100 */ "\u060C", - /* 101 */ "!", - /* 102 */ "!,\\,", - /* 103 */ "\u061F", - /* 104 */ "\u061F,?", - /* 105 */ "\u060C", - /* 106 */ "\u061F", - /* 107 */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\u00AB|\u00BB,\u00BB|\u00AB", + /* 101 */ "\u060C", + /* 102 */ "!", + /* 103 */ "!,\\,", + /* 104 */ "\u061F", + /* 105 */ "\u061F,?", + /* 106 */ "\u060C", + /* 107 */ "\u061F", + /* 108 */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\u00AB|\u00BB,\u00BB|\u00AB", }; /* Language fi: Finnish */ @@ -1512,48 +1554,48 @@ public final class KeyboardTextsSet { // U+0917: "ग" DEVANAGARI LETTER GA /* 42 */ "\u0915\u0916\u0917", /* 43~ */ - null, null, null, null, - /* ~46 */ + null, null, null, null, null, + /* ~47 */ // U+20B9: "₹" INDIAN RUPEE SIGN - /* 47 */ "\u20B9", - /* 48~ */ + /* 48 */ "\u20B9", + /* 49~ */ null, null, null, null, null, null, null, null, null, null, null, - /* ~58 */ + /* ~59 */ // U+0967: "१" DEVANAGARI DIGIT ONE - /* 59 */ "\u0967", + /* 60 */ "\u0967", // U+0968: "२" DEVANAGARI DIGIT TWO - /* 60 */ "\u0968", + /* 61 */ "\u0968", // U+0969: "३" DEVANAGARI DIGIT THREE - /* 61 */ "\u0969", + /* 62 */ "\u0969", // U+096A: "४" DEVANAGARI DIGIT FOUR - /* 62 */ "\u096A", + /* 63 */ "\u096A", // U+096B: "५" DEVANAGARI DIGIT FIVE - /* 63 */ "\u096B", + /* 64 */ "\u096B", // U+096C: "६" DEVANAGARI DIGIT SIX - /* 64 */ "\u096C", + /* 65 */ "\u096C", // U+096D: "७" DEVANAGARI DIGIT SEVEN - /* 65 */ "\u096D", + /* 66 */ "\u096D", // U+096E: "८" DEVANAGARI DIGIT EIGHT - /* 66 */ "\u096E", + /* 67 */ "\u096E", // U+096F: "९" DEVANAGARI DIGIT NINE - /* 67 */ "\u096F", + /* 68 */ "\u096F", // U+0966: "०" DEVANAGARI DIGIT ZERO - /* 68 */ "\u0966", + /* 69 */ "\u0966", // Label for "switch to symbols" key. - /* 69 */ "?\u0967\u0968\u0969", + /* 70 */ "?\u0967\u0968\u0969", // Label for "switch to symbols with microphone" key. This string shouldn't include the "mic" // part because it'll be appended by the code. - /* 70 */ "\u0967\u0968\u0969", - /* 71 */ "1", - /* 72 */ "2", - /* 73 */ "3", - /* 74 */ "4", - /* 75 */ "5", - /* 76 */ "6", - /* 77 */ "7", - /* 78 */ "8", - /* 79 */ "9", - /* 80 */ "0", + /* 71 */ "\u0967\u0968\u0969", + /* 72 */ "1", + /* 73 */ "2", + /* 74 */ "3", + /* 75 */ "4", + /* 76 */ "5", + /* 77 */ "6", + /* 78 */ "7", + /* 79 */ "8", + /* 80 */ "9", + /* 81 */ "0", }; /* Language hr: Croatian */ @@ -1581,6 +1623,14 @@ public final class KeyboardTextsSet { // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE /* 12 */ "\u017E,\u017A,\u017C", + /* 13~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_rqm", + /* 44 */ "!text/double_9qm_rqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language hu: Hungarian */ @@ -1626,6 +1676,15 @@ public final class KeyboardTextsSet { // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON /* 4 */ "\u00FA,\u00FC,\u0171,\u00FB,\u00F9,\u016B", + /* 5~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_rqm", + /* 44 */ "!text/double_9qm_rqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language is: Icelandic */ @@ -1689,6 +1748,12 @@ public final class KeyboardTextsSet { /* 21 */ "\u00E6", // U+00FE: "þ" LATIN SMALL LETTER THORN /* 22 */ "\u00FE", + /* 23~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language it: Italian */ @@ -1748,45 +1813,38 @@ public final class KeyboardTextsSet { // U+05D1: "ב" HEBREW LETTER BET // U+05D2: "ג" HEBREW LETTER GIMEL /* 42 */ "\u05D0\u05D1\u05D2", - /* 43 */ null, - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> - /* 44 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> - /* 45 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", - /* 46 */ null, - // U+20AA: "₪" NEW SHEQEL SIGN - /* 47 */ "\u20AA", - /* 48 */ null, - /* 49 */ null, + // The following characters don't need BIDI mirroring. + // U+2018: "‘" LEFT SINGLE QUOTATION MARK + // U+2019: "’" RIGHT SINGLE QUOTATION MARK + // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK + // U+201C: "“" LEFT DOUBLE QUOTATION MARK + // U+201D: "”" RIGHT DOUBLE QUOTATION MARK + // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK + /* 43 */ "\u2018,\u2019,\u201A", + /* 44 */ "\u201C,\u201D,\u201E", + /* 45 */ "!text/single_laqm_raqm_rtl", + /* 46 */ "!text/double_laqm_raqm_rtl", + /* 47~ */ + null, null, null, null, + /* ~50 */ // U+2605: "★" BLACK STAR - /* 50 */ "\u2605", - /* 51 */ null, + /* 51 */ "\u2605", + /* 52 */ null, // U+00B1: "±" PLUS-MINUS SIGN // U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN - /* 52 */ "\u00B1,\uFB29", + /* 53 */ "\u00B1,\uFB29", // The all letters need to be mirrored are found at // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt - /* 53 */ "!fixedColumnOrder!3,<|>,{|},[|]", - /* 54 */ "!fixedColumnOrder!3,>|<,}|{,]|[", + /* 54 */ "!fixedColumnOrder!3,<|>,{|},[|]", + /* 55 */ "!fixedColumnOrder!3,>|<,}|{,]|[", // U+2264: "≤" LESS-THAN OR EQUAL TO // U+2265: "≥" GREATER-THAN EQUAL TO // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - // The following characters don't need BIDI mirroring. - // U+2018: "‘" LEFT SINGLE QUOTATION MARK - // U+2019: "’" RIGHT SINGLE QUOTATION MARK - // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - // U+201C: "“" LEFT DOUBLE QUOTATION MARK - // U+201D: "”" RIGHT DOUBLE QUOTATION MARK - // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - /* 55 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", - /* 56 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + /* 56 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", + /* 57 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", }; /* Language ka: Georgian */ @@ -1801,6 +1859,8 @@ public final class KeyboardTextsSet { // U+10D1: "ბ" GEORGIAN LETTER BAN // U+10D2: "გ" GEORGIAN LETTER GAN /* 42 */ "\u10D0\u10D1\u10D2", + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language ky: Kirghiz */ @@ -1930,6 +1990,12 @@ public final class KeyboardTextsSet { // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE /* 15 */ "\u0123,\u011F", + /* 16~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language lv: Latvian */ @@ -2019,6 +2085,12 @@ public final class KeyboardTextsSet { // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE /* 15 */ "\u0123,\u011F", + /* 16~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language mk: Macedonian */ @@ -2045,21 +2117,8 @@ public final class KeyboardTextsSet { // U+0411: "Б" CYRILLIC CAPITAL LETTER BE // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", - /* 43 */ null, - // U+2018: "‘" LEFT SINGLE QUOTATION MARK - // U+2019: "’" RIGHT SINGLE QUOTATION MARK - // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - // U+201C: "“" LEFT DOUBLE QUOTATION MARK - // U+201D: "”" RIGHT DOUBLE QUOTATION MARK - // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - // <string name="more_keys_for_double_quote">!fixedColumnOrder!6,„,“,”,‟,«,»</string> - /* 44 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> - /* 45 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB,\u2018,\u2019,\u201A,\u201B", + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language mn: Mongolian */ @@ -2075,10 +2134,10 @@ public final class KeyboardTextsSet { // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", /* 43~ */ - null, null, null, null, - /* ~46 */ + null, null, null, null, null, + /* ~47 */ // U+20AE: "₮" TUGRIK SIGN - /* 47 */ "\u20AE", + /* 48 */ "\u20AE", }; /* Language nb: Norwegian Bokmål */ @@ -2126,6 +2185,12 @@ public final class KeyboardTextsSet { /* 23 */ "\u00F6", // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS /* 24 */ "\u00E4", + /* 25~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_rqm", + /* 44 */ "!text/double_9qm_rqm", }; /* Language nl: Dutch */ @@ -2177,6 +2242,13 @@ public final class KeyboardTextsSet { /* 7 */ null, // U+0133: "ij" LATIN SMALL LIGATURE IJ /* 8 */ "\u0133", + /* 9~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_rqm", + /* 44 */ "!text/double_9qm_rqm", }; /* Language pl: Polish */ @@ -2231,6 +2303,12 @@ public final class KeyboardTextsSet { /* 13 */ null, // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE /* 14 */ "\u0142", + /* 15~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_rqm", + /* 44 */ "!text/double_9qm_rqm", }; /* Language pt: Portuguese */ @@ -2330,6 +2408,13 @@ public final class KeyboardTextsSet { /* ~10 */ // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW /* 11 */ "\u021B", + /* 12~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, + /* ~42 */ + /* 43 */ "!text/single_9qm_rqm", + /* 44 */ "!text/double_9qm_rqm", }; /* Language ru: Russian */ @@ -2364,6 +2449,8 @@ public final class KeyboardTextsSet { // U+0411: "Б" CYRILLIC CAPITAL LETTER BE // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", }; /* Language sk: Slovak */ @@ -2454,6 +2541,14 @@ public final class KeyboardTextsSet { // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE /* 15 */ "\u0123,\u011F", + /* 16~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language sl: Slovenian */ @@ -2474,6 +2569,14 @@ public final class KeyboardTextsSet { /* 11 */ null, // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON /* 12 */ "\u017E", + /* 13~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~42 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language sr: Serbian */ @@ -2519,21 +2622,10 @@ public final class KeyboardTextsSet { // U+0411: "Б" CYRILLIC CAPITAL LETTER BE // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", - /* 43 */ null, - // U+2018: "‘" LEFT SINGLE QUOTATION MARK - // U+2019: "’" RIGHT SINGLE QUOTATION MARK - // U+201A: "‚" SINGLE LOW-9 QUOTATION MARK - // U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK - // U+201C: "“" LEFT DOUBLE QUOTATION MARK - // U+201D: "”" RIGHT DOUBLE QUOTATION MARK - // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK - // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - // <string name="more_keys_for_double_quote">!fixedColumnOrder!6,„,“,”,‟,«,»</string> - /* 44 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB", - // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK. - // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«,»,‘,’,‚,‛</string> - /* 45 */ "!fixedColumnOrder!5,\u201E,\u201C,\u201D,\u00AB,\u00BB,\u2018,\u2019,\u201A,\u201B", + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language sv: Swedish */ @@ -2576,6 +2668,12 @@ public final class KeyboardTextsSet { /* 23 */ "\u00F8", // U+00E6: "æ" LATIN SMALL LETTER AE /* 24 */ "\u00E6", + /* 25~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, + /* ~44 */ + /* 45 */ "!text/single_raqm_laqm", + /* 46 */ "!text/double_raqm_laqm", }; /* Language sw: Swahili */ @@ -2642,10 +2740,10 @@ public final class KeyboardTextsSet { // U+0E04: "ค" THAI CHARACTER KHO KHWAI /* 42 */ "\u0E01\u0E02\u0E04", /* 43~ */ - null, null, null, null, - /* ~46 */ + null, null, null, null, null, + /* ~47 */ // U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT - /* 47 */ "\u0E3F", + /* 48 */ "\u0E3F", }; /* Language tl: Tagalog */ @@ -2780,11 +2878,13 @@ public final class KeyboardTextsSet { // U+0411: "Б" CYRILLIC CAPITAL LETTER BE // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* 42 */ "\u0410\u0411\u0412", - /* 43~ */ - null, null, null, null, - /* ~46 */ + /* 43 */ "!text/single_9qm_lqm", + /* 44 */ "!text/double_9qm_lqm", + /* 45~ */ + null, null, null, + /* ~47 */ // U+20B4: "₴" HRYVNIA SIGN - /* 47 */ "\u20B4", + /* 48 */ "\u20B4", }; /* Language vi: Vietnamese */ @@ -2869,10 +2969,10 @@ public final class KeyboardTextsSet { /* 10~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, - /* ~46 */ + null, null, null, null, null, null, null, null, + /* ~47 */ // U+20AB: "₫" DONG SIGN - /* 47 */ "\u20AB", + /* 48 */ "\u20AB", }; /* Language zu: Zulu */ diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index af494c4f4..e7c64c695 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -958,6 +958,10 @@ public final class LatinIME extends InputMethodService implements KeyboardAction LatinImeLogger.commit(); mKeyboardSwitcher.onHideWindow(); + if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) { + AccessibleKeyboardViewProxy.getInstance().onHideWindow(); + } + if (TRACE) Debug.stopMethodTracing(); if (mOptionsDialog != null && mOptionsDialog.isShowing()) { mOptionsDialog.dismiss(); @@ -1447,7 +1451,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction } else { didAutoCorrect = false; if (SPACE_STATE_PHANTOM == spaceState) { - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { if (mWordComposer.isComposingWord() && mWordComposer.isBatchMode()) { Stats.onAutoCorrection( "", mWordComposer.getTypedWord(), " ", mWordComposer); @@ -1502,7 +1506,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction mHandler.cancelUpdateSuggestionStrip(); mConnection.beginBatchEdit(); if (mWordComposer.isComposingWord()) { - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { if (mWordComposer.isBatchMode()) { Stats.onAutoCorrection("", mWordComposer.getTypedWord(), " ", mWordComposer); } @@ -1732,7 +1736,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction } } else { if (mLastComposedWord.canRevertCommit()) { - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { Stats.onAutoCorrectionCancellation(); } revertCommit(); @@ -1891,7 +1895,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction if (null != mSuggestionStripView) mSuggestionStripView.dismissAddToDictionaryHint(); } mHandler.postUpdateSuggestionStrip(); - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { Utils.Stats.onNonSeparator((char)primaryCode, x, y); } } @@ -1958,7 +1962,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction // already displayed or not, so it's okay. setPunctuationSuggestions(); } - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { Utils.Stats.onSeparator((char)primaryCode, x, y); } @@ -2141,7 +2145,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction throw new RuntimeException("We have an auto-correction but the typed word " + "is empty? Impossible! I must commit suicide."); } - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { Stats.onAutoCorrection(typedWord, autoCorrection, separatorString, mWordComposer); } if (ProductionFlag.IS_EXPERIMENTAL) { @@ -2240,7 +2244,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction // If the suggestion is not in the dictionary, the hint should be shown. && !AutoCorrection.isValidWord(mSuggest.getUnigramDictionaries(), suggestion, true); - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { Stats.onSeparator((char)Constants.CODE_SPACE, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE); } @@ -2364,7 +2368,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction mUserHistoryDictionary.cancelAddingUserHistory(previousWord, committedWord); } mConnection.commitText(originallyTypedWord + mLastComposedWord.mSeparatorString, 1); - if (ProductionFlag.IS_INTERNAL) { + if (mSettings.isInternal()) { Stats.onSeparator(mLastComposedWord.mSeparatorString, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE); } @@ -2498,12 +2502,6 @@ public final class LatinIME extends InputMethodService implements KeyboardAction launchSubActivity(SettingsActivity.class); } - // Called from debug code only - public void launchDebugSettings() { - handleClose(); - launchSubActivity(DebugSettingsActivity.class); - } - public void launchKeyboardedDialogActivity(final Class<? extends Activity> activityClass) { // Put the text in the attached EditText into a safe, saved state before switching to a // new activity that will also use the soft keyboard. diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java index 435074bdb..4cbfa8ea1 100644 --- a/java/src/com/android/inputmethod/latin/Settings.java +++ b/java/src/com/android/inputmethod/latin/Settings.java @@ -70,6 +70,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static final String PREF_INPUT_LANGUAGE = "input_language"; public static final String PREF_SELECTED_LANGUAGES = "selected_languages"; public static final String PREF_DEBUG_SETTINGS = "debug_settings"; + public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal"; // This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead. // This is being used only for the backward compatibility. @@ -127,6 +128,10 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang return mSettingsValues; } + public boolean isInternal() { + return mSettingsValues.mIsInternal; + } + // Accessed from the settings interface, hence public public static boolean readKeypressSoundEnabled(final SharedPreferences prefs, final Resources res) { @@ -274,4 +279,8 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang } return prefs.getBoolean(Settings.PREF_SHOW_SETUP_WIZARD_ICON, false); } + + public static boolean isInternal(final SharedPreferences prefs) { + return prefs.getBoolean(Settings.PREF_KEY_IS_INTERNAL, false); + } } diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java index 4c90e485a..cc9f168d0 100644 --- a/java/src/com/android/inputmethod/latin/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java @@ -92,7 +92,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment final Preference debugSettings = findPreference(Settings.PREF_DEBUG_SETTINGS); if (debugSettings != null) { - if (ProductionFlag.IS_INTERNAL) { + if (Settings.isInternal(prefs)) { final Intent debugSettingsIntent = new Intent(Intent.ACTION_MAIN); debugSettingsIntent.setClassName( context.getPackageName(), DebugSettingsActivity.class.getName()); @@ -156,10 +156,6 @@ public final class SettingsFragment extends InputMethodSettingsFragment removePreference(Settings.PREF_GESTURE_SETTINGS, getPreferenceScreen()); } - final CheckBoxPreference showSetupWizardIcon = - (CheckBoxPreference)findPreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON); - showSetupWizardIcon.setChecked(Settings.readShowSetupWizardIcon(prefs, context)); - setupKeyLongpressTimeoutSettings(prefs, res); setupKeypressVibrationDurationSettings(prefs, res); setupKeypressSoundVolumeSettings(prefs, res); @@ -175,6 +171,10 @@ public final class SettingsFragment extends InputMethodSettingsFragment } else { getPreferenceScreen().removePreference(mVoicePreference); } + final SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); + final CheckBoxPreference showSetupWizardIcon = + (CheckBoxPreference)findPreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON); + showSetupWizardIcon.setChecked(Settings.readShowSetupWizardIcon(prefs, getActivity())); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); updateCustomInputStylesSummary(); diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java index d05868029..f77a92885 100644 --- a/java/src/com/android/inputmethod/latin/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/SettingsValues.java @@ -76,6 +76,9 @@ public final class SettingsValues { private final boolean mVoiceKeyEnabled; private final boolean mVoiceKeyOnMain; + // Debug settings + public final boolean mIsInternal; + public SettingsValues(final SharedPreferences prefs, final Resources res, final InputAttributes inputAttributes) { // Get the resources @@ -141,6 +144,7 @@ public final class SettingsValues { Settings.PREF_SHOW_SUGGESTIONS_SETTING, res.getString(R.string.prefs_suggestion_visibility_default_value)); mSuggestionVisibility = createSuggestionVisibility(res, showSuggestionsSetting); + mIsInternal = Settings.isInternal(prefs); } public boolean isApplicationSpecifiedCompletionsOn() { diff --git a/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java b/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java index 89d9ea844..e50af4d2d 100644 --- a/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java +++ b/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java @@ -22,17 +22,17 @@ import android.os.Looper; import java.lang.ref.WeakReference; public class StaticInnerHandlerWrapper<T> extends Handler { - final private WeakReference<T> mOuterInstanceRef; + private final WeakReference<T> mOuterInstanceRef; - public StaticInnerHandlerWrapper(T outerInstance) { - super(); - if (outerInstance == null) throw new NullPointerException("outerInstance is null"); - mOuterInstanceRef = new WeakReference<T>(outerInstance); + public StaticInnerHandlerWrapper(final T outerInstance) { + this(outerInstance, Looper.myLooper()); } - public StaticInnerHandlerWrapper(T outerInstance, Looper looper) { + public StaticInnerHandlerWrapper(final T outerInstance, final Looper looper) { super(looper); - if (outerInstance == null) throw new NullPointerException("outerInstance is null"); + if (outerInstance == null) { + throw new NullPointerException("outerInstance is null"); + } mOuterInstanceRef = new WeakReference<T>(outerInstance); } diff --git a/java/src/com/android/inputmethod/latin/define/ProductionFlag.java b/java/src/com/android/inputmethod/latin/define/ProductionFlag.java index fe9be16c6..3df0d044e 100644 --- a/java/src/com/android/inputmethod/latin/define/ProductionFlag.java +++ b/java/src/com/android/inputmethod/latin/define/ProductionFlag.java @@ -22,7 +22,6 @@ public final class ProductionFlag { } public static final boolean IS_EXPERIMENTAL = false; - public static final boolean IS_INTERNAL = false; // When false, IS_EXPERIMENTAL_DEBUG suggests that all guarded class-private DEBUG flags should // be false, and any privacy controls should be enforced. IS_EXPERIMENTAL_DEBUG should be false diff --git a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java index e009fbc39..7f66c6d3e 100644 --- a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java +++ b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java @@ -62,6 +62,9 @@ public final class SetupActivity extends Activity { @Override public void handleMessage(final Message msg) { final SetupActivity setupActivity = getOuterInstance(); + if (setupActivity == null) { + return; + } switch (msg.what) { case MSG_POLLING_IME_SETTINGS: if (SetupActivity.isThisImeEnabled(setupActivity)) { diff --git a/java/src/com/android/inputmethod/research/ResearchLog.java b/java/src/com/android/inputmethod/research/ResearchLog.java index 9016e23b3..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; @@ -54,7 +54,6 @@ public class ResearchLog { 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; @@ -99,8 +98,10 @@ public class ResearchLog { * output. * * See class comment for details about {@code JsonWriter} construction. + * + * @param onClosed run after the close() operation has completed asynchronously */ - public synchronized void close(final Runnable onClosed) { + private synchronized void close(final Runnable onClosed) { mExecutor.submit(new Callable<Object>() { @Override public Object call() throws Exception { @@ -131,15 +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); + } /** - * Waits for publication requests to finish, closes the {@link JsonWriter}, but then deletes the - * backing file used for output. + * Waits for publication requests to finish, closes the JsonWriter, but then deletes the backing + * output file. * - * See class comment for details about {@code JsonWriter} construction. + * @param onAbort run after the abort() operation has completed asynchronously */ - public synchronized void abort() { + private synchronized void abort(final Runnable onAbort) { mExecutor.submit(new Callable<Object>() { @Override public Object call() throws Exception { @@ -151,7 +161,10 @@ public class ResearchLog { } } finally { if (mFile != null) { - mIsAbortSuccessful = mFile.delete(); + mFile.delete(); + } + if (onAbort != null) { + onAbort.run(); } } return null; @@ -161,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() { @@ -214,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 e705ddda1..11d1a5222 100644 --- a/java/src/com/android/inputmethod/research/ResearchLogger.java +++ b/java/src/com/android/inputmethod/research/ResearchLogger.java @@ -154,6 +154,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private static final int MAX_INPUTVIEW_LENGTH_TO_CAPTURE = 8192; // must be >=1 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; @@ -502,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() { @@ -620,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); @@ -658,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; @@ -670,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; @@ -782,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(); |