aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/values-af/strings.xml19
-rw-r--r--java/res/values-am/strings.xml19
-rw-r--r--java/res/values-ar/strings.xml19
-rw-r--r--java/res/values-be/strings.xml19
-rw-r--r--java/res/values-bg/strings.xml19
-rw-r--r--java/res/values-ca/strings.xml19
-rw-r--r--java/res/values-cs/strings.xml19
-rw-r--r--java/res/values-da/strings.xml19
-rw-r--r--java/res/values-de/strings.xml19
-rw-r--r--java/res/values-el/strings.xml19
-rw-r--r--java/res/values-en-rGB/strings.xml19
-rw-r--r--java/res/values-es-rUS/strings.xml19
-rw-r--r--java/res/values-es/strings.xml19
-rw-r--r--java/res/values-et/strings.xml19
-rw-r--r--java/res/values-fa/strings.xml19
-rw-r--r--java/res/values-fi/strings.xml19
-rw-r--r--java/res/values-fr/strings.xml19
-rw-r--r--java/res/values-hi/strings.xml19
-rw-r--r--java/res/values-hr/strings.xml19
-rw-r--r--java/res/values-hu/strings.xml19
-rw-r--r--java/res/values-in/strings.xml19
-rw-r--r--java/res/values-it/strings.xml19
-rw-r--r--java/res/values-iw/strings.xml19
-rw-r--r--java/res/values-ja/strings.xml19
-rw-r--r--java/res/values-ko/strings.xml19
-rw-r--r--java/res/values-lt/strings.xml19
-rw-r--r--java/res/values-lv/strings.xml19
-rw-r--r--java/res/values-ms/strings.xml19
-rw-r--r--java/res/values-nb/strings.xml19
-rw-r--r--java/res/values-nl/strings.xml19
-rw-r--r--java/res/values-pl/strings.xml19
-rw-r--r--java/res/values-pt-rPT/strings.xml19
-rw-r--r--java/res/values-pt/strings.xml19
-rw-r--r--java/res/values-rm/strings.xml38
-rw-r--r--java/res/values-ro/strings.xml19
-rw-r--r--java/res/values-ru/strings.xml19
-rw-r--r--java/res/values-sk/strings.xml19
-rw-r--r--java/res/values-sl/strings.xml19
-rw-r--r--java/res/values-sr/strings.xml19
-rw-r--r--java/res/values-sv/strings.xml19
-rw-r--r--java/res/values-sw/strings.xml19
-rw-r--r--java/res/values-th/strings.xml19
-rw-r--r--java/res/values-tl/strings.xml19
-rw-r--r--java/res/values-tr/strings.xml19
-rw-r--r--java/res/values-uk/strings.xml19
-rw-r--r--java/res/values-vi/strings.xml19
-rw-r--r--java/res/values-zh-rCN/strings.xml19
-rw-r--r--java/res/values-zh-rTW/strings.xml19
-rw-r--r--java/res/values-zu/strings.xml19
-rw-r--r--java/res/values/attrs.xml6
-rw-r--r--java/res/values/strings.xml2
-rw-r--r--java/res/xml/key_styles_common.xml38
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java84
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java7
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java11
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java12
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java92
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java80
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java6
-rw-r--r--java/src/com/android/inputmethod/latin/InputAttributes.java14
-rw-r--r--java/src/com/android/inputmethod/latin/LastComposedWord.java2
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java144
-rw-r--r--java/src/com/android/inputmethod/latin/SettingsValues.java5
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java16
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java11
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java24
66 files changed, 294 insertions, 1210 deletions
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index b10752a1d..081f604f5 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Steminvoering"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Glimlag-gesiggie"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Tydperk"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Links-hakie"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Regs-hakie"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dubbelpunt"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Kommapunt"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Uitroepteken"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Vraagteken"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dubbel-aanhalingsteken"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Enkel-aanhalingsteken"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punt"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Vierkantswortel"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Handelsmerk"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Per adres"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Ster"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Pond"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellips"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Onderste dubbel-aanhalingsteken"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Steminvoering"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Steminvoering vir jou taal word nie tans ondersteun nie, maar werk wel in Engels."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Steminvoer gebruik Google se spraakherkenning. "<a href="http://m.google.com/privacy">"Die Mobiel-privaatheidsbeleid"</a>" is van toepassing."</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 033246c23..b45e1c365 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"የድምፅ ግቤ ት"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"የፈገግታ ፊት"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"ተመለስ"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"ነጠላ ሰረዝ"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"ክፍለ ጊዜ"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"የግራ ቅንፍ"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"የቀኝ ቅንፍ"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"ሁለት ነጥብ"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"ድርብ ሰረዝ"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"ቃል አጋኖ"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"ጥያቄ ምልክት"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"ድርብ ጥቅስ"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"ነጠላ ትምህርተ ጥቅስ"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"ነጥብ"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"ስክዌር ሩት"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"ዴልታ"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"የንግድምልክት"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"መጠንቀቅ"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"ኮከብ"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"ፓውንድ"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"ዝቅ ያለ ድርብ ትምህርተ ጥቅስ"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"የድምፅ ግቤ ት"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"የድምፅ ግቤት በአሁኑ ጊዜ ለእርስዎን ቋንቋ አይደግፍም፣ ግን በእንግሊዘኛ ይሰራል።"</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"የድምፅ ግቤት የGoogleን ንግግር ለይቶ ማወቂያ ይጠቀማል።"<a href="http://m.google.com/privacy">"የተንቀሳቃሽ ስልክ ግላዊ ፖሊሲ"</a>" ይተገበራል።"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index 1a381dedc..80d4b0deb 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"إدخال صوتي"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"وجه مبتسم"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"رجوع"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"فاصلة"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"نقطة"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"قوس أيسر"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"قوس أيمن"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"نقطتان"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"فاصلة منقوطة"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"علامة التعجب"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"علامة استفهام"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"علامة الاقتباس المزدوجة"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"علامة الاقتباس المفردة"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"نقطة"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"جذر تربيعي"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"باي"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"دلتا"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"علامة تجارية"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"رعاية"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"نجمة"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"جنيه"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"علامة حذف"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"علامة الاقتباس المزدوجة السفلية"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"الإدخال الصوتي"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"الإدخال الصوتي غير معتمد حاليًا للغتك، ولكنه يعمل باللغة الإنجليزية."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"يستخدم الإدخال الصوتي خاصية التعرف على الكلام من Google. تنطبق "<a href="http://m.google.com/privacy">"سياسة خصوصية الجوال"</a>"."</string>
diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml
index 18641cce4..668212897 100644
--- a/java/res/values-be/strings.xml
+++ b/java/res/values-be/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Галасавы ўвод"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Смайлік"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Увод"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Коска"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Кропка"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Адчыняючая дужка"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Дужка, якая зачыняе"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Двукроп\'е"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Кропка з коскай"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Клічнік"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Пытальнік"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Двукоссі"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Паўдвукоссі"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Кропка"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Квадратны корань"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Пі"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Дэльта"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Гандлёвая марка"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Працэнт"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Пазначыць"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Фунт"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Шматкроп\'е"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Нізкія падвойныя двукоссі"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Галасавы ўвод"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Галасавы ўвод пакуль не падтрымліваецца для вашай мовы, але працуе на англійскай мове."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Галасавы набор выкарыстоўвае распазнанне гаворкі Google. Ужываецца "<a href="http://m.google.com/privacy">"палiтыка прыватнасцi для мабiльных прылад"</a>"."</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index 034b3a230..5a3b60f33 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Гласово въвеждане"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Усмивка"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Запетая"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Точка"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Лява кръгла скоба"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Дясна кръгла скоба"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Двоеточие"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Точка и запетая"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Удивителен знак"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Въпросителен знак"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Двойни кавички"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Единични кавички"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Точка"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Корен квадратен"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Пи"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Делта"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Запазена марка"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"По адрес"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Звездичка"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Диез"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Многоточие"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Долни двойни кавички"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Гласово въвеждане"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"За вашия език понастоящем не се поддържа гласово въвеждане, но можете да го използвате на английски."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Гласовото въвеждане използва функцията на Google за разпознаване на говор. В сила е "<a href="http://m.google.com/privacy">"Декларацията за поверителност за мобилни устройства"</a>"."</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 514300540..149867fd0 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Entrada de veu"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Cara somrient"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Retorn"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Coma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punt"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Parèntesi esquerre"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Parèntesi dret"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Coma"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Punt i coma"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Signe d\'admiració"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Signe d\'interrogació"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Cometes dobles"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Cometes simples"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punt"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Arrel quadrada"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marca comercial"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Percentatge"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Destaca"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Coixinet"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Punts suspensius"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Cometes angulars"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Entrada de veu"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Actualment, l\'entrada de veu no és compatible amb el vostre idioma, però funciona en anglès."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"L\'entrada de veu utilitza el reconeixement de veu de Google. S\'hi aplica la "<a href="http://m.google.com/privacy">"Política de privadesa de Google per a mòbils"</a>"."</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index be96e1c44..6b7842cd3 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Hlasový vstup"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smajlík"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Čárka"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Tečka"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Levá závorka"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Pravá závorka"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dvojtečka"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Středník"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Vykřičník"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Otazník"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Uvozovky"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Apostrof"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Tečka"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Odmocnina"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pí"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Ochranná známka"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Procento"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Hvězdička"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Libra"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Tři tečky"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Uvozovky dole"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Hlasový vstup"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Pro váš jazyk aktuálně není hlasový vstup podporován, ale funguje v angličtině."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Hlasový vstup používá rozpoznávání hlasu Google a vztahují se na něj "<a href="http://m.google.com/privacy">"Zásady ochrany osobních údajů pro mobilní služby"</a>"."</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index 1c194dcf1..a046d6182 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Stemmeinput"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Tilbage"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punktum"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Venstre parentes"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Højre parentes"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Kolon"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikolon"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Udråbstegn"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Spørgsmålstegn"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dobbelt anførselstegn"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Enkelt anførselstegn"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punktum"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Kvadratrod"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Varemærke"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"De bedste hilsner"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Stjerne"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Pund"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipse"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Lave dobbelte anførelsestegn"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Stemmeinput"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Stemmeinput understøttes i øjeblikket ikke for dit sprog, men fungerer på engelsk."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Stemmeinput anvender Googles stemmegenkendelse. "<a href="http://m.google.com/privacy">"Fortrolighedspolitikken for mobilenheder"</a>" gælder."</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index a87968ada..eb0a3fba6 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Spracheingabe"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Eingabe"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punkt"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Öffnende Klammer"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Schließende Klammer"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Doppelpunkt"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikolon"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Ausrufezeichen"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Fragezeichen"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Anführungszeichen"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Einfaches Anführungszeichen"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Aufzählungspunkt"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Quadratwurzel"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Trademark"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"c/o"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Sternchen"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Raute"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Auslassungszeichen"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Anführungszeichen unten"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Spracheingabe"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Spracheingaben werden zurzeit nicht für Ihre Sprache unterstützt, funktionieren jedoch in Englisch."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Die Spracheingabe verwendet die Spracherkennung von Google. Es gelten die "<a href="http://m.google.com/privacy">"Google Mobile-Datenschutzbestimmungen"</a>"."</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 32892290b..9ca1c4eca 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Μικρόφωνο"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Πλήκτρο Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Κόμμα"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Τελεία"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Αριστερή παρένθεση"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Δεξιά παρένθεση"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Άνω και κάτω τελεία"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Ερωτηματικό"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Θαυμαστικό"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Ερωτηματικό"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Διπλά εισαγωγικά"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Μονό εισαγωγικό"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Κουκκίδα"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Τετραγωνική ρίζα"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"πι"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Δέλτα"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Εμπορικό σήμα"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Υπεύθυνος"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Αστερίσκος"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Δίεση"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Αποσιωπητικά"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Χαμηλό διπλό εισαγωγικό"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Φωνητική είσοδος"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Η φωνητική είσοδος δεν υποστηρίζεται αυτή τη στιγμή για τη γλώσσα σας, ωστόσο λειτουργεί στα Αγγλικά."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Οι φωνητικές εντολές χρησιμοποιούν την τεχνολογία αναγνώρισης φωνής της Google. Ισχύει "<a href="http://m.google.com/privacy">"η Πολιτική Απορρήτου για κινητά"</a>"."</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 0ad49c6d3..9e0f1502f 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Voice input"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley face"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Comma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Full stop"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Left parenthesis"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Right parenthesis"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Colon"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semi-colon"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Exclamation mark"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Question mark"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Double quote"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Single quote"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Dot"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Square root"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Trademark"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Care of"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Star"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Pound"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Low double quote"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Voice input"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Voice input is not currently supported for your language, but does work in English."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Voice input uses Google\'s speech recognition. "<a href="http://m.google.com/privacy">"The Mobile Privacy Policy"</a>" applies."</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index b7502c55d..f4c2b4599 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Entrada de voz"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Carita sonriente"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Volver"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Coma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punto"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Paréntesis de apertura"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Paréntesis de cierre"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dos puntos"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Punto y coma"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Signo de admiración"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Signo de interrogación"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Comillas dobles"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Comillas simples"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punto"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Raíz cuadrada"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marca registrada"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"En atención de"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Destacar"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Numeral"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Elipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Comillas bajas"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Entrada por voz"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"La entrada por voz no está admitida en tu idioma, pero sí funciona en inglés."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"La entrada de voz usa el reconocimiento de voz de Google. "<a href="http://m.google.com/privacy">"Se aplica la política de privacidad para"</a>" celulares."</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index 43a2411e2..675a42619 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Entrada de voz"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Emoticono"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Tecla Intro"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Coma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punto"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Paréntesis de apertura"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Paréntesis de cierre"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dos puntos"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Punto y coma"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Signo de exclamación"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Signo de interrogación"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Comillas dobles"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Comillas simples"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punto"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Raíz cuadrada"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marca comercial"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Porcentaje"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Asterisco"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Almohadilla"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Puntos suspensivos"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Comillas dobles bajas"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Introducción de voz"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Actualmente la introducción de voz no está disponible en tu idioma, pero se puede utilizar en inglés."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"La entrada de voz utiliza el reconocimiento de voz de Google. Se aplica la "<a href="http://m.google.com/privacy">"Política de privacidad de Google para móviles"</a>"."</string>
diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml
index c22ca055b..84f4b7f2a 100644
--- a/java/res/values-et/strings.xml
+++ b/java/res/values-et/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Kõnesisend"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Naerunägu"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Tagasi"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Koma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punkt"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Vasaksulg"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Paremsulg"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Koolon"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikoolon"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Hüüumärk"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Küsimärk"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Jutumärgid"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Üksikjutumärgid"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punkt"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Ruutjuur"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pii"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Kaubamärk"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Vahendaja"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Tärn"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Nael"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Kolmikpunkt"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Alumised jutumärgid"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Kõnesisend"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Kõnesisendit ei toetata praegu teie keeles, kuid see töötab inglise keeles."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Kõnesisend kasutab Google\'i kõnetuvastust. Kehtivad "<a href="http://m.google.com/privacy">"Mobile\'i privaatsuseeskirjad"</a>"."</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 8b4e42191..05f3a7a6e 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -93,26 +93,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"ورودی صدا"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"صورت متبسم"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"کاما"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"نقطه"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"پرانتز چپ"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"پرانتز راست"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"دو نقطه"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"نقطه ویرگول"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"علامت تعجب"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"علامت سؤال"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"علامت نقل قول"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"علامت نقل قول تکی"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"نقطه"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"ریشه دوم"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"پی"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"دلتا"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"علامت تجاری"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"توسط"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"ستاره"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"پوند"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"سه نقطه"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"علامت نقل قول پایین"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"ورودی صوتی"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"ورودی صوتی در حال حاضر برای زبان شما پشتیبانی نمی شود اما برای زبان انگلیسی فعال است."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"ورودی صوتی از تشخیص صدای Google استفاده می کند. "<a href="http://m.google.com/privacy">"خط مشی رازداری Mobile "</a>" اعمال می شود."</string>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index d03ec379b..f77604d93 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Puheohjaus"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Hymiö"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Pilkku"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Piste"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Vasen sulkumerkki"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Oikea sulkumerkki"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Kaksoispiste"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Puolipiste"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Huutomerkki"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Kysymysmerkki"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Lainausmerkki"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Puolilainausmerkki"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Piste"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Neliöjuuri"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pii"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Tavaramerkki"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"C/O"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Tähti"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Punta"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipsi"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Rivinalinen lainausmerkki"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Äänisyöte"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Äänisyötettä ei vielä tueta kielelläsi, mutta voit käyttää sitä englanniksi."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Äänisyöte käyttää Googlen puheentunnistusta. "<a href="http://m.google.com/privacy">"Mobile-tietosuojakäytäntö"</a>" on voimassa."</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index f6e43ad63..4eaac4005 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Saisie vocale"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Émoticône"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Entrée"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Virgule"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Point"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Parenthèse gauche"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Parenthèse droite"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Deux-points"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Point-virgule"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Point d\'exclamation"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Point d\'interrogation"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Guillemets doubles"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Apostrophe"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Point"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Racine carrée"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marque commerciale"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"à l\'attention de"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Étoile"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Dièse"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipse"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Guillemets bas doubles"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Saisie vocale"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"La saisie vocale n\'est pas encore prise en charge pour votre langue, mais elle fonctionne en anglais."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"La saisie vocale fait appel à la reconnaissance vocale de Google. Les "<a href="http://m.google.com/privacy">"Règles de confidentialité Google Mobile"</a>" s\'appliquent."</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index ecc4aa7be..229bb8a24 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"ध्‍वनि इनपुट"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"मुस्कुराता चेहरा"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"रिटर्न"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"अल्पविराम"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"पूर्णविराम"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"बायां कोष्ठक"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"दायां कोष्ठक"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"अपूर्ण विराम"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"अर्द्धविराम"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"विस्मयादिबोधक चिह्न"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"प्रश्नचिह्न"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"दोहरा उद्धरण"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"एकल उद्धरण"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"बिंदु"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"वर्गमूल"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"पाइ"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"डेल्टा"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"ट्रेडमार्क"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"संरक्षक"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"तारा"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"पाउंड"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"पदलोप चिह्न"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"निम्न दोहरा उद्धरण"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"ध्‍वनि इनपुट"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"ध्‍वनि इनपुट आपकी भाषा के लिए अभी समर्थित नहीं है, पर अंग्रेज़ी में कार्य करता है."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"ध्‍वनि इनपुट Google की वाक् पहचान का उपयोग करता है. "<a href="http://m.google.com/privacy">"मोबाइल गोपनीयता नीति"</a>" लागू होती है."</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index edda56b55..8fa730f8a 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Glasovni unos"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smješko"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Zarez"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Točka"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Lijeva zagrada"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Desna zagrada"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dvotočka"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Točka-zarez"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Uskličnik"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Upitnik"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dvostruki navodnici"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Jednostruki navodnici"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Točka"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Kvadratni korijen"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Zaštitni znak"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"U ruke"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Zvjezdica"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"funta"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Tri točke"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Donji dvostruki navodnici"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Glasovni ulaz"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Vaš jezik trenutno nije podržan za glasovni unos, ali radi za engleski."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Glasovni unos upotrebljava Googleovo prepoznavanje govora. Primjenjuju se "<a href="http://m.google.com/privacy">"Pravila o privatnosti za uslugu Mobile"</a>"."</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index 9c1a524c4..f397e0be9 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Hangbevitel"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Mosolygós arc"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Vessző"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Pont"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Nyitó zárójel"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Berekesztő zárójel"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Kettőspont"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Pontosvessző"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Felkiáltójel"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Kérdőjel"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dupla idézőjel"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Szimpla idézőjel"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Pont"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Négyzetgyök"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Védjegy"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Százalék"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Csillag"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Kettős kereszt"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Kihagyás"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Alsó dupla idézőjel"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Hangbevitel"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"A hangbevitel szolgáltatás jelenleg nem támogatja az Ön nyelvét, ám angolul működik."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"A hangbevitel a Google beszédfelismerő technológiáját használja, amelyre a "<a href="http://m.google.com/privacy">"Mobil adatvédelmi irányelvek"</a>" érvényesek."</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index 03a66bbe4..6096cc17b 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Masukan suara"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Wajah tersenyum"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Kembali"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Koma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Titik"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Kurung tutup"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Kurung buka"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Titik Dua"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Titik koma"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Tanda seru"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Tanda tanya"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Tanda petik"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Petik tunggal"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Titik"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Akar pangkat dua"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Merek dagang"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Dengan alamat"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Bintang"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Pon"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Elipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Tanda petik bawah"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Masukan suara"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Masukan suara saat ini tidak didukung untuk bahasa Anda, tetapi bekerja dalam Bahasa Inggris."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Masukan suara menggunakan pengenalan ucapan Google. "<a href="http://m.google.com/privacy">"Kebijakan Privasi Seluler"</a>" berlaku."</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 30c3d58df..6c34bee40 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Input vocale"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smile"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Invio"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Virgola"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punto"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Parentesi aperta"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Parentesi chiusa"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Due punti"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Punto e virgola"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Punto esclamativo"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Punto interrogativo"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Virgolette doppie"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Virgolette semplici"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Pallino"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Radice quadrata"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi greco"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marchio commerciale"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Presso"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Asterisco"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Cancelletto"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellissi"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Virgolette doppie basse"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Comandi vocali"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"I comandi vocali non sono attualmente supportati per la tua lingua ma funzionano in inglese."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"L\'input vocale utilizza il riconoscimento vocale di Google. Sono valide le "<a href="http://m.google.com/privacy">"norme sulla privacy di Google Mobile"</a>"."</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 300d0209c..dea0b41a9 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"קלט קולי"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"פרצוף סמיילי"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"חזור"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"פסיק"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"נקודה"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"סוגריים שמאליים"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"סוגריים ימניים"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"נקודתיים"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"נקודה פסיק"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"סימן קריאה"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"סימן שאלה"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"מרכאות כפולות"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"גרש בודד"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"נקודה"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"שורש ריבועי"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"פאי"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"דלתה"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"סימן מסחרי"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"לכבוד"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"כוכב"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"סולמית"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"שלוש נקודות"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"מרכאות כפולות תחתונות"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"קלט קולי"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"קלט קולי אינו נתמך בשלב זה בשפתך, אך הוא פועל באנגלית."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"קלט קולי משתמש בזיהוי דיבור של Google.‏ "<a href="http://m.google.com/privacy">"מדיניות הפרטיות של \'Google לנייד\'"</a>" חלה במקרה זה."</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index bc2847869..d6f967a4e 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"音声入力"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"顔文字"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"カンマ"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"ピリオド"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"左かっこ"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"右かっこ"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"コロン"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"セミコロン"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"感嘆符"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"疑問符"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"二重引用符"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"単一引用符"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"中点"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"平方根"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"円周率記号"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"デルタ"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"商標記号"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"宛名記号"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"アスタリスク"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"ナンバー記号"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"省略記号"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"下付き二重引用符"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"音声入力"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"音声入力は現在英語には対応していますが、日本語には対応していません。"</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"音声入力ではGoogleの音声認識技術を利用します。"<a href="http://m.google.com/privacy">"モバイルプライバシーポリシー"</a>"が適用されます。"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index 926798dae..7382a0cd4 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"음성 입력"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"웃는 얼굴"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"리턴 키"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"쉼표"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"마침표"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"왼쪽 괄호"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"오른쪽 괄호"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"콜론"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"세미콜론"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"느낌표"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"물음표"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"큰따옴표"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"작은따옴표"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"점"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"제곱근"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"파이"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"델타"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"상표(™)"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"퍼센트 키"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"별표"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"파운드"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"생략 부호"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"아래쪽 큰따옴표"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"음성 입력"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"음성 입력은 현재 자국어로 지원되지 않으며 영어로 작동됩니다."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"음성 입력에서는 Google의 음성 인식 기능을 사용합니다. "<a href="http://m.google.com/privacy">"모바일 개인정보취급방침"</a>"이 적용됩니다."</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index 548bd4d8b..646548d79 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Įvestis balsu"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Šypsenėlė"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Grįžti"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Kablelis"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Taškas"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Kairysis skliaustas"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Dešinysis skliaustas"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dvitaškis"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Kabliataškis"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Šauktukas"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Klaustukas"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dvigubos kabutės"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Viengubos kabutės"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Taškas"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Kvadratinė šaknis"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Prekės ženklas"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Perduoti"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Pažymėti žvaigždute"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Svaras"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Daugtaškis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Apatinės dvigubos kabutės"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Balso įvestis"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Šiuo metu balso įvestis jūsų kompiuteryje nepalaikoma, bet ji veikia anglų k."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Balso įvesčiai naudojamas „Google“ kalbos atpažinimas. Taikoma "<a href="http://m.google.com/privacy">"privatumo politika mobiliesiems"</a>"."</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index a4ce4c67d..b3406c3b1 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Balss ievade"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smaidoša seja"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Ievadīšanas taustiņš"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komats"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punkts"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Kreisā iekava"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Labā iekava"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Kols"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikols"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Izsaukuma zīme"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Jautājuma zīme"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Pēdiņas"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Vienpēdiņas"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punkts"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Kvadrātsakne"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pī"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Preču zīme"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"c/o"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Zvaigznīte"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Cipara simbols"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Daudzpunkte"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Apakšējās pēdiņas"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Balss ievade"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Balss ievade jūsu valodā pašlaik netiek atbalstīta, taču tā ir pieejama angļu valodā."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Balss ievadei tiek izmantota Google runas atpazīšanas funkcija. Uz šīs funkcijas lietošanu attiecas "<a href="http://m.google.com/privacy">"mobilo sakaru ierīču lietošanas konfidencialitātes politika"</a>"."</string>
diff --git a/java/res/values-ms/strings.xml b/java/res/values-ms/strings.xml
index f56e6d541..2a9f516d7 100644
--- a/java/res/values-ms/strings.xml
+++ b/java/res/values-ms/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Input suara"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Muka senyum"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Koma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Tempoh"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Tanda kurung kiri"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Tanda kurung kanan"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Titik bertindih"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Koma bertitik"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Tanda seru"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Tanda soal"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Tanda petikan berganda"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Tanda petikan tunggal"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Titik"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Punca kuasa dua"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Tanda dagangan"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Dengan alamat"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Bintang"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Paun"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Elipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Tanda petikan berganda rendah"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Input suara"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Input suara tidak disokong untuk bahasa anda pada masa ini tetapi ia berfungsi dalam bahasa Inggeris."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Input suara menggunakan pengecaman pertuturan Google. "<a href="http://m.google.com/privacy">"Dasar Privasi Mudah Alih"</a>" digunakan."</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 3fd2bac2f..413c7ae5d 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Taleinndata"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smilefjes"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punktum"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Venstre parentes"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Høyre parentes"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Kolon"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikolon"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Utropstegn"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Spørsmålstegn"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dobbelt anførselstegn"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Enkelt anførselstegn"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Prikk"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Kvadratrot"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Varemerke"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"c/o"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Stjerne"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Firkant"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipse"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Lavt dobbelt anførselstegn"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Stemmedata"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Stemmedata håndteres foreløpig ikke på ditt språk, men fungerer på engelsk."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Google Voice bruker Googles talegjenkjenning. "<a href="http://m.google.com/privacy">"Personvernreglene for mobil"</a>" gjelder."</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index 629dafdf3..ba6dd407f 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Spraakinvoer"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley-gezichtje"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punt"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Linkerhaakje"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Rechterhaakje"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dubbele punt"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Puntkomma"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Uitroepteken"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Vraagteken"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dubbele aanhalingstekens"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Enkel aanhalingsteken"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Stip"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Vierkantswortel"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Handelsmerk"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Ten attentie van"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Ster"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Hekje"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Weglatingsteken"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Lage dubbele aanhalingstekens"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Spraakinvoer"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Spraakinvoer wordt momenteel niet ondersteund in uw taal, maar is wel beschikbaar in het Engels."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Spraakinvoer maakt gebruik van de spraakherkenning van Google. Het "<a href="http://m.google.com/privacy">"Privacybeleid van Google Mobile"</a>" is van toepassing."</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index 3249044ca..3ad383116 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Wprowadzanie głosowe"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Uśmiechnięta buźka"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Przecinek"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Kropka"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Lewy nawias"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Prawy nawias"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dwukropek"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Średnik"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Wykrzyknik"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Pytajnik"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Cudzysłów podwójny"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Cudzysłów pojedynczy"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punkt"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Pierwiastek kwadratowy"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Znak towarowy"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Znak „przez grzeczność”"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Gwiazdka"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Krzyżyk"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Wielokropek"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Cudzysłów podwójny dolny"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Wprowadzanie głosowe"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Wprowadzanie głosowe obecnie nie jest obsługiwane w Twoim języku, ale działa w języku angielskim."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Funkcja wprowadzania głosowego wykorzystuje mechanizm rozpoznawania mowy. Obowiązuje "<a href="http://m.google.com/privacy">"Polityka prywatności w usługach mobilnych"</a>"."</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index ea74a1619..ae7443a0b 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Entrada de voz"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Cara sorridente"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Vírgula"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Ponto final"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Parêntese esquerdo"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Parêntese direito"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dois pontos"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Ponto e vírgula"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Ponto de exclamação"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Ponto de interrogação"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Aspas"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Plica"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Ponto"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Raiz quadrada"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marca comercial"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Ao cuidado de"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Marcar com estrela"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Cardinal"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Reticências"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Aspas duplas baixas"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Entrada de voz"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Actualmente, a entrada de voz não é suportada para o seu idioma, mas funciona em inglês."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"A entrada de voz utiliza o reconhecimento de voz da Google. É aplicável a "<a href="http://m.google.com/privacy">"Política de privacidade do Google Mobile"</a>"."</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index 150440278..16003f6de 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Entrada de voz"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Carinha sorridente"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Voltar"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Vírgula"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Ponto final"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Parêntese esquerdo"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Parêntese direito"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dois pontos"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Ponto e vírgula"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Ponto de exclamação"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Ponto de interrogação"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Aspa dupla"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Aspa simples"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Ponto"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Raiz quadrada"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marca registrada"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Porcentagem"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Asterisco"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Sustenido"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Reticências"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Aspas duplas inferiores"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Entrada de voz"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"A entrada de voz não é suportada no momento para o seu idioma, mas funciona em inglês."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"A entrada de texto por voz usa o reconhecimento de voz do Google. "<a href="http://m.google.com/privacy">"A política de privacidade para celulares"</a>" é aplicada."</string>
diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml
index b9196151e..57173af4e 100644
--- a/java/res/values-rm/strings.xml
+++ b/java/res/values-rm/strings.xml
@@ -146,46 +146,8 @@
<skip />
<!-- no translation found for spoken_description_return (8178083177238315647) -->
<skip />
- <!-- no translation found for spoken_description_comma (4970844442999724586) -->
- <skip />
- <!-- no translation found for spoken_description_period (5286614628077903945) -->
- <skip />
- <!-- no translation found for spoken_description_left_parenthesis (8524822120595052415) -->
- <skip />
- <!-- no translation found for spoken_description_right_parenthesis (1085757995851933164) -->
- <skip />
- <!-- no translation found for spoken_description_colon (4312420908484277077) -->
- <skip />
- <!-- no translation found for spoken_description_semicolon (37737920987155179) -->
- <skip />
- <!-- no translation found for spoken_description_exclamation_mark (2625684427460737157) -->
- <skip />
- <!-- no translation found for spoken_description_question_mark (7074097784255379666) -->
- <skip />
- <!-- no translation found for spoken_description_double_quote (5485320575389905967) -->
- <skip />
- <!-- no translation found for spoken_description_single_quote (4451320362665463938) -->
- <skip />
<!-- no translation found for spoken_description_dot (40711082435231673) -->
<skip />
- <!-- no translation found for spoken_description_square_root (190595160284757811) -->
- <skip />
- <!-- no translation found for spoken_description_pi (4554418247799952239) -->
- <skip />
- <!-- no translation found for spoken_description_delta (3607948313655721579) -->
- <skip />
- <!-- no translation found for spoken_description_trademark (475877774077871369) -->
- <skip />
- <!-- no translation found for spoken_description_care_of (7492800237237796530) -->
- <skip />
- <!-- no translation found for spoken_description_star (1009742725387231977) -->
- <skip />
- <!-- no translation found for spoken_description_pound (5530577649206922631) -->
- <skip />
- <!-- no translation found for spoken_description_ellipsis (1687670869947652062) -->
- <skip />
- <!-- no translation found for spoken_description_low_double_quote (3551394572784840975) -->
- <skip />
<string name="voice_warning_title" msgid="4419354150908395008">"Cumonds vocals"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"\"Cumonds vocals en Vossa lingua na vegnan actualmain betg sustegnids, ma la funcziun è disponibla per englais.\""</string>
<!-- no translation found for voice_warning_may_not_understand (5596289095878251072) -->
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 5b15d041b..3971dc83f 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Intrare vocală"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Faţă zâmbitoare"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Virgulă"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punct"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Paranteză închisă"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Paranteză deschisă"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Două puncte"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Punct şi virgulă"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Semn de exclamaţie"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Semn de întrebare"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Ghilimele duble"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Ghilimele simple"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punct"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Rădăcină pătrată"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Marcă comercială"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"În atenţia"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Stea"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Diez"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Puncte de suspensie"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Ghilimele duble de deschidere"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Intrare voce"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Intrarea vocală nu este acceptată în prezent pentru limba dvs., însă funcţionează în limba engleză."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Intrarea vocală utilizează funcţia Google de recunoaştere vocală. Se aplică "<a href="http://m.google.com/privacy">"Politica de confidenţialitate Google Mobil"</a>"."</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index 9c3c1d046..62f84d47d 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Голосовой ввод"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Смайлик"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Клавиша \"Ввод\""</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Запятая"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Точка"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Открывающая скобка"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Закрывающая скобка"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Двоеточие"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Точка с запятой"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Восклицательный знак"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Вопросительный знак"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Двойная кавычка"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Одинарные кавычки"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Точка"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Квадратный корень"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Число \"пи\""</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Дельта"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Товарный знак"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Знак процента"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Пометить"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Английский фунт"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Многоточие"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Нижние двойные кавычки"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Голосовой ввод"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"В настоящее время функция голосового ввода не поддерживает ваш язык, но вы можете пользоваться ей на английском."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Голосовой ввод использует алгоритмы распознавания речи Google. Действует "<a href="http://m.google.com/privacy">"политика конфиденциальности для мобильных устройств"</a>"."</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index efc637f24..188c3b64c 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Hlasový vstup"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Usmiata tvár"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Čiarka"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Bodka"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Ľavá zátvorka"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Pravá zátvorka"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dvojbodka"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Bodkočiarka"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Výkričník"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Otáznik"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Úvodzovky"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Jednoduché úvodzovky"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Bodka"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Odmocnina"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pí"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Trademark"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Percento"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Hviezdička"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Libra"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Tri bodky"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Dolné úvodzovky"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Hlasový vstup"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Pre váš jazyk aktuálne nie je hlasový vstup podporovaný, ale funguje v angličtine."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Hlasový vstup používa rozpoznávanie hlasu Google. Na používanie hlasového vstupu sa vzťahujú "<a href="http://m.google.com/privacy">"Pravidlá ochrany osobných údajov pre mobilné služby"</a>"."</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index 05a0d67ac..cea30bb63 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Glasovni vnos"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smeško"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Vračalka"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Vejica"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Pika"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Levi oklepaj"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Desni oklepaj"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dvopičje"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Podpičje"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Klicaj"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Vprašaj"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dvojni narekovaji"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Enojni narekovaj"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Pika"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Koren"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Blagovna znamka"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Odstotek"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Zvezdica"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Lojtra"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Tri pike"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Spodnji dvojni narekovaji"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Glasovni vnos"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Glasovni vnos trenutno ni podprt v vašem jeziku, deluje pa v angleščini."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Glasovni vnos uporablja Googlovo prepoznavanje govora. Zanj velja "<a href="http://m.google.com/privacy">"pravilnik o zasebnosti za mobilne naprave"</a>"."</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index 7a88370b4..b66bf054a 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Гласовни унос"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Смајли"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Зарез"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Тачка"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Лева заграда"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Десна заграда"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Две тачке"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Тачка-зарез"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Знак узвика"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Знак питања"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Дупли наводник"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Полунаводник"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Тачка"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Квадратни корен"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Пи"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Делта"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Жиг"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"За"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Звездица"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Фунта"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Три тачке"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Отворени доњи наводници"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Гласовни унос"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Гласовни унос тренутно није подржан за ваш језик, али функционише на енглеском."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Гласовни унос користи Google-ову функцију за препознавање гласа. Примењује се "<a href="http://m.google.com/privacy">"политика приватности за мобилне уређаје"</a>"."</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 3fd901311..06f706a84 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Röstinmatning"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Uttryckssymbol"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Retur"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Komma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Punkt"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Vänster parentes"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Högerparentes"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Kolon"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikolon"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Utropstecken"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Frågetecken"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dubbla citattecken"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Enkla citattecken"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Punkt"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Kvadratrot"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Trademark"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Care of"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Stjärna"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Fyrkant"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellips"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Nedre dubbla citattecken"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Röstindata"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Röstindata stöds inte på ditt språk än, men tjänsten fungerar på engelska."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Röstinmatning använder sig av Googles tjänst för taligenkänning. "<a href="http://m.google.com/privacy">"Sekretesspolicyn för mobila enheter"</a>" gäller."</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index 46a95c43f..c50c9102c 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Uingizaji sauti"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Uso wenye tabasamu"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Rudi"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Koma"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Muda"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Mabano ya kushoto"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"mabano ya kulia"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Nukta mbili juu na chini"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Semikoloni"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Alama ya mshangao"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Alama ya kiulizio"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Nukuu mara mbili"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Nukuu moja"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Nukta"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Square root"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Chapa ya Biashara"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Kwa ulinzi wa"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Nyota"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Pauni"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Nukuu ya chini maradufu"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Uingizaji wa sauti"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Uingizaji wa sauti hauhimiliwi kwa lugha yako kwa sasa, lakini inafanya kazi kwa Kiingereza."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Uingizaji wa sauti hutumia utambuaji wa usemi wa Google. "<a href="http://m.google.com/privacy">"Sera ya Faragha ya Simu za mkononi "</a>" hutumika."</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index e92ff01fe..64d6c3fc9 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"การป้อนข้อมูลด้วยเสียง"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"หน้ายิ้ม"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"เครื่องหมายจุลภาค"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"มหัพภาค"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"วงเล็บซ้าย"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"วงเล็บขวา"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"เครื่องหมายจุดคู่"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"อัฒภาค"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"อัศเจรีย์"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"เครื่องหมายคำถาม"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"อัญประกาศ"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"เครื่องหมายคำพูดเดี่ยว"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"เครื่องหมายจุด"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"รากที่สอง"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"เดลตา"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"เครื่องหมายการค้า"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Care of"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"ติดดาว"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"ปอนด์"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"จุดไข่ปลา"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"อัญประกาศล่าง"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"การป้อนข้อมูลด้วยเสียง"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"ขณะนี้การป้อนข้อมูลด้วยเสียงยังไม่ได้รับการสนับสนุนในภาษาของคุณ แต่ใช้ได้ในภาษาอังกฤษ"</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"ป้อนข้อมูลด้วยเสียงใช้การจดจำคำพูดของ Google "<a href="http://m.google.com/privacy">" นโยบายส่วนบุคคลของมือถือ"</a>"มีผลบังคับใช้"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index 81cc4417e..7f8f056fe 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Input ng boses"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley na mukha"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Bumalik"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Kuwit"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Tuldok"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Kaliwang panaklong"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Kanang panaklong"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Tutuldok"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Tuldukuwit"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Tandang padamdam"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Tandang pananong"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Panipi"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Kudlit"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Tuldok"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Square root"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Trademark"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Care of"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Star"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Pound"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Mababang panipi"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Pag-input ng boses"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Hindi kasalukuyang suportado ang pag-input ng boses para sa iyong wika, ngunit gumagana sa Ingles."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Gumagamit ang pag-input ng boses ng speech recognition ng Google. Nalalapat "<a href="http://m.google.com/privacy">"Ang Patakaran sa Privacy ng Mobile"</a>"."</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 455000ce2..1295fb68b 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Ses girişi"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Gülen yüz"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Enter"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Virgül"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Nokta"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Sol parantez"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Sağ parantez"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"İki Nokta"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Noktalı virgül"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Ünlem işareti"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Soru işareti"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Çift tırnak"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Tek tırnak işareti"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Nokta"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Karekök"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Ticari marka"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Yüzde işareti"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Yıldız"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Kare"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Üç nokta"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Alt çift tırnak"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Ses girişi"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Ses girişi, şu anda sizin diliniz için desteklenmiyor ama İngilizce dilinde kullanılabilir."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Ses girişi Google\'ın konuşma tanıma işlevini kullanır. "<a href="http://m.google.com/privacy">" Mobil Gizlilik Politikası"</a>" geçerlidir."</string>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index bb14148ca..471680025 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Голосовий ввід"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Смайлик"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Клавіша Return"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Кома"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Крапка"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Ліва дужка"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Права дужка"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Двокрапка"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Крапка з комою"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Знак оклику"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Знак питання"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Подвійні лапки"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Одинарні лапки"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Крапка"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Квадратний корінь"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Пі"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Дельта"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Торговельна марка"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Через"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Зірочка"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Решітка"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Три крапки"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Нижні подвійні лапки"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Голос. ввід"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Голос. ввід наразі не підтрим. для вашої мови, але можна користуватися англійською."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Голосовий ввід використовує розпізнавання мовлення Google. Застосовується "<a href="http://m.google.com/privacy">"Політика конфіденційності для мобільних пристроїв"</a>"."</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 5e010f696..343a12ac6 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Nhập dữ liệu bằng giọng nói"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Mặt cười"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Quay lại"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Dấu phẩy"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Dấu chấm"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"Dấu ngoặc trái"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"Dấu ngoặc phải"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Dấu hai chấm"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Dấu chấm phẩy"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Dấu hỏi chấm"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Dấu chấm hỏi"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Dấu ngoặc kép"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Dấu nháy đơn"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Dấu chấm"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Dấu khai căn"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Số Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Thương hiệu"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Dấu phần trăm"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Dấu sao"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Dấu thăng"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Dấu ba chấm"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Dấu nháy kép dưới"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Nhập liệu bằng giọng nói"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Nhập liệu bằng giọng nói hiện không được hỗ trợ cho ngôn ngữ của bạn nhưng hoạt động với ngôn ngữ tiếng Anh."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Nhập liệu bằng giọng nói sử dụng nhận dạng giọng nói của Google. Áp dụng "<a href="http://m.google.com/privacy">"Chính sách bảo mật dành cho điện thoại di động"</a>"."</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 0f663cd89..a2a092822 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"语音输入"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"笑脸"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"返回"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"逗号"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"句号"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"左括号"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"右括号"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"冒号"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"分号"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"感叹号"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"问号"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"双引号"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"单引号"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"点"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"平方根"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"圆周率"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"商标符号"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"百分号"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"星号"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"井号"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"省略号"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"低双引号"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"语音输入"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"语音输入功能当前还不支持您的语言,您只能输入英语语音。"</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"语音输入采用了 Google 的语音识别技术,因此请遵守"<a href="http://m.google.com/privacy">"“Google 移动”隐私权政策"</a>"。"</string>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 9e2279238..f3935896e 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"語音輸入"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"笑臉"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"返回"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"逗號"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"句號"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"左括弧"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"右括弧"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"冒號"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"分號"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"驚嘆號"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"問號"</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"雙引號"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"單引號"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"點"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"平方根"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"圓周率"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"商標"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"百分比"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"星號"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"井字鍵"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"省略符號"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"下雙引號"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"語音輸入"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"語音輸入目前不支援您的語言,但是可以辨識英文。"</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"語音輸入使用 Google 的語音辨識功能,並遵循《"<a href="http://m.google.com/privacy">"行動服務隱私權政策"</a>"》。"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 9750d9453..d1dbeac0a 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -89,26 +89,7 @@
<string name="spoken_description_mic" msgid="615536748882611950">"Okungenayo kwezwi"</string>
<string name="spoken_description_smiley" msgid="2256309826200113918">"Ubuso-obumomothekayo"</string>
<string name="spoken_description_return" msgid="8178083177238315647">"Buyisela"</string>
- <string name="spoken_description_comma" msgid="4970844442999724586">"Ikhefu"</string>
- <string name="spoken_description_period" msgid="5286614628077903945">"Isikhathi"</string>
- <string name="spoken_description_left_parenthesis" msgid="8524822120595052415">"ama-parenthesis esobunxele"</string>
- <string name="spoken_description_right_parenthesis" msgid="1085757995851933164">"I-parenthesis yesokudla"</string>
- <string name="spoken_description_colon" msgid="4312420908484277077">"Ikholoni"</string>
- <string name="spoken_description_semicolon" msgid="37737920987155179">"Ikhefanangqi"</string>
- <string name="spoken_description_exclamation_mark" msgid="2625684427460737157">"Uphawu lokumemeza"</string>
- <string name="spoken_description_question_mark" msgid="7074097784255379666">"Imaki yombuzo."</string>
- <string name="spoken_description_double_quote" msgid="5485320575389905967">"Ukusho kabili"</string>
- <string name="spoken_description_single_quote" msgid="4451320362665463938">"Isibizo esisodwa"</string>
<string name="spoken_description_dot" msgid="40711082435231673">"Icashazi"</string>
- <string name="spoken_description_square_root" msgid="190595160284757811">"Impande yesikwele"</string>
- <string name="spoken_description_pi" msgid="4554418247799952239">"Pi"</string>
- <string name="spoken_description_delta" msgid="3607948313655721579">"i-Delta"</string>
- <string name="spoken_description_trademark" msgid="475877774077871369">"Uphawu lomkhiqizo"</string>
- <string name="spoken_description_care_of" msgid="7492800237237796530">"Ukunakekela ko"</string>
- <string name="spoken_description_star" msgid="1009742725387231977">"Inkanyezi"</string>
- <string name="spoken_description_pound" msgid="5530577649206922631">"Iphawundi"</string>
- <string name="spoken_description_ellipsis" msgid="1687670869947652062">"Ellipsis"</string>
- <string name="spoken_description_low_double_quote" msgid="3551394572784840975">"Isilinganiso esikabili esiphansi"</string>
<string name="voice_warning_title" msgid="4419354150908395008">"Okufakwa ngezwi"</string>
<string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Okufakwa ngezwi akusekelwa olimini lwakho, kodwa kuyasebenza nge-English."</string>
<string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Okufakwayo ngezwi kusebenzisa ukufanisa izwi kwe-Google. "<a href="http://m.google.com/privacy">"Inqubomgomo Yobumfihlo Yefoni"</a>" iyasebenza."</string>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index dd2206da8..410a94208 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -281,7 +281,7 @@
</attr>
<!-- The icon to display on the key instead of the label. -->
<attr name="keyIcon" format="enum">
- <!-- This should be aligned with the KeyboardIcons.ICONS_TO_ATTRS_MAP -->
+ <!-- This should be aligned with the KeyboardIconsSet.ICON_* -->
<enum name="iconShiftKey" value="1" />
<enum name="iconDeleteKey" value="2" />
<enum name="iconSettingsKey" value="3" />
@@ -296,12 +296,12 @@
</attr>
<!-- The icon for disabled key -->
<attr name="keyIconDisabled" format="enum">
- <!-- This should be aligned with the KeyboardIcons.ICONS_TO_ATTRS_MAP -->
+ <!-- This should be aligned with the KeyboardIconsSet.ICON_* -->
<enum name="iconDisabledShortcutKey" value="12" />
</attr>
<!-- The icon to show in the popup preview. -->
<attr name="keyIconPreview" format="enum">
- <!-- This should be aligned with the KeyboardIcons.ICONS_TO_ATTRS_MAP -->
+ <!-- This should be aligned with the KeyboardIconsSet.ICON_* -->
<enum name="iconPreviewTabKey" value="13" />
</attr>
<!-- The key style to specify a set of key attributes defined by <key_style/> -->
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index a67ddf7c2..d64059f33 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -180,6 +180,8 @@
<string name="spoken_description_smiley">Smiley face</string>
<!-- Spoken description for the "Return" keyboard key. -->
<string name="spoken_description_return">Return</string>
+ <!-- Spoken description for the "\u2022" (BULLET) keyboard key. -->
+ <string name="spoken_description_dot">Dot</string>
<!-- Voice related labels -->
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index 14ee19ee9..ab9bc4672 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -99,19 +99,36 @@
latin:keyActionFlags="isRepeatable|noKeyPreview"
latin:backgroundType="functional" />
<!-- Return key style -->
+ <key-style
+ latin:styleName="defaultReturnKeyStyle"
+ latin:code="@integer/key_return"
+ latin:keyIcon="iconReturnKey"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional" />
<switch>
<case
latin:mode="im"
>
<!-- Smiley key. -->
- <key-style
- latin:styleName="returnKeyStyle"
- latin:keyLabel=":-)"
- latin:keyOutputText=":-) "
- latin:keyLabelFlags="hasPopupHint|preserveCase"
- latin:moreKeys="@string/more_keys_for_smiley"
- latin:maxMoreKeysColumn="5"
- latin:backgroundType="functional" />
+ <switch>
+ <case
+ latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
+ >
+ <key-style
+ latin:styleName="returnKeyStyle"
+ latin:parentStyle="defaultReturnKeyStyle" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="returnKeyStyle"
+ latin:keyLabel=":-)"
+ latin:keyOutputText=":-) "
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="@string/more_keys_for_smiley"
+ latin:maxMoreKeysColumn="5"
+ latin:backgroundType="functional" />
+ </default>
+ </switch>
</case>
<case
latin:imeAction="actionGo"
@@ -171,10 +188,7 @@
<default>
<key-style
latin:styleName="returnKeyStyle"
- latin:code="@integer/key_return"
- latin:keyIcon="iconReturnKey"
- latin:keyActionFlags="noKeyPreview"
- latin:backgroundType="functional" />
+ latin:parentStyle="defaultReturnKeyStyle" />
</default>
</switch>
<key-style
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index a6c9fd485..686392da8 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -25,10 +25,10 @@ import android.text.TextUtils;
import android.util.Log;
import android.util.Xml;
+import com.android.inputmethod.keyboard.internal.KeySpecParser;
import com.android.inputmethod.keyboard.internal.KeyStyles;
import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
-import com.android.inputmethod.keyboard.internal.KeySpecParser;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.Utils;
import com.android.inputmethod.latin.XmlParseUtils;
@@ -74,13 +74,11 @@ public class Key {
private static final int LABEL_FLAGS_SHIFTED_LETTER_ACTIVATED = 0x10000;
/** Icon to display instead of a label. Icon takes precedence over a label */
- private final int mIconAttrId;
- // TODO: Remove this variable.
- private Drawable mIcon;
+ private final int mIconId;
/** Icon for disabled state */
- private final int mDisabledIconAttrId;
+ private final int mDisabledIconId;
/** Preview version of the icon, for the preview popup */
- public final int mPreviewIconAttrId;
+ private final int mPreviewIconId;
/** Width of the key, not including the gap */
public final int mWidth;
@@ -128,21 +126,13 @@ public class Key {
/** Key is enabled and responds on press */
private boolean mEnabled = true;
- private static Drawable getIcon(Keyboard.Params params, String moreKeySpec) {
- final int iconAttrId = KeySpecParser.getIconAttrId(moreKeySpec);
- if (iconAttrId == KeyboardIconsSet.ICON_UNDEFINED) {
- return null;
- } else {
- return params.mIconsSet.getIconByAttrId(iconAttrId);
- }
- }
-
/**
* This constructor is being used only for key in more keys keyboard.
*/
public Key(Resources res, Keyboard.Params params, String moreKeySpec,
int x, int y, int width, int height) {
- this(params, KeySpecParser.getLabel(moreKeySpec), null, getIcon(params, moreKeySpec),
+ this(params, KeySpecParser.getLabel(moreKeySpec), null,
+ KeySpecParser.getIconId(moreKeySpec),
KeySpecParser.getCode(res, moreKeySpec),
KeySpecParser.getOutputText(moreKeySpec),
x, y, width, height);
@@ -151,7 +141,7 @@ public class Key {
/**
* This constructor is being used only for key in popup suggestions pane.
*/
- public Key(Keyboard.Params params, String label, String hintLabel, Drawable icon,
+ public Key(Keyboard.Params params, String label, String hintLabel, int iconId,
int code, CharSequence outputText, int x, int y, int width, int height) {
mHeight = height - params.mVerticalGap;
mHorizontalGap = params.mHorizontalGap;
@@ -168,10 +158,9 @@ public class Key {
mOutputText = outputText;
mCode = code;
mAltCode = Keyboard.CODE_UNSPECIFIED;
- mIconAttrId = KeyboardIconsSet.ATTR_UNDEFINED;
- mIcon = icon;
- mDisabledIconAttrId = KeyboardIconsSet.ATTR_UNDEFINED;
- mPreviewIconAttrId = KeyboardIconsSet.ATTR_UNDEFINED;
+ mIconId = iconId;
+ mDisabledIconId = KeyboardIconsSet.ICON_UNDEFINED;
+ mPreviewIconId = KeyboardIconsSet.ICON_UNDEFINED;
// Horizontal gap is divided equally to both sides of the key.
mX = x + mHorizontalGap / 2;
mY = y;
@@ -228,18 +217,16 @@ public class Key {
mBackgroundType = style.getInt(keyAttr,
R.styleable.Keyboard_Key_backgroundType, BACKGROUND_TYPE_NORMAL);
- final KeyboardIconsSet iconsSet = params.mIconsSet;
mVisualInsetsLeft = (int) Keyboard.Builder.getDimensionOrFraction(keyAttr,
R.styleable.Keyboard_Key_visualInsetsLeft, params.mBaseWidth, 0);
mVisualInsetsRight = (int) Keyboard.Builder.getDimensionOrFraction(keyAttr,
R.styleable.Keyboard_Key_visualInsetsRight, params.mBaseWidth, 0);
- mPreviewIconAttrId = KeyboardIconsSet.getIconAttrId(style.getInt(keyAttr,
- R.styleable.Keyboard_Key_keyIconPreview, KeyboardIconsSet.ICON_UNDEFINED));
- mIconAttrId = KeyboardIconsSet.getIconAttrId(style.getInt(keyAttr,
- R.styleable.Keyboard_Key_keyIcon, KeyboardIconsSet.ICON_UNDEFINED));
- mIcon = iconsSet.getIconByAttrId(mIconAttrId);
- mDisabledIconAttrId = KeyboardIconsSet.getIconAttrId(style.getInt(keyAttr,
- R.styleable.Keyboard_Key_keyIconDisabled, KeyboardIconsSet.ICON_UNDEFINED));
+ mPreviewIconId = style.getInt(keyAttr,
+ R.styleable.Keyboard_Key_keyIconPreview, KeyboardIconsSet.ICON_UNDEFINED);
+ mIconId = style.getInt(keyAttr,
+ R.styleable.Keyboard_Key_keyIcon, KeyboardIconsSet.ICON_UNDEFINED);
+ mDisabledIconId = style.getInt(keyAttr,
+ R.styleable.Keyboard_Key_keyIconDisabled, KeyboardIconsSet.ICON_UNDEFINED);
mLabelFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags, 0);
final boolean preserveCase = (mLabelFlags & LABEL_FLAGS_PRESERVE_CASE) != 0;
@@ -336,16 +323,15 @@ public class Key {
key.mCode,
key.mLabel,
key.mHintLabel,
- key.mIconAttrId,
+ key.mIconId,
key.mBackgroundType,
// Key can be distinguishable without the following members.
// key.mAltCode,
// key.mOutputText,
// key.mActionFlags,
// key.mLabelFlags,
- // key.mIcon,
- // key.mDisabledIconAttrId,
- // key.mPreviewIconAttrId,
+ // key.mDisabledIconId,
+ // key.mPreviewIconId,
// key.mHorizontalGap,
// key.mVerticalGap,
// key.mVisualInsetLeft,
@@ -364,7 +350,7 @@ public class Key {
&& o.mCode == mCode
&& TextUtils.equals(o.mLabel, mLabel)
&& TextUtils.equals(o.mHintLabel, mHintLabel)
- && o.mIconAttrId == mIconAttrId
+ && o.mIconId == mIconId
&& o.mBackgroundType == mBackgroundType;
}
@@ -382,7 +368,7 @@ public class Key {
public String toString() {
return String.format("%s/%s %d,%d %dx%d %s/%s/%s",
Keyboard.printableCode(mCode), mLabel, mX, mY, mWidth, mHeight, mHintLabel,
- KeyboardIconsSet.getIconName(mIconAttrId), backgroundName(mBackgroundType));
+ KeyboardIconsSet.getIconName(mIconId), backgroundName(mBackgroundType));
}
private static String backgroundName(int backgroundType) {
@@ -412,8 +398,8 @@ public class Key {
mHitBox.bottom = params.mOccupiedHeight + params.mBottomPadding;
}
- public boolean isSpacer() {
- return false;
+ public final boolean isSpacer() {
+ return this instanceof Spacer;
}
public boolean isShift() {
@@ -507,14 +493,18 @@ public class Key {
return (mLabelFlags & LABEL_FLAGS_SHIFTED_LETTER_ACTIVATED) != 0;
}
- // TODO: Get rid of this method.
public Drawable getIcon(KeyboardIconsSet iconSet) {
- return mEnabled ? mIcon : iconSet.getIconByAttrId(mDisabledIconAttrId);
+ return iconSet.getIconDrawable(mIconId);
+ }
+
+ public Drawable getDisabledIcon(KeyboardIconsSet iconSet) {
+ return iconSet.getIconDrawable(mDisabledIconId);
}
- // TODO: Get rid of this method.
- public void setIcon(Drawable icon) {
- mIcon = icon;
+ public Drawable getPreviewIcon(KeyboardIconsSet iconSet) {
+ return mPreviewIconId != KeyboardIconsSet.ICON_UNDEFINED
+ ? iconSet.getIconDrawable(mPreviewIconId)
+ : iconSet.getIconDrawable(mIconId);
}
/**
@@ -651,13 +641,9 @@ public class Key {
/**
* This constructor is being used only for divider in more keys keyboard.
*/
- public Spacer(Keyboard.Params params, Drawable icon, int x, int y, int width, int height) {
- super(params, null, null, icon, Keyboard.CODE_UNSPECIFIED, null, x, y, width, height);
- }
-
- @Override
- public boolean isSpacer() {
- return true;
+ protected Spacer(Keyboard.Params params, int x, int y, int width, int height) {
+ super(params, null, null, KeyboardIconsSet.ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED,
+ null, x, y, width, height);
}
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java
index dce2c37f2..6e13b95b5 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java
@@ -48,14 +48,17 @@ public interface KeyboardActionListener {
* presses of a key adjacent to the intended key.
* @param x x-coordinate pixel of touched event. If {@link #onCodeInput} is not called by
* {@link PointerTracker#onTouchEvent} or so, the value should be
- * {@link #NOT_A_TOUCH_COORDINATE}.
+ * {@link #NOT_A_TOUCH_COORDINATE}. If it's called on insertion from the suggestion
+ * strip, it should be {@link #SUGGESTION_STRIP_COORDINATE}.
* @param y y-coordinate pixel of touched event. If {@link #onCodeInput} is not called by
* {@link PointerTracker#onTouchEvent} or so, the value should be
- * {@link #NOT_A_TOUCH_COORDINATE}.
+ * {@link #NOT_A_TOUCH_COORDINATE}. If it's called on insertion from the suggestion
+ * strip, it should be {@link #SUGGESTION_STRIP_COORDINATE}.
*/
public void onCodeInput(int primaryCode, int[] keyCodes, int x, int y);
public static final int NOT_A_TOUCH_COORDINATE = -1;
+ public static final int SUGGESTION_STRIP_COORDINATE = -2;
/**
* Sends a sequence of characters to the listener.
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index c6fb75489..d65253ede 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -185,7 +185,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
public final int mKeyShiftedLetterHintInactivatedColor;
public final int mKeyShiftedLetterHintActivatedColor;
- private final float mKeyLetterRatio;
+ /* package */ final float mKeyLetterRatio;
private final float mKeyLargeLetterRatio;
private final float mKeyLabelRatio;
private final float mKeyHintLetterRatio;
@@ -486,8 +486,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
private void onDrawKey(Key key, Canvas canvas, Paint paint, KeyDrawParams params) {
- if (key.isSpacer()) return;
- onDrawKeyBackground(key, canvas, params);
+ if (!key.isSpacer()) {
+ onDrawKeyBackground(key, canvas, params);
+ }
onDrawKeyTopVisuals(key, canvas, paint, params);
}
@@ -861,10 +862,8 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
previewText.setText(key.mLabel);
} else {
- final Drawable previewIcon = mKeyboard.mIconsSet.getIconByAttrId(
- key.mPreviewIconAttrId);
previewText.setCompoundDrawables(null, null, null,
- previewIcon != null ? previewIcon : key.getIcon(mKeyboard.mIconsSet));
+ key.getPreviewIcon(mKeyboard.mIconsSet));
previewText.setText(null);
}
previewText.setBackgroundDrawable(params.mPreviewBackground);
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index f3583fefc..870c7cb25 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -42,6 +42,7 @@ import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
import com.android.inputmethod.deprecated.VoiceProxy;
import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.latin.LatinIME;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R;
@@ -132,7 +133,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
switch (msg.what) {
case MSG_REPEAT_KEY:
tracker.onRepeatKey(tracker.getKey());
- startKeyRepeatTimer(tracker);
+ startKeyRepeatTimer(tracker, mParams.mKeyRepeatInterval);
break;
case MSG_LONGPRESS_KEY:
if (tracker != null) {
@@ -144,11 +145,14 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
}
+ private void startKeyRepeatTimer(PointerTracker tracker, long delay) {
+ sendMessageDelayed(obtainMessage(MSG_REPEAT_KEY, tracker), delay);
+ }
+
@Override
public void startKeyRepeatTimer(PointerTracker tracker) {
mInKeyRepeat = true;
- sendMessageDelayed(obtainMessage(MSG_REPEAT_KEY, tracker),
- mParams.mKeyRepeatStartTimeout);
+ startKeyRepeatTimer(tracker, mParams.mKeyRepeatStartTimeout);
}
public void cancelKeyRepeatTimer() {
@@ -390,7 +394,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
mMoreKeysPanelCache.clear();
mSpaceKey = keyboard.getKey(Keyboard.CODE_SPACE);
- mSpaceIcon = keyboard.mIconsSet.getIconByAttrId(R.styleable.Keyboard_iconSpaceKey);
+ mSpaceIcon = keyboard.mIconsSet.getIconDrawable(KeyboardIconsSet.ICON_SPACE);
final int keyHeight = keyboard.mMostCommonKeyHeight - keyboard.mVerticalGap;
mSpacebarTextSize = keyHeight * mSpacebarTextRatio;
mSpacebarLocale = keyboard.mId.mLocale;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
index a84b469ea..e3c5da456 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
@@ -43,6 +43,8 @@ import java.util.Arrays;
public class KeySpecParser {
private static final boolean DEBUG = LatinImeLogger.sDBG;
+ private static final int MAX_STRING_REFERENCE_INDIRECTION = 10;
+
// Constants for parsing.
private static int COMMA = ',';
private static final char ESCAPE_CHAR = '\\';
@@ -179,11 +181,11 @@ public class KeySpecParser {
return Keyboard.CODE_OUTPUT_TEXT;
}
- public static int getIconAttrId(String moreKeySpec) {
+ public static int getIconId(String moreKeySpec) {
if (hasIcon(moreKeySpec)) {
final int end = moreKeySpec.indexOf(LABEL_END, PREFIX_ICON.length());
final String name = moreKeySpec.substring(PREFIX_ICON.length(), end);
- return KeyboardIconsSet.getIconAttrId(name);
+ return KeyboardIconsSet.getIconId(name);
}
return KeyboardIconsSet.ICON_UNDEFINED;
}
@@ -274,35 +276,51 @@ public class KeySpecParser {
return resId;
}
- private static String resolveStringResource(String text, Resources res, int packageNameResId) {
- final int size = text.length();
- if (size < PREFIX_STRING.length()) {
- return text;
- }
+ private static String resolveStringResource(String rawText, Resources res,
+ int packageNameResId) {
+ int level = 0;
+ String text = rawText;
+ StringBuilder sb;
+ do {
+ level++;
+ if (level >= MAX_STRING_REFERENCE_INDIRECTION) {
+ throw new RuntimeException("too many @string/resource indirection: " + text);
+ }
- StringBuilder sb = null;
- for (int pos = 0; pos < size; pos++) {
- final char c = text.charAt(pos);
- if (c == PREFIX_AT && text.startsWith(PREFIX_STRING, pos)) {
- if (sb == null) {
- sb = new StringBuilder(text.substring(0, pos));
- }
- final int end = searchResourceNameEnd(text, pos + PREFIX_STRING.length());
- final String resName = text.substring(pos + 1, end);
- final int resId = getResourceId(res, resName, packageNameResId);
- sb.append(res.getString(resId));
- pos = end - 1;
- } else if (c == ESCAPE_CHAR) {
- if (sb != null) {
- // Append both escape character and escaped character.
- sb.append(text.substring(pos, Math.min(pos + 2, size)));
+ final int size = text.length();
+ if (size < PREFIX_STRING.length()) {
+ return text;
+ }
+
+ sb = null;
+ for (int pos = 0; pos < size; pos++) {
+ final char c = text.charAt(pos);
+ if (c == PREFIX_AT && text.startsWith(PREFIX_STRING, pos)) {
+ if (sb == null) {
+ sb = new StringBuilder(text.substring(0, pos));
+ }
+ final int end = searchResourceNameEnd(text, pos + PREFIX_STRING.length());
+ final String resName = text.substring(pos + 1, end);
+ final int resId = getResourceId(res, resName, packageNameResId);
+ sb.append(res.getString(resId));
+ pos = end - 1;
+ } else if (c == ESCAPE_CHAR) {
+ if (sb != null) {
+ // Append both escape character and escaped character.
+ sb.append(text.substring(pos, Math.min(pos + 2, size)));
+ }
+ pos++;
+ } else if (sb != null) {
+ sb.append(c);
}
- pos++;
- } else if (sb != null) {
- sb.append(c);
}
- }
- return (sb == null) ? text : sb.toString();
+
+ if (sb != null) {
+ text = sb.toString();
+ }
+ } while (sb != null);
+
+ return text;
}
private static int searchResourceNameEnd(String text, int start) {
@@ -325,7 +343,7 @@ public class KeySpecParser {
return null;
}
if (Utils.codePointCount(text) == 1) {
- return new String[] { text };
+ return text.codePointAt(0) == COMMA ? null : new String[] { text };
}
ArrayList<String> list = null;
@@ -333,10 +351,13 @@ public class KeySpecParser {
for (int pos = 0; pos < size; pos++) {
final char c = text.charAt(pos);
if (c == COMMA) {
- if (list == null) {
- list = new ArrayList<String>();
+ // Skip empty entry.
+ if (pos - start > 0) {
+ if (list == null) {
+ list = new ArrayList<String>();
+ }
+ list.add(text.substring(start, pos));
}
- list.add(text.substring(start, pos));
// Skip comma
start = pos + 1;
} else if (c == ESCAPE_CHAR) {
@@ -344,10 +365,13 @@ public class KeySpecParser {
pos++;
}
}
+ final String remain = (size - start > 0) ? text.substring(start) : null;
if (list == null) {
- return new String[] { text.substring(start) };
+ return remain != null ? new String[] { remain } : null;
} else {
- list.add(text.substring(start));
+ if (remain != null) {
+ list.add(remain);
+ }
return list.toArray(new String[list.size()]);
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
index 31a7e8b8e..162e96d06 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
@@ -23,7 +23,6 @@ import android.util.Log;
import com.android.inputmethod.latin.R;
-import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -31,17 +30,20 @@ public class KeyboardIconsSet {
private static final String TAG = KeyboardIconsSet.class.getSimpleName();
public static final int ICON_UNDEFINED = 0;
- public static final int ATTR_UNDEFINED = 0;
+ // The value should be aligned with the enum value of Key.keyIcon.
+ public static final int ICON_SPACE = 4;
+ private static final int NUM_ICONS = 13;
- private final Map<Integer, Drawable> mIcons = new HashMap<Integer, Drawable>();
+ private final Drawable[] mIcons = new Drawable[NUM_ICONS + 1];
- // The key value should be aligned with the enum value of Keyboard.icon*.
- private static final Map<Integer, Integer> ID_TO_ATTR_MAP = new HashMap<Integer, Integer>();
- private static final Map<String, Integer> NAME_TO_ATTR_MAP = new HashMap<String, Integer>();
- private static final Map<Integer, String> ATTR_TO_NAME_MAP = new HashMap<Integer, String>();
- private static final Collection<Integer> VALID_ATTRS;
+ private static final Map<Integer, Integer> ATTR_ID_TO_ICON_ID = new HashMap<Integer, Integer>();
+ private static final Map<String, Integer> NAME_TO_ICON_ID = new HashMap<String, Integer>();
+ private static final String[] ICON_NAMES = new String[NUM_ICONS + 1];
+ private static final int ATTR_UNDEFINED = 0;
static {
+ // The key value should be aligned with the enum value of Key.keyIcon.
+ addIconIdMap(0, "undefined", ATTR_UNDEFINED);
addIconIdMap(1, "shiftKey", R.styleable.Keyboard_iconShiftKey);
addIconIdMap(2, "deleteKey", R.styleable.Keyboard_iconDeleteKey);
addIconIdMap(3, "settingsKey", R.styleable.Keyboard_iconSettingsKey);
@@ -56,22 +58,23 @@ public class KeyboardIconsSet {
addIconIdMap(11, "shiftKeyShifted", R.styleable.Keyboard_iconShiftKeyShifted);
addIconIdMap(12, "disabledShortcurKey", R.styleable.Keyboard_iconDisabledShortcutKey);
addIconIdMap(13, "previewTabKey", R.styleable.Keyboard_iconPreviewTabKey);
- VALID_ATTRS = ID_TO_ATTR_MAP.values();
}
- private static void addIconIdMap(int iconId, String name, Integer attrId) {
- ID_TO_ATTR_MAP.put(iconId, attrId);
- NAME_TO_ATTR_MAP.put(name, attrId);
- ATTR_TO_NAME_MAP.put(attrId, name);
+ private static void addIconIdMap(int iconId, String name, int attrId) {
+ if (attrId != ATTR_UNDEFINED) {
+ ATTR_ID_TO_ICON_ID.put(attrId, iconId);
+ }
+ NAME_TO_ICON_ID.put(name, iconId);
+ ICON_NAMES[iconId] = name;
}
public void loadIcons(final TypedArray keyboardAttrs) {
- for (final Integer attrId : VALID_ATTRS) {
+ for (final Integer attrId : ATTR_ID_TO_ICON_ID.keySet()) {
try {
final Drawable icon = keyboardAttrs.getDrawable(attrId);
- if (icon == null) continue;
setDefaultBounds(icon);
- mIcons.put(attrId, icon);
+ final Integer iconId = ATTR_ID_TO_ICON_ID.get(attrId);
+ mIcons[iconId] = icon;
} catch (Resources.NotFoundException e) {
Log.w(TAG, "Drawable resource for icon #"
+ keyboardAttrs.getResources().getResourceEntryName(attrId)
@@ -80,49 +83,32 @@ public class KeyboardIconsSet {
}
}
- public static int getIconAttrId(final Integer iconId) {
- if (iconId == ICON_UNDEFINED) {
- return ATTR_UNDEFINED;
- }
- final Integer attrId = ID_TO_ATTR_MAP.get(iconId);
- if (attrId == null) {
- throw new IllegalArgumentException("icon id is out of range: " + iconId);
- }
- return attrId;
+ private static boolean isValidIconId(final int iconId) {
+ return iconId >= 0 && iconId < ICON_NAMES.length;
}
- public static int getIconAttrId(final String iconName) {
- final Integer attrId = NAME_TO_ATTR_MAP.get(iconName);
- if (attrId == null) {
- throw new IllegalArgumentException("unknown icon name: " + iconName);
- }
- return attrId;
+ public static String getIconName(final int iconId) {
+ return isValidIconId(iconId) ? ICON_NAMES[iconId] : "unknown<" + iconId + ">";
}
- public static String getIconName(final int attrId) {
- if (attrId == ATTR_UNDEFINED) {
- return "null";
- }
- if (ATTR_TO_NAME_MAP.containsKey(attrId)) {
- return ATTR_TO_NAME_MAP.get(attrId);
+ public static int getIconId(final String name) {
+ final Integer iconId = NAME_TO_ICON_ID.get(name);
+ if (iconId != null) {
+ return iconId;
}
- return String.format("unknown<0x%08x>", attrId);
+ throw new RuntimeException("unknown icon name: " + name);
}
- public Drawable getIconByAttrId(final Integer attrId) {
- if (attrId == ATTR_UNDEFINED) {
- return null;
- }
- if (!VALID_ATTRS.contains(attrId)) {
- throw new IllegalArgumentException("unknown icon attribute id: " + attrId);
+ public Drawable getIconDrawable(final int iconId) {
+ if (isValidIconId(iconId)) {
+ return mIcons[iconId];
}
- return mIcons.get(attrId);
+ throw new RuntimeException("unknown icon id: " + getIconName(iconId));
}
- private static Drawable setDefaultBounds(final Drawable icon) {
+ private static void setDefaultBounds(final Drawable icon) {
if (icon != null) {
icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
}
- return icon;
}
}
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
index b333e4873..79441c557 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
@@ -75,7 +75,8 @@ class BinaryDictionaryGetter {
// This assumes '%' is fully available as a non-separator, normal
// character in a file name. This is probably true for all file systems.
final StringBuilder sb = new StringBuilder();
- for (int i = 0; i < name.length(); ++i) {
+ final int nameLength = name.length();
+ for (int i = 0; i < nameLength; i = name.offsetByCodePoints(i, 1)) {
final int codePoint = name.codePointAt(i);
if (isFileNameCharacter(codePoint)) {
sb.appendCodePoint(codePoint);
@@ -92,7 +93,8 @@ class BinaryDictionaryGetter {
*/
private static String getWordListIdFromFileName(final String fname) {
final StringBuilder sb = new StringBuilder();
- for (int i = 0; i < fname.length(); ++i) {
+ final int fnameLength = fname.length();
+ for (int i = 0; i < fnameLength; i = fname.offsetByCodePoints(i, 1)) {
final int codePoint = fname.codePointAt(i);
if ('%' != codePoint) {
sb.appendCodePoint(codePoint);
diff --git a/java/src/com/android/inputmethod/latin/InputAttributes.java b/java/src/com/android/inputmethod/latin/InputAttributes.java
index f5cf953c4..3de5c1d48 100644
--- a/java/src/com/android/inputmethod/latin/InputAttributes.java
+++ b/java/src/com/android/inputmethod/latin/InputAttributes.java
@@ -28,7 +28,6 @@ import com.android.inputmethod.compat.InputTypeCompatUtils;
public class InputAttributes {
private final String TAG = InputAttributes.class.getSimpleName();
- final public boolean mInsertSpaceOnPickSuggestionManually;
final public boolean mInputTypeNoAutoCorrect;
final public boolean mIsSettingsSuggestionStripOn;
final public boolean mApplicationSpecifiedCompletionOn;
@@ -52,7 +51,6 @@ public class InputAttributes {
+ " imeOptions=0x%08x",
inputType, editorInfo.imeOptions));
}
- mInsertSpaceOnPickSuggestionManually = false;
mIsSettingsSuggestionStripOn = false;
mInputTypeNoAutoCorrect = false;
mApplicationSpecifiedCompletionOn = false;
@@ -80,15 +78,6 @@ public class InputAttributes {
mIsSettingsSuggestionStripOn = true;
}
- if (InputTypeCompatUtils.isEmailVariation(variation)
- || variation == InputType.TYPE_TEXT_VARIATION_PERSON_NAME) {
- // The point in turning this off is that we don't want to insert a space after
- // a name when filling a form: we can't delete trailing spaces when changing fields
- mInsertSpaceOnPickSuggestionManually = false;
- } else {
- mInsertSpaceOnPickSuggestionManually = true;
- }
-
// If it's a browser edit field and auto correct is not ON explicitly, then
// disable auto correction, but keep suggestions on.
// If NO_SUGGESTIONS is set, don't do prediction.
@@ -109,8 +98,7 @@ public class InputAttributes {
// Pretty print
@Override
public String toString() {
- return "\n mInsertSpaceOnPickSuggestionManually = " + mInsertSpaceOnPickSuggestionManually
- + "\n mInputTypeNoAutoCorrect = " + mInputTypeNoAutoCorrect
+ return "\n mInputTypeNoAutoCorrect = " + mInputTypeNoAutoCorrect
+ "\n mIsSettingsSuggestionStripOn = " + mIsSettingsSuggestionStripOn
+ "\n mApplicationSpecifiedCompletionOn = " + mApplicationSpecifiedCompletionOn;
}
diff --git a/java/src/com/android/inputmethod/latin/LastComposedWord.java b/java/src/com/android/inputmethod/latin/LastComposedWord.java
index 0c8c88f50..f34cb5ff9 100644
--- a/java/src/com/android/inputmethod/latin/LastComposedWord.java
+++ b/java/src/com/android/inputmethod/latin/LastComposedWord.java
@@ -51,6 +51,8 @@ public class LastComposedWord {
public static final LastComposedWord NOT_A_COMPOSED_WORD =
new LastComposedWord(null, null, null, "", "");
+ // Warning: this is using the passed objects as is and fully expects them to be
+ // immutable. Do not fiddle with their contents after you passed them to this constructor.
public LastComposedWord(final ArrayList<int[]> codes, final int[] xCoordinates,
final int[] yCoordinates, final String typedWord, final String autoCorrection) {
mCodes = codes;
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 1bc55a583..e4339318b 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -160,18 +160,21 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
SUGGESTION_VISIBILILTY_HIDE_VALUE
};
- // Magic space: a space that should disappear on space/apostrophe insertion, move after the
- // punctuation on punctuation insertion, and become a real space on alpha char insertion.
- // Weak space: a space that should be swapped only by suggestion strip punctuation.
+ private static final int SPACE_STATE_NONE = 0;
// Double space: the state where the user pressed space twice quickly, which LatinIME
// resolved as period-space. Undoing this converts the period to a space.
+ private static final int SPACE_STATE_DOUBLE = 1;
// Swap punctuation: the state where a (weak or magic) space and a punctuation from the
// suggestion strip have just been swapped. Undoing this swaps them back.
- private static final int SPACE_STATE_NONE = 0;
- private static final int SPACE_STATE_DOUBLE = 1;
private static final int SPACE_STATE_SWAP_PUNCTUATION = 2;
- private static final int SPACE_STATE_MAGIC = 3;
- private static final int SPACE_STATE_WEAK = 4;
+ // Weak space: a space that should be swapped only by suggestion strip punctuation. Weak
+ // spaces happen when the user presses space, accepting the current suggestion (whether
+ // it's an auto-correction or not).
+ private static final int SPACE_STATE_WEAK = 3;
+ // Phantom space: a not-yet-inserted space that should get inserted on the next input,
+ // character provided it's not a separator. If it's a separator, the phantom space is dropped.
+ // Phantom spaces happen when a user chooses a word from the suggestion strip.
+ private static final int SPACE_STATE_PHANTOM = 4;
// Current space state of the input method. This can be any of the above constants.
private int mSpaceState;
@@ -1162,18 +1165,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
return false;
}
- // "ic" must not be null
- private static void maybeRemovePreviousPeriod(final InputConnection ic, CharSequence text) {
- // When the text's first character is '.', remove the previous period
- // if there is one.
- final CharSequence lastOne = ic.getTextBeforeCursor(1, 0);
- if (lastOne != null && lastOne.length() == 1
- && lastOne.charAt(0) == Keyboard.CODE_PERIOD
- && text.charAt(0) == Keyboard.CODE_PERIOD) {
- ic.deleteSurroundingText(1, 0);
- }
- }
-
// "ic" may be null
private static void removeTrailingSpaceWhileInBatchEdit(final InputConnection ic) {
if (ic == null) return;
@@ -1234,26 +1225,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
}
private void insertPunctuationFromSuggestionStrip(final InputConnection ic, final int code) {
- final CharSequence beforeText = ic != null ? ic.getTextBeforeCursor(1, 0) : null;
- final int toLeft = TextUtils.isEmpty(beforeText) ? 0 : beforeText.charAt(0);
- final boolean shouldRegisterSwapPunctuation;
- // If we have a space left of the cursor and it's a weak or a magic space, then we should
- // swap it, and override the space state with SPACESTATE_SWAP_PUNCTUATION.
- // To swap it, we fool handleSeparator to think the previous space state was a
- // magic space.
- if (Keyboard.CODE_SPACE == toLeft && mSpaceState == SPACE_STATE_WEAK
- && mSettingsValues.isMagicSpaceSwapper(code)) {
- mSpaceState = SPACE_STATE_MAGIC;
- shouldRegisterSwapPunctuation = true;
- } else {
- shouldRegisterSwapPunctuation = false;
- }
onCodeInput(code, new int[] { code },
- KeyboardActionListener.NOT_A_TOUCH_COORDINATE,
- KeyboardActionListener.NOT_A_TOUCH_COORDINATE);
- if (shouldRegisterSwapPunctuation) {
- mSpaceState = SPACE_STATE_SWAP_PUNCTUATION;
- }
+ KeyboardActionListener.SUGGESTION_STRIP_COORDINATE,
+ KeyboardActionListener.SUGGESTION_STRIP_COORDINATE);
}
// Implementation of {@link KeyboardActionListener}.
@@ -1331,7 +1305,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
if (ic == null) return;
ic.beginBatchEdit();
commitTyped(ic);
- maybeRemovePreviousPeriod(ic, text);
+ text = specificTldProcessingOnTextInput(ic, text);
+ if (SPACE_STATE_PHANTOM == mSpaceState) {
+ sendKeyChar((char)Keyboard.CODE_SPACE);
+ }
ic.commitText(text, 1);
ic.endBatchEdit();
mKeyboardSwitcher.updateShiftState();
@@ -1341,6 +1318,24 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
resetComposingState(true /* alsoResetLastComposedWord */);
}
+ // ic may not be null
+ private CharSequence specificTldProcessingOnTextInput(final InputConnection ic,
+ final CharSequence text) {
+ if (text.length() <= 1 || text.charAt(0) != Keyboard.CODE_PERIOD
+ || !Character.isLetter(text.charAt(1))) {
+ // Not a tld: do nothing.
+ return text;
+ }
+ final CharSequence lastOne = ic.getTextBeforeCursor(1, 0);
+ if (lastOne != null && lastOne.length() == 1
+ && lastOne.charAt(0) == Keyboard.CODE_PERIOD) {
+ mSpaceState = SPACE_STATE_NONE;
+ return text.subSequence(1, text.length());
+ } else {
+ return text;
+ }
+ }
+
@Override
public void onCancelInput() {
// User released a finger outside any key
@@ -1492,13 +1487,18 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// "ic" may be null without this crashing, but the behavior will be really strange
private void handleCharacterWhileInBatchEdit(final int primaryCode, final int[] keyCodes,
final int x, final int y, final int spaceState, final InputConnection ic) {
- if (SPACE_STATE_MAGIC == spaceState
- && mSettingsValues.isMagicSpaceStripper(primaryCode)) {
- if (null != ic) removeTrailingSpaceWhileInBatchEdit(ic);
- }
-
boolean isComposingWord = mWordComposer.isComposingWord();
int code = primaryCode;
+
+ if (SPACE_STATE_PHANTOM == spaceState &&
+ !mSettingsValues.isSymbolExcludedFromWordSeparators(primaryCode)) {
+ if (isComposingWord) {
+ // Sanity check
+ throw new RuntimeException("Should not be composing here");
+ }
+ sendKeyChar((char)Keyboard.CODE_SPACE);
+ }
+
if ((isAlphabet(code) || mSettingsValues.isSymbolExcludedFromWordSeparators(code))
&& isSuggestionsRequested() && !isCursorTouchingWord()) {
if (!isComposingWord) {
@@ -1530,10 +1530,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
} else {
sendKeyChar((char)code);
}
- if (SPACE_STATE_MAGIC == spaceState
- && mSettingsValues.isMagicSpaceSwapper(primaryCode)) {
- if (null != ic) swapSwapperAndSpaceWhileInBatchEdit(ic);
- }
if (mSettingsValues.isWordSeparator(code)) {
Utils.Stats.onSeparator((char)code, x, y);
@@ -1575,24 +1571,28 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
}
}
- final boolean swapMagicSpace;
- if (Keyboard.CODE_ENTER == primaryCode && (SPACE_STATE_MAGIC == spaceState
- || SPACE_STATE_SWAP_PUNCTUATION == spaceState)) {
+ final boolean swapWeakSpace;
+ if (Keyboard.CODE_ENTER == primaryCode && SPACE_STATE_SWAP_PUNCTUATION == spaceState) {
removeTrailingSpaceWhileInBatchEdit(ic);
- swapMagicSpace = false;
- } else if (SPACE_STATE_MAGIC == spaceState) {
+ swapWeakSpace = false;
+ } else if ((SPACE_STATE_WEAK == spaceState || SPACE_STATE_SWAP_PUNCTUATION == spaceState)
+ && KeyboardActionListener.SUGGESTION_STRIP_COORDINATE == x) {
if (mSettingsValues.isMagicSpaceSwapper(primaryCode)) {
- swapMagicSpace = true;
+ swapWeakSpace = true;
} else {
- swapMagicSpace = false;
+ swapWeakSpace = false;
if (mSettingsValues.isMagicSpaceStripper(primaryCode)) {
removeTrailingSpaceWhileInBatchEdit(ic);
}
}
} else {
- swapMagicSpace = false;
+ swapWeakSpace = false;
}
+ // TODO: rethink interactions of sendKeyChar, commitText("\n") and actions. sendKeyChar
+ // with a CODE_ENTER parameter will have the default InputMethodService implementation
+ // possibly redirect on the keyboard action. That may be the right thing to do, but
+ // on Shift+Enter, it's generally not, so we may want to do the redirection right here.
sendKeyChar((char)primaryCode);
if (Keyboard.CODE_SPACE == primaryCode) {
@@ -1610,9 +1610,17 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
mHandler.postUpdateBigramPredictions();
}
} else {
- if (swapMagicSpace) {
+ if (swapWeakSpace) {
swapSwapperAndSpaceWhileInBatchEdit(ic);
- mSpaceState = SPACE_STATE_MAGIC;
+ mSpaceState = SPACE_STATE_WEAK;
+ } else if (SPACE_STATE_PHANTOM == spaceState) {
+ // If we are in phantom space state, and the user presses a separator, we want to
+ // stay in phantom space state so that the next keypress has a chance to add the
+ // space. For example, if I type "Good dat", pick "day" from the suggestion strip
+ // then insert a comma and go on to typing the next word, I want the space to be
+ // inserted automatically before the next word, the same way it is when I don't
+ // input the comma.
+ mSpaceState = SPACE_STATE_PHANTOM;
}
// Set punctuation right away. onUpdateSelection will fire but tests whether it is
@@ -1921,10 +1929,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
} else {
addToOnlyBigramDictionary(suggestion, 1);
}
- // Follow it with a space
- if (mInputAttributes.mInsertSpaceOnPickSuggestionManually) {
- sendMagicSpace();
- }
+ mSpaceState = SPACE_STATE_PHANTOM;
+ // TODO: is this necessary?
+ mKeyboardSwitcher.updateShiftState();
// We should show the "Touch again to save" hint if the user pressed the first entry
// AND either:
@@ -2194,9 +2201,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// new composing text.
final int restartLength = mWordComposer.size();
if (DEBUG) {
- final String wordBeforeCursor =
- ic.getTextBeforeCursor(restartLength + 1, 0).subSequence(0, restartLength)
- .toString();
+ final String wordBeforeCursor = ic.getTextBeforeCursor(restartLength, 0).toString();
if (!TextUtils.equals(mWordComposer.getTypedWord(), wordBeforeCursor)) {
throw new RuntimeException("restartSuggestionsOnManuallyPickedTypedWord "
+ "check failed: we thought we were reverting \""
@@ -2205,8 +2210,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
+ wordBeforeCursor + "\"");
}
}
- // Warning: this +1 takes into account the extra space added by the manual pick process.
- ic.deleteSurroundingText(restartLength + 1, 0);
+ ic.deleteSurroundingText(restartLength, 0);
ic.setComposingText(mWordComposer.getTypedWord(), 1);
mHandler.cancelUpdateBigramPredictions();
mHandler.postUpdateSuggestions();
@@ -2259,12 +2263,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
return mSettingsValues.isWordSeparator(code);
}
- private void sendMagicSpace() {
- sendKeyChar((char)Keyboard.CODE_SPACE);
- mSpaceState = SPACE_STATE_MAGIC;
- mKeyboardSwitcher.updateShiftState();
- }
-
public boolean preferCapitalization() {
return mWordComposer.isFirstCharCapitalized();
}
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index 8e2f605c4..589cb6f86 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -93,7 +93,8 @@ public class SettingsValues {
mMagicSpaceStrippers = res.getString(R.string.magic_space_stripping_symbols);
mMagicSpaceSwappers = res.getString(R.string.magic_space_swapping_symbols);
if (LatinImeLogger.sDBG) {
- for (int i = 0; i < mMagicSpaceStrippers.length(); ++i) {
+ final int length = mMagicSpaceStrippers.length();
+ for (int i = 0; i < length; i = mMagicSpaceStrippers.offsetByCodePoints(i, 1)) {
if (isMagicSpaceSwapper(mMagicSpaceStrippers.codePointAt(i))) {
throw new RuntimeException("Char code " + mMagicSpaceStrippers.codePointAt(i)
+ " is both a magic space swapper and stripper.");
@@ -234,10 +235,12 @@ public class SettingsValues {
}
public boolean isMagicSpaceStripper(int code) {
+ // TODO: this does not work if the code does not fit in a char
return mMagicSpaceStrippers.contains(String.valueOf((char)code));
}
public boolean isMagicSpaceSwapper(int code) {
+ // TODO: this does not work if the code does not fit in a char
return mMagicSpaceSwappers.contains(String.valueOf((char)code));
}
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index bd244b913..f418968b5 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -212,6 +212,7 @@ public class WordComposer {
final int lastPos = size - 1;
char lastChar = mTypedWord.charAt(lastPos);
mCodes.remove(lastPos);
+ // TODO: This crashes and catches fire if the code point doesn't fit a char
mTypedWord.deleteCharAt(lastPos);
if (Character.isUpperCase(lastChar)) mCapsCount--;
}
@@ -221,7 +222,9 @@ public class WordComposer {
if (mTrailingSingleQuotesCount > 0) {
--mTrailingSingleQuotesCount;
} else {
- for (int i = mTypedWord.length() - 1; i >= 0; --i) {
+ int i = mTypedWord.length();
+ while (i > 0) {
+ i = mTypedWord.offsetByCodePoints(i, -1);
if (Keyboard.CODE_SINGLE_QUOTE != mTypedWord.codePointAt(i)) break;
++mTrailingSingleQuotesCount;
}
@@ -307,13 +310,18 @@ public class WordComposer {
// LastComposedWord#didAutoCorrectToAnotherWord with #equals(). It would be marginally
// cleaner to do it here, but it would be slower (since we would #equals() for each commit,
// instead of only on cancel), and ultimately we want to figure it out even earlier anyway.
- final LastComposedWord lastComposedWord = new LastComposedWord(mCodes,
- mXCoordinates, mYCoordinates, mTypedWord.toString(),
+ final ArrayList<int[]> codes = mCodes;
+ final int[] xCoordinates = mXCoordinates;
+ final int[] yCoordinates = mYCoordinates;
+ mCodes = new ArrayList<int[]>(N);
+ mXCoordinates = new int[N];
+ mYCoordinates = new int[N];
+ final LastComposedWord lastComposedWord = new LastComposedWord(codes,
+ xCoordinates, yCoordinates, mTypedWord.toString(),
null == mAutoCorrection ? null : mAutoCorrection.toString());
if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD) {
lastComposedWord.deactivate();
}
- mCodes.clear();
mTypedWord.setLength(0);
mAutoCorrection = null;
return lastComposedWord;
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 88ac043ed..8ac82ee5b 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -431,9 +431,9 @@ public class AndroidSpellCheckerService extends SpellCheckerService
// If the first char is not uppercase, then the word is either all lower case,
// and in either case we return CAPITALIZE_NONE.
if (!Character.isUpperCase(text.codePointAt(0))) return CAPITALIZE_NONE;
- final int len = text.codePointCount(0, text.length());
+ final int len = text.length();
int capsCount = 1;
- for (int i = 1; i < len; ++i) {
+ for (int i = 1; i < len; i = text.offsetByCodePoints(i, 1)) {
if (1 != capsCount && i != capsCount) break;
if (Character.isUpperCase(text.codePointAt(i))) ++capsCount;
}
@@ -522,13 +522,12 @@ public class AndroidSpellCheckerService extends SpellCheckerService
// Filter contents
final int length = text.length();
int letterCount = 0;
- for (int i = 0; i < length; ++i) {
+ for (int i = 0; i < length; i = text.offsetByCodePoints(i, 1)) {
final int codePoint = text.codePointAt(i);
// Any word containing a '@' is probably an e-mail address
// Any word containing a '/' is probably either an ad-hoc combination of two
// words or a URI - in either case we don't want to spell check that
- if ('@' == codePoint
- || '/' == codePoint) return true;
+ if ('@' == codePoint || '/' == codePoint) return true;
if (isLetterCheckableByLanguage(codePoint, script)) ++letterCount;
}
// Guestimate heuristic: perform spell checking if at least 3/4 of the characters
@@ -570,7 +569,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
suggestionsLimit);
final WordComposer composer = new WordComposer();
final int length = text.length();
- for (int i = 0; i < length; ++i) {
+ for (int i = 0; i < length; i = text.offsetByCodePoints(i, 1)) {
final int character = text.codePointAt(i);
final int proximityIndex =
SpellCheckerProximityInfo.getIndexOfCodeForScript(character, mScript);
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
index f42b8e681..4ef5bd386 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
@@ -25,6 +25,7 @@ import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardSwitcher;
import com.android.inputmethod.keyboard.KeyboardView;
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SuggestedWords;
@@ -199,6 +200,21 @@ public class MoreSuggestions extends Keyboard {
return info;
}
+ private static class Divider extends Key.Spacer {
+ private final Drawable mIcon;
+
+ public Divider(Keyboard.Params params, Drawable icon, int x, int y, int width,
+ int height) {
+ super(params, x, y, width, height);
+ mIcon = icon;
+ }
+
+ @Override
+ public Drawable getIcon(KeyboardIconsSet iconSet) {
+ return mIcon;
+ }
+ }
+
@Override
public MoreSuggestions build() {
final MoreSuggestionsParam params = mParams;
@@ -210,16 +226,16 @@ public class MoreSuggestions extends Keyboard {
final String info = getDebugInfo(mSuggestions, pos);
final int index = pos + SUGGESTION_CODE_BASE;
final Key key = new Key(
- params, word, info, null, index, null, x, y, width,
- params.mDefaultRowHeight);
+ params, word, info, KeyboardIconsSet.ICON_UNDEFINED, index, null, x, y,
+ width, params.mDefaultRowHeight);
params.markAsEdgeKey(key, pos);
params.onAddKey(key);
final int columnNumber = params.getColumnNumber(pos);
final int numColumnInRow = params.getNumColumnInRow(pos);
if (columnNumber < numColumnInRow - 1) {
- final Key.Spacer spacer = new Key.Spacer(params, params.mDivider, x + width, y,
+ final Divider divider = new Divider(params, params.mDivider, x + width, y,
params.mDividerWidth, params.mDefaultRowHeight);
- params.onAddKey(spacer);
+ params.onAddKey(divider);
}
}
return new MoreSuggestions(params);