diff options
97 files changed, 631 insertions, 341 deletions
diff --git a/java/res/drawable-hdpi/ic_emoji_dark.png b/java/res/drawable-hdpi/ic_emoji_dark.png Binary files differnew file mode 100644 index 000000000..a9f18cde0 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_dark.png diff --git a/java/res/drawable-hdpi/ic_emoji_light.png b/java/res/drawable-hdpi/ic_emoji_light.png Binary files differnew file mode 100644 index 000000000..2e3638bf3 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_light.png diff --git a/java/res/drawable-mdpi/ic_emoji_dark.png b/java/res/drawable-mdpi/ic_emoji_dark.png Binary files differnew file mode 100644 index 000000000..d0047a437 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_dark.png diff --git a/java/res/drawable-mdpi/ic_emoji_light.png b/java/res/drawable-mdpi/ic_emoji_light.png Binary files differnew file mode 100644 index 000000000..a3195041a --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_light.png diff --git a/java/res/drawable-xhdpi/ic_emoji_dark.png b/java/res/drawable-xhdpi/ic_emoji_dark.png Binary files differnew file mode 100644 index 000000000..22daec22e --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_dark.png diff --git a/java/res/drawable-xhdpi/ic_emoji_light.png b/java/res/drawable-xhdpi/ic_emoji_light.png Binary files differnew file mode 100644 index 000000000..21bc9090d --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_light.png diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml index 136e18cd5..1ffb8a32a 100644 --- a/java/res/layout/input_view.xml +++ b/java/res/layout/input_view.xml @@ -30,34 +30,17 @@ android:layout_width="match_parent" android:layout_height="0dp" /> - <!-- On tablets, the suggestions strip is centered with horizontal paddings on both sides - because width of the landscape mode is too long for the suggestions strip. This - LinearLayout is required to hold the paddings. --> - <LinearLayout - android:id="@+id/suggestions_container" - android:orientation="horizontal" + <!-- To ensure that key preview popup is correctly placed when the current system locale is + one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> + <com.android.inputmethod.latin.suggestions.SuggestionStripView + android:id="@+id/suggestion_strip_view" + android:layoutDirection="ltr" android:layout_width="match_parent" - android:layout_height="wrap_content" - > - <View - android:layout_width="@dimen/suggestions_strip_padding" - android:layout_height="@dimen/suggestions_strip_height" - style="?attr/suggestionsStripBackgroundStyle" /> - <!-- To ensure that key preview popup is correctly placed when the current system locale is - one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> - <com.android.inputmethod.latin.suggestions.SuggestionStripView - android:id="@+id/suggestion_strip_view" - android:layoutDirection="ltr" - android:layout_weight="1.0" - android:layout_width="0dp" - android:layout_height="@dimen/suggestions_strip_height" - android:gravity="center_vertical" - style="?attr/suggestionStripViewStyle" /> - <View - android:layout_width="@dimen/suggestions_strip_padding" - android:layout_height="@dimen/suggestions_strip_height" - style="?attr/suggestionsStripBackgroundStyle" /> - </LinearLayout> + android:layout_height="@dimen/suggestions_strip_height" + android:gravity="center_vertical" + android:paddingRight="@dimen/suggestions_strip_padding" + android:paddingLeft="@dimen/suggestions_strip_padding" + style="?attr/suggestionStripViewStyle" /> <!-- To ensure that key preview popup is correctly placed when the current system locale is one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index 2919b9b2f..986e29ba9 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Spasiebalk en leestekens korrigeer outomaties woorde wat verkeerd gespel is"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Af"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Matig"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressief"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Baie aggressief"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Aggressief"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Baie aggressief"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Stel volgende woord voor"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Gebruik die vorige woord om voorstelle te maak"</string> <string name="gesture_input" msgid="826951152254563827">"Aktiveer gebaar-tik"</string> diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml index 65382debb..32faf0fc6 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"የቦታ ቁልፍ እና ሥርዓተ ነጥብ በስህተት የተተየቡ ቃላትን በራስሰር ያስተካክላሉ ።"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"ውጪ"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"መጠነኛ"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"ኃይለኛ"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"በጣም ቁጡ"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"ኃይለኛ"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"በጣም ቁጡ"</string> <string name="bigram_prediction" msgid="1084449187723948550">"የቀጣይ ቃል አስተያየቶች"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"አስተያየቶች መስጠት ላይ ቀዳሚውን ቃል ተጠቀም"</string> <string name="gesture_input" msgid="826951152254563827">"በምልክት መተየብ ያንቁ"</string> diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index 6f18c943a..7079a0ae1 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"تؤدي المسافة والترقيم إلى تصحيح الكلمات المكتوبة بشكل غير صحيح"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"إيقاف"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"معتدل"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"حاد"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"شديد الصرامة"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"حاد"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"شديد الصرامة"</string> <string name="bigram_prediction" msgid="1084449187723948550">"اقتراحات الكلمات التالية"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"استخدام الكلمة السابقة في تقديم الاقتراحات"</string> <string name="gesture_input" msgid="826951152254563827">"تمكين الكتابة بالإيماءة"</string> diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml index e5db3f6d4..68b0b619e 100644 --- a/java/res/values-be/strings.xml +++ b/java/res/values-be/strings.xml @@ -65,8 +65,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Прабелы і пунктуацыйныя знакі дазваляюць аўтаматычна выпраўляць памылкова ўведзеныя словы"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Адключаны"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Сціплы"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агрэсіўны"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Вельмі агрэсіўны"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Агрэсіўны"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Вельмі агрэсіўны"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Падказкi для наступнага слова"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Выкарыстоўваць папярэдняе слова, каб атрымлiваць падказкi"</string> <string name="gesture_input" msgid="826951152254563827">"Уключыць набор жэстамі"</string> diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml index 89665cdc6..3de6b8ef7 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Клавишът за интервал и пунктуация авт. поправя сгрешени думи"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Изкл."</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умерено"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агресивно"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Много агресивно"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Агресивно"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Много агресивно"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Предложения за следващата дума"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Използване на предишната дума при даване на предложения"</string> <string name="gesture_input" msgid="826951152254563827">"Активиране на въвеждането чрез жест"</string> diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml index 18cff92f8..f71838710 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Prémer tecla d\'espai o punt. per corregir errors"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desactiva"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderada"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Molt agressiu"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Total"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Molt agressiu"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Suggeriments de paraula següent"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Utilitza la paraula anterior a l\'hora de fer suggeriments"</string> <string name="gesture_input" msgid="826951152254563827">"Activa l\'escriptura gestual"</string> diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index 9b20f7cc0..1089f483e 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Stisknutím mezerníku a interpunkce se automaticky opravují chybně napsaná slova"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Vypnuto"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mírné"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivní"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Velmi agresivní"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresivní"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Velmi agresivní"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Návrhy dalšího slova"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Návrhy na základě předchozího slova"</string> <string name="gesture_input" msgid="826951152254563827">"Aktivovat psaní gesty"</string> diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index f4f7d85da..929802f6a 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Mellemrumstast og tegnsætning retter automatisk forkerte ord"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Fra"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderat"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressiv"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Meget aggressiv"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Aggressiv"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Meget aggressiv"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Forslag til næste ord"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Brug det forrige ord til at give forslag"</string> <string name="gesture_input" msgid="826951152254563827">"Aktivér skrivning med berøring"</string> diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml index ca66b773d..cff23a861 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Korrektur fehlerhafter Wörter durch Leertaste und Satzzeichen"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Aus"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mäßig"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Stark"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Sehr stark"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Stark"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Sehr stark"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Vorschläge für nächstes Wort"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Vorschläge anhand des vorherigen Wortes machen"</string> <string name="gesture_input" msgid="826951152254563827">"Bewegungseingabe aktivieren"</string> diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml index d0f23d259..a71a5bef8 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Τα πλήκτρα διαστήματος και στίξης διορθ. αυτόμ. λάθος λέξεις"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Απενεργοποίηση"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Μέτρια"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Υψηλή"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Πολύ επιθετική"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Υψηλή"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Πολύ επιθετική"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Προτάσεις επόμενων λέξεων"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Χρήση της προηγούμενης λέξης για τη δημιουργία προτάσεων"</string> <string name="gesture_input" msgid="826951152254563827">"Ενεργ. πληκτρολ. με κινήσεις"</string> diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index df29be37f..a999a622c 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Correct mistyped words automatically with spacebar and punctuation"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Off"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Modest"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressive"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Very aggressive"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Aggressive"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Very aggressive"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Next word suggestions"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Use the previous word when making suggestions"</string> <string name="gesture_input" msgid="826951152254563827">"Enable gesture typing"</string> diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index d306f214a..cda4e25f1 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"La barra espaciadora y las teclas de puntuación insertan automáticamente la palabra corregida"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desactivado"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderado"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muy agresivo"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Total"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Muy agresivo"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Suger. de próxima palabra"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Usar la palabra anterior para hacer sugerencias"</string> <string name="gesture_input" msgid="826951152254563827">"Activar escritura gestual"</string> diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index 117ac957c..297db557f 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Pulsar la tecla de espacio o punto para corregir errores"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desactivada"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Parcial"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muy agresiva"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Total"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Muy agresiva"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Sugerir siguiente palabra"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Usar la palabra anterior para hacer sugerencias"</string> <string name="gesture_input" msgid="826951152254563827">"Habilitar escritura gestual"</string> diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml index e7c7ccf00..0874a9302 100644 --- a/java/res/values-et/strings.xml +++ b/java/res/values-et/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Tühik ja kirjavahemärgid parand. autom. kirjavigadega sõnad"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Väljas"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mõõdukas"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressiivne"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Väga agressiivne"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agressiivne"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Väga agressiivne"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Järgmise sõna soovitused"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Soovituste tegemisel eelmise sõna kasutamine"</string> <string name="gesture_input" msgid="826951152254563827">"Luba joonistusega sisestamine"</string> diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index 302f09750..501b678e1 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"کلید فاصله و علائم نگارشی به صورت خودکار کلماتی را که غلط تایپ شدهاند تصحیح میکنند"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"خاموش"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"متوسط"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"فعال"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"بسیار پرخاشگرانه"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"فعال"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"بسیار پرخاشگرانه"</string> <string name="bigram_prediction" msgid="1084449187723948550">"پیشنهادات کلمه بعدی"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"استفاده از کلمه قبلی در ایجاد پیشنهادات"</string> <string name="gesture_input" msgid="826951152254563827">"فعال کردن تایپ حرکتی"</string> diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml index a208048b8..069666285 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Välilyönnit ja välimerkit korjaavat väärinkirjoitetut sanat automaattisesti"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Älä käytä"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Osittainen"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Täysi"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Hyvin aggressiivinen"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Täysi"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Hyvin aggressiivinen"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Seuraavan sanan ehdotukset"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Käytä edellistä sanaa ehdotuksien perusteena"</string> <string name="gesture_input" msgid="826951152254563827">"Ota piirtokirjoitus käyttöön"</string> diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index 9b585a10f..b5db430ae 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Corriger autom. orthographe (pression sur barre espace/signes ponctuation)"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Désactiver"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Simple"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Proactive"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Très exigeante"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Proactive"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Très exigeante"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Suggestions pour le mot suivant"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Utiliser le mot précédent pour les suggestions"</string> <string name="gesture_input" msgid="826951152254563827">"Activer la saisie gestuelle"</string> diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml index 8222f58ea..ca1c838e0 100644 --- a/java/res/values-hi/strings.xml +++ b/java/res/values-hi/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Spacebar और विराम चिह्न गलत लिखे गए शब्दों को स्वचालित रूप से ठीक करते हैं"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"बंद"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"साधारण"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"तीव्र"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"बहुत तीव्र"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"तीव्र"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"बहुत तीव्र"</string> <string name="bigram_prediction" msgid="1084449187723948550">"अगले शब्द के सुझाव"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"सुझाव बनाने में पिछले शब्द का उपयोग करें"</string> <string name="gesture_input" msgid="826951152254563827">"जेस्चर लिखना सक्षम करें"</string> diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index 385257217..8f64ccf3d 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Razmak i interpunkcija automatski ispravljaju krive riječi"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Isključeno"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Skromno"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivno"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Vrlo agresivno"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresivno"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Vrlo agresivno"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Prijedlozi za sljedeću riječ"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Koristi se prethodnom riječi u izradi prijedloga"</string> <string name="gesture_input" msgid="826951152254563827">"Omogući pisanje kretnjama"</string> diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index 5394cc29e..6aaf88c68 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Szóköz és központozás automatikusan javítja az elgépelést"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Ki"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mérsékelt"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresszív"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Nagyon agresszív"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresszív"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Nagyon agresszív"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Következő szóra vonatkozó javaslatok"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Az előző szó felhasználása a javaslatoknál"</string> <string name="gesture_input" msgid="826951152254563827">"Kézmozdulatokkal gépelés"</string> diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index 47d66dc8f..dbac3620b 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Bilah spasi dan tanda baca secara otomatis dikoreksi pada kata yang salah ketik"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Mati"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Sederhana"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresif"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Sangat agresif"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresif"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Sangat agresif"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Saran kata berikutnya"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Gunakan kata sebelumnya dalam membuat saran"</string> <string name="gesture_input" msgid="826951152254563827">"Aktifkan pengetikan isyarat"</string> diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml index 8e0d687e2..a20acc22f 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Barra spaziatrice/punteggiatura correggono parole con errori"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Off"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Media"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Massima"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Massima"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Massima"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Massima"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Suggerimenti parola successiva"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Usa la parola precedente per i suggerimenti"</string> <string name="gesture_input" msgid="826951152254563827">"Abilita digitazione a gesti"</string> diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index d44f6c40b..526c43186 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"מקש הרווח ופיסוק מתקנים אוטומטית שגיאות הקלדה"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"כבוי"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"מצומצם"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"מחמיר"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"מחמיר מאוד"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"מחמיר"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"מחמיר מאוד"</string> <string name="bigram_prediction" msgid="1084449187723948550">"הצעות למילה הבאה"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"השתמש במילה הקודמת ביצירת הצעות"</string> <string name="gesture_input" msgid="826951152254563827">"אפשר הקלדה ללא הרמת אצבע"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 248c5b9be..5a5ff432a 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"誤入力をスペースまたは句読点キーで修正する"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"OFF"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"中"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"強"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"最も強い"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"強"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"最も強い"</string> <string name="bigram_prediction" msgid="1084449187723948550">"次の入力候補"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"前の単語に基づいて入力候補を表示します"</string> <string name="gesture_input" msgid="826951152254563827">"ジェスチャー入力を有効にする"</string> diff --git a/java/res/values-ka/strings.xml b/java/res/values-ka/strings.xml index 5719e6c8a..f83e21dd9 100644 --- a/java/res/values-ka/strings.xml +++ b/java/res/values-ka/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"შორისი და პუნქტუაცია ავტომატურად ასწორებს არასწორად აკრეფილ სიტყვებს"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"გამორთულია"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"მოკრძალებული"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"აგრესიული"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"ძალიან აგრესიული"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"აგრესიული"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"ძალიან აგრესიული"</string> <string name="bigram_prediction" msgid="1084449187723948550">"შემდეგი სიტყვის შეთავაზებები"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"შეთავაზებებისას წინა სიტყვის გამოყენება"</string> <string name="gesture_input" msgid="826951152254563827">"ჟესტებით წერის ჩართვა"</string> diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index fbcee7d6d..b1bfe1139 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"스페이스바와 문장부호 키를 사용하면 오타가 자동으로 교정됩니다."</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"사용 안함"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"약"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"중"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"강"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"중"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"강"</string> <string name="bigram_prediction" msgid="1084449187723948550">"다음 단어 추천"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"추천할 때 이전 단어를 사용"</string> <string name="gesture_input" msgid="826951152254563827">"제스처 타이핑 사용"</string> diff --git a/java/res/values-ky/strings.xml b/java/res/values-ky/strings.xml index 466b45818..45d855cf6 100644 --- a/java/res/values-ky/strings.xml +++ b/java/res/values-ky/strings.xml @@ -98,9 +98,9 @@ <skip /> <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) --> <skip /> - <!-- no translation found for auto_correction_threshold_mode_aggeressive (3524029103734923819) --> + <!-- no translation found for auto_correction_threshold_mode_aggressive (3524029103734923819) --> <skip /> - <!-- no translation found for auto_correction_threshold_mode_very_aggeressive (3386782235540547678) --> + <!-- no translation found for auto_correction_threshold_mode_very_aggressive (3386782235540547678) --> <skip /> <!-- no translation found for bigram_suggestion (8169311444438922902) --> <skip /> diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index dd075e782..26f1b27ff 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Tarpo kl. ir skyr. ženkl. aut. išt. neteis. įv. žodž."</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Išjungta"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Vidutinis"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Atkaklus"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Labai agresyviai"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Atkaklus"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Labai agresyviai"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Kito žodžio pasiūlymai"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Sudarant pasiūlymus naudoti ankstesnį žodį"</string> <string name="gesture_input" msgid="826951152254563827">"Įgalinti teksto vedimą gestais"</string> diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index cdf561fb1..cdf04cca6 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Atstarpes taustiņš un interpunkcija; automātiska kļūdainu vārdu labošana"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Izslēgta"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mērena"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresīva"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Ļoti radikāla"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresīva"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Ļoti radikāla"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Nākamā vārda ieteikumi"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Veidojot ieteikumus, izmantot iepriekšējo vārdu."</string> <string name="gesture_input" msgid="826951152254563827">"Iespējot ievadi ar žestiem"</string> diff --git a/java/res/values-mn/strings.xml b/java/res/values-mn/strings.xml index 04b5109fe..12a3b47f1 100644 --- a/java/res/values-mn/strings.xml +++ b/java/res/values-mn/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Хоосон зай болон цэг таслал нь буруу бичсэн үгсийг автоматаар залруулна"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Идэвхгүй"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Хүлээцтэй"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Хүчтэй"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Маш хүчтэй"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Хүчтэй"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Маш хүчтэй"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Дараагийн-үг санал болгох"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Өмнөх үгийг үг санал болгоход ашиглах"</string> <string name="gesture_input" msgid="826951152254563827">"Зангаагаар бичихийг идэвхжүүлэх"</string> diff --git a/java/res/values-ms/strings.xml b/java/res/values-ms/strings.xml index 813866394..968243bb3 100644 --- a/java/res/values-ms/strings.xml +++ b/java/res/values-ms/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Bar ruang dan tanda baca secara automatik membetulkan perkataan yang ditaip salah"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Matikan"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Sederhana"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresif"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Sangat agresif"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresif"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Sangat agresif"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Cadangan perkataan seterusnya"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Gunakan perkataan sebelumnya dalam membuat cadangan"</string> <string name="gesture_input" msgid="826951152254563827">"Dayakan taipan gerak isyarat"</string> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index 9544108d2..33da13eaf 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Mellomromstast og skilletegn retter automat. feilstavede ord"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Av"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderat"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Omfattende"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Veldig aggressiv"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Omfattende"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Veldig aggressiv"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Forslag til neste ord"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Bruk forrige ord til å lage forslag"</string> <string name="gesture_input" msgid="826951152254563827">"Aktiver ordføring"</string> diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 08b14d488..5224f813f 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Met spatiebalk en interpunctie worden verkeerd gespelde woorden automatisch gecorrigeerd"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Uitgeschakeld"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Normaal"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressief"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Zeer agressief"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agressief"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Zeer agressief"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Suggesties voor volgend woord"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Het vorige woord gebruiken bij het doen van suggesties"</string> <string name="gesture_input" msgid="826951152254563827">"Typen via tekenen inschakelen"</string> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index dec06abe9..e128c0e33 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Spacja i znaki przestankowe poprawiają błędnie wpisane słowa"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Wyłącz"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Umiarkowana"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresywna"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Bardzo agresywna"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresywna"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Bardzo agresywna"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Podpowiadanie kolejnego słowa"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Pokazuj podpowiedzi na podstawie poprzedniego słowa"</string> <string name="gesture_input" msgid="826951152254563827">"Włącz pisanie gestami"</string> diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index 3c51154d4..fb06f9291 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Correcção automática de palavras mal escritas c/ barra de espaços e pontuação"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desligar"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderada"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressiva"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muito agressivo"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agressiva"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Muito agressivo"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Sugestões da palavra seguinte"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Utilizar palavra anterior para fazer sugestões"</string> <string name="gesture_input" msgid="826951152254563827">"Ativar escrita por toque"</string> diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index babf4ac1d..8cbc41e3a 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"A barra de espaço e a pontuação corrigem automaticamente palavras com erro de digitação"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desativado"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderado"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressivo"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muito agressivo"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agressivo"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Muito agressivo"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Sugestões para a palavra seguinte"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Usar a palavra anterior ao fazer sugestões"</string> <string name="gesture_input" msgid="826951152254563827">"Ativar a escrita com gestos"</string> diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml index 9eee1bbb7..71c9deb0c 100644 --- a/java/res/values-rm/strings.xml +++ b/java/res/values-rm/strings.xml @@ -104,9 +104,9 @@ <skip /> <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) --> <skip /> - <!-- no translation found for auto_correction_threshold_mode_aggeressive (3524029103734923819) --> + <!-- no translation found for auto_correction_threshold_mode_aggressive (3524029103734923819) --> <skip /> - <!-- no translation found for auto_correction_threshold_mode_very_aggeressive (3386782235540547678) --> + <!-- no translation found for auto_correction_threshold_mode_very_aggressive (3386782235540547678) --> <skip /> <!-- no translation found for bigram_prediction (1084449187723948550) --> <skip /> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index 69baa8a01..cbba8a375 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Corectare automată cuvinte prin bară spaţiu/semne punctuaţie"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Dezactivată"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderată"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivă"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Foarte exigentă"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresivă"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Foarte exigentă"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Sugestii pentru cuvântul următor"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Utilizează cuvântul anterior pentru sugestii"</string> <string name="gesture_input" msgid="826951152254563827">"Activați tastarea gestuală"</string> diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index 2c350d16d..13f34ee3e 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Автоматическое исправление опечаток при вводе знака препинания или пробела"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Откл."</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умеренное"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Активное"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Очень активно"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Активное"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Очень активно"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Подсказывать слова"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Предлагать подсказки на основе предыдущего слова"</string> <string name="gesture_input" msgid="826951152254563827">"Включить функцию"</string> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index 4b652d0f7..9d315a8f5 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Stlačením medzerníka a interpunkcie sa aut. opravia chybné slová"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Vypnuté"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mierne"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresívne"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Veľmi agresívne"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresívne"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Veľmi agresívne"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Návrhy ďalšieho slova"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Návrhy podľa predchádzajúceho slova"</string> <string name="gesture_input" msgid="826951152254563827">"Povoliť písanie gestami"</string> diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index f2bfc31e6..760cbde82 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Preslednica in ločila samodejno popravijo napačno vtipkane besede"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Izklopljeno"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Zmerno"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Strogo"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Zelo strogo"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Strogo"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Zelo strogo"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Predlogi za naslednjo besedo"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Pri predlogu upoštevaj prejšnjo besedo"</string> <string name="gesture_input" msgid="826951152254563827">"Omogoči vnos besedila s potezo"</string> diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index af4169322..6bddc5c98 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Размак и интерпункција аутоматски исправљају грешке у куцању"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Искључи"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умерено"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агресивно"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Веома агресивно"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Агресивно"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Веома агресивно"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Предлози за следећу реч"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Користи претходну реч при давању предлога"</string> <string name="gesture_input" msgid="826951152254563827">"Омогући унос покретом"</string> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index 539623bce..d1567c3ba 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Blanksteg/skiljetecken rättar felstavning"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Av"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Måttlig"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressiv"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Mycket aggressivt"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Aggressiv"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Mycket aggressivt"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Föreslå nästa ord"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Ge förslag utifrån föregående ord"</string> <string name="gesture_input" msgid="826951152254563827">"Aktivera svepskrivning"</string> diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml index cd31740b6..3891cf284 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Kiaamba na kiakifishi hurekebisha maneno ambayo yamechapishwa vibaya"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Zima"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Ya wastani"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Ya hima"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Changamfu zaidi"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Ya hima"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Changamfu zaidi"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Mapendekezo ya neno lifuatalo"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Tumia nelo la awali katika kufanya mapendekezo"</string> <string name="gesture_input" msgid="826951152254563827">"Washa kuandika kwa ishara"</string> diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index 908a7990a..9d407dda7 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"กดเว้นวรรคและเครื่องหมายจะแก้คำผิดอัตโนมัติ"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"ปิด"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"ปานกลาง"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"เข้มงวด"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"เข้มงวดมาก"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"เข้มงวด"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"เข้มงวดมาก"</string> <string name="bigram_prediction" msgid="1084449187723948550">"คำแนะนำสำหรับคำถัดไป"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"ใช้คำก่อนหน้าในการสร้างข้อเสนอแนะ"</string> <string name="gesture_input" msgid="826951152254563827">"เปิดการพิมพ์ด้วยท่าทางสัมผัส"</string> diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index e72a79864..ee5d88657 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Awto tinatama ng spacebar at bantas ang maling na-type"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Naka-off"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Modest"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresibo"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Napaka-agresibo"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresibo"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Napaka-agresibo"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Mga suhestiyon sa susunod na salita"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Gamitin ang nakaraang salita sa paggawa ng mga suhestiyon"</string> <string name="gesture_input" msgid="826951152254563827">"Paganahin ang gesture na pag-type"</string> diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index 26dfe70d6..2e7fa4353 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Boşluk tuşu ve noktalama işaretleri yanlış yazılan kelimeleri otomatikman düzeltir"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Kapalı"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Ölçülü"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresif"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Çok geniş ölçekte"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Agresif"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Çok geniş ölçekte"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Sonraki kelime önerileri"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Önerilerde bulunurken önceki kelimeyi kullan"</string> <string name="gesture_input" msgid="826951152254563827">"Hareketle yazmayı etkinleştir"</string> diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index a24eab713..fdc7cb922 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Пробіл і пунктуація автоматично виправляють слова з помилками"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Вимк."</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Помірне"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Активне"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Дуже активне"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Активне"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Дуже активне"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Пропозиції наступного слова"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Використовувати попереднє слово, щоб надавати пропозиції"</string> <string name="gesture_input" msgid="826951152254563827">"Увімкнути ввід жестами"</string> diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 6d9bde575..b489f5770 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Phím cách và dấu câu tự động sửa từ nhập sai"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Tắt"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Đơn giản"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Linh hoạt"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Rất linh hoạt"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Linh hoạt"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Rất linh hoạt"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Đề xuất từ tiếp theo"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Sử dụng từ trước đó khi đưa ra đề xuất"</string> <string name="gesture_input" msgid="826951152254563827">"Bật nhập bằng cử chỉ"</string> diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index 14198e59f..1177c01c4 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"按空格键和标点可自动更正错别字"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"关闭"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"小改"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"大改"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"改动极大"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"大改"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"改动极大"</string> <string name="bigram_prediction" msgid="1084449187723948550">"后续字词建议"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"根据上一个字词提供建议"</string> <string name="gesture_input" msgid="826951152254563827">"启用滑行输入"</string> diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index fe7f8f6fc..351907aaf 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"按空白鍵或標點符號時,自動修正前面的錯字"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"關閉"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"更正範圍小"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"更正範圍大"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"更正範圍極大"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"更正範圍大"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"更正範圍極大"</string> <string name="bigram_prediction" msgid="1084449187723948550">"建議下一個字詞"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"根據前一個字詞提供建議"</string> <string name="gesture_input" msgid="826951152254563827">"啟用手勢輸入"</string> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index 21cf1db60..9c44c6f1c 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -64,8 +64,8 @@ <string name="auto_correction_summary" msgid="5625751551134658006">"Ibha yesikhala nokubhala ngamagama amakhulu kulungisa amaphutha amagama athayiphwe kabi"</string> <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Valiwe"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Thobekile"</string> - <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Bukhali"</string> - <string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Nobudlova kakhulu"</string> + <string name="auto_correction_threshold_mode_aggressive" msgid="3524029103734923819">"Bukhali"</string> + <string name="auto_correction_threshold_mode_very_aggressive" msgid="3386782235540547678">"Nobudlova kakhulu"</string> <string name="bigram_prediction" msgid="1084449187723948550">"Iziphakamiso zegama elilandelayo"</string> <string name="bigram_prediction_summary" msgid="3896362682751109677">"Sebenzisa igama langaphambilini ekwenzeni iziphakamiso"</string> <string name="gesture_input" msgid="826951152254563827">"Nika amandla okuthayipha ngokuthinta"</string> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index c31831747..eef9116da 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -28,7 +28,6 @@ <attr name="moreKeysKeyboardViewStyle" format="reference" /> <attr name="moreKeysKeyboardPanelStyle" format="reference" /> <!-- Suggestions strip style --> - <attr name="suggestionsStripBackgroundStyle" format="reference" /> <attr name="suggestionStripViewStyle" format="reference" /> <attr name="moreSuggestionsViewStyle" format="reference" /> <attr name="suggestionBackgroundStyle" format="reference" /> @@ -217,6 +216,7 @@ <attr name="iconLanguageSwitchKey" format="reference" /> <attr name="iconZwnjKey" format="reference" /> <attr name="iconZwjKey" format="reference" /> + <attr name="iconEmojiKey" format="reference" /> </declare-styleable> <declare-styleable name="Keyboard_Key"> diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml index 5e990edd9..e352f082b 100644 --- a/java/res/values/donottranslate.xml +++ b/java/res/values/donottranslate.xml @@ -52,19 +52,19 @@ <string name="auto_correction_threshold_mode_index_off">0</string> <string name="auto_correction_threshold_mode_index_modest">1</string> - <string name="auto_correction_threshold_mode_index_aggeressive">2</string> - <string name="auto_correction_threshold_mode_index_very_aggeressive">3</string> + <string name="auto_correction_threshold_mode_index_aggressive">2</string> + <string name="auto_correction_threshold_mode_index_very_aggressive">3</string> <string-array name="auto_correction_threshold_mode_indexes"> <item>@string/auto_correction_threshold_mode_index_off</item> <item>@string/auto_correction_threshold_mode_index_modest</item> - <item>@string/auto_correction_threshold_mode_index_aggeressive</item> - <item>@string/auto_correction_threshold_mode_index_very_aggeressive</item> + <item>@string/auto_correction_threshold_mode_index_aggressive</item> + <item>@string/auto_correction_threshold_mode_index_very_aggressive</item> </string-array> <string-array name="auto_correction_threshold_modes"> <item>@string/auto_correction_threshold_mode_off</item> <item>@string/auto_correction_threshold_mode_modest</item> - <item>@string/auto_correction_threshold_mode_aggeressive</item> - <item>@string/auto_correction_threshold_mode_very_aggeressive</item> + <item>@string/auto_correction_threshold_mode_aggressive</item> + <item>@string/auto_correction_threshold_mode_very_aggressive</item> </string-array> <string name="voice_mode_main">0</string> diff --git a/java/res/values/keyboard-icons-black.xml b/java/res/values/keyboard-icons-black.xml index e9c5733b5..c1b1b6573 100644 --- a/java/res/values/keyboard-icons-black.xml +++ b/java/res/values/keyboard-icons-black.xml @@ -39,5 +39,6 @@ <!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons --> <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item> <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo</item> + <item name="iconEmojiKey">@drawable/ic_emoji_light</item> </style> </resources> diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml index 8eba196de..5ada27ae8 100644 --- a/java/res/values/keyboard-icons-ics.xml +++ b/java/res/values/keyboard-icons-ics.xml @@ -36,5 +36,6 @@ <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch</item> <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item> <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo</item> + <item name="iconEmojiKey">@drawable/ic_emoji_light</item> </style> </resources> diff --git a/java/res/values/keyboard-icons-white.xml b/java/res/values/keyboard-icons-white.xml index e52099867..7c6de42fa 100644 --- a/java/res/values/keyboard-icons-white.xml +++ b/java/res/values/keyboard-icons-white.xml @@ -35,5 +35,6 @@ <!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons --> <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item> <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo</item> + <item name="iconEmojiKey">@drawable/ic_emoji_dark</item> </style> </resources> diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index a7d2bd9de..1eff2f9c3 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -128,9 +128,9 @@ <!-- Option to suggest auto correction suggestions modestly. Auto-corrects only to a word which has small edit distance from typed word. [CHAR LIMIT=20] --> <string name="auto_correction_threshold_mode_modest">Modest</string> <!-- Option to suggest auto correction suggestions aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] --> - <string name="auto_correction_threshold_mode_aggeressive">Aggressive</string> + <string name="auto_correction_threshold_mode_aggressive">Aggressive</string> <!-- Option to suggest auto correction suggestions very aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] --> - <string name="auto_correction_threshold_mode_very_aggeressive">Very aggressive</string> + <string name="auto_correction_threshold_mode_very_aggressive">Very aggressive</string> <!-- Option to enable using next word suggestions. After the user types a space, with this option on, the keyboard will try to predict the next word. --> <string name="bigram_prediction">Next-word suggestions</string> @@ -380,20 +380,83 @@ This should be identical to subtype_serbian_latin aside from the trailing (%s). <string name="subtype_with_layout_sr-Latn">Serbian (Latin) (<xliff:g id="layout">%s</xliff:g>)</string> --> - <!-- Description for language agnostic keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language">No language</string> - <!-- Description for language agnostic QWERTY keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language_qwerty">No language (QWERTY)</string> - <!-- Description for language agnostic QWERTZ keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language_qwertz">No language (QWERTZ)</string> - <!-- Description for language agnostic AZERTY keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language_azerty">No language (AZERTY)</string> - <!-- Description for language agnostic Dvorak keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language_dvorak">No language (Dvorak)</string> - <!-- Description for language agnostic Colemak keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language_colemak">No language (Colemak)</string> - <!-- Description for language agnostic PC QWERTY keyboard subtype [CHAR LIMIT=25] --> - <string name="subtype_no_language_pcqwerty">No language (PC)</string> + <!-- This string is displayed in a language list that allows to choose a language for +suggestions in a software keyboard. This setting won't give suggestions in any particular +language, hence "No language". +As for the "alphabet" mention, it refers specifically to the Latin alphabet, as opposed to +Cyrillic, Arabic, Hebrew or other scripts. This keyboard offers no suggestions, but it will +be a QWERTY, or AZERTY, or any other disposition that only offers Latin characters, so +you wouldn't be able to type, say, Arabic on it. Please translate it in a way that "alphabet" +would be understood to mean specifically the Latin alphabet, rather than any other +alphabet. [CHAR LIMIT=25] --> + <string name="subtype_no_language">No language (Alphabet)</string> + <!-- This string is displayed in the description for a keyboard type. It refers specifically to +the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts. +When the device is configured to use a language using a script other than the Latin alphabet, the +user still needs a keyboard that can input Latin characters for passwords or login names for +example, and a way to switch to this Latin alphabet keyboard. This string is the description for +this keyboard, so users of other scripts should understand when they read this that it represents a +keyboard that is meant for them to be able to enter Latin characters as opposed to the script they +are used to. This keyboard does not provide a dictionary, and it is not tied to any specific +language among those that use the Latin alphabet. This keyboard is laid out in the QWERTY +disposition rather than other common dispositions for Latin languages. [CHAR LIMIT=25] --> + <string name="subtype_no_language_qwerty">Alphabet (QWERTY)</string> + <!-- This string is displayed in the description for a keyboard type. It refers specifically to +the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts. +When the device is configured to use a language using a script other than the Latin alphabet, the +user still needs a keyboard that can input Latin characters for passwords or login names for +example, and a way to switch to this Latin alphabet keyboard. This string is the description for +this keyboard, so users of other scripts should understand when they read this that it represents a +keyboard that is meant for them to be able to enter Latin characters as opposed to the script they +are used to. This keyboard does not provide a dictionary, and it is not tied to any specific +language among those that use the Latin alphabet. This keyboard is laid out in the QWERTZ +disposition rather than other common dispositions for Latin languages. [CHAR LIMIT=25] --> + <string name="subtype_no_language_qwertz">Alphabet (QWERTZ)</string> + <!-- This string is displayed in the description for a keyboard type. It refers specifically to +the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts. +When the device is configured to use a language using a script other than the Latin alphabet, the +user still needs a keyboard that can input Latin characters for passwords or login names for +example, and a way to switch to this Latin alphabet keyboard. This string is the description for +this keyboard, so users of other scripts should understand when they read this that it represents a +keyboard that is meant for them to be able to enter Latin characters as opposed to the script they +are used to. This keyboard does not provide a dictionary, and it is not tied to any specific +language among those that use the Latin alphabet. This keyboard is laid out in the AZERTY +disposition rather than other common dispositions for Latin languages. [CHAR LIMIT=25] --> + <string name="subtype_no_language_azerty">Alphabet (AZERTY)</string> + <!-- This string is displayed in the description for a keyboard type. It refers specifically to +the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts. +When the device is configured to use a language using a script other than the Latin alphabet, the +user still needs a keyboard that can input Latin characters for passwords or login names for +example, and a way to switch to this Latin alphabet keyboard. This string is the description for +this keyboard, so users of other scripts should understand when they read this that it represents a +keyboard that is meant for them to be able to enter Latin characters as opposed to the script they +are used to. This keyboard does not provide a dictionary, and it is not tied to any specific +language among those that use the Latin alphabet. This keyboard is laid out in the Dvorak +disposition rather than other common dispositions for Latin languages. [CHAR LIMIT=25] --> + <string name="subtype_no_language_dvorak">Alphabet (Dvorak)</string> + <!-- This string is displayed in the description for a keyboard type. It refers specifically to +the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts. +When the device is configured to use a language using a script other than the Latin alphabet, the +user still needs a keyboard that can input Latin characters for passwords or login names for +example, and a way to switch to this Latin alphabet keyboard. This string is the description for +this keyboard, so users of other scripts should understand when they read this that it represents a +keyboard that is meant for them to be able to enter Latin characters as opposed to the script they +are used to. This keyboard does not provide a dictionary, and it is not tied to any specific +language among those that use the Latin alphabet. This keyboard is laid out in the Colemak +disposition rather than other common dispositions for Latin languages. [CHAR LIMIT=25] --> + <string name="subtype_no_language_colemak">Alphabet (Colemak)</string> + <!-- This string is displayed in the description for a keyboard type. It refers specifically to +the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts. +When the device is configured to use a language using a script other than the Latin alphabet, the +user still needs a keyboard that can input Latin characters for passwords or login names for +example, and a way to switch to this Latin alphabet keyboard. This string is the description for +this keyboard, so users of other scripts should understand when they read this that it represents a +keyboard that is meant for them to be able to enter Latin characters as opposed to the script they +are used to. This keyboard does not provide a dictionary, and it is not tied to any specific +language among those that use the Latin alphabet. This keyboard is laid out in the QWERTY PC +disposition that offers additional keys, but smaller keys compared to other common dispositions for +mobile devices. [CHAR LIMIT=25] --> + <string name="subtype_no_language_pcqwerty">Alphabet (PC)</string> <!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]--> <string name="custom_input_styles_title">Custom input styles</string> diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml index 8b6c29e59..37c6a9553 100644 --- a/java/res/values/styles.xml +++ b/java/res/values/styles.xml @@ -145,13 +145,10 @@ <style name="MoreKeysKeyboardPanelStyle"> <item name="android:background">@drawable/keyboard_popup_panel_background</item> </style> - <style name="SuggestionsStripBackgroundStyle"> - <item name="android:background">@drawable/keyboard_suggest_strip</item> - </style> <style name="SuggestionStripViewStyle" - parent="SuggestionsStripBackgroundStyle" > + <item name="android:background">@drawable/keyboard_suggest_strip</item> <item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item> <item name="colorValidTypedWord">@color/highlight_color_default</item> <item name="colorTypedWord">@color/typed_word_color_default</item> @@ -380,13 +377,10 @@ <style name="MoreKeysKeyboardPanelStyle.IceCreamSandwich"> <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item> </style> - <style name="SuggestionsStripBackgroundStyle.IceCreamSandwich"> - <item name="android:background">@drawable/keyboard_suggest_strip_holo</item> - </style> <style name="SuggestionStripViewStyle.IceCreamSandwich" - parent="SuggestionsStripBackgroundStyle.IceCreamSandwich" > + <item name="android:background">@drawable/keyboard_suggest_strip_holo</item> <item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item> <item name="colorValidTypedWord">@color/highlight_color_ics</item> <item name="colorTypedWord">@color/highlight_color_ics</item> diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml index 48df0a1b6..e81d47386 100644 --- a/java/res/values/themes-basic-highcontrast.xml +++ b/java/res/values/themes-basic-highcontrast.xml @@ -22,7 +22,6 @@ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView</item> <item name="moreKeysKeyboardPanelStyle">@style/MoreKeysKeyboardPanelStyle</item> - <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> <item name="suggestionStripViewStyle">@style/SuggestionStripViewStyle</item> <item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item> <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml index 88a0c5d8d..c44f0f614 100644 --- a/java/res/values/themes-basic.xml +++ b/java/res/values/themes-basic.xml @@ -22,7 +22,6 @@ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView</item> <item name="moreKeysKeyboardPanelStyle">@style/MoreKeysKeyboardPanelStyle</item> - <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> <item name="suggestionStripViewStyle">@style/SuggestionStripViewStyle</item> <item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item> <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml index 51f680a7a..129afdf5b 100644 --- a/java/res/values/themes-gingerbread.xml +++ b/java/res/values/themes-gingerbread.xml @@ -22,7 +22,6 @@ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.Gingerbread</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.Gingerbread</item> <item name="moreKeysKeyboardPanelStyle">@style/MoreKeysKeyboardPanelStyle</item> - <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> <item name="suggestionStripViewStyle">@style/SuggestionStripViewStyle</item> <item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item> <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml index d9c59a180..1264831f3 100644 --- a/java/res/values/themes-ics.xml +++ b/java/res/values/themes-ics.xml @@ -22,7 +22,6 @@ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.IceCreamSandwich</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.IceCreamSandwich</item> <item name="moreKeysKeyboardPanelStyle">@style/MoreKeysKeyboardPanelStyle.IceCreamSandwich</item> - <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.IceCreamSandwich</item> <item name="suggestionStripViewStyle">@style/SuggestionStripViewStyle.IceCreamSandwich</item> <item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle.IceCreamSandwich</item> <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.IceCreamSandwich</item> diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml index 6ace9d673..196f3ef9f 100644 --- a/java/res/values/themes-stone-bold.xml +++ b/java/res/values/themes-stone-bold.xml @@ -22,7 +22,6 @@ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.Stone</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.Stone</item> <item name="moreKeysKeyboardPanelStyle">@style/MoreKeysKeyboardPanelStyle</item> - <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> <item name="suggestionStripViewStyle">@style/SuggestionStripViewStyle</item> <item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item> <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml index 3c3826b1a..d0d35c28d 100644 --- a/java/res/values/themes-stone.xml +++ b/java/res/values/themes-stone.xml @@ -22,7 +22,6 @@ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.Stone</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.Stone</item> <item name="moreKeysKeyboardPanelStyle">@style/MoreKeysKeyboardPanelStyle</item> - <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> <item name="suggestionStripViewStyle">@style/SuggestionStripViewStyle</item> <item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item> <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml index a2d2fd827..f407ba346 100644 --- a/java/res/xml-sw600dp/key_styles_common.xml +++ b/java/res/xml-sw600dp/key_styles_common.xml @@ -120,6 +120,11 @@ latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress" latin:altCode="!code/key_space" /> <key-style + latin:styleName="emojiKeyStyle" + latin:code="!code/key_emoji" + latin:keyIcon="!icon/emoji_key" + latin:keyActionFlags="noKeyPreview" /> + <key-style latin:styleName="settingsKeyStyle" latin:code="!code/key_settings" latin:keyIcon="!icon/settings_key" diff --git a/java/res/xml-sw600dp/rows_10_10_7_symbols.xml b/java/res/xml-sw600dp/rows_10_10_7_symbols.xml index 44c967c04..0e4710c37 100644 --- a/java/res/xml-sw600dp/rows_10_10_7_symbols.xml +++ b/java/res/xml-sw600dp/rows_10_10_7_symbols.xml @@ -43,7 +43,7 @@ latin:keyStyle="enterKeyStyle" latin:keyWidth="fillRight" /> </Row> - <Row + <Row latin:keyWidth="9.0%p" > <Key diff --git a/java/res/xml-sw768dp/key_styles_common.xml b/java/res/xml-sw768dp/key_styles_common.xml index e69bc3020..7c0a82a71 100644 --- a/java/res/xml-sw768dp/key_styles_common.xml +++ b/java/res/xml-sw768dp/key_styles_common.xml @@ -110,6 +110,11 @@ latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress" latin:altCode="!code/key_space" /> <key-style + latin:styleName="emojiKeyStyle" + latin:code="!code/key_emoji" + latin:keyIcon="!icon/emoji_key" + latin:keyActionFlags="noKeyPreview" /> + <key-style latin:styleName="settingsKeyStyle" latin:code="!code/key_settings" latin:keyIcon="!icon/settings_key" diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml index 6590d0a4c..355455e3b 100644 --- a/java/res/xml/key_styles_common.xml +++ b/java/res/xml/key_styles_common.xml @@ -126,6 +126,11 @@ latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress" latin:altCode="!code/key_space" /> <key-style + latin:styleName="emojiKeyStyle" + latin:code="!code/key_emoji" + latin:keyIcon="!icon/emoji_key" + latin:keyActionFlags="noKeyPreview" /> + <key-style latin:styleName="tabKeyStyle" latin:code="!code/key_tab" latin:keyIcon="!icon/tab_key" diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index 8864b7603..2fe081921 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -58,8 +58,6 @@ public final class KeyboardId { public final InputMethodSubtype mSubtype; public final Locale mLocale; - // TODO: Remove this member. It is used only for logging purpose. - public final int mOrientation; public final int mWidth; public final int mHeight; public final int mMode; @@ -77,7 +75,6 @@ public final class KeyboardId { public KeyboardId(final int elementId, final KeyboardLayoutSet.Params params) { mSubtype = params.mSubtype; mLocale = SubtypeLocaleUtils.getSubtypeLocale(mSubtype); - mOrientation = params.mOrientation; mWidth = params.mKeyboardWidth; mHeight = params.mKeyboardHeight; mMode = params.mMode; @@ -101,7 +98,6 @@ public final class KeyboardId { private static int computeHashCode(final KeyboardId id) { return Arrays.hashCode(new Object[] { - id.mOrientation, id.mElementId, id.mMode, id.mWidth, @@ -123,8 +119,7 @@ public final class KeyboardId { private boolean equals(final KeyboardId other) { if (other == this) return true; - return other.mOrientation == mOrientation - && other.mElementId == mElementId + return other.mElementId == mElementId && other.mMode == mMode && other.mWidth == mWidth && other.mHeight == mHeight @@ -185,13 +180,10 @@ public final class KeyboardId { @Override public String toString() { - final String orientation = (mOrientation == Configuration.ORIENTATION_PORTRAIT) - ? "port" : "land"; - return String.format(Locale.ROOT, "[%s %s:%s %s:%dx%d %s %s %s%s%s%s%s%s%s%s%s]", + return String.format(Locale.ROOT, "[%s %s:%s %dx%d %s %s %s%s%s%s%s%s%s%s%s]", elementIdToName(mElementId), - mLocale, - mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET), - orientation, mWidth, mHeight, + mLocale, mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET), + mWidth, mHeight, modeName(mMode), imeAction(), (navigateNext() ? "navigateNext" : ""), diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java index 6a900b45f..00b096c17 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java @@ -119,7 +119,6 @@ public final class KeyboardLayoutSet { boolean mLanguageSwitchKeyEnabled; InputMethodSubtype mSubtype; boolean mIsSpellChecker; - int mOrientation; int mKeyboardWidth; int mKeyboardHeight; // Sparse array of KeyboardLayoutSet element parameters indexed by element's id. @@ -178,42 +177,43 @@ public final class KeyboardLayoutSet { private Keyboard getKeyboard(final ElementParams elementParams, final KeyboardId id) { final SoftReference<Keyboard> ref = sKeyboardCache.get(id); - Keyboard keyboard = (ref == null) ? null : ref.get(); - if (keyboard == null) { - final KeyboardBuilder<KeyboardParams> builder = - new KeyboardBuilder<KeyboardParams>(mContext, new KeyboardParams()); - if (id.isAlphabetKeyboard()) { - builder.setAutoGenerate(sKeysCache); - } - final int keyboardXmlId = elementParams.mKeyboardXmlId; - builder.load(keyboardXmlId, id); - if (mParams.mDisableTouchPositionCorrectionDataForTest) { - builder.disableTouchPositionCorrectionDataForTest(); + final Keyboard cachedKeyboard = (ref == null) ? null : ref.get(); + if (cachedKeyboard != null) { + if (DEBUG_CACHE) { + Log.d(TAG, "keyboard cache size=" + sKeyboardCache.size() + ": HIT id=" + id); } - builder.setProximityCharsCorrectionEnabled( - elementParams.mProximityCharsCorrectionEnabled); - keyboard = builder.build(); - sKeyboardCache.put(id, new SoftReference<Keyboard>(keyboard)); - if ((id.mElementId == KeyboardId.ELEMENT_ALPHABET - || id.mElementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) - && !mParams.mIsSpellChecker) { - // We only forcibly cache the primary, "ALPHABET", layouts. - for (int i = sForcibleKeyboardCache.length - 1; i >= 1; --i) { - sForcibleKeyboardCache[i] = sForcibleKeyboardCache[i - 1]; - } - sForcibleKeyboardCache[0] = keyboard; - if (DEBUG_CACHE) { - Log.d(TAG, "forcing caching of keyboard with id=" + id); - } + return cachedKeyboard; + } + + final KeyboardBuilder<KeyboardParams> builder = + new KeyboardBuilder<KeyboardParams>(mContext, new KeyboardParams()); + if (id.isAlphabetKeyboard()) { + builder.setAutoGenerate(sKeysCache); + } + final int keyboardXmlId = elementParams.mKeyboardXmlId; + builder.load(keyboardXmlId, id); + if (mParams.mDisableTouchPositionCorrectionDataForTest) { + builder.disableTouchPositionCorrectionDataForTest(); + } + builder.setProximityCharsCorrectionEnabled(elementParams.mProximityCharsCorrectionEnabled); + final Keyboard keyboard = builder.build(); + sKeyboardCache.put(id, new SoftReference<Keyboard>(keyboard)); + if ((id.mElementId == KeyboardId.ELEMENT_ALPHABET + || id.mElementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) + && !mParams.mIsSpellChecker) { + // We only forcibly cache the primary, "ALPHABET", layouts. + for (int i = sForcibleKeyboardCache.length - 1; i >= 1; --i) { + sForcibleKeyboardCache[i] = sForcibleKeyboardCache[i - 1]; } + sForcibleKeyboardCache[0] = keyboard; if (DEBUG_CACHE) { - Log.d(TAG, "keyboard cache size=" + sKeyboardCache.size() + ": " - + ((ref == null) ? "LOAD" : "GCed") + " id=" + id); + Log.d(TAG, "forcing caching of keyboard with id=" + id); } - } else if (DEBUG_CACHE) { - Log.d(TAG, "keyboard cache size=" + sKeyboardCache.size() + ": HIT id=" + id); } - + if (DEBUG_CACHE) { + Log.d(TAG, "keyboard cache size=" + sKeyboardCache.size() + ": " + + ((ref == null) ? "LOAD" : "GCed") + " id=" + id); + } return keyboard; } @@ -241,9 +241,6 @@ public final class KeyboardLayoutSet { } public Builder setScreenGeometry(final int widthPixels, final int heightPixels) { - final Params params = mParams; - params.mOrientation = (heightPixels > widthPixels) - ? Configuration.ORIENTATION_PORTRAIT : Configuration.ORIENTATION_LANDSCAPE; setDefaultKeyboardSize(widthPixels, heightPixels); return this; } @@ -293,7 +290,7 @@ public final class KeyboardLayoutSet { } public Builder setIsSpellChecker(final boolean isSpellChecker) { - mParams.mIsSpellChecker = true; + mParams.mIsSpellChecker = isSpellChecker; return this; } @@ -316,8 +313,6 @@ public final class KeyboardLayoutSet { } public KeyboardLayoutSet build() { - if (mParams.mOrientation == Configuration.ORIENTATION_UNDEFINED) - throw new RuntimeException("Screen geometry is not specified"); if (mParams.mSubtype == null) throw new RuntimeException("KeyboardLayoutSet subtype is not specified"); final String packageName = mResources.getResourcePackageName( diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java index 6782317d0..7a5038843 100644 --- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java @@ -615,7 +615,8 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack final int keyHeight = keyboard.mMostCommonKeyHeight - keyboard.mVerticalGap; mSpacebarTextSize = keyHeight * mSpacebarTextRatio; if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { - ResearchLogger.mainKeyboardView_setKeyboard(keyboard); + final int orientation = getContext().getResources().getConfiguration().orientation; + ResearchLogger.mainKeyboardView_setKeyboard(keyboard, orientation); } // This always needs to be set since the accessibility state can diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java index d65aae2dc..dc815e57d 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java @@ -53,7 +53,7 @@ public final class KeyboardCodesSet { "key_action_previous", "key_shift_enter", "key_language_switch", - "key_research", + "key_emoji", "key_unspecified", "key_left_parenthesis", "key_right_parenthesis", @@ -90,7 +90,7 @@ public final class KeyboardCodesSet { Constants.CODE_ACTION_PREVIOUS, Constants.CODE_SHIFT_ENTER, Constants.CODE_LANGUAGE_SWITCH, - Constants.CODE_RESEARCH, + Constants.CODE_EMOJI, Constants.CODE_UNSPECIFIED, CODE_LEFT_PARENTHESIS, CODE_RIGHT_PARENTHESIS, diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java index 4e3f7618b..336db186e 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -56,6 +56,7 @@ public final class KeyboardIconsSet { "language_switch_key", R.styleable.Keyboard_iconLanguageSwitchKey, "zwnj_key", R.styleable.Keyboard_iconZwnjKey, "zwj_key", R.styleable.Keyboard_iconZwjKey, + "emoji_key", R.styleable.Keyboard_iconEmojiKey, }; private static int NUM_ICONS = NAMES_AND_ATTR_IDS.length / 2; diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java index 7bb7442f3..b55e19d52 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java @@ -3151,7 +3151,7 @@ public final class KeyboardTextsSet { /* 7 */ "\u00E7", }; - /* Language zz: No language */ + /* Language zz: Alphabet */ private static final String[] LANGUAGE_zz = { // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE @@ -3324,7 +3324,7 @@ public final class KeyboardTextsSet { "uk", LANGUAGE_uk, /* Ukrainian */ "vi", LANGUAGE_vi, /* Vietnamese */ "zu", LANGUAGE_zu, /* Zulu */ - "zz", LANGUAGE_zz, /* No language */ + "zz", LANGUAGE_zz, /* Alphabet */ }; static { diff --git a/java/src/com/android/inputmethod/latin/Constants.java b/java/src/com/android/inputmethod/latin/Constants.java index 6d67bdb04..8aec03f71 100644 --- a/java/src/com/android/inputmethod/latin/Constants.java +++ b/java/src/com/android/inputmethod/latin/Constants.java @@ -187,7 +187,7 @@ public final class Constants { public static final int CODE_ACTION_NEXT = -8; public static final int CODE_ACTION_PREVIOUS = -9; public static final int CODE_LANGUAGE_SWITCH = -10; - public static final int CODE_RESEARCH = -11; + public static final int CODE_EMOJI = -11; public static final int CODE_SHIFT_ENTER = -12; // Code value representing the code is not specified. public static final int CODE_UNSPECIFIED = -13; @@ -208,10 +208,11 @@ public final class Constants { case CODE_ACTION_NEXT: return "actionNext"; case CODE_ACTION_PREVIOUS: return "actionPrevious"; case CODE_LANGUAGE_SWITCH: return "languageSwitch"; + case CODE_EMOJI: return "emoji"; + case CODE_SHIFT_ENTER: return "shiftEnter"; case CODE_UNSPECIFIED: return "unspec"; case CODE_TAB: return "tab"; case CODE_ENTER: return "enter"; - case CODE_RESEARCH: return "research"; default: if (code < CODE_SPACE) return String.format("'\\u%02x'", code); if (code < 0x100) return String.format("'%c'", code); diff --git a/java/src/com/android/inputmethod/latin/InputView.java b/java/src/com/android/inputmethod/latin/InputView.java index 5359c8185..81ccf83d8 100644 --- a/java/src/com/android/inputmethod/latin/InputView.java +++ b/java/src/com/android/inputmethod/latin/InputView.java @@ -24,7 +24,7 @@ import android.view.View; import android.widget.LinearLayout; public final class InputView extends LinearLayout { - private View mSuggestionStripContainer; + private View mSuggestionStripView; private View mKeyboardView; private int mKeyboardTopPadding; @@ -33,33 +33,29 @@ public final class InputView extends LinearLayout { private final Rect mEventForwardingRect = new Rect(); private final Rect mEventReceivingRect = new Rect(); - public InputView(Context context, AttributeSet attrs) { + public InputView(final Context context, final AttributeSet attrs) { super(context, attrs, 0); } - public void setKeyboardGeometry(int keyboardTopPadding) { + public void setKeyboardGeometry(final int keyboardTopPadding) { mKeyboardTopPadding = keyboardTopPadding; } @Override protected void onFinishInflate() { - mSuggestionStripContainer = findViewById(R.id.suggestions_container); + mSuggestionStripView = findViewById(R.id.suggestion_strip_view); mKeyboardView = findViewById(R.id.keyboard_view); } @Override - public boolean dispatchTouchEvent(MotionEvent me) { - if (mSuggestionStripContainer.getVisibility() == VISIBLE - && mKeyboardView.getVisibility() == VISIBLE - && forwardTouchEvent(me)) { - return true; + public boolean dispatchTouchEvent(final MotionEvent me) { + if (mSuggestionStripView.getVisibility() != VISIBLE + || mKeyboardView.getVisibility() != VISIBLE) { + return super.dispatchTouchEvent(me); } - return super.dispatchTouchEvent(me); - } - // The touch events that hit the top padding of keyboard should be forwarded to - // {@link SuggestionStripView}. - private boolean forwardTouchEvent(MotionEvent me) { + // The touch events that hit the top padding of keyboard should be forwarded to + // {@link SuggestionStripView}. final Rect rect = mInputViewRect; this.getGlobalVisibleRect(rect); final int x = (int)me.getX() + rect.left; @@ -68,7 +64,7 @@ public final class InputView extends LinearLayout { final Rect forwardingRect = mEventForwardingRect; mKeyboardView.getGlobalVisibleRect(forwardingRect); if (!mIsForwardingEvent && !forwardingRect.contains(x, y)) { - return false; + return super.dispatchTouchEvent(me); } final int forwardingLimitY = forwardingRect.top + mKeyboardTopPadding; @@ -93,11 +89,11 @@ public final class InputView extends LinearLayout { } if (!sendToTarget) { - return false; + return super.dispatchTouchEvent(me); } final Rect receivingRect = mEventReceivingRect; - mSuggestionStripContainer.getGlobalVisibleRect(receivingRect); + mSuggestionStripView.getGlobalVisibleRect(receivingRect); final int translatedX = x - receivingRect.left; final int translatedY; if (y < forwardingLimitY) { @@ -107,7 +103,7 @@ public final class InputView extends LinearLayout { translatedY = y - receivingRect.top; } me.setLocation(translatedX, translatedY); - mSuggestionStripContainer.dispatchTouchEvent(me); + mSuggestionStripView.dispatchTouchEvent(me); return true; } } diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index e9a8e1d55..6339e9c50 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -152,7 +152,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private View mExtractArea; private View mKeyPreviewBackingView; - private View mSuggestionsContainer; private SuggestionStripView mSuggestionStripView; // Never null private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY; @@ -667,7 +666,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mExtractArea = getWindow().getWindow().getDecorView() .findViewById(android.R.id.extractArea); mKeyPreviewBackingView = view.findViewById(R.id.key_preview_backing); - mSuggestionsContainer = view.findViewById(R.id.suggestions_container); mSuggestionStripView = (SuggestionStripView)view.findViewById(R.id.suggestion_strip_view); if (mSuggestionStripView != null) mSuggestionStripView.setListener(this, view); @@ -1111,17 +1109,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private void setSuggestionStripShownInternal(final boolean shown, final boolean needsInputViewShown) { // TODO: Modify this if we support suggestions with hard keyboard - if (onEvaluateInputViewShown() && mSuggestionsContainer != null) { + if (onEvaluateInputViewShown() && mSuggestionStripView != null) { final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); final boolean inputViewShown = (mainKeyboardView != null) ? mainKeyboardView.isShown() : false; final boolean shouldShowSuggestions = shown && (needsInputViewShown ? inputViewShown : true); if (isFullscreenMode()) { - mSuggestionsContainer.setVisibility( + mSuggestionStripView.setVisibility( shouldShowSuggestions ? View.VISIBLE : View.GONE); } else { - mSuggestionsContainer.setVisibility( + mSuggestionStripView.setVisibility( shouldShowSuggestions ? View.VISIBLE : View.INVISIBLE); } } @@ -1142,7 +1140,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return 0; } final int keyboardHeight = mainKeyboardView.getHeight(); - final int suggestionsHeight = mSuggestionsContainer.getHeight(); + final int suggestionsHeight = mSuggestionStripView.getHeight(); final int displayHeight = getResources().getDisplayMetrics().heightPixels; final Rect rect = new Rect(); mKeyPreviewBackingView.getWindowVisibleDisplayFrame(rect); @@ -1160,7 +1158,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen public void onComputeInsets(final InputMethodService.Insets outInsets) { super.onComputeInsets(outInsets); final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); - if (mainKeyboardView == null || mSuggestionsContainer == null) { + if (mainKeyboardView == null || mSuggestionStripView == null) { return; } final int adjustedBackingHeight = getAdjustedBackingViewHeight(); @@ -1170,13 +1168,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // be considered. // See {@link android.inputmethodservice.InputMethodService#onComputeInsets}. final int extractHeight = isFullscreenMode() ? mExtractArea.getHeight() : 0; - final int suggestionsHeight = (mSuggestionsContainer.getVisibility() == View.GONE) ? 0 - : mSuggestionsContainer.getHeight(); + final int suggestionsHeight = (mSuggestionStripView.getVisibility() == View.GONE) ? 0 + : mSuggestionStripView.getHeight(); final int extraHeight = extractHeight + backingHeight + suggestionsHeight; int visibleTopY = extraHeight; // Need to set touchable region only if input view is being shown if (mainKeyboardView.isShown()) { - if (mSuggestionsContainer.getVisibility() == View.VISIBLE) { + if (mSuggestionStripView.getVisibility() == View.VISIBLE) { visibleTopY -= suggestionsHeight; } final int touchY = mainKeyboardView.isShowingMoreKeysPanel() ? 0 : visibleTopY; @@ -1512,10 +1510,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen case Constants.CODE_LANGUAGE_SWITCH: handleLanguageSwitchKey(); break; - case Constants.CODE_RESEARCH: - if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { - ResearchLogger.getInstance().onResearchKeySelected(this); - } + case Constants.CODE_EMOJI: + // TODO: Implement emoji keyboard switch. break; case Constants.CODE_ENTER: final EditorInfo editorInfo = getCurrentInputEditorInfo(); @@ -1608,6 +1604,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen resetComposingState(true /* alsoResetLastComposedWord */); } mHandler.postUpdateSuggestionStrip(); + if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS + && ResearchLogger.RESEARCH_KEY_OUTPUT_TEXT.equals(rawText)) { + ResearchLogger.getInstance().onResearchKeySelected(this); + return; + } final String text = specificTldProcessingOnTextInput(rawText); if (SPACE_STATE_PHANTOM == mSpaceState) { promotePhantomSpace(); @@ -1639,7 +1640,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } final int wordComposerSize = mWordComposer.size(); // Since isComposingWord() is true, the size is at least 1. - final int lastChar = mWordComposer.getCodeBeforeCursor(); if (mWordComposer.isCursorFrontOrMiddleOfComposingWord()) { // If we are in the middle of a recorrection, we need to commit the recorrection // first so that we can insert the batch input at the current cursor position. diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java index 25187ced1..3a3408266 100644 --- a/java/src/com/android/inputmethod/research/ResearchLogger.java +++ b/java/src/com/android/inputmethod/research/ResearchLogger.java @@ -132,6 +132,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang // FEEDBACK_WORD_BUFFER_SIZE should add 1 because it must also hold the feedback LogUnit itself. public static final int FEEDBACK_WORD_BUFFER_SIZE = (Integer.MAX_VALUE - 1) + 1; + // The special output text to invoke a research feedback dialog. + public static final String RESEARCH_KEY_OUTPUT_TEXT = ".research."; + // constants related to specific log points private static final String WHITESPACE_SEPARATORS = " \t\n\r"; private static final int MAX_INPUTVIEW_LENGTH_TO_CAPTURE = 8192; // must be >=1 @@ -402,6 +405,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang } public void onResearchKeySelected(final LatinIME latinIME) { + mCurrentLogUnit.removeResearchButtonInvocation(); if (mInFeedbackDialog) { Toast.makeText(latinIME, R.string.research_please_exit_feedback_form, Toast.LENGTH_LONG).show(); @@ -1410,7 +1414,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang "navigatePrevious", "clobberSettingsKey", "passwordInput", "shortcutKeyEnabled", "hasShortcutKey", "languageSwitchKeyEnabled", "isMultiLine", "tw", "th", "keys"); - public static void mainKeyboardView_setKeyboard(final Keyboard keyboard) { + public static void mainKeyboardView_setKeyboard(final Keyboard keyboard, + final int orientation) { final KeyboardId kid = keyboard.mId; final boolean isPasswordView = kid.passwordInput(); final ResearchLogger researchLogger = getInstance(); @@ -1418,7 +1423,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang researchLogger.enqueueEvent(LOGSTATEMENT_MAINKEYBOARDVIEW_SETKEYBOARD, KeyboardId.elementIdToName(kid.mElementId), kid.mLocale + ":" + kid.mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET), - kid.mOrientation, kid.mWidth, KeyboardId.modeName(kid.mMode), kid.imeAction(), + orientation, kid.mWidth, KeyboardId.modeName(kid.mMode), kid.imeAction(), kid.navigateNext(), kid.navigatePrevious(), kid.mClobberSettingsKey, isPasswordView, kid.mShortcutKeyEnabled, kid.mHasShortcutKey, kid.mLanguageSwitchKeyEnabled, kid.isMultiLine(), keyboard.mOccupiedWidth, @@ -1506,16 +1511,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang Constants.printableCode(scrubDigitFromCodePoint(code)), outputText == null ? null : scrubDigitsFromString(outputText.toString()), x, y, ignoreModifierKey, altersCode, key.isEnabled()); - if (code == Constants.CODE_RESEARCH) { - researchLogger.suppressResearchKeyMotionData(); - } } } - private void suppressResearchKeyMotionData() { - mCurrentLogUnit.removeResearchButtonInvocation(); - } - /** * Log a call to PointerTracker.callListenerCallListenerOnRelease(). * diff --git a/native/jni/Android.mk b/native/jni/Android.mk index acd230ff2..e14cf5a71 100644 --- a/native/jni/Android.mk +++ b/native/jni/Android.mk @@ -71,7 +71,9 @@ LATIN_IME_CORE_SRC_FILES := \ suggest/core/policy/weighting.cpp \ suggest/core/session/dic_traverse_session.cpp \ $(addprefix suggest/policyimpl/dictionary/, \ + dynamic_patricia_trie_node_reader.cpp \ dynamic_patricia_trie_policy.cpp \ + dynamic_patricia_trie_reading_utils.cpp \ patricia_trie_policy.cpp \ patricia_trie_reading_utils.cpp) \ suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \ diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp index 6e1b80ee0..8b46c2644 100644 --- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp @@ -186,7 +186,7 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j scores, spaceIndices, outputTypes); } else { count = dictionary->getBigrams(prevWordCodePoints, prevWordCodePointsLength, - inputCodePoints, inputSize, outputCodePoints, scores, outputTypes); + outputCodePoints, scores, outputTypes); } // Copy back the output values diff --git a/native/jni/src/suggest/core/dictionary/bigram_dictionary.cpp b/native/jni/src/suggest/core/dictionary/bigram_dictionary.cpp index 532c769c6..3751ae500 100644 --- a/native/jni/src/suggest/core/dictionary/bigram_dictionary.cpp +++ b/native/jni/src/suggest/core/dictionary/bigram_dictionary.cpp @@ -87,21 +87,14 @@ void BigramDictionary::addWordBigram(int *word, int length, int probability, int /* Parameters : * prevWord: the word before, the one for which we need to look up bigrams. * prevWordLength: its length. - * inputCodePoints: what user typed, in the same format as for UnigramDictionary::getSuggestions. - * inputSize: the size of the codes array. - * bigramCodePoints: an array for output, at the same format as outwords for getSuggestions. - * bigramProbability: an array to output frequencies. + * outBigramCodePoints: an array for output, at the same format as outwords for getSuggestions. + * outBigramProbability: an array to output frequencies. * outputTypes: an array to output types. * This method returns the number of bigrams this word has, for backward compatibility. - * Note: this is not the number of bigrams output in the array, which is the number of - * bigrams this word has WHOSE first letter also matches the letter the user typed. - * TODO: this may not be a sensible thing to do. It makes sense when the bigrams are - * used to match the first letter of the second word, but once the user has typed more - * and the bigrams are used to boost unigram result scores, it makes little sense to - * reduce their scope to the ones that match the first letter. */ -int BigramDictionary::getPredictions(const int *prevWord, int prevWordLength, int *inputCodePoints, - int inputSize, int *bigramCodePoints, int *bigramProbability, int *outputTypes) const { +int BigramDictionary::getPredictions(const int *prevWord, const int prevWordLength, + int *const outBigramCodePoints, int *const outBigramProbability, + int *const outputTypes) const { // TODO: remove unused arguments, and refrain from storing stuff in members of this class // TODO: have "in" arguments before "out" ones, and make out args explicit in the name @@ -126,21 +119,16 @@ int BigramDictionary::getPredictions(const int *prevWord, int prevWordLength, in getCodePointsAndProbabilityAndReturnCodePointCount( mBinaryDictionaryInfo, bigramsIt.getBigramPos(), MAX_WORD_LENGTH, bigramBuffer, &unigramProbability); - - // inputSize == 0 means we are trying to find bigram predictions. - if (inputSize < 1 || checkFirstCharacter(bigramBuffer, inputCodePoints)) { - const int bigramProbabilityTemp = bigramsIt.getProbability(); - // Due to space constraints, the probability for bigrams is approximate - the lower the - // unigram probability, the worse the precision. The theoritical maximum error in - // resulting probability is 8 - although in the practice it's never bigger than 3 or 4 - // in very bad cases. This means that sometimes, we'll see some bigrams interverted - // here, but it can't get too bad. - const int probability = ProbabilityUtils::computeProbabilityForBigram( - unigramProbability, bigramProbabilityTemp); - addWordBigram(bigramBuffer, length, probability, bigramProbability, bigramCodePoints, - outputTypes); - ++bigramCount; - } + // Due to space constraints, the probability for bigrams is approximate - the lower the + // unigram probability, the worse the precision. The theoritical maximum error in + // resulting probability is 8 - although in the practice it's never bigger than 3 or 4 + // in very bad cases. This means that sometimes, we'll see some bigrams interverted + // here, but it can't get too bad. + const int probability = ProbabilityUtils::computeProbabilityForBigram( + unigramProbability, bigramsIt.getProbability()); + addWordBigram(bigramBuffer, length, probability, outBigramProbability, outBigramCodePoints, + outputTypes); + ++bigramCount; } return min(bigramCount, MAX_RESULTS); } @@ -157,22 +145,6 @@ int BigramDictionary::getBigramListPositionForWord(const int *prevWord, const in mBinaryDictionaryInfo, pos); } -bool BigramDictionary::checkFirstCharacter(int *word, int *inputCodePoints) const { - // Checks whether this word starts with same character or neighboring characters of - // what user typed. - - int maxAlt = MAX_ALTERNATIVES; - const int firstBaseLowerCodePoint = CharUtils::toBaseLowerCase(*word); - while (maxAlt > 0) { - if (CharUtils::toBaseLowerCase(*inputCodePoints) == firstBaseLowerCodePoint) { - return true; - } - inputCodePoints++; - maxAlt--; - } - return false; -} - bool BigramDictionary::isValidBigram(const int *word0, int length0, const int *word1, int length1) const { int pos = getBigramListPositionForWord(word0, length0, false /* forceLowerCaseSearch */); diff --git a/native/jni/src/suggest/core/dictionary/bigram_dictionary.h b/native/jni/src/suggest/core/dictionary/bigram_dictionary.h index 7706a2c22..438c34cac 100644 --- a/native/jni/src/suggest/core/dictionary/bigram_dictionary.h +++ b/native/jni/src/suggest/core/dictionary/bigram_dictionary.h @@ -27,8 +27,8 @@ class BigramDictionary { public: BigramDictionary(const BinaryDictionaryInfo *const binaryDictionaryInfo); - int getPredictions(const int *word, int length, int *inputCodePoints, int inputSize, - int *outWords, int *frequencies, int *outputTypes) const; + int getPredictions(const int *word, int length, int *outBigramCodePoints, + int *outBigramProbability, int *outputTypes) const; bool isValidBigram(const int *word1, int length1, const int *word2, int length2) const; ~BigramDictionary(); @@ -37,13 +37,10 @@ class BigramDictionary { void addWordBigram(int *word, int length, int probability, int *bigramProbability, int *bigramCodePoints, int *outputTypes) const; - bool checkFirstCharacter(int *word, int *inputCodePoints) const; int getBigramListPositionForWord(const int *prevWord, const int prevWordLength, const bool forceLowerCaseSearch) const; const BinaryDictionaryInfo *const mBinaryDictionaryInfo; - // TODO: Re-implement proximity correction for bigram correction - static const int MAX_ALTERNATIVES = 1; }; } // namespace latinime #endif // LATINIME_BIGRAM_DICTIONARY_H diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp index 4f5d29f6a..4a9e38fe8 100644 --- a/native/jni/src/suggest/core/dictionary/dictionary.cpp +++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp @@ -76,11 +76,10 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession } } -int Dictionary::getBigrams(const int *word, int length, int *inputCodePoints, int inputSize, - int *outWords, int *frequencies, int *outputTypes) const { +int Dictionary::getBigrams(const int *word, int length, int *outWords, int *frequencies, + int *outputTypes) const { if (length <= 0) return 0; - return mBigramDictionary->getPredictions(word, length, inputCodePoints, inputSize, outWords, - frequencies, outputTypes); + return mBigramDictionary->getPredictions(word, length, outWords, frequencies, outputTypes); } int Dictionary::getProbability(const int *word, int length) const { diff --git a/native/jni/src/suggest/core/dictionary/dictionary.h b/native/jni/src/suggest/core/dictionary/dictionary.h index 1bf24a85b..9f1e0729d 100644 --- a/native/jni/src/suggest/core/dictionary/dictionary.h +++ b/native/jni/src/suggest/core/dictionary/dictionary.h @@ -62,8 +62,8 @@ class Dictionary { const SuggestOptions *const suggestOptions, int *outWords, int *frequencies, int *spaceIndices, int *outputTypes) const; - int getBigrams(const int *word, int length, int *inputCodePoints, int inputSize, int *outWords, - int *frequencies, int *outputTypes) const; + int getBigrams(const int *word, int length, int *outWords, int *frequencies, + int *outputTypes) const; int getProbability(const int *word, int length) const; diff --git a/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.cpp new file mode 100644 index 000000000..20cda91a3 --- /dev/null +++ b/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.cpp @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2013, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.h" + +#include "suggest/core/dictionary/binary_dictionary_info.h" +#include "suggest/core/dictionary/binary_dictionary_terminal_attributes_reading_utils.h" +#include "suggest/policyimpl/dictionary/dynamic_patricia_trie_reading_utils.h" + +namespace latinime { + +void DynamicPatriciaTrieNodeReader::fetchNodeInfoFromBufferAndProcessMovedNode(const int nodePos, + const int maxCodePointCount, int *const outCodePoints) { + const uint8_t *const dictRoot = mBinaryDictionaryInfo->getDictRoot(); + int pos = nodePos; + mFlags = PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictRoot, &pos); + mParentPos = DynamicPatriciaTrieReadingUtils::getParentPosAndAdvancePosition(dictRoot, &pos); + if (outCodePoints != 0) { + mCodePointCount = PatriciaTrieReadingUtils::getCharsAndAdvancePosition( + dictRoot, mFlags, maxCodePointCount, outCodePoints, &pos); + } else { + mCodePointCount = PatriciaTrieReadingUtils::skipCharacters( + dictRoot, mFlags, MAX_WORD_LENGTH, &pos); + } + if (isTerminal()) { + mProbability = PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(dictRoot, &pos); + } else { + mProbability = NOT_A_PROBABILITY; + } + if (hasChildren()) { + mChildrenPos = DynamicPatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition( + dictRoot, mFlags, &pos); + } else { + mChildrenPos = NOT_A_DICT_POS; + } + if (PatriciaTrieReadingUtils::hasShortcutTargets(mFlags)) { + mShortcutPos = pos; + BinaryDictionaryTerminalAttributesReadingUtils::skipShortcuts(mBinaryDictionaryInfo, &pos); + } else { + mShortcutPos = NOT_A_DICT_POS; + } + if (PatriciaTrieReadingUtils::hasBigrams(mFlags)) { + mBigramPos = pos; + BinaryDictionaryTerminalAttributesReadingUtils::skipExistingBigrams( + mBinaryDictionaryInfo, &pos); + } else { + mBigramPos = NOT_A_DICT_POS; + } + // Update siblingPos if needed. + if (mSiblingPos == NOT_A_VALID_WORD_POS) { + // Sibling position is the tail position of current node. + mSiblingPos = pos; + } + // Read destination node if the read node is a moved node. + if (DynamicPatriciaTrieReadingUtils::isMoved(mFlags)) { + // The destination position is stored at the same place as the parent position. + fetchNodeInfoFromBufferAndProcessMovedNode(mParentPos, maxCodePointCount, outCodePoints); + } +} + +} diff --git a/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.h b/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.h new file mode 100644 index 000000000..b668aab78 --- /dev/null +++ b/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.h @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2013, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef LATINIME_DYNAMIC_PATRICIA_TRIE_NODE_READER_H +#define LATINIME_DYNAMIC_PATRICIA_TRIE_NODE_READER_H + +#include "defines.h" +#include "suggest/policyimpl/dictionary/dynamic_patricia_trie_reading_utils.h" +#include "suggest/policyimpl/dictionary/patricia_trie_reading_utils.h" + +namespace latinime { + +class BinaryDictionaryInfo; + +/* + * This class is used for helping to read nodes of dynamic patricia trie. This class handles moved + * node and reads node attributes. + */ +class DynamicPatriciaTrieNodeReader { + public: + explicit DynamicPatriciaTrieNodeReader(const BinaryDictionaryInfo *const binaryDictionaryInfo) + : mBinaryDictionaryInfo(binaryDictionaryInfo), mNodePos(NOT_A_VALID_WORD_POS), + mFlags(0), mParentPos(NOT_A_DICT_POS), mCodePointCount(0), + mProbability(NOT_A_PROBABILITY), mChildrenPos(NOT_A_DICT_POS), + mShortcutPos(NOT_A_DICT_POS), mBigramPos(NOT_A_DICT_POS), + mSiblingPos(NOT_A_VALID_WORD_POS) {} + + ~DynamicPatriciaTrieNodeReader() {} + + // Reads node information from dictionary buffer and updates members with the information. + AK_FORCE_INLINE void fetchNodeInfoFromBuffer(const int nodePos) { + fetchNodeInfoFromBufferAndGetNodeCodePoints(mNodePos , 0 /* maxCodePointCount */, + 0 /* outCodePoints */); + } + + AK_FORCE_INLINE void fetchNodeInfoFromBufferAndGetNodeCodePoints(const int nodePos, + const int maxCodePointCount, int *const outCodePoints) { + mNodePos = nodePos; + mSiblingPos = NOT_A_VALID_WORD_POS; + fetchNodeInfoFromBufferAndProcessMovedNode(mNodePos, maxCodePointCount, outCodePoints); + } + + AK_FORCE_INLINE int getNodePos() const { + return mNodePos; + } + + // Flags + AK_FORCE_INLINE bool isDeleted() const { + return DynamicPatriciaTrieReadingUtils::isDeleted(mFlags); + } + + AK_FORCE_INLINE bool hasChildren() const { + return PatriciaTrieReadingUtils::hasChildrenInFlags(mFlags); + } + + AK_FORCE_INLINE bool isTerminal() const { + return PatriciaTrieReadingUtils::isTerminal(mFlags); + } + + AK_FORCE_INLINE bool isBlacklisted() const { + return PatriciaTrieReadingUtils::isBlacklisted(mFlags); + } + + AK_FORCE_INLINE bool isNotAWord() const { + return PatriciaTrieReadingUtils::isNotAWord(mFlags); + } + + // Parent node position + AK_FORCE_INLINE int getParentPos() const { + return mParentPos; + } + + // Number of code points + AK_FORCE_INLINE uint8_t getCodePointCount() const { + return mCodePointCount; + } + + // Probability + AK_FORCE_INLINE int getProbability() const { + return mProbability; + } + + // Children node group position + AK_FORCE_INLINE int getChildrenPos() const { + return mChildrenPos; + } + + // Shortcutlist position + AK_FORCE_INLINE int getShortcutPos() const { + return mShortcutPos; + } + + // Bigrams position + AK_FORCE_INLINE int getBigramsPos() const { + return mBigramPos; + } + + // Sibling node position + AK_FORCE_INLINE int getSiblingNodePos() const { + return mSiblingPos; + } + + private: + DISALLOW_COPY_AND_ASSIGN(DynamicPatriciaTrieNodeReader); + + const BinaryDictionaryInfo *const mBinaryDictionaryInfo; + int mNodePos; + DynamicPatriciaTrieReadingUtils::NodeFlags mFlags; + int mParentPos; + uint8_t mCodePointCount; + int mProbability; + int mChildrenPos; + int mShortcutPos; + int mBigramPos; + int mSiblingPos; + + void fetchNodeInfoFromBufferAndProcessMovedNode(const int nodePos, const int maxCodePointCount, + int *const outCodePoints); +}; +} // namespace latinime +#endif /* LATINIME_DYNAMIC_PATRICIA_TRIE_NODE_READER_H */ diff --git a/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_policy.cpp index c7314ecf1..9a180e6f7 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_policy.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/dynamic_patricia_trie_policy.cpp @@ -14,12 +14,15 @@ * limitations under the License. */ -#include "suggest/policyimpl/dictionary/patricia_trie_policy.h" +#include "suggest/policyimpl/dictionary/dynamic_patricia_trie_policy.h" #include "defines.h" #include "suggest/core/dicnode/dic_node.h" #include "suggest/core/dicnode/dic_node_vector.h" #include "suggest/core/dictionary/binary_dictionary_info.h" +#include "suggest/policyimpl/dictionary/dynamic_patricia_trie_node_reader.h" +#include "suggest/policyimpl/dictionary/dynamic_patricia_trie_reading_utils.h" +#include "suggest/policyimpl/dictionary/patricia_trie_reading_utils.h" namespace latinime { @@ -28,15 +31,76 @@ const DynamicPatriciaTriePolicy DynamicPatriciaTriePolicy::sInstance; void DynamicPatriciaTriePolicy::createAndGetAllChildNodes(const DicNode *const dicNode, const BinaryDictionaryInfo *const binaryDictionaryInfo, const NodeFilter *const nodeFilter, DicNodeVector *const childDicNodes) const { - // TODO: Implement. + if (!dicNode->hasChildren()) { + return; + } + DynamicPatriciaTrieNodeReader nodeReader(binaryDictionaryInfo); + int mergedNodeCodePoints[MAX_WORD_LENGTH]; + int nextPos = dicNode->getChildrenPos(); + do { + const int childCount = PatriciaTrieReadingUtils::getGroupCountAndAdvancePosition( + binaryDictionaryInfo->getDictRoot(), &nextPos); + for (int i = 0; i < childCount; i++) { + nodeReader.fetchNodeInfoFromBufferAndGetNodeCodePoints(nextPos, MAX_WORD_LENGTH, + mergedNodeCodePoints); + if (!nodeReader.isDeleted() && !nodeFilter->isFilteredOut(mergedNodeCodePoints[0])) { + // Push child note when the node is not deleted and not filtered out. + childDicNodes->pushLeavingChild(dicNode, nodeReader.getNodePos(), + nodeReader.getChildrenPos(), nodeReader.getProbability(), + nodeReader.isTerminal(), nodeReader.hasChildren(), + nodeReader.isBlacklisted() || nodeReader.isNotAWord(), + nodeReader.getCodePointCount(), mergedNodeCodePoints); + } + nextPos = nodeReader.getSiblingNodePos(); + } + nextPos = DynamicPatriciaTrieReadingUtils::getForwardLinkPosition( + binaryDictionaryInfo->getDictRoot(), nextPos); + } while(DynamicPatriciaTrieReadingUtils::isValidForwardLinkPosition(nextPos)); } int DynamicPatriciaTriePolicy::getCodePointsAndProbabilityAndReturnCodePointCount( const BinaryDictionaryInfo *const binaryDictionaryInfo, const int nodePos, const int maxCodePointCount, int *const outCodePoints, int *const outUnigramProbability) const { - // TODO: Implement. - return 0; + // This method traverses parent nodes from the terminal by following parent pointers; thus, + // node code points are stored in the buffer in the reverse order. + int reverseCodePoints[maxCodePointCount]; + int mergedNodeCodePoints[maxCodePointCount]; + int codePointCount = 0; + + DynamicPatriciaTrieNodeReader nodeReader(binaryDictionaryInfo); + // First, read terminal node and get its probability. + nodeReader.fetchNodeInfoFromBufferAndGetNodeCodePoints(nodePos, maxCodePointCount, + mergedNodeCodePoints); + // Store terminal node probability. + *outUnigramProbability = nodeReader.getProbability(); + // Store terminal node code points to buffer in the reverse order. + for (int i = nodeReader.getCodePointCount() - 1; i >= 0; --i) { + reverseCodePoints[codePointCount++] = mergedNodeCodePoints[i]; + } + // Then, follow parent pos toward the root node. + while (nodeReader.getParentPos() != getRootPosition()) { + // codePointCount must be incremented at least once in each iteration to ensure preventing + // infinite loop. + if (nodeReader.isDeleted() || codePointCount > maxCodePointCount + || nodeReader.getCodePointCount() <= 0) { + // The nodePos is not a valid terminal node position in the dictionary. + *outUnigramProbability = NOT_A_PROBABILITY; + return 0; + } + // Read parent node. + nodeReader.fetchNodeInfoFromBufferAndGetNodeCodePoints(nodeReader.getParentPos(), + maxCodePointCount, mergedNodeCodePoints); + // Store node code points to buffer in the reverse order. + for (int i = nodeReader.getCodePointCount() - 1; i >= 0; --i) { + reverseCodePoints[codePointCount++] = mergedNodeCodePoints[i]; + } + } + // Reverse the stored code points to output them. + for (int i = 0; i < codePointCount; ++i) { + outCodePoints[i] = reverseCodePoints[codePointCount - i - 1]; + } + return codePointCount; } int DynamicPatriciaTriePolicy::getTerminalNodePositionOfWord( @@ -48,22 +112,34 @@ int DynamicPatriciaTriePolicy::getTerminalNodePositionOfWord( int DynamicPatriciaTriePolicy::getUnigramProbability( const BinaryDictionaryInfo *const binaryDictionaryInfo, const int nodePos) const { - // TODO: Implement. - return NOT_A_PROBABILITY; + DynamicPatriciaTrieNodeReader nodeReader(binaryDictionaryInfo); + nodeReader.fetchNodeInfoFromBuffer(nodePos); + if (nodeReader.isDeleted() || nodeReader.isBlacklisted() || nodeReader.isNotAWord()) { + return NOT_A_PROBABILITY; + } + return nodeReader.getProbability(); } int DynamicPatriciaTriePolicy::getShortcutPositionOfNode( const BinaryDictionaryInfo *const binaryDictionaryInfo, const int nodePos) const { - // TODO: Implement. - return NOT_A_DICT_POS; + DynamicPatriciaTrieNodeReader nodeReader(binaryDictionaryInfo); + nodeReader.fetchNodeInfoFromBuffer(nodePos); + if (nodeReader.isDeleted()) { + return NOT_A_DICT_POS; + } + return nodeReader.getShortcutPos(); } int DynamicPatriciaTriePolicy::getBigramsPositionOfNode( const BinaryDictionaryInfo *const binaryDictionaryInfo, const int nodePos) const { - // TODO: Implement. - return NOT_A_DICT_POS; + DynamicPatriciaTrieNodeReader nodeReader(binaryDictionaryInfo); + nodeReader.fetchNodeInfoFromBuffer(nodePos); + if (nodeReader.isDeleted()) { + return NOT_A_DICT_POS; + } + return nodeReader.getBigramsPos(); } } // namespace latinime diff --git a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java index e165850ac..baebda2ed 100644 --- a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java +++ b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java @@ -126,13 +126,13 @@ public class SubtypeLocaleUtilsTests extends AndroidTestCase { // fr azerty F French // fr_CA qwerty F French (Canada) // de qwertz F German - // zz qwerty F No language (QWERTY) + // zz qwerty F Alphabet (QWERTY) // fr qwertz T French (QWERTZ) // de qwerty T German (QWERTY) // en_US azerty T English (US) (AZERTY) exception // en_UK dvorak T English (UK) (Dvorak) exception // es_US colemak T Spanish (US) (Colemak) exception - // zz pc T No language (PC) + // zz pc T Alphabet (PC) public void testPredefinedSubtypesInEnglishSystemLocale() { final RunInLocale<Void> tests = new RunInLocale<Void>() { @@ -150,7 +150,7 @@ public class SubtypeLocaleUtilsTests extends AndroidTestCase { SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(FR_CA)); assertEquals("de ", "German", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(DE)); - assertEquals("zz ", "No language (QWERTY)", + assertEquals("zz ", "Alphabet (QWERTY)", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ)); return null; } @@ -172,7 +172,7 @@ public class SubtypeLocaleUtilsTests extends AndroidTestCase { SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(EN_UK_DVORAK)); assertEquals("es_US colemak","Spanish (US) (Colemak)", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ES_US_COLEMAK)); - assertEquals("zz azerty", "No language (PC)", + assertEquals("zz pc", "Alphabet (PC)", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ_PC)); return null; } @@ -196,7 +196,7 @@ public class SubtypeLocaleUtilsTests extends AndroidTestCase { // en_US azerty T Anglais (États-Unis) (AZERTY) exception // en_UK dvorak T Anglais (Royaume-Uni) (Dvorak) exception // es_US colemak T Espagnol (États-Unis) (Colemak) exception - // zz pc T Aucune langue (PC) + // zz pc T Alphabet (PC) public void testPredefinedSubtypesInFrenchSystemLocale() { final RunInLocale<Void> tests = new RunInLocale<Void>() { @@ -214,7 +214,7 @@ public class SubtypeLocaleUtilsTests extends AndroidTestCase { SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(FR_CA)); assertEquals("de ", "Allemand", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(DE)); - assertEquals("zz ", "Aucune langue (QWERTY)", + assertEquals("zz ", "Alphabet (QWERTY)", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ)); return null; } @@ -236,7 +236,7 @@ public class SubtypeLocaleUtilsTests extends AndroidTestCase { SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(EN_UK_DVORAK)); assertEquals("es_US colemak","Espagnol (États-Unis) (Colemak)", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ES_US_COLEMAK)); - assertEquals("zz azerty", "Aucune langue (PC)", + assertEquals("zz pc", "Alphabet (PC)", SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ_PC)); return null; } diff --git a/tools/maketext/src/com/android/inputmethod/latin/maketext/MoreKeysResources.java b/tools/maketext/src/com/android/inputmethod/latin/maketext/MoreKeysResources.java index 50a0c9958..fd427020e 100644 --- a/tools/maketext/src/com/android/inputmethod/latin/maketext/MoreKeysResources.java +++ b/tools/maketext/src/com/android/inputmethod/latin/maketext/MoreKeysResources.java @@ -42,7 +42,7 @@ public class MoreKeysResources { private static final String EMPTY_STRING_VAR = "EMPTY"; private static final String NO_LANGUAGE_CODE = "zz"; - private static final String NO_LANGUAGE_DISPLAY_NAME = "No language"; + private static final String NO_LANGUAGE_DISPLAY_NAME = "Alphabet"; private final JarFile mJar; // Language to string resources map. |