Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
063756eb50 | ||
|
|
9189921719 | ||
|
|
2e1859fb1a | ||
|
|
139d1c5691 | ||
|
|
20a4916ff6 | ||
|
|
54c25b79e4 | ||
|
|
82d61d4406 | ||
|
|
e2fdced765 |
+5
-2
@@ -20,8 +20,8 @@ android {
|
||||
applicationId = "juloo.keyboard2"
|
||||
minSdk = 21
|
||||
targetSdk { version = release(36) }
|
||||
versionCode = 51
|
||||
versionName = "2.0.0"
|
||||
versionCode = 52
|
||||
versionName = "2.0.1"
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@@ -69,6 +69,9 @@ android {
|
||||
buildTypes {
|
||||
named("release") {
|
||||
isMinifyEnabled = true
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||
"proguard-rules.pro")
|
||||
isShrinkResources = true
|
||||
isDebuggable = false
|
||||
resValue("string", "app_name", "@string/app_name_release")
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
الميزة الرئيسية إنّه تقدر تكتب حروف أكثر عن طريق تمرير المفاتيح باتّجاه الزوايا
|
||||
|
||||
هذا التطبيق أصلاً تسوّى علشان المبرمجين إلّي يستخدمون طرفية Termux.
|
||||
الآن صار تمام للاستخدام اليومي.
|
||||
|
||||
هذا التطبيق ما فيه إعلانات، ما يقدّم أي طلبات على الشبكة ومفتوح المصدر.
|
||||
@@ -1 +0,0 @@
|
||||
كيبورد افتراضي خفيف الوزن ويراعي الخصوصية لآندرويد.
|
||||
@@ -1 +0,0 @@
|
||||
Unexpected Keyboard
|
||||
@@ -1,6 +0,0 @@
|
||||
الميزة الرئيسة هي أنّه يمكنك كتابة المزيد من الأحرف عن طريق تمرير المفاتيح نحو الزوايا.
|
||||
|
||||
هذا التطبيق كان مُصممًا للمُبرمجين الذين يستخدمون طرفية Termux.
|
||||
الآن صار مثاليًا للاستخدام اليومي.
|
||||
|
||||
هذا التطبيق لا يحتوي على إعلانات، ولا يقوم بأيّ طلبات شبكة، وكما أنّه مفتوح المصدر.
|
||||
@@ -1 +0,0 @@
|
||||
لوحة مفاتيح افتراضية خفيفة ومُراعية للخصوصية لنظام آندرويد.
|
||||
@@ -1 +0,0 @@
|
||||
Unexpected Keyboard
|
||||
@@ -1,6 +0,0 @@
|
||||
এর প্রধান বৈশিষ্ট্য হলো, কি-গুলোর কোণার দিকে সোয়াইপ করে আপনি আরও বেশি অক্ষর টাইপ করতে পারবেন।
|
||||
|
||||
এই অ্যাপ্লিকেশনটি মূলত টার্মাক্স (Termux) ব্যবহারকারী প্রোগ্রামারদের জন্য ডিজাইন করা হয়েছিল।
|
||||
এখন এটি দৈনন্দিন ব্যবহারের জন্য উপযুক্ত।
|
||||
|
||||
এই অ্যাপ্লিকেশনটিতে কোনো বিজ্ঞাপন নেই, এটি কোনো নেটওয়ার্ক রিকোয়েস্ট করে না এবং এটি ওপেন সোর্স।
|
||||
@@ -1 +0,0 @@
|
||||
অ্যান্ড্রোয়েডের জন্য হালকা এবং গোপনীয়তা-সচেতন ভার্চুয়াল কিবোর্ড।
|
||||
@@ -1 +0,0 @@
|
||||
অপ্রত্যাশিত কীবোর্ড
|
||||
@@ -0,0 +1,6 @@
|
||||
Spell checking and autocorrect are here !
|
||||
|
||||
This releases comes with a very large number of improvements,
|
||||
support for many languages and new themes!
|
||||
|
||||
Huge thanks to the contributors: @10Develops @anaskaejdar @andyca111100 @Autissima @bqv @cillyvms @domportera @dzaima @exzombie @Harry-Ais0 @Houfalafel @JeelsBoobz @JFronny @Julow @lan700ng @malbajun @matejdro @n-ce @skynetcat @sperareine @Spike-from-NH @xxcavemanxx
|
||||
@@ -1,6 +0,0 @@
|
||||
ویژگی اصلی این است که میتوانید با کشیدن کلیدها به سمت گوشهها، نویسه های (کاراکترهای) بیشتری تایپ کنید.
|
||||
|
||||
این برنامه در ابتدا برای برنامهنویسانی که از Termux استفاده میکنند طراحی شده بود.
|
||||
|
||||
اکنون برای استفاده روزمره عالی است.
|
||||
این برنامه هیچ تبلیغاتی ندارد، هیچ درخواست شبکهای انجام نمیدهد و متنباز است.
|
||||
@@ -1 +0,0 @@
|
||||
صفحهکلید مجازی سبک و با حفظ حریم خصوصی برای اندروید.
|
||||
@@ -1 +0,0 @@
|
||||
صفحهکلید غیرمنتظره
|
||||
@@ -1,6 +0,0 @@
|
||||
အဓိကလုပ်ဆောင်မှုကတော့လျင်မြန်စွာစာလုံးရေများများရိုက်ရလွယ်ကူစေရန်ဖိဆွဲလိုက်ရုံဖြင့်အက္ခရာများကိုပြောင်းလဲရိုက်နိုင်ခြင်းပါပဲ။
|
||||
|
||||
ဒီအပ်ပလီကေးရှင်းရဲ့ကနဦးရည်ရွယ်ချက်ကတော့ ပရိုဂရမ်မာတွေ Termux မှာအသုံးပြုဖို့ဖန်တီးခဲ့ခြင်းဖြစ်ပါတယ်။
|
||||
အခုတော့ Termux သာမကပဲနိစ္စဓူ၀ကိစ္စများအတွက်အသုံးပြုနိုင်ပါပြီ။
|
||||
|
||||
ဤအပ်ပလီကေးရှင်းတွင်မည်သည့်ကြော်ငြာ၊ အင်တာနက်ကွန်နက်ရှင်ချိတ်ဆက်မှုဆိုင်ရာများမပါ၀င်သလို Open source လည်းဖြစ်ပါတယ်။
|
||||
@@ -1 +0,0 @@
|
||||
Android အတွက် သေးငယ်ပေါ့ပါးပြီးကိုယ်ရေးကိုယ်တာလုံခြုံမှုဆိုင်ရာအထူးဦးစားပေးထားသည့်ကီးဘုတ်ဆော့ဝဲ.
|
||||
@@ -1 +0,0 @@
|
||||
Unexpected Keyboard
|
||||
@@ -1 +0,0 @@
|
||||
supa nena ni li suli ala lon ilo, supa nena ni li sona e len, ni li lon ilo Android.
|
||||
@@ -1 +0,0 @@
|
||||
Unexpected Keyboard
|
||||
+46
-11
@@ -1,11 +1,15 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
import itertools as it
|
||||
import sys
|
||||
|
||||
# This script generates res/xml/method.xml.
|
||||
|
||||
def warn(msg):
|
||||
print("Warning: " + msg, file=sys.stderr)
|
||||
|
||||
def loc(loc_name, script, default_layout, **kwargs):
|
||||
return { "name": loc_name, "script": script,
|
||||
"default_layout": default_layout, **kwargs }
|
||||
"default_layout": default_layout, **kwargs }
|
||||
|
||||
# The locales are defined here. To add support for a language, add it to the
|
||||
# following block:
|
||||
@@ -13,17 +17,21 @@ def loc(loc_name, script, default_layout, **kwargs):
|
||||
LOCALES = [
|
||||
loc("ar", "arabic", "arab_pc_hindu"),
|
||||
loc("ar_TN", "arabic", "arab_pc"),
|
||||
loc("ay_AM", "armenian", "armenian_ph_am"),
|
||||
loc("as", "beng", "beng_assamese"),
|
||||
loc("az_AZ", "latin", "latn_qwerty_az", extra_keys="accent_trema:ü:ö@w|accent_cedille:ç:ş@s|ğ@g|ı@k|ə@l"),
|
||||
loc("be_BY", "cyrillic", "cyrl_jcuken_ru", extra_keys="ґ|є|і|ї|ў"),
|
||||
loc("bg_BG", "cyrillic", "cyrl_ueishsht", extra_keys="€"),
|
||||
loc("bn_BD", "latin", "latn_qwerty_us", extra_keys="৳"),
|
||||
loc("bs", "latin", "latn_qwerty_us", extra_keys="đ|ž|lj|nj|ć|č|dž|š"),
|
||||
loc("ca", "latin", "latn_qwerty_us", extra_keys="accent_grave:à:ò:è|accent_cedille:ç@c|accent_aigu:é:í:ú:ó|accent_trema:ï:ü|ŀl|€"),
|
||||
loc("cs_CZ", "latin", "latn_qwertz_cz", extra_keys="accent_aigu:á:é:í:ó:ú:ý@d|accent_ring:ů@s|accent_caron:č:ě:ň:ř:š:ž:ď:ť@f"),
|
||||
loc("cy_GB", "latin", "latn_qwerty_cy"),
|
||||
loc("da_DK", "latin", "latn_qwerty_da", extra_keys="€|æ|å|ø"),
|
||||
loc("de_BE", "latin", "latn_azerty_be", extra_keys="accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|accent_trema@u|€"),
|
||||
loc("de_CH", "latin", "latn_qwertz_de", extra_keys="accent_trema:ä:ö:ü@u|ß"),
|
||||
loc("de_DE", "latin", "latn_qwertz_de", extra_keys="accent_trema:ä:ö:ü@u|ß|€"),
|
||||
loc("el", "latin", "grek_qwerty", extra_keys="£@l|€"),
|
||||
loc("en", "latin", "latn_qwerty_us", dictionary="en_GB"),
|
||||
loc("en_AU", "latin", "latn_qwerty_us"),
|
||||
loc("en_CA", "latin", "latn_qwerty_us"),
|
||||
loc("en_GB", "latin", "latn_qwerty_gb", extra_keys="£@l"),
|
||||
@@ -32,6 +40,7 @@ LOCALES = [
|
||||
loc("en_US", "latin", "latn_qwerty_us"),
|
||||
loc("es_ES", "latin", "latn_qwerty_es", extra_keys="accent_aigu:á:é:í:ó:ú@d|accent_tilde:ñ@n|accent_grave@f|accent_trema@u|€"),
|
||||
loc("et_EE", "latin", "latn_qwerty_et", extra_keys="accent_trema:ä:ö:ü@u|accent_tilde:õ@o|accent_caron:š:ž@s|€"),
|
||||
loc("eu", "latin", "latn_qwerty_us", extra_keys="ñ|ç|ü|dd|ll|rr|ts|tt|tx|tz"),
|
||||
loc("fa_IR", "persian", "arab_pc_ir"),
|
||||
loc("fi", "latin", "latn_qwerty_fi", extra_keys="å|accent_ring|accent_aigu|accent_trema|ö|ä|€"),
|
||||
loc("fr_BE", "latin", "latn_azerty_be", extra_keys="accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:ê:û@f|accent_cedille:ç@c|accent_trema@u|€"),
|
||||
@@ -39,11 +48,14 @@ LOCALES = [
|
||||
loc("fr_CH", "latin", "latn_qwertz_fr_ch", extra_keys="accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:â:ê:ô:û@o|accent_cedille:ç@c|accent_trema:ë:ï:ü:ÿ@u|€"),
|
||||
loc("fr_FR", "latin", "latn_azerty_fr", extra_keys="accent_grave:à:è:ù@d|accent_aigu:é@d|accent_circonflexe:â:ê:ô:û@o|accent_cedille:ç@c|accent_trema:ë:ï:ü@l|€"),
|
||||
loc("ga_IE", "latin", "latn_qwerty_ga", extra_keys="accent_aigu:á:é:í:ó:ú@k|accent_dot_above@l"),
|
||||
loc("gl", "latin", "latn_qwerty_us"),
|
||||
loc("ha_NG", "latin", "latn_qwerty_us", extra_keys="₦|ɓ|ɗ|ƙ|’|ƴ|r̃"),
|
||||
loc("haw_US", "latin", "latn_qwerty_haw", extra_keys="ʻ@l|accent_macron:ā:ē:ī:ō:ū@m"),
|
||||
loc("he_IL", "hebrew", "default_layout=hebr_1_il,extra_keys=₪@r|€"),
|
||||
loc("hi_IN", "devanagari", "deva_inscript", extra_keys="₹"),
|
||||
loc("hr", "latin", "latn_qwerty_us", extra_keys="č|ć|dž|đ|lj|nj|š|ž"),
|
||||
loc("hu_HU", "latin", "latn_qwertz_hu", extra_keys="accent_aigu:á:é:í:ó:ú@d|accent_trema:ö:ü@u|accent_ogonek@s|accent_double_aigu:ő:ű@k|€"),
|
||||
loc("hy", "armenian", "armenian_ph_am"),
|
||||
loc("ig_NG", "latin", "latn_qwerty_us", extra_keys="₦|ṅ|ọ|ụ"),
|
||||
loc("is_IS", "latin", "latn_qwerty_is", extra_keys="ð|þ|æ|accent_trema:ö@o|accent_aigu:á:é:í:ó:ú:ý@d|accent_circonflexe|accent_ring|accent_grave"),
|
||||
loc("it_IT", "latin", "latn_qwerty_us", extra_keys="accent_grave:à:è:ì:ò:ù@f|accent_aigu:é:ó@d|accent_circonflexe:î@f|€|ə"),
|
||||
@@ -51,21 +63,25 @@ LOCALES = [
|
||||
loc("kk_KZ", "latin", "cyrl_jcuken_kk"),
|
||||
loc("kn_IN", "kannada", "kann_kannada"),
|
||||
loc("ko_KR", "hangul", "hang_dubeolsik_kr"),
|
||||
loc("lb", "latin", "latn_qwerty_us", extra_keys="é|ä|ë|accent_grave|accent_cedille@c|accent_aigu|accent_trema|€"),
|
||||
loc("lt_LT", "latin", "latn_qwerty_lt", extra_keys="accent_ogonek:ą:ę:į:ų@s|accent_caron:č:š:ž@f|accent_dot_above:ė@s|accent_macron:ū@o|€"),
|
||||
loc("lv_LV", "latin", "latn_qwerty_lv", extra_keys="accent_macron:ā:ē:ī:ū@o|accent_caron:č:š:ž@f|accent_ogonek:ķ:ļ:ņ@s|accent_cedille:ģ@c|€"),
|
||||
loc("mk", "cyrillic", "cyrl_lynyertdz_mk", extra_keys="ѕ|ѓ|ќ|ѝ|ѐ|љ|њ|џ|„|“|€"),
|
||||
loc("mn_MN", "cyrillic", "cyrl_fcuzhen_mn", extra_keys="ү|ө"),
|
||||
loc("mr_IN", "devanagari", "deva_inscript", extra_keys="₹"),
|
||||
loc("mt_MT", "latin", "latn_qwerty_mt", extra_keys="accent_grave:à:è:ì:ò:ù|accent_dot_above:ċ:ż:ġ|ħ"),
|
||||
loc("nb", "latin", "latn_qwerty_us", extra_keys="€|æ@a|å@a|ø@o|accent_aigu:é:ó@d|accent_grave:è:ò:ù@f|accent_circonflexe:ê:ô@f"),
|
||||
loc("ne_NE", "devanagari", "deva_inscript", extra_keys="₹"),
|
||||
loc("nl_BE", "latin", "latn_azerty_be", extra_keys="accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|accent_trema@u|€"),
|
||||
loc("no_NO", "latin", "latn_qwerty_us", extra_keys="€|æ@a|å@a|ø@o|accent_aigu:é:ó@d|accent_grave:è:ò:ù@f|accent_circonflexe:ê:ô@f"),
|
||||
loc("pl_PL", "latin", "latn_qwerty_pl"),
|
||||
loc("pt_BR", "latin", "latn_qwerty_pt", extra_keys="accent_aigu:á:é:í:ó:ú@d|accent_cedille:ç@c|accent_circonflexe:â:ê:ô@f|accent_grave:à:ò@f|accent_tilde:ã:õ@n|€|ª|º"),
|
||||
loc("pt_PT", "latin", "latn_qwerty_pt", extra_keys="accent_aigu:á:é:í:ó:ú@d|accent_cedille:ç@c|accent_circonflexe:â:ê:ô@f|accent_grave:à:ò@f|accent_tilde:ã:õ@n|€|ª|º"),
|
||||
loc("ro_RO", "latin", "latn_qwerty_ro", extra_keys="ă|â|î|ș|ț|€|$"),
|
||||
loc("ru_RU", "latin", "cyrl_jcuken_ru"),
|
||||
loc("si_LK", "sinhala", "sinhala_phonetic", extra_keys="₨"),
|
||||
loc("sk_SK", "latin", "latn_qwertz_sk", extra_keys="accent_caron:ě:ř:ž:š:č:ň:ď:ľ:ť@f|accent_ring:ů@s|accent_circonflexe:ô@f|accent_trema:ä:ü:ö@u|accent_aigu:á:é:í:ó:ú:ŕ:ś:ĺ:ý@d"),
|
||||
loc("sl", "latin", "latn_qwerty_us", extra_keys="accent_caron:Č:Š:Ž|€"),
|
||||
loc("sq_AL", "latin", "latn_qwertz_sq"),
|
||||
loc("sr_", "latin", "cyrl_lynyertz_sr"),
|
||||
loc("sv_SE", "latin", "latn_qwerty_se", extra_keys="accent_aigu:á@d|accent_trema:ä:ö@o|accent_ring:å@s|€"),
|
||||
@@ -74,13 +90,14 @@ LOCALES = [
|
||||
loc("tly_IR", "persian", "arab_hamvaj_tly"),
|
||||
loc("tr_TR", "latin", "latn_qwerty_tr", extra_keys="accent_cedille:ç:ş@c|accent_trema:ö:ü@u|accent_circonflexe:â:î:û@f|₺|ı|ğ"),
|
||||
loc("uk_UA", "cyrillic", "cyrl_jcuken_uk", extra_keys="ґ|є|і|ї|₴"),
|
||||
loc("ur", "persian", "arab_pc_ir"),
|
||||
loc("uz_UZ", "latin", "latn_qwerty_uz", extra_keys="ʻ|ʼ"),
|
||||
loc("vi_VN", "latin", "latn_qwerty_vi"),
|
||||
loc("yo_NG", "latin", "latn_qwerty_us", extra_keys="₦|ẹ|ọ|ṣ")
|
||||
]
|
||||
|
||||
# The locale that is at the beginning of the list
|
||||
DEFAULT_LOCALE = loc("en", "latin", "latn_qwerty_us", tag="en", dictionary="en_GB")
|
||||
# The locale that is at the beginning of the list.
|
||||
DEFAULT_LOCALE = "en_GB"
|
||||
|
||||
def parse_dictionaries():
|
||||
tree = ET.parse("res/values/dictionaries.xml")
|
||||
@@ -90,6 +107,13 @@ def parse_dictionaries():
|
||||
# Available dictionares of the form "de" or "de_CH".
|
||||
available_dictionaries = parse_dictionaries()
|
||||
|
||||
# Warn when a dictionary is attached to no locale
|
||||
def check_locales_for_dictionaries(locales):
|
||||
used = { l["dictionary"] for l in locales if "dictionary" in l }
|
||||
for d in available_dictionaries:
|
||||
if d not in used:
|
||||
warn("Dictionary '%s' is attached to no locale" % d)
|
||||
|
||||
def subtype_elem(root, loc):
|
||||
tag = loc["tag"].replace("_", "-")
|
||||
extra_keys = ",extra_keys=" + loc["extra_keys"] if "extra_keys" in loc else ""
|
||||
@@ -104,8 +128,7 @@ def subtype_elem(root, loc):
|
||||
"android:imeSubtypeExtraValue": extra_value
|
||||
})
|
||||
|
||||
# Return locales in sorted order with the "tag" and "dictionary" attributes
|
||||
# added.
|
||||
# Return locales with the "tag" and "dictionary" attributes added.
|
||||
def compute_attrs():
|
||||
locales_grouped = {} # Locales grouped by language tag
|
||||
def lang(loc):
|
||||
@@ -113,8 +136,8 @@ def compute_attrs():
|
||||
for loc in LOCALES:
|
||||
locales_grouped.setdefault(lang(loc), []).append(loc)
|
||||
def tag(loc):
|
||||
if "tag" in loc: return loc["tag"]
|
||||
l = lang(loc)
|
||||
if loc["name"] == l: return l # Locales like "en"
|
||||
if loc["name"] == f"{l}_{l.upper()}": return l # Locales like "fr_FR"
|
||||
# Return a short tag when it's not shared between several locales
|
||||
return l if len(locales_grouped[l]) == 1 else loc["name"]
|
||||
@@ -124,11 +147,24 @@ def compute_attrs():
|
||||
if l in available_dictionaries: return l
|
||||
return None
|
||||
def add_attrs(loc):
|
||||
return dict(tag=tag(loc), dictionary=dictionary(loc), **loc)
|
||||
loc = dict(**loc)
|
||||
loc["tag"] = tag(loc)
|
||||
loc["dictionary"] = dictionary(loc)
|
||||
return loc
|
||||
return map(add_attrs, LOCALES)
|
||||
|
||||
def sort_locales(locales):
|
||||
# The default locale for a language (eg. "en") might shadow the exact
|
||||
# locale (eg. "en_US"). Makes sure the default locale sorts after the exact
|
||||
# ones.
|
||||
def key(l):
|
||||
s = l["name"].split("_")
|
||||
return (l["name"] != DEFAULT_LOCALE), s[0], (len(s) == 1), s[1:]
|
||||
return sorted(locales, key=key)
|
||||
|
||||
def gen():
|
||||
locales = compute_attrs()
|
||||
locales = sort_locales(compute_attrs())
|
||||
check_locales_for_dictionaries(locales)
|
||||
root = ET.Element("input-method", attrib={
|
||||
"xmlns:android": "http://schemas.android.com/apk/res/android",
|
||||
"android:settingsActivity": "juloo.keyboard2.SettingsActivity",
|
||||
@@ -139,8 +175,7 @@ def gen():
|
||||
Update this file with 'gradle test'.
|
||||
|
||||
"""))
|
||||
subtype_elem(root, DEFAULT_LOCALE)
|
||||
for loc in sorted(locales, key=lambda loc: loc["name"]):
|
||||
for loc in locales:
|
||||
subtype_elem(root, loc)
|
||||
ET.indent(root)
|
||||
print(ET.tostring(root, encoding="utf-8", xml_declaration=True).decode("UTF-8"))
|
||||
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
-keep public class juloo.cdict.* {
|
||||
public protected private *;
|
||||
}
|
||||
+57
-57
@@ -176,62 +176,62 @@
|
||||
<item>@string/dict_name_zgh</item>
|
||||
</string-array>
|
||||
<integer-array name="dictionaries_size">
|
||||
<item>455658</item>
|
||||
<item>307451</item>
|
||||
<item>1745968</item>
|
||||
<item>347735</item>
|
||||
<item>301586</item>
|
||||
<item>481783</item>
|
||||
<item>335099</item>
|
||||
<item>657214</item>
|
||||
<item>933060</item>
|
||||
<item>1071580</item>
|
||||
<item>1075177</item>
|
||||
<item>964195</item>
|
||||
<item>645068</item>
|
||||
<item>644719</item>
|
||||
<item>650605</item>
|
||||
<item>635119</item>
|
||||
<item>359849</item>
|
||||
<item>1003794</item>
|
||||
<item>871636</item>
|
||||
<item>240926</item>
|
||||
<item>279333</item>
|
||||
<item>301928</item>
|
||||
<item>727487</item>
|
||||
<item>331818</item>
|
||||
<item>948362</item>
|
||||
<item>696974</item>
|
||||
<item>352933</item>
|
||||
<item>488139</item>
|
||||
<item>263411</item>
|
||||
<item>286588</item>
|
||||
<item>331897</item>
|
||||
<item>736799</item>
|
||||
<item>854603</item>
|
||||
<item>333644</item>
|
||||
<item>354875</item>
|
||||
<item>301259</item>
|
||||
<item>776481</item>
|
||||
<item>926933</item>
|
||||
<item>357107</item>
|
||||
<item>107120</item>
|
||||
<item>740895</item>
|
||||
<item>705536</item>
|
||||
<item>996904</item>
|
||||
<item>1421447</item>
|
||||
<item>907625</item>
|
||||
<item>342293</item>
|
||||
<item>322250</item>
|
||||
<item>256078</item>
|
||||
<item>228729</item>
|
||||
<item>740293</item>
|
||||
<item>916845</item>
|
||||
<item>297338</item>
|
||||
<item>304295</item>
|
||||
<item>690598</item>
|
||||
<item>1179318</item>
|
||||
<item>265324</item>
|
||||
<item>628168</item>
|
||||
<item>1077292</item>
|
||||
<item>311112</item>
|
||||
<item>11487846</item>
|
||||
<item>2211253</item>
|
||||
<item>301784</item>
|
||||
<item>906326</item>
|
||||
<item>407170</item>
|
||||
<item>1568998</item>
|
||||
<item>1546716</item>
|
||||
<item>2255836</item>
|
||||
<item>2266732</item>
|
||||
<item>2238294</item>
|
||||
<item>965128</item>
|
||||
<item>965329</item>
|
||||
<item>975297</item>
|
||||
<item>1052729</item>
|
||||
<item>414036</item>
|
||||
<item>1658585</item>
|
||||
<item>1605664</item>
|
||||
<item>357847</item>
|
||||
<item>481771</item>
|
||||
<item>470063</item>
|
||||
<item>1321154</item>
|
||||
<item>707030</item>
|
||||
<item>928493</item>
|
||||
<item>893066</item>
|
||||
<item>353376</item>
|
||||
<item>488110</item>
|
||||
<item>263418</item>
|
||||
<item>286778</item>
|
||||
<item>697624</item>
|
||||
<item>1516546</item>
|
||||
<item>1979217</item>
|
||||
<item>459935</item>
|
||||
<item>354845</item>
|
||||
<item>495624</item>
|
||||
<item>1082569</item>
|
||||
<item>1084717</item>
|
||||
<item>364229</item>
|
||||
<item>107132</item>
|
||||
<item>1447993</item>
|
||||
<item>1139131</item>
|
||||
<item>1829662</item>
|
||||
<item>2101184</item>
|
||||
<item>2253446</item>
|
||||
<item>610950</item>
|
||||
<item>323065</item>
|
||||
<item>535713</item>
|
||||
<item>373039</item>
|
||||
<item>1770217</item>
|
||||
<item>1587792</item>
|
||||
<item>297746</item>
|
||||
<item>304874</item>
|
||||
<item>1497533</item>
|
||||
<item>7456277</item>
|
||||
<item>573464</item>
|
||||
<item>628174</item>
|
||||
</integer-array>
|
||||
</resources>
|
||||
|
||||
+17
-5
@@ -5,28 +5,32 @@
|
||||
Update this file with 'gradle test'.
|
||||
|
||||
-->
|
||||
<subtype android:label="%s" android:languageTag="en" android:imeSubtypeLocale="en" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=en_GB" />
|
||||
<subtype android:label="%s" android:languageTag="ar" android:imeSubtypeLocale="ar" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=arabic,default_layout=arab_pc_hindu,dictionary=ar" />
|
||||
<subtype android:label="%s" android:languageTag="en-GB" android:imeSubtypeLocale="en_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_gb,dictionary=en_GB,extra_keys=£@l" />
|
||||
<subtype android:label="%s" android:languageTag="ar-TN" android:imeSubtypeLocale="ar_TN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=arabic,default_layout=arab_pc,dictionary=ar" />
|
||||
<subtype android:label="%s" android:languageTag="ay" android:imeSubtypeLocale="ay_AM" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=armenian,default_layout=armenian_ph_am" />
|
||||
<subtype android:label="%s" android:languageTag="ar" android:imeSubtypeLocale="ar" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=arabic,default_layout=arab_pc_hindu,dictionary=ar" />
|
||||
<subtype android:label="%s" android:languageTag="as" android:imeSubtypeLocale="as" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=beng,default_layout=beng_assamese,dictionary=as" />
|
||||
<subtype android:label="%s" android:languageTag="az" android:imeSubtypeLocale="az_AZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_az,extra_keys=accent_trema:ü:ö@w|accent_cedille:ç:ş@s|ğ@g|ı@k|ə@l" />
|
||||
<subtype android:label="%s" android:languageTag="be" android:imeSubtypeLocale="be_BY" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=cyrillic,default_layout=cyrl_jcuken_ru,dictionary=be,extra_keys=ґ|є|і|ї|ў" />
|
||||
<subtype android:label="%s" android:languageTag="bg" android:imeSubtypeLocale="bg_BG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=cyrillic,default_layout=cyrl_ueishsht,dictionary=bg,extra_keys=€" />
|
||||
<subtype android:label="%s" android:languageTag="bn" android:imeSubtypeLocale="bn_BD" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=bn,extra_keys=৳" />
|
||||
<subtype android:label="%s" android:languageTag="bs" android:imeSubtypeLocale="bs" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=bs,extra_keys=đ|ž|lj|nj|ć|č|dž|š" />
|
||||
<subtype android:label="%s" android:languageTag="ca" android:imeSubtypeLocale="ca" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=ca,extra_keys=accent_grave:à:ò:è|accent_cedille:ç@c|accent_aigu:é:í:ú:ó|accent_trema:ï:ü|ŀl|€" />
|
||||
<subtype android:label="%s" android:languageTag="cs" android:imeSubtypeLocale="cs_CZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_cz,dictionary=cs,extra_keys=accent_aigu:á:é:í:ó:ú:ý@d|accent_ring:ů@s|accent_caron:č:ě:ň:ř:š:ž:ď:ť@f" />
|
||||
<subtype android:label="%s" android:languageTag="cy" android:imeSubtypeLocale="cy_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_cy" />
|
||||
<subtype android:label="%s" android:languageTag="da" android:imeSubtypeLocale="da_DK" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_da,dictionary=da,extra_keys=€|æ|å|ø" />
|
||||
<subtype android:label="%s" android:languageTag="de-BE" android:imeSubtypeLocale="de_BE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_be,dictionary=de,extra_keys=accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|accent_trema@u|€" />
|
||||
<subtype android:label="%s" android:languageTag="de-CH" android:imeSubtypeLocale="de_CH" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_de,dictionary=de_CH,extra_keys=accent_trema:ä:ö:ü@u|ß" />
|
||||
<subtype android:label="%s" android:languageTag="de" android:imeSubtypeLocale="de_DE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_de,dictionary=de,extra_keys=accent_trema:ä:ö:ü@u|ß|€" />
|
||||
<subtype android:label="%s" android:languageTag="el" android:imeSubtypeLocale="el" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=grek_qwerty,dictionary=el,extra_keys=£@l|€" />
|
||||
<subtype android:label="%s" android:languageTag="en-AU" android:imeSubtypeLocale="en_AU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=en_AU" />
|
||||
<subtype android:label="%s" android:languageTag="en-CA" android:imeSubtypeLocale="en_CA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us" />
|
||||
<subtype android:label="%s" android:languageTag="en-GB" android:imeSubtypeLocale="en_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_gb,dictionary=en_GB,extra_keys=£@l" />
|
||||
<subtype android:label="%s" android:languageTag="en-IN" android:imeSubtypeLocale="en_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us" />
|
||||
<subtype android:label="%s" android:languageTag="en-NG" android:imeSubtypeLocale="en_NG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,extra_keys=₦" />
|
||||
<subtype android:label="%s" android:languageTag="en-US" android:imeSubtypeLocale="en_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=en_US" />
|
||||
<subtype android:label="%s" android:languageTag="en" android:imeSubtypeLocale="en" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us" />
|
||||
<subtype android:label="%s" android:languageTag="es" android:imeSubtypeLocale="es_ES" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_es,dictionary=es,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_tilde:ñ@n|accent_grave@f|accent_trema@u|€" />
|
||||
<subtype android:label="%s" android:languageTag="et" android:imeSubtypeLocale="et_EE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_et,extra_keys=accent_trema:ä:ö:ü@u|accent_tilde:õ@o|accent_caron:š:ž@s|€" />
|
||||
<subtype android:label="%s" android:languageTag="eu" android:imeSubtypeLocale="eu" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=eu,extra_keys=ñ|ç|ü|dd|ll|rr|ts|tt|tx|tz" />
|
||||
<subtype android:label="%s" android:languageTag="fa" android:imeSubtypeLocale="fa_IR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=persian,default_layout=arab_pc_ir" />
|
||||
<subtype android:label="%s" android:languageTag="fi" android:imeSubtypeLocale="fi" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_fi,dictionary=fi,extra_keys=å|accent_ring|accent_aigu|accent_trema|ö|ä|€" />
|
||||
<subtype android:label="%s" android:languageTag="fr-BE" android:imeSubtypeLocale="fr_BE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_be,dictionary=fr,extra_keys=accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:ê:û@f|accent_cedille:ç@c|accent_trema@u|€" />
|
||||
@@ -34,11 +38,14 @@
|
||||
<subtype android:label="%s" android:languageTag="fr-CH" android:imeSubtypeLocale="fr_CH" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_fr_ch,dictionary=fr,extra_keys=accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:â:ê:ô:û@o|accent_cedille:ç@c|accent_trema:ë:ï:ü:ÿ@u|€" />
|
||||
<subtype android:label="%s" android:languageTag="fr" android:imeSubtypeLocale="fr_FR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_fr,dictionary=fr,extra_keys=accent_grave:à:è:ù@d|accent_aigu:é@d|accent_circonflexe:â:ê:ô:û@o|accent_cedille:ç@c|accent_trema:ë:ï:ü@l|€" />
|
||||
<subtype android:label="%s" android:languageTag="ga" android:imeSubtypeLocale="ga_IE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_ga,extra_keys=accent_aigu:á:é:í:ó:ú@k|accent_dot_above@l" />
|
||||
<subtype android:label="%s" android:languageTag="gl" android:imeSubtypeLocale="gl" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=gl" />
|
||||
<subtype android:label="%s" android:languageTag="ha" android:imeSubtypeLocale="ha_NG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,extra_keys=₦|ɓ|ɗ|ƙ|’|ƴ|r̃" />
|
||||
<subtype android:label="%s" android:languageTag="haw" android:imeSubtypeLocale="haw_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_haw,extra_keys=ʻ@l|accent_macron:ā:ē:ī:ō:ū@m" />
|
||||
<subtype android:label="%s" android:languageTag="he" android:imeSubtypeLocale="he_IL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=hebrew,default_layout=default_layout=hebr_1_il,extra_keys=₪@r|€" />
|
||||
<subtype android:label="%s" android:languageTag="hi" android:imeSubtypeLocale="hi_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=devanagari,default_layout=deva_inscript,dictionary=hi,extra_keys=₹" />
|
||||
<subtype android:label="%s" android:languageTag="hr" android:imeSubtypeLocale="hr" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=hr,extra_keys=č|ć|dž|đ|lj|nj|š|ž" />
|
||||
<subtype android:label="%s" android:languageTag="hu" android:imeSubtypeLocale="hu_HU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_hu,dictionary=hu,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_trema:ö:ü@u|accent_ogonek@s|accent_double_aigu:ő:ű@k|€" />
|
||||
<subtype android:label="%s" android:languageTag="hy" android:imeSubtypeLocale="hy" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=armenian,default_layout=armenian_ph_am,dictionary=hy" />
|
||||
<subtype android:label="%s" android:languageTag="ig" android:imeSubtypeLocale="ig_NG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,extra_keys=₦|ṅ|ọ|ụ" />
|
||||
<subtype android:label="%s" android:languageTag="is" android:imeSubtypeLocale="is_IS" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_is,extra_keys=ð|þ|æ|accent_trema:ö@o|accent_aigu:á:é:í:ó:ú:ý@d|accent_circonflexe|accent_ring|accent_grave" />
|
||||
<subtype android:label="%s" android:languageTag="it" android:imeSubtypeLocale="it_IT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=it,extra_keys=accent_grave:à:è:ì:ò:ù@f|accent_aigu:é:ó@d|accent_circonflexe:î@f|€|ə" />
|
||||
@@ -46,21 +53,25 @@
|
||||
<subtype android:label="%s" android:languageTag="kk" android:imeSubtypeLocale="kk_KZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=cyrl_jcuken_kk" />
|
||||
<subtype android:label="%s" android:languageTag="kn" android:imeSubtypeLocale="kn_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=kannada,default_layout=kann_kannada,dictionary=kn" />
|
||||
<subtype android:label="%s" android:languageTag="ko" android:imeSubtypeLocale="ko_KR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=hangul,default_layout=hang_dubeolsik_kr" />
|
||||
<subtype android:label="%s" android:languageTag="lb" android:imeSubtypeLocale="lb" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=lb,extra_keys=é|ä|ë|accent_grave|accent_cedille@c|accent_aigu|accent_trema|€" />
|
||||
<subtype android:label="%s" android:languageTag="lt" android:imeSubtypeLocale="lt_LT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_lt,dictionary=lt,extra_keys=accent_ogonek:ą:ę:į:ų@s|accent_caron:č:š:ž@f|accent_dot_above:ė@s|accent_macron:ū@o|€" />
|
||||
<subtype android:label="%s" android:languageTag="lv" android:imeSubtypeLocale="lv_LV" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_lv,dictionary=lv,extra_keys=accent_macron:ā:ē:ī:ū@o|accent_caron:č:š:ž@f|accent_ogonek:ķ:ļ:ņ@s|accent_cedille:ģ@c|€" />
|
||||
<subtype android:label="%s" android:languageTag="mk" android:imeSubtypeLocale="mk" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=cyrillic,default_layout=cyrl_lynyertdz_mk,extra_keys=ѕ|ѓ|ќ|ѝ|ѐ|љ|њ|џ|„|“|€" />
|
||||
<subtype android:label="%s" android:languageTag="mn" android:imeSubtypeLocale="mn_MN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=cyrillic,default_layout=cyrl_fcuzhen_mn,extra_keys=ү|ө" />
|
||||
<subtype android:label="%s" android:languageTag="mr" android:imeSubtypeLocale="mr_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=devanagari,default_layout=deva_inscript,dictionary=mr,extra_keys=₹" />
|
||||
<subtype android:label="%s" android:languageTag="mt" android:imeSubtypeLocale="mt_MT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_mt,extra_keys=accent_grave:à:è:ì:ò:ù|accent_dot_above:ċ:ż:ġ|ħ" />
|
||||
<subtype android:label="%s" android:languageTag="nb" android:imeSubtypeLocale="nb" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=nb,extra_keys=€|æ@a|å@a|ø@o|accent_aigu:é:ó@d|accent_grave:è:ò:ù@f|accent_circonflexe:ê:ô@f" />
|
||||
<subtype android:label="%s" android:languageTag="ne" android:imeSubtypeLocale="ne_NE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=devanagari,default_layout=deva_inscript,extra_keys=₹" />
|
||||
<subtype android:label="%s" android:languageTag="nl" android:imeSubtypeLocale="nl_BE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_be,dictionary=nl,extra_keys=accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|accent_trema@u|€" />
|
||||
<subtype android:label="%s" android:languageTag="no" android:imeSubtypeLocale="no_NO" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,extra_keys=€|æ@a|å@a|ø@o|accent_aigu:é:ó@d|accent_grave:è:ò:ù@f|accent_circonflexe:ê:ô@f" />
|
||||
<subtype android:label="%s" android:languageTag="pl" android:imeSubtypeLocale="pl_PL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_pl,dictionary=pl" />
|
||||
<subtype android:label="%s" android:languageTag="pt" android:imeSubtypeLocale="pt_BR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_pt,dictionary=pt_BR,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_cedille:ç@c|accent_circonflexe:â:ê:ô@f|accent_grave:à:ò@f|accent_tilde:ã:õ@n|€|ª|º" />
|
||||
<subtype android:label="%s" android:languageTag="pt-BR" android:imeSubtypeLocale="pt_BR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_pt,dictionary=pt_BR,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_cedille:ç@c|accent_circonflexe:â:ê:ô@f|accent_grave:à:ò@f|accent_tilde:ã:õ@n|€|ª|º" />
|
||||
<subtype android:label="%s" android:languageTag="pt" android:imeSubtypeLocale="pt_PT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_pt,dictionary=pt_PT,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_cedille:ç@c|accent_circonflexe:â:ê:ô@f|accent_grave:à:ò@f|accent_tilde:ã:õ@n|€|ª|º" />
|
||||
<subtype android:label="%s" android:languageTag="ro" android:imeSubtypeLocale="ro_RO" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_ro,dictionary=ro,extra_keys=ă|â|î|ș|ț|€|$" />
|
||||
<subtype android:label="%s" android:languageTag="ru" android:imeSubtypeLocale="ru_RU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=cyrl_jcuken_ru,dictionary=ru" />
|
||||
<subtype android:label="%s" android:languageTag="si" android:imeSubtypeLocale="si_LK" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=sinhala,default_layout=sinhala_phonetic,extra_keys=₨" />
|
||||
<subtype android:label="%s" android:languageTag="sk" android:imeSubtypeLocale="sk_SK" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_sk,extra_keys=accent_caron:ě:ř:ž:š:č:ň:ď:ľ:ť@f|accent_ring:ů@s|accent_circonflexe:ô@f|accent_trema:ä:ü:ö@u|accent_aigu:á:é:í:ó:ú:ŕ:ś:ĺ:ý@d" />
|
||||
<subtype android:label="%s" android:languageTag="sl" android:imeSubtypeLocale="sl" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,dictionary=sl,extra_keys=accent_caron:Č:Š:Ž|€" />
|
||||
<subtype android:label="%s" android:languageTag="sq" android:imeSubtypeLocale="sq_AL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_sq" />
|
||||
<subtype android:label="%s" android:languageTag="sr" android:imeSubtypeLocale="sr_" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=cyrl_lynyertz_sr,dictionary=sr" />
|
||||
<subtype android:label="%s" android:languageTag="sv" android:imeSubtypeLocale="sv_SE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_se,dictionary=sv,extra_keys=accent_aigu:á@d|accent_trema:ä:ö@o|accent_ring:å@s|€" />
|
||||
@@ -69,6 +80,7 @@
|
||||
<subtype android:label="%s" android:languageTag="tly-IR" android:imeSubtypeLocale="tly_IR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=persian,default_layout=arab_hamvaj_tly" />
|
||||
<subtype android:label="%s" android:languageTag="tr" android:imeSubtypeLocale="tr_TR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_tr,dictionary=tr,extra_keys=accent_cedille:ç:ş@c|accent_trema:ö:ü@u|accent_circonflexe:â:î:û@f|₺|ı|ğ" />
|
||||
<subtype android:label="%s" android:languageTag="uk" android:imeSubtypeLocale="uk_UA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=cyrillic,default_layout=cyrl_jcuken_uk,dictionary=uk,extra_keys=ґ|є|і|ї|₴" />
|
||||
<subtype android:label="%s" android:languageTag="ur" android:imeSubtypeLocale="ur" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=persian,default_layout=arab_pc_ir,dictionary=ur" />
|
||||
<subtype android:label="%s" android:languageTag="uz" android:imeSubtypeLocale="uz_UZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_uz,extra_keys=ʻ|ʼ" />
|
||||
<subtype android:label="%s" android:languageTag="vi" android:imeSubtypeLocale="vi_VN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_vi" />
|
||||
<subtype android:label="%s" android:languageTag="yo" android:imeSubtypeLocale="yo_NG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us,extra_keys=₦|ẹ|ọ|ṣ" />
|
||||
|
||||
@@ -127,7 +127,9 @@ public final class CurrentlyTypedWord
|
||||
int c = Character.codePointAt(s, i);
|
||||
i += Character.charCount(c);
|
||||
_cursor++;
|
||||
if (!Character.isLetter(c))
|
||||
// [i >= end] might happen when the cursor is in the middle of a
|
||||
// surrogate pair
|
||||
if (!Character.isLetter(c) && i < end)
|
||||
insert_start = i;
|
||||
}
|
||||
if (insert_start > 0)
|
||||
|
||||
@@ -264,13 +264,11 @@ public class Keyboard2View extends View
|
||||
@Override
|
||||
public void onMeasure(int wSpec, int hSpec)
|
||||
{
|
||||
int width;
|
||||
DisplayMetrics dm = getContext().getResources().getDisplayMetrics();
|
||||
width = dm.widthPixels;
|
||||
int width = dm.widthPixels;
|
||||
_marginLeft = Math.max(_config.horizontal_margin, _insets_left);
|
||||
_marginRight = Math.max(_config.horizontal_margin, _insets_right);
|
||||
_marginBottom = _config.margin_bottom + _insets_bottom;
|
||||
width += _insets_left + _insets_right;
|
||||
_keyWidth = (width - _marginLeft - _marginRight) / _keyboard.keysWidth;
|
||||
_tc = new Theme.Computed(_theme, _config, _keyWidth, _keyboard);
|
||||
// Compute the size of labels based on the width or the height of keys. The
|
||||
|
||||
+12
-7
@@ -8,17 +8,19 @@ import glob, os, sys
|
||||
# The baseline is 'values/strings.xml', which is english.
|
||||
# Sync store title and descriptions to the metadata directory.
|
||||
|
||||
# Map language codes to the codes that Google Play understands. Languages
|
||||
# mapped to [None] are not supported by Google Play.
|
||||
VALUE_DIR_TO_METADATA = {
|
||||
"ar": "ar",
|
||||
"ars": "ars",
|
||||
"arz": "arz",
|
||||
"bn-rBD": "bn-BD",
|
||||
"ars": None,
|
||||
"arz": None,
|
||||
"bn-rBD": None,
|
||||
"ca": "ca",
|
||||
"cs": "cs-CZ",
|
||||
"de": "de-DE",
|
||||
"en": "en-US",
|
||||
"es": "es-ES",
|
||||
"fa": "fa-IR",
|
||||
"fa": None,
|
||||
"fil": "fil",
|
||||
"fr": "fr-FR",
|
||||
"in": "id",
|
||||
@@ -26,14 +28,14 @@ VALUE_DIR_TO_METADATA = {
|
||||
"ja": "ja-JP",
|
||||
"ko": "ko-KR",
|
||||
"lv": "lv",
|
||||
"my": "my",
|
||||
"my": None,
|
||||
"nl": "nl-NL",
|
||||
"pl": "pl-PL",
|
||||
"pt": "pt-BR",
|
||||
"ro": "ro",
|
||||
"ru": "ru-RU",
|
||||
"th": "th",
|
||||
"tok": "tok",
|
||||
"tok": None,
|
||||
"tr": "tr-TR",
|
||||
"uk": "uk",
|
||||
"vi": "vi",
|
||||
@@ -78,7 +80,10 @@ def sync_metadata(value_dir, strings):
|
||||
locale = os.path.basename(value_dir).removeprefix("values-")
|
||||
if not locale in VALUE_DIR_TO_METADATA:
|
||||
raise Exception("Locale '%s' not known, please add it into sync_translations.py" % locale)
|
||||
meta_dir = "fastlane/metadata/android/" + VALUE_DIR_TO_METADATA[locale]
|
||||
metadata_name = VALUE_DIR_TO_METADATA[locale]
|
||||
if metadata_name == None:
|
||||
return # Not supported by the play store
|
||||
meta_dir = "fastlane/metadata/android/" + metadata_name
|
||||
def sync_meta_file(fname, string_name):
|
||||
if string_name in strings:
|
||||
string = strings[string_name]
|
||||
|
||||
Reference in New Issue
Block a user