diff --git a/common/src/com/android/inputmethod/latin/common/FileUtils.java b/common/src/com/android/inputmethod/latin/common/FileUtils.java index 9778a1fb3..e593c9932 100644 --- a/common/src/com/android/inputmethod/latin/common/FileUtils.java +++ b/common/src/com/android/inputmethod/latin/common/FileUtils.java @@ -23,6 +23,8 @@ import java.io.FilenameFilter; * A simple class to help with removing directories recursively. */ public class FileUtils { + private static final String TAG = "FileUtils"; + public static boolean deleteRecursively(final File path) { if (path.isDirectory()) { final File[] files = path.listFiles(); diff --git a/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java b/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java index d8951df86..512d426aa 100644 --- a/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java +++ b/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java @@ -19,16 +19,11 @@ package com.android.inputmethod.dictionarypack; import android.content.Context; /** - * Helper to get the metadata URI from its base URI and the additional ID, if any. + * Helper to get the metadata URI from its base URI. */ @SuppressWarnings("unused") public class MetadataUriGetter { - private MetadataUriGetter() { - // This helper class is not instantiable. - } - - public static String getUri(final Context context, final String baseUri, - final String additionalId) { + public static String getUri(final Context context, final String baseUri) { return baseUri; } } diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java index c069a0f64..03e58478b 100644 --- a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java +++ b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java @@ -101,4 +101,10 @@ public final class StatsUtils { public static void onSettingsActivity(final String entryPoint) { } + + public static void onInputConnectionLaggy(final int operation, final long duration) { + } + + public static void onDecoderLaggy(final int operation, final long duration) { + } } diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index 1e4302a1e..034cb9822 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -137,6 +137,8 @@ "Sleuteldruk se vibrasie-tydsduur" "Sleuteldruk se klankvolume" "Vertraging van sleutellangdruk" + "Emosiekone vir fisieke sleutelbord" + "Fisieke Alt-sleutel wys die emosiekoon-palet" "Verstek" "Welkom by %s" "met Gebaar-tik" diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml index 2cc89a991..11b474cb1 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -137,6 +137,8 @@ "የቁልፍ ጭነት ንዝረት ርዝመት" "የቁልፍ ጭነት ድምጽ መጠን" "የሰሌዳ ቁልፍ ጠቅታ በመጫን መዘግየት" + "ስሜት ገላጭ ምስሎች ለአካላዊ ቁልፍ ሰሌዳ" + "አካላዊ Alt ቁልፍ የስሜት ገላጭ ቤተ-ስዕልን ያሳያል" "ነባሪ" "እንኳን ወደ %s በደህና መጡ" "በጣት ምልክት መተየብ" diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index f0ccfafc2..1d9bf2272 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -137,6 +137,8 @@ "مدة اهتزاز الضغط على المفاتيح" "مستوى صوت الضغط على المفاتيح" "تأخير الضغط الطويل للمفاتيح" + "الرموز التعبيرية للوحة مفاتيح فعلية" + "‏مفتاح Alt الفعلي يعرض لوحة الرموز التعبيرية" "الافتراضية" "مرحبا بكم في %s" "مع الكتابة بالإشارة" diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml index 0c18504c7..f1fcfe064 100644 --- a/java/res/values-az-rAZ/strings.xml +++ b/java/res/values-az-rAZ/strings.xml @@ -137,6 +137,8 @@ "Vibrasiyalı klikləmə müddəti" "Səsli klikləmə səsi" "Klavişi uzun müddət basmada gecikmə" + "Fiziki klaviatura üçün emoji" + "Fiziki ALt düyməsi emoji palletini göstərir" "Defolt" "%s təbiqinə xoş gəlmisiniz" "Jest Yazısı ilə" diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml index ee612595b..8ea7c18d2 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -24,8 +24,8 @@ "Търсене на имена" "За проверка на правописа се ползват записи от списъка с контакти" "Да вибрира при натискане на клавиш" - "Звук при натискане на клавиш" - "Изскачащ прозорец при натискане на клавиш" + "Звук при натиск. на клавиш" + "Изск. прозорец при натискане на клавиш" "Предпочитания" "Профили и поверителност" "Облик и оформления" @@ -51,7 +51,7 @@ "Клавиш за превкл. на езика" "Показване при няколко активирани езика за въвеждане" "Отхвърляне на подсказката" - "Без задържане" + "Без забавяне" "По подразбиране" "%s милисек" "Станд. за системата" @@ -61,12 +61,12 @@ "Подобряване на %s" "Точка чрез двоен интервал" "Двукр. докосване на клав. за интервал вмъква точка, следвана от интервал" - "Автоматично поставяне на главни букви" + "Авт. поставяне на главни букви" "Правене на първата дума от всяко изречение главна" "Личен речник" "Добавени речници" "Основен речник" - "Показване на предложения за поправка" + "Показване на предложения" "Показване на предложения, докато пишете" "Блокиране на обидни думи" "Без потенциално обидни думи" @@ -76,16 +76,16 @@ "Умерено" "Агресивно" "Много агресивно" - "Предложения за следващата дума" + "Предл. за следваща дума" "Използване на предишната дума при даване на предложения" - "Активиране на въвеждането чрез жест" + "Актив. на въвеждане чрез жест" "Въвеждане на дума чрез плъзгане на пръст през буквите" - "Следа на жестовете: Показване" - "Динамична плаваща визуализация" + "Следа на жестовете" + "Динам. плаваща визуализ." "Преглед на предложената дума при използване на жестове" "Жест за фрази" "При жестове въвеждaйте интервали чрез плъзгане през съотв. клавиш" - "Клавиш за гласово въвеждане" + "Клавиш за глас. въвеждане" "Няма активирани методи на гласово въвеждане. Проверете настройките за език и въвеждане." "Конфигуриране на въвеждането" "Езици" @@ -115,12 +115,12 @@ "%s (традиционна клавиатура)" "%s (компактна)" "Без език (латиница)" - "Латиница (QWERTY)" - "Латиница (QWERTZ)" - "Латиница (AZERTY)" - "Латиница (Дворак)" - "Латиница (Коулмак)" - "Латиница (PC)" + "латиница (QWERTY)" + "латиница (QWERTZ)" + "латиница (AZERTY)" + "латиница (Дворак)" + "латиница (Коулмак)" + "латиница (PC)" "Емотикони" "Тема на клавиатурата" "Персон. стилове за въвежд." @@ -137,7 +137,9 @@ "Продълж. на вибриране при натискане" "Сила на звука при натиск. на клавиш" "Забавяне при продълж. натискане" - "Стандартни" + "Емотикони за физическа клавиатура" + "При натискане на клавиша „Alt“ се показва панелът за емотикони" + "Стандартно" "Добре дошли в/ъв %s" "с въвеждане чрез жест" "Първи стъпки" diff --git a/java/res/values-bn-rBD/strings.xml b/java/res/values-bn-rBD/strings.xml index 57b8086b8..35f6cd813 100644 --- a/java/res/values-bn-rBD/strings.xml +++ b/java/res/values-bn-rBD/strings.xml @@ -137,6 +137,8 @@ "কীপ্রেস কম্পন সময়কাল" "কীপ্রেস সাউন্ড ভলিউম" "কী প্রেসে দীর্ঘ বিলম্ব" + "ফিজিক্যাল কীবোর্ডের জন্য ইমোজি" + "ফিজিক্যাল Alt কী ইমোজি প্যালেট দেখায়" "ডিফল্ট" "%s এ স্বাগতম" "অঙ্গভঙ্গি টাইপিং এর মাধ্যমে" diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml index c9b51a785..a872232c8 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -47,7 +47,7 @@ "Afegeix un compte de Google al dispositiu per activar la funció" "Sincron. no disponible per a disps. amb comptes de Google Apps for Business" "Altres mètodes d\'introducció" - "La tecla de canvi d\'idioma serveix també per a altres mètodes d\'entrada" + "La tecla de canvi d\'idioma serveix també per a altres mètodes" "Tecla de canvi d\'idioma" "Mostra-la quan hi hagi diversos idiomes d\'introducció activats" "Retard en ampliar tecla" @@ -57,10 +57,10 @@ "Predeterm. del sist." "Suggereix noms de contactes" "Utilitza els noms de contactes per fer suggeriments i correccions" - "Suggeriments personalitz." + "Suggeriments personalitzats" "Millora %s" - "Punt amb doble espai" - "Picar dues vegades la barra d\'espai insereix punt i espai blanc" + "Doble espai per punt" + "Fer dos tocs a la barra d\'espai insereix punt seguit d\'un espai" "Majúscules automàtiques" "Posa en majúscula la primera paraula de cada frase" "Diccionari personal" @@ -71,23 +71,23 @@ "Bloqueja paraules ofensives" "No suggereixis paraules potencialment ofensives" "Correcció automàtica" - "Prémer tecla d\'espai o punt. per corregir errors" + "Tecla d\'espai i signes de puntuació corregeixen paraules amb errors" "Desactiva" "Moderada" "Agressiu" "Molt agressiu" - "Suggeriments de paraula següent" - "Utilitza la paraula anterior a l\'hora de fer suggeriments" + "Suggeriments paraula següent" + "Utilitza la paraula anterior per fer suggeriments" "Activa l\'escriptura gestual" "Escriu una paraula fent lliscar el dit per les lletres" "Mostra el recorregut del gest" - "Visualitz. prèvia dinàmica flotant" - "Consulta la paraula suggerida mentre fas el gest" - "Formula el gest" - "Per afegir espais als gestos, apropa el dit a la tecla d\'espai." + "Previsualització dinàmica flotant" + "Mostra la paraula suggerida en fer els gestos" + "Gest de frase" + "Per afegir espais als gestos, apropa el dit a la tecla d\'espai" "Tecla d\'entrada de veu" "No hi ha cap mètode d\'introducció activat. Comprova la configuració d\'Idioma i introducció de text." - "Configura mètodes d\'entrada" + "Configura mètodes d\'introducció" "Idiomes" "Ajuda i suggeriments" "Idiomes" @@ -135,8 +135,10 @@ "Ara no" "Ja existeix aquest estil d\'entrada: %s" "Durada vibració en prémer" - "Volum del so en prémer tecles" + "Volum so en prémer tecla" "Retard en mantenir premut" + "Emoji per al teclat físic" + "Amb la tecla Alt del teclat físic es mostra la paleta d\'emoji" "Predeterminat" "Et donem la benvinguda a %s" "amb Escriptura gestual" diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index fcc1e67d4..8a911e6b1 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -50,7 +50,7 @@ "Klávesa pro přepínání jazyka ovládá i další metody zadávání" "Klávesa přepínání jazyka" "Zobrazit, když je aktivováno více vstupních jazyků" - "Prodleva vysk. okna klávesnice" + "Prodleva detailu znaku" "Bez prodlevy" "Výchozí" "%s ms" @@ -134,9 +134,11 @@ "Povolit" "Teď ne" "Tento styl zadávání již existuje: %s" - "Délka vibrace u stisku klávesy" + "Délka vibrace při stisknutí klávesy" "Hlasitost stisknutí klávesy" "Prodleva dlouhého stisknutí" + "Emodži pro fyzickou klávesnici" + "Paletu emodži zobrazíte stisknutím fyzické klávesy Alt." "Výchozí" "Vítá vás %s" "s psaním gesty" @@ -197,7 +199,7 @@ "Slovo:" "Zkratka:" "Jazyk:" - "Napište slovo." + "Napište slovo" "Volitelná zkratka" "Upravit slovo" "Upravit" diff --git a/java/res/values-da/strings-emoji-descriptions.xml b/java/res/values-da/strings-emoji-descriptions.xml index afe0060af..eb497cf7f 100644 --- a/java/res/values-da/strings-emoji-descriptions.xml +++ b/java/res/values-da/strings-emoji-descriptions.xml @@ -624,8 +624,8 @@ "Højttaler med tre lydbølger" "Batteri" "Elstik" - "Lup mod venstre" - "Lup mod højre" + "Forstørrelsesglas mod venstre" + "Forstørrelsesglas mod højre" "Lås med pen" "Lukket lås med nøgle" "Nøgle" diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index 31e2c1028..4b2eabf0e 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -50,8 +50,8 @@ "Tasten til sprogskift gælder også for andre inputmetoder" "Knap til sprogskift" "Vis, når der er aktiveret flere inputsprog" - "Forsink. afvis. af taste-pop op" - "Ingen forsink." + "Forsinkelse ved afvisning af taste-pop op" + "Ingen forsinkelse" "Standard" "%s ms" "Systemstandard" @@ -137,6 +137,8 @@ "Vibrationstid ved tastetryk" "Lydstyrke ved tastetryk" "Forsinket langt tastetryk" + "Emoji på fysisk tastatur" + "Alt-tasten på det fysiske tastatur viser emojipaletten" "Standard" "Velkommen til %s" "med glidende indtastning" diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml index e87612b1d..844b0690c 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -137,6 +137,8 @@ "Vibrationsdauer bei Tastendruck" "Tonlautstärke bei Tastendruck" "Verzögerung für langes Drücken" + "Emoji für physische Tastatur" + "Emoji-Palette mithilfe der physischen Alt-Taste aufrufen" "Standard" "Willkommen bei %s" "mit Bewegungseingabe" diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml index 457e1006a..fe6f97edc 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -102,8 +102,8 @@ "Ακύρωση" "Έξοδος" "Επιλέξτε λογαριασμό για χρήση" - "Αγγλικά (Η.Β.)" - "Αγγλικά (Η.Π.Α)" + "Αγγλικά (ΗΒ)" + "Αγγλικά (ΗΠΑ)" "Ισπανικά (ΗΠΑ)" "Hinglish" "Σερβικά (Λατινικά)" @@ -137,6 +137,8 @@ "Διάρκεια δόνησης πατήμ. πλήκτ." "Ένταση ήχου πατήματος πλήκτρου" "Καθυστέρηση παρατεταμένου πατήματος πλήκτρου" + "Emoji για φυσικό πληκτρολόγιο" + "Το φυσικό πλήκτρο Alt εμφανίζει την παλέτα emoji" "Προεπιλογή" "Καλώς ορίσατε στο %s" "με Πληκτρολόγηση με κίνηση" diff --git a/java/res/values-en-rAU/strings-action-keys.xml b/java/res/values-en-rAU/strings-action-keys.xml deleted file mode 100644 index e401cae2a..000000000 --- a/java/res/values-en-rAU/strings-action-keys.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - "Go" - "Next" - "Prev" - "Done" - "Send" - "Search" - "Pause" - "Wait" - diff --git a/java/res/values-en-rAU/strings-appname.xml b/java/res/values-en-rAU/strings-appname.xml deleted file mode 100644 index 5ad5eae66..000000000 --- a/java/res/values-en-rAU/strings-appname.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - "Android Keyboard (AOSP)" - "Android Spell Checker (AOSP)" - "Android Keyboard Settings (AOSP)" - "Android Spell Checker Settings (AOSP)" - diff --git a/java/res/values-en-rAU/strings-config-important-notice.xml b/java/res/values-en-rAU/strings-config-important-notice.xml deleted file mode 100644 index 80ddd3e4b..000000000 --- a/java/res/values-en-rAU/strings-config-important-notice.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - "Learn from your communications and typed data to improve suggestions" - diff --git a/java/res/values-en-rAU/strings-emoji-descriptions.xml b/java/res/values-en-rAU/strings-emoji-descriptions.xml deleted file mode 100644 index 2ac73fcbb..000000000 --- a/java/res/values-en-rAU/strings-emoji-descriptions.xml +++ /dev/null @@ -1,851 +0,0 @@ - - - - - - - "Copyright sign" - "Registered sign" - "Double exclamation mark" - "Exclamation question mark" - "Trade mark sign" - "Information source" - "Left right arrow" - "Up down arrow" - "North west arrow" - "North east arrow" - "South east arrow" - "South west arrow" - "Leftwards arrow with hook" - "Rightwards arrow with hook" - "Watch" - "Hourglass" - "Black right-pointing double triangle" - "Black left-pointing double triangle" - "Black up-pointing double triangle" - "Black down-pointing double triangle" - "Alarm clock" - "Hourglass with flowing sand" - "Circled latin capital letter m" - "Black small square" - "White small square" - "Black right-pointing triangle" - "Black left-pointing triangle" - "White medium square" - "Black medium square" - "White medium small square" - "Black medium small square" - "Black sun with rays" - "Cloud" - "Black telephone" - "Ballot box with tick" - "Umbrella with rain drops" - "Hot beverage" - "White up pointing index" - "White smiling face" - "Aries" - "Taurus" - "Gemini" - "Cancer" - "Leo" - "Virgo" - "Libra" - "Scorpio" - "Sagittarius" - "Capricorn" - "Aquarius" - "Pisces" - "Black spade suit" - "Black club suit" - "Black heart suit" - "Black diamond suit" - "Hot springs" - "Black universal recycling symbol" - "Wheelchair symbol" - "Anchor" - "Warning sign" - "High voltage sign" - "Medium white circle" - "Medium black circle" - "Football" - "Baseball" - "Snowman without snow" - "Sun behind cloud" - "Ophiuchus" - "No entry" - "Church" - "Fountain" - "Flag in hole" - "Sailing boat" - "Tent" - "Fuel pump" - "Black scissors" - "White heavy tick" - "Aeroplane" - "Envelope" - "Raised fist" - "Raised hand" - "Victory hand" - "Pencil" - "Black nib" - "Heavy tick" - "Heavy multiplication x" - "Sparkles" - "Eight spoked asterisk" - "Eight pointed black star" - "Snowflake" - "Sparkle" - "Cross mark" - "Negative squared cross mark" - "Black question mark ornament" - "White question mark ornament" - "White exclamation mark ornament" - "Heavy exclamation mark symbol" - "Heavy black heart" - "Heavy plus sign" - "Heavy minus sign" - "Heavy division sign" - "Black rightwards arrow" - "Curly loop" - "Double curly loop" - "Arrow pointing rightwards then curving upwards" - "Arrow pointing rightwards then curving downwards" - "Leftwards black arrow" - "Upwards black arrow" - "Downwards black arrow" - "Black large square" - "White large square" - "White medium star" - "Heavy large circle" - "Wavy dash" - "Part alternation mark" - "Circled ideograph congratulation" - "Circled ideograph secret" - "Mahjong tile red dragon" - "Playing card black joker" - "Blood type A" - "Blood type B" - "Blood type O" - "Car park" - "Blood type AB" - "Squared CL" - "Squared cool" - "Squared free" - "Squared ID" - "Squared new" - "Squared N G" - "Squared OK" - "Squared SOS" - "Squared up with exclamation mark" - "Squared vs" - "Squared katakana here" - "Squared katakana service" - "Squared ideograph charge-free" - "Squared ideograph reserved-seat" - "Squared ideograph prohibitation" - "Squared ideograph vacancy" - "Squared ideograph acceptance" - "Squared ideograph full occupancy" - "Squared ideograph paid" - "Squared ideograph monthly" - "Squared ideograph application" - "Squared ideograph discount" - "Squared ideograph in business" - "Circled ideograph advantage" - "Circled ideograph accept" - "Cyclone" - "Foggy" - "Closed umbrella" - "Night with stars" - "Sunrise over mountains" - "Sunrise" - "Cityscape at dusk" - "Sunset over buildings" - "Rainbow" - "Bridge at night" - "Water wave" - "Volcano" - "Milky way" - "Earth globe Europe-Africa" - "Earth globe Americas" - "Earth globe Asia-Australia" - "Globe with meridians" - "New moon symbol" - "Waxing crescent moon symbol" - "First quarter moon symbol" - "Waxing gibbous moon symbol" - "Full moon symbol" - "Waning gibbous moon symbol" - "Last quarter moon symbol" - "Waning crescent moon symbol" - "Crescent moon" - "New moon with face" - "First quarter moon with face" - "Last quarter moon with face" - "Full moon with face" - "Sun with face" - "Glowing star" - "Shooting star" - "Chestnut" - "Seedling" - "Evergreen tree" - "Deciduous tree" - "Palm tree" - "Cactus" - "Tulip" - "Cherry blossom" - "Rose" - "Hibiscus" - "Sunflower" - "Blossom" - "Ear of maize" - "Ear of rice" - "Herb" - "Four leaf clover" - "Maple leaf" - "Fallen leaf" - "Leaf fluttering in wind" - "Mushroom" - "Tomato" - "Aubergine" - "Grapes" - "Melon" - "Watermelon" - "Tangerine" - "Lemon" - "Banana" - "Pineapple" - "Red apple" - "Green apple" - "Pear" - "Peach" - "Cherries" - "Strawberry" - "Hamburger" - "Slice of pizza" - "Meat on bone" - "Poultry leg" - "Rice cracker" - "Rice ball" - "Cooked rice" - "Curry and rice" - "Steaming bowl" - "Spaghetti" - "Bread" - "French fries" - "Roasted sweet potato" - "Dango" - "Oden" - "Sushi" - "Fried shrimp" - "Fish cake with swirl design" - "Soft ice cream" - "Shaved ice" - "Ice cream" - "Doughnut" - "Cookie" - "Chocolate bar" - "Candy" - "Lollipop" - "Custard" - "Honey pot" - "Shortcake" - "Bento box" - "Pot of food" - "Cooking" - "Fork and knife" - "Teacup without handle" - "Sake bottle and cup" - "Wine glass" - "Cocktail glass" - "Tropical drink" - "Beer mug" - "Clinking beer mugs" - "Baby bottle" - "Ribbon" - "Wrapped present" - "Birthday cake" - "Jack-o-lantern" - "Christmas tree" - "Father christmas" - "Fireworks" - "Firework sparkler" - "Balloon" - "Party popper" - "Confetti ball" - "Tanabata tree" - "Crossed flags" - "Pine decoration" - "Japanese dolls" - "Carp streamer" - "Wind chime" - "Moon viewing ceremony" - "School satchel" - "Graduation cap" - "Carousel horse" - "Ferris wheel" - "Roller coaster" - "Fishing pole and fish" - "Microphone" - "Movie camera" - "Cinema" - "Headphone" - "Artist palette" - "Top hat" - "Circus tent" - "Ticket" - "Clapper board" - "Performing arts" - "Video game" - "Direct hit" - "Slot machine" - "Billiards" - "Game die" - "Bowling" - "Flower playing cards" - "Musical note" - "Multiple musical notes" - "Saxophone" - "Guitar" - "Musical keyboard" - "Trumpet" - "Violin" - "Musical score" - "Running shirt with sash" - "Tennis racquet and ball" - "Ski and ski boot" - "Basketball and hoop" - "Chequered flag" - "Snowboarder" - "Runner" - "Surfer" - "Trophy" - "Horse racing" - "American football" - "Rugby football" - "Swimmer" - "House building" - "House with garden" - "Office building" - "Japanese post office" - "European post office" - "Hospital" - "Bank" - "Automated teller machine" - "Hotel" - "Love hotel" - "Convenience store" - "School" - "Department store" - "Factory" - "Izakaya lantern" - "Japanese castle" - "European castle" - "Rat" - "Mouse" - "Ox" - "Water buffalo" - "Cow" - "Leopard" - "Rabbit" - "Cat" - "Dragon" - "Crocodile" - "Whale" - "Snail" - "Snake" - "Horse" - "Ram" - "Goat" - "Sheep" - "Monkey" - "Rooster" - "Chicken" - "Dog" - "Pig" - "Boar" - "Elephant" - "Octopus" - "Spiral shell" - "Bug" - "Ant" - "Honeybee" - "Lady beetle" - "Fish" - "Tropical fish" - "Blowfish" - "Turtle" - "Hatching chick" - "Baby chick" - "Front-facing baby chick" - "Bird" - "Penguin" - "Koala" - "Poodle" - "Dromedary camel" - "Bactrian camel" - "Dolphin" - "Mouse face" - "Cow face" - "Tiger face" - "Rabbit face" - "Cat face" - "Dragon face" - "Spouting whale" - "Horse face" - "Monkey face" - "Dog face" - "Pig face" - "Frog face" - "Hamster face" - "Wolf face" - "Bear face" - "Panda face" - "Pig nose" - "Paw prints" - "Eyes" - "Ear" - "Nose" - "Mouth" - "Tongue" - "White up pointing backhand index" - "White down pointing backhand index" - "White left pointing backhand index" - "White right pointing backhand index" - "Fisted hand sign" - "Waving hand sign" - "OK hand sign" - "Thumbs up sign" - "Thumbs down sign" - "Clapping hands sign" - "Open hands sign" - "Crown" - "Womans hat" - "Eyeglasses" - "Necktie" - "T-shirt" - "Jeans" - "Dress" - "Kimono" - "Bikini" - "Womans clothes" - "Purse" - "Handbag" - "Pouch" - "Mans shoe" - "Athletic shoe" - "High-heeled shoe" - "Womans sandal" - "Womans boots" - "Footprints" - "Bust in silhouette" - "Busts in silhouette" - "Boy" - "Girl" - "Man" - "Woman" - "Family" - "Man and woman holding hands" - "Two men holding hands" - "Two women holding hands" - "Police officer" - "Woman with bunny ears" - "Bride with veil" - "Person with blond hair" - "Man with gua pi mao" - "Man with turban" - "Older man" - "Older woman" - "Baby" - "Construction worker" - "Princess" - "Japanese ogre" - "Japanese goblin" - "Ghost" - "Baby angel" - "Extraterrestrial alien" - "Alien monster" - "Imp" - "Skull" - "Information desk person" - "Guardsman" - "Dancer" - "Lipstick" - "Nail polish" - "Face massage" - "Haircut" - "Barber pole" - "Syringe" - "Pill" - "Kiss mark" - "Love letter" - "Ring" - "Gem stone" - "Kiss" - "Bouquet" - "Couple with heart" - "Wedding" - "Beating heart" - "Broken heart" - "Two hearts" - "Sparkling heart" - "Growing heart" - "Heart with arrow" - "Blue heart" - "Green heart" - "Yellow heart" - "Purple heart" - "Heart with ribbon" - "Revolving hearts" - "Heart decoration" - "Diamond shape with a dot inside" - "Electric light bulb" - "Anger symbol" - "Bomb" - "Sleeping symbol" - "Collision symbol" - "Splashing sweat symbol" - "Droplet" - "Dash symbol" - "Pile of poo" - "Flexed biceps" - "Dizzy symbol" - "Speech balloon" - "Thought balloon" - "White flower" - "Hundred points symbol" - "Money bag" - "Currency exchange" - "Heavy pound sign" - "Credit card" - "Banknote with yen sign" - "Banknote with pound sign" - "Banknote with euro sign" - "Banknote with pound sign" - "Money with wings" - "Chart with upwards trend and yen sign" - "Seat" - "Personal computer" - "Briefcase" - "Minidisc" - "Floppy disk" - "Optical disc" - "DVD" - "File folder" - "Open file folder" - "Page with curl" - "Page facing up" - "Calendar" - "Tear-off calendar" - "Card index" - "Chart with upwards trend" - "Chart with downwards trend" - "Bar chart" - "Clipboard" - "Pushpin" - "Round pushpin" - "Paperclip" - "Straight ruler" - "Triangular ruler" - "Bookmark tabs" - "Ledger" - "Notebook" - "Notebook with decorative cover" - "Closed book" - "Open book" - "Green book" - "Blue book" - "Orange book" - "Books" - "Name badge" - "Scroll" - "Memo" - "Telephone receiver" - "Pager" - "Fax machine" - "Satellite antenna" - "Public address loudspeaker" - "Cheering megaphone" - "Outbox tray" - "Inbox tray" - "Package" - "E-mail symbol" - "Incoming envelope" - "Envelope with downwards arrow above" - "Closed mailbox with lowered flag" - "Closed mailbox with raised flag" - "Open mailbox with raised flag" - "Open mailbox with lowered flag" - "Postbox" - "Postal horn" - "Newspaper" - "Mobile phone" - "Mobile phone with rightwards arrow at left" - "Vibration mode" - "Mobile phone off" - "No mobile phones" - "Antenna with bars" - "Camera" - "Video camera" - "Television" - "Radio" - "Videocassette" - "Twisted rightwards arrows" - "Clockwise rightwards and leftwards open circle arrows" - "Clockwise rightwards and leftwards open circle arrows with circled one overlay" - "Clockwise downwards and upwards open circle arrows" - "Anticlockwise downwards and upwards open circle arrows" - "Low brightness symbol" - "High brightness symbol" - "Speaker with cancellation stroke" - "Speaker" - "Speaker with one sound wave" - "Speaker with three sound waves" - "Battery" - "Electric plug" - "Left-pointing magnifying glass" - "Right-pointing magnifying glass" - "Lock with ink pen" - "Closed lock with key" - "Key" - "Lock" - "Open lock" - "Bell" - "Bell with cancellation stroke" - "Bookmark" - "Link symbol" - "Radio button" - "Back with leftwards arrow above" - "End with leftwards arrow above" - "On with exclamation mark with left right arrow above" - "Soon with rightwards arrow above" - "Top with upwards arrow above" - "No one under eighteen symbol" - "Keycap ten" - "Input symbol for latin capital letters" - "Input symbol for latin small letters" - "Input symbol for numbers" - "Input symbol for symbols" - "Input symbol for latin letters" - "Fire" - "Electric torch" - "Wrench" - "Hammer" - "Nut and bolt" - "Hocho" - "Pistol" - "Microscope" - "Telescope" - "Crystal ball" - "Six pointed star with middle dot" - "Japanese symbol for beginner" - "Trident emblem" - "Black square button" - "White square button" - "Large red circle" - "Large blue circle" - "Large orange diamond" - "Large blue diamond" - "Small orange diamond" - "Small blue diamond" - "Up-pointing red triangle" - "Down-pointing red triangle" - "Up-pointing small red triangle" - "Down-pointing small red triangle" - "Clock face one o\'clock" - "Clock face two o\'clock" - "Clock face three o\'clock" - "Clock face four o\'clock" - "Clock face five o\'clock" - "Clock face six o\'clock" - "Clock face seven o\'clock" - "Clock face eight o\'clock" - "Clock face nine o\'clock" - "Clock face ten o\'clock" - "Clock face eleven o\'clock" - "Clock face twelve o\'clock" - "Clock face one-thirty" - "Clock face two-thirty" - "Clock face three-thirty" - "Clock face four-thirty" - "Clock face five-thirty" - "Clock face six-thirty" - "Clock face seven-thirty" - "Clock face eight-thirty" - "Clock face nine-thirty" - "Clock face ten-thirty" - "Clock face eleven-thirty" - "Clock face twelve-thirty" - "Mount Fuji" - "Tokyo tower" - "Statue of Liberty" - "Silhouette of Japan" - "Moyai" - "Grinning face" - "Grinning face with smiling eyes" - "Face with tears of joy" - "Smiling face with open mouth" - "Smiling face with open mouth and smiling eyes" - "Smiling face with open mouth and cold sweat" - "Smiling face with open mouth and tightly-closed eyes" - "Smiling face with halo" - "Smiling face with horns" - "Winking face" - "Smiling face with smiling eyes" - "Face savouring delicious food" - "Relieved face" - "Smiling face with heart-shaped eyes" - "Smiling face with sunglasses" - "Smirking face" - "Neutral face" - "Expressionless face" - "Unamused face" - "Face with cold sweat" - "Pensive face" - "Confused face" - "Confounded face" - "Kissing face" - "Face throwing a kiss" - "Kissing face with smiling eyes" - "Kissing face with closed eyes" - "Face with stuck-out tongue" - "Face with stuck-out tongue and winking eye" - "Face with stuck-out tongue and tightly-closed eyes" - "Disappointed face" - "Worried face" - "Angry face" - "Pouting face" - "Crying face" - "Persevering face" - "Face with look of triumph" - "Disappointed but relieved face" - "Frowning face with open mouth" - "Anguished face" - "Fearful face" - "Weary face" - "Sleepy face" - "Tired face" - "Grimacing face" - "Loudly crying face" - "Face with open mouth" - "Hushed face" - "Face with open mouth and cold sweat" - "Face screaming in fear" - "Astonished face" - "Flushed face" - "Sleeping face" - "Dizzy face" - "Face without mouth" - "Face with medical mask" - "Grinning cat face with smiling eyes" - "Cat face with tears of joy" - "Smiling cat face with open mouth" - "Smiling cat face with heart-shaped eyes" - "Cat face with wry smile" - "Kissing cat face with closed eyes" - "Pouting cat face" - "Crying cat face" - "Weary cat face" - "Face with no good gesture" - "Face with OK gesture" - "Person bowing deeply" - "See-no-evil monkey" - "Hear-no-evil monkey" - "Speak-no-evil monkey" - "Happy person raising one hand" - "Person raising both hands in celebration" - "Person frowning" - "Person with pouting face" - "Person with folded hands" - "Rocket" - "Helicopter" - "Steam locomotive" - "Railway car" - "High-speed train" - "High-speed train with bullet nose" - "Train" - "Metro" - "Light rail" - "Station" - "Tram" - "Tram car" - "Bus" - "Oncoming bus" - "Tram" - "Bus stop" - "Minibus" - "Ambulance" - "Fire engine" - "Police car" - "Oncoming police car" - "Taxi" - "Oncoming taxi" - "Automobile" - "Oncoming automobile" - "Recreational vehicle" - "Delivery truck" - "Articulated lorry" - "Tractor" - "Monorail" - "Mountain railway" - "Suspension railway" - "Mountain cableway" - "Aerial tramway" - "Ship" - "Rowing boat" - "Speedboat" - "Horizontal traffic light" - "Vertical traffic light" - "Construction sign" - "Police cars revolving light" - "Triangular flag on post" - "Door" - "No entry sign" - "Smoking symbol" - "No smoking symbol" - "Put litter in its place symbol" - "Do not litter symbol" - "Drinking water symbol" - "Non-drinking water symbol" - "Bicycle" - "No bicycles" - "Cyclist" - "Mountain cyclist" - "Pedestrian" - "No pedestrians" - "Children crossing" - "Mens symbol" - "Womens symbol" - "Restroom" - "Baby symbol" - "Toilet" - "Water closet" - "Shower" - "Bath" - "Bathtub" - "Passport control" - "Customs" - "Baggage claim" - "Left luggage" - diff --git a/java/res/values-en-rAU/strings-letter-descriptions.xml b/java/res/values-en-rAU/strings-letter-descriptions.xml deleted file mode 100644 index 514bc6cbd..000000000 --- a/java/res/values-en-rAU/strings-letter-descriptions.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - "Feminine ordinal indicator" - "Micro sign" - "Masculine ordinal indicator" - "Sharp S" - "A, grave" - "A, acute" - "A, circumflex" - "A, tilde" - "A, diaeresis" - "A, ring above" - "A, E, ligature" - "C, cedilla" - "E, grave" - "E, acute" - "E, circumflex" - "E, diaeresis" - "I, grave" - "I, acute" - "I, circumflex" - "I, diaeresis" - "Eth" - "N, tilde" - "O, grave" - "O, acute" - "O, circumflex" - "O, tilde" - "O, diaeresis" - "O, stroke" - "U, grave" - "U, acute" - "U, circumflex" - "U, diaeresis" - "Y, acute" - "Thorn" - "Y, diaeresis" - "A, macron" - "A, breve" - "A, ogonek" - "C, acute" - "C, circumflex" - "C, dot above" - "C, caron" - "D, caron" - "D, stroke" - "E, macron" - "E, breve" - "E, dot above" - "E, ogonek" - "E, caron" - "G, circumflex" - "G, breve" - "G, dot above" - "G, cedilla" - "H, circumflex" - "H, stroke" - "I, tilde" - "I, macron" - "I, breve" - "I, ogonek" - "Dotless I" - "I, J, ligature" - "J, circumflex" - "K, cedilla" - "Kra" - "L, acute" - "L, cedilla" - "L, caron" - "L, middle dot" - "L, stroke" - "N, acute" - "N, cedilla" - "N, caron" - "N, preceded by apostrophe" - "Eng" - "O, macron" - "O, breve" - "O, double acute" - "O, E, ligature" - "R, acute" - "R, cedilla" - "R, caron" - "S, acute" - "S, circumflex" - "S, cedilla" - "S, caron" - "T, cedilla" - "T, caron" - "T, stroke" - "U, tilde" - "U, macron" - "U, breve" - "U, ring above" - "U, double acute" - "U, ogonek" - "W, circumflex" - "Y, circumflex" - "Z, acute" - "Z, dot above" - "Z, caron" - "Long S" - "O, horn" - "U, horn" - "S, comma below" - "T, comma below" - "Schwa" - "A, dot below" - "A, hook above" - "A, circumflex and acute" - "A, circumflex and grave" - "A, circumflex and hook above" - "A, circumflex and tilde" - "A, circumflex and dot below" - "A, breve and acute" - "A, breve and grave" - "A, breve and hook above" - "A, breve and tilde" - "A, breve and dot below" - "E, dot below" - "E, hook above" - "E, tilde" - "E, circumflex and acute" - "E, circumflex and grave" - "E, circumflex and hook above" - "E, circumflex and tilde" - "E, circumflex and dot below" - "I, hook above" - "I, dot below" - "O, dot below" - "O, hook above" - "O, circumflex and acute" - "O, circumflex and grave" - "O, circumflex and hook above" - "O, circumflex and tilde" - "O, circumflex and dot below" - "O, horn and acute" - "O, horn and grave" - "O, horn and hook above" - "O, horn and tilde" - "O, horn and dot below" - "U, dot below" - "U, hook above" - "U, horn and acute" - "U, horn and grave" - "U, horn and hook above" - "U, horn and tilde" - "U, horn and dot below" - "Y, grave" - "Y, dot below" - "Y, hook above" - "Y, tilde" - "Inverted exclamation mark" - "Left-pointing double angle quotation mark" - "Middle dot" - "Superscript one" - "Right-pointing double angle quotation mark" - "Inverted question mark" - "Left single quotation mark" - "Right single quotation mark" - "Single low-9 quotation mark" - "Left double quotation mark" - "Right double quotation mark" - "Dagger" - "Double dagger" - "Per mille sign" - "Prime" - "Double prime" - "Single left-pointing angle quotation mark" - "Single right-pointing angle quotation mark" - "Superscript four" - "Superscript latin small letter n" - "Peso sign" - "Care of" - "Rightwards arrow" - "Downwards arrow" - "Empty set" - "Increment" - "Less than or equal to" - "Greater than or equal to" - "Black star" - diff --git a/java/res/values-en-rAU/strings.xml b/java/res/values-en-rAU/strings.xml index ae78c6cfd..e08ef0023 100644 --- a/java/res/values-en-rAU/strings.xml +++ b/java/res/values-en-rAU/strings.xml @@ -137,6 +137,8 @@ "Keypress vibration duration" "Keypress sound volume" "Key long press delay" + "Emoji for physical keyboard" + "Physical Alt key shows the emoji palette" "Default" "Welcome to %s" "with Gesture Typing" diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index ae78c6cfd..e08ef0023 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -137,6 +137,8 @@ "Keypress vibration duration" "Keypress sound volume" "Key long press delay" + "Emoji for physical keyboard" + "Physical Alt key shows the emoji palette" "Default" "Welcome to %s" "with Gesture Typing" diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml index ae78c6cfd..e08ef0023 100644 --- a/java/res/values-en-rIN/strings.xml +++ b/java/res/values-en-rIN/strings.xml @@ -137,6 +137,8 @@ "Keypress vibration duration" "Keypress sound volume" "Key long press delay" + "Emoji for physical keyboard" + "Physical Alt key shows the emoji palette" "Default" "Welcome to %s" "with Gesture Typing" diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index 4beed2348..04f0d848b 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -21,7 +21,7 @@ "Opciones de entrada" - "Buscar nombres contactos" + "Nombres de contactos" "El corrector ortográfico usa entradas de tu lista de contactos." "Vibrar al pulsar teclas" "Sonar al pulsar las teclas" @@ -54,7 +54,7 @@ "Sin demora" "Predeterminada" "%s ms" - "Valor predet. sist." + "Predeterminado/a" "Sugerir nombres de contacto" "Usar nombres de los contactos para sugerencias y correcciones" "Sugerenc. personalizadas" @@ -134,9 +134,11 @@ "Activar" "Ahora no" "Ya existe el estilo de entrada %s." - "Durac. vibrac. al presionar" - "Vol. sonido al presionar tecla" - "Demora de presión prolongada" + "Duración de la vibración" + "Volumen al presionar teclas" + "Demora al mantener presionado" + "Emoji para teclado físico" + "La tecla Alt física muestra la paleta de emojis" "Predeterminado" "Te damos la bienvenida a %s" "con escritura gestual" @@ -197,13 +199,13 @@ "Palabra:" "Acceso directo:" "Idioma:" - "Escribe una palabra." + "Escribe una palabra" "Acceso directo opcional" "Editar palabra" "Editar" "Eliminar" "El diccionario del usuario no contiene ninguna palabra. Para agregar una palabra, toca el botón Agregar (+)." - "Para todos los idiomas" + "Todos los idiomas" "Más idiomas" "Eliminar" " ABCDEFGHIJKLMNOPQRSTUVWXYZ" diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index 8a267ddf0..e1e416ce2 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -62,12 +62,12 @@ "Punto y espacio" "Si tocas dos veces el espacio, se inserta un punto seguido de un espacio" "Mayúsculas automáticas" - "Escribir la primera letra de cada palabra en mayúscula" + "Escribir la primera letra de cada frase en mayúscula" "Diccionario personal" "Diccionarios complementarios" "Diccionario principal" "Sugerencias de correcciones" - "Muestra las palabras sugeridas mientras se escribe." + "Mostrar las palabras sugeridas mientras se escribe" "Bloquear palabras ofensivas" "No sugerir palabras potencialmente ofensivas" "Autocorrección" @@ -134,9 +134,11 @@ "Habilitar" "Ahora no" "Ya existe el estilo de entrada %s." - "Duración de vibración al pulsar" - "Volumen sonido al pulsar tecla" - "Retraso de pulsación prolongada" + "Duración de la vibración al pulsar" + "Volumen de sonido al pulsar tecla" + "Retraso al mantener pulsado" + "Emojis para teclado físico" + "La tecla Alt física muestra la lista de emojis" "Predeterminado" "Te damos la bienvenida a %s" "con escritura gestual" @@ -203,7 +205,7 @@ "Editar" "Eliminar" "No tienes ninguna palabra en el diccionario del usuario. Toca el botón Añadir (+) para añadir una palabra." - "Para todos los idiomas" + "Todos los idiomas" "Más idiomas…" "Eliminar" " ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml index 5a425c355..e415c97ca 100644 --- a/java/res/values-et-rEE/strings.xml +++ b/java/res/values-et-rEE/strings.xml @@ -137,6 +137,8 @@ "Klahvivajutuse vibreerimise kestus" "Klahvivajutuse helitugevus" "Pika klahvivajutuse viide" + "Füüsilise klaviatuuri emotikon" + "Füüsiline klahv Alt kuvab emotikonide paleti" "Vaikeväärtus" "Tere tulemast rakendusse %s" "joonistusega sisestamisega" diff --git a/java/res/values-eu-rES/strings.xml b/java/res/values-eu-rES/strings.xml index cd759f1ce..e9e9ddecd 100644 --- a/java/res/values-eu-rES/strings.xml +++ b/java/res/values-eu-rES/strings.xml @@ -137,6 +137,8 @@ "Tekla sakatzearen dardararen iraupena" "Tekla sakatzearen bolumena" "Tekla luze sakatzearen atzerapena" + "Teklatu fisikorako emotikonoak" + "Teklatu fisikoko Alt tekla sakatuta emotikonoak agertzen dira" "Lehenetsia" "Ongi etorri %s aplikaziora" "Keinu bidezko idazketarekin" diff --git a/java/res/values-fa/strings-emoji-descriptions.xml b/java/res/values-fa/strings-emoji-descriptions.xml index e10689dad..8adb530be 100644 --- a/java/res/values-fa/strings-emoji-descriptions.xml +++ b/java/res/values-fa/strings-emoji-descriptions.xml @@ -319,7 +319,7 @@ "هنرهای نمایشی" "بازی ویدیویی" "ضربه مستقیم" - "ماشین پولی" + "دستگاه قمار ماشینی" "بیلیارد" "تاس بازی" "بولینگ" diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index edf2b6915..51ada6981 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -21,7 +21,7 @@ "گزینه‌های ورودی" - "جستجوی نام مخاطبین" + "پیدا کردن نام مخاطبین" "غلط‌گیر املا از ورودی‌های لیست مخاطبین شما استفاده می‌کند" "لرزش با فشار کلید" "صدا با فشار کلید" @@ -60,7 +60,7 @@ "پیشنهادات شخصی شده" "بهبود %s" "نقطه با دو فاصله" - "با دوبار ضربه روی دکمه فاصله نقطه با یک فاصله بعد آن درج می‌شود" + "با دو بار ضربه روی دکمه فاصله، نقطه بعلاوه فاصله‌ای بعد آن درج می‌شود" "بزرگ‌کردن خودکار حروف" "بزرگ‌نویسی کلمه اول هر جمله" "فرهنگ لغت شخصی" @@ -137,6 +137,8 @@ "طول مدت لرزش در اثر فشردن کلید" "میزان صدای فشردن کلید" "تأخیر فشار طولانی کلید" + "صورتک برای صفحه‌کلید فیزیکی" + "‏کلید Alt صفحه کلید فیزیکی، پالت صورتک را نشان می‌دهد" "پیش‌فرض" "به %s خوش آمدید" "با ورودی اشاره‌ای" @@ -202,7 +204,7 @@ "ویرایش کلمه" "ویرایش" "حذف" - "کلمه‌ای در فرهنگ لغت کاربر شما موجود نیست. می‌توانید با لمس کردن دکمه افزودن (+) یک کلمه را اضافه کنید." + "کلمه‌ای در فرهنگ لغت کاربر شما موجود نیست. می‌توانید با لمس کردن دکمه به‌علاوه (+) کلمه اضافه کنید." "برای همه زبان‌ها" "زبان‌های بیشتر…" "حذف" diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml index da3439ada..f58633254 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -84,7 +84,7 @@ "Dynaaminen kelluva esikatselu" "Näytä ehdotettu sana piirron aikana" "Ilmausele" - "Lisää välilyöntejä eleiden aikana liukumalla välilyöntinäppäim." + "Lisää välilyöntejä eleiden aikana liukumalla välilyöntinäppäimelle" "Äänisyötenäppäin" "Äänen syöttötapoja ei ole otettu käyttöön. Tarkista Kieli ja syöttötapa -asetukset." "Määritä syöttötavat" @@ -115,7 +115,7 @@ "%s (perinteinen)" "%s (tiivis)" "Ei kieltä (aakkoset)" - "Aakkoset (QWERTY)" + "aakkoset (QWERTY)" "Aakkoset (QWERTZ)" "Aakkoset (AZERTY)" "Aakkoset (Dvorak)" @@ -135,8 +135,10 @@ "Ei nyt" "Syöttötyyli on jo olemassa: %s" "Painalluksen värinän kesto" - "Näppäinpainalluksen äänenvoim." + "Näppäinpainalluksen äänenvoimakkuus" "Pitkän painalluksen viive" + "Hymiö fyysisellä näppäimistöllä" + "Fyysinen Alt-näppäin näyttää hymiövalikoiman." "Oletusarvot" "Tervetuloa käyttämään sovellusta %s" "ja piirtokirjoitus" diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml index 7cacc213c..09284fefe 100644 --- a/java/res/values-fr-rCA/strings.xml +++ b/java/res/values-fr-rCA/strings.xml @@ -137,6 +137,8 @@ "Durée vibration press. touche" "Volume pression de touche" "Délai appui prolongé sur touche" + "Emoji pour clavier physique" + "La touche Alt affiche la palette d\'emoji" "Par défaut" "Bienvenue dans %s" "avec la saisie gestuelle" diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index e737767f5..0d51ec892 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -137,6 +137,8 @@ "Durée vibration press. touche" "Volume son pression de touche" "Délai appui prolongé sur touche" + "Emoji pour clavier physique" + "La touche Alt physique permet d\'afficher la palette d\'emoji." "Par défaut" "Bienvenue dans %s" "avec la saisie gestuelle" diff --git a/java/res/values-gl-rES/strings.xml b/java/res/values-gl-rES/strings.xml index 5ff35a39a..660b7d1eb 100644 --- a/java/res/values-gl-rES/strings.xml +++ b/java/res/values-gl-rES/strings.xml @@ -137,6 +137,8 @@ "Duración vibración ao premer teclas" "Volume do son ao premer teclas" "Retraso de pulsación prolongada" + "Emoji para teclado físico" + "A tecla Alt física mostra a paleta de emoji" "Predeterminado" "Benvido a %s" "con escritura xestual" diff --git a/java/res/values-gu-rIN/strings-action-keys.xml b/java/res/values-gu-rIN/strings-action-keys.xml deleted file mode 100644 index f67e6513e..000000000 --- a/java/res/values-gu-rIN/strings-action-keys.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - "જાઓ" - "આગલું" - "પહેલાંનું" - "થઈ ગયું" - "મોકલો" - "શોધ" - "થોભો" - "રાહ જુઓ" - diff --git a/java/res/values-gu-rIN/strings-appname.xml b/java/res/values-gu-rIN/strings-appname.xml deleted file mode 100644 index 74a372bf6..000000000 --- a/java/res/values-gu-rIN/strings-appname.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - "Android કીબોર્ડ (AOSP)" - "Android જોડણી ચકાસનાર (AOSP)" - "Android કીબોર્ડ સેટિંગ્સ (AOSP)" - "Android જોડણી ચકાસનાર સેટિંગ્સ (AOSP)" - diff --git a/java/res/values-gu-rIN/strings-config-important-notice.xml b/java/res/values-gu-rIN/strings-config-important-notice.xml deleted file mode 100644 index ff0802923..000000000 --- a/java/res/values-gu-rIN/strings-config-important-notice.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - "સૂચનોને બહેતર બનાવવા માટે તમારા સંચારો અને લખેલ ડેટાથી જાણો" - diff --git a/java/res/values-gu-rIN/strings-emoji-descriptions.xml b/java/res/values-gu-rIN/strings-emoji-descriptions.xml deleted file mode 100644 index 89e347c6f..000000000 --- a/java/res/values-gu-rIN/strings-emoji-descriptions.xml +++ /dev/null @@ -1,851 +0,0 @@ - - - - - - - "કોપિરાઇટનું ચિહ્ન" - "નોંધાયેલ ચિહ્ન" - "બેવડું ઉદ્ગારવાચક ચિહ્ન" - "ઉદ્ગારવાચક પ્રશ્ન ચિહ્ન" - "ટ્રેડ માર્ક સાઇન" - "માહિતી સ્ત્રોત" - "ડાબો-જમણો એરો" - "ઉપર-નીચે એરો" - "ઉત્તર પશ્ચિમ એરો" - "ઉત્તર પૂર્વ એરો" - "દક્ષિણ પૂર્વ એરો" - "દક્ષિણ પશ્ચિમ એરો" - "હૂક સાથે ડાબી તરફનો એરો" - "હૂક સાથે જમણી તરફનો એરો" - "ઘડિયાળ" - "રેતીની ઘડિયાળ" - "કાળો જમણી તરફનો બેવડો ત્રિકોણ" - "કાળો ડાબી તરફનો બેવડો ત્રિકોણ" - "કાળો ઉપરની તરફનો બેવડો ત્રિકોણ" - "કાળો નીચેની તરફનો બેવડો ત્રિકોણ" - "અલાર્મ ઘડિયાળ" - "વહેતી રેતી સાથે રેતીની ઘડિયાળ" - "ગોળાકાર લેટિન કેપિટલ અક્ષર m" - "કાળું નાનું ચોરસ" - "સફેદ નાનું ચોરસ" - "કાળો જમણી તરફનો ત્રિકોણ" - "કાળો ડાબી તરફનો ત્રિકોણ" - "સફેદ મધ્યમ ચોરસ" - "કાળું મધ્યમ ચોરસ" - "સફેદ મધ્યમ નાનું ચોરસ" - "કાળું મધ્યમ નાનું ચોરસ" - "કિરણો સાથેનો કાળો સૂર્ય" - "વાદળ" - "કાળો ટેલિફોન" - "ચેક સાથેની મતપેટી" - "વરસાદના ટીપાં સાથે છત્રી" - "ગરમ પીણું" - "સફેદ ઉપરની તરફનો ઇન્ડેક્સ" - "સફેદ હસતો ચહેરો" - "મેષ" - "વૃષભ" - "મિથુન" - "કર્ક" - "સિંહ" - "કન્યા" - "તુલા" - "વૃશ્ચિક" - "ધનુ" - "મકર" - "કુંભ" - "મીન" - "કાળો સ્પેડ સ્યુટ" - "કાળો ક્લબ સ્યૂટ" - "કાળો હૃદય સ્યુટ" - "કાળો ડાયમન્ડ સ્યૂટ" - "હૉટ સ્પ્રિંગ્સ" - "કાળું યુનિવર્સલ રીસાઇક્લિંગ પ્રતીક" - "વ્હીલચેરનું પ્રતીક" - "સૂત્રધાર" - "ચેતવણીનું ચિહ્ન" - "ઊંચા વોલ્ટેજનું ચિહ્ન" - "મધ્યમ સફેદ વર્તુળ" - "મધ્યમ કાળું વર્તુળ" - "સોકર બૉલ" - "બેસબૉલ" - "બરફ વગરનો હિમમાનવ" - "વાદળ પાછળનો સૂર્ય" - "સર્વધારી રાશિ" - "પ્રવેશ નિષેધ" - "ચર્ચ" - "ફુવારો" - "કાણાંમાં ધ્વજ" - "સઢવાળી નૌકા" - "તંબુ" - "ઈંધણ ભરવાનો પમ્પ" - "કાળી કાતર" - "સફેદ ભારે ચેક માર્ક" - "વિમાન" - "પરબિડીયું" - "ઉઠાવેલો મૂક્કો" - "ઉઠાવેલો હાથ" - "વિજેતા હાથ" - "પેન્સિલ" - "કાળી નીબ" - "ભારે ચેક માર્ક" - "ભારે ગુણાકાર x" - "તણખા" - "આઠ હાથાની ફૂદડી" - "આઠ પોઇન્ટવાળો કાળો તારો" - "સ્નોફ્લેક" - "સ્પાર્કલ" - "ક્રોસ ચિહ્ન" - "નેગેટિવ ચોરસાકાર ક્રોસ ચિહ્ન" - "કાળું પ્રશ્ન ચિહ્ન આભૂષણ" - "સફેદ પ્રશ્ન ચિહ્ન આભૂષણ" - "સફેદ આશ્ચર્યચિહ્ન આભૂષણ" - "ભારે આશ્ચર્યચિહ્નનું પ્રતીક" - "ભારે કાળું હૃદય" - "ભારે વત્તાકાર ચિહ્ન" - "ભારે બાદબાકી ચિહ્ન" - "ભારે ભાગાકાર ચિહ્ન" - "કાળો જમણી તરફનો એરો" - "વાંકડીયા લૂપ" - "બેવડા વાંકડીયા લૂપ" - "જમણી તરફ પોઇન્ટ કરતો અને પછી ઉપર વળી જતો એરો" - "જમણી તરફ પોઇન્ટ કરતો અને પછી નીચે વળી જતો એરો" - "ડાબી તરફનો કાળો એરો" - "ઉપરની તરફનો કાળો એરો" - "નીચેની તરફનો કાળો એરો" - "કાળું મોટું ચોરસ" - "સફેદ મોટું ચોરસ" - "સફેદ મધ્યમ તારો" - "ભારે મોટું વર્તુળ" - "વેવી ડૅશ" - "ભાગ પરિવર્તન ચિહ્ન" - "વર્તુળાકાર આઇડિઓગ્રાફ અભિનંદન" - "વર્તુળાકાર આઇડિઓગ્રાફ રહસ્ય" - "મહાજોન ટાઇલ લાલ ડ્રેગન" - "રમવાના પત્તાનો કાળો જોકર" - "રક્તનો પ્રકાર A" - "રક્તનો પ્રકાર B" - "રક્તનો પ્રકાર O" - "પાર્કિંગ સ્થળ" - "રક્તનો પ્રકાર AB" - "વર્ગાકાર CL" - "વર્ગાકાર કૂલ" - "વર્ગાકાર મફત" - "વર્ગાકાર ID" - "વર્ગાકાર નવું" - "વર્ગાકાર N G" - "વર્ગાકાર ઓકે" - "વર્ગાકાર SOS" - "ઉદ્ગાર ચિહ્ન સાથે વર્ગાકાર ઉપર" - "વર્ગાકાર વિ." - "અહીં વર્ગાકાર કાટાકના છે" - "વર્ગાકાર કાટાકના સેવા" - "વર્ગાકાર આઇડિઓગ્રાફ નિઃશુલ્ક" - "વર્ગાકાર આઇડિઓગ્રાફ આરક્ષિત-સીટ" - "વર્ગાકાર આઇડિઓગ્રાફ નિષેધ" - "વર્ગાકાર આઇડિઓગ્રાફ રિક્તિ" - "વર્ગાકાર આઇડિઓગ્રાફ સ્વીકૃતિ" - "વર્ગાકાર આઇડિઓગ્રાફ પૂર્ણ દખલ" - "વર્ગાકાર આઇડિઓગ્રાફ ચૂકવાયેલ" - "વર્ગાકાર આઇડિઓગ્રાફ માસિક" - "વર્ગાકાર આઇડિઓગ્રાફ એપ્લિકેશન" - "વર્ગાકાર આઇડિઓગ્રાફ ડિસ્કાઉન્ટ" - "વ્યવસાયમાં વર્ગાકાર આઇડિઓગ્રાફ" - "વર્તુળાકાર આઇડિઓગ્રાફ લાભ" - "વર્તુળાકાર આઇડિઓગ્રાફ સ્વીકાર" - "ચક્રવાત" - "ધુમ્મસવાળું" - "બંધ છત્રી" - "તારા સાથે રાત્રિ" - "પર્વતો પર સૂર્યોદય" - "સૂર્યોદય" - "અંધારાના સમયે સીટીસ્કેપ્સ" - "ભવનો પર સૂર્યાસ્ત" - "મેઘધનુષ" - "રાત્રિને સમય પૂલ" - "પાણીની લહેર" - "જ્વાળામુખી પર્વત" - "આકાશગંગા" - "પૃથ્વીનો ગોળો યુરોપ-આફ્રિકા" - "પૃથ્વીનો ગોળો અમેરિકાઝ" - "પૃથ્વીનો ગોળો એશિયા-ઓસ્ટ્રિલિયા" - "યામ્યોત્તર વૃત્તો ધરાવતો ગોળો" - "અમાસના ચંદ્રનું પ્રતીક" - "વધતા અર્ધચન્દ્રનું પ્રતીક" - "અર્ધચંદ્રનું પ્રતીક" - "વધતા બહિર્ગોળ ચંદ્રનું પ્રતીક" - "પૂનમના ચંદ્રનું પ્રતીક" - "ઘટતા બહિર્ગોળ ચંદ્રનું પ્રતીક" - "પા ભાગના ચંદ્રનું પ્રતીક" - "બીજના ચંદ્રનું પ્રતીક" - "બીજનો ચંદ્ર" - "ચહેરાવાળો અમાસનો ચંદ્ર" - "ચહેરાવાળો અર્ધચંદ્ર" - "ચહેરાવાળો પા ભાગનો ચંદ્ર" - "ચહેરાવાળો પૂનમનો ચંદ્ર" - "ચહેરાવાળો સૂર્ય" - "ચમકતો તારો" - "ખરતો તારો" - "બદામી રંગનું" - "ઉછેરેલો છોડ" - "લીલુંછમ ઝાડ" - "પાંદડા ખરેલ ઝાડ" - "તાડનું ઝાડ" - "થોર" - "ટ્યૂલિપ" - "ચેરી બ્લોસમ" - "ગુલાબ" - "જાસૂદ" - "સૂર્યમુખી" - "બ્લોસમ" - "મક્કાઈનો ડુંડો" - "ભાતનો ડુંડો" - "હર્બ" - "ચાર પાંખડીનું ફૂલ" - "મેપલ પર્ણ" - "ખરેલા પાંદડા" - "હવામાં ઝૂલતા પાંદડા" - "મશરૂમ" - "ટમેટા" - "રીંગણ" - "દ્રાક્ષ" - "ટેટી" - "તરબૂચ" - "નારંગી" - "લીંબુ" - "કેળા" - "પાઇનેપલ" - "લાલ સફરજન" - "લીલું સફરજન" - "નાસપતી" - "પીચ" - "ચેરીઝ" - "સ્ટ્રોબેરી" - "હેમબર્ગર" - "પીઝાની સ્લાઇસ" - "હાંડકા સાથે માંસ" - "મરગીનો પગ" - "રાઇસ ક્રેકર" - "રાઇસ બોલ" - "રાંધેલો ભાત" - "દાળ અને ભાત" - "વરાળ નીકળતો વાટકો" - "સ્પગેટી" - "બ્રેડ" - "ફ્રેન્ચ ફ્રાઇઝ" - "શેકોલો શક્કારિયો" - "ડાંગો" - "ઓડેન" - "સુશી" - "ફ્રાઇડ ઝીંગા" - "ગોળ ગોળ ડિઝાઇન વાળી ફિશ કેક" - "સોફ્ટ આઇસ ક્રીમ" - "છીણેલો બરફ" - "આઇસક્રીમ" - "ડોગનટ" - "કૂકી" - "ચોકલેટ બાર" - "કેન્ડી" - "લોલીપોપ" - "કસ્ટર્ડ" - "હની પોટ" - "શૉર્ટકેક" - "બેન્ટો બોક્સ" - "ભોજન ભરેલું વાસણ" - "રસોઈ" - "કાંટો અને છરી" - "હેન્ડલ વગરનો ચાનો કપ" - "સેકની બોટલ અને કપ" - "વાઇન ગ્લાસ" - "કોકટેલ ગ્લાસ" - "ગરમ પીણું" - "બિયર મગ" - "બિયરથી છલકાતા મગ" - "બેબી બોટલ" - "રિબન" - "લપેટેલ ઉપહાર" - "જન્મદિવસની કેક" - "જૅક-ઑ-લેન્ટર્ન" - "ક્રિસમસ ટ્રી" - "ફાધર ક્રિસમસ" - "ફટાકડા" - "ફટાકડાના તણખાં" - "ફુગ્ગો" - "પાર્ટી પોપર" - "કોન્ફેટી બોલ" - "તાનાબટા વૃક્ષ" - "ક્રોસ બનાવેલ ફ્લેગ્સ" - "પાઈન શણગાર" - "જાપાનીઝ ડોલ્સ" - "કાર્પ સ્ટ્રીમર" - "વિંડ ચાઇમ" - "ઉજવણીમાં ચંદ્રનું દ્રશ્ય" - "શાળાનું દફતર" - "ગ્રેજ્યુએશન કેપ" - "કેરોયુઝલ હોર્સ" - "ચકડોળ" - "રોલર કોસ્ટર" - "માછીમારી છડી અને માછલી" - "માઇક્રોફોન" - "મૂવી કૅમેરા" - "સિનેમા" - "હેડફોન" - "કલાકાર પેલેટ" - "લાંબી ટોપી" - "સર્કસનો તંબુ" - "ટિકિટ" - "ક્લેપર બોર્ડ" - "અભિનય કળાઓ" - "વિડિઓ રમત" - "ડાયરેક્ટ હિટ" - "સ્લોટ મશીન" - "બિલિયર્ડ્સ" - "ગેમ ડાઇ" - "બોલિંગ" - "ફ્લાવરવાળા રમવાના પત્તા" - "મ્યુઝિકલ નોટ" - "બહુવિધ મ્યુઝિકલ નોટ" - "સેક્સોફોન" - "ગિટાર" - "મ્યુઝિકલ કીબોર્ડ" - "ટ્રમ્પિટ" - "વાયોલિન" - "મ્યુઝિકલ સ્કોર" - "સ્લેશવાળો દોડતી વખતે પહેરવાનો શર્ટ" - "ટેનિસ રેકેટ અને બોલ" - "સ્કી અને સ્કી બુટ" - "બાસ્કેટબોલ અને હૂપ" - "ચટાપટ્ટાવાળો ધ્વજ" - "સ્નોબોર્ડર" - "રનર" - "સર્ફર" - "ટ્રોફી" - "હોર્સ રેસિંગ" - "અમેરિકન ફૂટબૉલ" - "રગ્બી ફૂટબૉલ" - "તૈરાક" - "મકાનની ઇમારત" - "બગીચા સાથેનું મકાન" - "કાર્યાલયની ઇમારત" - "જાપાનીઝ પોસ્ટ ઓફિસ" - "યુરોપિયન પોસ્ટ ઓફિસ" - "દવાખાનું" - "બૅંક" - "ઓટોમેટેડ ટેલર મશીન" - "હોટલ" - "પ્રેમ હોટેલ" - "સુવિધા સ્ટોર" - "શાળા" - "ડિપાર્ટમેન્ટ સ્ટોર" - "ફેક્ટરી" - "ઇઝકાયા લેન્ટર્ન" - "જાપાનીઝ કેસલ" - "યુરોપિયન કેસલ" - "ઉંદર" - "માઉસ" - "બળદ" - "પાણીમાંની ભેંસ" - "ગાય" - "ચિત્તા" - "સસલું" - "બિલાડી" - "ડ્રેગન" - "મગર" - "વ્હેલ" - "ગોકળગાય" - "સાપ" - "ઘોડો" - "ઘેટો" - "બકરી" - "ઘેટું" - "વાનર" - "પાળેલો કૂકડો" - "મરઘીનાં બચ્ચા" - "કૂતરો" - "ભૂંડ" - "ડુક્કર" - "હાથી" - "ઓક્ટોપસ" - "સર્પાકાર શેલ" - "નાનું જીવડું" - "કીડી" - "મધમાખી" - "ભમરી" - "માછલી" - "ટ્રોપિકલ માછલી" - "બ્લોફીશ" - "કાચબો" - "ઇંડામાંથી બહાર નીકળતું બચ્ચુ" - "નાનું બચ્ચુ" - "સામે-જોતું નાનું બચ્ચુ" - "પક્ષી" - "પેંગ્વિન" - "કોઆલા" - "પૂડલ" - "સવારી માટેનું ઊંટ" - "બેક્ટ્રિયન ઊંટ" - "ડોલ્ફિન" - "માઉસ ચહેરો" - "ગાયનો ચહેરો" - "વાઘનો ચહેરો" - "સસલાનો ચહેરો" - "બિલાડીનો ચહેરો" - "ડ્રેગનનો ચહેરો" - "સ્પોટિંગ વ્હેલ" - "ઘોડાનો ચહેરો" - "વાંદરાનો ચહેરો" - "કૂતરાનો ચહેરો" - "ભૂંડનો ચહેરો" - "દેડકાનો ચહેરો" - "હેમ્સ્ટરનો ચહેરો" - "વરુનો ચહેરો" - "રીંછનો ચહેરો" - "પાંડાનો ચહેરો" - "ભૂંડનું નાક" - "મોજાની છાપ" - "આંખો" - "કાન" - "નાક" - "મુખ" - "જીભ" - "સફેદ ઉપરની તરફનો બેકહેન્ડ ઇન્ડેક્સ" - "સફેદ નીચેની તરફનો બેકહેન્ડ ઇન્ડેક્સ" - "સફેદ ડાબી તરફનો બેકહેન્ડ ઇન્ડેક્સ" - "સફેદ જમણી તરફનો બેકહેન્ડ ઇન્ડેક્સ" - "મુક્કાના હાથનું ચિહ્ન" - "લહેરાતા હાથનું ચિહ્ન" - "ઑકે કહેતું હાથનું ચિહ્ન" - "ઉપર અંગૂઠાનું ચિહ્ન" - "નીચે અંગૂઠાનું ચિહ્ન" - "તાળી પાડતા હાથનું ચિહ્ન" - "ખુલ્લા હાથનું ચિહ્ન" - "મુગટ" - "સ્ત્રીઓની ટોપી" - "આંખનાં ચશ્મા" - "નેકટાઇ" - "ટી શર્ટ" - "જીન્સ" - "ડ્રેસ" - "કીમોનો" - "બીકીની" - "મહિલાનાં કપડાં" - "પર્સ" - "હેન્ડબેગ" - "પાઉચ" - "પુરુષોનાં જૂતા" - "એથલેટિક શૂ" - "ઉંચી એડીનાં શૂ" - "મહિલાઓની સેન્ડલ" - "મહિલાના બુટ" - "પગલાં" - "બસ્ટ ઇન સિલુએટ" - "બસ્ટ્સ ઇન સિલુએટ" - "છોકરો" - "છોકરી" - "માણસ" - "મહિલા" - "પરિવાર" - "હાથ પકડેલ સ્ત્રી અને પુરુષ" - "હાથ પકડેલા બે પુરુષ" - "હાથ પકડેલી બે મહિલા" - "પોલીસ અધિકારી" - "બની કાન સાથેની મહિલા" - "ઘુંઘટવાળી નવવધુ" - "સોનેરી વાળ વાળી વ્યક્તિ" - "ગુઆ પાઇ માઓ સાથે માણસ" - "પાઘડી સાથેનો માણસ" - "વૃદ્ધ માણસ" - "વૃદ્ધ મહિલા" - "બેબી" - "બાંધકામ કામદાર" - "રાજકુમારી" - "જાપાનીઝ ઓગરે" - "Japanese goblin" - "ભૂત" - "નાનો દેવદૂત" - "બહારની દુનિયાના એલિયન" - "એલિયન રાક્ષસ" - "Imp" - "ખોપરી" - "માહિતી ડેસ્કનો વ્યક્તિ" - "ચોકીદાર" - "નર્તક" - "લિપસ્ટિક" - "નેલ પોલીશ" - "ફેસ મસાજ" - "હેરકટ" - "બાર્બર પોલ" - "સિરીંજ" - "ગોળી" - "ચુંબનનું ચિહ્ન" - "પ્રેમ પત્ર" - "રિંગ કરો" - "નગીનો" - "ચુંબન" - "કલગી" - "હૃદય સાથે દંપતિ" - "લગ્ન" - "ધબકતું હૃદય" - "ભગ્ન હૃદય" - "બે હૃદય" - "ચમકતું હૃદય" - "ખીલતું હૃદય" - "તીર સાથે હૃદય" - "વાદળી હૃદય" - "લીલું હૃદય" - "પીળું હૃદય" - "જાંબલી હૃદય" - "રિબન સાથે હૃદય" - "ફરતું હૃદય" - "હૃદય શણગાર" - "અંદર એક ડોટ સાથે ડાયમન્ડ આકાર" - "ઇલેક્ટ્રિક લાઇટ બલ્બ" - "ક્રોધનું પ્રતીક" - "બૉમ્બ" - "ઉંઘતાનું પ્રતીક" - "અથડામણનું પ્રતીક" - "પરસેવાનાં છાંટા ઉડતાનું પ્રતીક" - "નાનું ટપકું" - "ડેશ પ્રતીક" - "પાઇલ ઑફ પૂ" - "વળેલા બાયસેપ્સ" - "ચક્કરનું પ્રતીક" - "વાણીનું બલૂન" - "વિચારનું બલૂન" - "સફેદ ફૂલ" - "100 પોઇન્ટ્સનું પ્રતીક" - "મની બેગ" - "ચલણ વિનિમય" - "ભારે ડોલર સાઇન" - "ક્રેડિટ કાર્ડ" - "યેન ચિહ્ન સાથેની બેંકનોટ" - "ડૉલર ચિહ્ન સાથેની બેંકનોટ" - "યુરો ચિહ્ન સાથેની બેંકનોટ" - "પાઉન્ડ ચિહ્ન સાથેની બેંકનોટ" - "પાંખો સાથે નાણાં" - "ઉપર તરફનું વલણ અને યેન ચિહ્ન સાથેનો ચાર્ટ" - "સીટ" - "વ્યક્તિગત કમ્પ્યુટર" - "બ્રીફકેસ" - "મિનિડિસ્ક" - "ફ્લોપી ડિસ્ક" - "ઓપ્ટિકલ ડિસ્ક" - "Dvd" - "ફાઇલ ફોલ્ડર" - "ખુલ્લુ ફાઇલ ફોલ્ડર" - "કર્લ સાથે પૃષ્ઠ" - "ઉપર ફેસિંગવાળું પૃષ્ઠ" - "કૅલેન્ડર" - "ટીઅર-ઑફ કેલેન્ડર" - "કાર્ડ અનુક્રમણિકા" - "ઉપર તરફ વલણ સાથેનો ચાર્ટ" - "નીચે તરફ વલણ સાથેનો ચાર્ટ" - "બાર ચાર્ટ" - "ક્લિપબોર્ડ" - "પુશપિન" - "રાઉન્ડ પુશપિન" - "પેપરક્લિપ" - "સીધી આંકણી" - "ત્રિકોણાકાર આંકણી" - "બુકમાર્ક ટેબ્સ" - "લેજર" - "નોટબુક" - "સુશોભન કવર સાથે નોટબુક" - "બંધ પુસ્તક" - "ખુલ્લું પુસ્તક" - "લીલું પુસ્તક" - "વાદળી પુસ્તક" - "નારંગી પુસ્તક" - "પુસ્તકો" - "નામ બેજ" - "સ્ક્રોલ" - "મેમો" - "ટેલિફોન રિસીવર" - "પેજર" - "ફેક્સ મશીન" - "સેટેલાઈટ એન્ટેના" - "જાહેર સરનામું લાઉડસ્પીકર" - "ચીઅરિંગ મેગાફોન" - "Outbox tray" - "ઇનબૉક્સ ટ્રે" - "પૅકેજ" - "ઇ-મેઇલ પ્રતીક" - "ઇનકમિંગ પરબિડીયું" - "નીચેની તરફના ઉપર એરો સાથેનું પરબિડીયું" - "નમેલા ધ્વજ સાથે બંધ મેઇલબોક્સ" - "ઊઠેલા ધ્વજ સાથે બંધ મેઇલબોક્સ" - "ઊઠેલા ધ્વજ સાથે ખુલ્લું મેઇલબોક્સ" - "નમેલા ધ્વજ સાથે ખુલ્લું મેઇલબોક્સ" - "પોસ્ટબૉક્સ" - "ટપાલ હોર્ન" - "અખબાર" - "મોબાઇલ ફોન" - "ડાબી બાજુએ જમણી તરફનાં એરો સાથેનો મોબાઇલ ફોન" - "વાઇબ્રેશન મોડ" - "મોબાઇલ ફોન બંધ" - "કોઈ મોબાઇલ ફોન નથી" - "બાર સાથે એન્ટેના" - "કૅમેરો" - "વિડિઓ કૅમેરા" - "ટેલિવિઝન" - "રેડિઓ" - "વિડિઓકૅસેટ" - "વળેલા જમણી તરફનાં એરો" - "દક્ષિણાવર્ત જમણેરી અને ડાબેલી ખુલ્લા વર્તુળ એરોઝ" - "વર્તુળાકાર એક ઓવરલે સાથે દક્ષિણાવર્ત જમણેરી અને ડાબેલી ખુલ્લા વર્તુળ એરોઝ" - "દક્ષિણાવર્ત નીચેની તરફના અને ઉપરની તરફના ખુલ્લા વર્તુળ એરોઝ" - "વામાવર્ત નીચેની તરફના અને ઉપરની તરફના ખુલ્લા વર્તુળ એરોઝ" - "ઓછા તેજનું પ્રતીક" - "ઉચ્ચ તેજનું પ્રતીક" - "રદીકરણ સ્ટ્રોક સાથેના સ્પીકર" - "સ્પીકર" - "એક ધ્વનિ લહેર સાથે સ્પીકર" - "ત્રણ ધ્વનિ લહેરો સાથેનું સ્પીકર" - "બૅટરી" - "ઇલેક્ટ્રિક પ્લગ" - "ડાબે-પોઇન્ટ કરતો બૃહદદર્શક કાચ" - "જમણે-પોઇન્ટ કરતો બૃહદદર્શક કાચ" - "ઇંક પેન સાથે તાળું" - "ચાવી સાથેનું બંધ તાળુ" - "કી" - "તાળુ" - "ખુલ્લું તાળું" - "ઘંટડી" - "રદીકરણ સ્ટ્રોક સાથેની ઘંટડી" - "બુકમાર્ક કરો" - "લિંક પ્રતીક" - "રેડિયો બટન" - "ઉપર ડાબી તરફનાં એરો સાથે પાછળ" - "ઉપર ડાબી તરફનાં એરો સાથે અંત" - "ઉપર ડાબા જમણા એરો સાથે આશ્ચર્યચિહ્ન સાથે ચાલુ" - "ઉપર જમણી તરફનાં એરો સાથે જલ્દી" - "શીર્ષ પર ઉપરની તરફનાં એરો સાથે ટોચ" - "અઢારથી નીચેના કોઈપણ નહીંનું પ્રતીક" - "કીકેપ દસ" - "લેટિન કેપિટલ અક્ષરો માટે ઇનપુટનું પ્રતીક" - "લેટિન નાના અક્ષરો માટે ઇનપુટનું પ્રતીક" - "સંખ્યા માટેનું ઇનપુટનું પ્રતીક" - "પ્રતીકો માટેનું ઇનપુટ પ્રતીક" - "લેટિન અક્ષરો માટેના ઇનપુટનું પ્રતીક" - "આગ" - "ઇલેક્ટ્રિક ટોર્ચ" - "સાધન" - "હથોડો" - "નટ અને બોલ્ટ" - "હોચો" - "પિસ્તોલ" - "માઈક્રોસ્કોપ" - "ટેલિસ્કોપ" - "ક્રિસ્ટલ બોલ" - "મધ્યમાં ડોટ સાથે છ પોઇન્ટવાળો તારો" - "પ્રારંભકર્તા માટે જાપાનીઝ પ્રતીક" - "ટ્રાઇડન્ટ પ્રતીક" - "કાળું ચોરસ બટન" - "સફેદ ચોરસ બટન" - "મોટું લાલ વર્તુળ" - "મોટું વાદળી વર્તુળ" - "મોટો નારંગી હીરો" - "મોટો વાદળી હીરો" - "નાનો નારંગી હીરો" - "નાનો વાદળી હીરો" - "ઉપર પોઇન્ટ કરતો લાલ ત્રિકોણ" - "નીચે પોઇન્ટ કરતો લાલ ત્રિકોણ" - "ઉપર પોઇન્ટ કરતો નાનો લાલ ત્રિકોણ" - "નીચે પોઇન્ટ કરતો નાનો લાલ ત્રિકોણ" - "ઘડિયાળમાં એક વાગ્યાનો સમય" - "ઘડિયાળમાં બે વાગ્યાનો સમય" - "ઘડિયાળમાં ત્રણ વાગ્યાનો સમય" - "ઘડિયાળમાં ચાર વાગ્યાનો સમય" - "ઘડિયાળમાં પાંચ વાગ્યાનો સમય" - "ઘડિયાળમાં છ વાગ્યાનો સમય" - "ઘડિયાળમાં સાત વાગ્યાનો સમય" - "ઘડિયાળમાં આઠ વાગ્યાનો સમય" - "ઘડિયાળમાં નવ વાગ્યાનો સમય" - "ઘડિયાળમાં દસ વાગ્યાનો સમય" - "ઘડિયાળમાં અગિયાર વાગ્યાનો સમય" - "ઘડિયાળમાં બાર વાગ્યાનો સમય" - "ઘડિયાળમાં દોઢ વાગ્યાનો સમય" - "ઘડિયાળમાં અઢી વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા ત્રણ વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા ચાર વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા પાંચ વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા છ વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા સાત વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા આઠ વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા નવ વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા દસ વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા અગિયાર વાગ્યાનો સમય" - "ઘડિયાળમાં સાડા બાર વાગ્યાનો સમય" - "માઉન્ટ ફુજી" - "ટોક્યો ટાવર" - "સ્ટેચ્યુ ઑફ લિબર્ટી" - "જાપાનની સિલુએટ" - "મોયાઈ" - "વેદનાભર્યો ચહેરો" - "હસતી આંખો સાથે વેદનાભર્યો ચહેરો" - "આનંદાશ્રુ સાથેનો ચહેરો" - "ખુલ્લા મોં સાથે હસતો ચહેરો" - "ખુલ્લા મોં અને હસતી આંખો સાથેનો હસતો ચહેરો" - "ખુલ્લા મોં અને ઠંડા પરસેવા સાથે હસતો ચહેરો" - "ખુલ્લા મોં અને ચુસ્ત મીંચેલી આંખો સાથેનો હસતો ચહેરો" - "આભામંડળ સાથેનો હસતો ચહેરો" - "શિંગડાવાળો હસતો ચહેરો" - "આંખ મારતો ચહેરો" - "હસતી આંખો સાથેનો હસતો ચહેરો" - "સ્વાદિષ્ટ ખોરાકનો આસ્વાદ લેતો ચહેરો" - "નિરાંત અનુભવતો ચહેરો" - "હૃદયાકારા આંખો સાથેનો હસતો ચહેરો" - "સનગ્લાસેસ સાથેનો હસતો ચહેરો" - "બનાવટી હાસ્યવાળો ચહેરો" - "તટસ્થ ચહેરો" - "ભાવવિહીન ચહેરો" - "નાખુશ ચહેરો" - "ઠંડા પરસેવા સાથેનો ચહેરો" - "વિચારગ્રસ્ત ચહેરો" - "મુંઝાયેલ ચહેરો" - "ચૂપ ચહેરો" - "ચુંબન કરતો ચહેરો" - "ચૂંબન ઉછાળતો ચહેરો" - "હસતી આંખો સાથેનો ચુંબન કરતો ચહેરો" - "બંધ આંખો સાથે ચુંબન કરતો ચહેરો" - "જીબ બહાર કાઢેલો ચહેરો" - "આંખ મારીને જીભ બહાર કાઢેલો ચહેરો" - "ચુસ્ત ભીડેલી આંખો સાથે જીભ બહાર કાઢેલો ચહેરો" - "નિરાશ ચહેરો" - "ચિંતાતુર ચહેરો" - "ક્રોધિત ચહેરો" - "હોઠ બહાર કાઢતો ચહેરો" - "રડતો ચહેરો" - "ખંતીલો ચહેરો" - "વિજેતાના દેખાવ સાથેનો ચહેરો" - "નિરાશ પણ રાહત અનુભવતો ચહેરો" - "ખુલ્લા મોં સાથે નાખુશ ચહેરો" - "સંતાપગ્રસ્ત ચહેરો" - "ભયભીત ચહેરો" - "કંટાળાજનક ચહેરો" - "ઊંઘમાં હોય તેવો ચહેરો" - "થાકેલોચહેરો" - "ધિક્કારતો ચહેરો" - "મોટેથી રડતો ચહેરો" - "ખુલ્લા મોં સાથેનો ચહેરો" - "ચૂપ કરાવેલ ચહેરો" - "ખુલ્લા મોં અને ઠંડા પરસેવા સાથેનો ચહેરો" - "ભયથી ચીસો પાડતો ચહેરો" - "આશ્ચર્યચકિત ચહેરો" - "રતાશવાળો ચહેરો" - "ઊંઘતો ચહેરો" - "ઘેનવાળો ચહેરો" - "મોં વગરનો ચહેરો" - "તબીબી માસ્ક સાથેનો ચહેરો" - "હસતી આંખો સાથેનો વેદનાભર્યો બિલાડીનો ચહેરો" - "આનંદાશ્રુ સાથેનો બિલાડીનો ચહેરો" - "ખુલ્લા મોં સાથે હસતો બિલાડીનો ચહેરો" - "હૃદયાકારા આંખો સાથેનો હસતો બિલાડીનો ચહેરો" - "વક્ર સ્મિત સાથેનો બિલાડીનો ચહેરો" - "બંધ આંખો સાથે ચુંબન કરતો બિલાડીનો ચહેરો" - "હોઠ બહાર કાઢતો બિલાડીનો ચહેરો" - "રડતો બિલાડીનો ચહેરો" - "કંટાળાજનક બિલાડીનો ચહેરો" - "સારું નહીંના હાવભાવ સાથેનો ચહેરો" - "ઑકે હાવભાવ સાથેનો ચહેરો" - "તદ્દન હારેલ વ્યક્તિ" - "ખરાબ-જોશો-નહીંનો વાનર" - "ખરાબ-જોશો-નહીંનો વાનર" - "ખરાબ-બોલશો-નહીંનો વાનર" - "એક હાથ ઉઠાવતો ખુશ વ્યક્તિ" - "ઉજવણીમાં બંને હાથ ઉંચકેલો વ્યક્તિ" - "નાખુશી દર્શાવતી વ્યક્તિ" - "હોઠ બહાર કાઢેલ ચહેરાવાળી વ્યક્તિ" - "હાથની અદબ વાળેલ વ્યક્તિ" - "રોકેટ" - "હેલિકોપ્ટર" - "વરાળ એન્જિન" - "રેલ્વે કાર" - "તીવ્ર-ગતિની ટ્રેન" - "બુલેટ નોઝ વાળી તીવ્ર-ગતિની ટ્રેન" - "ટ્રેન" - "મેટ્રો" - "હળવી રેલ" - "સ્ટેશન" - "ટ્રામ" - "ટ્રામ કાર" - "બસ" - "આવતી બસ" - "ટ્રોલીબસ" - "બસ સ્થાનક" - "મિનિબસ" - "એમ્બ્યુલન્સ" - "ફાયર એન્જિન" - "પોલીસ કાર" - "આવતી પોલીસ કાર" - "ટેક્સી" - "આવતી ટેક્સી" - "ઓટોમોબાઇલ" - "આગામી ઑટોમોબાઇલ" - "મનોરંજન વાહન" - "ડિલીવરી ટ્રક" - "કલાત્મક લૉરી" - "ટ્રેક્ટર" - "મોનોરેલ" - "માઉન્ટેન રેલ્વે" - "સસ્પેન્શન રેલ્વે" - "માઉન્ટેન કેબલવે" - "હવાઈ ​​ટ્રામવે" - "વહાણ" - "તરાપો" - "સ્પીડબોટ" - "આડી ટ્રાફિક લાઇટ" - "ઊભી ટ્રાફિક લાઇટ" - "બાંધકામનું ચિહ્ન" - "પોલીસ કારની ફરતી લાઇટ" - "પોસ્ટ પરનો ત્રિકોણ ધ્વજ" - "દરવાજો" - "પ્રવેશ નહીંનું ચિહ્ન" - "ધૂમ્રપાનનું પ્રતીક" - "ધૂમ્રપાન નિષેધનું પ્રતીક" - "કચરો તેની જગ્યાએ નાખોનું પ્રતીક" - "કચરો કરશો નહીંનું પ્રતીક" - "પીવાનું પાણીનું પ્રતીક" - "પાણી પીવા માટે નથીનું પ્રતીક" - "સાયકલ" - "કોઈ સાયકલ નહીં" - "સાઇકલ સવાર" - "માઉન્ટેન સાઇકલ સવાર" - "પદયાત્રી" - "કોઈ પદયાત્રી નહીં" - "બાળકો માટેનું ક્રોસિંગ" - "પુરુષ પ્રતીક" - "મહિલા પ્રતીક" - "વિશ્રામખંડ" - "બેબી પ્રતીક" - "ટોયલેટ" - "વૉટર ક્લોસેટ" - "શૉવર" - "બાથ" - "બાથટબ" - "પાસપોર્ટ નિયંત્રણ" - "કસ્ટમ્સ" - "સામાનનો દાવો" - "બાકી સામાન" - diff --git a/java/res/values-gu-rIN/strings-letter-descriptions.xml b/java/res/values-gu-rIN/strings-letter-descriptions.xml deleted file mode 100644 index 2e6bdd860..000000000 --- a/java/res/values-gu-rIN/strings-letter-descriptions.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - "સ્ત્રીલિંગ ક્રમવાચક સૂચક" - "માઇક્રો ચિહ્ન" - "પુલિંગ ક્રમવાચક સૂચક" - "શાર્પ S" - "A, ગ્રેવ" - "A, એક્યુટ" - "A, પરિવૃત્ત" - "A, ટિલ્ડ" - "A, ડાયાઇરેસિસ" - "A, ઉપર રિંગ" - "A, E, સંયુક્તાક્ષર" - "C, સિડિલા" - "E, ગ્રેવ" - "E, એક્યુટ" - "E, પરિવૃત્ત" - "E, ડાયાઇરેસિસ" - "I, ગ્રેવ" - "I, એક્યુટ" - "I, પરિવૃત્ત" - "I, ડાયાઇરેસિસ" - "Eth" - "N, ટિલ્ડ" - "O, ગ્રેવ" - "O, એક્યુટ" - "O, પરિવૃત્ત" - "O, ટિલ્ડ" - "O, ડાયાઇરેસિસ" - "O, સ્ટ્રોક" - "U, ગ્રેવ" - "U, એક્યુટ" - "U, પરિવૃત્ત" - "U, ડાયાઇરેસિસ" - "Y, એક્યુટ" - "કાંટો" - "Y, ડાયાઇરેસિસ" - "A, મેક્રોન" - "A, બ્રીવ" - "A, ઓગોનેક" - "C, એક્યુટ" - "C, પરિવૃત્ત" - "C, ઉપર ડોટ" - "C, કૅરોન" - "D, કૅરોન" - "D, સ્ટ્રોક" - "E, મૅક્રોન" - "E, બ્રીવ" - "E, ઉપર ડોટ" - "E, ઓગોનેક" - "E, કૅરોન" - "G, પરિવૃત્ત" - "G, બ્રીવ" - "G, ઉપર ડોટ" - "G, સિડિલા" - "H, પરિવૃત્ત" - "H, સ્ટ્રોક" - "I, ટિલ્ડ" - "I, મૅક્રોન" - "I, બ્રીવ" - "I, ઓગોનેક" - "ડોટ રહિત I" - "I, J, સંયુક્તાક્ષર" - "J, પરિવૃત્ત" - "K, સિડિલા" - "Kra" - "L, એક્યુટ" - "L, સિડિલા" - "L, કૅરોન" - "L, વચ્ચે ડોટ" - "L, સ્ટ્રોક" - "N, એક્યુટ" - "N, સિડિલા" - "N, કૅરોન" - "N, એપોસ્ટ્રોફી દ્વારા અનુસરાયેલ" - "Eng" - "O, મૅક્રોન" - "O, બ્રીવ" - "O, બેવડુ એક્યુટ" - "O, E, સંયુક્તાક્ષર" - "R, એક્યુટ" - "R, સિડિલા" - "R, કૅરોન" - "S, એક્યુટ" - "S, પરિવૃત્ત" - "S, સિડિલા" - "S, કૅરોન" - "T, સિડિલા" - "T, કૅરોન" - "T, સ્ટ્રોક" - "U, ટિલ્ડ" - "U, મૅક્રોન" - "U, બ્રીવ" - "U, ઉપર રિંગ" - "U, બેવડું એક્યુટ" - "U, ઓગોનેક" - "W, પરિવૃત્ત" - "Y, પરિવૃત્ત" - "Z, એક્યુટ" - "Z, ઉપર ડોટ" - "Z, કૅરોન" - "લાંબો S" - "O, હોર્ન" - "U, હોર્ન" - "S, નીચે અલ્પવિરામ" - "T, નીચે અલ્પવિરામ" - "Schwa" - "A, નીચે ડોટ" - "A, ઉપર હૂક" - "A, પરિવૃત્ત અને એક્યુટ" - "A, પરિવૃત્ત અને ગ્રેવ" - "A, પરિવૃત્ત અને ઉપર હૂક" - "A, પરિવૃત્ત અને ટિલ્ડ" - "A, પરિવૃત્ત અને નીચે ડોટ" - "A, બ્રીવ અને એક્યુટ" - "A, બ્રીવ અને ગ્રેવ" - "A, બ્રીવ અને ઉપર હૂક" - "A, બ્રીવ અને ટિલ્ડ" - "A, બ્રીવ અને નીચે ડોટ" - "E, નીચે ડોટ" - "E, ઉપર હૂક" - "E, ટિલ્ડ" - "E, પરિવૃત્ત અને એક્યુટ" - "E, પરિવૃત્ત અને ગ્રેવ" - "E, પરિવૃત્ત અને ઉપર હૂક" - "E, પરિવૃત્ત અને ટિલ્ડ" - "E, પરિવૃત્ત અને નીચે ડોટ" - "I, ઉપર હૂક" - "I, નીચે ડોટ" - "O, નીચે ડોટ" - "O, ઉપર હૂક" - "O, પરિવૃત્ત અને એક્યુટ" - "O, પરિવૃત્ત અને ગ્રેવ" - "O, પરિવૃત્ત અને ઉપર હૂક" - "O, પરિવૃત્ત અને ટિલ્ડ" - "O, પરિવૃત્ત અને નીચે ડોટ" - "O, હોર્ન અને એક્યુટ" - "O, હોર્ન અને ગ્રેવ" - "O, હોર્ન અને ઉપર હૂક" - "O, હોર્ન અને ટિલ્ડ" - "O, હોર્ન અને નીચે ડોટ" - "U, નીચે ડોટ" - "U, ઉપર હૂક" - "U, હોર્ન અને એક્યુટ" - "U, હોર્ન અને ગ્રેવ" - "U, હોર્ન અને ઉપર હૂક" - "U, હોર્ન અને ટિલ્ડ" - "U, હોર્ન અને નીચે ડોટ" - "Y, ગ્રેવ" - "Y, નીચે ડોટ" - "Y, ઉપર હૂક" - "Y, ટિલ્ડ" - "ઉલટાવેલ ઉદ્ગારવાચક ચિહ્ન" - "ડાબી તરફના બેવડા ખૂણાનું અવતરણ ચિહ્ન" - "વચ્ચે ડોટ" - "સુપરસ્ક્રિપ્ટ એક" - "જમણી તરફના બેવડા ખૂણાનું અવતરણ ચિહ્ન" - "ઉલટાવેલ પ્રશ્ન ચિહ્ન" - "ડાબુ એકલ અવતરણ ચિહ્ન" - "જમણું એકલ અવતરણ ચિહ્ન" - "એકલ 9 જેવું અવતરણ ચિહ્ન" - "ડાબું બેવડું અવતરણ ચિહ્ન" - "જમણું બેવડું અવતરણ ચિહ્ન" - "કટાર" - "બેવડી કટાર" - "માઇલ દીઠનું ચિહ્ન" - "પ્રાઇમ" - "ડબલ પ્રાઇમ" - "એકલ ડાબી તરફના ખૂણાનું અવતરણ ચિહ્ન" - "એકલ જમણી તરફના ખૂણાનું અવતરણ ચિહ્ન" - "સુપરસ્ક્રિપ્ટ ચાર" - "સુપરસ્ક્રિપ્ટ લેટિન નાનો અક્ષર n" - "પેસો ચિહ્ન" - "કેર ઑફ" - "જમણી તરફનો એરો" - "Downwards arrow" - "ખાલી સેટ" - "વધારો" - "આનાથી ઓછું અથવા આની બરાબર" - "આનાથી મોટું અથવા આની બરાબર" - "કાળો તારો" - diff --git a/java/res/values-gu-rIN/strings-talkback-descriptions.xml b/java/res/values-gu-rIN/strings-talkback-descriptions.xml deleted file mode 100644 index ba1c5c17b..000000000 --- a/java/res/values-gu-rIN/strings-talkback-descriptions.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - "પાસવર્ડ કીઝ મોટેથી બોલાતી સાંભળવા માટે હેડસેટ પ્લગ ઇન કરો." - "વર્તમાન ટેક્સ્ટ %s છે" - "કોઈ ટેક્સ્ટ દાખલ કરેલ નથી" - "%1$s, %2$s ને %3$s થી સુધારે છે" - "%1$s સ્વતઃસુધારો કરે છે" - "કોઈ સૂચન નથી" - "અજાણ્યો અક્ષર" - "Shift" - "વધુ પ્રતીકો" - "Shift" - "પ્રતીકો" - "Shift" - "કાઢી નાખો" - "પ્રતીકો" - "અક્ષરો" - "આંકડાઓ" - "સેટિંગ્સ" - "ટૅબ" - "Space" - "વોઇસ ઇનપુટ" - "ઇમોજી" - "પાછા ફરો" - "શોધ" - "ડોટ" - "ભાષા સ્વિચ કરો" - "આગલું" - "પહેલાનું" - "Shift સક્ષમ" - "Caps lock સક્ષમ" - "પ્રતીક મોડ" - "વધુ પ્રતીક મોડ" - "અક્ષર મોડ" - "ફોન મોડ" - "ફોન પ્રતીક મોડ" - "કીબોર્ડ છૂપાયેલ છે" - "%s કીબોર્ડ દર્શાવી રહ્યું છે" - "તારીખ" - "તારીખ અને સમય" - "ઇમેઇલ" - "મેસેજિંગ" - "નંબર" - "ફોન" - "ટેક્સ્ટ કરો" - "સમય" - "URL" - "તાજેતરના" - "લોકો" - "પદાર્થો" - "કુદરત" - "સ્થાન" - "પ્રતીકો" - "ઇમોટિકન્સ" - "કેપિટલ %s" - "કેપિટલ I" - "કેપિટલ I, ઉપર ડોટ" - "અજાણ્યું પ્રતીક" - "અજાણ્યો ઇમોજી" - "કંટાળેલો ચહેરો" - "ક્ષોભિત ચહેરો" - "સનગ્લાસ પહેરેલ ચહેરો" - "આશ્ચર્યચકિત ચહેરો" - "ચુંબન કરતો ચહેરો" - "નાખુશ ચહેરો" - "વૈકલ્પિક અક્ષરો ઉપલબ્ધ છે" - "વૈકલ્પિક અક્ષરો કાઢી નાખવામાં આવે છે" - "વૈકલ્પિક સૂચનો ઉપલબ્ધ છે" - "વૈકલ્પિક સૂચનો કાઢી નાખવામાં આવે છે" - diff --git a/java/res/values-gu-rIN/strings.xml b/java/res/values-gu-rIN/strings.xml deleted file mode 100644 index 550460d07..000000000 --- a/java/res/values-gu-rIN/strings.xml +++ /dev/null @@ -1,210 +0,0 @@ - - - - - "ઇનપુટ વિકલ્પો" - "સંપર્ક નામ શોધો" - "જોડણી-પરીક્ષક તમારી સંપર્ક સૂચિમાંથી એન્ટ્રીઝનો ઉપયોગ કરે છે" - "કીપ્રેસ પર વાઇબ્રેટ કરો" - "કીપ્રેસ પર ધ્વનિ" - "કીપ્રેસ પર પોપઅપ" - "પસંદગી" - "એકાઉન્ટ્સ અને ગોપનીયતા" - "દેખાવ અને લેઆઉટ્સ" - "હાવભાવથી ટાઇપિંગ" - "ટેક્સ્ટ સુધારણા" - "વિગતવાર" - "થીમ" - "વિભાજિત કીબોર્ડ સક્ષમ કરો" - "Google કીબોર્ડ સમન્વયન" - "સમન્વયન ચાલુ કરેલ છે" - "સમગ્ર ઉપકરણો પર તમારા વ્યક્તિગત શબ્દકોશને સમન્વયિત કરો" - "હમણા સમન્વયન" - "મેઘ ડેટા કાઢી નાખો" - "Google માંથી તમારો સમન્વયિત ડેટા કાઢી નાખે છે" - "મેઘમાંથી તમારો સમન્વયિત ડેટા કાઢી નાખવામાં આવશે. શું તમે ખરેખર આ કરવા માંગો છો?" - "કાઢી નાખો" - "રદ કરો" - "તમારો વ્યક્તિગત શબ્દકોશનો Google સર્વર્સ પર બેક અપ લેવાશે અને સમન્વયિત કરવામાં આવશે. અમારા ઉત્પાદનોને બહેતર બનાવવામાં સહાય માટે શબ્દ આવૃત્તિની આંકડાકીય માહિતી ભેગી કરવામાં આવી શકે છે. બધી માહિતીનો સંગ્રહ અને ઉપયોગ ""Google ની ગોપનીયતા નીતિ""ની સાથે સંસંગત હશે." - "કૃપા કરીને આ સુવિધા સક્ષમ કરવા માટે આ ઉપકરણ પર Google એકાઉન્ટ ઉમેરો" - "વ્યવસાય એકાઉન્ટ્સ માટે Google Apps સાથેના ઉપકરણો માટે સમન્વયન ઉપલબ્ધ નથી" - "અન્ય ઇનપુટ પદ્ધતિઓ પર સ્વિચ કરો" - "ભાષા સ્વિચ કી અન્ય ઇનપુટ પદ્ધતિઓને પણ આવરે છે" - "ભાષા સ્વિચ કી" - "જ્યારે બહુવિધ ઇનપુટ ભાષાઓ સક્ષમ હોય ત્યારે દર્શાવો" - "કી પોપઅપ કાઢી નાખવામાં વિલંબ" - "કોઈ વિલંબ નથી" - "ડિફોલ્ટ" - "%sms" - "સિસ્ટમ ડિફોલ્ટ" - "સંપર્ક નામ સૂચવો" - "સૂચનો અને સુધારાઓ માટે સંપર્કોમાંથી નામોનો ઉપયોગ કરો" - "વ્યક્તિગત સૂચનો" - "%s બહેતર બનાવો" - "ડબલ-સ્પેસ પીરિયડ" - "સ્પેસબાર પર બેવાર ટેપ કરવું એક પીરિયડ અને તેના પછી એક જગ્યા શામેલ કરે છે" - "સ્વતઃ-કેપિટલાઇઝેશન" - "દરેક વાક્યનો પ્રથમ શબ્દ કેપિટલ કરો" - "વ્યક્તિગત શબ્દકોશ" - "એડ-ઓન શબ્દકોશ" - "મુખ્ય શબ્દકોશ" - "સુધારણા સૂચનો દર્શાવો" - "લખતી વખતે સૂચિત શબ્દો પ્રદર્શિત કરો" - "વાંધાજનક શબ્દો અવરોધિત કરો" - "સંભવિત વાંધાજનક શબ્દો સૂચવશો નહીં" - "સ્વતઃ-સુધારો" - "સ્પેસબાર અને વિરામચિહ્ન ખોટી રીતે લખાયેલ શબ્દોને આપમેળે સુધારે છે" - "બંધ" - "વિનમ્ર" - "જોરદાર" - "ખૂબ ફરજ પાડીને" - "આગલા શબ્દનું સૂચન" - "સૂચનો બનાવવા માટે પહેલાનાં શબ્દનો ઉપયોગ કરો" - "હાવભાવથી ટાઇપિંગ સક્ષમ કરો" - "અક્ષરો મારફતે સ્લાઇડ કરીને એક શબ્દ ઇનપુટ કરો" - "હાવભાવ અજમાયશ દર્શાવો" - "ગતિશીલ ફ્લોટિંગ પૂર્વાવલોકન" - "હાવભાવ કરતી વખતે સૂચિત શબ્દ જુઓ" - "શબ્દસમૂહ હાવભાવ" - "સ્પેસ કી પર જઈને હાવભાવ દરમિયાન સ્પેસ ઇનપુટ કરો" - "વૉઇસ ઇનપુટ કી" - "કોઈ વૉઇસ ઇનપુટ પદ્ધતિઓ સક્ષમ કરેલ નથી. ભાષા & ઇનપુટ સેટિંગ્સને ચેક કરો." - "ઇનપુટ પદ્ધતિઓ ગોઠવો" - "ભાષાઓ" - "સહાય અને પ્રતિસાદ" - "ભાષાઓ" - "સાચવવા માટે ફરી ટચ કરો" - "સાચવવા માટે અહીં ટચ કરો" - "શબ્દકોશ ઉપલબ્ધ છે" - "કીબોર્ડ થીમ" - "એકાઉન્ટ્સ સ્વિચ કરો" - "કોઈ એકાઉન્ટ પસંદ કરેલ નથી" - "હાલમાં %1$s વાપરી રહ્યાં છે" - "ઑકે" - "રદ કરો" - "સાઇન આઉટ કરો" - "વાપરવા માટે એક એકાઉન્ટ પસંદ કરો" - "અંગ્રેજી (યુકે)" - "અંગ્રેજી (યુ એસ)" - "સ્પેનિશ (US)" - "હિંગ્લિશ" - "સર્બિયન (લેટિન)" - "અંગ્રેજી (યુકે) (%s)" - "અંગ્રેજી (યુએસ) (%s)" - "સ્પેનિશ (યુએસ) (%s)" - "હિંગ્લિશ (%s)" - "સર્બિયન (%s)" - "%s (પરંપરાગત)" - "%s (કોમ્પેક્ટ)" - "ભાષા નથી (આલ્ફાબેટ)" - "આલ્ફાબેટ (QWERTY)" - "આલ્ફાબેટ (QWERTZ)" - "આલ્ફાબેટ (AZERTY)" - "આલ્ફાબેટ (Dvorak)" - "આલ્ફાબેટ (Colemak)" - "આલ્ફાબેટ (PC)" - "ઇમોજી" - "કીબોર્ડ થીમ" - "કસ્ટમ ઇનપુટ શૈલીઓ" - "શૈલી ઉમેરો" - "ઉમેરો" - "દૂર કરો" - "સાચવો" - "ભાષા" - "લેઆઉટ" - "તમારી કસ્ટમ ઇનપુટ શૈલી તમે તેનો ઉપયોગ કરવાનું શરૂ કરો તે પહેલા સક્ષમ કરવાની જરૂર છે. શું તમે તેને સક્ષમ કરવા માંગો છો?" - "સક્ષમ કરો" - "હમણાં નહીં" - "સમાન ઇનપુટ શૈલી પહેલાથી જ અસ્તિત્વમાં છે: %s" - "કીપ્રેસ વાઇબ્રેશન અવધિ" - "કીપ્રેસ ધ્વનિ વોલ્યુમ" - "લાંબા કી પ્રેસનો વિલંબ" - "ડિફોલ્ટ" - "%s પર સ્વાગત છે" - "હાવભાવથી ટાઇપિંગ દ્વારા" - "પ્રારંભ કરો" - "આગલું પગલું" - "%s સેટ કરી રહ્યું છે" - "%s સક્ષમ કરો" - "કૃપા કરીને \"%s\" ને તમારી ભાષા & ઇનપુટ સેટિંગ્સમાં તપાસો. આ તેને તમારા ઉપકરણ પર ચાલવા માટે અધિકૃત કરશે." - "%s એ તમારી ભાષા& ઇનપુટ સેટિંગ્સમાં પહેલાથી જ સક્ષમ કરેલું છે, તેથી આ પગલું પૂર્ણ થયું. હવે આગલા પર!" - "સેટિંગ્સમાં સક્ષમ કરો" - "%s પર સ્વિચ કરો" - "આગલું, \"%s\" ને તમારા સક્રિય ટેક્સ્ટ-ઇનપુટ પદ્ધતિ તરીકે પસંદ કરો." - "ઇનપુટ પદ્ધતિઓ પર સ્વિચ કરો" - "અભિનંદન, તમે બધું સેટ કર્યું છે!" - "હવે તમે તમારી મનપસંદ એપ્લિકેશન્સમાં %s થી ટાઇપ કરી શકો છો." - "વધારાની ભાષાઓ ગોઠવો" - "સમાપ્ત થયું" - "એપ્લિકેશન આયકન દર્શાવો" - "લોંચરમાં એપ્લિકેશન આયકન પ્રદર્શિત કરો" - "શબ્દકોશ પ્રદાતા" - "શબ્દકોશ પ્રદાતા" - "શબ્દકોશ સેવા" - "શબ્દકોશ અપડેટ માહિતી" - "એડ-ઓન શબ્દકોશ" - "શબ્દકોશ ઉપલબ્ધ છે" - "શબ્દકોશો માટેની સેટિંગ્સ" - "વપરાશકર્તા શબ્દકોશ" - "વપરાશકર્તા શબ્દકોશ" - "શબ્દકોશ ઉપલબ્ધ છે" - "હાલમાં ડાઉનલોડ કરી રહ્યું છે" - "ઇન્સ્ટોલ કરેલું" - "ઇન્સ્ટોલ કર્યું, અક્ષમ કર્યું" - "શબ્દકોશ સેવા સાથે કનેક્ટ થવામાં સમસ્યા" - "કોઈ શબ્દકોશ ઉપલબ્ધ નથી" - "તાજું કરો" - "છેલ્લે અપડેટ કર્યું" - "અપડેટ્સ માટે તપાસી રહ્યું છે" - "લોડ કરી રહ્યું છે..." - "મુખ્ય શબ્દકોશ" - "રદ કરો" - "સેટિંગ્સ" - "ઇન્સ્ટોલ કરો" - "રદ કરો" - "કાઢી નાખો" - "તમારા મોબાઇલ સાધન પર પસંદ કરેલ ભાષા પાસે એક શબ્દકોશ ઉપલબ્ધ છે.<br/> અમે તમને તમારા લખાણ અનુભવને બહેતર બનાવવા માટે %1$s શબ્દકોશ <b>ડાઉનલોડ કરવાની</b> ભલામણ કરીએ છીએ.<br/> <br/> 3G પર ડાઉનલોડમાં એક કે બે મિનિટનો સમય લાગશે. જો તમારી પાસે <b>અસીમિત ડેટા પ્લાન</b> ન હોય તો શુલ્ક લાગી શકે છે.<br/> જો તમે સુનિશ્ચિત ન હોવ કે તમારી પાસે કયો ડેટા પ્લાન છે, તો અમે ડાઉનલોડ આપમેળે પ્રારંભ કરવા માટે એક Wi-Fi કનેક્શન શોધવાની ભલામણ કરીએ છીએ.<br/> <br/> ટીપ: તમે તમારા મોબાઇલ સાધનનાં મેનૂમાં <b>સેટિંગ્સ</b>માંના <b>ભાષા & ઇનપુટ</b> પર જઈને શબ્દકોશ ડાઉનલોડ કરી શકો છો અને દૂર કરી શકો છો." - "હમણાં ડાઉનલોડ કરો (%1$.1fMB)" - "Wi-Fi પર ડાઉનલોડ કરો" - "%1$s માટે એક શબ્દકોશ ઉપલબ્ધ છે" - "સમીક્ષા કરવા અને ડાઉનલોડ કરવા માટે દબાવો" - "ડાઉનલોડ કરી રહ્યું છે: %1$s માટેનાં સૂચનો ટૂંક સમયમાં તૈયાર હશે." - "સંસ્કરણ %1$s" - "ઉમેરો" - "શબ્દકોષમાં ઉમેરો" - "શબ્દસમૂહ" - "વધુ વિકલ્પો" - "ઓછા વિકલ્પો" - "ઑકે" - "શબ્દ:" - "શોર્ટકટ:" - "ભાષા:" - "એક શબ્દ લખો" - "વૈકલ્પિક શોર્ટકટ" - "શબ્દ સંપાદિત કરો" - "સંપાદિત કરો" - "કાઢી નાખો" - "તમારી પાસે વપરાશકર્તા શબ્દકોશમાંનાં કોઈપણ શબ્દ નથી. ઉમેરો (+) બટન ટચ કરીને એક શબ્દ ઉમેરો." - "તમામ" - "વધુ ભાષાઓ…" - "કાઢી નાખો" - " [અ આ ઇ ઈ ઉ ઊ ઋ એ ઐ ઓ ઔ ક ખ ગ ઘ ઙ ચ છ જ ઝ ઞ ટ ઠ ડ ઢ ણ ત થ દ ધ ન પ ફ બ ભ મ ય ર લ વ શ ષ સ હ ળ]" - diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml index b97d55993..a92567032 100644 --- a/java/res/values-hi/strings.xml +++ b/java/res/values-hi/strings.xml @@ -137,6 +137,8 @@ "कुंजी-स्पर्श कंपन अवधि" "कुंजी-स्पर्श ध्वनि आवाज़" "कुंजी को देर तक दबाने का विलंब" + "भौतिक कीबोर्ड के लिए इमोजी" + "भौतिक Alt कुंजी इमोजी पैलेट दिखाती है" "सामान्य" "%s में आपका स्वागत है" "हावभाव लेखन के साथ" diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index db4c24ee6..28c14f018 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -25,7 +25,7 @@ "Provjera pravopisa upotrebljava unose iz vašeg popisa kontakata" "Vibracija pri pritisku na tipku" "Zvuk pri pritisku tipke" - "Povećanja na pritisak tipke" + "Povećani font na pritisak tipke" "Postavke" "Računi i privatnost" "Izgled i rasporedi" @@ -50,13 +50,13 @@ "Tipka za prebacivanje jezika pokriva i druge načine unosa" "Tipka za izmjenjivanje jezika" "Prikaži kada je omogućen unos na više jezika" - "Odgoda prikaza tipki" + "Odgoda odbac. poveć. fonta" "Bez odgode" "Zadano" "%s ms" "Zadano sustavom" "Predlaži imena kontakata" - "Upotreba imena iz Kontakata za prijedloge i ispravke" + "Koristi imena iz Kontakata za prijedloge i ispravke" "Prilagođeni prijedlozi" "Poboljšaj aplikaciju %s" "Točka s dva razmaka" @@ -64,7 +64,7 @@ "Automatsko pisanje velikih slova" "Napiši velikim slovom prvu riječ svake rečenice" "Osobni rječnik" - "Rječnici-dodaci" + "Rječnici kao dodaci" "Glavni rječnik" "Pokaži prijedloge ispravka" "Prikazivanje predloženih riječi prilikom upisivanja" @@ -83,8 +83,8 @@ "Prikaži trag pokreta" "Dinamički plutajući pregled" "Vidi predloženu riječ tijekom pokreta" - "Pokret fraze" - "Umećite razmake tijekom izvođenja pokreta klizeći do razmaknice" + "Unos izraza kretnjom" + "Umećite razmake tijekom izvođenja kretnji kliznuvši prema razmaknici" "Tipka za glasovni unos" "Nije omogućen nijedan način glasovnog unosa. Provjerite postavke jezika i unosa." "Konfiguriraj načine ulaza" @@ -115,9 +115,9 @@ "%s (tradicionalni)" "%s (kompaktna)" "Nema jezika (abeceda)" - "Abeceda (QWERTY)" - "Abeceda (QWERTZ)" - "Abeceda (AZERTY)" + "abeceda (QWERTY)" + "abeceda (QWERTZ)" + "abeceda (AZERTY)" "Abeceda (Dvorak)" "Abeceda (Colemak)" "Abeceda (PC)" @@ -137,6 +137,8 @@ "Trajanje vibracije pritiska" "Glasnoća pritiska tipke" "Odgoda dugog pritiska tipke" + "Emoji za fizičku tipkovnicu" + "Fizička tipka Alt prikazuje paletu emojija" "Zadano" "Dobro došli u aplikaciju %s" "s Pisanjem kretnjama" @@ -160,7 +162,7 @@ "Davatelj rječnika" "Usluga rječnika" "Ažurirane informacije rječnika" - "Rječnici dodaci" + "Rječnici kao dodaci" "Dostupan je rječnik" "Postavke za rječnike" "Korisnički rječnici" @@ -202,7 +204,7 @@ "Uređivanje riječi" "Uređivanje" "Brisanje" - "Nemate nijednu riječ u korisničkom rječniku. Riječ možete dodati dodirom na gumb Dodaj (+)." + "Nemate nijednu riječ u korisničkom rječniku. Riječ možete dodati tako da dodirnete Dodaj (+)." "Za sve jezike" "Više jezika…" "Izbriši" diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index ae2fa476f..d897772a1 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -71,7 +71,7 @@ "Sértő szavak kizárása" "Ne javasoljon esetlegesen sértő szavakat" "Automatikus javítás" - "Szóköz és központozás automatikusan javítja az elgépelést" + "A szóköz és központozás automatikusan javítja az elgépelést" "Ki" "Mérsékelt" "Agresszív" @@ -137,6 +137,8 @@ "Gombnyomás rezgési időtartama" "Gombnyomás hangereje" "Hosszú nyomás késleltetése" + "Hangulatjelek listája" + "Az Alt billentyű lenyomásával megjelenik a hangultjelek listája" "Alapértelmezett" "Üdvözli a(z) %s!" "kézmozdulatokkal történő bevitellel" diff --git a/java/res/values-hy-rAM/strings-emoji-descriptions.xml b/java/res/values-hy-rAM/strings-emoji-descriptions.xml index 7339db654..dcc718e22 100644 --- a/java/res/values-hy-rAM/strings-emoji-descriptions.xml +++ b/java/res/values-hy-rAM/strings-emoji-descriptions.xml @@ -552,8 +552,8 @@ "Ճկուն սկավառակ" "Օպտիկական սկավառակ" "DVD" - "Ֆայլերի պանակ" - "Ֆայլերի բաց պանակ" + "Ֆայլերի թղթապանակ" + "Ֆայլերի բաց թղթապանակ" "Ոլորված ծայրով էջ" "Թեքված էջ" "Օրացույց" diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml index 01a73d78c..4d0eb005a 100644 --- a/java/res/values-hy-rAM/strings.xml +++ b/java/res/values-hy-rAM/strings.xml @@ -137,6 +137,8 @@ "Սեղմման թրթռոցի տևողություն" "Սեղմման ձայնի բարձրությունը" "Ստեղնի երկար սեղմման ուշացում" + "Ֆիզիկական ստեղնաշարի զմայլիկ" + "Alt ստեղնը ցուցադրում է զմայլիկների պնակը" "Լռելյայնը" "Բարի գալուստ %s" "Ժեստային մուտքագրմամբ" diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index f1ea8a421..e57e545b7 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -34,7 +34,7 @@ "Lanjutan" "Tema" "Aktifkan keyboard terpisah" - "Sinkronisasi Keyboard Google" + "Sinkronisasi Google Keyboard" "Sinkronisasi diaktifkan" "Menyinkronkan kamus pribadi di perangkat" "Sinkronkan sekarang" @@ -137,6 +137,8 @@ "Durasi getar saat tekan tombol" "Volume suara saat tekan tombol" "Penundaan tekan lama tombol" + "Emoji untuk keyboard fisik" + "Tombol Alt fisik menampilkan palet emoji" "Default" "Selamat datang di %s" "dengan Ketikan Isyarat" diff --git a/java/res/values-is-rIS/strings.xml b/java/res/values-is-rIS/strings.xml index 638b715ba..d697df8a4 100644 --- a/java/res/values-is-rIS/strings.xml +++ b/java/res/values-is-rIS/strings.xml @@ -137,6 +137,8 @@ "Lengd lyklatitrings" "Styrkur lyklahljóða" "Töf áður en lykli er haldið inni" + "Emoji fyrir vélbúnaðarlyklaborð" + "Alt-lykillinn á lyklaborðinu birtir töflu yfir emoji-tákn" "Sjálfgefið" "Velkomin(n) í %s" "með bendingainnslætti" diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml index aa4ba4efc..320b775ee 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -25,7 +25,7 @@ "La funzione di controllo ortografico usa voci dell\'elenco contatti" "Vibrazione tasti" "Suono tasti" - "Popup sui tasti" + "Popup tasti" "Preferenze" "Account e privacy" "Aspetto e layout" @@ -54,7 +54,7 @@ "Nessun ritardo" "Predefinito" "%s ms" - "Predefinito sistema" + "Predefinito" "Suggerisci nomi di contatti" "Utilizza nomi di Contatti per suggerimenti e correzioni" "Suggerimenti personalizz." @@ -78,9 +78,9 @@ "Massima" "Suggerimenti parola successiva" "Usa la parola precedente per i suggerimenti" - "Abilita digitazione a gesti" + "Attiva digitazione gestuale" "Inserisci una parola scorrendo tra le lettere" - "Mostra traccia con gesto" + "Mostra traccia del gesto" "Anteprima mobile dinamica" "Visualizza la parola suggerita durante il gesto" "Gesto frase" @@ -134,9 +134,11 @@ "Attiva" "Non ora" "Esiste già uno stile di inuput uguale: %s" - "Durata vibraz. pressione tasto" + "Durata vibrazione pressione tasto" "Volume audio a pressione tasto" "Ritardo pressione lunga tasti" + "Emoji per tastiera fisica" + "Il tasto fisico ALT consente di mostrare il riquadro di emoji" "Predefinito" "Benvenuto in %s" "con la Digitazione gestuale" diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index eb84024bf..e56abb197 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -61,14 +61,14 @@ "שפר את %s" "רווח כפול לנקודה" "הקשה פעמיים על מקש הרווח מזינה נקודה ואחריה רווח" - "הפיכת אותיות לרישיות באופן אוטומטי" + "אותיות רישיות באופן אוטומטי" "השתמש באות גדולה במילה הראשונה של כל משפט" "מילון אישי" "תוספי מילונים" "מילון ראשי" "הצג הצעות לתיקונים" "הצג הצעות למילים בעת הקלדה" - "חסום מילים פוגעניות" + "חסימת מילים פוגעניות" "אל תציע מילים שעלולות להיות פוגעניות" "תיקון אוטומטי" "מקש הרווח ופיסוק מתקנים אוטומטית שגיאות הקלדה" @@ -80,7 +80,7 @@ "השתמש במילה הקודמת ביצירת הצעות" "אפשר הקלדה ללא הרמת אצבע" "הזן מילה על ידי החלקת האצבע מאות לאות" - "הצג שובל תנועות" + "הצגת שובל תנועות" "תצוגה צפה דינמית" "ראה את המילה המוצעת תוך כדי הזזת האצבע" "הקלדת משפט בהחלקה" @@ -130,13 +130,15 @@ "שמור" "שפה" "פריסה" - "יש להפעיל את סגנון הקלט המותאם אישית לפני שתוכל להשתמש בו. האם אתה רוצה להפעיל אותו עכשיו?" + "יש להפעיל את סגנון הקלט המותאם אישית לפני שתוכל להשתמש בו. האם ברצונך להפעיל אותו עכשיו?" "הפעל" "לא עכשיו" "סגנון קלט זהה כבר קיים: %s" "משך רטט של לחיצת מקש" "עוצמת קול של לחיצת מקש" "השהיית לחיצה ארוכה על מקש" + "אמוג\'י בשביל מקלדת פיזית" + "‏מקש Alt הפיזי מציג את לוח סמלי האמוג\'י" "ברירת מחדל" "ברוך הבא אל %s" "עם הקלדת החלקה" diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 275e345d3..e40828828 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -56,7 +56,7 @@ "%sミリ秒" "システムのデフォルト" "連絡先の名前を候補に表示" - "連絡先の名前を使用して候補表示や自動修正を行います" + "連絡先の名前を使用して候補表示や自動修正を行う" "入力候補のカスタマイズ" "%sを改善" "ダブルスペースピリオド" @@ -77,7 +77,7 @@ "強" "最も強い" "次の入力候補" - "前の単語に基づいて入力候補を表示します" + "前の単語に基づいて入力候補を表示する" "ジェスチャー入力を有効にする" "文字間をスライドして単語を入力できます" "ジェスチャートレイルを表示" @@ -137,6 +137,8 @@ "キー操作バイブの振動時間" "キー操作音の音量" "キーの長押し時間" + "物理キーボードの絵文字" + "物理Altキーによって絵文字パレットが表示されます" "デフォルト" "%sへようこそ" "新しいジェスチャー入力をお試しください" diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml index b0921e9d8..b7a8556f0 100644 --- a/java/res/values-ka-rGE/strings.xml +++ b/java/res/values-ka-rGE/strings.xml @@ -137,6 +137,8 @@ "კლავიშზე დაჭერის ვიბრაციის ხანგრძლივობა" "კლავიშზე დაჭერის ხმა" "კლავიშზე გრძელი დაჭერის დაყოვნება" + "სიცილაკები ფიზიკური კლავიატურისთვის" + "ფიზიკური ღილაკი Alt აჩვენებს სიცილაკების პალიტრას" "ნაგულისხმევი" "კეთილი იყოს თქვენი მობრძანება %s-ში" "ჟესტებით წერით" diff --git a/java/res/values-kk-rKZ/strings.xml b/java/res/values-kk-rKZ/strings.xml index 273074493..c72816311 100644 --- a/java/res/values-kk-rKZ/strings.xml +++ b/java/res/values-kk-rKZ/strings.xml @@ -137,6 +137,8 @@ "Пернені басқан кездегі діріл ұзақтығы" "Пернені басқан кездегі дыбыс деңгейі" "Пернені ұзақ басу кідірісі" + "Қатты пернетақтадан енгізілетін эмодзи" + "Alt пернесі арқылы эмодзилерді ашуға болады" "Әдепкі" "%s қолданбасына қош келдіңіз" "Қимылмен теру арқылы" diff --git a/java/res/values-km-rKH/strings-emoji-descriptions.xml b/java/res/values-km-rKH/strings-emoji-descriptions.xml index e9b8780a5..aca04fc4d 100644 --- a/java/res/values-km-rKH/strings-emoji-descriptions.xml +++ b/java/res/values-km-rKH/strings-emoji-descriptions.xml @@ -25,16 +25,16 @@ - "សញ្ញា​រក្សា​សិទ្ធ​" + "សញ្ញា​រក្សា​សិទ្ធ" "សញ្ញា​​​ចុះ​បញ្ជី" "សញ្ញា​ឧទាន​​ពីរ" - "សញ្ញា​​ឧទាន​សញ្ញា​សួរ​​" + "សញ្ញា​​ឧទាន​សញ្ញា​សួរ" "សញ្ញា​​​និក្ខិត្តសញ្ញា" "ប្រភព​ព័ត៌មាន" "ព្រួញ​ឆ្វេងស្ដាំ" "ព្រួញ​ឡើង​លើ​ចុះក្រោម" "ព្រួញ​ទិសពាយព្យ" - "ព្រួញ​​ទិស​ឥសាន្ត​ឦសាន្ត​" + "ព្រួញ​​ទិស​ឥសាន្ត​ឦសាន្ត" "ព្រួញ​​ទិស​អាគ្នេយ៍" "ព្រួញ​​ទិស​និរតី" "ព្រួញ​ទៅ​ឆ្វេង​មាន​ទំពក់" @@ -45,7 +45,7 @@ "ត្រីកោណ​ខ្មៅ​ពីរ​ចង្អុល​ទៅ​ឆ្វេង" "ត្រីកោណ​ខ្មៅ​ពីរ​ចង្អុល​​ឡើង​លើ" "ត្រីកោណ​ខ្មៅ​ពីរ​ចង្អុល​​ចុះក្រោម" - "នាឡិកា​រោទ៍​" + "នាឡិកា​រោទ៍" "កែវ​ពិសោធន៍​មាន​ខ្សាច់ហូរ" "អក្សរ​អឹម​ធំ​ក្នុង​រង្វង់" "ការ៉េ​តូច​​ពណ៌ខ្មៅ" @@ -195,7 +195,7 @@ "ព្រះ​ចន្ទ​មួយ​ចំណិត​ស្ដាំ" "ព្រះ​ចន្ទ​ពាក់​កណ្ដាល" "ព្រះ​ចន្ទ​មួយ​ចំណិត​ឆ្វេង" - "ព្រះចន្ទ​ពេញ​វង់​" + "ព្រះចន្ទ​ពេញ​វង់" "ព្រះ​ចន្ទ​ភ្លឺ​មួយ​ចំហៀង" "ព្រះ​ចន្ទ​ភ្លឺ​ពាក់​កណ្ដាល" "ព្រះ​ចន្ទ​ភ្លឺ​មួយ​ចំណិត​ឆ្វេង" @@ -262,7 +262,7 @@ "នំ​ត្រី​រាង​មូល" "ការ៉េម​​បំពង់" "ការ៉េម​កែវ" - "ការ៉េម​" + "ការ៉េម" "ដូណាត់" "ខូគី" "​​សូកូឡា" @@ -280,7 +280,7 @@ "កែវ​ស្រា" "កែវ​ស្រា​ក្រឡុក" "ភេសជ្ជៈ​​​ត្រូពិក" - "កែវ​​ស្រាបៀ​" + "កែវ​​ស្រាបៀ" "ជល់​កែវ​ស្រាបៀ" "ដប​ទឹកដោះ​គោ" "ខ្សែ​បូ" @@ -313,7 +313,7 @@ "កាស" "ក្ដារ​លាយ​ពណ៌​វិចិត្រករ" "មួក​​​សម្ដែង​សិល្បៈ" - "តង់​សៀក​" + "តង់​សៀក" "សំបុត្រ" "បន្ទះកណ្ដឹង" "សម្ដែង​សិល្បៈ" @@ -334,10 +334,10 @@ "និមិត្តសញ្ញា​តន្ត្រី" "អាវ​កីឡា​​មាន​ខ្សែ​ឆៀង" "រ៉ាកែត និង​បាល់" - "ជិះ​ស្គី ​និង​ក្ដារ​​ស្គី​" + "ជិះ​ស្គី ​និង​ក្ដារ​​ស្គី" "បាល់​បោះ​ និង​វណ្ណ​មូល" "ទង់ជាតិ​ប្រណាំង​ម៉ូតូ" - "អ្នក​ជិះ​​ក្ដារ​រំអិល​លើ​ព្រិល​" + "អ្នក​ជិះ​​ក្ដារ​រំអិល​លើ​ព្រិល" "អ្នក​រត់" "អ្នក​ជិះ​ទូក​រអិល​លើ​ទឹក" "ពាន​រង្វាន់" @@ -354,7 +354,7 @@ "ធនាគារ" "ម៉ាស៊ីន​​អេធីអឹម" "សណ្ឋាគារ" - "សណ្ឋាគារ​ក្ដី​ស្រឡាញ់​" + "សណ្ឋាគារ​ក្ដី​ស្រឡាញ់" "ហាង​​ទំនិញ ២៤​ម៉ោង" "សាលារៀន" "ហាង​​ទំនិញធំៗ" @@ -439,12 +439,12 @@ "​មេដៃ​ឡើង​លើ" "​មេដៃ​ចុះ​ក្រោម" "ទះ​ដៃ" - "លា​ដៃ​" + "លា​ដៃ" "មកុដ" "មួក​​ស្ត្រី" "វ៉ែនតា" - "ក្រ​វ៉ាត់​ករ​" - "អាវ​យឺត​​" + "ក្រ​វ៉ាត់​ករ" + "អាវ​យឺត" "ខោ​ខោវប៊យ" "សំលៀក​បំពាក់" "គី​ម៉ូណូ" @@ -463,8 +463,8 @@ "គណនី" "ក្មេង​​ប្រុស" "ក្មេង​ស្រី" - "បុរស​" - "ស្ត្រី​" + "បុរស" + "ស្ត្រី" "គ្រួសារ" "បុរស​​ និង​ស្ត្រី​កាន់ដៃ​គ្នា" "បុរស​ពីរ​នាក់​កាន់​ដៃ​គ្នា" @@ -490,16 +490,16 @@ "លលាដ៍​ក្បាល" "អ្នក​ផ្ដល់​ព័ត៌មាន" "អ្នក​យាម" - "អ្នក​រាំ​" + "អ្នក​រាំ" "ក្រេម​លាប​បបូរ​មាត់" "ថ្នាំ​លាប​​​ក្រចក" "ម៉ាស្សា​មុខ" "កាត់សក់" "ស្លាក​សញ្ញា​កាត់សក់" "ស៊ីរ៉ាំង" - "ថ្នាំ​គ្រាប់​" + "ថ្នាំ​គ្រាប់" "ស្នាម​ថើប" - "លិខិត​ស្នេហា​" + "លិខិត​ស្នេហា" "រោទ៍" "ត្បូង​ថ្ម" "ថើប" @@ -525,7 +525,7 @@ "គ្រាប់បែក" "និមិត្ត​សញ្ញា​​ដេក" "និមិត្ត​សញ្ញា​​ប៉ះ​ទង្គិច​គ្នា" - "និមិត្ត​សញ្ញា​​ស្រក់​ញើស​" + "និមិត្ត​សញ្ញា​​ស្រក់​ញើស" "ដំណក់​ទឹក" "និមិត្ត​សញ្ញា​​ដកឃ្លា" "គំនរ​ធូលី" @@ -539,7 +539,7 @@ "ប្ដូរ​​រូបិយប័ណ្ណ" "សញ្ញា​ដុល្លារ" "កាត​​ឥណទាន" - "ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​​យ៉េន​​" + "ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​​យ៉េន" "លុយដុល្លារ" "ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​អឺរ៉ូ" "ក្រដាស​ប្រាក់​​ធនាគារ​មាន​សញ្ញា​​​ផោន" @@ -547,7 +547,7 @@ "ក្រាហ្វិក​និន្នាការ​ឡើង​​មាន​​សញ្ញា​យ៉េន" "កៅអី" "កុំព្យូទ័រ​ផ្ទាល់ខ្លួន" - "វ៉ា​លី​" + "វ៉ា​លី" "ឌីស​​តូច" "ថា​ស​​ទន់" "ថាស" @@ -557,7 +557,7 @@ "ទំព័រ​​កោង" "ទំព័រ​បញ្ឈរ" "ប្រតិទិន" - "ហែក​ប្រតិទិន​" + "ហែក​ប្រតិទិន" "​កាត​រៀប​តាម​អក្សរ" "ក្រាហ្វិក​មាន​និន្នាការ​ឡើង" "ក្រាហ្វិក​មាន​និន្នាការ​ចុះ" @@ -573,11 +573,11 @@ "សៀវភៅ" "សៀវភៅ​មាន​ក្រប​ពណ៌" "សៀវភៅ​​បិទ" - "សៀវភៅ​បើក​​" + "សៀវភៅ​បើក" "សៀវភៅ​​ពណ៌​បៃតង" "សៀវភៅ​​ពណ៌​ខៀវ" "សៀវភៅ​​ពណ៌​ទឹកក្រូច" - "សៀវភៅ​" + "សៀវភៅ" "ស្លាកឈ្មោះ" "ក្រដាស​រមូរ" "កំណត់ចំណាំ" @@ -589,7 +589,7 @@ "ឧបករណ៍​បំពង​សំឡេង" "ថា​ស​​​ចេញ" "ថា​ស​ចូល" - "កញ្ចប់​" + "កញ្ចប់" "និមិត្ត​សញ្ញា​អ៊ីមែល" "ស្រោម​​សំបុត្រ​ចូល" "ស្រោម​សំបុត្រ​​មាន​សញ្ញា​ព្រួញ​ពី​លើ" @@ -626,7 +626,7 @@ "ដុយ​អគ្គិសនី" "កែវ​ពង្រីក​ចង្អុល​ខាង​ឆ្វេង" "កែវ​ពង្រីក​ចង្អុល​ខាង​ស្ដាំ" - "ចាក់សោ​​​ដោយ​ប្រើ​​ប៊ិច​" + "ចាក់សោ​​​ដោយ​ប្រើ​​ប៊ិច" "បិទ​​សោ​ដោយ​ប្រើ​​​​កូនសោ" "សោ" "ចាក់សោ" @@ -645,15 +645,15 @@ "គ្រាប់​ចុច​ ១០" "និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​អក្សរ​ឡាតាំង​ធំ" "និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​អក្សរ​ឡាតាំង​តូច" - "និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​​លេខ​" + "និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​​លេខ" "ការ​បញ្ចូល​និមិត្តសញ្ញា" "និមិត្ត​សញ្ញា​បញ្ចូល​សម្រាប់​អក្សរ​ឡាតាំង" "ភ្លើង" "ពិល​​អគ្គិសនី" "ម៉ាឡេត" "ញញួរ" - "ឡោ​ស៊ី​​" - "កាំបិត​​" + "ឡោ​ស៊ី" + "កាំបិត" "កាំភ្លើង​ខ្លី" "មីក្រូទស្សន៍" "កែវ​យឹត" @@ -662,7 +662,7 @@ "និមិត្តសញ្ញា​ជប៉ុន​សម្រាប់​អ្នក​ចាប់ផ្ដើម" "លំពែង​មុខ​បី" "ប៊ូតុង​ការេ​ពណ៌​ខ្មៅ" - "ប៊ូតុង​ការ៉េ​ពណ៌​ស​" + "ប៊ូតុង​ការ៉េ​ពណ៌​ស" "រង្វង់​ពណ៌​ក្រហម​​​ធំ" "រង្វង់​ពណ៌​ខៀវ​ធំ" "ពេជ្រ​ពណ៌​ទឹកក្រូច​ធំ" @@ -745,8 +745,8 @@ "មុខ​ភ័យ​ខ្លាច" "មុខ​​នឿយហត់" "មុខ​​ងងុយ​គេង" - "មុខ​អស់កម្លាំង​​" - "មុខ​ក្រញេវក្រញូវ​" + "មុខ​អស់កម្លាំង" + "មុខ​ក្រញេវក្រញូវ" "មុខ​យំ​លឺៗ" "មុខ​បើក​មាត់" "មុខ​ស្ងៀមស្ងាត់" @@ -784,7 +784,7 @@ "ទូរ​​រថភ្លើង" "រថភ្លើង​ល្បឿន​លឿន" "រថភ្លើង​ល្បឿន​លឿន​​មាន​ច្រមុះ" - "រថភ្លើង​" + "រថភ្លើង" "មេត្រូ" "រថភ្លើង​ប្រើ​​​ពន្លឺ" "ស្ថានីយ" @@ -803,7 +803,7 @@ "តាក់ស៊ី​ខាង​មុខ" "រថយន្ត" "រថយន្ត​ខាង​មុខ" - "រថយន្ត​​​សម្រាប់​កម្សាន្ត​" + "រថយន្ត​​​សម្រាប់​កម្សាន្ត" "រថយន្ត​​ចែក​ចាយ" "ឡាន​កាមីយ៉ុង" "ត្រាក់ទ័រ" @@ -819,7 +819,7 @@ "ភ្លើង​ចរាចរណ៍​បញ្ឈរ" "សញ្ញា​​សំណង់" "រថយន្ត​​ប៉ូលិស​បើក​សារ៉ែន​វិល" - "បង្គោល​ទង់ជាតិ​រាង​ត្រីកោណ​" + "បង្គោល​ទង់ជាតិ​រាង​ត្រីកោណ" "ទ្វារ" "សញ្ញា​ហាម​ចូល" "​សញ្ញា​ជក់​បារី" diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml index da5233ec4..d6956aec6 100644 --- a/java/res/values-km-rKH/strings.xml +++ b/java/res/values-km-rKH/strings.xml @@ -137,6 +137,8 @@ "ថិរវេលា​​ញ័រ​​ពេល​ចុច​គ្រាប់ចុច" "កម្រិត​សំឡេង​ពេល​ចុច​គ្រាប់​ចុច" "ពន្យារពេល​​​ចុច​គ្រាប់​ចុច​ឲ្យ​​យូរ" + "សញ្ញាអារម្មណ៍សម្រាប់ក្តារចុចពិតប្រាកដ" + "គ្រាប់ចុច Alt បង្ហាញផ្ទាំងសញ្ញាអារម្មណ៍" "លំនាំដើម" "សូម​ស្វាគមន៍​មក​កាន់ %s" "ជាមួយ​​​ការ​វាយ​បញ្ចូល​ដោយ​ប្រើ​​​កាយវិការ" diff --git a/java/res/values-kn-rIN/strings.xml b/java/res/values-kn-rIN/strings.xml index e14d92da9..cd7729312 100644 --- a/java/res/values-kn-rIN/strings.xml +++ b/java/res/values-kn-rIN/strings.xml @@ -24,9 +24,9 @@ "ಸಂಪರ್ಕ ಹೆಸರುಗಳನ್ನು ಹುಡುಕು" "ಕಾಗುಣಿತ ಪರೀಕ್ಷಕವು ನಿಮ್ಮ ಸಂಪರ್ಕ ಪಟ್ಟಿಯ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ" "ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ವೈಬ್ರೇಷನ್‌" - "ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ಶಬ್ದಮಾಡು" + "ಕೀ ಒತ್ತಿದಾಗ ಶಬ್ದಮಾಡು" "ಕೀ ಒತ್ತಿದಾಗ ಪಾಪ್ ಅಪ್‌ ಮಾಡು" - "ಆದ್ಯತೆಗಳು" + "ಪ್ರಾಶಸ್ತ್ಯಗಳು" "ಖಾತೆಗಳ ಗೌಪ್ಯತೆ" "ಗೋಚರತೆಯ ಲೇಔಟ್‌ಗಳ" "ಗೆಸ್ಚರ್ ಟೈಪಿಂಗ್" @@ -37,7 +37,7 @@ "Google ಕೀಬೋರ್ಡ್‌ ಸಿಂಕ್‌" "ಸಿಂಕ್‌ ಆನ್‌ ಆಗಿದೆ" "ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನಿಘಂಟನ್ನು ಸಾಧನಗಳಲ್ಲಿ ಸಿಂಕ್ ಮಾಡಿ" - "ಇದೀಗ ಸಿಂಕ್ ಮಾಡಿ" + "ಈಗ ಸಿಂಕ್ ಮಾಡು" "ಮೇಘ ಡೇಟಾವನ್ನು ಅಳಿಸಿ" "Google ನಿಂದ ನಿಮ್ಮ ಸಿಂಕ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ" "ನಿಮ್ಮ ಸಿಂಕ್‌ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಮೇಘದಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" @@ -138,6 +138,8 @@ "ಕೀಒತ್ತುವ ವೈಬ್ರೇಷನ್‌‌ ಅವಧಿ" "ಕೀಒತ್ತುವ ಶಬ್ದದ ವಾಲ್ಯೂಮ್" "ಕೀಯ ದೀರ್ಘ ಒತ್ತುವ ವಿಳಂಬ" + "ಭೌತಿಕ ಕೀಬೋರ್ಡ್‌ಗೆ ಎಮೋಜಿ" + "ಭೌತಿಕ Alt ಕೀ ಎಮೋಜಿ ಪ್ಯಾಲೆಟ್ ತೋರಿಸುತ್ತದೆ" "ಡೀಫಾಲ್ಟ್" "%s ಗೆ ಸುಸ್ವಾಗತ" "ಗೆಶ್ಚರ್ ಟೈಪಿಂಗ್‌ನೊಂದಿಗೆ" @@ -160,7 +162,7 @@ "ನಿಘಂಟು ಪೂರೈಕೆದಾರರು" "ನಿಘಂಟು ಪೂರೈಕೆದಾರರು" "ನಿಘಂಟು ಸೇವೆ" - "ನಿಘಂಟು ನವೀಕರಣ ಮಾಹಿತಿ" + "ನಿಘಂಟು ಅಪ್‌ಡೇಟ್‌‌ ಮಾಹಿತಿ" "ಆಡ್-ಆನ್ ನಿಘಂಟುಗಳು" "ನಿಘಂಟು ಲಭ್ಯವಿದೆ" "ನಿಘಂಟುಗಳಿಗಾಗಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು" diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index 22ad90b5d..fe6220391 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -137,6 +137,8 @@ "키를 누를 때 진동 시간" "키를 누를 때 소리 볼륨" "키 길게 누르기 지연" + "물리적 키보드용 그림 이모티콘" + "물리적 Alt 키로 그림 이모티콘 팔레트 표시" "기본값" "%s에 오신 것을 환영합니다." "제스처 타이핑 사용" diff --git a/java/res/values-ky-rKG/strings.xml b/java/res/values-ky-rKG/strings.xml index 7de6fc82d..3ef2b44e2 100644 --- a/java/res/values-ky-rKG/strings.xml +++ b/java/res/values-ky-rKG/strings.xml @@ -137,6 +137,8 @@ "Басылган баскычтын дирлдөө узактгы" "Басылган баскычтын үнүнүн катуулугу" "Баскычты көпкө басууну кечиктирүү" + "Тышкы тергич үчүн быйтыкчалар" + "Alt баскычы басылганда быйтыкчалар тактасы көрүнөт" "Демейки" "%s кош келиңиз" "Жаңсап терүү менен" diff --git a/java/res/values-lo-rLA/strings-emoji-descriptions.xml b/java/res/values-lo-rLA/strings-emoji-descriptions.xml index 335fc19f9..61845dafe 100644 --- a/java/res/values-lo-rLA/strings-emoji-descriptions.xml +++ b/java/res/values-lo-rLA/strings-emoji-descriptions.xml @@ -210,7 +210,7 @@ "​ລູກ​ເກົາ​ລັດ" "​ກ້າ​ໄມ້" "ຕົ້ນ​ໄມ້​ບໍ່​ຜັດ​ໃບ" - "​ຕົ້ນ​ໄມ້​ຜັດໃບ​" + "​ຕົ້ນ​ໄມ້​ຜັດໃບ" "​ຕົ້ນ​ປາມ" "​ກະ​ບອງ​ເພັດ" "​ທິວ​ລິບ" @@ -450,7 +450,7 @@ "​ກິ​ໂມ​ໂນ" "​ບິ​ກີ​ນີ" "​ເສື້ອ​ຜ້າ​ຜູ່​ຍິງ" - "ກະ​ເປົາ​" + "ກະ​ເປົາ" "ກະ​ເປົາ" "​ກະ​ເປົາ" "​ເກີບ​ຜູ່​ຊາຍ" diff --git a/java/res/values-lo-rLA/strings-letter-descriptions.xml b/java/res/values-lo-rLA/strings-letter-descriptions.xml index ecc0b7a71..47f7cbc81 100644 --- a/java/res/values-lo-rLA/strings-letter-descriptions.xml +++ b/java/res/values-lo-rLA/strings-letter-descriptions.xml @@ -186,7 +186,7 @@ "Right single quotation mark" "Single low-9 quotation mark" "​ເຄື່ອງ​ໝາຍ​ວົງ​ຢືມ​ຊ້າຍ" - "​ເຄື່ອງ​ໝາຍ​ວົງ​ຢືມ​ຂວາ​" + "​ເຄື່ອງ​ໝາຍ​ວົງ​ຢືມ​ຂວາ" "Dagger" "Double dagger" "​ເຄື່ອງ​ໝາຍ​ຕໍ່​ໄມລ໌" diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml index e421dcc2d..5f2d1c8ab 100644 --- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml +++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml @@ -66,7 +66,7 @@ "ເວລາ" "URL" "ຫາ​ກໍ​ໃຊ້" - "ຜູ່​ຄົນ" + "​ຄົນ" "​ວັດ​ຖຸ" "ທຳມະຊາດ" "ສະຖານທີ່" diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml index 3324cb36d..ed98fdaa4 100644 --- a/java/res/values-lo-rLA/strings.xml +++ b/java/res/values-lo-rLA/strings.xml @@ -137,6 +137,8 @@ "ໄລຍະເວລາຂອງການສັ່ນໃນການກົດປຸ່ມ" "ລະດັບສຽງຂອງການກົດປຸ່ມ" "ໄລຍະເວລາຂອງການກົດປຸ່ມ" + "Emoji ສຳ​ລັບ​ແປ້ນ​ພິມ​ແທ້" + "ປຸ່ມ Alt ແທ້​ສະ​ແດງ​ແຜ່ນ​ຮອງ emoji" "ຄ່າເລີ່ມຕົ້ນ" "ຍິນ​ດີ​ຕ້ອນ​ຮັບສູ່ %s" "ດ້ວຍການພິມແບບ Gesture" diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index b6160f17e..67be51efb 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -137,6 +137,8 @@ "Vibrav. paspaudus mygt. trukmė" "Garso paspaudus mygt. garsumas" "Klavišo ilgo paspaudimo delsa" + "Fizinės klaviatūros jaustukai" + "Paspaudus fizinį klavišą „Alt“ rodoma jaustukų paletė" "Numatytieji" "Sveiki! Tai „%s“" "naudojant įvestį gestais" diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index c169fa739..d4b682623 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -137,6 +137,8 @@ "Taust. nosp. vibrācijas ilgums" "Taustiņu nosp. skaņas skaļums" "Taustiņa ilgās nosp. noildze" + "Emocijzīmes fiziskajai tastatūrai" + "Nospiežot taustiņu Alt, tiek parādīta emocijzīmju palete." "Noklusējums" "Laipni lūdzam pakalpojumā %s," "kurā varat izmantot ievadi ar žestiem" diff --git a/java/res/values-mk-rMK/strings.xml b/java/res/values-mk-rMK/strings.xml index c14ca59c3..540a47871 100644 --- a/java/res/values-mk-rMK/strings.xml +++ b/java/res/values-mk-rMK/strings.xml @@ -137,6 +137,8 @@ "Траење на вибрација од копче" "Копче за јачина на звук" "Доцнење на долго притискање копче" + "Емотикони за физичка тастатура" + "Физичкото копче Alt ја прикажува палетата емотикони" "Стандардно" "Добре дојдовте во %s" "со Пишување со движење" diff --git a/java/res/values-ml-rIN/strings.xml b/java/res/values-ml-rIN/strings.xml index bed9e50ed..9a64111cc 100644 --- a/java/res/values-ml-rIN/strings.xml +++ b/java/res/values-ml-rIN/strings.xml @@ -24,14 +24,14 @@ "കോൺടാക്‌റ്റ് പേരുകൾ തിരയുക" "അക്ഷരത്തെറ്റ് പരിശോധന, നിങ്ങളുടെ കോൺടാക്‌റ്റ് ലിസ്‌റ്റിൽ നിന്നുള്ള എൻട്രികൾ ഉപയോഗിക്കുന്നു" "കീ അമർത്തുമ്പോൾ വൈബ്രേറ്റുചെയ്യുക" - "കീ അമർത്തുമ്പോഴുള്ള ശബ്‌ദമുണ്ടാക്കുക" - "കീ അമർത്തുമ്പോൾ പോപ്പ്അപ്പ് ചെയ്യുക" + "കീയമർത്തുമ്പോൾ ശബ്ദം" + "കീയമർത്തുമ്പോൾ പോപ്പപ്പ്" "മുൻഗണനകൾ" "അക്കൗണ്ടുകളും സമന്വയവും" "രൂപഭാവവും ലേഔട്ടുകളും" "ഗെസ്ചർ ടൈപ്പിംഗ്" "വാചകം തിരുത്തൽ" - "വിപുലമായ" + "വിപുലം" "തീം" "സ്‌പ്‌ലിറ്റ് കീബോർഡ് പ്രവർത്തനക്ഷമമാക്കുക" "Google കീബോർഡ് സമന്വയം" @@ -55,18 +55,18 @@ "സ്ഥിരമായത്" "%sമി.സെ" "സ്ഥിരമായ സിസ്റ്റം" - "കോൺടാക്‌റ്റ് പേരുകൾ നിർദ്ദേശിക്കുക" + "കോൺടാക്‌റ്റ് പേര് നിർദ്ദേശിക്കൂ" "നിർദ്ദേശങ്ങൾക്കും തിരുത്തലുകൾക്കുമായി കോൺടാക്‌റ്റുകളിൽ നിന്നുള്ള പേരുകൾ ഉപയോഗിക്കുക" "വ്യക്തിഗതമാക്കിയ നിർദ്ദേശങ്ങൾ" "%s മെച്ചപ്പെടുത്തുക" "ഇരട്ട-സ്പെയ്സ് വിരാമം" "സ്‌പെയ്‌സ് ബാറിൽ ഇരട്ട ടാപ്പുചെയ്യുന്നത്, ഒരു സ്‌പെയ്‌സിന് മുമ്പായി വിരാമം ഇടുന്നു" - "യാന്ത്രികമായി വലിയക്ഷരമാക്കൽ" + "സ്വയം വലിയക്ഷരമാക്കുക" "ഓരോ വാക്യത്തിന്റെയും ആദ്യ പദം വലിയക്ഷരമാക്കുക" "വ്യക്തിഗത നിഘണ്ടു" "ആഡ്-ഓൺ നിഘണ്ടുക്കൾ" "പ്രധാന നിഘണ്ടു" - "തിരുത്തൽ നിർദ്ദേശങ്ങൾ വായിക്കുക" + "തിരുത്തലുകൾ കാണിക്കുക" "ടൈപ്പുചെയ്യുമ്പോൾ നിർദ്ദേശിച്ച വാക്കുകൾ പ്രദർശിപ്പിക്കുക" "നിന്ദ്യമായ വാക്കുകൾ തടയുക" "നിന്ദ്യമാകാനിടയുള്ള വാക്കുകൾ നിർദ്ദേശിക്കരുത്" @@ -78,7 +78,7 @@ "വളരെ നിർബന്ധിതമായി" "അടുത്ത-പദ നിർദ്ദേശങ്ങൾ" "നിർദ്ദേശങ്ങൾ സൃഷ്‌ടിക്കാൻ മുമ്പത്തെ പദം ഉപയോഗിക്കുക" - "ജെസ്റ്റർ ടൈപ്പുചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക" + "ജെസ്റ്റർടൈപ്പിംഗ് സജീവമാക്കൂ" "അക്ഷരങ്ങളിലൂടെ സ്ലൈഡ് ചെയ്‌തുകൊണ്ട് ഒരു പദം ടൈപ്പുചെയ്യുക" "ജെസ്റ്റർ ട്രെയിൽ കാണിക്കുക" "ചലനാത്മക ഫ്ലോട്ടിംഗ് പ്രിവ്യൂ" @@ -137,6 +137,8 @@ "കീ അമർത്തുമ്പോഴുള്ള വൈബ്രേഷൻ ദൈർഘ്യം" "കീ അമർത്തുമ്പോഴുള്ള ശബ്‌ദ വോളിയം" "കീ ദീർഘനേരം അമർത്തിപ്പിടിക്കൽ കാലതാമസം" + "ഭൗതിക കീബോർഡിനുള്ള ഇമോജി" + "ഭൗതിക Alt കീ ഇമോജി പാലറ്റിനെ കാണിക്കുന്നു" "സ്ഥിരമായത്" "%s എന്നതിലേക്ക് സ്വാഗതം" "ജെസ്റ്റർ ടൈപ്പുചെയ്യലിനൊപ്പം" diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml index fa8c6d076..9c342b346 100644 --- a/java/res/values-mn-rMN/strings.xml +++ b/java/res/values-mn-rMN/strings.xml @@ -137,6 +137,8 @@ "Товч дарах чичиргээний хугацаа" "Товчны дууны хэмжээ" "Товч удаан дарах хугацааны тохиргоо" + "Бодит гарт зориулсан эможи" + "Бодит Alt товчлуур нь эможи палитрыг харуулдаг" "Үндсэн" "Та %s-д тавтай морилно уу" "Зангаагаар бичихээр" diff --git a/java/res/values-mr-rIN/strings.xml b/java/res/values-mr-rIN/strings.xml index 521fb2aa9..431269841 100644 --- a/java/res/values-mr-rIN/strings.xml +++ b/java/res/values-mr-rIN/strings.xml @@ -137,6 +137,8 @@ "कीप्रेस कंपन कालावधी" "कीप्रेस ध्वनी तीव्रता" "की जास्त दाबण्यात विलंब" + "वास्तविक कीबोर्डसाठी इमोजी" + "वास्तविक Alt की इमोजी पॅलेट दर्शविते" "डीफॉल्ट" "%s वर स्वागत आहे" "जेश्चर टायपिंग करून" diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml index 9f4c509c9..9919a2d5d 100644 --- a/java/res/values-ms-rMY/strings.xml +++ b/java/res/values-ms-rMY/strings.xml @@ -136,7 +136,9 @@ "The same input style already exists: %s" "Tempoh getaran tekan kekunci" "Kelantangan bunyi tekan kekunci" - "Kelewatan tekan lama kekunci" + "Lengah tekan lama kekunci" + "Emoji untuk papan kekunci fizikal" + "Kekunci Alt fizikal menunjukkan palet emoji" "Lalai" "Selamat datang ke %s" "dengan Taipan Gerak Isyarat" diff --git a/java/res/values-my-rMM/strings-action-keys.xml b/java/res/values-my-rMM/strings-action-keys.xml index d15c9e55e..f7a2ca9e1 100644 --- a/java/res/values-my-rMM/strings-action-keys.xml +++ b/java/res/values-my-rMM/strings-action-keys.xml @@ -27,5 +27,5 @@ "ပို့ရန်" "ရှာဖွေရန်" "ဆိုင်းငံ့ရန်" - "စောင့်ဆိုင်းရန်" + "စောင့်ဆိုင်းရန်" diff --git a/java/res/values-my-rMM/strings-letter-descriptions.xml b/java/res/values-my-rMM/strings-letter-descriptions.xml index 2d5338b86..d904f53f6 100644 --- a/java/res/values-my-rMM/strings-letter-descriptions.xml +++ b/java/res/values-my-rMM/strings-letter-descriptions.xml @@ -29,7 +29,7 @@ "ဣထိလိင် အစဉ်ပြ အညွှန်း" "မိုက်ခရို သင်္ကေတ" "ပုလိင် အစဉ်ပြ အညွှန်း" - "ပြတ်သားသည့် S" + "ပြတ်သားသည့် S" "A၊ တည်ငြိမ်သော" "A၊ စူးရှသော" "A၊ သရသံသင်္ကေတ" @@ -133,45 +133,45 @@ "Schwa" "A၊ အောက်မှာ အစက်" "A အပေါ်မှာ ချိတ်" - "A၊ သရသံသင်္ကေတ နှင့် စူးရှသော" - "A၊ သရသံသင်္ကေတ နှင့် တည်ငြိမ်သော" - "A၊ သရသံသင်္ကေတ နှင့် အပေါ်မှာ ချိတ်" - "A၊ သရသံသင်္ကေတ နှင့် tilde" - "A,၊ သရသံသင်္ကေတ နှင့် အောက်မှာ အစက်" - "A၊ တည်ငြိမ်သော နှင့် စူးရှသော" - "A၊ breve နှင့် တည်ငြိမ်သော" - "A၊ breve နှင့် အပေါ်မှာ ချိတ်" - "A၊ breve နှင့် tilde" - "A၊ breve နှင့် အောက်မှာ အစက်" + "A၊ သရသံသင်္ကေတ နှင့် စူးရှသော" + "A၊ သရသံသင်္ကေတ နှင့် တည်ငြိမ်သော" + "A၊ သရသံသင်္ကေတ နှင့် အပေါ်မှာ ချိတ်" + "A၊ သရသံသင်္ကေတ နှင့် tilde" + "A,၊ သရသံသင်္ကေတ နှင့် အောက်မှာ အစက်" + "A၊ တည်ငြိမ်သော နှင့် စူးရှသော" + "A၊ breve နှင့် တည်ငြိမ်သော" + "A၊ breve နှင့် အပေါ်မှာ ချိတ်" + "A၊ breve နှင့် tilde" + "A၊ breve နှင့် အောက်မှာ အစက်" "E၊ အောက်မှာ အစက်" "E၊ အပေါ်မှာ ချိတ်" "E၊ tilde" - "E၊ သရသံသင်္ကေတ နှင့် စူးရှသော" - "E၊ သရသံသင်္ကေတ နှင့် တည်ငြိမ်သော" - "E၊ သရသံသင်္ကေတ နှင့် ချိတ် အပေါ်မှာ" - "E၊ သရသံသင်္ကေတ နှင့် tilde" - "E၊ သရသံသင်္ကေတ နှင့် အောက်မှာ အစက်" + "E၊ သရသံသင်္ကေတ နှင့် စူးရှသော" + "E၊ သရသံသင်္ကေတ နှင့် တည်ငြိမ်သော" + "E၊ သရသံသင်္ကေတ နှင့် ချိတ် အပေါ်မှာ" + "E၊ သရသံသင်္ကေတ နှင့် tilde" + "E၊ သရသံသင်္ကေတ နှင့် အောက်မှာ အစက်" "I၊ အပေါ်မှာ ချိတ်" "I၊ အောက်မှာ အစက်" "O၊ အောက်မှာ အစက်" "O၊ အပေါ်မှာ ချိတ်" - "O၊ သရသံသင်္ကေတ နှင့် စူးရှသော" - "O၊ သရသံသင်္ကေတ နှင့် တည်ငြိမ်သော" - "O၊ သရသံသင်္ကေတ နှင့် အပေါ်မှာ ချိတ်" - "O၊ သရသံသင်္ကေတ နှင့် tilde" - "O၊ သရသံသင်္ကေတ နှင့် အောက်မှာ အစက်" - "O၊ horn နှင့် စူးရှသော" - "O၊ horn နှင့် တည်ငြိမ်သော" - "O၊ horn နှင့် အပေါ်မှာ ချိတ်" - "O၊ horn နှင့် tilde" - "O၊ horn နှင့် အောက်မှာ အစက်" + "O၊ သရသံသင်္ကေတ နှင့် စူးရှသော" + "O၊ သရသံသင်္ကေတ နှင့် တည်ငြိမ်သော" + "O၊ သရသံသင်္ကေတ နှင့် အပေါ်မှာ ချိတ်" + "O၊ သရသံသင်္ကေတ နှင့် tilde" + "O၊ သရသံသင်္ကေတ နှင့် အောက်မှာ အစက်" + "O၊ horn နှင့် စူးရှသော" + "O၊ horn နှင့် တည်ငြိမ်သော" + "O၊ horn နှင့် အပေါ်မှာ ချိတ်" + "O၊ horn နှင့် tilde" + "O၊ horn နှင့် အောက်မှာ အစက်" "U၊ အောက်မှာ အစက်" "U၊ အပေါ်မှာ ချိတ်" - "U၊ horn နှင့် စူးရှသော" - "U၊ horn နှင့် တည်ငြိမ်သော" - "U၊ horn နှင့် အပေါ်မှာ ချိတ်" - "U၊ horn နှင့် tilde" - "U၊ horn နှင့် အောက်မှာ အစက်" + "U၊ horn နှင့် စူးရှသော" + "U၊ horn နှင့် တည်ငြိမ်သော" + "U၊ horn နှင့် အပေါ်မှာ ချိတ်" + "U၊ horn နှင့် tilde" + "U၊ horn နှင့် အောက်မှာ အစက်" "Y၊ တည်ငြိမ်သော" "Y၊ အောက်မှာ အစက်" "Y၊ အပေါ်မှာ ချိတ်" diff --git a/java/res/values-my-rMM/strings.xml b/java/res/values-my-rMM/strings.xml index 5f8a662fd..8e8fda148 100644 --- a/java/res/values-my-rMM/strings.xml +++ b/java/res/values-my-rMM/strings.xml @@ -137,6 +137,8 @@ "ခလုတ်နှိပ်တုန်ခါမှု ကြာမြင့်ချိန်" "ခလုတ်နှိပ်သည့် အသံအတိုးကျယ်" "ကီးကြာမြင့်စွာ ဖိနှိပ်မှုနှုန်း" + "ခလုတ်ရှိ ကီးဘုတ်အတွက် အီမိုဂျိ" + "အီမိုဂျီ ဘုတ်ပြားပြသော Alt ခလုတ်" "ပုံသေ" "%s မှကြိုဆိုပါသည်" "အမူယာ ရိုက်ခြင်းဖြင့်" diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index 705bada9c..3f1d1c93a 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -51,7 +51,7 @@ "Nøkkel for språkskifte" "Vis når flere inndataspråk er aktivert" "Tregt tastevindu" - "U/ forsinkelse" + "Uten forsinkelse" "Standard" "%s ms" "Systemstandard" @@ -71,7 +71,7 @@ "Blokkér støtende ord" "Ikke foreslå potensielt støtende ord" "Autokorrektur" - "Mellomromstast og skilletegn retter automat. feilstavede ord" + "Mellomromstast og skilletegn retter automatisk feilstavede ord" "Av" "Moderat" "Omfattende" @@ -81,7 +81,7 @@ "Aktiver ordføring" "Skriv inn et ord ved å sveipe langsmed bokstavene" "Vis bevegelsesspor" - "Dynamisk flytende forhåndsvsn." + "Dynamiske flytende forslag" "Se det foreslåtte ordet mens du utfører bevegelser" "Frasebevegelse" "Sett inn mellomrom ved å dra fingeren til mellomromstasten" @@ -131,19 +131,21 @@ "Språk" "Oppsett" "Tilpasset inndatastil må aktiveres før bruk. Vil du aktivere nå?" - "Aktiver" + "Slå på" "Ikke nå" "Inndatastilen finnes allerede: %s" "Vibrasjonstid ved tastetrykk" "Lydstyrke ved tastetrykk" "Forsinkelse lange tastetrykk" + "Emoji for fysisk tastatur" + "Fysisk Alt-tast som viser emojiutvalget" "Standard" "Velkommen til %s" "med Ordføring" "Startveiledning" "Neste trinn" "Konfigurerer %s" - "Aktiver %s" + "Slå på %s" "Sjekk %s i Språk og inndata-innstillingene dine. Dette tillater appen å kjøre på enheten." "%s er allerede aktivert i Språk og inndata-innstillingene dine, så dette trinnet er fullført. Gå til neste trinn!" "Aktiver i Innstillinger" diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml index efa6d3cd0..23b8f53c0 100644 --- a/java/res/values-ne-rNP/strings.xml +++ b/java/res/values-ne-rNP/strings.xml @@ -137,6 +137,8 @@ "कुञ्जी थिचाइ भाइब्रेसन अवधि" "कुञ्जी थिचाइ आवाज भोल्युम" "कुञ्जी लामो थिचाइ ढिलाइ" + "भौतिक किबोर्डको लागि इमोजी" + "भौतिक Alt कुञ्जीले इमोजी प्यालेट देखाउँछ" "पूर्वनिर्धारित" "तपाईँलाई स्वागत छ%s" "इशारा टाइप गर्नेसँग" diff --git a/java/res/values-nl/strings-action-keys.xml b/java/res/values-nl/strings-action-keys.xml index d6ca1f124..4dd5349c8 100644 --- a/java/res/values-nl/strings-action-keys.xml +++ b/java/res/values-nl/strings-action-keys.xml @@ -23,7 +23,7 @@ "Ga" "Volg." "Vorig" - "Gereed" + "Klaar" "Verz." "Zoeken" "Pauze" diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 2087a62a6..8c326bf1a 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -50,7 +50,7 @@ "Schakelknop voor taal ook van toepassing op andere invoermethoden" "Schakelknop voor taal" "Weergeven wanneer meerdere invoertalen zijn geselecteerd" - "Vertr.sluiten toetspop-up" + "Pop-up vertraagd sluiten" "Geen vertraging" "Standaard" "%s ms" @@ -78,13 +78,13 @@ "Zeer agressief" "Suggesties voor volgend woord" "Het vorige woord gebruiken bij het doen van suggesties" - "Typen via tekenen inschakelen" - "Voer een woord in door van letter naar letter te schuiven" + "Bewegingsinvoer inschakelen" + "Voer een woord in door van letter naar letter te bewegen" "Gebarenspoor weergeven" "Dynamisch zwevend voorbeeld" "Het voorgestelde woord weergeven tijdens het tekenen" "Gebaar voor woordgroep" - "Spaties invoeren bij gebaren door naar de spatietoets te bewegen" + "Spaties invoeren door naar de spatietoets te bewegen" "Toets voor spraakinvoer" "Geen spraakinvoermethoden ingeschakeld. Ga naar \'Instellingen voor taal en invoer\'." "Invoermethoden configureren" @@ -136,7 +136,9 @@ "Dezelfde invoerstijl bestaat al: %s" "Trilingsduur bij toetsgebruik" "Geluidsvolume bij toetsgebruik" - "Vertraging toets lang indrukkn" + "Lengte toetsinvoer" + "Emoji voor fysiek toetsenbord" + "Emoji-palet weergeven met fysieke Alt-toets" "Standaard" "Welkom bij %s" "met Invoer met bewegingen" diff --git a/java/res/values-pa-rIN/strings-action-keys.xml b/java/res/values-pa-rIN/strings-action-keys.xml deleted file mode 100644 index 52308b4e1..000000000 --- a/java/res/values-pa-rIN/strings-action-keys.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - "ਜਾਓ" - "ਅਗਲਾ" - "ਪਿਛਲਾ" - "ਹੋ ਗਿਆ" - "ਭੇਜੋ" - "ਖੋਜੋ" - "ਰੋਕੋ" - "ਉਡੀਕ ਕਰੋ" - diff --git a/java/res/values-pa-rIN/strings-appname.xml b/java/res/values-pa-rIN/strings-appname.xml deleted file mode 100644 index 3a03fc71d..000000000 --- a/java/res/values-pa-rIN/strings-appname.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - "Android ਕੀਬੋਰਡ (AOSP)" - "Android Spell Checker (AOSP)" - "Android ਕੀਬੋਰਡ ਸੈਟਿੰਗਾਂ (AOSP)" - "Android Spell Checker Settings (AOSP)" - diff --git a/java/res/values-pa-rIN/strings-config-important-notice.xml b/java/res/values-pa-rIN/strings-config-important-notice.xml deleted file mode 100644 index b6c7af4e8..000000000 --- a/java/res/values-pa-rIN/strings-config-important-notice.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - "ਸੁਝਾਵਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਆਪਣੀਆਂ ਗੱਲਬਾਤਾਂ ਅਤੇ ਟਾਈਪ ਕੀਤੇ ਡਾਟਾ ਤੋਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ" - diff --git a/java/res/values-pa-rIN/strings-emoji-descriptions.xml b/java/res/values-pa-rIN/strings-emoji-descriptions.xml deleted file mode 100644 index 2b01644ed..000000000 --- a/java/res/values-pa-rIN/strings-emoji-descriptions.xml +++ /dev/null @@ -1,851 +0,0 @@ - - - - - - - "ਕਾਪੀਰਾਈਟ ਚਿੰਨ੍ਹ" - "ਰਜਿਸਟਰਡ ਚਿੰਨ੍ਹ" - "ਡਬਲ ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ" - "ਵਿਸਮਿਕ ਪ੍ਰਸ਼ਨ ਚਿੰਨ੍ਹ" - "ਟ੍ਰੇਡ ਮਾਰਕ ਚਿੰਨ੍ਹ" - "ਜਾਣਕਾਰੀ ਸ੍ਰੋਤ" - "ਖੱਬੇ ਸੱਜੇ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਉੱਪਰ ਹੇਠਾਂ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਉੱਤਰ ਪੱਛਮ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਉੱਤਰ ਪੂਰਬ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਦੱਖਣ ਪੂਰਬ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਦੱਖਣ ਪੱਛਮ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਹੁੱਕ ਵਾਲਾ ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਹੁੱਕ ਵਾਲਾ ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਦੇਖੋ" - "ਰੇਤ ਘੜੀ" - "ਕਾਲਾ ਸੱਜੇ ਪਾਸੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਡਬਲ ਤਿਕੋਨ" - "ਕਾਲਾ ਖੱਬੇ ਪਾਸੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਡਬਲ ਤਿਕੋਨ" - "ਕਾਲਾ ਉੱਪਰ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਡਬਲ ਤਿਕੋਨ" - "ਕਾਲਾ ਹੇਠਾਂ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਡਬਲ ਤਿਕੋਨ" - "ਅਲਾਰਮ ਘੜੀ" - "ਵਗਦੀ ਰੇਤ ਵਾਲੀ ਰੇਤ ਘੜੀ" - "ਗੋਲ ਲਾਤੀਨੀ ਕੈਪੀਟਲ ਅੱਖਰ m" - "ਕਾਲਾ ਛੋਟਾ ਵਰਗ" - "ਚਿੱਟਾ ਛੋਟਾ ਵਰਗ" - "ਕਾਲਾ ਸੱਜੇ ਪਾਸੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਤਿਕੋਨ" - "ਕਾਲਾ ਖੱਬੇ ਪਾਸੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਤਿਕੋਨ" - "ਚਿੱਟਾ ਦਰਮਿਆਨਾ ਵਰਗ" - "ਕਾਲਾ ਦਰਮਿਆਨਾ ਵਰਗ" - "ਚਿੱਟਾ ਦਰਮਿਆਨਾ ਛੋਟਾ ਵਰਗ" - "ਕਾਲਾ ਦਰਮਿਆਨਾ ਛੋਟਾ ਵਰਗ" - "ਕਿਰਨਾਂ ਵਾਲਾ ਕਾਲਾ ਸੂਰਜ" - "ਬੱਦਲ" - "ਕਾਲਾ ਟੈਲੀਫੋਨ" - "ਸਹੀ ਦੇ ਨਿਸ਼ਾਨ ਵਾਲਾ ਬੈਲਟ ਬੌਕਸ" - "ਵਰਖਾ ਦੀਆਂ ਬੂੰਦਾਂ ਵਾਲੀ ਛਤਰੀ" - "ਗਰਮ ਪੀਣ ਵਾਲਾ ਪਦਾਰਥ" - "ਚਿੱਟੀ ਉੱਪਰ ਸੰਕੇਤ ਦੇਣ ਵਾਲੀ ਤਰਜਨੀ" - "ਚਿੱਟਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਮੇਖ ਰਾਸ਼ੀ" - "ਬਿਰਖ ਰਾਸ਼ੀ" - "ਮਿਥੁਨ ਰਾਸ਼ੀ" - "ਕਰਕ ਰਾਸ਼ੀ" - "ਸਿੰਘ ਰਾਸ਼ੀ" - "ਕੰਨਿਆ ਰਾਸ਼ੀ" - "ਤੁਲਾ ਰਾਸ਼ੀ" - "ਬ੍ਰਿਸ਼ਚਕ ਰਾਸ਼ੀ ਚੱਕਰ ਤਾਰਾਮੰਡਲ" - "ਧਨ ਰਾਸ਼ੀ" - "ਮਕਰ ਰਾਸ਼ੀ" - "ਕੁੰਭ ਰਾਸ਼ੀ" - "ਮੀਨ ਰਾਸ਼ੀ" - "ਕਾਲਾ ਸਪੇਡ ਸੂਟ" - "ਕਾਲਾ ਕਲਬ ਸੂਟ" - "ਕਾਲਾ ਹਾਰਟ ਸੂਟ" - "ਕਾਲਾ ਡਾਇਮੰਡ ਸੂਟ" - "ਗਰਮ ਚਸ਼ਮੇ" - "ਕਾਲਾ ਯੂਨੀਵਰਸਲ ਰੀਸਾਈਕਲਿੰਗ ਚਿੰਨ੍ਹ" - "ਪਹੀਏਦਾਰ ਕੁਰਸੀ ਦਾ ਚਿੰਨ੍ਹ" - "ਲੰਗਰ" - "ਚਿਤਾਵਨੀ ਚਿੰਨ੍ਹ" - "ਉੱਚ ਵੋਲਟੇਜ ਚਿੰਨ੍ਹ" - "ਦਰਮਿਆਨਾ ਚਿੱਟਾ ਗੋਲਾ" - "ਦਰਮਿਆਨਾ ਕਾਲਾ ਗੋਲਾ" - "ਸੌਸਰ ਬਾਲ" - "ਬੇਸਬਾਲ" - "ਬਰਫ਼ ਤੋਂ ਬਿਨਾਂ ਬਰਫ਼ ਦਾ ਪੁਤਲਾ" - "ਬੱਦਲਾਂ ਦੇ ਪਿੱਛੇ ਸੂਰਜ" - "ਓਫੀਉਚਸ" - "ਦਾਖ਼ਲ ਹੋਣਾ ਮਨ੍ਹਾ ਹੈ" - "ਗਿਰਜਾ ਘਰ" - "ਫੁਹਾਰਾ" - "ਮੋਰੀ ਵਿੱਚ ਝੰਡਾ" - "ਸੇਲਬੋਟ" - "ਤੰਬੂ" - "ਬਾਲਣ ਪੰਪ" - "ਕਾਲੀ ਕੈਂਚੀ" - "ਚਿੱਟਾ ਵੱਡਾ ਸਹੀ ਦਾ ਨਿਸ਼ਾਨ" - "ਹਵਾਈ ਜਹਾਜ਼" - "ਲਿਫ਼ਾਫ਼ਾ" - "ਚੁੱਕੀ ਹੋਈ ਮੁੱਕੀ" - "ਚੁੱਕਿਆ ਹੋਇਆ ਹੱਥ" - "ਜਿੱਤ ਦਾ ਹੱਥ" - "ਪੈਂਸਿਲ" - "ਕਾਲੀ ਨਿਬ" - "ਵੱਡਾ ਸਹੀ ਦਾ ਨਿਸ਼ਾਨ" - "ਵੱਡਾ ਗੁਣਾ x" - "ਲਿਸ਼ਕਾਰੇ" - "ਅੱਠ ਸਪੋਕਡ ਤਾਰਾ ਚਿੰਨ੍ਹ" - "ਅੱਠ ਦਾ ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਕਾਲਾ ਤਾਰਾ" - "ਸਨੋਫਲੇਕ" - "ਲਿਸ਼ਕਾਰਾ" - "ਕ੍ਰੌਸ ਚਿੰਨ੍ਹ" - "ਨੈਗੇਟਿਵ ਵਰਗਾਕਾਰ ਕ੍ਰੌਸ ਚਿੰਨ੍ਹ" - "ਕਾਲਾ ਪ੍ਰਸ਼ਨ ਚਿੰਨ੍ਹ ਗਹਿਣਾ" - "ਚਿੱਟਾ ਪ੍ਰਸ਼ਨ ਚਿੰਨ੍ਹ ਗਹਿਣਾ" - "ਚਿੱਟਾ ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ ਗਹਿਣਾ" - "ਵੱਡਾ ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੱਡਾ ਕਾਲਾ ਦਿਲ" - "ਵੱਡਾ ਜੋੜ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੱਡਾ ਘਟਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੱਡਾ ਭਾਗ ਦਾ ਚਿੰਨ੍ਹ" - "ਕਾਲਾ ਉੱਪਰ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਕੁੰਡਲਦਾਰ ਲੂਪ" - "ਡਬਲ ਕੁੰਡਲਦਾਰ ਲੂਪ" - "ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਫਿਰ ਉੱਪਰ ਵੱਲ ਮੁੜਦਾ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਫਿਰ ਹੇਠਾਂ ਵੱਲ ਮੁੜਦਾ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਕਾਲਾ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਉੱਪਰ ਵੱਲ ਕਾਲਾ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਹੇਠਾਂ ਵੱਲ ਕਾਲਾ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਕਾਲਾ ਵੱਡਾ ਵਰਗ" - "ਚਿੱਟਾ ਵੱਡਾ ਵਰਗ" - "ਚਿੱਟਾ ਦਰਮਿਆਨਾ ਤਾਰਾ" - "ਹੈਵੀ ਵੱਡਾ ਗੋਲਾ" - "ਲਹਿਰਦਾਰ ਡੈਸ਼" - "ਭਾਗ ਤਬਦੀਲੀ ਚਿੰਨ੍ਹ" - "ਗੋਲ ਭਾਵ ਚਿੱਤਰ ਵਧਾਈ" - "ਗੋਲ ਭਾਵ ਚਿੱਤਰ ਭੇਤ" - "ਮੈਹਜੋਂਗ ਟਾਈਲ ਰੈਡ ਡ੍ਰੈਗਨ" - "ਪਲੇਇੰਗ ਕਾਰਡ ਬਲੈਕ ਜੋਕਰ" - "ਬਲਡ ਟਾਈਪ A" - "ਬਲਡ ਟਾਈਪ B" - "ਬਲਡ ਟਾਈਪ O" - "ਪਾਰਕਿੰਗ ਲੌਟ" - "ਬਲਡ ਟਾਈਪ AB" - "ਵਰਗਾਕਾਰ CL" - "ਵਰਗਾਕਾਰ ਕੂਲ" - "ਵਰਗਾਕਾਰ ਫ੍ਰੀ" - "ਵਰਗਾਕਾਰ ID" - "ਵਰਗਾਕਾਰ ਨਵਾਂ" - "ਵਰਗਾਕਾਰ N G" - "ਵਰਗਾਕਾਰ ਠੀਕ" - "ਵਰਗਾਕਾਰ SOS" - "ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ ਨਾਲ ਵਰਗਾਕਾਰ ਅਪ" - "ਵਰਗਾਕਾਰ ਬਨਾਮ" - "ਇੱਥੇ ਵਰਗਾਕਾਰ ਕਟਾਕਨਾ" - "ਵਰਗਾਕਾਰ ਕਟਾਕਨਾ ਸੇਵਾ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਮੁਫ਼ਤ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਰਾਖਵੀਂ-ਸੀਟ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਪ੍ਰਤਿਬੰਧ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਵੈਕੈਂਸੀ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਸਵੀਕ੍ਰਿਤੀ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਪੂਰਾ ਅਧਿਕਾਰ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਵੇਤਨਕ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਮਾਸਿਕ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਐਪਲੀਕੇਸ਼ਨ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਕਟੌਤੀ" - "ਵਰਗਾਕਾਰ ਭਾਵ ਚਿੱਤਰ ਇਨ ਬਿਜਨਸ" - "ਗੋਲ ਭਾਵ ਚਿੱਤਰ ਲਾਭ" - "ਗੋਲ ਭਾਵ ਚਿੱਤਰ ਸਵੀਕਾਰ ਕਰੋ" - "ਸਮੁੰਦਰੀ ਝੱਖੜ" - "ਧੁੰਦ ਵਾਲਾ" - "ਬੰਦ ਛਤਰੀ" - "ਤਾਰਿਆਂ ਵਾਲੀ ਰਾਤ" - "ਪਹਾੜਾਂ ਤੇ ਸਵੇਰ" - "ਸਵੇਰ" - "ਸ਼ਾਮ ਨੂੰ ਸਿਟੀਸਕੇਪ" - "ਇਮਾਰਤਾਂ ਤੇ ਸ਼ਾਮ" - "ਇੰਦਰਧਨੁਸ਼" - "ਰਾਤ ਨੂੰ ਪੁਲ" - "ਪਾਣੀ ਦੀ ਲਹਿਰ" - "ਜੁਆਲਾਮੁਖੀ ਪਹਾੜ" - "ਅਕਾਸ਼ ਗੰਗਾ" - "ਧਰਤੀ ਗਲੋਬ ਯੂਰੋਪ-ਅਫਰੀਕਾ" - "ਧਰਤੀ ਗਲੋਬ ਅਮਰੀਕਾ" - "ਧਰਤੀ ਗਲੋਬ ਏਸ਼ੀਆ-ਆੱਸਟ੍ਰੇਲੀਆ" - "ਮੈਰੀਡੀਅਨਾਂ ਵਾਲਾ ਗਲੋਬ" - "ਨਵਾਂ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੈਕਸਿੰਗ ਕ੍ਰੀਸੈਂਟ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਪਹਿਲੀ ਤਿਮਾਹੀ ਦੇ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੈਕਸਿੰਗ ਗਿੱਬਸ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਪੂਰਾ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੈਨਿੰਗ ਗਿੱਬਸ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਆਖ਼ਰੀ ਤਿਮਾਹੀ ਦੇ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਵੈਨਿੰਗ ਨਵੇਂ ਚੰਦਰਮਾ ਦਾ ਚਿੰਨ੍ਹ" - "ਨਵਾਂ ਚੰਦਰਮਾ" - "ਚਿਹਰੇ ਨਾਲ ਨਵਾਂ ਚੰਦਰਮਾ" - "ਚਿਹਰੇ ਨਾਲ ਪਹਿਲੀ ਤਿਮਾਹੀ ਦਾ ਚੰਦਰਮਾ" - "ਚਿਹਰੇ ਨਾਲ ਆਖ਼ਰੀ ਤਿਮਾਹੀ ਦਾ ਚੰਦਰਮਾ" - "ਚਿਹਰੇ ਨਾਲ ਪੂਰਾ ਚੰਦਰਮਾ" - "ਚਿਹਰੇ ਨਾਲ ਸੂਰਜ" - "ਚਮਕਦਾ ਤਾਰਾ" - "ਉਲਕਾ" - "ਚੈਸਟਨਟ" - "ਨਵਾਂ ਪੁੰਗਰਿਆ ਬੂਟਾ" - "ਸਦਾਬਹਾਰ ਰੁੱਖ" - "ਪਤਝੜ ਵਾਲਾ ਰੁੱਖ" - "ਤਾੜ ਦਾ ਰੁੱਖ" - "ਥੋਹਰ" - "ਗੁਲਲਾਲਾ" - "ਚੈਰੀ ਬਲੋਸਮ" - "ਗੁਲਾਬ" - "ਹਿਬਿਸਕਸ" - "ਸੂਰਜਮੁਖੀ" - "ਬਲੋਸਮ" - "ਮੱਕੀ ਦੇ ਸਿੱਟੇ" - "ਚੌਲਾਂ ਦੇ ਸਿੱਟੇ" - "ਜੜੀ-ਬੂਟੀ" - "ਫੋਰ ਲੀਫ ਕਲੋਵਰ" - "ਮੇਪਲ ਦਾ ਪੱਤਾ" - "ਝਰਿਆ ਹੋਇਆ ਪੱਤਾ" - "ਹਵਾ ਵਿੱਚ ਲਹਿਰਾਉਂਦਾ ਪੱਤਾ" - "ਖੁੰਬਾਂ" - "ਟਮਾਟਰ" - "ਬੈਂਗਨ" - "ਅੰਗੂਰ" - "ਖ਼ਰਬੂਜ਼ਾ" - "ਤਰਬੂਜ਼" - "ਇੱਕ ਤਰ੍ਹਾਂ ਦਾ ਸੰਤਰਾ" - "ਨੀਂਬੂ" - "ਕੇਲਾ" - "ਅਨਾਨਾਸ" - "ਲਾਲ ਸੇਬ" - "ਹਰਾ ਸੇਬ" - "ਨਾਸ਼ਪਾਤੀ" - "ਆੜੂ" - "ਚੈਰੀ" - "ਸਟਰਾਬਰੀ" - "ਹੰਬਰਗਰ" - "ਪੀਜ਼ਾ ਦੀ ਸਲਾਈਸ" - "ਹੱਡੀ ਤੇ ਮਾਸ" - "ਕੁੱਕੜ ਦੀ ਲੱਤ" - "ਰਾਈਸ ਕ੍ਰੈਕਰ" - "ਰਾਈਸ ਬੌਲ" - "ਪਕਾਏ ਹੋਏ ਚੌਲ" - "ਕੜੀ ਅਤੇ ਚੌਲ" - "ਭਾਫ਼ ਵਾਲਾ ਪਿਆਲਾ" - "ਸਪਾਗਟੀ" - "ਰੋਟੀ" - "ਫ੍ਰੈਂਚ ਫ੍ਰਾਈਜ਼" - "ਭੁੰਨੀ ਹੋਈ ਸ਼ਕਰਕੰਦੀ" - "ਡੈਂਗੋ" - "ਓਡੈਨ" - "ਸੁਸ਼ੀ" - "ਤਲੀ ਹੋਈ ਝੀਂਗਾ ਮੱਛੀ" - "ਸਵਿਰਲ ਡਿਜਾਈਨ ਵਾਲਾ ਫਿਸ਼ ਕੇਕ" - "ਸੌਫਟ ਆਈਸ ਕ੍ਰੀਮ" - "ਸ਼ੇਵਡ ਆਈਸ" - "ਆਈਸ ਕ੍ਰੀਮ" - "ਡੋਨੱਟ" - "ਬਿਸਕੁਟ" - "ਚੌਕਲੇਟ ਬਾਰ" - "ਕੈਂਡੀ" - "ਲਾਲੀਪਾਪ" - "ਕਸਟਰਡ" - "ਸ਼ਹਿਦ ਦਾ ਪੌਟ" - "ਖਸਤਾ ਕੇਕ" - "ਬੈਂਟੋ ਬੌਕਸ" - "ਭੋਜਨ ਦਾ ਬਰਤਨ" - "ਖਾਣਾ ਪਕਾਉਣਾ" - "ਕਾਂਟਾ ਅਤੇ ਛੁਰੀ" - "ਬਿਨਾਂ ਹੱਥੇ ਵਾਲਾ ਚਾਹ ਦਾ ਕੱਪ" - "ਸੇਕ ਬੋਤਲ ਅਤੇ ਕੱਪ" - "ਵਾਈਨ ਦਾ ਗਿਲਾਸ" - "ਕਾਕਟੇਲ ਦਾ ਗਿਲਾਸ" - "ਗਰਮ ਦੇਸ਼ ਦੀ ਸ਼ਰਾਬ" - "ਬੀਅਰ ਮਗ" - "ਛਣਕਣ ਵਾਲੇ ਬੀਅਰ ਮਗ" - "ਬੱਚੇ ਦੀ ਬੋਤਲ" - "ਰਿਬਨ" - "ਪੈਕ ਕੀਤਾ ਤੋਹਫ਼ਾ" - "ਜਨਮਦਿਨ ਦਾ ਕੇਕ" - "ਜੈਕ-ਓ-ਲੈਂਟਰਨ" - "ਕ੍ਰਿਸਮਸ ਟ੍ਰੀ" - "ਫਾਦਰ ਕ੍ਰਿਸਮਸ" - "ਪਟਾਖੇ" - "ਪਟਾਖਿਆਂ ਦੇ ਸਪਾਰਕਲਰ" - "ਗੁਬਾਰਾ" - "ਪਾਰਟੀ ਪੌਪਰ" - "ਕੌਨਫੈਟੀ ਬੌਲ" - "ਤਨਾਬਤਾ ਰੁੱਖ" - "ਕ੍ਰੌਸਡ ਫਲੈਗਸ" - "ਚੀੜ੍ਹ ਦੀ ਸਜਾਵਟ" - "ਜਾਪਾਨੀ ਗੁੱਡੀਆਂ" - "ਕਾਰਪ ਸਟ੍ਰੀਮਰ" - "ਵਿੰਡ ਚਾਈਮਸ" - "ਚੰਦਰਮਾ ਦੇਖਣ ਦੀ ਰਸਮ" - "ਸਕੂਲ ਦਾ ਬਸਤਾ" - "ਗ੍ਰੈਜੁਏਸ਼ਨ ਕੈਪ" - "ਝੂਟੇ ਵਾਲਾ ਘੋੜਾ" - "ਫੈਰਿਸ ਝੂਲਾ" - "ਰੋਲਰ ਕੋਸਟਰ" - "ਮੱਛੀ ਫੜ੍ਹਨ ਦਾ ਡੰਡਾ ਅਤੇ ਮੱਛੀ" - "ਮਾਈਕ੍ਰੋਫੋਨ" - "ਮੂਵੀ ਕੈਮਰਾ" - "ਸਿਨੇਮਾ" - "ਹੈਡਫੋਨ" - "ਕਲਾਕਾਰ ਪੈਲੇਟ" - "ਲੰਮਾ ਟੋਪ" - "ਸਰਕਸ ਦਾ ਤੰਬੂ" - "ਟਿਕਟ" - "ਕਲੈਪਰ ਬੋਰਡ" - "ਰੰਗ ਕਲਾਵਾਂ" - "ਵੀਡੀਓ ਗੇਮ" - "ਡਾਇਰੈਕਟ ਹਿਟ" - "ਸਲੌਟ ਮਸ਼ੀਨ" - "ਬਿਲੀਅਰਡ" - "ਗੇਮ ਡਾਈ" - "ਗੇਂਦਬਾਜੀ" - "ਫਲਾਵਰ ਪਲੇਇੰਗ ਕਾਰਡਸ" - "ਸੰਗੀਤਮਈ ਨੋਟ" - "ਮਲਟੀਪਲ ਸੰਗੀਤਮਈ ਨੋਟਸ" - "ਸੈਕਸੋਫ਼ੋਨ" - "ਗਿਟਾਰ" - "ਸੰਗੀਤਮਈ ਕੀਬੋਰਡ" - "ਬਿਗਲ" - "ਸਾਰੰਗੀ" - "ਸੰਗੀਤਮਈ ਸਕੋਰ" - "ਕਮਰਬੰਦ ਨਾਲ ਰਨਿੰਗ ਕਮੀਜ਼" - "ਟੈਨਿਸ ਦਾ ਬੱਲਾ ਅਤੇ ਗੇਂਦ" - "ਸਕੀ ਅਤੇ ਸਕੀ ਬੂਟ" - "ਬਾਸਕੇਟਬਾਲ ਅਤੇ ਹੂਪ" - "ਚਾਰਖ਼ਾਨੇਦਾਰ ਝੰਡਾ" - "ਸਨੋਬੌਰਡਰ" - "ਰਨਰ" - "ਸਰਫ਼ਰ" - "ਟ੍ਰੌਫੀ" - "ਘੁੜ ਦੌੜ" - "ਅਮਰੀਕੀ ਫੁਟਬਾਲ" - "ਰਗਬੀ ਫੁਟਬਾਲ" - "ਤੈਰਾਕ" - "ਘਰ ਦਾ ਨਿਰਮਾਣ" - "ਬਾਗ ਵਾਲਾ ਘਰ" - "ਦਫ਼ਤਰ ਦੀ ਇਮਾਰਤ" - "ਜਾਪਾਨੀ ਡਾਕ ਘਰ" - "ਯੂਰੋਪੀਅਨ ਡਾਕ ਘਰ" - "ਹਸਪਤਾਲ" - "ਬੈਂਕ" - "ਆਟੋਮੇਟਿਡ ਟੈਲਰ ਮਸ਼ੀਨ" - "ਹੋਟਲ" - "ਲਵ ਹੋਟਲ" - "ਸਹੂਲਤ ਸਟੋਰ" - "ਸਕੂਲ" - "ਡਿਪਾਰਟਮੈਂਟ ਸਟੋਰ" - "ਫੈਕਟਰੀ" - "ਇਜ਼ਾਕਾਇਆ ਲੈਂਟਰਨ" - "ਜਾਪਾਨੀ ਕਾਸਲ" - "ਯੂਰੋਪੀਅਨ ਕਾਸਲ" - "ਚੂਹਾ" - "ਚੂਹਾ" - "ਬਲਦ" - "ਮੱਝ" - "ਗਊ" - "ਚੀਤਾ" - "ਖ਼ਰਗੋਸ਼" - "ਬਿੱਲੀ" - "ਡਰੈਗਨ" - "ਮਗਰਮੱਛ" - "ਵੇਲ ਮੱਛੀ" - "ਘੋਗਾ" - "ਸੱਪ" - "ਘੋੜਾ" - "ਰਾਮ" - "ਬੱਕਰੀ" - "ਭੇਡ" - "ਬਾਂਦਰ" - "ਕੁੱਕੜ" - "ਚਿਕਨ" - "ਕੁੱਤਾ" - "ਸੂਰ" - "ਜੰਗਲੀ ਸੂਰ" - "ਹਾਥੀ" - "ਤੰਦੂਆ" - "ਕੁੰਡਲਦਾਰ ਘੋਗਾ" - "ਖਟਮਲ" - "ਕੀੜੀ" - "ਮਧੂ ਮੱਖੀ" - "ਲੇਡੀ ਬੀਟਲ" - "ਮੱਛੀ" - "ਗਰਮ ਦੇਸ਼ ਦੀ ਮੱਛੀ" - "ਬਲੋਫਿਸ਼" - "ਕੱਛੂਕੰਮਾ" - "ਹੈਚਿੰਗ ਚਿਕ" - "ਬੇਬੀ ਚਿਕ" - "ਫ੍ਰੰਟ-ਫੇਸਿੰਗ ਬੇਬੀ ਚਿਕ" - "ਪੰਛੀ" - "ਪੈਂਗੁਇਨ" - "ਕੋਆਲਾ" - "ਪੂਡਲ ਕੁੱਤਾ" - "ਅਰਬੀ ਊਠ" - "ਬੈਕਟਰੀਅਨ ਊਠ" - "ਡਾਲਫਿਨ ਮੱਛੀ" - "ਚੂਹੇ ਦਾ ਮੂੰਹ" - "ਗਊ ਦਾ ਮੂੰਹ" - "ਚੀਤੇ ਦਾ ਮੂੰਹ" - "ਖ਼ਰਗੋਸ਼ ਦਾ ਮੂੰਹ" - "ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਡਰੈਗਨ ਦਾ ਮੂੰਹ" - "ਨਾਸਾਂ ਵਾਲੀ ਵੇਲ ਮੱਛੀ" - "ਘੋੜੇ ਦਾ ਮੂੰਹ" - "ਬਾਂਦਰ ਦਾ ਮੂੰਹ" - "ਕੁੱਤੇ ਦਾ ਮੂੰਹ" - "ਸੂਰ ਦਾ ਮੂੰਹ" - "ਡੱਡੂ ਦਾ ਮੂੰਹ" - "ਹੈਮਸਟਰ ਦਾ ਮੂੰਹ" - "ਬਘਿਆੜ ਦਾ ਮੂੰਹ" - "ਰਿੱਛ ਦਾ ਮੂੰਹ" - "ਪੰਡੇ ਦਾ ਮੂੰਹ" - "ਸੂਰ ਦੀ ਨੱਕ" - "ਪੰਜੇ ਦੇ ਨਿਸ਼ਾਨ" - "ਅੱਖਾਂ" - "ਕੰਨ" - "ਨੱਕ" - "ਮੂੰਹ" - "ਜੀਭ" - "ਚਿੱਟੀ ਉੱਪਰ ਸੰਕੇਤ ਦੇਣ ਵਾਲੀ ਪੁੱਠੇ ਹੱਥ ਦੀ ਤਰਜਨੀ" - "ਚਿੱਟੀ ਹੇਠਾਂ ਸੰਕੇਤ ਦੇਣ ਵਾਲੀ ਪੁੱਠੇ ਹੱਥ ਦੀ ਤਰਜਨੀ" - "ਚਿੱਟੀ ਖੱਬੇ ਪਾਸੇ ਸੰਕੇਤ ਦੇਣ ਵਾਲੀ ਪੁੱਠੇ ਹੱਥ ਦੀ ਤਰਜਨੀ" - "ਚਿੱਟੀ ਸੱਜੇ ਪਾਸੇ ਸੰਕੇਤ ਦੇਣ ਵਾਲੀ ਪੁੱਠੇ ਹੱਥ ਦੀ ਤਰਜਨੀ" - "ਹੱਥ ਦੀ ਮੁੱਕੀ ਦਾ ਨਿਸ਼ਾਨ" - "ਹੱਥ ਹਿਲਾਉਣ ਦਾ ਨਿਸ਼ਾਨ" - "ਠੀਕ ਹੱਥ ਦਾ ਨਿਸ਼ਾਨ" - "ਅੰਗੂਠਾ ਉੱਪਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਅੰਗੂਠਾ ਹੇਠਾਂ ਦਾ ਨਿਸ਼ਾਨ" - "ਹੱਥਾਂ ਨਾਲ ਤਾਲੀ ਵਜਾਉਣ ਦਾ ਨਿਸ਼ਾਨ" - "ਖੁੱਲ੍ਹੇ ਹੱਥਾਂ ਦਾ ਨਿਸ਼ਾਨ" - "ਮੁਕਟ" - "ਔਰਤਾਂ ਦਾ ਟੋਪ" - "ਐਨਕਾਂ" - "ਟਾਈ" - "ਟੀ-ਸ਼ਰਟ" - "ਜੀਂਸ" - "ਪੁਸ਼ਾਕ" - "ਕਿਮੋਨੋ" - "ਬਿਕਨੀ" - "ਔਰਤਾਂ ਦੇ ਕੱਪੜੇ" - "ਪਰਸ" - "ਹੈਂਡਬੈਗ" - "ਥੈਲੀ" - "ਪੁਰਸ਼ਾ ਦੇ ਬੂਟ" - "ਅਥਲੈਟਿਕ ਬੂਟ" - "ਉੱਚੀ-ਅੱਡੀ ਦੇ ਬੂਟ" - "ਔਰਤਾਂ ਦੇ ਸੈਂਡਲ" - "ਔਰਤਾਂ ਦੇ ਬੂਟ" - "ਪੈਰਾਂ ਦੇ ਨਿਸ਼ਾਨ" - "ਛਾਇਆ ਚਿੱਤਰ ਵਿੱਚ ਧੜ ਦਾ ਬੁੱਤ" - "ਛਾਇਆ ਚਿੱਤਰ ਵਿੱਚ ਧੜ ਦੇ ਬੁੱਤ" - "ਲੜਕਾ" - "ਲੜਕੀ" - "ਆਦਮੀ" - "ਔਰਤ" - "ਪਰਿਵਾਰ" - "ਹੱਥ ਫੜ੍ਹੇ ਹੋਏ ਆਦਮੀ ਅਤੇ ਔਰਤ" - "ਹੱਥ ਫੜ੍ਹੇ ਹੋਏ ਦੋ ਆਦਮੀ" - "ਹੱਥ ਫੜ੍ਹੇ ਹੋਏ ਦੋ ਔਰਤਾਂ" - "ਪੁਲਿਸ ਅਫ਼ਸਰ" - "ਬਨੀ ਕੰਨਾਂ ਨਾਲ ਔਰਤ" - "ਘੁੰਡ ਵਿੱਚ ਲਾੜੀ" - "ਸੁਨਹਿਰੇ ਵਾਲਾਂ ਵਾਲਾ ਵਿਅਕਤੀ" - "ਗੁਆ ਪੀ ਮਾਓ ਨਾਲ ਆਦਮੀ" - "ਪੱਗ ਵਾਲਾ ਆਦਮੀ" - "ਬਜ਼ੁਰਗ ਆਦਮੀ" - "ਬਜ਼ੁਰਗ ਔਰਤ" - "ਬੱਚਾ" - "ਉਸਾਰੀ ਮਜ਼ਦੂਰ" - "ਰਾਜਕੁਮਾਰੀ" - "ਜਾਪਾਨੀ ਰਾਖਸ਼" - "ਜਾਪਾਨੀ ਭੂਤ" - "ਭੂਤ" - "ਬਾਲ ਦੇਵਤਾ" - "ਐਕਸਟ੍ਰਾਟੈਰੈਸਟ੍ਰੀਅਲ ਏਲੀਅਨ" - "ਏਲੀਅਨ ਰਾਖਸ਼" - "Imp" - "ਖੋਪਰੀ" - "ਜਾਣਕਾਰੀ ਡੈਸਕ ਕਰਮਚਾਰੀ" - "ਪਹਿਰੇਦਾਰ" - "ਨਿਰਤਕਾਰ" - "ਲਿਪਸਟਿਕ" - "ਨਹੁੰ ਪਾਲਿਸ਼" - "ਚਿਹਰੇ ਦੀ ਮਾਲਸ਼" - "ਹੇਅਰਕਟ" - "ਬਾਰਬਰ ਪੋਲ" - "ਸਰਿੰਜ" - "ਗੋਲੀ" - "ਚੁੰਮੀ ਦਾ ਨਿਸ਼ਾਨ" - "ਪ੍ਰੇਮ ਪੱਤਰ" - "ਅੰਗੂਠੀ" - "ਰਤਨ" - "ਚੁੰਮੀ" - "ਗੁਲਦਸਤਾ" - "ਦਿਲ ਨਾਲ ਜੋੜਾ" - "ਵਿਆਹ" - "ਧੜਕਦਾ ਦਿਲ" - "ਟੁੱਟਿਆ ਦਿਲ" - "ਦੋ ਦਿਲ" - "ਚਮਕਦਾ ਦਿਲ" - "ਵਧਦਾ ਦਿਲ" - "ਤੀਰ ਵਾਲਾ ਦਿਲ" - "ਨੀਲਾ ਦਿਲ" - "ਹਰਾ ਦਿਲ" - "ਪੀਲਾ ਦਿਲ" - "ਜਾਮਨੀ ਦਿਲ" - "ਰਿਬਨ ਵਾਲਾ ਦਿਲ" - "ਘੁੰਮਦੇ ਦਿਲ" - "ਦਿਲ ਦੀ ਸਜਾਵਟ" - "ਅੰਦਰ ਇੱਕ ਬਿੰਦੀ ਨਾਲ ਡਾਇਮੰਡ ਆਕਾਰ" - "ਇਲੈਕਟ੍ਰਿਕ ਲਾਈਟ ਬਲਬ" - "ਗੁੱਸੇ ਦਾ ਚਿੰਨ੍ਹ" - "ਬੰਬ" - "ਸੌਣ ਦਾ ਚਿੰਨ੍ਹ" - "ਟੱਕਰ ਦਾ ਚਿੰਨ੍ਹ" - "ਪਸੀਨੇ ਦੇ ਛਿੱਟੇ ਉੱਡਣ ਦਾ ਚਿੰਨ੍ਹ" - "ਬੂੰਦ" - "ਡੈਸ਼ ਦਾ ਚਿੰਨ੍ਹ" - "ਪਾਈਲ ਔਫ ਪੂ" - "ਲਚਕਦਾਰ ਡੌਲੇ" - "ਚੱਕਰ ਆਉਣ ਦਾ ਚਿੰਨ੍ਹ" - "ਸਪੀਚ ਗੁਬਾਰਾ" - "ਚਿੰਤਨ ਗੁਬਾਰਾ" - "ਚਿੱਟਾ ਫੁੱਲ" - "ਸੌ ਅੰਕਾਂ ਦਾ ਚਿੰਨ੍ਹ" - "ਪੈਸੇ ਦਾ ਥੈਲਾ" - "ਮੁਦਰਾ ਵਟਾਂਦਰਾ" - "ਹੈਵੀ ਡਾਲਰ ਚਿੰਨ੍ਹ" - "ਕ੍ਰੈਡਿਟ ਕਾਰਡ" - "ਜਪਾਨੀ ਸਿੱਕੇ ਦੇ ਚਿੰਨ੍ਹ ਵਾਲਾ ਬੈਂਕਨੋਟ" - "ਡਾਲਰ ਦੇ ਚਿੰਨ੍ਹ ਵਾਲਾ ਬੈਂਕਨੋਟ" - "ਯੂਰੋ ਦੇ ਚਿੰਨ੍ਹ ਵਾਲਾ ਬੈਂਕਨੋਟ" - "ਪੌਂਡ ਦੇ ਚਿੰਨ੍ਹ ਵਾਲਾ ਬੈਂਕਨੋਟ" - "ਖੰਭਾਂ ਨਾਲ ਪੈਸਾ" - "ਉੱਪਰ ਵੱਲ ਟ੍ਰੈਂਡ ਅਤੇ ਜਪਾਨੀ ਸਿੱਕੇ ਦੇ ਚਿੰਨ੍ਹ ਵਾਲਾ ਚਾਰਟ" - "ਸੀਟ" - "ਨਿੱਜੀ ਕੰਪਿਊਟਰ" - "ਬ੍ਰੀਫ਼ਕੇਸ" - "ਮਿਨੀਡਿਸਕ" - "ਫਲੌਪੀ ਡਿਸਕ" - "ਆਪਟੀਕਲ ਡਿਸਕ" - "Dvd" - "ਫਾਈਲ ਫੋਲਡਰ" - "ਫਾਈਲ ਫੋਲਡਰ ਖੋਲ੍ਹੋ" - "ਵੱਟ ਵਾਲਾ ਸਫ਼ਾ" - "ਫੇਸਿੰਗ ਅਪ ਸਫ਼ਾ" - "ਕੈਲੰਡਰ" - "ਟੀਅਰ-ਔਫ ਕੈਲੰਡਰ" - "ਕਾਰਡ ਇੰਡੈਕਸ" - "ਉੱਪਰ ਵੱਲ ਟ੍ਰੈਂਡ ਵਾਲਾ ਚਾਰਟ" - "ਹੇਠਾਂ ਵੱਲ ਟ੍ਰੈਂਡ ਵਾਲਾ ਚਾਰਟ" - "ਬਾਰ ਚਾਰਟ" - "ਕਲਿਪਬੋਰਡ" - "ਪੁਸ਼ਪਿਨ" - "ਗੋਲ ਪੁਸ਼ਪਿਨ" - "ਪੇਪਰਕਲਿਪ" - "ਸਿੱਧਾ ਪੈਮਾਨਾ" - "ਤਿਕੋਨਾ ਪੈਮਾਨਾ" - "ਬੁੱਕਮਾਰਕ ਟੈਬ" - "ਵਹੀ-ਖਾਤਾ" - "ਨੋਟਬੁੱਕ" - "ਸਜਾਵਟੀ ਜਿਲਦ ਵਾਲੀ ਨੋਟਬੁੱਕ" - "ਬੰਦ ਕਿਤਾਬ" - "ਖੁਲ੍ਹੀ ਕਿਤਾਬ" - "ਹਰੀ ਕਿਤਾਬ" - "ਨੀਲੀ ਕਿਤਾਬ" - "ਸੰਤਰੀ ਕਿਤਾਬ" - "ਕਿਤਾਬਾਂ" - "ਨਾਮ ਦਾ ਬਿੱਲਾ" - "ਸਕ੍ਰੌਲ ਕਰੋ" - "ਮੀਮੋ" - "ਟੈਲੀਫੋਨ ਰਿਸੀਵਰ" - "ਪੇਜ਼ਰ" - "ਫੈਕਸ ਮਸ਼ੀਨ" - "ਸੈਟੇਲਾਈਟ ਐਂਟੀਨਾ" - "ਜਨਤਕ ਸੰਬੋਧਨ ਲਾਊਡਸਪੀਕਰ" - "ਖੁਸ਼ੀ ਪ੍ਰਗਟ ਕਰਨ ਵਾਲਾ ਲਾਊਡ ਸਪੀਕਰ" - "ਆਊਟਬੌਕਸ ਟ੍ਰੇ" - "ਇਨਬੌਕਸ ਟ੍ਰੇ" - "ਪੈਕੇਜ" - "ਈ-ਮੇਲ ਦਾ ਚਿੰਨ੍ਹ" - "ਇਨਕਮਿੰਗ ਲਿਫ਼ਾਫ਼ਾ" - "ਉੱਪਰ ਹੇਠਾਂ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਵਾਲਾ ਲਿਫ਼ਾਫ਼ਾ" - "ਹੇਠਾਂ ਕੀਤੇ ਝੰਡੇ ਵਾਲਾ ਬੰਦ ਮੇਲਬੌਕਸ" - "ਉੱਪਰ ਕੀਤੇ ਝੰਡੇ ਵਾਲਾ ਬੰਦ ਮੇਲਬੌਕਸ" - "ਉੱਪਰ ਕੀਤੇ ਝੰਡੇ ਵਾਲਾ ਖੁੱਲ੍ਹਾ ਮੇਲਬੌਕਸ" - "ਹੇਠਾਂ ਕੀਤੇ ਝੰਡੇ ਵਾਲਾ ਖੁੱਲ੍ਹਾ ਮੇਲਬੌਕਸ" - "ਪੋਸਟਬੌਕਸ" - "ਪੋਸਟਲ ਹੌਰਨ" - "ਅਖ਼ਬਾਰ" - "ਮੋਬਾਈਲ ਫੋਨ" - "ਖੱਬੇ ਪਾਸੇ ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਵਾਲਾ ਮੋਬਾਈਲ ਫੋਨ" - "ਵਾਈਬ੍ਰੇਸ਼ਨ ਮੋਡ" - "ਮੋਬਾਈਲ ਫੋਨ ਬੰਦ" - "ਕੋਈ ਮੋਬਾਈਲ ਫੋਨ ਨਹੀਂ" - "ਬਾਰਸ ਵਾਲਾ ਐਂਟੀਨਾ" - "ਕੈਮਰਾ" - "ਵੀਡੀਓ ਕੈਮਰਾ" - "ਟੈਲੀਵਿਜ਼ਨ" - "ਰੇਡੀਓ" - "ਵੀਡੀਓਕੈਸੇਟ" - "ਮੁੜੇ ਹੋਏ ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ" - "ਕਲੌਕਵਾਈਜ ਸੱਜੇ ਅਤੇ ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਖੁੱਲ੍ਹੇ ਗੋਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ" - "ਗੋਲ ਇੱਕ ਓਵਰਲੇ ਵਾਲੇ ਕਲੌਕਵਾਈਜ ਸੱਜੇ ਅਤੇ ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਖੁੱਲ੍ਹੇ ਗੋਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ" - "ਕਲੌਕਵਾਈਜ ਹੇਠਾਂ ਅਤੇ ਉੱਪਰ ਵੱਲ ਖੁੱਲ੍ਹੇ ਗੋਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ" - "ਐਂਟੀਕਲੌਕਵਾਈਜ ਹੇਠਾਂ ਅਤੇ ਉੱਪਰ ਵੱਲ ਖੁੱਲ੍ਹੇ ਗੋਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ" - "ਘੱਟ ਚਮਕ ਦਾ ਚਿੰਨ੍ਹ" - "ਉੱਚ ਚਮਕ ਦਾ ਚਿੰਨ੍ਹ" - "ਕਾਟਾ ਸਟ੍ਰੋਕ ਵਾਲਾ ਸਪੀਕਰ" - "ਸਪੀਕਰ" - "ਇੱਕ ਅਵਾਜ਼ ਤਰੰਗ ਵਾਲਾ ਸਪੀਕਰ" - "ਤਿੰਨ ਅਵਾਜ਼ ਤਰੰਗਾਂ ਵਾਲਾ ਸਪੀਕਰ" - "ਬੈਟਰੀ" - "ਇਲੈਕਟ੍ਰਿਕ ਪਲਗ" - "ਖੱਬੇ-ਪਾਸੇ ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਵਡਦਰਸ਼ੀ ਸ਼ੀਸ਼ਾ" - "ਸੱਜੇ-ਪਾਸੇ ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਵਡਦਰਸ਼ੀ ਸ਼ੀਸ਼ਾ" - "ਸਿਆਹੀ ਦੇ ਪੈਨ ਨਾਲ ਤਾਲਾ" - "ਕੁੰਜੀ ਨਾਲ ਬੰਦ ਤਾਲਾ" - "ਕੁੰਜੀ" - "ਤਾਲਾ" - "ਖੁੱਲ੍ਹਾ ਤਾਲਾ" - "ਘੰਟੀ" - "ਕਾਟਾ ਸਟ੍ਰੋਕ ਵਾਲੀ ਘੰਟੀ" - "ਬੁੱਕਮਾਰਕ" - "ਲਿੰਕ ਚਿੰਨ੍ਹ" - "ਰੇਡੀਓ ਬਟਨ" - "ਉੱਪਰ ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਨਾਲ ਪਿੱਛੇ" - "ਉੱਪਰ ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਨਾਲ ਖ਼ਤਮ" - "ਉੱਪਰ ਖੱਬੇ ਸੱਜੇ ਪਾਸੇ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਨਾਲ ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ ਨਾਲ ਚਾਲੂ" - "ਉੱਪਰ ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਨਾਲ ਜਲਦੀ" - "ਉੱਤੇ ਉੱਪਰ ਵੱਲ ਤੀਰ ਦੇ ਨਿਸ਼ਾਨ ਨਾਲ ਉੱਪਰ" - "ਅਠਾਰਾਂ ਦੇ ਚਿੰਨ੍ਹ ਹੇਠ ਕੋਈ ਨਹੀਂ" - "ਕੀਕੈਪ ਦਸ" - "ਲਾਤੀਨੀ ਕੈਪੀਟਲ ਅੱਖਰਾਂ ਲਈ ਇਨਪੁਟ ਚਿੰਨ੍ਹ" - "ਲਾਤੀਨੀ ਛੋਟੇ ਅੱਖਰਾਂ ਲਈ ਇਨਪੁਟ ਚਿੰਨ੍ਹ" - "ਸੰਖਿਆਵਾਂ ਲਈ ਇਨਪੁਟ ਚਿੰਨ੍ਹ" - "ਚਿੰਨ੍ਹਾਂ ਲਈ ਇਨਪੁਟ ਚਿੰਨ੍ਹ" - "ਲਾਤੀਨੀ ਅੱਖਰਾਂ ਲਈ ਇਨਪੁਟ ਚਿੰਨ੍ਹ" - "ਅੱਗ" - "ਇਲੈਕਟ੍ਰੈਕ ਟੌਰਚ" - "ਸੰਨੀ" - "ਹਥੌੜਾ" - "ਨਟ ਐਂਡ ਬੋਲਟ" - "ਹੋਚੋ" - "ਪਸਤੌਲ" - "ਮਾਈਕ੍ਰੋਸਕੋਪ" - "ਟੈਲੀਸਕੋਪ" - "ਕ੍ਰਿਸਟਲ ਬੌਲ" - "ਵਿਚਾਲੇ ਬਿੰਦੀ ਨਾਲ ਛੇ ਨੋਕਾਂ ਵਾਲਾ ਤਾਰਾ" - "ਅਰੰਭ ਕਰਤਾ ਲਈ ਜਾਪਾਨੀ ਚਿੰਨ੍ਹ" - "ਤ੍ਰਿਸ਼ੂਲ ਦਾ ਚਿੰਨ੍ਹ" - "ਕਾਲਾ ਵਰਗਾਕਾਰ ਬਟਨ" - "ਚਿੱਟਾ ਵਰਗਾਕਾਰ ਬਟਨ" - "ਵੱਡਾ ਲਾਲ ਗੋਲਾ" - "ਵੱਡਾ ਨੀਲਾ ਗੋਲਾ" - "ਵੱਡਾ ਸੰਤਰੀ ਹੀਰਾ" - "ਵੱਡਾ ਨੀਲਾ ਹੀਰਾ" - "ਛੋਟਾ ਸੰਤਰੀ ਹੀਰਾ" - "ਛੋਟਾ ਨੀਲਾ ਹੀਰਾ" - "ਉੱਪਰ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਲਾਲ ਤਿਕੋਨ" - "ਹੇਠਾਂ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਲਾਲ ਤਿਕੋਨ" - "ਉੱਪਰ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਛੋਟਾ ਲਾਲ ਤਿਕੋਨ" - "ਹੇਠਾਂ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਛੋਟਾ ਲਾਲ ਤਿਕੋਨ" - "ਘੜੀ ਫੇਸ ਇੱਕ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਦੋ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਤਿੰਨ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਚਾਰ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਪੰਜ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਛੇ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਸੱਤ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਅੱਠ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਨੌ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਦਸ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਗਿਆਰਾਂ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਬਾਰਾਂ ਵਜੇ" - "ਘੜੀ ਫੇਸ ਇੱਕ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਦੋ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਤਿੰਨ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਚਾਰ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਪੰਜ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਛੇ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਸੱਤ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਅੱਠ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਨੌ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਦਸ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਗਿਆਰਾਂ-ਤੀਹ" - "ਘੜੀ ਫੇਸ ਬਾਰਾਂ-ਤੀਹ" - "ਮਾਊਂਟ ਫਿਊਜੀ" - "ਟੋਕਿਓ ਟਾਵਰ" - "ਸਟੈਚੂ ਔਫ ਲਿਬਰਟੀ" - "ਜਾਪਾਨ ਦੇ ਛਾਇਆ ਚਿੱਤਰ" - "ਮੋਏਆਈ" - "ਖਿਸਿਆਣੀ ਹਾਸੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਮੁਸਕਰਾਉਂਦੀਆਂ ਅੱਖਾਂ ਨਾਲ ਖਿਸਿਆਣੀ ਹਾਸੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਖੁਸ਼ੀ ਦੇ ਹੰਝੁੂਆਂ ਵਾਲਾ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਅਤੇ ਮੁਸਕਰਾਉਂਦੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਅਤੇ ਠੰਢੇ ਪਸੀਨਾ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਅਤੇ ਕੱਸ ਕੇ -ਬੰਦ ਕੀਤੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਪ੍ਰਕਾਸ਼ ਕੁੰਡਲ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਸਿੰਗਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਅੱਖਾਂ ਝਮਕਦਾ ਚਿਹਰਾ" - "ਮੁਸਕਰਾਉਂਦੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਸੁਆਦੀ ਭੋਜਨ ਦਾ ਸੁਆਦ ਲੈਂਦਾ ਚਿਹਰਾ" - "ਸਕੂਨ ਵਾਲਾ ਚਿਹਰਾ" - "ਦਿਲ-ਆਕ੍ਰਿਤੀ ਵਾਲੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਧੁੱਪ ਦੀਆਂ ਐਨਕਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਬਣਾਵਟੀ ਹਾਸੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਉਦਾਸੀਨ ਚਿਹਰਾ" - "ਭਾਵ ਰਹਿਤ ਚਿਹਰਾ" - "ਨਾਖ਼ੁਸ਼ ਚਿਹਰਾ" - "ਠੰਢੇ ਪਸੀਨੇ ਵਾਲਾ ਚਿਹਰਾ" - "ਧਿਆਨ ਮਗਨ ਚਿਹਰਾ" - "ਘਬਰਾਇਆ ਹੋਇਆ ਚਿਹਰਾ" - "ਹੈਰਾਨੀ ਭਰਿਆ ਚਿਹਰਾ" - "ਚੁੰਮੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਇੱਕ ਚੁੰਮੀ ਉਛਾਲਦਾ ਚਿਹਰਾ" - "ਮੁਸਕਰਾਉਂਦੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਚੁੰਮੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਬੰਦ ਅੱਖਾਂ ਵਾਲਾ ਚੁੰਮੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਬਾਹਰ ਨਿੱਕਲੀ ਹੋਈ ਜੀਭ ਵਾਲਾ ਚਿਹਰਾ" - "ਬਾਹਰ ਨਿੱਕਲੀ ਹੋਈ ਜੀਭ ਅਤੇ ਝਮਕਦੀ ਅੱਖ ਵਾਲਾ ਚਿਹਰਾ" - "ਬਾਹਰ ਨਿੱਕਲੀ ਹੋਈ ਜੀਭ ਅਤੇ ਕੱਸਕੇ-ਬੰਦ ਕੀਤੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਚਿਹਰਾ" - "ਨਿਰਾਸ਼ ਚਿਹਰਾ" - "ਚਿੰਤਾਤੁਰ ਚਿਹਰਾ" - "ਗੁੱਸੇ ਵਾਲਾ ਚਿਹਰਾ" - "ਬੁੱਲ੍ਹ ਟੇਰਦਾ ਚਿਹਰਾ" - "ਰੋਂਦਾ ਚਿਹਰਾ" - "ਦ੍ਰਿੜ੍ਹ ਚਿਹਰਾ" - "ਜਿੱਤ ਦੇ ਅੰਦਾਜ਼ ਵਾਲਾ ਚਿਹਰਾ" - "ਨਿਰਾਸ਼ ਪਰੰਤੂ ਸਕੂਨ ਵਾਲਾ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਵਾਲਾ ਤਿਉੜੀ ਚੜ੍ਹਾਉਂਦਾ ਚਿਹਰਾ" - "ਤੀਬਰ ਵੇਦਨਾ ਵਾਲਾ ਚਿਹਰਾ" - "ਡਰਿਆ ਹੋਇਆ ਚਿਹਰਾ" - "ਥੱਕਿਆ ਚਿਹਰਾ" - "ਉਨੀਂਦਾ ਚਿਹਰਾ" - "ਥੱਕਿਆ ਚਿਹਰਾ" - "ਦੰਦੀਆਂ ਚਿੜ੍ਹਾਉਂਦਾ ਚਿਹਰਾ" - "ਉੱਚੀ-ਉੱਚੀ ਰੋਂਦਾ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਵਾਲਾ ਚਿਹਰਾ" - "ਸ਼ਾਂਤਮਈ ਚਿਹਰਾ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਅਤੇ ਠੰਢੇ ਪਸੀਨੇ ਵਾਲਾ ਚਿਹਰਾ" - "ਡਰ ਨਾਲ ਚੀਕਦਾ ਚਿਹਰਾ" - "ਹੈਰਾਨਕੁੰਨ ਚਿਹਰਾ" - "ਲਾਲ ਚਿਹਰਾ" - "ਉਨੀਂਦਾ ਚਿਹਰਾ" - "ਚਕਰਾਉਂਦਾ ਚਿਹਰਾ" - "ਬਿਨਾਂ ਮੂੰਹ ਦਾ ਚਿਹਰਾ" - "ਮੈਡੀਕਲ ਮਾਸਕ ਵਾਲਾ ਚਿਹਰਾ" - "ਮੁਸਕਰਾਉਂਦੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਖਿਸਿਆਉਂਦਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਖ਼ੁਸ਼ੀ ਦੇ ਹੰਝੂਆਂ ਵਾਲਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਦਿਲ-ਆਕ੍ਰਿਤੀ ਵਾਲੀਆਂ ਅੱਖਾਂ ਵਾਲਾ ਮੁਸਕਰਾਉਂਦਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਵਿੰਗੀ ਮੁਸਕਰਾਹਟ ਵਾਲਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਬੰਦ ਅੱਖਾਂ ਵਾਲਾ ਬਿੱਲੀ ਦਾ ਚੁੰਮਣ ਮੂੰਹ" - "ਬੁੱਲ੍ਹ ਟੇਰਦਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਰੋਂਦਾ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਥੱਕਿਆ ਬਿੱਲੀ ਦਾ ਮੂੰਹ" - "ਕੋਈ ਵੀ ਵਧੀਆ ਸੰਕੇਤ ਨਹੀਂ ਵਾਲਾ ਚਿਹਰਾ" - "ਠੀਕ ਸੰਕੇਤ ਵਾਲਾ ਚਿਹਰਾ" - "ਦਿਲੋਂ ਝੁਕਦਾ ਵਿਅਕਤੀ" - "ਕੁਝ-ਬੁਰਾ-ਨਾ ਦੇਖਦਾ ਬਾਂਦਰ" - "ਕੁਝ-ਬੁਰਾ-ਨਾ ਸੁਣਦਾ ਬਾਂਦਰ" - "ਕੁਝ-ਬੁਰਾ-ਨਾ ਬੋਲਦਾ ਬਾਂਦਰ" - "ਇੱਕ ਹੱਥ ਉੱਪਰ ਚੁੱਕਦਾ ਖ਼ੁਸ਼ ਵਿਅਕਤੀ" - "ਜਸ਼ਨ ਵਿੱਚ ਦੋਵੇਂ ਹੱਥ ਉੱਪਰ ਚੁੱਕਦਾ ਵਿਅਕਤੀ" - "ਤਿਉੜੀ ਚੜ੍ਹਾਉਂਦਾ ਵਿਅਕਤੀ" - "ਬੁੱਲ੍ਹ ਟੇਰਦੇ ਚਿਹਰੇ ਵਾਲਾ ਵਿਅਕਤੀ" - "ਜੋੜੇ ਹੋਏ ਹੱਥਾਂ ਵਾਲਾ ਵਿਅਕਤੀ" - "ਰੌਕੇਟ" - "ਹੈਲੀਕਾਪਟਰ" - "ਭਾਫ਼ ਵਾਲੇ ਰੇਲ ਦਾ ਇੰਜਣ" - "ਰੇਲਵੇ ਕਾਰ" - "ਹਾਈ-ਸਪੀਡ ਰੇਲਗੱਡੀ" - "ਬੁਲੇਟ ਨੋਜ ਵਾਲੀ ਹਾਈ-ਸਪੀਡ ਰੇਲਗੱਡੀ" - "ਰੇਲਗੱਡੀ" - "ਮੈਟਰੋ" - "ਲਾਈਟ ਰੇਲ" - "ਸਟੇਸ਼ਨ" - "ਟ੍ਰਾਮ" - "ਟ੍ਰਾਮ ਕਾਰ" - "ਬੱਸ" - "ਆਉਂਦੀ ਹੋਈ ਬੱਸ" - "ਟਰਾਲੀਬੱਸ" - "ਬੱਸ ਸਟਾਪ" - "ਮਿਨੀਬੱਸ" - "ਐਂਬੂਲੈਂਸ" - "ਅੱਗ ਬੁਝਾਉਣ ਵਾਲਾ ਇੰਜਣ" - "ਪੁਲਿਸ ਕਾਰ" - "ਆਉਂਦੀ ਹੋਈ ਪੁਲਿਸ ਕਾਰ" - "ਟੈਕਸੀ" - "ਆਉਂਦੀ ਹੋਈ ਟੈਕਸੀ" - "ਮੋਟਰ ਜਾਂ ਕਾਰ" - "ਆਉਂਦੀ ਹੋਈ ਮੋਟਰ ਜਾਂ ਕਾਰ" - "ਮਨੋਰੰਜਨ ਵਾਹਨ" - "ਡਿਲੀਵਰੀ ਟਰੱਕ" - "ਜੋੜੀ ਹੋਈ ਲਾਰੀ" - "ਟਰੈਕਟਰ" - "ਮੋਨੋਰੇਲ" - "ਮਾਊਂਟੇਨ ਰੇਲਵੇ" - "ਸਸਪੈਂਸ਼ਨ ਰੇਲਵੇ" - "ਮਾਊਂਟੇਨ ਕੇਬਲਵੇ" - "ਏਰੀਅਲ ਟਰਾਮਵੇ" - "ਜਹਾਜ਼" - "ਰੋਬੋਟ" - "ਸਪੀਡਬੋਟ" - "ਲੇਟਵੀਂ ਟ੍ਰੈਫਿਕ ਲਾਈਟ" - "ਖੜ੍ਹਵੀਂ ਟ੍ਰੈਫਿਕ ਲਾਈਟ" - "ਉਸਾਰੀ ਚਿੰਨ੍ਹ" - "ਘੁੰਮਦੀ ਲਾਈਟ ਵਾਲੀਆਂ ਪੁਲਿਸ ਕਾਰਾਂ" - "ਪੋਸਟ ਤੇ ਤਿਕੋਨਾ ਝੰਡਾ" - "ਦਰਵਾਜਾ" - "ਕੋਈ ਐਂਟਰੀ ਚਿੰਨ੍ਹ ਨਹੀਂ" - "ਤੰਮਾਕੂਨੋਸ਼ੀ ਚਿੰਨ੍ਹ" - "ਤੰਮਾਕੂਨੋਸ਼ੀ ਨਾ ਕਰੋ ਦਾ ਚਿੰਨ੍ਹ" - "ਕੂੜੇ ਨੂੰ ਸਹੀ ਸਥਾਨ ਤੇ ਰੱਖੋ ਦਾ ਚਿੰਨ੍ਹ" - "ਕੂੜਾ ਨਾ ਖਿਲਾਰੋ ਦਾ ਚਿੰਨ੍ਹ" - "ਪੀਣਯੋਗ ਪਾਣੀ ਦਾ ਚਿੰਨ੍ਹ" - "ਗ਼ੈਰ-ਪੀਣਯੋਗ ਪਾਣੀ ਦਾ ਚਿੰਨ੍ਹ" - "ਸਾਇਕਲ" - "ਕੋਈ ਸਾਇਕਲ ਨਹੀਂ" - "ਸਾਇਕਲ ਚਲਾਉਣ ਵਾਲਾ" - "ਮਾਊਂਟੇਨ ਤੇ ਸਾਇਕਲ ਚਲਾਉਣ ਵਾਲਾ" - "ਪੈਦਲ ਯਾਤਰੀ" - "ਕੋਈ ਪੈਦਲ ਯਾਤਰੀ ਨਹੀਂ" - "ਪਾਰ ਕਰਦੇ ਬੱਚੇ" - "ਆਦਮੀਆਂ ਦਾ ਚਿੰਨ੍ਹ" - "ਔਰਤਾਂ ਦਾ ਚਿੰਨ੍ਹ" - "ਪਖਾਨਾ" - "ਬਾਲ ਚਿੰਨ੍ਹ" - "ਗੁਸਲਖ਼ਾਨਾ" - "ਪਖਾਨਾ" - "ਸ਼ਾਵਰ" - "ਇਸ਼ਨਾਨ" - "ਬਾਥਟਬ" - "ਪਾਸਪੋਰਟ ਨਿਯੰਤਰਣ" - "ਕਸਟਮਸ" - "ਸਮਾਨ ਦਾ ਦਾਅਵਾ" - "ਖੱਬੇ ਪਾਸੇ ਦਾ ਸਮਾਨ" - diff --git a/java/res/values-pa-rIN/strings-letter-descriptions.xml b/java/res/values-pa-rIN/strings-letter-descriptions.xml deleted file mode 100644 index 1707f47da..000000000 --- a/java/res/values-pa-rIN/strings-letter-descriptions.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - "ਜ਼ਨਾਨਾ ਕ੍ਰਮਵਾਚਕ ਸੂਚਕ" - "ਮਾਈਕ੍ਰੋ ਚਿੰਨ੍ਹ" - "ਮਰਦਾਵਾਂ ਕ੍ਰਮਵਾਚਕ ਸੂਚਕ" - "ਨਿਊਨ S" - "A, ਗਰੇਵ" - "A, ਨਿਊਨ" - "A, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "A, ਲਹਿਰੀਆ ਡੈਸ਼" - "A, ਡਾਇਰੈਸਿਸ" - "A, ਉੱਪਰ ਅੰਗੂਠੀ" - "A, E, ਜੁੜਵਾਂ ਅੱਖਰ" - "C, ਸੈਡਿਲਾ" - "E, ਗਰੇਵ" - "E, ਨਿਊਨ" - "E, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "E, ਡਾਇਰੈਸਿਸ" - "I, ਗਰੇਵ" - "I, ਨਿਊਨ" - "I, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "I, ਡਾਇਰੈਸਿਸ" - "Eth" - "N, ਲਹਿਰੀਆ ਡੈਸ਼" - "O, ਗਰੇਵ" - "O, ਨਿਊਨ" - "O, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "O, ਲਹਿਰੀਆ ਡੈਸ਼" - "O, ਡਾਇਰੈਸਿਸ" - "O, ਸਟ੍ਰੋਕ" - "U, ਗਰੇਵ" - "U, ਨਿਊਨ" - "U, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "U, ਡਾਇਰੈਸਿਸ" - "Y, ਨਿਊਨ" - "ਕੰਡਾ" - "Y, ਡਾਇਰੈਸਿਸ" - "A, ਦੀਰਘ ਸਵਰ ਚਿੰਨ੍ਹ" - "A, ਬਰੀਵ" - "A, ਓਗੋਨੈਕ" - "C, ਨਿਊਨ" - "C, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "C, ਉੱਪਰ ਬਿੰਦੀ" - "C, ਕੈਰਨ" - "D, ਕੈਰਨ" - "D, ਸਟ੍ਰੋਕ" - "E, ਦੀਰਘ ਸਵਰ ਚਿੰਨ੍ਹ" - "E, ਬਰੀਵ" - "E, ਉੱਪਰ ਬਿੰਦੀ" - "E, ਓਗੋਨੈਕ" - "E, ਕੈਰਨ" - "G, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "G, ਬਰੀਵ" - "G, ਉੱਪਰ ਬਿੰਦੀ" - "G, ਸੈਡਿਲਾ" - "H, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "H, ਸਟ੍ਰੋਕ" - "I, ਲਹਿਰੀਆ ਡੈਸ਼" - "I, ਦੀਰਘ ਸਵਰ ਚਿੰਨ੍ਹ" - "I, ਬਰੀਵ" - "I, ਓਗੋਨੈਕ" - "ਡੌਟਲੈਸ I" - "I, J, ਜੁੜਵਾਂ ਅੱਖਰ" - "J, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "K, ਸੈਡਿਲਾ" - "ਕ੍ਰਾ" - "L, ਨਿਊਨ" - "L, ਸੈਡਿਲਾ" - "L, ਕੈਰਨ" - "L, ਵਿਚਾਲੇ ਬਿੰਦੀ" - "L, ਸਟ੍ਰੋਕ" - "N, ਨਿਊਨ" - "N, ਸੈਡਿਲਾ" - "N, ਕੈਰਨ" - "N, ਪਹਿਲਾਂ ਅੱਖਰ ਲੋਪ ਚਿੰਨ੍ਹ" - "ਅੰਗ੍ਰੇਜ਼ੀ" - "O, ਦੀਰਘ ਸਵਰ ਚਿੰਨ੍ਹ" - "O, ਬਰੀਵ" - "O, ਡਬਲ ਨਿਊਨ" - "O, E, ਜੁੜਵਾਂ ਅੱਖਰ" - "R, ਨਿਊਨ" - "R, ਸੈਡਿਲਾ" - "R, ਕੈਰਨ" - "S, ਨਿਊਨ" - "S, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "S, ਸੈਡਿਲਾ" - "S, ਕੈਰਨ" - "T, ਸੈਡਿਲਾ" - "T, ਕੈਰਨ" - "T, ਸਟ੍ਰੋਕ" - "U, ਲਹਿਰੀਆ ਡੈਸ਼" - "U, ਦੀਰਘ ਸਵਰ ਚਿੰਨ੍ਹ" - "U, ਬਰੀਵ" - "U, ਉੱਪਰ ਅੰਗੂਠੀ" - "U, ਡਬਲ ਨਿਊਨ" - "U, ਓਗੋਨੈਕ" - "W, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "Y, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ" - "Z, ਨਿਊਨ" - "Z, ਉੱਪਰ ਬਿੰਦੀ" - "Z, ਕੈਰਨ" - "ਲੰਮਾ S" - "O, ਸਿੰਗ" - "U, ਸਿੰਗ" - "S, ਹੇਠਾਂ ਕਾਮਾ" - "T, ਹੇਠਾਂ ਕਾਮਾ" - "ਲਘੂ ਸਵਰ ਧੁਨੀ" - "A, ਹੇਠਾਂ ਬਿੰਦੀ" - "A, ਉੱਪਰ ਹੁੱਕ" - "A, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਨਿਊਨ" - "A, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਗਰੇਵ" - "A, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਉੱਪਰ ਹੁੱਕ" - "A, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਲਹਿਰੀਆ ਡੈਸ਼" - "A, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਹੇਠਾਂ ਬਿੰਦੀ" - "A, ਬਰੀਵ ਅਤੇ ਨਿਊਨ" - "A, ਬਰੀਵ ਅਤੇ ਗਰੇਵ" - "A, ਬਰੀਵ ਅਤੇ ਉੱਪਰ ਹੁੱਕ" - "A, ਬਰੀਵ ਅਤੇ ਲਹਿਰੀਆ ਡੈਸ਼" - "A, ਬਰੀਵ ਅਤੇ ਹੇਠਾਂ ਬਿੰਦੀ" - "E, ਹੇਠਾਂ ਬਿੰਦੀ" - "E, ਉੱਪਰ ਹੁੱਕ" - "E, ਲਹਿਰੀਆ ਡੈਸ਼" - "E, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਨਿਊਨ" - "E, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਗਰੇਵ" - "E, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਉੱਪਰ ਹੁੱਕ" - "E, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਲਹਿਰੀਆ ਡੈਸ਼" - "E, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਹੇਠਾਂ ਬਿੰਦੀ" - "I, ਉੱਪਰ ਹੁੱਕ" - "I, ਹੇਠਾਂ ਬਿੰਦੀ" - "O, ਹੇਠਾਂ ਬਿੰਦੀ" - "O, ਉੱਪਰ ਹੁੱਕ" - "O, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਨਿਊਨ" - "O, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਗਰੇਵ" - "O, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਉੱਪਰ ਹੁੱਕ" - "O, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਲਹਿਰੀਆ ਡੈਸ਼" - "O, ਦੀਰਘਤਾ ਸੂਚਕ ਚਿੰਨ੍ਹ ਅਤੇ ਹੇਠਾਂ ਬਿੰਦੀ" - "O, ਸਿੰਗ ਅਤੇ ਨਿਊਨ" - "O, ਸਿੰਗ ਅਤੇ ਗਰੇਵ" - "O, ਸਿੰਗ ਅਤੇ ਉੱਪਰ ਹੁੱਕ" - "O, ਸਿੰਗ ਅਤੇ ਲਹਿਰੀਆ ਡੈਸ਼" - "O, ਸਿੰਗ ਅਤੇ ਹੇਠਾਂ ਬਿੰਦੀ" - "U, ਹੇਠਾਂ ਬਿੰਦੀ" - "U, ਉੱਪਰ ਹੁੱਕ" - "U, ਸਿੰਗ ਅਤੇ ਨਿਊਨ" - "U, ਸਿੰਗ ਅਤੇ ਗਰੇਵ" - "U, ਸਿੰਗ ਅਤੇ ਉੱਪਰ ਹੁੱਕ" - "U, ਸਿੰਗ ਅਤੇ ਲਹਿਰੀਆ ਡੈਸ਼" - "U, ਸਿੰਗ ਅਤੇ ਹੇਠਾਂ ਬਿੰਦੀ" - "Y, ਗਰੇਵ" - "Y, ਹੇਠਾਂ ਬਿੰਦੀ" - "Y, ਉੱਪਰ ਹੁੱਕ" - "Y, ਲਹਿਰੀਆ ਡੈਸ਼" - "ਇਨਵਰਟਿਡ ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ" - "ਖੱਬੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਡਬਲ ਕੋਣ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਵਿਚਾਲੇ ਬਿੰਦੀ" - "ਉੱਪਰ ਅੰਕਿਤ ਇੱਕ" - "ਸੱਜੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਡਬਲ ਕੋਣ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਇਨਵਰਟਿਡ ਪ੍ਰਸ਼ਨ ਚਿੰਨ੍ਹ" - "ਖੱਬੇ ਪਾਸੇ ਸਿੰਗਲ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਸੱਜੇ ਪਾਸੇ ਸਿੰਗਲ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਸਿੰਗਲ ਛੋਟਾ-9 ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਖੱਬੇ ਪਾਸੇ ਡਬਲ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਸੱਜੇ ਪਾਸੇ ਡਬਲ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਛੁਰਾ" - "ਡਬਲ ਛੁਰਾ" - "ਪ੍ਰਤੀ ਮਿਲੀ ਚਿੰਨ੍ਹ" - "ਪ੍ਰਾਈਮ" - "ਡਬਲ ਪ੍ਰਾਈਮ" - "ਸਿੰਗਲ ਖੱਬੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਕੋਣ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਸਿੰਗਲ ਸੱਜੇ-ਸੰਕੇਤ ਦੇਣ ਵਾਲਾ ਕੋਣ ਉਕਤੀ ਚਿੰਨ੍ਹ" - "ਉੱਪਰ ਅੰਕਿਤ ਚਾਰ" - "ਉੱਪਰ ਅੰਕਿਤ ਲਾਤੀਨੀ ਛੋਟਾ ਅੱਖਰ n" - "ਪੇਸੋ ਚਿੰਨ੍ਹ" - "ਇਸਦੇ ਪਤੇ ਤੇ" - "ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਹੇਠਾਂ ਵੱਲ ਤੀਰ ਦਾ ਨਿਸ਼ਾਨ" - "ਖਾਲੀ ਸੈਟ" - "ਵਿਸਤਾਰ" - "ਇਸਤੋਂ-ਘੱਟ ਜਾਂ ਇਸਦੇ ਬਰਾਬਰ" - "ਇਸਤੋਂ-ਵੱਧ ਜਾਂ ਇਸਦੇ ਬਰਾਬਰ" - "ਕਾਲਾ ਤਾਰਾ" - diff --git a/java/res/values-pa-rIN/strings-talkback-descriptions.xml b/java/res/values-pa-rIN/strings-talkback-descriptions.xml deleted file mode 100644 index f1654fcef..000000000 --- a/java/res/values-pa-rIN/strings-talkback-descriptions.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - "ਉੱਚੀ ਬੋਲੀਆਂ ਗਈਆਂ ਪਾਸਵਰਡ ਕੁੰਜੀਆਂ ਸੁਣਨ ਲਈ ਇੱਕ ਹੈਡਸੈਟ ਪਲਗ ਇਨ ਕਰੋ।" - "ਮੌਜੂਦਾ ਟੈਕਸਟ %s ਹੈ" - "ਕੋਈ ਟੈਕਸਟ ਦਰਜ ਨਹੀਂ ਕੀਤਾ" - "%1$s %2$s ਦਾ %3$s ਵਿੱਚ ਸੋਧ ਕਰਦਾ ਹੈ" - "%1$s ਆਟੋ-ਸੁਧਾਈ ਕਰਦੀ ਹੈ" - "ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ" - "ਅਗਿਆਤ ਅੱਖਰ" - "ਸ਼ਿਫ਼ਟ" - "ਹੋਰ ਚਿੰਨ੍ਹ" - "ਸ਼ਿਫ਼ਟ" - "ਚਿੰਨ੍ਹ" - "ਸ਼ਿਫ਼ਟ" - "ਮਿਟਾਓ" - "ਚਿੰਨ੍ਹ" - "ਅੱਖਰ" - "ਨੰਬਰ" - "ਸੈਟਿੰਗਾਂ" - "ਟੈਬ" - "ਸਪੇਸ" - "ਵੌਇਸ ਇਨਪੁਟ" - "ਇਮੋਜੀ" - "ਵਾਪਸ ਜਾਓ" - "ਖੋਜੋ" - "ਬਿੰਦੀ" - "ਭਾਸ਼ਾ ਸਵਿਚ ਕਰੋ" - "ਅਗਲਾ" - "ਪਿਛਲਾ" - "ਸ਼ਿਫ਼ਟ ਸਮਰਥਿਤ" - "ਕੈਪਸ ਲੌਕ ਸਮਰਥਿਤ" - "ਚਿੰਨ੍ਹ ਮੋਡ" - "ਹੋਰ ਚਿੰਨ੍ਹ ਮੋਡ" - "ਅੱਖਰ ਮੋਡ" - "ਫੋਨ ਮੋਡ" - "ਫੋਨ ਚਿੰਨ੍ਹ ਮੋਡ" - "ਕੀਬੋਰਡ ਲੁਕਾਇਆ" - "%s ਕੀਬੋਰਡ ਦਿਖਾ ਰਿਹਾ ਹੈ" - "ਮਿਤੀ" - "ਮਿਤੀ ਅਤੇ ਸਮਾਂ" - "ਈਮੇਲ" - "ਮੈਸੇਂਜ਼ਿੰਗ" - "ਨੰਬਰ" - "ਫੋਨ" - "ਟੈਕਸਟ" - "ਸਮਾਂ" - "URL" - "ਹਾਲੀਆ" - "ਲੋਕ" - "ਵਸਤਾਂ" - "ਕੁਦਰਤ" - "ਥਾਵਾਂ" - "ਚਿੰਨ੍ਹ" - "ਇਮੋਟੀਕੋਨਸ" - "ਕੈਪੀਟਲ %s" - "ਕੈਪੀਟਲ I" - "ਕੈਪੀਟਲ I, ਉੱਪਰ ਬਿੰਦੀ" - "ਅਗਿਆਤ ਚਿੰਨ੍ਹ" - "ਅਗਿਆਤ ਇਮੋਜੀ" - "ਅਕੇਵੇਂ ਵਾਲਾ ਚਿਹਰਾ" - "ਪਰੇਸ਼ਾਨ ਚਿਹਰਾ" - "ਧੁੱਪ ਦੀਆਂ ਐਨਕਾਂ ਪਹਿਨਿਆ ਹੋਇਆ ਚਿਹਰਾ" - "ਹੈਰਾਨਕੁੰਨ ਚਿਹਰਾ" - "ਚੁੰਮੀ ਵਾਲਾ ਚਿਹਰਾ" - "ਤਿਉੜੀ ਚੜ੍ਹਾਉਂਦਾ ਚਿਹਰਾ" - "ਬਦਲਵੇਂ ਅੱਖਰ ਉਪਲਬਧ ਹਨ" - "ਬਦਲਵੇਂ ਅੱਖਰ ਬਰਖਾਸਤ ਕੀਤੇ ਗਏ ਹਨ" - "ਬਦਲਵੇਂ ਸੁਝਾਅ ਉਪਲਬਧ ਹਨ" - "ਬਦਲਵੇਂ ਸੁਝਾਅ ਬਰਖਾਸਤ ਕੀਤੇ ਗਏ ਹਨ" - diff --git a/java/res/values-pa-rIN/strings.xml b/java/res/values-pa-rIN/strings.xml deleted file mode 100644 index 5c72b969a..000000000 --- a/java/res/values-pa-rIN/strings.xml +++ /dev/null @@ -1,210 +0,0 @@ - - - - - "ਇਨਪੁਟ ਚੋਣਾਂ" - "ਸੰਪਰਕ ਨਾਮ ਦੇਖੋ" - "ਸਪੈਲ ਚੈਕਰ ਤੁਹਾਡੀ ਸੰਪਰਕ ਸੂਚੀ ਵਿੱਚੋਂ ਐਂਟਰੀਜ ਵਰਤਦਾ ਹੈ" - "ਕੀਪ੍ਰੈਸ ਤੇ ਵਾਈਬ੍ਰੇਟ" - "ਕ੍ਰੀਪ੍ਰੈਸ ਤੇ ਅਵਾਜ਼" - "ਕੀਪ੍ਰੈਸ ਤੇ ਪੌਪਅਪ" - "ਤਰਜੀਹਾਂ" - "ਖਾਤੇ & ਪ੍ਰਾਈਵੇਸੀ" - "ਪ੍ਰਗਟਾਅ & ਲੇਆਉਟਸ" - "ਸੰਕੇਤ ਟਾਈਪਿੰਗ" - "ਟੈਕਸਟ ਸੁਧਾਈ" - "ਉੱਨਤ" - "ਵਿਸ਼ਾ" - "ਸਪਲਿਟ ਕੀਬੋਰਡ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ" - "Google ਕੀਬੋਰਡ ਸਿੰਕ" - "ਸਿੰਕ ਚਾਲੂ ਕੀਤਾ ਗਿਆ ਹੈ" - "ਡਿਵਾਈਸਾਂ ਵਿੱਚ ਆਪਣਾ ਨਿੱਜੀ ਸ਼ਬਦਕੋਸ਼ ਸਿੰਕ ਕਰੋ" - "ਹੁਣ ਸਿੰਕ ਕਰੋ" - "ਕਲਾਉਡ ਡਾਟਾ ਮਿਟਾਓ" - "Google ਤੋਂ ਤੁਹਾਡਾ ਸਿੰਕ ਕੀਤਾ ਡਾਟਾ ਮਿਟਾਉਂਦਾ ਹੈ" - "ਤੁਹਾਡਾ ਸਿੰਕ ਕੀਤਾ ਡਾਟਾ ਕਲਾਉਡ ਤੋਂ ਮਿਟਾ ਦਿੱਤਾ ਜਾਏਗਾ। ਕੀ ਤੁਸੀਂ ਨਿਸ਼ਚਿਤ ਹੋ?" - "ਮਿਟਾਓ" - "ਰੱਦ ਕਰੋ" - "ਤੁਹਾਡਾ ਨਿੱਜੀ ਸ਼ਬਦਕੋਸ਼ ਸਿੰਕ ਕੀਤਾ ਜਾਏਗਾ ਅਤੇ Google ਸਰਵਰਾਂ ਤੇ ਬੈਕ ਅਪ ਕੀਤਾ ਜਾਏਗਾ। ਸ਼ਬਦ ਬਾਰੰਬਾਰਤਾ ਦੀ ਅੰਕੜੇ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ ਸਾਡੇ ਉਤਪਾਦਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਇਕੱਤਰ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਸਾਰੀ ਜਾਣਕਾਰੀ ਦਾ ਇਕੱਤਰੀਕਰਨ ਅਤੇ ਵਰਤੋਂ ""Google ਦੀ ਪ੍ਰਾਈਵੇਸੀ ਨੀਤੀ""ਦੇ ਮੁਤਾਬਕ ਹੋਵੇਗੀ।" - "ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਇਸ ਡਿਵਾਈਸ ਤੇ ਇੱਕ Google ਖਾਤਾ ਜੋੜੋ।" - "ਬਿਜਨਸ ਖਾਤਿਆਂ ਲਈ Google ਐਪਸ ਵਾਲੀਆਂ ਡਿਵਾਈਸਾਂ ਲਈ ਸਿੰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" - "ਹੋਰਾਂ ਇਨਪੁਟ ਵਿਧੀਆਂ ਤੇ ਸਵਿਚ ਕਰੋ" - "ਭਾਸ਼ਾ ਸਵਿਚ ਕੁੰਜੀ ਹੋਰਾਂ ਇਨਪੁਟ ਵਿਧੀਆਂ ਨੂੰ ਵੀ ਸ਼ਾਮਲ ਕਰਦੀ ਹੈ" - "ਭਾਸ਼ਾ ਸਵਿਚ ਕੁੰਜੀ" - "ਜਦੋਂ ਮਲਟੀਪਲ ਭਾਸਾਵਾਂ ਸਮਰਥਿਤ ਹੋਣ ਤਾਂ ਦਿਖਾਓ" - "ਕੁੰਜੀ ਪੌਪਅਪ ਬਰਖਾਸਤ ਦੇਰੀ" - "ਕੋਈ ਦੇਰੀ ਨਹੀਂ" - "ਡਿਫੌਲਟ" - "%sms" - "ਸਿਸਟਮ ਡਿਫੌਲਟ" - "ਸੰਪਰਕ ਨਾਵਾਂ ਦਾ ਸੁਝਾਅ ਦਿਓ" - "ਸੁਝਾਵਾਂ ਅਤੇ ਸੋਧਾਂ ਲਈ ਸੰਪਰਕਾਂ ਵਿੱਚੋਂ ਨਾਮ ਵਰਤੋ" - "ਨਿੱਜੀ ਬਣਾਏ ਸੁਝਾਅ" - "%s ਸੁਧਾਰ ਕਰੋ" - "ਡਬਲ-ਸਪੇਸ ਮਿਆਦ" - "ਸਪੇਸਬਾਰ ਤੇ ਡਬਲ ਟੈਪ ਇੱਕ ਸਪੇਸ ਤੋਂ ਬਾਅਦ ਇੱਕ ਮਿਆਦ ਦਰਜ ਕਰਦਾ ਹੈ" - "ਆਟੋ-ਕੈਪਿਟਲਾਈਜ਼ੇਸ਼ਨ" - "ਹਰੇਕ ਵਾਕ ਦਾ ਪਹਿਲਾ ਸ਼ਬਦ ਕੈਪੀਟਲਾਈਜ਼ ਕਰੋ" - "ਨਿੱਜੀ ਸ਼ਬਦਕੋਸ਼" - "ਐਡ-ਓਨ ਸ਼ਬਦਕੋਸ਼" - "ਮੁੱਖ ਸ਼ਬਦਕੋਸ਼" - "ਸੁਧਾਈ ਸੁਝਾਅ ਦਿਖਾਓ" - "ਟਾਈਪਿੰਗ ਕਰਦੇ ਸਮੇਂ ਸੁਝਾਏ ਗਏ ਸ਼ਬਦ ਡਿਸਪਲੇ ਕਰੋ" - "ਅਪਮਾਨਜਨਕ ਸ਼ਬਦਾਂ ਨੂੰ ਬਲੌਕ ਕਰੋ" - "ਸੰਭਾਵਿਤ ਰੂਪ ਨਾਲ ਅਪਮਾਨਜਨਕ ਸ਼ਬਦਾਂ ਦਾ ਸੁਝਾਅ ਨਾ ਦਿਓ" - "ਆਟੋ-ਸੁਧਾਈ" - "ਸਪੇਸਬਾਰ ਅਤੇ ਵਿਸ਼ਰਾਮ ਚਿੰਨ੍ਹ ਗ਼ਲਤ ਟਾਈਪ ਕੀਤੇ ਸ਼ਬਦਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕਲੀ ਠੀਕ ਕਰਦੇ ਹਨ" - "ਬੰਦ" - "ਸੰਕੋਚਵਾਨ" - "ਆਕਰਮਣਸ਼ੀਲ" - "ਬਹੁਤ ਆਕਰਮਣਸ਼ੀਲ" - "ਅਗਲਾ-ਸ਼ਬਦ ਸੁਝਾਅ" - "ਸੁਝਾਅ ਦੇਣ ਵਿੱਚ ਪਿਛਲਾ ਸ਼ਬਦ ਵਰਤੋ" - "ਸੰਕੇਤ ਟਾਈਪਿੰਗ ਸਮਰੱਥ ਬਣਾਓ" - "ਅੱਖਰਾਂ ਰਾਹੀਂ ਸਲਾਈਡ ਕਰਕੇ ਇੱਕ ਸ਼ਬਦ ਇਨਪੁਟ ਕਰੋ" - "ਸੰਕੇਤ ਟ੍ਰਾਇਲ ਦਿਖਾਓ" - "ਸਕਿਰਿਆ ਫਲੋਟਿੰਗ ਪ੍ਰੀਵਿਊ" - "ਸੰਕੇਤ ਦਿੰਦੇ ਸਮੇਂ ਸੁਝਾਇਆ ਗਿਆ ਸ਼ਬਦ ਦੇਖੋ" - "ਵਾਕਾਂਸ਼ ਸੰਕੇਤ" - "ਸਪੇਸ ਕੁੰਜੀ ਸਰਕਾ ਕੇ ਸੰਕੇਤਾਂ ਦੇ ਦੌਰਾਨ ਸਪੇਸ ਇਨਪੁਟ ਕਰੋ" - "ਵੌਇਸ ਇਨਪੁਟ ਕੁੰਜੀ" - "ਕੋਈ ਵੌਇਸ ਇਨਪੁਟ ਵਿਧੀਆਂ ਸਮਰਥਿਤ ਨਹੀਂ। ਭਾਸ਼ਾ & ਇਨਪੁਟ ਸੈਟਿੰਗਾਂ ਦੀ ਜਾਂਚ ਕਰੋ।" - "ਇਨਪੁਟ ਵਿਧੀਆਂ ਕੌਂਫਿਗਰ ਕਰੋ" - "ਭਾਸ਼ਾਵਾਂ" - "ਸਹਾਇਤਾ & ਫੀਡਬੈਕ" - "ਭਾਸ਼ਾਵਾਂ" - "ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਦੁਬਾਰਾ ਛੋਹਵੋ" - "ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਇੱਥੇ ਛੋਹਵੋ" - "ਸ਼ਬਦਕੋਸ਼ ਉਪਲਬਧ" - "ਕੀਬੋਰਡ ਵਿਸ਼ਾ" - "ਖਾਤੇ ਸਵਿਚ ਕਰੋ" - "ਕੋਈ ਖਾਤੇ ਨਹੀਂ ਚੁਣੇ" - "ਇਸ ਵੇਲੇ %1$s ਵਰਤ ਰਿਹਾ ਹੈ" - "ਠੀਕ" - "ਰੱਦ ਕਰੋ" - "ਸਾਈਨ ਆਉਟ ਕਰੋ" - "ਵਰਤਣ ਲਈ ਇੱਕ ਖਾਤਾ ਚੁਣੋ" - "ਅੰਗ੍ਰੇਜ਼ੀ (ਯੂਕੇ)" - "ਅੰਗ੍ਰੇਜੀ (ਅਮਰੀਕਾ)" - "ਸਪੇਨੀ (ਅਮਰੀਕਾ)" - "ਹਿੰਗਲਿੰਸ਼" - "ਸਰਬੀਅਨ (ਲਾਤੀਨੀ)" - "ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਕੇ.) (%s)" - "ਅੰਗਰੇਜ਼ੀ (ਅਮਰੀਕਾ) (%s)" - "ਸਪੇਨੀ (ਅਮਰੀਕਾ) (%s)" - "ਹਿੰਗਲਿਸ਼(%s)" - "ਸਰਬੀਅਨ (%s)" - "%s (ਪਰੰਪਰਿਕ)" - "%s (ਕੰਪੈਕਟ)" - "ਕੋਈ ਭਾਸ਼ਾ ਨਹੀਂ (ਵਰਨਮਾਲਾ)" - "ਵਰਨਮਾਲਾ (QWERTY)" - "ਵਰਨਮਾਲਾ (QWERTZ)" - "ਵਰਨਮਾਲਾ (AZERTY)" - "ਵਰਨਮਾਲਾ (ਵੋਰਕ)" - "ਵਰਨਮਾਲਾ (ਕੋਲਮੈਕ)" - "ਵਰਨਮਾਲਾ (PC)" - "ਇਮੋਜੀ" - "ਕੀਬੋਰਡ ਵਿਸ਼ਾ" - "ਕਸਟਮ ਇਨਪੁਟ ਸਟਾਈਲ" - "ਸਟਾਈਲ ਜੋੜੋ" - "ਜੋੜੋ" - "ਹਟਾਓ" - "ਸੁਰੱਖਿਅਤ ਕਰੋ" - "ਭਾਸ਼ਾ" - "ਲੇਆਉਟ" - "ਇਸਤੋਂ ਪਹਿਲਾਂ ਕਿ ਤੁਸੀਂ ਆਪਣਾ ਕਸਟਮ ਇਨਪੁਟ ਸਟਾਈਲ ਵਰਤਣਾ ਸ਼ੁਰੂ ਕਰੋ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ। ਕੀ ਤੁਸੀਂ ਹੁਣ ਇਸਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?" - "ਸਮਰੱਥ ਬਣਾਓ" - "ਹੁਣ ਨਹੀਂ" - "ਸਮਾਨ ਇਨਪੁਟ ਸਟਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ: %s" - "ਕੀਪ੍ਰੈਸ ਵਾਈਬ੍ਰੇਸ਼ਨ ਮਿਆਦ" - "ਕੀਪ੍ਰੈਸ ਅਵਾਜ਼ ਵੌਲਯੂਮ" - "ਕੁੰਜੀ ਲੰਮੀ ਪ੍ਰੈਸ ਦੇਰੀ" - "ਡਿਫੌਲਟ" - "%s ਤੇ ਸੁਆਗਤ ਹੈ" - "ਸੰਕੇਤ ਟਾਈਪਿੰਗ ਨਾਲ" - "ਸ਼ੁਰੂਆਤ ਕਰੋ" - "ਅਗਲਾ ਸਟੈਪ" - "%s ਸੈਟ ਅਪ ਕਰ ਰਿਹਾ ਹੈ" - "%s ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ" - "ਕਿਰਪਾ ਕਰਕੇ \"%s\" ਦੀ ਆਪਣੀ ਭਾਸ਼ਾ & ਇਨਪੁਟ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾਂਚ ਕਰੋ। ਇਹ ਇਸਨੂੰ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਤੇ ਚਲਾਉਣ ਦਾ ਅਧਿਕਾਰ ਦੇਵੇਗਾ।" - "%s ਪਹਿਲਾਂ ਹੀ ਤੁਹਾਡੀ ਭਾਸ਼ਾ & ਇਨਪੁਟ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸਮਰਥਿਤ ਹੈ, ਇਸਲਈ ਇਹ ਸਟੈਪ ਹੋ ਗਿਆ ਹੈ। ਅਗਲੇ ਤੇ ਜਾਣ ਲਈ ਚਾਲੂ ਕਰੋ!" - "ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸਮਰੱਥ ਬਣਾਓ" - "%s ਤੇ ਸਵਿਚ ਕਰੋ" - "ਫਿਰ, \"%s\" ਨੂੰ ਆਪਣੀ ਸਕਿਰਿਆ ਟੈਕਸਟ-ਇਨਪੁਟ ਵਿਧੀ ਦੇ ਤੌਰ ਤੇ ਚੁਣੋ।" - "ਇਨਪੁਟ ਵਿਧੀਆਂ ਸਵਿਚ ਕਰੋ" - "ਵਧਾਈ ਹੋਵੇ, ਤੁਸੀਂ ਸਾਰਾ ਸੈਟ ਕਰ ਲਿਆ ਹੈ!" - "ਹੁਣ ਤੁਸੀਂ %s ਨਾਲ ਆਪਣੇ ਸਾਰੇ ਮਨਪਸੰਦ ਐਪਸ ਨੂੰ ਟਾਈਪ ਕਰ ਸਕਦੇ ਹੋ।" - "ਵਾਧੂ ਭਾਸ਼ਾਵਾਂ ਕੌਂਫਿਗਰ ਕਰੋ" - "ਪੂਰਾ ਹੋਇਆ" - "ਐਪ ਆਈਕਨ ਦਿਖਾਓ" - "ਲਾਂਚਰ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਨ ਡਿਸਪਲੇ ਕਰੋ" - "ਸ਼ਬਦਕੋਸ਼ ਪ੍ਰਦਾਤਾ" - "ਸ਼ਬਦਕੋਸ਼ ਪ੍ਰਦਾਤਾ" - "ਸ਼ਬਦਕੋਸ਼ ਸੇਵਾ" - "ਸ਼ਬਦਕੋਸ਼ ਅਪਡੇਟ ਜਾਣਕਾਰੀ" - "ਐਡ-ਓਨ ਸ਼ਬਦਕੋਸ਼" - "ਸ਼ਬਦਕੋਸ਼ ਉਪਲਬਧ" - "ਸ਼ਬਦਕੋਸ਼ਾਂ ਦੀਆਂ ਸੈਟਿੰਗਾਂ" - "ਉਪਭੋਗਤਾ ਸ਼ਬਦਕੋਸ਼" - "ਉਪਭੋਗਤਾ ਸ਼ਬਦਕੋਸ਼" - "ਸ਼ਬਦਕੋਸ਼ ਉਪਲਬਧ" - "ਇਸ ਵੇਲੇ ਡਾਊਨਲੋਡ ਕਰ ਰਿਹਾ ਹੈ" - "ਇੰਸਟੌਲ ਕੀਤਾ" - "ਇੰਸਟੌਲ ਕੀਤਾ, ਅਸਮਰਥਿਤ" - "ਸ਼ਬਦਕੋਸ਼ ਸੇਵਾ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ" - "ਕੋਈ ਸ਼ਬਦਕੋਸ਼ ਉਪਲਬਧ ਨਹੀਂ" - "ਤਾਜ਼ਾ" - "ਆਖਰੀ ਵਾਰ ਅਪਡੇਟ ਕੀਤਾ" - "ਅਪਡੇਟਸ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ" - "ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…" - "ਮੁੱਖ ਸ਼ਬਦਕੋਸ਼" - "ਰੱਦ ਕਰੋ" - "ਸੈਟਿੰਗਾਂ" - "ਇੰਸਟੌਲ ਕਰੋ" - "ਰੱਦ ਕਰੋ" - "ਮਿਟਾਓ" - "ਤੁਹਾਡੀ ਮੋਬਾਈਲ ਡਿਵਾਈਸ ਤੇ ਚੁਣੀ ਗਈ ਭਾਸ਼ਾ ਵਿੱਚ ਇੱਕ ਉਪਲਬਧ ਸ਼ਬਦਕੋਸ਼ ਹੈ।<br/> ਅਸੀਂ ਤੁਹਾਡੇ ਟਾਈਪਿੰਗ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ %1$s ਸ਼ਬਦਕੋਸ਼ <b> ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ</b> ਸਿਫਾਰਿਸ਼ ਕਰਦੇ ਹਾਂ। <br/> <br/> ਡਾਊਨਲੋਡ ਨੂੰ 3G ਤੇ ਇੱਕ ਜਾਂ ਦੋ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ। ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ <b> ਅਨਲਿਮਿਟੇਡ ਡਾਟਾ ਪਲਾਨ</b>.<br/> ਹੈ ਤਾਂ ਖ਼ਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ, ਜੇਕਰ ਤੁਹਾਨੂੰ ਪੱਕਾ ਪਤਾ ਨਹੀਂ ਹੈ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਕਿਹੜਾ ਡਾਟਾ ਪਲਾਨ ਹੈ, ਤਾਂ ਅਸੀਂ ਆਟੋਮੈਟਿਕਲੀ ਡਾਊਨਲੋਡ ਚਾਲੂ ਕਰਨ ਲਈ ਇੱਕ Wi-Fi ਕਨੈਕਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਸਿਫਾਰਿਸ਼ ਕਰਦੇ ਹਾਂ।<br/> <br/> ਸੁਝਾਅ: ਤੁਸੀਂ ਆਪਣੀ ਮੋਬਾਈਲ ਡਿਵਾਈਸ ਦੇ ਮੀਨੂ ਵਿੱਚ <b>ਭਾਸ਼ਾ & ਇਨਪੁਟ</b> <b> ਸੈਟਿੰਗਾਂ</b> ਤੇ ਜਾ ਕੇ ਸ਼ਬਦਕੋਸ਼ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਹਟਾ ਸਕਦੇ ਹੋ।" - "(%1$.1fMB) ਹੁਣ ਡਾਊਨਲੋਡ ਕਰੋ" - "Wi-Fi ਤੇ ਡਾਊਨਲੋਡ ਕਰੋ" - "%1$s ਲਈ ਇੱਕ ਸ਼ਬਦਕੋਸ਼ ਉਪਲਬਧ ਹੈ" - "ਸਮੀਖਿਆ ਕਰਨ ਅਤੇ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਦਬਾਓ" - "ਡਾਊਨਲੋਡਿੰਗ: %1$s ਲਈ ਸੁਝਾਅ ਜਲਦੀ ਹੀ ਤਿਆਰ ਹੋਣਗੇ।" - "ਵਰਜਨ %1$s" - "ਜੋੜੋ" - "ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਜੋੜੋ" - "ਵਾਕਾਂਸ਼" - "ਹੋਰ ਚੋਣਾਂ" - "ਘੱਟ ਚੋਣਾਂ" - "ਠੀਕ" - "ਸ਼ਬਦ:" - "ਸ਼ੌਰਟਕਟ:" - "ਭਾਸ਼ਾ:" - "ਇੱਕ ਸ਼ਬਦ ਟਾਈਪ ਕਰੋ" - "ਚੋਣਵਾਂ ਸ਼ੌਰਟਕਟ" - "ਸ਼ਬਦ ਸੰਪਾਦਿਤ ਕਰੋ" - "ਸੰਪਾਦਿਤ ਕਰੋ" - "ਮਿਟਾਓ" - "ਤੁਹਾਡੇ ਕੋਲ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਕੋਈ ਸ਼ਬਦ ਨਹੀਂ ਹਨ। ਜੋੜੋ (+) ਬਟਨ ਨੂੰ ਛੋਹ ਕੇ ਇੱਕ ਸ਼ਬਦ ਜੋੜੋ।" - "ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ ਲਈ" - "ਹੋਰ ਭਾਸ਼ਾਵਾਂ…" - "ਮਿਟਾਓ" - " ABCDEFGHIJKLMNOPQRSTUVWXYZ" - diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index 9669502d5..acc5cd457 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -56,7 +56,7 @@ "%s ms" "Ustawienie domyślne" "Proponuj osoby z kontaktów" - "W propozycjach i poprawkach użyj nazwisk z kontaktów" + "W podpowiedziach i poprawkach używaj nazwisk z kontaktów" "Spersonalizowane sugestie" "Popraw aplikację %s" "Szybka kropka ze spacją" @@ -67,7 +67,7 @@ "Dodatkowe słowniki" "Słownik główny" "Pokazuj propozycje poprawek" - "Wyświetl proponowane słowa podczas wpisywania" + "Wyświetlaj proponowane słowa podczas wpisywania" "Blokuj obraźliwe słowa" "Nie proponuj słów potencjalnie obraźliwych" "Autokorekta" @@ -76,13 +76,13 @@ "Umiarkowana" "Agresywna" "Bardzo agresywna" - "Podpowiadanie kolejnego słowa" + "Podpowiadaj kolejne słowo" "Pokazuj podpowiedzi na podstawie poprzedniego słowa" "Włącz pisanie gestami" "Wpisz słowo, przesuwając palcem po literach" "Pokazuj ślad gestu" "Dynamiczny podgląd słowa" - "Podczas gestykulacji będzie widoczne podpowiadane słowo" + "Podczas pisania gestami zobaczysz podpowiadane słowo" "Gest wyrażenia" "Wpisuj spacje podczas gestów, przesuwając palec do klawisza spacji" "Klawisz rozpoznawania mowy" @@ -137,6 +137,8 @@ "Wibracja przy naciśniętym klawiszu" "Głośność przy naciśniętym klawiszu" "Opóźnienie przy długim naciśnięciu" + "Emotikony z klawiatury fizycznej" + "Naciśnięcie klawisza Alt przywołuje okienko wyboru emotikonów" "Domyślne" "Witamy w aplikacji %s" "z pisaniem gestami" @@ -186,7 +188,7 @@ "Pobierz przez Wi-Fi" "Dostępny jest słownik %1$s" "Naciśnij, by sprawdzić i pobrać" - "Pobieranie – wkrótce będą dostępne sugestie w tym języku: %1$s." + "Pobieranie – podpowiedzi w tym języku (%1$s) będą dostępne wkrótce" "Wersja %1$s" "Dodaj" "Dodaj do słownika" diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index e4f48c89a..33350202d 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -137,6 +137,8 @@ "Duração vibr. ao premir teclas" "Volume do som ao premir teclas" "Atraso ao manter tecla premida" + "Emoji para teclado físico" + "A tecla Alt física mostra a paleta de emoji" "Predefinido" "Bem-vindo(a) a %s" "com a Escrita com Gestos" diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index a1c26ca00..1d79316f2 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -137,6 +137,8 @@ "Duração da vibração ao tocar" "Volume ao tocar na tela" "Atraso ao pressionar teclas" + "Emoticons para teclado físico" + "Tecla Alt física mostra a paleta de emoticons" "Padrão" "Bem-vindo ao %s" "com entrada por gestos" diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index ba01080ab..7c4a8f1ff 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -67,7 +67,7 @@ "Dicţionare suplimentare" "Dicţionar principal" "Afişaţi sugestii de corectare" - "Afişaţi sugestii de cuvinte în timpul introducerii textului" + "Afișează sugestii de cuvinte în timpul introducerii textului" "Blocați cuvintele jignitoare" "Nu se sugerează cuvinte potențial jignitoare" "Autocorectare" @@ -137,6 +137,8 @@ "Vibrare după apăsarea tastei" "Sunet la apăsarea tastelor" "Timpul apăsării lungi a tastei" + "Emoji pentru tastatura fizică" + "Tasta fizică Alt afișează panoul de emoji" "Prestabilit" "Bun venit la %s" "cu Tastarea gestuală" diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index bf6563bd0..e00670b25 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -137,6 +137,8 @@ "Вибросигнал при нажатии клавиш" "Звук при нажатии клавиш" "Долгое нажатие" + "Смайлики с внешней клавиатуры" + "Открывать список смайликов нажатием клавиши ALT" "По умолчанию" "Представляем приложение \"%s\"" "с непрерывным вводом" diff --git a/java/res/values-si-rLK/strings.xml b/java/res/values-si-rLK/strings.xml index 289a607fd..86b356fea 100644 --- a/java/res/values-si-rLK/strings.xml +++ b/java/res/values-si-rLK/strings.xml @@ -137,6 +137,8 @@ "යතුරු එබිම් කම්පන කාලපරිච්ඡේදය" "යතුරු එබීම් හඬ තීව්‍රතාවය" "යතුරු දිගු එබීම් ප්‍රමාදය" + "භෞතික යතුරුපුවරුව සඳහා ඉමොජි" + "භෞතික Alt යතුර ඉමොජි පෙන්වයි" "සුපුරුදු" "%s වෙත සාදරයෙන් පිළිගනිමු" "ඉංගිත ටයිප් කිරීම් සමග" diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index 9b1de1136..f95227bc6 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -21,14 +21,14 @@ "Možnosti zadávania textu a údajov" - "Vyhľadať kontakty" + "Hľadať mená kontaktov" "Kontrola pravopisu používa záznamy z vášho zoznamu kontaktov" "Pri stlačení klávesu vibrovať" "Zvuk pri stlačení klávesu" - "Zobraziť znaky pri stlačení klávesu" + "Detail znaku pri stlačení" "Predvoľby" "Účty a ochrana osobných údajov" - "Vzhľad a rozloženia" + "Vzhľad a rozloženie" "Písanie gestami" "Oprava textu" "Rozšírené" @@ -50,42 +50,42 @@ "Kláves na prepnutie jazyka pokrýva aj ďalšie metódy vstupu" "Kľúč na prepínanie jazyka" "Zobraziť, keď je povolených viac jazykov vstupu" - "Onesk. zrušenia kľúč. kon. okna" + "Oneskorenie detailu znaku" "Bez oneskorenia" - "Predvolená" + "Predvolené" "%s ms" - "Predvolené nastav." - "Navrhnúť mená kontaktov" - "Používať mená z Kontaktov na návrhy a opravy" + "Predvolené" + "Navrhovať mená kontaktov" + "Používať mená z kontaktov na návrhy a opravy" "Prispôsobené návrhy" "Zlepšiť aplikáciu %s" - "Bodka s medzerou" + "Bodka dvojitým medzerníkom" "Dvojitým klepnutím na medzerník vložíte bodku a medzeru." "Veľké písmená automaticky" "Písanie prvého slova v každej vete veľkým písmenom" "Osobný slovník" "Doplnkové slovníky" "Hlavný slovník" - "Zobraziť návrhy opráv" + "Zobrazovať návrhy opráv" "Zobrazovať navrhované slová počas písania" "Blokovať urážlivé slová" "Nenavrhovať potenciálne urážlivé slová" "Automatické opravy" - "Stlačením medzerníka a interpunkcie sa aut. opravia chybné slová" + "Medzerník s klávesom interpunkcie automaticky opraví chybné slovo" "Vypnuté" "Mierne" "Agresívne" "Veľmi agresívne" - "Návrhy ďalšieho slova" + "Navrhovať ďalšie slovo" "Návrhy podľa predchádzajúceho slova" "Povoliť písanie gestami" - "Vkladanie slov prejdením prstom po písmenách" + "Zadávanie slov prejdením prstom po písmenách" "Zobrazovať stopu gesta" "Dynamická plávajúca ukážka" "Zobrazenie navrhovaného slova pri písaní gestami" - "Frázové gesto" - "Medzery medzi gestá vložíte prejdením po klávese medzerníka" - "Kľúč hlasového vstupu" + "Frázové gestá" + "Zadávanie medzier prechádzaním cez kláves medzerníka" + "Kláves hlasového vstupu" "Nie sú povolené žiadne metódy hlasového vstupu. Skontrolujte nastavenia položky Jazyk a vstup." "Konfigurovať metódy vstupu" "Jazyky" @@ -102,8 +102,8 @@ "Zrušiť" "Odhlásiť sa" "Výber účtu, ktorý chcete použiť" - "Anglická klávesnica (UK)" - "Anglická klávesnica (US)" + "angličtina (Veľká Británia)" + "angličtina (USA)" "španielčina (USA)" "Hinglish" "srbčina (latinka)" @@ -115,7 +115,7 @@ "%s (tradičná)" "%s (kompaktná)" "Žiadny jazyk (latinka)" - "Latinka (QWERTY)" + "latinka (QWERTY)" "Latinka (QWERTZ)" "Latinka (AZERTY)" "Latinka (Dvorak)" @@ -134,9 +134,11 @@ "Povoliť" "Teraz nie" "Rovnaký štýl vstupu už existuje: %s" - "Trvanie vibrov. pri stlač. kl." - "Hlasitosť pri stlačení klávesu" - "Oneskor. pri stlač. a podržaní" + "Dĺžka vibrácie klávesu" + "Hlasitosť stlačenia klávesu" + "Oneskorenie dlhého stlačenia" + "Emodži pre fyzickú klávesnicu" + "Paletu emodži zobrazíte stlačením fyzického klávesa Alt." "Predvolené" "Vitajte v aplikácii %s" "s funkciou Písanie gestami" @@ -202,8 +204,8 @@ "Upraviť slovo" "Upraviť" "Odstrániť" - "V používateľskom slovníku nie sú žiadne slová. Slovo pridáte dotknutím sa tlačidla Pridať (+)." - "Pre všetky jazyky" + "V používateľskom slovníku nie sú žiadne slová. Slovo pridáte klepnutím na tlačidlo Pridať (+)." + "pre všetky jazyky" "Ďalšie jazyky…" "Odstrániť" " ABCDEFGHIJKLMNOPQRSTUVWXYZ" diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index 7798f6a0d..2dbf77882 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -137,6 +137,8 @@ "Trajanje vibr. ob prit. tipke" "Glasn. zvoka ob pritisku tipke" "Zakasn. za dolg pritisk tipke" + "Znaki »emoji« za fizično tipkovnico" + "Fizična tipka Alt prikaže nabor znakov »emoji«" "Privzeto" "Pozdravljeni v aplikaciji %s" "s pisanjem s kretnjami" diff --git a/java/res/values-sq-rAL/strings-action-keys.xml b/java/res/values-sq-rAL/strings-action-keys.xml deleted file mode 100644 index 799f905b3..000000000 --- a/java/res/values-sq-rAL/strings-action-keys.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - "Shko" - "Përpara" - "Prapa" - "U krye!" - "Dërgo" - "Kërko" - "Pauzë" - "Prit!" - diff --git a/java/res/values-sq-rAL/strings-appname.xml b/java/res/values-sq-rAL/strings-appname.xml deleted file mode 100644 index 1b0fe12bb..000000000 --- a/java/res/values-sq-rAL/strings-appname.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - "Tastiera e Androidit (AOSP)" - "Kontrolluesi drejtshkrimor i Androidit (AOSP)" - "Cilësimet e tastierës së Androidit (AOSP)" - "Cilësimet e kontrolluesit drejtshkrimor të Androidit (AOSP)" - diff --git a/java/res/values-sq-rAL/strings-config-important-notice.xml b/java/res/values-sq-rAL/strings-config-important-notice.xml deleted file mode 100644 index 7d576d9a3..000000000 --- a/java/res/values-sq-rAL/strings-config-important-notice.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - "Mëso nga komunikimet dhe të dhënat e shkruara për të përmirësuar sugjerimet" - diff --git a/java/res/values-sq-rAL/strings-emoji-descriptions.xml b/java/res/values-sq-rAL/strings-emoji-descriptions.xml deleted file mode 100644 index 1ab7a43ce..000000000 --- a/java/res/values-sq-rAL/strings-emoji-descriptions.xml +++ /dev/null @@ -1,851 +0,0 @@ - - - - - - - "Shenja e të drejtës së autorit" - "Shenja e regjistruar" - "Dy pikëçuditje" - "Pikëçuditje dhe pikëpyetje" - "Shenjë marke tregtare" - "Burim informacioni" - "Shigjetë majtas-djathtas" - "Shigjetë lart-poshtë" - "Shigjetë veriperëndim" - "Shigjetë verilindje" - "Shigjetë juglindje" - "Shigjetë jugperëndim" - "Shigjetë majtas me grremç" - "Shigjetë djathtas me grremç" - "Orë" - "Orë qelqi" - "Trekëndësh i dyfishtë i zi me drejtim djathtas" - "Trekëndësh i dyfishtë i zi me drejtim majtas" - "Trekëndësh i dyfishtë i zi me drejtim lart" - "Trekëndësh i dyfishtë i zi me drejtim poshtë" - "Orë me zile" - "Orë me rërë" - "Germa e madhe latine e rrethuar M" - "Katror i vogël i zi" - "Katror i vogël i bardhë" - "Trekëndësh i zi me drejtim djathtas" - "Trekëndësh i zi me drejtim majtas" - "Katror mesatar i bardhë" - "Katror mesatar i zi" - "Katror i vogël mesatar i bardhë" - "Katror i vogël mesatar i zi" - "Diell i zi me rreze" - "Re" - "Telefon i zi" - "Kuti votimi e verifikuar" - "Çadër me pika shiu" - "Pije e nxehtë" - "Indeks i bardhë me drejtim lart" - "Fytyrë e bardhë e buzëqeshur" - "Dashi" - "Demi" - "Binjakët" - "Gaforrja" - "Luani" - "Virgjëresha" - "Peshorja" - "Akrepi" - "Shigjetari" - "Bricjapi" - "Ujori" - "Peshqit" - "Lulja maç i zi" - "Lulja spathi i zi" - "Lulja kupë e zezë" - "Lulja karo e zezë" - "Burime termale" - "Simboli i zi i riciklimit universal" - "Simboli i karriges me rrota" - "Spirancë" - "Tabelë paralajmërimi" - "Tabela \"Tension i lartë\"" - "Rreth mesatar i bardhë" - "Rreth mesatar i zi" - "Top futbolli" - "Bejsboll" - "Burrë dëbore pa dëborë" - "Diell mbrapa reve" - "Ofjukus (mbajtësi i gjarprit)" - "Ndalohet hyrja" - "Kishë" - "Burim" - "Flamur në vrimë" - "Varkë lundrimi" - "Tendë" - "Pompë karburanti" - "Gërshërë të zeza" - "Shenjë e bardhë e rënduar verifikimi" - "Aeroplan" - "Zarf" - "Grusht i ngritur" - "Dorë e ngritur" - "Dorë fitoreje" - "Laps" - "Majë pene e zezë" - "Shenjë e rënduar verifikimi" - "X e rënduar e shumëzimit" - "Xixëllima" - "Yllth me tetë cepa" - "Yll i zi me tetë cepa" - "Flok dëbore" - "Xixë" - "Shenjë kryqëzimi" - "Shenjë kryqëzimi i negatives në katror" - "Zbukurim i pikëpyetjes së zezë" - "Zbukurim i pikëpyetjes së bardhë" - "Zbukurim i pikëçuditjes së bardhë" - "Simbol i pikëçuditjes së rënduar" - "Zemër e zezë e rënduar" - "Shenjë e plusit të rënduar" - "Shenjë e minusit të rënduar" - "Shenjë e pjesëtimit të rënduar" - "Shigjetë e zezë djathtas" - "Lak i përdredhur" - "Lak i përdredhur dy herë" - "Shigjetë me drejtim djathtas pastaj lart" - "Shigjetë me drejtim djathtas pastaj poshtë" - "Shigjetë e zezë majtas" - "Shigjetë e zezë lart" - "Shigjetë e zezë poshtë" - "Katror i madh i zi" - "Katror i madh i bardhë" - "Yll mesatar i bardhë" - "Rreth i madh i rënduar" - "Vizë lidhëse e dallgëzuar" - "Shenjë alternimi të pjesës" - "Hieroglif i rrethuar përgëzimi" - "Hieroglif i rrethuar sekreti" - "Dragoi i kuq i pllakës \"Mahjong\"" - "Xholi i zi në lojën me letra" - "Grupi i gjakut A" - "Grupi i gjakut B" - "Grupi i gjakut O" - "Vend parkimi" - "Grupi i gjakut AB" - "\"CL\" në katror" - "\"Elegant\" në katror" - "\"I lirë\" në katror" - "\"ID\" në katror" - "\"I ri\" në katror" - "\"Jo mirë\" në katror" - "\"Në rregull!\" në katror" - "\"SOS\" në katror" - "\"Pikëçuditje\" në katror" - "\"vs\" në katror" - "\"Katakana\" në katror" - "\"Shërbimi katakana\" në katror" - "\"Hieroglifi pa pagesë\" në katror" - "\"Hieroglifi e rezervuar\" në katror" - "\"Hieroglifi e ndaluar\" në katror" - "\"Hieroglifi boshe\" në katror" - "\"Hieroglifi pranimi\" në katror" - "\"Hieroglifi zënie e plotë\" në katror" - "\"Hieroglifi e paguar\" në katror" - "\"Hieroglifi mujore\" në katror" - "\"Hieroglifi aplikacioni\" në katror" - "\"Hieroglifi zbritjeje\" në katror" - "\"Hieroglifi në biznes\" në katror" - "\"Hieroglifi avantazhi\" në rreth" - "\"Hieroglifi pranimi\" në rreth" - "Ciklon" - "Mjegull" - "Çadër e mbyllur" - "Natë me yje" - "Lindje dielli mbi male" - "Lindje dielli" - "Peizazhi qyteti në muzg" - "Perëndim mbi ndërtesa" - "Ylber" - "Urë natën" - "Dallgë uji" - "Vullkan" - "Rruga e Qumështit" - "Toka, Evropë-Afrikë" - "Toka, Amerikat" - "Toka, Azi-Australi" - "Globi me meridianë" - "Simboli i hënës së re" - "Simboli i gjysmëhënës së zbehur" - "Simboli i hënës së tremujorit të parë" - "Simboli i hënës gungaçe të zbehur" - "Simboli i hënës së plotë" - "Simboli i hënës gungaçe të venitur" - "Simboli i hënës së tremujorit të fundit" - "Simboli i gjysmëhënës së venitur" - "Gjysmëhënë" - "Hënë e re me fytyrë" - "Hëna e tremujorit të parë me fytyrë" - "Hëna e tremujorit të fundit me fytyrë" - "Hëna e plotë me fytyrë" - "Dielli me fytyrë" - "Yll i përflakur" - "Meteor" - "Gështenjë" - "Filiz" - "Pemë me gjelbërim të përhershëm" - "Pemë gjetherënëse" - "Palmë" - "Kaktus" - "Tulipan" - "Qershi e lulëzuar" - "Trëndafil" - "Hibiskus" - "Luledielli" - "Lulëzim" - "Misër" - "Oriz" - "Bar" - "Tërfil me katër gjethe" - "Gjethe panje" - "Gjethe e rënë" - "Gjethe duke u valëvitur në erë" - "Këpurdhë" - "Domate" - "Patëllxhan" - "Verige rrushi" - "Pjepër" - "Shalqi" - "Mandarinë" - "Limon" - "Banane" - "Ananas" - "Mollë e kuqe" - "Mollë e gjelbër" - "Dardhë" - "Pjeshkë" - "Qershi" - "Luleshtrydhe" - "Hamburger" - "Copë pice" - "Mish në kockë" - "Këmbë pule" - "Biskotë me oriz" - "Top orizi" - "Oriz i gatuar" - "Mish me oriz" - "Tas që avullon" - "Makarona" - "Bukë" - "Patate të skuqura" - "Patate të pjekura" - "Dango" - "Oden" - "Sushi" - "Karkalec i skuqur" - "Kek peshku me formë vorbulle" - "Akullore e butë" - "Akull i shkrirë" - "Akullore" - "Petull e ëmbël" - "Biskotë" - "Çokollatë" - "Karamele" - "Lëpirëse" - "Krem karamel" - "Vazo me mjaltë" - "Kek i shkurtër" - "Tabaka ushqimi" - "Tenxhere ushqimi" - "Gatim" - "Pirun dhe thikë" - "Filxhan çaji pa bisht" - "Shishe sake dhe filxhan" - "Gotë vere" - "Gotë kokteji" - "Pije tropikale" - "Krikëll" - "Kriklla duke u trokitur" - "Biberon" - "Fjongo" - "Dhuratë e mbështjellë" - "Kek ditëlindjeje" - "Kungull hallouni" - "Pemë Krishtlindjesh" - "Babagjyshi i Vitit të Ri" - "Fishekzjarrë" - "Fishekzjarr xixëllues" - "Tullumbace" - "Sustë fishekzjarrësh" - "Top konfeti" - "Pemë tanabata" - "Flamuj të kryqëzuar" - "Dekorim pishe" - "Kukulla japoneze" - "Shirit gjarpërues krapi" - "Zile ere" - "Ceremonia e shikimit të hënës" - "Çantë shkolle" - "Kapele diplomimi" - "Kalë karuseli" - "Karusel" - "Tren elektrik" - "Grep peshkimi dhe peshk" - "Mikrofon" - "Kamerë filmimi" - "Kinema" - "Kufje" - "Paletë piktori" - "Kapelë e lartë" - "Tendë cirku" - "Biletë" - "Tabelë sinkronizimi" - "Arte interpretimi" - "Videolojë" - "Goditje e drejtpërdrejtë" - "Makineri me monedhë" - "Bilardo" - "Zara loje" - "Lojë me birila" - "Letra bixhozi me lule" - "Notë muzikore" - "Nota të shumta muzikore" - "Saksofon" - "Kitarë" - "Tastierë muzikore" - "Trumpetë" - "Violinë" - "Pentagram muzikor" - "Bluzë vrapimi me shirit" - "Raketë tenisi dhe top" - "Ski dhe çizme skish" - "Basketboll dhe kosh" - "Flamur me katrorë" - "Dërrasë skie" - "Vrapues" - "Sërfist" - "Trofe" - "Gara me kuaj" - "Futboll amerikan" - "Futboll \"ragbi\"" - "Notues" - "Shtëpi" - "Shtëpi me kopsht" - "Zyrë" - "Zyrë postare japoneze" - "Zyrë postare evropiane" - "Spital" - "Bankë" - "Bankomat" - "Hotel" - "Hotel të dashuruarish" - "Dyqan" - "Shkollë" - "Mapo industriale" - "Fabrikë" - "Fanar \"izakaja\"" - "Kështjellë japoneze" - "Kështjellë evropiane" - "Mi i madh" - "Mi" - "Dem" - "Buall uji" - "Lopë" - "Leopard" - "Lepur" - "Mace" - "Dragua" - "Krokodil" - "Balenë" - "Kërmill" - "Gjarpër" - "Kalë" - "Dash" - "Dhi" - "Dele" - "Majmun" - "Gjel" - "Pulë" - "Qen" - "Derr" - "Derr i egër" - "Elefant" - "Oktapod" - "Guaskë spirale" - "Tartabiq" - "Milingonë" - "Bletë" - "Nusepashkë" - "Peshk" - "Peshk tropikal" - "Peshk i fryrë" - "Breshkë" - "Zog që del nga veza" - "Zog pule" - "Zog pule me pamje nga para" - "Zog" - "Pinguin" - "Koala" - "Qen qimedredhur" - "Gamile" - "Deve baktriane" - "Delfin" - "Fytyrë miu" - "Fytyrë lope" - "Fytyrë tigri" - "Fytyrë lepuri" - "Fytyrë maceje" - "Fytyrë dragoi" - "Balenë gufuese" - "Fytyrë kali" - "Fytyrë majmuni" - "Fytyrë qeni" - "Fytyrë derri" - "Fytyrë bretkose" - "Fytyrë brejtësi" - "Fytyrë ujku" - "Fytyrë ariu" - "Fytyrë pande" - "Hundë derri" - "Gjurmë putrash" - "Sy" - "Vesh" - "Hundë" - "Gojë" - "Gjuhë" - "Gisht tregues për lart" - "Gisht tregues për poshtë" - "Gisht tregues majtas" - "Gisht tregues djathtas" - "Shenja e grushtit" - "Shenja e dorës së valëzuar" - "Shenja e dorës \"Në rregull\"" - "Shenja e \"Gishtit lart\"" - "Shenja e \"Gishtit poshtë\"" - "Shenja e duarve në duartrokitje" - "Shenja e duarve të hapura" - "Kurorë" - "Kapelë gruaje" - "Syze" - "Kravatë" - "Bluzë" - "Xhinse" - "Fustan" - "Kimono" - "Bikini" - "Veshje grash" - "Kuletë" - "Çantë dore" - "Çantë e vogël" - "Këpucë burrash" - "Atlete" - "Këpucë me takë të lartë" - "Sandale grash" - "Çizme grash" - "Gjurmë këmbësh" - "Bust në siluetë" - "Buste në siluetë" - "Djalë" - "Vajzë" - "Burrë" - "Grua" - "Familje" - "Burrë e grua kapur për duarsh" - "Dy burra kapur për duarsh" - "Dy gra kapur për duarsh" - "Oficer policie" - "Grua me veshë lepuri" - "Nuse me vello" - "Njeri flokëverdhë" - "Burrë me qeleshe \"gua pi mao\"" - "Burrë me çallmë" - "Burrë i moshuar" - "Grua e moshuar" - "Bebe" - "Punëtor ndërtimi" - "Princeshë" - "Maskë japoneze" - "Krijesë djallëzore japoneze" - "Fantazmë" - "Bebe engjëll" - "Jashtëtokësor" - "Përbindësh jashtëtokësor" - "Demon" - "Kafkë" - "Personi i zyrës së informacionit" - "Rojë" - "Kërcimtar" - "Buzëkuq" - "Lustër thonjsh" - "Masazh fytyre" - "Prerje flokësh" - "Simboli i berberit" - "Shiringë" - "Pilulë" - "Shenjë puthjeje" - "Letër dashurie" - "Unazë" - "Gur i çmuar" - "Puthje" - "Buqetë" - "Çift me zemër" - "Dasmë" - "Zemër që rreh" - "Zemër e thyer" - "Dy zemra" - "Zemër xixëlluese" - "Zemër në rritje" - "Zemër me shigjetë" - "Zemër e kaltër" - "Zemër e gjelbër" - "Zemër e verdhë" - "Zemër vjollcë" - "Zemër me fjongo" - "Zemra rrotulluese" - "Zbukurim zemre" - "Formë diamanti me një pikë brenda" - "Llambë elektrike" - "Simboli i zemërimit" - "Bombë" - "Simboli i gjumit" - "Simboli i përplasjes" - "Simboli i fshirjes së djersës" - "Pikëz" - "Simboli i vizës lidhëse" - "Grumbull jashtëqitjeje" - "Muskul i tendosur" - "Simboli me trullosje" - "Tullumbace ligjërate" - "Tullumbace mendimi" - "Lule e bardhë" - "Simboli i një qind pikëve" - "Çantë parash" - "Këmbim valutor" - "Shenja e dollarit të rëndë" - "Kart krediti" - "Kartëmonedhë me shenjën e jenit" - "Kartëmonedhë me shenjën e dollarit" - "Kartëmonedhë me shenjën e euros" - "Kartëmonedhë me shenjën e sterlinës" - "Para me krahë" - "Grafik me tendencë rritjeje dhe shenjën e jenit" - "Ndenjëse" - "Kompjuter personal" - "Valixhe" - "Minidisk" - "Disketë" - "Disk optik" - "DVD" - "Dosje skedari" - "Dosje skedari e hapur" - "Faqe me përdredhje" - "Faqe me pamje nga para" - "Kalendar" - "Kalendar që griset" - "Kartë indeksi" - "Grafik me tendencë rritjeje" - "Grafik me tendencë zbritjeje" - "Grafik me shtylla" - "Kujtesa e fragmenteve" - "Gjilpërë me kokë" - "Gjilpërë e rrumbullakët me kokë" - "Kapëse letrash" - "Vizore drejtimi" - "Vizore drejtkëndore" - "Lidhëse faqeshënuesi" - "Libër llogarish" - "Fletore" - "Fletore me kopertinë dekorative" - "Libër i mbyllur" - "Libër i hapur" - "Libër i gjelbër" - "Libër i kaltër" - "Libër portokalli" - "Libra" - "Distinktiv emri" - "Dorëshkrim i mbledhur rrotull" - "Memorandum" - "Receptor" - "Biper" - "Makineri faksi" - "Antenë satelitore" - "Altoparlant për adresimin e publikut" - "Megafon për brohoritje" - "Kutia e postës dalëse" - "Kutia e postës hyrëse" - "Paketë" - "Simboli i mail-it" - "Zarf në ardhje" - "Zarf me shigjetë sipër" - "Kuti e mbyllur postare me flamur të ulur" - "Kuti e mbyllur postare me flamur të ngritur" - "Kuti e hapur postare me flamur të ngritur" - "Kuti e hapur postare me flamur të ulur" - "Kuti postare" - "Briri postar" - "Gazetë" - "Celular" - "Celular me shigjetë djathtas në të majtë" - "Modalitet dridhjeje" - "Celular i fikur" - "Ndalohen celularët" - "Antenë me sinjal me vija" - "Kamerë" - "Video-kamerë" - "Televizor" - "Radio" - "Videokasetë" - "Shigjeta të përdredhura me drejtim djathtas" - "Shigjeta me rreth të hapur me drejtim djathtas e majtas të akrepit të orës" - "Shigjeta me rreth të hapur e të mbushur me drejtim djathtas e majtas të akrepit të orës" - "Shigjeta me rreth të hapur me drejtim poshtë e lart të akrepit të orës" - "Shigjeta me rreth të hapur me drejtim të kundërt poshtë e lart të akrepit të orës" - "Simbol i ndriçimit të ulët" - "Simboli i ndriçimit të lartë" - "Altoparlant me vizë anulimi" - "Altoparlant" - "Altoparlant me një valë zëri" - "Altoparlant me tre valë zëri" - "Bateri" - "Spinë" - "Lupë me drejtim majtas" - "Lupë me drejtim djathtas" - "Kyç me stilograf" - "Kyç i mbyllur me çelës" - "Çelës" - "Kyç" - "Kyç i hapur" - "Zile" - "Zile me vizë anulimi" - "Faqeshënues" - "Simbol i lidhjes" - "Butoni i radios" - "Prapa me shigjetë majtas sipër" - "Fund me shigjetë majtas sipër" - "Aktivizuar me pikëçuditje dhe me shigjetë majtas-djathtas sipër" - "Së shpejti me shigjetë djathtas sipër" - "Majë me shigjetë lart sipër" - "Simboli \"Ndalohet nën moshën 18 vjeç\"" - "Butoni dhjetë i mbuluar" - "Simbol hyrës për germa të mëdha latine" - "Simbol hyrës për germa të vogla latine" - "Simbol hyrës për numra" - "Simbol hyrës për simbole" - "Simbol hyrës për germa latine" - "Zjarr" - "Elektrik" - "Çelës anglez" - "Çekiç" - "Dado dhe bulon" - "Thikë hoço" - "Pistoletë" - "Mikroskop" - "Teleskop" - "Sferë kristali" - "Yll me gjashtë cepa me pikë në mes" - "Simbol japonez për fillestarët" - "Emblemë sfurku tredhëmbësh" - "Butoni i katrorit të zi" - "Butoni i katrorit të bardhë" - "Rreth i madh i kuq" - "Rreth i madh i kaltër" - "Diamant i madh portokalli" - "Diamant i madh i kaltër" - "Diamant i vogël portokalli" - "Diamant i vogël i kaltër" - "Trekëndësh i kuq me drejtim lart" - "Trekëndësh i kuq me drejtim poshtë" - "Trekëndësh i vogël i kuq me drejtim lart" - "Trekëndësh i vogël i kuq me drejtim poshtë" - "Orë që tregon orën një" - "Orë që tregon orën dy" - "Orë që tregon orën tre" - "Orë që tregon orën katër" - "Orë që tregon orën pesë" - "Orë që tregon orën gjashtë" - "Orë që tregon orën shtatë" - "Orë që tregon orën tetë" - "Orë që tregon orën nëntë" - "Orë që tregon orën dhjetë" - "Orë që tregon orën njëmbëdhjetë" - "Orë që tregon orën dymbëdhjetë" - "Orë që tregon orën një e tridhjetë" - "Orë që tregon orën dy e tridhjetë" - "Orë që tregon orën tre e tridhjetë" - "Orë që tregon orën katër e tridhjetë" - "Orë që tregon orën pesë e tridhjetë" - "Orë që tregon orën gjashtë e tridhjetë" - "Orë që tregon orën shtatë e tridhjetë" - "Orë që tregon orën tetë e tridhjetë" - "Orë që tregon orën nëntë e tridhjetë" - "Orë që tregon orën dhjetë e tridhjetë" - "Orë që tregon orën njëmbëdhjetë e tridhjetë" - "Orë që tregon orën dymbëdhjetë e tridhjetë" - "Mali Fuxhi" - "Kulla e Tokios" - "Statuja e Lirisë" - "Siluetë e Japonisë" - "Statuja e Mojait" - "Fytyrë e qeshur" - "Fytyrë e qeshur me sy të qeshur" - "Fytyrë me lot gëzimi" - "Fytyrë e buzëqeshur me gojë hapur" - "Fytyrë e buzëqeshur me gojë hapur dhe sy të qeshur" - "Fytyrë e buzëqeshur me gojë hapur dhe djersë të ftohta" - "Fytyrë e buzëqeshur me gojë hapur dhe sy të mbyllur fort" - "Fytyrë e buzëqeshur me aureolë" - "Fytyrë e buzëqeshur me brirë" - "Fytyrë me shkelje syri" - "Fytyrë e buzëqeshur me sy të qeshur" - "Fytyrë duke provuar ushqim të shijshëm" - "Fytyrë e çliruar" - "Fytyrë e buzëqeshur me sy në formë zemre" - "Fytyrë e buzëqeshur me syze" - "Fytyrë me buzëqeshje të vetëkënaqur" - "Fytyrë neutrale" - "Fytyrë pa shprehje" - "Fytyrë jo e kënaqur" - "Fytyrë me djersë të ftohta" - "Fytyrë e menduar" - "Fytyrë e hutuar" - "Fytyrë e inatosur" - "Fytyrë puthëse" - "Fytyrë duke dhënë puthje" - "Fytyrë puthëse me sy të qeshur" - "Fytyrë puthëse me sy të mbyllur" - "Fytyrë me gjuhë të nxjerrë" - "Fytyrë me gjuhë të nxjerrë dhe sy të shkelur" - "Fytyrë me gjuhë të nxjerrë dhe sy të mbyllur fort" - "Fytyrë e zhgënjyer" - "Fytyrë e shqetësuar" - "Fytyrë e nxehur" - "Fytyrë e varur" - "Fytyrë që qan" - "Fytyrë këmbëngulëse" - "Fytyrë me pamje triumfi" - "Fytyrë e zhgënjyer, por e çliruar" - "Fytyrë e vrenjtur me gojë hapur" - "Fytyrë në ankth" - "Fytyrë e frikësuar" - "Fytyrë e lodhur" - "Fytyrë e përgjumur" - "Fytyrë e lodhur" - "Fytyrë e ngërdheshur" - "Fytyrë duke qarë me të madhe" - "Fytyrë me gojë hapur" - "Fytyrë e heshtur" - "Fytyrë me gojë hapur dhe djersë të ftohta" - "Fytyrë që ulërin në frikë" - "Fytyrë e habitur" - "Fytyrë e skuqur" - "Fytyrë e përgjumur" - "Fytyrë e trullosur" - "Fytyrë pa gojë" - "Fytyrë me maskë mjekësore" - "Fytyrë e qeshur maceje me sy të qeshur" - "Fytyrë maceje me lot gëzimi" - "Fytyrë e buzëqeshur maceje me gojë hapur" - "Fytyrë e buzëqeshur maceje me sy në formë zemre" - "Fytyrë maceje me buzëqeshje të sforcuar" - "Fytyrë puthëse maceje me sy të mbyllur" - "Fytyrë e varur maceje" - "Fytyrë maceje në qarje" - "Fytyrë e lodhur maceje" - "Fytyrë pa gjest të mirë" - "Fytyrë me gjest të mirë" - "Njeri që përkulet thellësisht" - "Majmuni që nuk shikon" - "Majmuni që nuk dëgjon" - "Majmuni që nuk flet" - "Njeri i lumtur duke ngritur dorën" - "Njeri duke ngritur të dy duart në festim" - "Njeri i vrenjtur" - "Njeri me fytyrë të varur" - "Njeri me duar të palosura" - "Raketë" - "Helikopter" - "Lokomotivë me avull" - "Vagon hekurudhor" - "Tren i shpejtësisë së lartë" - "Tren i shpejtësisë së lartë me hundë plumbi" - "Tren" - "Metro" - "Hekurudhë për trafik jo të ngarkuar" - "Stacion" - "Tramvaj" - "Vagon tramvaji" - "Autobus" - "Autobus në ardhje" - "Autobus elektrik" - "Stacioni autobusi" - "Mikrobus" - "Ambulancë" - "Zjarrfikës" - "Makinë policie" - "Makinë policie në ardhje" - "Taksi" - "Taksi në ardhje" - "Automobil" - "Automobil në ardhje" - "Rulotë" - "Kamion furnizimi" - "Kamion me rimorkio" - "Traktor" - "Hekurudhë me një shinë" - "Hekurudhë në mal" - "Hekurudhë e varur" - "Teleferik mali" - "Tramvaj në ajër" - "Anije" - "Varkë për vozitje" - "Motoskaf" - "Semafor horizontal" - "Semafor vertikal" - "Tabelë ndërtimi" - "Makina policie me sirenë ndezur" - "Flamur trekëndësh në shtizë" - "Derë" - "Tabelë \"Ndalohet hyrja\"" - "Simboli i duhanpirjes" - "Simboli \"Ndalohet duhani\"" - "Simboli \"Hidhini mbeturinat në vendin e duhur\"" - "Simboli \"Mos hidhni mbeturina\"" - "Simboli \"Ujë i pijshëm\"" - "Simboli \"Ujë jo i pijshëm\"" - "Biçikletë" - "Ndalohen biçikletat" - "Çiklist" - "Çiklist mali" - "Këmbësor" - "Ndalohen këmbësorët" - "Fëmijë duke kaluar rrugën" - "Simboli i burrave" - "Simboli i grave" - "Banjë" - "Simboli i bebes" - "Tualet" - "WC" - "Dush" - "Banjë" - "Vaskë" - "Kontroll i pasaportave" - "Doganë" - "Marrja e bagazheve" - "Bagazhet e mbetura" - diff --git a/java/res/values-sq-rAL/strings-letter-descriptions.xml b/java/res/values-sq-rAL/strings-letter-descriptions.xml deleted file mode 100644 index c14cb7673..000000000 --- a/java/res/values-sq-rAL/strings-letter-descriptions.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - "Tregues rendor femëror" - "Shenjë mikro" - "Tregues rendor mashkullor" - "S e thekshme" - "A jo e mprehtë" - "A e mprehtë" - "A me theks lakor" - "A me tildë" - "A hiat" - "A me unazë sipër" - "A, E, me vizë bashkuese" - "C me bisht" - "E jo e mprehtë" - "E e mprehtë" - "E me theks lakor" - "E hiat" - "I jo e mprehtë" - "I e mprehtë" - "I me theks lakor" - "I hiat" - "Eth" - "N me tildë" - "O jo e mprehtë" - "O e mprehtë" - "O me theks lakor" - "O me tildë" - "O hiat" - "O me prerje" - "U jo e mprehtë" - "U e mprehtë" - "U me theks lakor" - "U hiat" - "Y e mprehtë" - "Gjemb" - "Y hiat" - "A me vijë sipër" - "A e shkurtër" - "A me bisht të vogël" - "C e mprehtë" - "C me hark lakor" - "C me pikë sipër" - "C me çengel sipër" - "D me çengel sipër" - "D me prerje" - "E me vijë sipër" - "E e shkurtër" - "E me pikë sipër" - "E me bisht të vogël" - "E me çengel sipër" - "G me hark lakor" - "G e shkurtër" - "G me pikë sipër" - "G me bisht" - "H me hark lakor" - "H me prerje" - "I me tildë" - "I me vijë sipër" - "I e shkurtër" - "I me bisht të vogël" - "I pa pikë" - "I, J me vizë bashkuese" - "J me hark lakor" - "K me bisht" - "Kra" - "L e mprehtë" - "L me bisht" - "L me çengel sipër" - "L me pikë në mes" - "L me prerje" - "N e mprehtë" - "N me bisht" - "N me çengel sipër" - "N e paraprirë nga apostrofa" - "Ang" - "O me vijë sipër" - "O e shkurtër" - "O, dyfish e mprehtë" - "O, E me vizë bashkuese" - "R e mprehtë" - "R me bisht" - "R me çengel sipër" - "S e mprehtë" - "S me hark lakor" - "S me bisht" - "S me çengel sipër" - "T me bisht" - "T me çengel sipër" - "T me prerje" - "U me tildë" - "U me vijë sipër" - "U e shkurtër" - "U me unazë sipër" - "U, dyfish e mprehtë" - "U me bisht të vogël" - "W me hark lakor" - "Y me hark lakor" - "Z e mprehtë" - "Z me pikë sipër" - "Z me çengel sipër" - "S e gjatë" - "O me bri" - "U me bri" - "S me presje sipër" - "T me presje sipër" - "Schwa (e, e përmbysur)" - "A me pikë sipër" - "A me grremç sipër" - "A me hark lakor dhe e mprehtë" - "A me hark lakor dhe jo e mprehtë" - "A me hark lakor dhe me grremç sipër" - "A me hark lakor dhe me tildë" - "A me hark lakor dhe pikë sipër" - "A e shkurtër dhe e mprehtë" - "A shkurtër dhe jo e mprehtë" - "A e shkurtër dhe me grremç sipër" - "A e shkurtër dhe me tildë" - "A e shkurtër dhe me pikë sipër" - "E me pikë sipër" - "E me grremç sipër" - "E me tildë" - "E me hark lakor dhe e mprehtë" - "E me hark lakor dhe jo e mprehtë" - "E me hark lakor dhe me grremç sipër" - "E me hark lakor dhe me tildë" - "E me hark lakor dhe me pikë sipër" - "I me grremç sipër" - "I me pikë sipër" - "O me pikë sipër" - "O me grremç sipër" - "O me hark lakor dhe e mprehtë" - "O me hark lakor dhe jo e mprehtë" - "O me hark lakor dhe me grremç sipër" - "O me hark lakor dhe me tildë" - "O me hark lakor dhe pikë sipër" - "O me bri dhe e mprehtë" - "O me bri dhe jo e mprehtë" - "O me bri dhe grremç sipër" - "O me bri dhe me tildë" - "O me bri dhe pikë sipër" - "U me pikë sipër" - "U me grremç sipër" - "U me bri dhe e mprehtë" - "U me bri dhe jo e mprehtë" - "U me bri dhe grremç sipër" - "U me bri dhe me tildë" - "U me bri dhe pikë sipër" - "Y jo e mprehtë" - "Y me pikë sipër" - "Y me grremç sipër" - "Y me tildë" - "Pikëçuditje e kthyer përmbys" - "Shenjë citimi me kënd të dyfishtë me drejtim majtas" - "Pikë në mes" - "Një, i indeksuar sipër" - "Shenjë citimi me kënd të dyfishtë me drejtim djathtas" - "Shenjë citimi kthyer përmbys" - "Shenjë e vetme citimi majtas" - "Shenjë e vetme citimi djathtas" - "Shenjë e vetme citimi në formë 9 të ulët" - "Shenjë e dyfishtë citimi majtas" - "Shenjë e dyfishtë citimi djathtas" - "Kryq" - "Kryq i dyfishtë" - "Shenja për mijë" - "Numër prim" - "Numër i dyfishtë prim" - "Shenjë citimi me kënd të dyfishtë me drejtim majtas" - "Shenjë citimi me kënd të dyfishtë me drejtim djathtas" - "Katër, e indeksuar sipër" - "Germa e vogël latine n e indeksuar sipër" - "shenja e pesos" - "Në ngarkim të" - "Shigjetë majtas" - "Shigjetë poshtë" - "Komplet bosh" - "Rritje" - "Më e vogël ose baras me" - "Më e madhe ose baras me" - "Yll i zi" - diff --git a/java/res/values-sq-rAL/strings-talkback-descriptions.xml b/java/res/values-sq-rAL/strings-talkback-descriptions.xml deleted file mode 100644 index e168a5c32..000000000 --- a/java/res/values-sq-rAL/strings-talkback-descriptions.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - "Fut kufjet për të dëgjuar me zë të lartë tastet e fjalëkalimit" - "Teksti aktual është %s" - "Nuk ka tekst" - "%1$s korrigjon %2$s%3$s" - "%1$s kryen auto-korrigjim" - "Nuk ka asnjë sugjerim" - "Karakter i panjohur" - "Shift" - "Shumë simbole" - "Shift" - "Simbole" - "Shift" - "Fshi" - "Simbole" - "Shkronja" - "Numra" - "Cilësimet" - "Tab" - "Hapësirë" - "Të dhëna zanore" - "\"Emoji\"" - "Kthehu prapa" - "Kërko" - "Pikë" - "Ndrysho gjuhën" - "Përpara" - "Prapa" - "Shifti është i aktivizuar" - "Kapitalizimi është i aktivizuar" - "Modaliteti i simboleve" - "Modaliteti i shumë simboleve" - "Modaliteti i shkronjave" - "Modaliteti i telefonit" - "Modaliteti i simboleve të telefonit" - "Tastiera është e fshehur" - "Po shfaq %s e tastierës" - "datën" - "datën dhe orën" - "mail-in" - "mesazhet" - "numrin" - "telefonin" - "tekstin" - "orën" - "URL-në" - "Të fundit" - "Njerëz" - "Objekte" - "Natyrë" - "Vende" - "Simbole" - "Ikonat e emocioneve" - "Kapitalja e %s" - "I e madhe" - "I e madhe me pikë sipër" - "Simbol i panjohur" - "\"Emoji\" i panjohur" - "Fytyrë e mërzitur" - "Fytyrë e turpëruar" - "Fytyrë me syze" - "Fytyrë e çuditur" - "Fytyrë puthëse" - "Fytyrë e vrenjtur" - "Karaktere alternative mundësohen gjithashtu" - "Karakteret alternative hiqen" - "Sugjerime alternative mundësohen gjithashtu" - "Sugjerimet alternative hiqen" - diff --git a/java/res/values-sq-rAL/strings.xml b/java/res/values-sq-rAL/strings.xml deleted file mode 100644 index 19546ae7b..000000000 --- a/java/res/values-sq-rAL/strings.xml +++ /dev/null @@ -1,210 +0,0 @@ - - - - - "Opsionet e hyrjes" - "Kërko emra kontakti" - "Kontrolluesi drejtshkrimor përdor fjalë të futura nga kontaktet e tua" - "Lësho dridhje kur shtyp tastin" - "Lësho tingull kur shtyp tastin" - "Shfaqje dritareje nga shtypja e tastit" - "Preferencat" - "Llogaritë dhe privatësia" - "Shfaqja dhe strukturat" - "Shkrimi me gjeste" - "Korrigjim teksti" - "I përparuar" - "Tema" - "Aktivizo tastierën e ndarë" - "Sinkronizimi i tastierës së Google" - "Sinkronizimi është i aktivizuar" - "Sinkronizo fjalorin tënd personal midis pajisjeve" - "Sinkronizo tani" - "Fshi të dhënat në renë kompjuterike" - "Fshin të dhënat e tua të sinkronizuara nga Google" - "Të dhënat e tua të sinkronizuara do të fshihen nga reja kompjuterike. Je i sigurt?" - "Fshi" - "Anulo" - "Fjalori yt personal do të sinkronizohet dhe do të rezervohet në serverët e Google. Informacionet statistikore të frekuencës së fjalëve mund të mblidhen për të ndihmuar në përmirësimin e produkteve tona. Mbledhja dhe përdorimi i të gjitha informacioneve do të jetë në përputhje me ""Politikën e privatësisë së Google""." - "Shto një llogari të Google në këtë pajisje për të aktivizuar këtë funksion" - "Sinkronizimi është i papërdorshëm për pajisjet me llogari të \"Aplikacioneve të Google për biznesin\"" - "Kalo në metoda të tjera hyrjeje" - "Tasti i ndryshimit të gjuhës mbulon edhe metoda të tjera hyrjeje" - "Tasti i ndryshimit të gjuhës" - "Shfaq kur janë të aktivizuara shumë gjuhë hyrjeje" - "Vonesa e heqjes së dritares që shfaq tastin" - "Pa vonesë" - "I parazgjedhur" - "%s milisek." - "Parazgjedhja e sistemit" - "Sugjero emra te \"Kontaktet\"" - "Përdor emra nga \"Kontaktet\" për sugjerime dhe korrigjime" - "Sugjerime të personalizuara" - "Përmirëso %s" - "Pikë me hapësirë të dyfishtë" - "Trokitja dy herë në tastin e hapësirës vendos një pikë e pasuar nga një hapësirë" - "Auto-kapitalizim" - "Kapitalizo fjalën e parë të çdo fjalie" - "Fjalor personal" - "Fjalorët shtesë" - "Fjalori kryesor" - "Shfaq sugjerimet e korrigjimit" - "Shfaq fjalë sugjeruese kur shkruan" - "Blloko fjalë ofenduese" - "Mos sugjero fjalë që mund të jetë ofenduese" - "Auto-korrigjim" - "Hapësira ose pikësimi korrigjojnë automatikisht fjalët e gabuara" - "Çaktivizuar" - "Modest" - "I rreptë" - "Shumë i rreptë" - "Sugjerimet për fjalën e radhës" - "Përdor fjalën e parashkruar për të ofruar sugjerime" - "Aktivizo shkrimin e gjesteve" - "Fut një fjalë duke rrëshqitur përmes shkronjave" - "Shfaq gjurmën e gjesteve" - "Shikim paraprak dinamik lundrues" - "Shiko fjalën e sugjeruar kur bën me gjeste" - "Gjest fraze" - "Hapësirat e hyrjes gjatë gjesteve duke kaluar në tastin e hapësirës" - "Tasti i hyrjes zanore" - "Metodat e hyrjeve zanore nuk janë të aktivizuara. Kontrollo \"Cilësimet e gjuhës dhe hyrjes\"." - "Konfiguro metodat e hyrjes" - "Gjuhët" - "Ndihmë dhe komente" - "Gjuhët" - "Prek sërish për të ruajtur" - "Prek këtu për të ruajtur" - "Fjalor i përdorshëm" - "Tema e tastierës" - "Ndrysho llogaritë" - "Nuk u përzgjodh asnjë llogari" - "Aktualisht po përdor %1$s" - "Në rregull!" - "Anulo" - "Dil" - "Përzgjidh një llogari për përdorim" - "anglisht (MB)" - "anglisht (SHBA)" - "spanjisht (SHBA)" - "hinglisht" - "serbisht (latin)" - "anglisht (MB) (%s)" - "anglisht (SHBA) (%s)" - "spanjisht (SHBA) (%s)" - "hinglisht (%s)" - "serbisht (%s)" - "%s (tradicionale)" - "%s (kompakte)" - "nuk ka gjuhë (alfabeti)" - "alfabeti (QWERTY)" - "alfabeti (QWERTZ)" - "alfabeti (AZERTY)" - "alfabeti (dvorak)" - "alfabeti (Colemak)" - "alfabeti (PC)" - "\"Emoji\"" - "Tema e tastierës" - "Stile të personalizuara hyrjeje" - "Shto stil" - "Shto" - "Hiq" - "Ruaj" - "Gjuha" - "Plani" - "Stili yt i hyrjes ka nevojë të aktivizohet para se të fillosh përdorimin e tij. Dëshiron ta aktivizosh tani?" - "Aktivizo" - "Jo tani!" - "I njëjti stil hyrjesh ekziston tashmë: %s" - "Kohëzgjatja e dridhjes nga shtypja e tastit" - "Volumi i tingullit të tastit" - "Vonesë e gjatë në shtypjen e tastit" - "I parazgjedhur" - "Mirë se vjen në %s" - "me \"Shkrimin me gjeste\"" - "Fillo" - "Hapi tjetër" - "Po konfiguron %s" - "Aktivizo %s" - "Kontrollo \"%s\" te \"Cilësimet e gjuhës dhe hyrjes\". Kjo do ta autorizojë atë për ta vënë në punë në pajisjen tënde." - "%s është tashmë i aktivizuar te \"Cilësimet e gjuhës dhe hyrjes\", prandaj ky hap ka mbaruar. Vazhdo në hapin tjetër!" - "Aktivizo te \"Cilësimet\"" - "Kalo në %s" - "Më pas, përzgjidh \"%s\" si metodën tënde aktive të hyrjes së tekstit." - "Ndrysho metodat e hyrjes" - "Urime, tani je gati!" - "Tani mund të shkruash të gjitha aplikacionet e tua të preferuara me %s." - "Konfiguro gjuhë shtesë" - "U përfundua" - "Shfaq ikonën e aplikacionit" - "Shfaq ikonën e aplikacionit në mekanizimin e nisjes" - "Ofrues fjalori" - "Ofrues fjalori" - "Shërbim fjalori" - "Informacion mbi përditësimin e fjalorit" - "Fjalorë shtesë" - "Fjalor i përdorshëm" - "Cilësimet për fjalorët" - "Fjalorë përdoruesi" - "Fjalori i përdoruesit" - "Fjalor i përdorshëm" - "Po shkarkohet aktualisht" - "I instaluar" - "I instaluar po i çaktivizuar" - "Problem në lidhjen me shërbimin e fjalorit" - "Nuk mund të përdoret asnjë fjalor" - "Rifresko" - "Përditësimi i fundit" - "Po kontrollon për përditësime" - "Po ngarkohet..." - "Fjalori kryesor" - "Anulo" - "Cilësimet" - "Instalo" - "Anulo" - "Fshi" - "Gjuha e përzgjedhur në pajisjen tënde celulare mund të përdorë një fjalor.<br/> Rekomandojmë <b>shkarkimin</b> e fjalorit %1$s për të përmirësuar përvojën tënde të të shkruarit.<br/> <br/> Shkarkimi mund të zgjasë një ose dy minuta përmes rrjetit 3G. Mund të aplikohen tarifa nëse nuk ke një <b>plan të dhënash të pakufizuara</b>.<br/> Nëse nuk je i sigurt se cilin plan të dhënash ke, rekomandojmë të gjesh një lidhje Wi-Fi për të filluar automatikisht shkarkimin.<br/> <br/> Këshillë! Mund të shkarkosh dhe heqësh fjalorë duke shkuar te menyja <b>\"Cilësimet e gjuhës dhe hyrjeve\"</b> të pajisjes tënde celulare." - "Shkarko tani (%1$.1f megabajt)" - "Shkarko nga Wi-Fi" - "Mund të përdoret një fjalor për %1$s" - "Shtyp për të rishikuar dhe shkarkuar" - "Po shkarkon... Sugjerimet për %1$s do të jenë gati së shpejti." - "Versioni %1$s" - "Shto" - "Shto në fjalor" - "Frazë" - "Më shumë opsione" - "Më pak opsione" - "Në rregull!" - "Fjala:" - "Shkurtorja:" - "Gjuha:" - "Shkruaj një fjalë" - "Shkurtore opsionale" - "Redakto fjalën" - "Redakto" - "Fshi" - "Nuk ke ndonjë fjalë në fjalorin e përdoruesit. Shto një fjalë duke prekur butonin \"Shto\" (+)." - "Për të gjitha gjuhët" - "Gjuhë të tjera…" - "Fshi" - " ABCDEFGHIJKLMNOPQRSTUVWXYZ" - diff --git a/java/res/values-sr/strings-emoji-descriptions.xml b/java/res/values-sr/strings-emoji-descriptions.xml index f1764c84c..0aecca22f 100644 --- a/java/res/values-sr/strings-emoji-descriptions.xml +++ b/java/res/values-sr/strings-emoji-descriptions.xml @@ -45,7 +45,7 @@ "Црни двоструки троугао усмерен налево" "Црни двоструки троугао усмерен нагоре" "Црни двоструки троугао усмерен надоле" - "Аларм" + "Будилник" "Пешчани сат са песком који тече" "Заокружено велико латинично слово м" "Мали црни квадрат" diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index ca3c84156..f207a3456 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -50,7 +50,7 @@ "Тастер за пребацивање језика обухвата и друге методе уноса" "Тастер за пребацивање језика" "Прикажи када је омогућено више језика уноса" - "Одложи одбац. иск. прозора тастера" + "Одложи одбацивање искачућег прозора тастера" "Без одлагања" "Подразумевано" "%s ms" @@ -115,12 +115,12 @@ "%s (традиционални)" "%s (компактна)" "Нема језика (абецеда)" - "Абецеда (QWERTY)" - "Абецеда (QWERTZ)" - "Абецеда (AZERTY)" - "Абецеда (Dvorak)" - "Абецеда (Colemak)" - "Абецеда (PC)" + "абецеда (QWERTY)" + "абецеда (QWERTZ)" + "абецеда (AZERTY)" + "абецеда (Dvorak)" + "абецеда (Colemak)" + "абецеда (PC)" "Емотикони" "Тема тастатуре" "Прилаг. стилови уноса" @@ -137,6 +137,8 @@ "Трајање вибрације при притиску" "Јачина звука при притиску" "Одлагање при дугом притиску" + "Емоџи за физичку тастатуру" + "Физички тастер Alt показује палету емоџија" "Подразумевано" "Добро дошли у %s" "помоћу Куцања покретима" diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index 3820a0d51..918a5aa02 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -137,6 +137,8 @@ "Vibrationslängd för tangenter" "Ljudvolym för tangenter" "Fördröjning vid långt tryck" + "Emoji för fysiskt tangentbord" + "Den fysiska Alt-tangenten visar emoji-paletten" "Standard" "Välkommen till %s" "med svepskrivning" diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml index bf99eb618..30225f7d1 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -137,6 +137,8 @@ "Bonyeza kitufe cha muda wa kutetema" "Bonyeza kitufe cha kiwango cha sauti" "Ubofyaji kitufe kunakochelewa" + "Emoji ya kibodi halisi" + "Kitufe halisi cha Alt huonyesha kibao cha emoji" "Chaguo-msingi" "Karibu kwenye %s" "kwa Kuandika kwa ishara" diff --git a/java/res/values-ta-rIN/strings.xml b/java/res/values-ta-rIN/strings.xml index 1623eaaea..ddc21d800 100644 --- a/java/res/values-ta-rIN/strings.xml +++ b/java/res/values-ta-rIN/strings.xml @@ -68,8 +68,8 @@ "முதன்மை அகராதி" "திருத்துதல் விருப்பங்களைக் காட்டு" "உள்ளிடும்போது பரிந்துரைக்கப்பட்ட வார்த்தைகளைக் காட்டும்" - "தீங்குவிளைவிக்கும் வார்த்தைகளை தடு" - "தீங்குவிளைவிக்க சாத்தியமுள்ளதான வார்த்தைகளைப் பரிந்துரைக்க வேண்டாம்" + "வன்மொழி சொற்களைத் தடு" + "வன்மொழியாக இருக்கும் சாத்தியமுள்ள சொற்களைப் பரிந்துரைக்க வேண்டாம்" "தன்னியக்க திருத்தம்" "ஸ்பேஸ்பாரும், நிறுத்தற்குறிகளும் தவறாக உள்ளிடப்பட்ட வார்த்தைகளை தானாக திருத்தும்" "முடக்கத்தில்" @@ -81,7 +81,7 @@ "சைகை உள்ளீட்டை இயக்கு" "எழுத்துகள் வழியாக இழுப்பதன் மூலம் வார்த்தையை உள்ளிடலாம்" "சைகை தடத்தைக் காட்டு" - "ஆற்றல்மிகு மிதக்கும் மாதிரிக்காட்சி" + "நிகழ்நேர மிதக்கும் மாதிரிக்காட்சி" "சைகையிடும் போது பரிந்துரைக்கும் வார்த்தையைப் பார்க்கலாம்" "சொற்றொடர் சைகை" "ஸ்பேஸ் விசைக்கு இழுப்பதன் மூலம் சைகைகளுக்கு இடையே இடைவெளிகளை உள்ளிடலாம்" @@ -137,6 +137,8 @@ "விசையழுத்த அதிர்வின் காலஅளவு" "விசையழுத்த ஒலியளவு" "விசையின் நீண்ட அழுத்தத்தின் தாமதம்" + "கைமுறை விசைப்பலகைக்கான ஈமோஜி" + "ஈமோஜி பலகத்தைக் காட்டும் கைமுறை Alt விசை" "இயல்புநிலை" "%s பயன்பாட்டிற்கு வரவேற்கிறோம்" "சைகை உள்ளீடு மூலம்" diff --git a/java/res/values-te-rIN/strings.xml b/java/res/values-te-rIN/strings.xml index fa46d64c8..ffb7d4dd7 100644 --- a/java/res/values-te-rIN/strings.xml +++ b/java/res/values-te-rIN/strings.xml @@ -137,6 +137,8 @@ "కీని నొక్కినప్పుడు వైబ్రేషన్ వ్యవధి" "కీని నొక్కినప్పుడు చేసే ధ్వని వాల్యూమ్" "కీని ఎక్కువసేపు నొక్కి ఉంచాల్సిన సమయంలో ఆలస్యం" + "భౌతిక కీబోర్డ్ కోసం ఎమోజి" + "భౌతిక Alt కీ ఎమోజి ఫలకాన్ని చూపుతుంది" "డిఫాల్ట్" "%sకు స్వాగతం" "సంజ్ఞ టైపింగ్‌తో" @@ -197,7 +199,7 @@ "పదం:" "సత్వరమార్గం:" "భాష:" - "పదాన్ని టైప్ చేయి" + "పదాన్ని టైప్ చేయండి" "ఐచ్ఛిక సత్వరమార్గం" "పదాన్ని సవరించు" "సవరించు" diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index d0174417c..5ec14dbbb 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -59,8 +59,8 @@ "ใช้ชื่อจากรายชื่อติดต่อสำหรับคำแนะนำและการแก้ไข" "คำแนะนำในแบบของคุณ" "ปรับปรุง %s" - "แตะ Space สองครั้งแทรกจุด" - "แตะ Spacebar สองครั้งจะแทรกจุดตามด้วยช่องว่างหนึ่งช่อง" + "เคาะวรรคสองครั้งเพื่อพิมพ์จุด" + "เคาะวรรคสองครั้งจะแทรกจุดตามด้วยช่องว่างหนึ่งช่อง" "ปรับเป็นตัวพิมพ์ใหญ่อัตโนมัติ" "ทำให้คำแรกของทุกประโยคเป็นตัวพิมพ์ใหญ่" "พจนานุกรมส่วนตัว" @@ -80,7 +80,7 @@ "ใช้คำก่อนหน้าในการสร้างข้อเสนอแนะ" "เปิดการพิมพ์ด้วยท่าทางสัมผัส" "ป้อนคำด้วยการเลื่อนผ่านตัวอักษร" - "แสดงรอยทางเดินของท่าทางสัมผัส" + "แสดงรูปแบบของท่าทางสัมผัส" "ดูตัวอย่างลอยแบบไดนามิก" "ดูคำแนะนำในขณะที่ใช้ท่าทางสัมผัส" "ท่าทางสัมผัสสำหรับวลี" @@ -137,6 +137,8 @@ "ระยะเวลาการสั่นเมื่อกดแป้นพิมพ์" "ระดับเสียงเมื่อกดแป้นพิมพ์" "การหน่วงเวลาของการกดแป้นค้าง" + "อีโมจิสำหรับแป้นพิมพ์บนเครื่อง" + "แป้น Alt บนเครื่องแสดงชุดอีโมจิ" "ค่าเริ่มต้น" "ยินดีต้อนรับสู่ %s" "พร้อมการป้อนข้อมูลด้วยท่าทาง" diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index 6b414fc53..7cc415f23 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -137,6 +137,8 @@ "Tagal ng vibration ng keypress" "Volume ng tunog ng keypress" "Key long press delay" + "Emoji para sa pisikal na keyboard" + "Ipinapakita ng pisikal na Alt key ang emoji palette" "Default" "Maligayang pagdating sa %s" "gamit ang Gesture na Pag-type" diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index a243376b6..77a69531e 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -59,10 +59,10 @@ "Öneri ve düzeltmeler için Kişiler\'deki adları kullan" "Kişisel öneriler" "%s uygulamasını iyileştir" - "Çift boşlukla nokta ekleme" + "Çift boşlukla nokta ekle" "Boşluk çubuğuna iki kez dokunmak nokta ve ardından bir boşluk ekler" "Otomatik olarak büyük harf yap" - "Her cümlenin ilk kelimesini büyük harf yap" + "Her cümlenin ilk harfini büyük harf yap" "Kişisel sözlük" "Ek sözlükler" "Ana sözlük" @@ -77,7 +77,7 @@ "Geniş ölçekte" "Çok geniş ölçekte" "Sonraki kelime önerileri" - "Önerilerde bulunurken önceki kelimeyi kullan" + "Öneride bulunurken önceki kelimeyi kullan" "Hareketle yazmayı etkinleştir" "Harflerin üzerinden parmağınızı kaydırarak kelime girin" "Hareket izini göster" @@ -137,6 +137,8 @@ "Tuşa basma titreşim süresi" "Tuşa basma ses seviyesi" "Tuşa uzun basma gecikmesi" + "Fiziksel klavye için emoji" + "Fiziksel Alt tuşu, emoji paletini gösterir" "Varsayılan" "%s uygulamasına hoş geldiniz" "Hareketle Yazmayı içerir" @@ -202,7 +204,7 @@ "Kelimeyi düzenle" "Düzenle" "Sil" - "Kullanıcı sözlüğünde hiç kelimeniz yok. Ekle (+) düğmesini kullanarak kelime ekleyin." + "Kullanıcı sözlüğünde kelime yok. Ekle (+) düğmesini kullanarak kelime ekleyin." "Tüm diller için" "Diğer diller…" "Sil" diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index 7414d68ce..321ac3905 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -22,10 +22,10 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Парам. введення" "Шукати імена контактів" - "Програма перевірки правопису використ. записи зі списку контактів" + "Для перевірки правопису використовувати список контактів" "Вібр. при натисканні клавіш" "Звук при натиску клав." - "Сплив. при нат.клав." + "Збільшення натиснутих" "Параметри" "Облік. записи й конфіденційність" "Вигляд і розкладка" @@ -50,23 +50,23 @@ "Клавіша зміни мови дозволяє змінювати методи введення" "Клавіша зміни мови" "Показувати, коли ввімкнено декілька мов введення" - "Затримка клавіши закриття" + "Затримка закривання" "Без затримки" "За умовчанням" "%s мс" "За умовчанням" "Пропон. імена контактів" - "Використ. імена зі списку контактів для пропозицій і виправлень" + "Показувати виправлення на основі імен зі списку контактів" "Персональні пропозиції" "Покращувати додаток %s" "Крапка подвійним пробілом" "Подвійне натискання пробілу вставляє крапку з пробілом після неї" - "Авто викор. вел. літер" + "Вел. літери автоматично" "Писати перше слово в кожному реченні з великої літери" "Особистий словник" "Додані словники" "Основний словник" - "Показувати пропозиції виправлень" + "Варіанти виправлень" "Відображати пропоновані слова під час вводу" "Блокувати нецензурні слова" "Не пропонувати потенційно образливі слова" @@ -81,7 +81,7 @@ "Увімкнути ввід жестами" "Вводити слово, пересуваючи палець по буквах" "Показувати слід жестів" - "Динамічний спливаючий перегляд" + "Показувати підказки" "Показувати пропоноване слово під час введення тексту жестами" "Безперервний ввід фраз" "Вставляйте пробіли, проводячи пальцем по клавіші пробілу" @@ -95,7 +95,7 @@ "Торкніться тут, щоб зберегти" "Словник доступний" "Тема клавіатури" - "Змінити обліковий запис" + "Змінити облік. запис" "Не вибрано облікових записів" "Зараз використовується %1$s" "ОК" @@ -137,6 +137,8 @@ "Вібрація при натисканні клавіш" "Гучність натискання клавіш" "Затримка довгого натискання" + "Смайли для фізичної клавіатури" + "Щоб переглянути смайли, натисніть фізичну клавішу Alt" "За умовчанням" "Вітаємо в програмі %s" "з функцією Ввід жестами" @@ -202,7 +204,7 @@ "Редагувати слово" "Редагувати" "Видалити" - "У словнику користувача немає жодного слова. Додайте слово, торкнувшись кнопки \"Додати\" (+)." + "У словнику користувача нічого немає. Додавати слова можна за допомогою кнопки \"Додати\" (+)." "Для всіх мов" "Інші мови…" "Видалити" diff --git a/java/res/values-ur-rPK/strings.xml b/java/res/values-ur-rPK/strings.xml index 20ea15f1a..2aeac89cc 100644 --- a/java/res/values-ur-rPK/strings.xml +++ b/java/res/values-ur-rPK/strings.xml @@ -137,6 +137,8 @@ "کلید دبانے پر وائبریشن کا دورانیہ" "کلید دبانے پر آواز کا والیوم" "کلید کو دیر تک دبانے کی تاخیر" + "‏فزیکل کی بورڈ کیلئے Emoji" + "‏فزیکل Alt کی کے ذریعے emoji پیلٹ نظر آتا ہے" "ڈیفالٹ" "%s میں خوش آمدید" "اشارہ ٹائپنگ کے ساتھ" diff --git a/java/res/values-uz-rUZ/strings.xml b/java/res/values-uz-rUZ/strings.xml index b65b79d32..4303152b2 100644 --- a/java/res/values-uz-rUZ/strings.xml +++ b/java/res/values-uz-rUZ/strings.xml @@ -20,7 +20,7 @@ - "Matn kiritish sozlamalari" + "Sozlamalar" "Kontaktlarni qidirish" "Imlo tekshirgich kontaktlaringizdagi qaydlardan foydalanadi" "Tugma bosilganda tebranish" @@ -37,7 +37,7 @@ "Google klaviaturasini sinx-sh" "Sinxronlash yoqildi" "Shaxsiy lug‘atingizni qurilmalar bo‘ylab sinxronlang" - "Hozir sinxronlash" + "Sinxronlash" "Bulutdagi ma’lumotlarni o‘chirish" "Google xizmatlaridagi sinxronlangan ma’lumotlaringizni o‘chirib tashlaydi" "Sinxronlangan ma’lumotlaringiz o‘chib ketadi. Davom etsinmi?" @@ -56,19 +56,19 @@ "%s ms" "Tizim standarti" "Ismlarni taklif qilish" - "Kontaktlardagi ismlardan takliflar va tuzatishlarda foydalanilsin" - "Moslashtirilgan takliflar" - "%s ilovasini takomillashtirish" - "Nuqta avtomatik qo‘yilsin" - "Bo‘sh joy tugmasini ikki marta bosish nuqta va bo‘sh joy qoldirsin" - "Avtomatik bosh harfga o‘tkazish" + "Kontaktlar ro‘yxatidagi ismlar asosida tuzatmalarni taklif qilish" + "Foydalanuvchi lug‘atlari" + "%sni yaxshilash" + "Nuqtani avtomatik qo‘yish" + "Bo‘sh joy tugmasi ikki marta bosilsa, nuqta va bo‘sh joy qo‘yiladi" + "Avtomatik bosh harf" "Har bir gapning birinchi so‘zini bosh harf bilan yozish" "Shaxsiy lug‘at" "Qo‘shimcha lug‘atlar" "Asosiy lug‘at" - "To‘g‘rilash uchun variantlar" - "Yozayotganda taklif qilingan so‘zlar ko‘rsatilsin" - "Haqoratomuz so‘zlarni bloklash" + "Tuzatma variantlari" + "Matn kiritishda so‘z variantlari taklif qilinsin" + "Haqorat so‘zlarini bloklash" "Haqoratomuz so‘zlar taklif qilinmasin" "Avtomatik to‘g‘rilash" "Bo‘sh joy yoki tinish belgisi xato yoz-n so‘z-ni avto. to‘g‘ri-di" @@ -80,13 +80,13 @@ "So‘zlarni taklif qilishda avval yozilgan so‘zga asoslanish" "Imo-ishoralar bilan yozish" "So‘zlarni barmog‘ingizni klaviaturadan uzmasdan yozing" - "Chiziq chizish" - "Taklif qil-n so‘z-ni ko‘rsatish" - "Matn kiritayotganda taklif qilingan so‘zlarni ko‘rsatish" - "Iboralarni uzluksiz kiritish" + "Barmoq yo‘lini chizish" + "Takliflarni ko‘rsatish" + "Matn kiritishda taklif qilingan so‘zlarni ko‘rsatish" + "Qo‘l uzmasdan yozish" "Barmoqni har bir so‘zdan so‘ng bo‘sh joy qoldirish tugmasiga olib borish" - "Ovoz bilan kiritish tugmasi" - "Ovoz bilan yozish usuli yoqilmagan. Til va matn kiritish sozlamalarini tekshiring." + "Ovoz bilan yozish tugmasi" + "Ovoz bilan yozish usuli yoqilmagan. “Til va matn kiritish” sozlamalarini tekshiring." "Matn kiritish usullarini sozlash" "Tillar" "Yordam va fikr-mulohaza" @@ -136,7 +136,9 @@ "Xuddi shunday matn kiritish usuli allaqachon mavjud: %s" "Tugma bosilganda tebranish vaqti" "Tugma bosilgandagi ovoz" - "Uzoq bosib turish" + "Tugmani bosib turish" + "Tashqi klaviatura uchun kulgichlar" + "Tashqi klaviaturadagi Alt tugmasi kulgichlar ro‘yxatini ko‘rsatadi" "Standart" "%s ilovasiga xush kelibsiz!" "Imo-ishoralar bilan yozish" diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 6217ec18b..14ed89385 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -51,7 +51,7 @@ "Phím chuyển đổi ngôn ngữ" "Hiển thị khi nhiều ngôn ngữ đầu vào được bật" "Độ trễ ẩn phím bật lên" - "Không có tgian trễ" + "Không trễ" "Mặc định" "%s mili giây" "Mặc định của hệ thống" @@ -59,7 +59,7 @@ "Sử dụng tên từ Danh bạ cho các đề xuất và chỉnh sửa" "Đề xuất được cá nhân hóa" "Cải thiện %s" - "Nhấn đúp phím cách chèn dấu chấm câu" + "Đúp phím cách chèn dấu chấm" "Nhấn đúp phím cách sẽ chèn thêm một dấu chấm câu, theo sau là dấu cách" "Tự động viết hoa" "Viết hoa chữ đầu tiên của mỗi câu" @@ -136,7 +136,9 @@ "Đã tồn tại kiểu nhập tương tự: %s" "Thời gian rung khi nhấn phím" "Âm lượng khi nhấn phím" - "Tgian chờ cho nhấn và giữ phím" + "Thời gian trễ nhấn và giữ phím" + "Biểu tượng cảm xúc cho bàn phím thực" + "Phím Alt thực hiển thị bảng biểu tượng cảm xúc" "Mặc định" "Chào mừng bạn đến với %s" "với Nhập bằng cử chỉ" diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index 2fa671927..32a625b76 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -137,6 +137,8 @@ "按键振动时长" "按键音量" "按键长按延迟" + "通过实体键盘启用表情符号" + "按实体键盘上的 Alt 键可显示表情符号面板" "默认" "欢迎使用 %s" "体验顺畅的滑行输入体验" diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml index d9e83bb28..300bcf725 100644 --- a/java/res/values-zh-rHK/strings.xml +++ b/java/res/values-zh-rHK/strings.xml @@ -137,6 +137,8 @@ "按鍵震動時間" "按鍵音量" "長按鍵延遲" + "實體鍵盤表情圖案" + "以實體 Alt 鍵顯示表情圖案選項" "預設" "歡迎使用「%s」" "配備觸控輸入功能" diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index 724576e70..d0de0e8e2 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -137,6 +137,8 @@ "按鍵震動持續時間" "按鍵音量" "按鍵長按延遲" + "透過實體鍵盤啟用表情符號" + "按下實體 Alt 鍵即顯示表情符號面板" "預設" "歡迎使用 %s" "含滑行輸入功能" diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index 5ebbd1cf8..c65e0354f 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -137,6 +137,8 @@ "Ubude besikhathi sokudlidliza ukucindezela ukhiye" "Ivolumu yomsindo wokucindezela ukhiye" "Ukulibazisa ukucindezela isikhashana ukhiye" + "I-Emoji wekhibhodi yangempela" + "Ukhiye we-Alt woqobo ubonisa i-emoji palette" "Okuzenzakalelayo" "Siyakwamukela ku-%s" "nokuthayipha ngokuthinta" diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index a64d4480e..eeb5a20c9 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -385,12 +385,10 @@ mobile devices. [CHAR LIMIT=25] --> Keypress sound volume Key long press delay - - Emoji for physical keyboard - + Emoji for physical keyboard - Physical Alt key shows the emoji palette + Physical Alt key shows the emoji palette Default diff --git a/java/res/xml/prefs_screen_correction.xml b/java/res/xml/prefs_screen_correction.xml index d3f5c2695..a943dc1a3 100644 --- a/java/res/xml/prefs_screen_correction.xml +++ b/java/res/xml/prefs_screen_correction.xml @@ -19,6 +19,11 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" android:title="@string/settings_screen_correction" android:key="screen_correction"> + + + diff --git a/java/src/com/android/inputmethod/compat/DownloadManagerCompatUtils.java b/java/src/com/android/inputmethod/compat/DownloadManagerCompatUtils.java deleted file mode 100644 index 6209b60b3..000000000 --- a/java/src/com/android/inputmethod/compat/DownloadManagerCompatUtils.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.inputmethod.compat; - -import android.app.DownloadManager; - -import java.lang.reflect.Method; - -public final class DownloadManagerCompatUtils { - // DownloadManager.Request#setAllowedOverMetered() has been introduced - // in API level 16 (Build.VERSION_CODES.JELLY_BEAN). - private static final Method METHOD_setAllowedOverMetered = CompatUtils.getMethod( - DownloadManager.Request.class, "setAllowedOverMetered", boolean.class); - - public static DownloadManager.Request setAllowedOverMetered( - final DownloadManager.Request request, final boolean allowOverMetered) { - return (DownloadManager.Request)CompatUtils.invoke(request, - request /* default return value */, METHOD_setAllowedOverMetered, allowOverMetered); - } - - public static final boolean hasSetAllowedOverMetered() { - return null != METHOD_setAllowedOverMetered; - } -} diff --git a/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java b/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java index 09f8032cc..1b526d453 100644 --- a/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java +++ b/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java @@ -25,8 +25,9 @@ import android.net.Uri; import android.text.TextUtils; import android.util.Log; -import com.android.inputmethod.compat.DownloadManagerCompatUtils; +import com.android.inputmethod.latin.BinaryDictionaryFileDumper; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.common.LocaleUtils; import com.android.inputmethod.latin.utils.ApplicationUtils; import com.android.inputmethod.latin.utils.DebugLogUtils; @@ -84,7 +85,7 @@ public final class ActionBatch { * Execute this action NOW. * @param context the context to get system services, resources, databases */ - public void execute(final Context context); + void execute(final Context context); } /** @@ -96,13 +97,10 @@ public final class ActionBatch { private final String mClientId; // The data to download. May not be null. final WordListMetadata mWordList; - final boolean mForceStartNow; - public StartDownloadAction(final String clientId, - final WordListMetadata wordList, final boolean forceStartNow) { + public StartDownloadAction(final String clientId, final WordListMetadata wordList) { DebugLogUtils.l("New download action for client ", clientId, " : ", wordList); mClientId = clientId; mWordList = wordList; - mForceStartNow = forceStartNow; } @Override @@ -141,32 +139,9 @@ public final class ActionBatch { final Request request = new Request(uri); final Resources res = context.getResources(); - if (!mForceStartNow) { - if (DownloadManagerCompatUtils.hasSetAllowedOverMetered()) { - final boolean allowOverMetered; - switch (UpdateHandler.getDownloadOverMeteredSetting(context)) { - case UpdateHandler.DOWNLOAD_OVER_METERED_DISALLOWED: - // User said no: don't allow. - allowOverMetered = false; - break; - case UpdateHandler.DOWNLOAD_OVER_METERED_ALLOWED: - // User said yes: allow. - allowOverMetered = true; - break; - default: // UpdateHandler.DOWNLOAD_OVER_METERED_SETTING_UNKNOWN - // Don't know: use the default value from configuration. - allowOverMetered = res.getBoolean(R.bool.allow_over_metered); - } - DownloadManagerCompatUtils.setAllowedOverMetered(request, allowOverMetered); - } else { - request.setAllowedNetworkTypes(Request.NETWORK_WIFI); - } - request.setAllowedOverRoaming(res.getBoolean(R.bool.allow_over_roaming)); - } // if mForceStartNow, then allow all network types and roaming, which is the default. + request.setAllowedNetworkTypes(Request.NETWORK_WIFI | Request.NETWORK_MOBILE); request.setTitle(mWordList.mDescription); - request.setNotificationVisibility( - res.getBoolean(R.bool.display_notification_for_auto_update) - ? Request.VISIBILITY_VISIBLE : Request.VISIBILITY_HIDDEN); + request.setNotificationVisibility(Request.VISIBILITY_HIDDEN); request.setVisibleInDownloadsUi( res.getBoolean(R.bool.dict_downloads_visible_in_download_UI)); @@ -210,9 +185,17 @@ public final class ActionBatch { + " for an InstallAfterDownload action. Bailing out."); return; } + DebugLogUtils.l("Setting word list as installed"); final SQLiteDatabase db = MetadataDbHelper.getDb(context, mClientId); MetadataDbHelper.markEntryAsFinishedDownloadingAndInstalled(db, mWordListValues); + + // Install the downloaded file by un-compressing and moving it to the staging + // directory. Ideally, we should do this before updating the DB, but the + // installDictToStagingFromContentProvider() relies on the db being updated. + final String localeString = mWordListValues.getAsString(MetadataDbHelper.LOCALE_COLUMN); + BinaryDictionaryFileDumper.installDictToStagingFromContentProvider( + LocaleUtils.constructLocaleFromString(localeString), context, false); } } diff --git a/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java b/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java index 3cd822a3c..3d0e29ed0 100644 --- a/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java +++ b/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java @@ -22,8 +22,6 @@ import android.content.SharedPreferences; public final class CommonPreferences { private static final String COMMON_PREFERENCES_NAME = "LatinImeDictPrefs"; - public static final String PREF_FORCE_DOWNLOAD_DICT = "pref_key_force_download_dict"; - public static SharedPreferences getCommonPreferences(final Context context) { return context.getSharedPreferences(COMMON_PREFERENCES_NAME, 0); } @@ -39,14 +37,4 @@ public final class CommonPreferences { editor.putBoolean(id, false); editor.apply(); } - - public static boolean isForceDownloadDict(Context context) { - return getCommonPreferences(context).getBoolean(PREF_FORCE_DOWNLOAD_DICT, false); - } - - public static void setForceDownloadDict(Context context, boolean forceDownload) { - SharedPreferences.Editor editor = getCommonPreferences(context).edit(); - editor.putBoolean(PREF_FORCE_DOWNLOAD_DICT, forceDownload); - editor.apply(); - } } diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java index 659fe5c51..308b123e1 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java +++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java @@ -243,14 +243,8 @@ public final class DictionaryProvider extends ContentProvider { // Fall through case DICTIONARY_V1_DICT_INFO: final String locale = uri.getLastPathSegment(); - // If LatinIME does not have a dictionary for this locale at all, it will - // send us true for this value. In this case, we may prompt the user for - // a decision about downloading a dictionary even over a metered connection. - final String mayPromptValue = - uri.getQueryParameter(QUERY_PARAMETER_MAY_PROMPT_USER); - final boolean mayPrompt = QUERY_PARAMETER_TRUE.equals(mayPromptValue); final Collection dictFiles = - getDictionaryWordListsForLocale(clientId, locale, mayPrompt); + getDictionaryWordListsForLocale(clientId, locale); // TODO: pass clientId to the following function DictionaryService.updateNowIfNotUpdatedInAVeryLongTime(getContext()); if (null != dictFiles && dictFiles.size() > 0) { @@ -343,11 +337,10 @@ public final class DictionaryProvider extends ContentProvider { * * @param clientId the ID of the client requesting the list * @param locale the locale for which we want the list, as a String - * @param mayPrompt true if we are allowed to prompt the user for arbitration via notification * @return a collection of ids. It is guaranteed to be non-null, but may be empty. */ private Collection getDictionaryWordListsForLocale(final String clientId, - final String locale, final boolean mayPrompt) { + final String locale) { final Context context = getContext(); final Cursor results = MetadataDbHelper.queryInstalledOrDeletingOrAvailableDictionaryMetadata(context, @@ -412,8 +405,7 @@ public final class DictionaryProvider extends ContentProvider { } } else if (MetadataDbHelper.STATUS_AVAILABLE == wordListStatus) { // The locale is the id for the main dictionary. - UpdateHandler.installIfNeverRequested(context, clientId, wordListId, - mayPrompt); + UpdateHandler.installIfNeverRequested(context, clientId, wordListId); continue; } final WordListInfo currentBestMatch = dicts.get(wordListCategory); diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java index bbdf2a380..fe988ac70 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java +++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java @@ -192,27 +192,22 @@ public final class DictionaryService extends Service { } static void dispatchBroadcast(final Context context, final Intent intent) { - if (DATE_CHANGED_INTENT_ACTION.equals(intent.getAction())) { - // Do not force download dictionaries on date change updates. - CommonPreferences.setForceDownloadDict(context, false); + final String action = intent.getAction(); + if (DATE_CHANGED_INTENT_ACTION.equals(action)) { // This happens when the date of the device changes. This normally happens // at midnight local time, but it may happen if the user changes the date // by hand or something similar happens. checkTimeAndMaybeSetupUpdateAlarm(context); - } else if (DictionaryPackConstants.UPDATE_NOW_INTENT_ACTION.equals(intent.getAction())) { + } else if (DictionaryPackConstants.UPDATE_NOW_INTENT_ACTION.equals(action)) { // Intent to trigger an update now. - UpdateHandler.tryUpdate(context, CommonPreferences.isForceDownloadDict(context)); - } else if (DictionaryPackConstants.INIT_AND_UPDATE_NOW_INTENT_ACTION.equals( - intent.getAction())) { - // Enable force download of dictionaries irrespective of wifi or metered connection. - CommonPreferences.setForceDownloadDict(context, true); - + UpdateHandler.tryUpdate(context); + } else if (DictionaryPackConstants.INIT_AND_UPDATE_NOW_INTENT_ACTION.equals(action)) { // Initialize the client Db. final String mClientId = context.getString(R.string.dictionary_pack_client_id); BinaryDictionaryFileDumper.initializeClientRecordHelper(context, mClientId); // Updates the metadata and the download the dictionaries. - UpdateHandler.tryUpdate(context, true); + UpdateHandler.tryUpdate(context); } else { UpdateHandler.downloadFinished(context, intent); } @@ -263,7 +258,7 @@ public final class DictionaryService extends Service { */ public static void updateNowIfNotUpdatedInAVeryLongTime(final Context context) { if (!isLastUpdateAtLeastThisOld(context, VERY_LONG_TIME_MILLIS)) return; - UpdateHandler.tryUpdate(context, CommonPreferences.isForceDownloadDict(context)); + UpdateHandler.tryUpdate(context); } /** diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java index 88ea4e6c3..35b46a978 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java +++ b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java @@ -384,7 +384,7 @@ public final class DictionarySettingsFragment extends PreferenceFragment // We call tryUpdate(), which returns whether we could successfully start an update. // If we couldn't, we'll never receive the end callback, so we stop the loading // animation and return to the previous screen. - if (!UpdateHandler.tryUpdate(activity, true)) { + if (!UpdateHandler.tryUpdate(activity)) { stopLoadingAnimation(); } } diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java index 3dbbc9b9b..6f6b02637 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java +++ b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java @@ -27,6 +27,8 @@ import android.util.Log; import java.io.FileNotFoundException; +import javax.annotation.Nullable; + /** * A class to help with calling DownloadManager methods. * @@ -78,6 +80,7 @@ public class DownloadManagerWrapper { throw new FileNotFoundException(); } + @Nullable public Cursor query(final Query query) { try { if (null != mDownloadManager) { diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java b/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java index 91ed673ae..908d931a0 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java +++ b/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java @@ -80,8 +80,7 @@ public final class DownloadOverMeteredDialog extends Activity { @SuppressWarnings("unused") public void onClickAllow(final View v) { UpdateHandler.setDownloadOverMeteredSetting(this, true); - UpdateHandler.installIfNeverRequested(this, mClientId, mWordListToDownload, - false /* mayPrompt */); + UpdateHandler.installIfNeverRequested(this, mClientId, mWordListToDownload); finish(); } } diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java index fbc899192..7d01351b4 100644 --- a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java +++ b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java @@ -50,7 +50,7 @@ public class MetadataDbHelper extends SQLiteOpenHelper { private static final int METADATA_DATABASE_VERSION_WITH_CLIENTID = 6; // The current database version. // This MUST be increased every time the dictionary pack metadata URL changes. - private static final int CURRENT_METADATA_DATABASE_VERSION = 14; + private static final int CURRENT_METADATA_DATABASE_VERSION = 16; private final static long NOT_A_DOWNLOAD_ID = -1; @@ -266,8 +266,6 @@ public class MetadataDbHelper extends SQLiteOpenHelper { */ @Override public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion) { - // Allow automatic download of dictionaries on upgrading the database. - CommonPreferences.setForceDownloadDict(mContext, true); if (METADATA_DATABASE_INITIAL_VERSION == oldVersion && METADATA_DATABASE_VERSION_WITH_CLIENTID <= newVersion && CURRENT_METADATA_DATABASE_VERSION >= newVersion) { @@ -345,6 +343,8 @@ public class MetadataDbHelper extends SQLiteOpenHelper { return null != getMetadataUriAsString(context, clientId); } + private static final MetadataUriGetter sMetadataUriGetter = new MetadataUriGetter(); + /** * Returns the metadata URI as a string. * @@ -358,13 +358,12 @@ public class MetadataDbHelper extends SQLiteOpenHelper { public static String getMetadataUriAsString(final Context context, final String clientId) { SQLiteDatabase defaultDb = MetadataDbHelper.getDb(context, null); final Cursor cursor = defaultDb.query(MetadataDbHelper.CLIENT_TABLE_NAME, - new String[] { MetadataDbHelper.CLIENT_METADATA_URI_COLUMN, - MetadataDbHelper.CLIENT_METADATA_ADDITIONAL_ID_COLUMN }, + new String[] { MetadataDbHelper.CLIENT_METADATA_URI_COLUMN }, MetadataDbHelper.CLIENT_CLIENT_ID_COLUMN + " = ?", new String[] { clientId }, null, null, null, null); try { if (!cursor.moveToFirst()) return null; - return MetadataUriGetter.getUri(context, cursor.getString(0), cursor.getString(1)); + return sMetadataUriGetter.getUri(context, cursor.getString(0)); } finally { cursor.close(); } diff --git a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java index e61547a9d..a02203d31 100644 --- a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java +++ b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java @@ -36,7 +36,6 @@ import android.text.TextUtils; import android.util.Log; import com.android.inputmethod.compat.ConnectivityManagerCompatUtils; -import com.android.inputmethod.compat.DownloadManagerCompatUtils; import com.android.inputmethod.compat.NotificationCompatUtils; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.common.LocaleUtils; @@ -106,9 +105,9 @@ public final class UpdateHandler { * This is chiefly used by the dictionary manager UI. */ public interface UpdateEventListener { - public void downloadedMetadata(boolean succeeded); - public void wordListDownloadFinished(String wordListId, boolean succeeded); - public void updateCycleCompleted(); + void downloadedMetadata(boolean succeeded); + void wordListDownloadFinished(String wordListId, boolean succeeded); + void updateCycleCompleted(); } /** @@ -179,10 +178,9 @@ public final class UpdateHandler { /** * Download latest metadata from the server through DownloadManager for all known clients * @param context The context for retrieving resources - * @param updateNow Whether we should update NOW, or respect bandwidth policies * @return true if an update successfully started, false otherwise. */ - public static boolean tryUpdate(final Context context, final boolean updateNow) { + public static boolean tryUpdate(final Context context) { // TODO: loop through all clients instead of only doing the default one. final TreeSet uris = new TreeSet<>(); final Cursor cursor = MetadataDbHelper.queryClientIds(context); @@ -208,7 +206,7 @@ public final class UpdateHandler { // it should have been rejected at the time of client registration; if there // is a bug and it happens anyway, doing nothing is the right thing to do. // For more information, {@see DictionaryProvider#insert(Uri, ContentValues)}. - updateClientsWithMetadataUri(context, updateNow, metadataUri); + updateClientsWithMetadataUri(context, metadataUri); started = true; } } @@ -219,12 +217,11 @@ public final class UpdateHandler { * Download latest metadata from the server through DownloadManager for all relevant clients * * @param context The context for retrieving resources - * @param updateNow Whether we should update NOW, or respect bandwidth policies * @param metadataUri The client to update */ - private static void updateClientsWithMetadataUri(final Context context, - final boolean updateNow, final String metadataUri) { - PrivateLog.log("Update for metadata URI " + DebugLogUtils.s(metadataUri)); + private static void updateClientsWithMetadataUri( + final Context context, final String metadataUri) { + Log.i(TAG, "updateClientsWithMetadataUri() : MetadataUri = " + metadataUri); // Adding a disambiguator to circumvent a bug in older versions of DownloadManager. // DownloadManager also stupidly cuts the extension to replace with its own that it // gets from the content-type. We need to circumvent this. @@ -234,25 +231,10 @@ public final class UpdateHandler { DebugLogUtils.l("Request =", metadataRequest); final Resources res = context.getResources(); - // By default, download over roaming is allowed and all network types are allowed too. - if (!updateNow) { - final boolean allowedOverMetered = res.getBoolean(R.bool.allow_over_metered); - // If we don't have to update NOW, then only do it over non-metered connections. - if (DownloadManagerCompatUtils.hasSetAllowedOverMetered()) { - DownloadManagerCompatUtils.setAllowedOverMetered(metadataRequest, - allowedOverMetered); - } else if (!allowedOverMetered) { - metadataRequest.setAllowedNetworkTypes(Request.NETWORK_WIFI); - } - metadataRequest.setAllowedOverRoaming(res.getBoolean(R.bool.allow_over_roaming)); - } - final boolean notificationVisible = updateNow - ? res.getBoolean(R.bool.display_notification_for_user_requested_update) - : res.getBoolean(R.bool.display_notification_for_auto_update); - + metadataRequest.setAllowedNetworkTypes(Request.NETWORK_WIFI | Request.NETWORK_MOBILE); metadataRequest.setTitle(res.getString(R.string.download_description)); - metadataRequest.setNotificationVisibility(notificationVisible - ? Request.VISIBILITY_VISIBLE : Request.VISIBILITY_HIDDEN); + // Do not show the notification when downloading the metadata. + metadataRequest.setNotificationVisibility(Request.VISIBILITY_HIDDEN); metadataRequest.setVisibleInDownloadsUi( res.getBoolean(R.bool.metadata_downloads_visible_in_download_UI)); @@ -273,7 +255,7 @@ public final class UpdateHandler { // method will ignore it. writeMetadataDownloadId(context, metadataUri, downloadId); } - PrivateLog.log("Requested download with id " + downloadId); + Log.i(TAG, "updateClientsWithMetadataUri() : DownloadId = " + downloadId); } /** @@ -345,11 +327,11 @@ public final class UpdateHandler { */ public static long registerDownloadRequest(final DownloadManagerWrapper manager, final Request request, final SQLiteDatabase db, final String id, final int version) { - DebugLogUtils.l("RegisterDownloadRequest for word list id : ", id, ", version ", version); + Log.i(TAG, "registerDownloadRequest() : Id = " + id + " : Version = " + version); final long downloadId; synchronized (sSharedIdProtector) { downloadId = manager.enqueue(request); - DebugLogUtils.l("Download requested with id", downloadId); + Log.i(TAG, "registerDownloadRequest() : DownloadId = " + downloadId); MetadataDbHelper.markEntryAsDownloading(db, id, version, downloadId); } return downloadId; @@ -434,8 +416,7 @@ public final class UpdateHandler { /* package */ static void downloadFinished(final Context context, final Intent intent) { // Get and check the ID of the file that was downloaded final long fileId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, NOT_AN_ID); - PrivateLog.log("Download finished with id " + fileId); - DebugLogUtils.l("DownloadFinished with id", fileId); + Log.i(TAG, "downloadFinished() : DownloadId = " + fileId); if (NOT_AN_ID == fileId) return; // Spurious wake-up: ignore final DownloadManagerWrapper manager = new DownloadManagerWrapper(context); @@ -451,31 +432,27 @@ public final class UpdateHandler { // download, so we are pretty sure it's alive. It's theoretically possible that it's // disabled right inbetween the firing of the intent and the control reaching here. - boolean dictionaryDownloaded = false; - for (final DownloadRecord record : recordList) { // downloadSuccessful is not final because we may still have exceptions from now on boolean downloadSuccessful = false; try { if (downloadInfo.wasSuccessful()) { downloadSuccessful = handleDownloadedFile(context, record, manager, fileId); + Log.i(TAG, "downloadFinished() : Success = " + downloadSuccessful); } } finally { + final String resultMessage = downloadSuccessful ? "Success" : "Failure"; if (record.isMetadata()) { + Log.i(TAG, "downloadFinished() : Metadata " + resultMessage); publishUpdateMetadataCompleted(context, downloadSuccessful); } else { + Log.i(TAG, "downloadFinished() : WordList " + resultMessage); final SQLiteDatabase db = MetadataDbHelper.getDb(context, record.mClientId); publishUpdateWordListCompleted(context, downloadSuccessful, fileId, db, record.mAttributes, record.mClientId); - dictionaryDownloaded = true; } } } - - if (dictionaryDownloaded) { - // Disable the force download after downloading the dictionaries. - CommonPreferences.setForceDownloadDict(context, false); - } // Now that we're done using it, we can remove this download from DLManager manager.remove(fileId); } @@ -592,6 +569,8 @@ public final class UpdateHandler { * Warn Android Keyboard that the state of dictionaries changed and it should refresh its data. */ private static void signalNewDictionaryState(final Context context) { + // TODO: Also provide the locale of the updated dictionary so that the LatinIme + // does not have to reset if it is a different locale. final Intent newDictBroadcast = new Intent(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION); context.sendBroadcast(newDictBroadcast); @@ -606,7 +585,7 @@ public final class UpdateHandler { * @throws BadFormatException if the metadata is not in a known format. * @throws IOException if the downloaded file can't be read from the disk */ - private static void handleMetadata(final Context context, final InputStream stream, + public static void handleMetadata(final Context context, final InputStream stream, final String clientId) throws IOException, BadFormatException { DebugLogUtils.l("Entering handleMetadata"); final List newMetadata; @@ -830,8 +809,7 @@ public final class UpdateHandler { actions.add(new ActionBatch.MakeAvailableAction(clientId, newInfo)); if (status == MetadataDbHelper.STATUS_INSTALLED || status == MetadataDbHelper.STATUS_DISABLED) { - actions.add(new ActionBatch.StartDownloadAction( - clientId, newInfo, CommonPreferences.isForceDownloadDict(context))); + actions.add(new ActionBatch.StartDownloadAction(clientId, newInfo)); } else { // Pass true to ForgetAction: this is indeed an update to a non-installed // word list, so activate status == AVAILABLE check @@ -929,7 +907,9 @@ public final class UpdateHandler { // list because it may only install the latest version we know about for this specific // word list ID / client ID combination. public static void installIfNeverRequested(final Context context, final String clientId, - final String wordlistId, final boolean mayPrompt) { + final String wordlistId) { + Log.i(TAG, "installIfNeverRequested() : ClientId = " + clientId + + " : WordListId = " + wordlistId); final String[] idArray = wordlistId.split(DictionaryProvider.ID_CATEGORY_SEPARATOR); // If we have a new-format dictionary id (category:manual_id), then use the // specified category. Otherwise, it is a main dictionary, so force the @@ -962,17 +942,6 @@ public final class UpdateHandler { return; } - if (mayPrompt - && DOWNLOAD_OVER_METERED_SETTING_UNKNOWN - == getDownloadOverMeteredSetting(context)) { - final ConnectivityManager cm = - (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - if (ConnectivityManagerCompatUtils.isActiveNetworkMetered(cm)) { - showDictionaryAvailableNotification(context, clientId, installCandidate); - return; - } - } - // We decided against prompting the user for a decision. This may be because we were // explicitly asked not to, or because we are currently on wi-fi anyway, or because we // already know the answer to the question. We'll enqueue a request ; StartDownloadAction @@ -984,21 +953,18 @@ public final class UpdateHandler { // change the shared preferences. So there is no way for a word list that has been // auto-installed once to get auto-installed again, and that's what we want. final ActionBatch actions = new ActionBatch(); - actions.add(new ActionBatch.StartDownloadAction( - clientId, - WordListMetadata.createFromContentValues(installCandidate), - CommonPreferences.isForceDownloadDict(context))); + WordListMetadata metadata = WordListMetadata.createFromContentValues(installCandidate); + actions.add(new ActionBatch.StartDownloadAction(clientId, metadata)); final String localeString = installCandidate.getAsString(MetadataDbHelper.LOCALE_COLUMN); // We are in a content provider: we can't do any UI at all. We have to defer the displaying // itself to the service. Also, we only display this when the user does not have a - // dictionary for this language already: we know that from the mayPrompt argument. - if (mayPrompt) { - final Intent intent = new Intent(); - intent.setClass(context, DictionaryService.class); - intent.setAction(DictionaryService.SHOW_DOWNLOAD_TOAST_INTENT_ACTION); - intent.putExtra(DictionaryService.LOCALE_INTENT_ARGUMENT, localeString); - context.startService(intent); - } + // dictionary for this language already. + final Intent intent = new Intent(); + intent.setClass(context, DictionaryService.class); + intent.setAction(DictionaryService.SHOW_DOWNLOAD_TOAST_INTENT_ACTION); + intent.putExtra(DictionaryService.LOCALE_INTENT_ARGUMENT, localeString); + context.startService(intent); + Log.i(TAG, "installIfNeverRequested() : StartDownloadAction for " + metadata); actions.execute(context, new LogProblemReporter(TAG)); } @@ -1033,9 +999,7 @@ public final class UpdateHandler { || MetadataDbHelper.STATUS_DELETING == status) { actions.add(new ActionBatch.EnableAction(clientId, wordListMetaData)); } else if (MetadataDbHelper.STATUS_AVAILABLE == status) { - boolean forceDownloadDict = CommonPreferences.isForceDownloadDict(context); - actions.add(new ActionBatch.StartDownloadAction(clientId, wordListMetaData, - forceDownloadDict || allowDownloadOnMeteredData)); + actions.add(new ActionBatch.StartDownloadAction(clientId, wordListMetaData)); } else { Log.e(TAG, "Unexpected state of the word list for markAsUsed : " + status); } @@ -1150,8 +1114,7 @@ public final class UpdateHandler { } final ActionBatch actions = new ActionBatch(); - actions.add(new ActionBatch.StartDownloadAction( - clientId, wordListMetaData, CommonPreferences.isForceDownloadDict(context))); + actions.add(new ActionBatch.StartDownloadAction(clientId, wordListMetaData)); actions.execute(context, new LogProblemReporter(TAG)); } else { if (DEBUG) { diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java index 381d7f4f7..adab136c5 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java @@ -30,6 +30,8 @@ import android.util.Log; import com.android.inputmethod.latin.common.FileUtils; import com.android.inputmethod.dictionarypack.DictionaryPackConstants; import com.android.inputmethod.dictionarypack.MD5Calculator; +import com.android.inputmethod.dictionarypack.UpdateHandler; +import com.android.inputmethod.latin.common.FileUtils; import com.android.inputmethod.latin.define.DecoderSpecificConstants; import com.android.inputmethod.latin.utils.DictionaryInfoUtils; import com.android.inputmethod.latin.utils.DictionaryInfoUtils.DictionaryInfo; @@ -221,11 +223,11 @@ public final class BinaryDictionaryFileDumper { } /** - * Caches a word list the id of which is passed as an argument. This will write the file + * Stages a word list the id of which is passed as an argument. This will write the file * to the cache file name designated by its id and locale, overwriting it if already present * and creating it (and its containing directory) if necessary. */ - private static void cacheWordList(final String wordlistId, final String locale, + private static void installWordListToStaging(final String wordlistId, final String locale, final String rawChecksum, final ContentProviderClient providerClient, final Context context) { final int COMPRESSED_CRYPTED_COMPRESSED = 0; @@ -247,7 +249,7 @@ public final class BinaryDictionaryFileDumper { return; } final String finalFileName = - DictionaryInfoUtils.getCacheFileName(wordlistId, locale, context); + DictionaryInfoUtils.getStagingFileName(wordlistId, locale, context); String tempFileName; try { tempFileName = BinaryDictionaryGetter.getTempFileName(wordlistId, context); @@ -321,6 +323,7 @@ public final class BinaryDictionaryFileDumper { } } + // move the output file to the final staging file. final File finalFile = new File(finalFileName); if (!FileUtils.renameTo(outputFile, finalFile)) { Log.e(TAG, String.format("Failed to rename from %s to %s.", @@ -332,13 +335,12 @@ public final class BinaryDictionaryFileDumper { if (0 >= providerClient.delete(wordListUriBuilder.build(), null, null)) { Log.e(TAG, "Could not have the dictionary pack delete a word list"); } - BinaryDictionaryGetter.removeFilesWithIdExcept(context, wordlistId, finalFile); - Log.e(TAG, "Successfully copied file for wordlist ID " + wordlistId); + Log.d(TAG, "Successfully copied file for wordlist ID " + wordlistId); // Success! Close files (through the finally{} clause) and return. return; } catch (Exception e) { if (DEBUG) { - Log.i(TAG, "Can't open word list in mode " + mode, e); + Log.e(TAG, "Can't open word list in mode " + mode, e); } if (null != outputFile) { // This may or may not fail. The file may not have been created if the @@ -405,7 +407,7 @@ public final class BinaryDictionaryFileDumper { } /** - * Queries a content provider for word list data for some locale and cache the returned files + * Queries a content provider for word list data for some locale and stage the returned files * * This will query a content provider for word list data for a given locale, and copy the * files locally so that they can be mmap'ed. This may overwrite previously cached word lists @@ -413,7 +415,7 @@ public final class BinaryDictionaryFileDumper { * @throw FileNotFoundException if the provider returns non-existent data. * @throw IOException if the provider-returned data could not be read. */ - public static void cacheWordListsFromContentProvider(final Locale locale, + public static void installDictToStagingFromContentProvider(final Locale locale, final Context context, final boolean hasDefaultWordList) { final ContentProviderClient providerClient; try { @@ -431,13 +433,26 @@ public final class BinaryDictionaryFileDumper { final List idList = getWordListWordListInfos(locale, context, hasDefaultWordList); for (WordListInfo id : idList) { - cacheWordList(id.mId, id.mLocale, id.mRawChecksum, providerClient, context); + installWordListToStaging(id.mId, id.mLocale, id.mRawChecksum, providerClient, + context); } } finally { providerClient.release(); } } + /** + * Downloads the dictionary if it was never requested/used. + * + * @param locale locale to download + * @param context the context for resources and providers. + * @param hasDefaultWordList whether the default wordlist exists in the resources. + */ + public static void downloadDictIfNeverRequested(final Locale locale, + final Context context, final boolean hasDefaultWordList) { + getWordListWordListInfos(locale, context, hasDefaultWordList); + } + /** * Copies the data in an input stream to a target file if the magic number matches. * @@ -477,6 +492,8 @@ public final class BinaryDictionaryFileDumper { private static void reinitializeClientRecordInDictionaryContentProvider(final Context context, final ContentProviderClient client, final String clientId) throws RemoteException { final String metadataFileUri = MetadataFileUriGetter.getMetadataUri(context); + Log.i(TAG, "reinitializeClientRecordInDictionaryContentProvider() : MetadataFileUri = " + + metadataFileUri); final String metadataAdditionalId = MetadataFileUriGetter.getMetadataAdditionalId(context); // Tell the content provider to reset all information about this client id final Uri metadataContentUri = getProviderUriBuilder(clientId) @@ -501,9 +518,34 @@ public final class BinaryDictionaryFileDumper { final int length = dictionaryList.size(); for (int i = 0; i < length; ++i) { final DictionaryInfo info = dictionaryList.get(i); + Log.i(TAG, "reinitializeClientRecordInDictionaryContentProvider() : Insert " + info); client.insert(Uri.withAppendedPath(dictionaryContentUriBase, info.mId), info.toContentValues()); } + + // Read from metadata file in resources to get the baseline dictionary info. + // This ensures we start with a sane list of available dictionaries. + final int metadataResourceId = context.getResources().getIdentifier("metadata", + "raw", DictionaryInfoUtils.RESOURCE_PACKAGE_NAME); + if (metadataResourceId == 0) { + Log.w(TAG, "Missing metadata.json resource"); + return; + } + InputStream inputStream = null; + try { + inputStream = context.getResources().openRawResource(metadataResourceId); + UpdateHandler.handleMetadata(context, inputStream, clientId); + } catch (Exception e) { + Log.w(TAG, "Failed to read metadata.json from resources", e); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + Log.w(TAG, "Failed to close metadata.json", e); + } + } + } } /** diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java index 5f2a112ba..60016371b 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java @@ -195,39 +195,6 @@ final public class BinaryDictionaryGetter { return result; } - /** - * Remove all files with the passed id, except the passed file. - * - * If a dictionary with a given ID has a metadata change that causes it to change - * path, we need to remove the old version. The only way to do this is to check all - * installed files for a matching ID in a different directory. - */ - public static void removeFilesWithIdExcept(final Context context, final String id, - final File fileToKeep) { - try { - final File canonicalFileToKeep = fileToKeep.getCanonicalFile(); - final File[] directoryList = DictionaryInfoUtils.getCachedDirectoryList(context); - if (null == directoryList) return; - for (File directory : directoryList) { - // There is one directory per locale. See #getCachedDirectoryList - if (!directory.isDirectory()) continue; - final File[] wordLists = directory.listFiles(); - if (null == wordLists) continue; - for (File wordList : wordLists) { - final String fileId = - DictionaryInfoUtils.getWordListIdFromFileName(wordList.getName()); - if (fileId.equals(id)) { - if (!canonicalFileToKeep.equals(wordList.getCanonicalFile())) { - wordList.delete(); - } - } - } - } - } catch (java.io.IOException e) { - Log.e(TAG, "IOException trying to cleanup files", e); - } - } - // ## HACK ## we prevent usage of a dictionary before version 18. The reason for this is, since // those do not include whitelist entries, the new code with an old version of the dictionary // would lose whitelist functionality. @@ -274,12 +241,18 @@ final public class BinaryDictionaryGetter { */ public static ArrayList getDictionaryFiles(final Locale locale, final Context context, boolean notifyDictionaryPackForUpdates) { - - final boolean hasDefaultWordList = DictionaryInfoUtils.isDictionaryAvailable( - context, locale); if (notifyDictionaryPackForUpdates) { - BinaryDictionaryFileDumper.cacheWordListsFromContentProvider(locale, context, - hasDefaultWordList); + final boolean hasDefaultWordList = DictionaryInfoUtils.isDictionaryAvailable( + context, locale); + // It makes sure that the first time keyboard comes up and the dictionaries are reset, + // the DB is populated with the appropriate values for each locale. Helps in downloading + // the dictionaries when the user enables and switches new languages before the + // DictionaryService runs. + BinaryDictionaryFileDumper.downloadDictIfNeverRequested( + locale, context, hasDefaultWordList); + + // Move a staging files to the cache ddirectories if any. + DictionaryInfoUtils.moveStagingFilesIfExists(context); } final File[] cachedWordLists = getCachedWordLists(locale.toString(), context); final String mainDictId = DictionaryInfoUtils.getMainDictId(locale); diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java index ff798abd6..02015da09 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java @@ -17,6 +17,7 @@ package com.android.inputmethod.latin; import android.content.Context; +import android.util.LruCache; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.Keyboard; @@ -54,6 +55,18 @@ public interface DictionaryFacilitator { Dictionary.TYPE_USER_HISTORY, Dictionary.TYPE_USER}; + /** + * The facilitator will put words into the cache whenever it decodes them. + * @param cache + */ + void setValidSpellingWordReadCache(final LruCache cache); + + /** + * The facilitator will get words from the cache whenever it needs to check their spelling. + * @param cache + */ + void setValidSpellingWordWriteCache(final LruCache cache); + /** * Returns whether this facilitator is exactly for this locale. * @@ -88,12 +101,16 @@ public interface DictionaryFacilitator { * * WARNING: The service methods that call start/finish are very spammy. */ - void onFinishInput(); + void onFinishInput(Context context); boolean isActive(); Locale getLocale(); + boolean usesContacts(); + + String getAccount(); + void resetDictionaries( final Context context, final Locale newLocale, @@ -149,7 +166,7 @@ public interface DictionaryFacilitator { boolean isValidSuggestionWord(final String word); - void clearUserHistoryDictionary(final Context context); + boolean clearUserHistoryDictionary(final Context context); String dump(final Context context); diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java index 7233d27ab..c7115c9d9 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java @@ -19,6 +19,7 @@ package com.android.inputmethod.latin; import android.content.Context; import android.text.TextUtils; import android.util.Log; +import android.util.LruCache; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.Keyboard; @@ -26,6 +27,7 @@ import com.android.inputmethod.latin.NgramContext.WordInfo; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.common.ComposedData; import com.android.inputmethod.latin.common.Constants; +import com.android.inputmethod.latin.common.StringUtils; import com.android.inputmethod.latin.personalization.UserHistoryDictionary; import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion; import com.android.inputmethod.latin.utils.ExecutorUtils; @@ -82,6 +84,19 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { private static final Class[] DICT_FACTORY_METHOD_ARG_TYPES = new Class[] { Context.class, Locale.class, File.class, String.class, String.class }; + private LruCache mValidSpellingWordReadCache; + private LruCache mValidSpellingWordWriteCache; + + @Override + public void setValidSpellingWordReadCache(final LruCache cache) { + mValidSpellingWordReadCache = cache; + } + + @Override + public void setValidSpellingWordWriteCache(final LruCache cache) { + mValidSpellingWordWriteCache = cache; + } + @Override public boolean isForLocale(final Locale locale) { return locale != null && locale.equals(mDictionaryGroup.mLocale); @@ -207,7 +222,7 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { } @Override - public void onFinishInput() { + public void onFinishInput(Context context) { } @Override @@ -220,6 +235,16 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { return mDictionaryGroup.mLocale; } + @Override + public boolean usesContacts() { + return mDictionaryGroup.getSubDict(Dictionary.TYPE_CONTACTS) != null; + } + + @Override + public String getAccount() { + return null; + } + @Nullable private static ExpandableBinaryDictionary getSubDict(final String dictType, final Context context, final Locale locale, final File dictFile, @@ -341,6 +366,10 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { dictionarySetToCleanup.closeDict(dictType); } } + + if (mValidSpellingWordWriteCache != null) { + mValidSpellingWordWriteCache.evictAll(); + } } private void asyncReloadUninitializedMainDictionaries(final Context context, @@ -464,6 +493,10 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { public void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized, @Nonnull final NgramContext ngramContext, final long timeStampInSeconds, final boolean blockPotentiallyOffensive) { + // Update the spelling cache before learning. Words that are not yet added to user history + // and appear in no other language model are not considered valid. + putWordIntoValidSpellingWordCache("addToUserHistory", suggestion); + final String[] words = suggestion.split(Constants.WORD_SEPARATOR); NgramContext ngramContextForCurrentWord = ngramContext; for (int i = 0; i < words.length; i++) { @@ -477,6 +510,29 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { } } + private void putWordIntoValidSpellingWordCache( + @Nonnull final String caller, + @Nonnull final String originalWord) { + if (mValidSpellingWordWriteCache == null) { + return; + } + + final String lowerCaseWord = originalWord.toLowerCase(getLocale()); + final boolean lowerCaseValid = isValidSpellingWord(lowerCaseWord); + mValidSpellingWordWriteCache.put(lowerCaseWord, lowerCaseValid); + + final String capitalWord = + StringUtils.capitalizeFirstAndDowncaseRest(originalWord, getLocale()); + final boolean capitalValid; + if (lowerCaseValid) { + // The lower case form of the word is valid, so the upper case must be valid. + capitalValid = true; + } else { + capitalValid = isValidSpellingWord(capitalWord); + } + mValidSpellingWordWriteCache.put(capitalWord, capitalValid); + } + private void addWordToUserHistory(final DictionaryGroup dictionaryGroup, final NgramContext ngramContext, final String word, final boolean wasAutoCapitalized, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { @@ -543,6 +599,10 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { if (eventType != Constants.EVENT_BACKSPACE) { removeWord(Dictionary.TYPE_USER_HISTORY, word); } + + // Update the spelling cache after unlearning. Words that are removed from user history + // and appear in no other language model are not considered valid. + putWordIntoValidSpellingWordCache("unlearnFromUserHistory", word.toLowerCase()); } // TODO: Revise the way to fusion suggestion results. @@ -577,6 +637,13 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { } public boolean isValidSpellingWord(final String word) { + if (mValidSpellingWordReadCache != null) { + final Boolean cachedValue = mValidSpellingWordReadCache.get(word); + if (cachedValue != null) { + return cachedValue; + } + } + return isValidWord(word, ALL_DICTIONARY_TYPES); } @@ -620,16 +687,18 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { return maxFreq; } - private void clearSubDictionary(final String dictName) { + private boolean clearSubDictionary(final String dictName) { final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName); - if (dictionary != null) { - dictionary.clear(); + if (dictionary == null) { + return false; } + dictionary.clear(); + return true; } @Override - public void clearUserHistoryDictionary(final Context context) { - clearSubDictionary(Dictionary.TYPE_USER_HISTORY); + public boolean clearUserHistoryDictionary(final Context context) { + return clearSubDictionary(Dictionary.TYPE_USER_HISTORY); } @Override diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 330be377b..089670ebf 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -972,7 +972,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen void onFinishInputInternal() { super.onFinishInput(); - mDictionaryFacilitator.onFinishInput(); + mDictionaryFacilitator.onFinishInput(this); final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); if (mainKeyboardView != null) { mainKeyboardView.closing(); diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java index a123d282b..a10f2bdb0 100644 --- a/java/src/com/android/inputmethod/latin/RichInputConnection.java +++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java @@ -16,11 +16,10 @@ package com.android.inputmethod.latin; -import static com.android.inputmethod.latin.define.DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH; - import android.inputmethodservice.InputMethodService; import android.os.Build; import android.os.Bundle; +import android.os.SystemClock; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.style.CharacterStyle; @@ -37,7 +36,6 @@ import com.android.inputmethod.compat.InputConnectionCompatUtils; import com.android.inputmethod.latin.common.Constants; import com.android.inputmethod.latin.common.UnicodeSurrogate; import com.android.inputmethod.latin.common.StringUtils; -import com.android.inputmethod.latin.define.DecoderSpecificConstants; import com.android.inputmethod.latin.inputlogic.PrivateCommandPerformer; import com.android.inputmethod.latin.settings.SpacingAndPunctuations; import com.android.inputmethod.latin.utils.CapsModeUtils; @@ -45,8 +43,11 @@ import com.android.inputmethod.latin.utils.DebugLogUtils; import com.android.inputmethod.latin.utils.NgramContextUtils; import com.android.inputmethod.latin.utils.ScriptUtils; import com.android.inputmethod.latin.utils.SpannableStringUtils; +import com.android.inputmethod.latin.utils.StatsUtils; import com.android.inputmethod.latin.utils.TextRange; +import java.util.concurrent.TimeUnit; + import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -59,16 +60,41 @@ import javax.annotation.Nullable; * for example. */ public final class RichInputConnection implements PrivateCommandPerformer { - private static final String TAG = RichInputConnection.class.getSimpleName(); + private static final String TAG = "RichInputConnection"; private static final boolean DBG = false; private static final boolean DEBUG_PREVIOUS_TEXT = false; private static final boolean DEBUG_BATCH_NESTING = false; - // Provision for realistic N-grams like "Hello, how are you?" and "I'm running 5 late". - // Technically, this will not handle 5-grams composed of long words, but in practice, - // our language models don't include that much data. - private static final int LOOKBACK_CHARACTER_NUM = 80; + private static final int NUM_CHARS_TO_GET_BEFORE_CURSOR = 40; + private static final int NUM_CHARS_TO_GET_AFTER_CURSOR = 40; private static final int INVALID_CURSOR_POSITION = -1; + /** + * The amount of time a {@link #reloadTextCache} call needs to take for the keyboard to enter + * the {@link #hasSlowInputConnection} state. + */ + private static final long SLOW_INPUT_CONNECTION_ON_FULL_RELOAD_MS = 1000; + /** + * The amount of time a {@link #getTextBeforeCursor} or {@link #getTextAfterCursor} call needs + * to take for the keyboard to enter the {@link #hasSlowInputConnection} state. + */ + private static final long SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS = 200; + + private static final int OPERATION_GET_TEXT_BEFORE_CURSOR = 0; + private static final int OPERATION_GET_TEXT_AFTER_CURSOR = 1; + private static final int OPERATION_GET_WORD_RANGE_AT_CURSOR = 2; + private static final int OPERATION_RELOAD_TEXT_CACHE = 3; + private static final String[] OPERATION_NAMES = new String[] { + "GET_TEXT_BEFORE_CURSOR", + "GET_TEXT_AFTER_CURSOR", + "GET_WORD_RANGE_AT_CURSOR", + "RELOAD_TEXT_CACHE"}; + + /** + * The amount of time the keyboard will persist in the {@link #hasSlowInputConnection} state + * after observing a slow InputConnection event. + */ + private static final long SLOW_INPUTCONNECTION_PERSIST_MS = TimeUnit.MINUTES.toMillis(10); + /** * This variable contains an expected value for the selection start position. This is where the * cursor or selection start may end up after all the keyboard-triggered updates have passed. We @@ -85,7 +111,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { private int mExpectedSelEnd = INVALID_CURSOR_POSITION; // in chars, not code points /** * This contains the committed text immediately preceding the cursor and the composing - * text if any. It is refreshed when the cursor moves by calling upon the TextView. + * text, if any. It is refreshed when the cursor moves by calling upon the TextView. */ private final StringBuilder mCommittedTextBeforeComposingText = new StringBuilder(); /** @@ -100,8 +126,13 @@ public final class RichInputConnection implements PrivateCommandPerformer { private SpannableStringBuilder mTempObjectForCommitText = new SpannableStringBuilder(); private final InputMethodService mParent; - InputConnection mIC; - int mNestLevel; + private InputConnection mIC; + private int mNestLevel; + + /** + * The timestamp of the last slow InputConnection operation + */ + private long mLastSlowInputConnectionTime = -SLOW_INPUTCONNECTION_PERSIST_MS; public RichInputConnection(final InputMethodService parent) { mParent = parent; @@ -113,6 +144,19 @@ public final class RichInputConnection implements PrivateCommandPerformer { return mIC != null; } + /** + * Returns whether or not the underlying InputConnection is slow. When true, we want to avoid + * calling InputConnection methods that trigger an IPC round-trip (e.g., getTextAfterCursor). + */ + public boolean hasSlowInputConnection() { + return (SystemClock.uptimeMillis() - mLastSlowInputConnectionTime) + <= SLOW_INPUTCONNECTION_PERSIST_MS; + } + + public void onStartInput() { + mLastSlowInputConnectionTime = -SLOW_INPUTCONNECTION_PERSIST_MS; + } + private void checkConsistencyForDebug() { final ExtractedTextRequest r = new ExtractedTextRequest(); r.hintMaxChars = 0; @@ -211,9 +255,11 @@ public final class RichInputConnection implements PrivateCommandPerformer { mIC = mParent.getCurrentInputConnection(); // Call upon the inputconnection directly since our own method is using the cache, and // we want to refresh it. - final CharSequence textBeforeCursor = isConnected() - ? mIC.getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE, 0) - : null; + final CharSequence textBeforeCursor = getTextBeforeCursorAndDetectLaggyConnection( + OPERATION_RELOAD_TEXT_CACHE, + SLOW_INPUT_CONNECTION_ON_FULL_RELOAD_MS, + Constants.EDITOR_CONTENTS_CACHE_SIZE, + 0 /* flags */); if (null == textBeforeCursor) { // For some reason the app thinks we are not connected to it. This looks like a // framework bug... Fall back to ground state and return false. @@ -377,16 +423,54 @@ public final class RichInputConnection implements PrivateCommandPerformer { } return s; } + return getTextBeforeCursorAndDetectLaggyConnection( + OPERATION_GET_TEXT_BEFORE_CURSOR, + SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS, + n, flags); + } + + private CharSequence getTextBeforeCursorAndDetectLaggyConnection( + final int operation, final long timeout, final int n, final int flags) { mIC = mParent.getCurrentInputConnection(); - return isConnected() ? mIC.getTextBeforeCursor(n, flags) : null; + if (!isConnected()) { + return null; + } + final long startTime = SystemClock.uptimeMillis(); + final CharSequence result = mIC.getTextBeforeCursor(n, flags); + detectLaggyConnection(operation, timeout, startTime); + return result; } public CharSequence getTextAfterCursor(final int n, final int flags) { - mIC = mParent.getCurrentInputConnection(); - return isConnected() ? mIC.getTextAfterCursor(n, flags) : null; + return getTextAfterCursorAndDetectLaggyConnection( + OPERATION_GET_TEXT_AFTER_CURSOR, + SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS, + n, flags); } - public void deleteSurroundingText(final int beforeLength, final int afterLength) { + private CharSequence getTextAfterCursorAndDetectLaggyConnection( + final int operation, final long timeout, final int n, final int flags) { + mIC = mParent.getCurrentInputConnection(); + if (!isConnected()) { + return null; + } + final long startTime = SystemClock.uptimeMillis(); + final CharSequence result = mIC.getTextAfterCursor(n, flags); + detectLaggyConnection(operation, timeout, startTime); + return result; + } + + private void detectLaggyConnection(final int operation, final long timeout, final long startTime) { + final long duration = SystemClock.uptimeMillis() - startTime; + if (duration >= timeout) { + final String operationName = OPERATION_NAMES[operation]; + Log.w(TAG, "Slow InputConnection: " + operationName + " took " + duration + " ms."); + StatsUtils.onInputConnectionLaggy(operation, duration); + mLastSlowInputConnectionTime = SystemClock.uptimeMillis(); + } + } + + public void deleteTextBeforeCursor(final int beforeLength) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); // TODO: the following is incorrect if the cursor is not immediately after the composition. // Right now we never come here in this case because we reset the composing state before we @@ -411,7 +495,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { mExpectedSelStart = 0; } if (isConnected()) { - mIC.deleteSurroundingText(beforeLength, afterLength); + mIC.deleteSurroundingText(beforeLength, 0); } if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); } @@ -576,9 +660,9 @@ public final class RichInputConnection implements PrivateCommandPerformer { if (!isConnected()) { return NgramContext.EMPTY_PREV_WORDS_INFO; } - final CharSequence prev = getTextBeforeCursor(LOOKBACK_CHARACTER_NUM, 0); + final CharSequence prev = getTextBeforeCursor(NUM_CHARS_TO_GET_BEFORE_CURSOR, 0); if (DEBUG_PREVIOUS_TEXT && null != prev) { - final int checkLength = LOOKBACK_CHARACTER_NUM - 1; + final int checkLength = NUM_CHARS_TO_GET_BEFORE_CURSOR - 1; final String reference = prev.length() <= checkLength ? prev.toString() : prev.subSequence(prev.length() - checkLength, prev.length()).toString(); // TODO: right now the following works because mComposingText holds the part of the @@ -621,9 +705,15 @@ public final class RichInputConnection implements PrivateCommandPerformer { if (!isConnected()) { return null; } - final CharSequence before = mIC.getTextBeforeCursor(LOOKBACK_CHARACTER_NUM, + final CharSequence before = getTextBeforeCursorAndDetectLaggyConnection( + OPERATION_GET_WORD_RANGE_AT_CURSOR, + SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS, + NUM_CHARS_TO_GET_BEFORE_CURSOR, InputConnection.GET_TEXT_WITH_STYLES); - final CharSequence after = mIC.getTextAfterCursor(LOOKBACK_CHARACTER_NUM, + final CharSequence after = getTextAfterCursorAndDetectLaggyConnection( + OPERATION_GET_WORD_RANGE_AT_CURSOR, + SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS, + NUM_CHARS_TO_GET_AFTER_CURSOR, InputConnection.GET_TEXT_WITH_STYLES); if (before == null || after == null) { return null; @@ -666,8 +756,9 @@ public final class RichInputConnection implements PrivateCommandPerformer { hasUrlSpans); } - public boolean isCursorTouchingWord(final SpacingAndPunctuations spacingAndPunctuations) { - if (isCursorFollowedByWordCharacter(spacingAndPunctuations)) { + public boolean isCursorTouchingWord(final SpacingAndPunctuations spacingAndPunctuations, + boolean checkTextAfter) { + if (checkTextAfter && isCursorFollowedByWordCharacter(spacingAndPunctuations)) { // If what's after the cursor is a word character, then we're touching a word. return true; } @@ -704,7 +795,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { if (DEBUG_BATCH_NESTING) checkBatchEdit(); final int codePointBeforeCursor = getCodePointBeforeCursor(); if (Constants.CODE_SPACE == codePointBeforeCursor) { - deleteSurroundingText(1, 0); + deleteTextBeforeCursor(1); } } @@ -730,7 +821,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { } // Double-space results in ". ". A backspace to cancel this should result in a single // space in the text field, so we replace ". " with a single space. - deleteSurroundingText(2, 0); + deleteTextBeforeCursor(2); final String singleSpace = " "; commitText(singleSpace, 1); return true; @@ -752,7 +843,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { + "find a space just before the cursor."); return false; } - deleteSurroundingText(2, 0); + deleteTextBeforeCursor(2); final String text = " " + textBeforeCursor.subSequence(0, 1); commitText(text, 1); return true; diff --git a/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java b/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java index 0d081e0d2..90221512f 100644 --- a/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java +++ b/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java @@ -16,6 +16,7 @@ package com.android.inputmethod.latin; +import android.app.DownloadManager; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; @@ -23,14 +24,15 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.database.Cursor; import android.os.Process; import android.preference.PreferenceManager; import android.util.Log; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; -import com.android.inputmethod.dictionarypack.CommonPreferences; import com.android.inputmethod.dictionarypack.DictionaryPackConstants; +import com.android.inputmethod.dictionarypack.DownloadManagerWrapper; import com.android.inputmethod.keyboard.KeyboardLayoutSet; import com.android.inputmethod.latin.settings.Settings; import com.android.inputmethod.latin.setup.SetupActivity; @@ -75,7 +77,12 @@ public final class SystemBroadcastReceiver extends BroadcastReceiver { final InputMethodSubtype[] additionalSubtypes = richImm.getAdditionalSubtypes(); richImm.setAdditionalInputMethodSubtypes(additionalSubtypes); toggleAppIcon(context); - downloadLatestDictionaries(context); + + // Remove all the previously scheduled downloads. This will also makes sure + // that any erroneously stuck downloads will get cleared. (b/21797386) + removeOldDownloads(context); + // b/21797386 + // downloadLatestDictionaries(context); } else if (Intent.ACTION_BOOT_COMPLETED.equals(intentAction)) { Log.i(TAG, "Boot has been completed"); toggleAppIcon(context); @@ -103,13 +110,39 @@ public final class SystemBroadcastReceiver extends BroadcastReceiver { } } + private void removeOldDownloads(Context context) { + try { + Log.i(TAG, "Removing the old downloads in progress of the previous keyboard version."); + final DownloadManagerWrapper downloadManagerWrapper = new DownloadManagerWrapper( + context); + final DownloadManager.Query q = new DownloadManager.Query(); + // Query all the download statuses except the succeeded ones. + q.setFilterByStatus(DownloadManager.STATUS_FAILED + | DownloadManager.STATUS_PAUSED + | DownloadManager.STATUS_PENDING + | DownloadManager.STATUS_RUNNING); + final Cursor c = downloadManagerWrapper.query(q); + if (c != null) { + for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { + final long downloadId = c + .getLong(c.getColumnIndex(DownloadManager.COLUMN_ID)); + downloadManagerWrapper.remove(downloadId); + Log.i(TAG, "Removed the download with Id: " + downloadId); + } + c.close(); + } + } catch (Exception e) { + Log.e(TAG, "Exception while removing old downloads."); + } + } + private void downloadLatestDictionaries(Context context) { final Intent updateIntent = new Intent( DictionaryPackConstants.INIT_AND_UPDATE_NOW_INTENT_ACTION); context.sendBroadcast(updateIntent); } - private static void toggleAppIcon(final Context context) { + public static void toggleAppIcon(final Context context) { final int appInfoFlags = context.getApplicationInfo().flags; final boolean isSystemApp = (appInfoFlags & ApplicationInfo.FLAG_SYSTEM) > 0; if (Log.isLoggable(TAG, Log.INFO)) { diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index f7dbc0a4d..1dd5850f8 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -139,6 +139,7 @@ public final class InputLogic { public void startInput(final String combiningSpec, final SettingsValues settingsValues) { mEnteredText = null; mWordBeingCorrectedByCursor = null; + mConnection.onStartInput(); if (!mWordComposer.getTypedWord().isEmpty()) { // For messaging apps that offer send button, the IME does not get the opportunity // to capture the last word. This block should capture those uncommitted words. @@ -398,9 +399,8 @@ public final class InputLogic { if (!TextUtils.isEmpty(mWordBeingCorrectedByCursor)) { final int timeStampInSeconds = (int)TimeUnit.MILLISECONDS.toSeconds( System.currentTimeMillis()); - mDictionaryFacilitator.addToUserHistory(mWordBeingCorrectedByCursor, false, - NgramContext.EMPTY_PREV_WORDS_INFO, timeStampInSeconds, - settingsValues.mBlockPotentiallyOffensive); + performAdditionToUserHistoryDictionary(settingsValues, mWordBeingCorrectedByCursor, + NgramContext.EMPTY_PREV_WORDS_INFO); } } else { // resetEntireInputState calls resetCachesUponCursorMove, but forcing the @@ -473,7 +473,7 @@ public final class InputLogic { } // Try to record the word being corrected when the user enters a word character or // the backspace key. - if (!mWordComposer.isComposingWord() + if (!mConnection.hasSlowInputConnection() && !mWordComposer.isComposingWord() && (settingsValues.isWordCodePoint(processedEvent.mCodePoint) || processedEvent.mKeyCode == Constants.CODE_DELETE)) { mWordBeingCorrectedByCursor = getWordAtCursor( @@ -833,8 +833,14 @@ public final class InputLogic { && settingsValues.needsToLookupSuggestions() && // In languages with spaces, we only start composing a word when we are not already // touching a word. In languages without spaces, the above conditions are sufficient. - (!mConnection.isCursorTouchingWord(settingsValues.mSpacingAndPunctuations) - || !settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces)) { + // NOTE: If the InputConnection is slow, we skip the text-after-cursor check since it + // can incur a very expensive getTextAfterCursor() lookup, potentially making the + // keyboard UI slow and non-responsive. + // TODO: Cache the text after the cursor so we don't need to go to the InputConnection + // each time. We are already doing this for getTextBeforeCursor(). + (!settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces + || !mConnection.isCursorTouchingWord(settingsValues.mSpacingAndPunctuations, + !mConnection.hasSlowInputConnection() /* checkTextAfter */))) { // Reset entirely the composing state anyway, then start composing a new word unless // the character is a word connector. The idea here is, word connectors are not // separators and they should be treated as normal characters, except in the first @@ -1054,7 +1060,7 @@ public final class InputLogic { // Cancel multi-character input: remove the text we just entered. // This is triggered on backspace after a key that inputs multiple characters, // like the smiley key or the .com key. - mConnection.deleteSurroundingText(mEnteredText.length(), 0); + mConnection.deleteTextBeforeCursor(mEnteredText.length()); StatsUtils.onDeleteMultiCharInput(mEnteredText.length()); mEnteredText = null; // If we have mEnteredText, then we know that mHasUncommittedTypedChars == false. @@ -1099,7 +1105,7 @@ public final class InputLogic { - mConnection.getExpectedSelectionStart(); mConnection.setSelection(mConnection.getExpectedSelectionEnd(), mConnection.getExpectedSelectionEnd()); - mConnection.deleteSurroundingText(numCharsDeleted, 0); + mConnection.deleteTextBeforeCursor(numCharsDeleted); StatsUtils.onBackspaceSelectedText(numCharsDeleted); } else { // There is no selection, just delete one character. @@ -1139,13 +1145,13 @@ public final class InputLogic { // broken apps expect something to happen in this case so that they can // catch it and have their broken interface react. If you need the keyboard // to do this, you're doing it wrong -- please fix your app. - mConnection.deleteSurroundingText(1, 0); + mConnection.deleteTextBeforeCursor(1); // TODO: Add a new StatsUtils method onBackspaceWhenNoText() return; } final int lengthToDelete = Character.isSupplementaryCodePoint(codePointBeforeCursor) ? 2 : 1; - mConnection.deleteSurroundingText(lengthToDelete, 0); + mConnection.deleteTextBeforeCursor(lengthToDelete); int totalDeletedLength = lengthToDelete; if (mDeleteCount > Constants.DELETE_ACCELERATE_AT) { // If this is an accelerated (i.e., double) deletion, then we need to @@ -1158,7 +1164,7 @@ public final class InputLogic { if (codePointBeforeCursorToDeleteAgain != Constants.NOT_A_CODE) { final int lengthToDeleteAgain = Character.isSupplementaryCodePoint( codePointBeforeCursorToDeleteAgain) ? 2 : 1; - mConnection.deleteSurroundingText(lengthToDeleteAgain, 0); + mConnection.deleteTextBeforeCursor(lengthToDeleteAgain); totalDeletedLength += lengthToDeleteAgain; } } @@ -1170,7 +1176,9 @@ public final class InputLogic { unlearnWordBeingDeleted( inputTransaction.mSettingsValues, currentKeyboardScriptId); } - if (inputTransaction.mSettingsValues.isSuggestionsEnabledPerUserSettings() + if (mConnection.hasSlowInputConnection()) { + mSuggestionStripViewAccessor.setNeutralSuggestionStrip(); + } else if (inputTransaction.mSettingsValues.isSuggestionsEnabledPerUserSettings() && inputTransaction.mSettingsValues.mSpacingAndPunctuations .mCurrentLanguageHasSpaces && !mConnection.isCursorFollowedByWordCharacter( @@ -1197,6 +1205,13 @@ public final class InputLogic { boolean unlearnWordBeingDeleted( final SettingsValues settingsValues, final int currentKeyboardScriptId) { + if (mConnection.hasSlowInputConnection()) { + // TODO: Refactor unlearning so that it does not incur any extra calls + // to the InputConnection. That way it can still be performed on a slow + // InputConnection. + Log.w(TAG, "Skipping unlearning due to slow InputConnection."); + return false; + } // If we just started backspacing to delete a previous word (but have not // entered the composing state yet), unlearn the word. // TODO: Consider tracking whether or not this word was typed by the user. @@ -1242,7 +1257,7 @@ public final class InputLogic { if (Constants.CODE_SPACE != codePointBeforeCursor) { return false; } - mConnection.deleteSurroundingText(1, 0); + mConnection.deleteTextBeforeCursor(1); final String text = event.getTextToCommit() + " "; mConnection.commitText(text, 1); inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW); @@ -1332,7 +1347,7 @@ public final class InputLogic { Character.codePointAt(lastTwo, length - 3) : lastTwo.charAt(length - 2); if (canBeFollowedByDoubleSpacePeriod(firstCodePoint)) { cancelDoubleSpacePeriodCountdown(); - mConnection.deleteSurroundingText(1, 0); + mConnection.deleteTextBeforeCursor(1); final String textToInsert = inputTransaction.mSettingsValues.mSpacingAndPunctuations .mSentenceSeparatorAndSpace; mConnection.commitText(textToInsert, 1); @@ -1400,7 +1415,7 @@ public final class InputLogic { mConnection.finishComposingText(); mRecapitalizeStatus.rotate(); mConnection.setSelection(selectionEnd, selectionEnd); - mConnection.deleteSurroundingText(numCharsSelected, 0); + mConnection.deleteTextBeforeCursor(numCharsSelected); mConnection.commitText(mRecapitalizeStatus.getRecapitalizedString(), 0); mConnection.setSelection(mRecapitalizeStatus.getNewCursorStart(), mRecapitalizeStatus.getNewCursorEnd()); @@ -1412,6 +1427,12 @@ public final class InputLogic { // That's to avoid unintended additions in some sensitive fields, or fields that // expect to receive non-words. if (!settingsValues.mAutoCorrectionEnabledPerUserSettings) return; + if (mConnection.hasSlowInputConnection()) { + // Since we don't unlearn when the user backspaces on a slow InputConnection, + // turn off learning to guard against adding typos that the user later deletes. + Log.w(TAG, "Skipping learning due to slow InputConnection."); + return; + } if (TextUtils.isEmpty(suggestion)) return; final boolean wasAutoCapitalized = @@ -1515,7 +1536,8 @@ public final class InputLogic { return; } final int expectedCursorPosition = mConnection.getExpectedSelectionStart(); - if (!mConnection.isCursorTouchingWord(settingsValues.mSpacingAndPunctuations)) { + if (!mConnection.isCursorTouchingWord(settingsValues.mSpacingAndPunctuations, + true /* checkTextAfter */)) { // Show predictions. mWordComposer.setCapitalizedModeAtStartComposingTime(WordComposer.CAPS_MODE_OFF); mLatinIME.mHandler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_RECORRECTION); @@ -1638,7 +1660,7 @@ public final class InputLogic { + "\", but before the cursor we found \"" + wordBeforeCursor + "\""); } } - mConnection.deleteSurroundingText(deleteLength, 0); + mConnection.deleteTextBeforeCursor(deleteLength); if (!TextUtils.isEmpty(committedWord)) { unlearnWord(committedWordString, inputTransaction.mSettingsValues, Constants.EVENT_REVERT); @@ -2136,9 +2158,10 @@ public final class InputLogic { final SuggestedWords suggestedWords = mSuggestedWords; // TODO: Locale should be determined based on context and the text given. final Locale locale = getDictionaryFacilitatorLocale(); - final CharSequence chosenWordWithSuggestions = - SuggestionSpanUtils.getTextWithSuggestionSpan(mLatinIME, chosenWord, - suggestedWords, locale); + final CharSequence chosenWordWithSuggestions = chosenWord; + // b/21926256 + // SuggestionSpanUtils.getTextWithSuggestionSpan(mLatinIME, chosenWord, + // suggestedWords, locale); if (DebugFlags.DEBUG_ENABLED) { long runTimeMillis = System.currentTimeMillis() - startTimeMillis; Log.d(TAG, "commitChosenWord() : " + runTimeMillis + " ms to run " diff --git a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java index f2e1aed4c..a6fb7f1f1 100644 --- a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java @@ -26,6 +26,7 @@ import android.preference.Preference; import com.android.inputmethod.latin.AudioAndHapticFeedbackManager; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.SystemBroadcastReceiver; import com.android.inputmethod.latin.define.ProductionFlags; /** @@ -106,6 +107,8 @@ public final class AdvancedSettingsFragment extends SubScreenFragment { if (key.equals(Settings.PREF_POPUP_ON)) { setPreferenceEnabled(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY, Settings.readKeyPreviewPopupEnabled(prefs, res)); + } else if (key.equals(Settings.PREF_SHOW_SETUP_WIZARD_ICON)) { + SystemBroadcastReceiver.toggleAppIcon(getActivity()); } updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY); refreshEnablingsOfKeypressSoundAndVibrationSettings(); diff --git a/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java index aa73a9a83..d28e703fe 100644 --- a/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java @@ -16,20 +16,27 @@ package com.android.inputmethod.latin.settings; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Bundle; import android.preference.Preference; import com.android.inputmethod.dictionarypack.DictionarySettingsActivity; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.userdictionary.UserDictionaryList; +import com.android.inputmethod.latin.userdictionary.UserDictionarySettings; + +import java.util.TreeSet; /** * "Text correction" settings sub screen. * * This settings sub screen handles the following text correction preferences. + * - Personal dictionary * - Add-on dictionaries * - Block offensive words * - Auto-correction @@ -59,5 +66,39 @@ public final class CorrectionSettingsFragment extends SubScreenFragment { if (0 >= number) { removePreference(Settings.PREF_CONFIGURE_DICTIONARIES_KEY); } + + final Preference editPersonalDictionary = + findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY); + final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent(); + final ResolveInfo ri = USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS ? null + : pm.resolveActivity( + editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY); + if (ri == null) { + overwriteUserDictionaryPreference(editPersonalDictionary); + } + } + + private void overwriteUserDictionaryPreference(final Preference userDictionaryPreference) { + final Activity activity = getActivity(); + final TreeSet localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity); + if (null == localeList) { + // The locale list is null if and only if the user dictionary service is + // not present or disabled. In this case we need to remove the preference. + getPreferenceScreen().removePreference(userDictionaryPreference); + } else if (localeList.size() <= 1) { + userDictionaryPreference.setFragment(UserDictionarySettings.class.getName()); + // If the size of localeList is 0, we don't set the locale parameter in the + // extras. This will be interpreted by the UserDictionarySettings class as + // meaning "the current locale". + // Note that with the current code for UserDictionaryList#getUserDictionaryLocalesSet() + // the locale list always has at least one element, since it always includes the current + // locale explicitly. @see UserDictionaryList.getUserDictionaryLocalesSet(). + if (localeList.size() == 1) { + final String locale = (String)localeList.toArray()[0]; + userDictionaryPreference.getExtras().putString("locale", locale); + } + } else { + userDictionaryPreference.setFragment(UserDictionaryList.class.getName()); + } } } diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java index 694f43d3f..940f1bdfc 100644 --- a/java/src/com/android/inputmethod/latin/settings/Settings.java +++ b/java/src/com/android/inputmethod/latin/settings/Settings.java @@ -56,6 +56,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang // PREF_VOICE_MODE_OBSOLETE is obsolete. Use PREF_VOICE_INPUT_KEY instead. public static final String PREF_VOICE_MODE_OBSOLETE = "voice_mode"; public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key"; + public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary"; public static final String PREF_CONFIGURE_DICTIONARIES_KEY = "configure_dictionaries_key"; // PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE is obsolete. Use PREF_AUTO_CORRECTION instead. public static final String PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE = diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java index 2c690aea7..c7622e7a1 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java @@ -84,8 +84,7 @@ public final class AndroidSpellCheckerSession extends AndroidWordLevelSpellCheck if (TextUtils.isEmpty(splitText)) { continue; } - if (mSuggestionsCache.getSuggestionsFromCache(splitText.toString(), ngramContext) - == null) { + if (mSuggestionsCache.getSuggestionsFromCache(splitText.toString()) == null) { continue; } final int newLength = splitText.length(); diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java index 1322ce240..9223923a7 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java @@ -71,30 +71,26 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session { } protected static final class SuggestionsCache { - private static final char CHAR_DELIMITER = '\uFFFC'; private static final int MAX_CACHE_SIZE = 50; private final LruCache mUnigramSuggestionsInfoCache = new LruCache<>(MAX_CACHE_SIZE); - private static String generateKey(final String query, final NgramContext ngramContext) { - if (TextUtils.isEmpty(query) || !ngramContext.isValid()) { - return query; - } - return query + CHAR_DELIMITER + ngramContext; + private static String generateKey(final String query) { + return query + ""; } - public SuggestionsParams getSuggestionsFromCache(String query, - final NgramContext ngramContext) { - return mUnigramSuggestionsInfoCache.get(generateKey(query, ngramContext)); + public SuggestionsParams getSuggestionsFromCache(final String query) { + return mUnigramSuggestionsInfoCache.get(query); } - public void putSuggestionsToCache(final String query, final NgramContext ngramContext, - final String[] suggestions, final int flags) { + public void putSuggestionsToCache( + final String query, final String[] suggestions, final int flags) { if (suggestions == null || TextUtils.isEmpty(query)) { return; } mUnigramSuggestionsInfoCache.put( - generateKey(query, ngramContext), new SuggestionsParams(suggestions, flags)); + generateKey(query), + new SuggestionsParams(suggestions, flags)); } public void clearCache() { @@ -232,16 +228,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session { AndroidSpellCheckerService.SINGLE_QUOTE). replaceAll("^" + quotesRegexp, ""). replaceAll(quotesRegexp + "$", ""); - final SuggestionsParams cachedSuggestionsParams = - mSuggestionsCache.getSuggestionsFromCache(text, ngramContext); - if (cachedSuggestionsParams != null) { - Log.d(TAG, "onGetSuggestionsInternal() : Cache hit for [" + text + "]"); - return new SuggestionsInfo( - cachedSuggestionsParams.mFlags, cachedSuggestionsParams.mSuggestions); - } - - // If spell checking is impossible, return early. if (!mService.hasMainDictionaryForLocale(mLocale)) { return AndroidSpellCheckerService.getNotInDictEmptySuggestions( false /* reportAsTypo */); @@ -329,8 +316,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session { .getValueOf_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS() : 0); final SuggestionsInfo retval = new SuggestionsInfo(flags, result.mSuggestions); - mSuggestionsCache.putSuggestionsToCache(text, ngramContext, result.mSuggestions, - flags); + mSuggestionsCache.putSuggestionsToCache(text, result.mSuggestions, flags); return retval; } catch (RuntimeException e) { // Don't kill the keyboard if there is a bug in the spell checker diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java index abe4b28bc..cea2e13b1 100644 --- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java @@ -54,7 +54,7 @@ import javax.annotation.Nullable; */ public class DictionaryInfoUtils { private static final String TAG = DictionaryInfoUtils.class.getSimpleName(); - private static final String RESOURCE_PACKAGE_NAME = R.class.getPackage().getName(); + public static final String RESOURCE_PACKAGE_NAME = R.class.getPackage().getName(); private static final String DEFAULT_MAIN_DICT = "main"; private static final String MAIN_DICT_PREFIX = "main_"; private static final String DECODER_DICT_SUFFIX = DecoderSpecificConstants.DECODER_DICT_SUFFIX; @@ -240,7 +240,7 @@ public class DictionaryInfoUtils { /** * Find out the cache directory associated with a specific locale. */ - private static String getCacheDirectoryForLocale(final String locale, final Context context) { + public static String getCacheDirectoryForLocale(final String locale, final Context context) { final String relativeDirectoryName = replaceFileNameDangerousCharacters(locale); final String absoluteDirectoryName = getWordListCacheDirectory(context) + File.separator + relativeDirectoryName; diff --git a/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java b/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java index 08779b9d3..128f9f7db 100644 --- a/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java +++ b/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java @@ -379,74 +379,74 @@ public class RichInputConnectionAndTextRangeTests extends AndroidTestCase { ims.setInputConnection(new MockConnection("users", 5)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true /* checkTextAfter */)); ims.setInputConnection(new MockConnection("users'", 5)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("users'", 6)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("'users'", 6)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("'users'", 7)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("users '", 6)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("users '", 7)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("re-", 3)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("re--", 4)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("-", 1)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection("--", 2)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" -", 2)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" --", 3)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" users '", 1)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" users '", 3)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" users '", 7)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" users are", 7)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertTrue(ic.isCursorTouchingWord(sap)); + assertTrue(ic.isCursorTouchingWord(sap, true)); ims.setInputConnection(new MockConnection(" users 'are", 7)); ic.resetCachesUponCursorMoveAndReturnSuccess(ims.cursorPos(), ims.cursorPos(), true); - assertFalse(ic.isCursorTouchingWord(sap)); + assertFalse(ic.isCursorTouchingWord(sap, true)); } }