Compare commits

..
14 Commits
Author SHA1 Message Date
Jules Aguillon 267894b5ff Release 2.0.2 (53) 2026-05-06 01:29:04 +02:00
Jules Aguillon 56edba7b18 Remove mention of network access from store description (#1280)
This part of the store description is no longer true, as the application
makes a network request when downloading a dictionary.
2026-05-06 01:16:47 +02:00
alotbsol555 11b735bfe8 Update README (#1279)
Removed mention of network requests from the README, due to dictionary downloads.
2026-05-06 01:03:47 +02:00
7587c68d7f Merge weblate translations before 2.0.2 (#1277)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Juan M Sevilla <jumase@disroot.org>
Co-authored-by: Jules <jules@j3s.fr>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Co-authored-by: Summer-Box1228 <tingrong1228@gmail.com>
2026-05-05 12:43:05 +02:00
Jules Aguillon e57cdc45f2 Revert to the 1.32.1 Russian layout (#1276)
Partly revert be0aa07.
2026-05-05 12:37:39 +02:00
Jon Musselwhite 7b07b14a80 Fix missing null gate (#1273) 2026-05-05 02:26:41 +02:00
Jules Aguillon 063756eb50 Release 2.0.1 (52) 2026-05-03 19:30:18 +02:00
Jules Aguillon 9189921719 Add languages for which a dictionary is available (#1267)
* gen_method_xml.py: Warn for unused dictionaries

Helps catch missing locales.

* Add languages for which a dictionary is available

Make dictionaries are available to more languages. Extra keys are added
for as many languages as possible but no layout is added.

Some languages are still not added, mainly because they use a script
that the keyboard doesn't support yet:

    pa, gu, or, te, mai, sat, km, iw, zgh, sd, ml, sa
2026-05-03 19:19:51 +02:00
Jules Aguillon 2e1859fb1a Fix the keyboard drawing behind the navigation bar (#1265)
The width of the navigation was not accounted correctly.

This reverts be8a99bd
2026-05-03 18:10:43 +02:00
Jules Aguillon 139d1c5691 Fix crash when the cursor moves past an emoji (#1264)
The cursor might move in the middle of a surrogate pair.
2026-05-03 17:09:43 +02:00
Jules Aguillon 20a4916ff6 Fix wrong locale selection for English (#1263)
The "en" locale, which was meant to be the default for English locales
that are not in the list, was used instead of exact locales like "en_US".

The "en" locale was also used as the default locale for languages that
are not in the list at all. The "en_GB" locale is used for this instead.
2026-05-03 16:50:41 +02:00
Jules Aguillon 54c25b79e4 Update dictionaries.xml (#1262)
The dictionary sizes were not correct.
2026-05-03 13:50:51 +02:00
Jules Aguillon 82d61d4406 Fix crash when installing dictionaries (#1261)
This happens in release mode due to minification.
2026-05-03 12:55:27 +02:00
Jules Aguillon e2fdced765 releases: Update languages supported by Google Play (#1257)
Remove languages from fastlane metadata that are not supported by Google
Play and prevented the release from continuing.
2026-05-02 21:34:19 +02:00
92 changed files with 357 additions and 224 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ The main feature is that you can type more characters by swiping the keys toward
This application was originally designed for programmers using Termux.
Now perfect for everyday use.
This application contains no ads, doesn't make any network requests and is open source.
This application contains no ads and is open source.
Usage: to apply the symbols located in the corners of each key, slide your finger in the direction of the symbols. For example, the Settings are opened by sliding in the left down corner.
+5 -2
View File
@@ -20,8 +20,8 @@ android {
applicationId = "juloo.keyboard2"
minSdk = 21
targetSdk { version = release(36) }
versionCode = 51
versionName = "2.0.0"
versionCode = 53
versionName = "2.0.2"
}
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
View File
@@ -10,7 +10,6 @@ armn_kvertc: Layout includes some ASCII punctuation but not all, missing: !, ",
beng_assamese: Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', *, +, -, /, :, ;, <, =, >, ?, [, \, ], ^, _, `, {, |, }, ~
beng_national: Layout includes some ASCII punctuation but not all, missing: $
beng_provat: Layout includes some ASCII punctuation but not all, missing: $, &, *, ., /, <, >, [, \, ], `, {, |, }
cyrl_jcuken_ru: Layout includes some ASCII punctuation but not all, missing: #, $, &, ', *, <, >, @, [, ], ^, `, {, }, ~
cyrl_jiuken: Layout includes some ASCII punctuation but not all, missing: #, $, &, ', *, +, <, =, >, @, [, ], ^, _, `, {, }, ~
cyrl_lynyertdz_mk: Layout includes some ASCII punctuation but not all, missing: "
cyrl_yaverti: Layout includes some ASCII punctuation but not all, missing: ~
@@ -2,5 +2,3 @@
صُمم هذا التطبيق في الأصل للمبرمجين الذين يستخدمون Termux.
أصبح الآن مثاليًا للاستخدام اليومي.
هذا التطبيق لا يحتوي على إعلانات، ولا يقوم بأي طلبات عبر الشبكة، وهو مفتوح المصدر.
@@ -1,6 +0,0 @@
الميزة الرئيسية إنّه تقدر تكتب حروف أكثر عن طريق تمرير المفاتيح باتّجاه الزوايا
هذا التطبيق أصلاً تسوّى علشان المبرمجين إلّي يستخدمون طرفية Termux.
الآن صار تمام للاستخدام اليومي.
هذا التطبيق ما فيه إعلانات، ما يقدّم أي طلبات على الشبكة ومفتوح المصدر.
@@ -1 +0,0 @@
كيبورد افتراضي خفيف الوزن ويراعي الخصوصية لآندرويد.
-1
View File
@@ -1 +0,0 @@
Unexpected Keyboard
@@ -1,6 +0,0 @@
الميزة الرئيسة هي أنّه يمكنك كتابة المزيد من الأحرف عن طريق تمرير المفاتيح نحو الزوايا.
هذا التطبيق كان مُصممًا للمُبرمجين الذين يستخدمون طرفية Termux.
الآن صار مثاليًا للاستخدام اليومي.
هذا التطبيق لا يحتوي على إعلانات، ولا يقوم بأيّ طلبات شبكة، وكما أنّه مفتوح المصدر.
@@ -1 +0,0 @@
لوحة مفاتيح افتراضية خفيفة ومُراعية للخصوصية لنظام آندرويد.
-1
View File
@@ -1 +0,0 @@
Unexpected Keyboard
@@ -1,6 +0,0 @@
এর প্রধান বৈশিষ্ট্য হলো, কি-গুলোর কোণার দিকে সোয়াইপ করে আপনি আরও বেশি অক্ষর টাইপ করতে পারবেন।
এই অ্যাপ্লিকেশনটি মূলত টার্মাক্স (Termux) ব্যবহারকারী প্রোগ্রামারদের জন্য ডিজাইন করা হয়েছিল।
এখন এটি দৈনন্দিন ব্যবহারের জন্য উপযুক্ত।
এই অ্যাপ্লিকেশনটিতে কোনো বিজ্ঞাপন নেই, এটি কোনো নেটওয়ার্ক রিকোয়েস্ট করে না এবং এটি ওপেন সোর্স।
@@ -1 +0,0 @@
অ্যান্ড্রোয়েডের জন্য হালকা এবং গোপনীয়তা-সচেতন ভার্চুয়াল কিবোর্ড।
@@ -1 +0,0 @@
অপ্রত্যাশিত কীবোর্ড
@@ -3,4 +3,4 @@ La característica principal és que pots escriure més caràcters arrossegant l
Aquesta aplicació va ser dissenyada originalment per als programadors que usen Termux.
Ara és perfecta per a un ús quotidià.
Aquesta aplicació no conté anuncis, no fa cap petició de xarxa i és de codi obert.
Aquesta aplicació no conté anuncis i és de codi obert.
@@ -3,4 +3,4 @@ Hlavní funkcí je možnost psát více znaků posunutím kláves směrem k roh
Tato aplikace byla původně navržena pro programátory používající Termux.
Nyní je ideální pro každodenní použití.
Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je Open Source.
Tato aplikace neobsahuje žádné reklamy a je Open Source.
@@ -3,4 +3,4 @@ Diese Tastatur zeichnet sich dadurch aus, dass man zusätzliche Zeichen durch Wi
Die Anwendung wurde ursprünglich für das Programmieren in Termux entwickelt.
Mittlerweile ist sie auch für den täglichen Gebrauch perfekt geeignet.
Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quelloffen.
Diese App enthält keine Werbung und ist quelloffen.
@@ -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
@@ -0,0 +1,3 @@
Bug fixes
Huge thanks to the contributors: @alotbsol555 @FlippingBinary
@@ -3,4 +3,4 @@ The main feature is that you can type more characters by swiping the keys toward
This application was originally designed for programmers using Termux.
Now perfect for everyday use.
This application contains no ads, doesn't make any network requests and is Open Source.
This application contains no ads and is Open Source.
@@ -3,4 +3,4 @@ La característica principal es que hay acceso a más caractéres deslizando hac
Esta aplicación fue originalmente diseñada para programadores que usaran Termux.
Ahora es perfecta para uso cotidiano.
La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y es de Fuente Abierta.
La misma no contiene ningún anuncio/publicidad y es de Fuente Abierta.
@@ -1,6 +0,0 @@
ویژگی اصلی این است که می‌توانید با کشیدن کلیدها به سمت گوشه‌ها، نویسه های (کاراکترهای) بیشتری تایپ کنید.
این برنامه در ابتدا برای برنامه‌نویسانی که از Termux استفاده می‌کنند طراحی شده بود.
اکنون برای استفاده روزمره عالی است.
این برنامه هیچ تبلیغاتی ندارد، هیچ درخواست شبکه‌ای انجام نمی‌دهد و متن‌باز است.
@@ -1 +0,0 @@
صفحه‌کلید مجازی سبک و با حفظ حریم خصوصی برای اندروید.
@@ -1 +0,0 @@
صفحه‌کلید غیرمنتظره
@@ -3,4 +3,4 @@ Ang pangunahing feature ay maaari kang mag-type ng mas marami pang karakter sa p
Noong simula, ginawa itong application para sa mga programmer sa na nagte-Termux.
Ngayo'y perpekto na sa pang-araw-araw.
Walang ads, hindi nagne-network request at Open Source ang application na ito.
Walang ads at Open Source ang application na ito.
@@ -3,4 +3,4 @@ La fonctionnalité principale est l'accès rapide à plus de caractères en bala
Cette application a été conçue à l'origine pour les programmeurs utilisant Termux.
Elle est maintenant parfaite pour une utilisation quotidienne.
Cette application ne contient pas de publicité, n'accède pas au réseau et est Open Source.
Cette application ne contient pas de publicité et est Open Source.
@@ -3,4 +3,4 @@ Fitur utamanya adalah Anda dapat mengetik lebih banyak karakter dengan menggeser
Aplikasi ini awalnya dirancang untuk programmer yang menggunakan Termux.
Sekarang sempurna untuk penggunaan sehari-hari.
Aplikasi ini tidak berisi iklan, tidak membuat permintaan jaringan dan Open Source.
Aplikasi ini tidak berisi iklan dan Open Source.
@@ -3,4 +3,4 @@ La caratteristica principale è quella di poter digitare altri caratteri scorren
L'applicazione era originariamente pensata per l'utilizzo di Termux da parte di programmatori.
Ora è perfetta anche per l'uso quotidiano.
L'applicazione non contiene pubblicità, non esegue alcuna richiesta di rete ed è Open Source.
L'applicazione non contiene pubblicità ed è Open Source.
@@ -3,5 +3,3 @@
このアプリは元々はTermuxでのプログラミング用に設計されました。
しかし、今では普段の入力にも適しています。
PCキーボードでの半角入力を再現しています。日本語入力、変換は出来ません。
このアプリは広告を含まず、インターネットに接続せず、そしてオープンソースです。
@@ -2,5 +2,3 @@
이 앱은 처음에는 Termux를 사용하는 프로그래머들을 위한 것으로 개발되었습니다.
지금은 일상적인 용도로도 완벽합니다.
이 응용 프로그램에는 광고가 없으며 네트워크 요청을 하지 않고 오픈 소스입니다.
@@ -3,4 +3,4 @@ Galvenā tastatūras iespēja ir viegli ievadīt vairāk rakstzīmju ar pavilkš
Sākotnēji šī lietotne tika izstrādāta programmētājiem, kas izmanto Termux.
Tagad tā lieliski piemērota ikdienas lietošanai.
Lietotne nesatur reklāmas, neveic nekādus tīkla pieprasījumus, un tās pirmkods ir pieejams visiem.
Lietotne nesatur reklāmas, un tās pirmkods ir pieejams visiem.
@@ -1,6 +0,0 @@
အဓိကလုပ်‌‌ဆောင်မှုကတော့လျင်မြန်စွာစာလုံးရေများများရိုက်ရလွယ်ကူစေရန်ဖိဆွဲလိုက်ရုံဖြင့်အက္ခရာများကိုပြောင်းလဲရိုက်နိုင်ခြင်းပါပဲ။
ဒီအပ်ပလီကေးရှင်းရဲ့ကနဦးရည်ရွယ်ချက်ကတော့ ပရိုဂရမ်မာတွေ Termux မှာအသုံးပြုဖို့ဖန်တီးခဲ့ခြင်းဖြစ်ပါတယ်။
အခုတော့ Termux သာမကပဲနိစ္စဓူ၀ကိစ္စများအတွက်အသုံးပြုနိုင်ပါပြီ။
ဤအပ်ပလီကေးရှင်းတွင်မည်သည့်ကြော်ငြာ၊ အင်တာနက်ကွန်နက်ရှင်ချိတ်ဆက်မှုဆိုင်ရာများမပါ၀င်သလို Open source လည်းဖြစ်ပါတယ်။
@@ -1 +0,0 @@
Android အတွက် သေးငယ်ပေါ့ပါးပြီးကိုယ်ရေးကိုယ်တာလုံခြုံမှုဆိုင်ရာအထူးဦးစား‌ပေးထားသည့်ကီးဘုတ်ဆော့ဝဲ.
-1
View File
@@ -1 +0,0 @@
Unexpected Keyboard
@@ -3,4 +3,4 @@ De belangrijkste functie is dat je meer tekens kunt typen door de toetsen naar d
Deze applicatie is oorspronkelijk ontworpen voor programmeurs die Termux gebruiken.
Nu perfect voor dagelijks gebruik.
Deze applicatie bevat geen advertenties, doet geen netwerkverzoeken en is Open Source.
Deze applicatie bevat geen advertenties en is Open Source.
@@ -3,4 +3,4 @@ Główną cechą tej klawiatury jest możliwość wprowadzania więcej znaków p
Ta aplikacja została pierwotnie zaprojektowana z myślą o programistach używających Termuxa.
Obecnie nadaje się doskonale do codziennego użytku.
Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źródłowy jest dostępny publicznie.
Aplikacja nie zawiera reklam, a jej kod źródłowy jest dostępny publicznie.
@@ -3,4 +3,4 @@ A principal característica é que você pode digitar mais caracteres deslizando
O app foi criado originalmente para desenvolvedores que usam Termux.
Agora aperfeiçoado para o uso diário.
Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e é Open Source.
Este aplicativo não contém anúncios e é Open Source.
@@ -3,4 +3,4 @@ Funcționalitatea principală este accesul rapid la o mulțime de caractere ASCI
Această aplicație a fost concepută inițial pentru programatori care folosec Termux.
Este perfectă pentru uzul cotidian.
Această aplicație nu conține publicitate, nu folosește rețeaua deloc și e Open Source.
Această aplicație nu conține publicitate și e Open Source.
@@ -3,4 +3,4 @@
Приложение изначально было разработано для использования с Termux.
На данный момент оно также удобно в повседневном использовании.
Приложение не содержит рекламы, не осуществляет никаких запросов в сеть и имеет открытый исходный код.
Приложение не содержит рекламы и имеет открытый исходный код.
@@ -2,5 +2,3 @@
คีย์บอร์ดนี้ถูกออกแบบมาเพื่อนักเขียนโปรแกรมที่ใช้เทอร์มักซ์ (Termux)
แต่ตอนนี้เพอร์เฟ็กต์สำหรับคนทั่วไป
แอพนี้ไม่มีโฆษณา ไม่มีการเชื่อมต่อกับอินเทอร์เน็ตแล้วก็เป็นแอพโอเพ่นซอร์ส
@@ -1 +0,0 @@
supa nena ni li suli ala lon ilo, supa nena ni li sona e len, ni li lon ilo Android.
-1
View File
@@ -1 +0,0 @@
Unexpected Keyboard
@@ -3,4 +3,4 @@ Bu uygulama özünde tuşların kenarlarından kaydırarak daha fazla karakter y
Bu uygulama aslında Termux kullanıcıları için geliştirildi.
Artık gündelik kullanım için de uygun.
Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz.
Bu uygulama açık kaynaklıdır. Reklam içermez.
@@ -3,4 +3,4 @@
Ця програма спочатку була розроблена для програмістів, які використовують Termux.
Тепер ідеально підходить для щоденного використання.
Ця програма не містить реклами, не надсилає жодних мережевих запитів і має відкритий код.
Ця програма не містить реклами і має відкритий код.
@@ -3,4 +3,4 @@ Chức năng chính là dễ dàng gõ nhiều ký tự bằng cách kéo phím
Ứng dụng này ban đầu được thiết kế cho các lập trình viên dùng Termux.
Bây giờ đã hoàn hảo cho việc sử dụng hàng ngày.
Ứng dụng này không chứa quảng cáo, không cần đến mạng, và có mã nguồn mở.
Ứng dụng này không chứa quảng cáo, có mã nguồn mở.
@@ -2,5 +2,3 @@
此应用最初是为使用 Termux 的程序员而设计的。
现在对于日常使用来说也很完美。
此应用没有广告,不会发送任何网络请求,而且是开源的。
@@ -2,5 +2,3 @@
該軟體原先被設計給Termux使用者使用。
現在已完善並可日用。
該軟體無廣告,亦不會使用網路權限,並且開源。
+46 -11
View File
@@ -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"))
+3
View File
@@ -0,0 +1,3 @@
-keep public class juloo.cdict.* {
public protected private *;
}
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (تصحيح الأخطاء)</string>
<string name="short_description">لوحة مفاتيح افتراضية خفيفة الوزن ومراعية للخصوصية لنظام أندرويد.</string>
<string name="store_description">الميزة الرئيسة هي إمكانية كتابة المزيد من الأحرف عن طريق تمرير المفاتيح نحو الزوايا.\n\nصُمم هذا التطبيق في الأصل للمبرمجين الذين يستخدمون Termux.\nأصبح الآن مثاليًا للاستخدام اليومي.\n\nهذا التطبيق لا يحتوي على إعلانات، ولا يقوم بأي طلبات عبر الشبكة، وهو مفتوح المصدر.</string>
<string name="store_description">الميزة الرئيسة هي إمكانية كتابة المزيد من الأحرف عن طريق تمرير المفاتيح نحو الزوايا.\n\nصُمم هذا التطبيق في الأصل للمبرمجين الذين يستخدمون Termux.\nأصبح الآن مثاليًا للاستخدام اليومي.</string>
<string name="pref_portrait">في الوضع العمودي</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">في الوضع الأفقي</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (تصحيح الأخطاء)</string>
<string name="short_description">كيبورد افتراضي خفيف الوزن ويراعي الخصوصية لآندرويد.</string>
<string name="store_description">الميزة الرئيسية إنّه تقدر تكتب حروف أكثر عن طريق تمرير المفاتيح باتّجاه الزوايا\n\nهذا التطبيق أصلاً تسوّى علشان المبرمجين إلّي يستخدمون طرفية Termux.\nالآن صار تمام للاستخدام اليومي.\n\nهذا التطبيق ما فيه إعلانات، ما يقدّم أي طلبات على الشبكة ومفتوح المصدر.</string>
<string name="store_description">الميزة الرئيسية إنّه تقدر تكتب حروف أكثر عن طريق تمرير المفاتيح باتّجاه الزوايا\n\nهذا التطبيق أصلاً تسوّى علشان المبرمجين إلّي يستخدمون طرفية Termux.\nالآن صار تمام للاستخدام اليومي.</string>
<string name="pref_portrait">وضع لوحي</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">وضع أفقي</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (تصحيح الأخطاء)</string>
<string name="short_description">لوحة مفاتيح افتراضية خفيفة ومُراعية للخصوصية لنظام آندرويد.</string>
<string name="store_description">الميزة الرئيسة هي أنّه يمكنك كتابة المزيد من الأحرف عن طريق تمرير المفاتيح نحو الزوايا.\n\nهذا التطبيق كان مُصممًا للمُبرمجين الذين يستخدمون طرفية Termux.\nالآن صار مثاليًا للاستخدام اليومي.\n\nهذا التطبيق لا يحتوي على إعلانات، ولا يقوم بأيّ طلبات شبكة، وكما أنّه مفتوح المصدر.</string>
<string name="store_description">الميزة الرئيسة هي أنّه يمكنك كتابة المزيد من الأحرف عن طريق تمرير المفاتيح نحو الزوايا.\n\nهذا التطبيق كان مُصممًا للمُبرمجين الذين يستخدمون طرفية Termux.\nالآن صار مثاليًا للاستخدام اليومي.</string>
<string name="pref_portrait">في الوضع اللوحي</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">في الوضع الأفقي</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">অপ্রত্যাশিত কীবোর্ড</string>
<string name="app_name_debug">অপ্রত্যাশিত কিবোর্ড (ডিবাগ)</string>
<string name="short_description">অ্যান্ড্রোয়েডের জন্য হালকা এবং গোপনীয়তা-সচেতন ভার্চুয়াল কিবোর্ড।</string>
<string name="store_description">এর প্রধান বৈশিষ্ট্য হলো, কি-গুলোর কোণার দিকে সোয়াইপ করে আপনি আরও বেশি অক্ষর টাইপ করতে পারবেন।\n\nএই অ্যাপ্লিকেশনটি মূলত টার্মাক্স (Termux) ব্যবহারকারী প্রোগ্রামারদের জন্য ডিজাইন করা হয়েছিল।\nএখন এটি দৈনন্দিন ব্যবহারের জন্য উপযুক্ত।\n\nএই অ্যাপ্লিকেশনটিতে কোনো বিজ্ঞাপন নেই, এটি কোনো নেটওয়ার্ক রিকোয়েস্ট করে না এবং এটি ওপেন সোর্স।</string>
<string name="store_description">এর প্রধান বৈশিষ্ট্য হলো, কি-গুলোর কোণার দিকে সোয়াইপ করে আপনি আরও বেশি অক্ষর টাইপ করতে পারবেন।\n\nএই অ্যাপ্লিকেশনটি মূলত টার্মাক্স (Termux) ব্যবহারকারী প্রোগ্রামারদের জন্য ডিজাইন করা হয়েছিল।\nএখন এটি দৈনন্দিন ব্যবহারের জন্য উপযুক্ত।</string>
<string name="pref_portrait">পোর্ট্রেড বিন্যাসে</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">ল্যান্ডস্কেপ বিন্যাসে</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (depuració)</string>
<string name="short_description">Un teclat virtual lleuger per a Android que és conscient de la teva privacitat.</string>
<string name="store_description">La característica principal és que pots escriure més caràcters arrossegant les tecles cap a les cantonades.\n\nAquesta aplicació va ser dissenyada originalment per als programadors que usen Termux.\nAra és perfecta per a un ús quotidià.\n\nAquesta aplicació no conté anuncis, no fa cap petició de xarxa i és de codi obert.</string>
<string name="store_description">La característica principal és que pots escriure més caràcters arrossegant les tecles cap a les cantonades.\n\nAquesta aplicació va ser dissenyada originalment per als programadors que usen Termux.\nAra és perfecta per a un ús quotidià.\n\nAquesta aplicació no conté anuncis i és de codi obert.</string>
<string name="pref_portrait">En mode vertical</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">En mode apaïsat</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Klávesnice Unexpected</string>
<string name="app_name_debug">Klávesnice Unexpected (pro ladění)</string>
<string name="short_description">Nenáročná virtuální klávesnice pro vývojáře.</string>
<string name="store_description">Hlavní funkcí je možnost psát více znaků posunutím kláves směrem k rohům.\n\nTato aplikace byla původně navržena pro programátory používající Termux.\nNyní je ideální pro každodenní použití.\n\nTato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je Open Source.</string>
<string name="store_description">Hlavní funkcí je možnost psát více znaků posunutím kláves směrem k rohům.\n\nTato aplikace byla původně navržena pro programátory používající Termux.\nNyní je ideální pro každodenní použití.\n\nTato aplikace neobsahuje žádné reklamy a je Open Source.</string>
<string name="pref_portrait">V režimu na výšku</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">V režimu na šířku</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Eine schlanke, datenschutzfreundliche Bildschirmtastatur für Android.</string>
<string name="store_description">Diese Tastatur zeichnet sich dadurch aus, dass man zusätzliche Zeichen durch Wischgesten in Richtung der Tastenecken eingeben kann.\n\nDie Anwendung wurde ursprünglich für das Programmieren in Termux entwickelt.\nMittlerweile ist sie auch für den täglichen Gebrauch perfekt geeignet.\n\nDiese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quelloffen.</string>
<string name="store_description">Diese Tastatur zeichnet sich dadurch aus, dass man zusätzliche Zeichen durch Wischgesten in Richtung der Tastenecken eingeben kann.\n\nDie Anwendung wurde ursprünglich für das Programmieren in Termux entwickelt.\nMittlerweile ist sie auch für den täglichen Gebrauch perfekt geeignet.\n\nDiese App enthält keine Werbung und ist quelloffen.</string>
<string name="pref_portrait">Im Hochformatmodus</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">Im Querformatmodus</string>
+46 -2
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (debug)</string>
<string name="short_description">Un teclado virtual ligero para Android consciente de su privacidad.</string>
<string name="store_description">La característica principal es que hay acceso a más caractéres deslizando hacia las esquinas de las teclas.\n\nEsta aplicación fue originalmente diseñada para programadores que usaran Termux.\nAhora es perfecta para uso cotidiano.\n\nLa misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y es de Fuente Abierta.</string>
<string name="store_description">La característica principal es que hay acceso a más caractéres deslizando hacia las esquinas de las teclas.\n\nEsta aplicación fue originalmente diseñada para programadores que usaran Termux.\nAhora es perfecta para uso cotidiano.\n\nLa misma no contiene ningún anuncio/publicidad y es de Fuente Abierta.</string>
<string name="pref_portrait">En modo vertical</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">En modo horizontal</string>
@@ -78,7 +78,7 @@
<string name="pref_theme_e_monet">Monet (de sistema)</string>
<string name="pref_theme_e_monetlight">Monet (claro)</string>
<string name="pref_theme_e_monetdark">Monet (oscuro)</string>
<string name="pref_theme_e_rosepine">Rosé Pine</string>
<string name="pref_theme_e_rosepine">Pino rosado</string>
<!-- <string name="pref_theme_e_everforestlight">Everforest Light</string> -->
<!-- <string name="pref_theme_e_cobalt">Cobalt</string> -->
<!-- <string name="pref_theme_e_pine">Pine</string> -->
@@ -163,4 +163,48 @@
<!-- <string name="dictionaries_activity_not_enabled">You must first enable the keyboard to download dictionaries.</string> -->
<!-- <string name="candidates_status_no_dict">No dictionary installed</string> -->
<!-- <string name="candidates_status_install">Install</string> -->
<string name="pref_show_number_row_no_number_row">Sin fila de números</string>
<string name="pref_show_number_row_no_symbols">Fila de números sin símbolos</string>
<string name="pref_show_number_row_symbols">Fila de números con símbolos</string>
<string name="pref_category_suggestions">Sugerencias</string>
<string name="pref_suggestions_title">Sugerencias</string>
<string name="pref_suggestions_summary">Habilitar compleción de palablas y revisión de escritura</string>
<string name="pref_space_bar_auto_complete_title">Autocompletar con barra espaciadora</string>
<string name="pref_space_bar_auto_complete_summary">Ingresar la mejor sugerencia al presionar espacio</string>
<string name="pref_change_method_key_replacement_title">Cambio de métodos de entrada</string>
<string name="pref_change_method_key_replacement_e_picker">Mostrar selector de método de entrada (presión larga)</string>
<string name="pref_change_method_key_replacement_e_prev">Cambiar al último usado</string>
<string name="pref_change_method_key_replacement_e_next">Cambiar al siguiente en la lista</string>
<string name="pref_number_entry_title">Diseño al escribir números, fechas y números de teléfono</string>
<string name="pref_number_entry_layout_pin">Entrada de pin</string>
<string name="pref_number_entry_layout_number">Panel numérico</string>
<string name="pref_number_entry_layout_normal">Usar diseño principal</string>
<string name="pref_theme_e_everforestlight">Bosque eterno claro</string>
<string name="pref_theme_e_cobalt">Cobalto</string>
<string name="pref_theme_e_pine">Pino</string>
<string name="pref_theme_e_epaperblack">Tinta electrónica negro</string>
<string name="pref_slider_sensitivity_title">Sensibilidad del deslizamiento de la barra espaciadora</string>
<string name="pref_slider_sensitivity_slow">Lento</string>
<string name="pref_slider_sensitivity_medium">Moderado</string>
<string name="pref_slider_sensitivity_fast">Rápido</string>
<string name="launcher_button_dictionaries">Instalar diccionarios</string>
<string name="key_descr_delete_word">Borrar una palabra</string>
<string name="key_descr_forward_delete_word">Borrar una palabra a la derecha</string>
<string name="key_descr_gesture">Gesto</string>
<string name="toast_no_voice_input">No hay ninguna aplicación de escritura por voz instalada</string>
<string name="pref_category_clipboard">Portapapeles</string>
<string name="pref_clipboard_history_duration">Duración de la memoria del portapapeles</string>
<string name="pref_clipboard_history_duration_1">A lo sumo 1 minuto</string>
<string name="pref_clipboard_history_duration_5">A lo sumo 5 minutos</string>
<string name="pref_clipboard_history_duration_30">A lo sumo 30 minutos</string>
<string name="pref_clipboard_history_duration_stop">Hasta que la aplicación se detenga</string>
<string name="pref_dialog_edit_text">Definición personalizada</string>
<string name="dictionaries_from_internet">Descargar un diccionario de internet</string>
<string name="dictionaries_download_success">Diccionario instalado</string>
<string name="dictionaries_download_failed">Falló la descarga</string>
<string name="dictionaries_activity_not_enabled">Primero tienes que habilitar al teclado para descargar diccionarios.</string>
<string name="candidates_status_no_dict">No hay diccionarios instalados</string>
<string name="candidates_status_install">Instalar</string>
<string name="pref_portrait_unfolded">En modo vertical desplegado</string>
<string name="pref_landscape_unfolded">En modo horizontal desplegado</string>
</resources>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="pref_show_numpad_title">Näita numbriklahvistikku</string>
<string name="pref_show_numpad_never">Mitte kunagi</string>
<string name="pref_show_numpad_landscape">Vaid rõhtvaates</string>
<string name="pref_show_numpad_always">Alati</string>
<string name="pref_number_row_title">Näita numbrite rida</string>
<string name="pref_numpad_layout">Numbriklahvistiku paigutus</string>
</resources>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">صفحه‌کلید غیرمنتظره</string>
<string name="app_name_debug">صفحه‌کلید غیرمنتظره (دیباگ كردن)</string>
<string name="short_description">صفحه‌کلید مجازی سبک و با حفظ حریم خصوصی برای اندروید.</string>
<string name="store_description">ویژگی اصلی این است که می‌توانید با کشیدن کلیدها به سمت گوشه‌ها، نویسه های (کاراکترهای) بیشتری تایپ کنید.\n\nاین برنامه در ابتدا برای برنامه‌نویسانی که از Termux استفاده می‌کنند طراحی شده بود.\n\nاکنون برای استفاده روزمره عالی است.\nاین برنامه هیچ تبلیغاتی ندارد، هیچ درخواست شبکه‌ای انجام نمی‌دهد و متن‌باز است.</string>
<string name="store_description">ویژگی اصلی این است که می‌توانید با کشیدن کلیدها به سمت گوشه‌ها، نویسه های (کاراکترهای) بیشتری تایپ کنید.\n\nاین برنامه در ابتدا برای برنامه‌نویسانی که از Termux استفاده می‌کنند طراحی شده بود.\n\nاکنون برای استفاده روزمره عالی است.</string>
<string name="pref_portrait">در حالت عمودی</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">در حالت افقی</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<!-- <string name="app_name_release">Unexpected Keyboard</string> -->
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
<!-- <string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Magaan at privacy-conscious na virtual keyboard sa Android.</string>
<string name="store_description">Ang pangunahing feature ay maaari kang mag-type ng mas marami pang karakter sa pag-swipe sa gilid ng mga key.\n\nNoong simula, ginawa itong application para sa mga programmer sa na nagte-Termux.\nNgayo\'y perpekto na sa pang-araw-araw.\n\nWalang ads, hindi nagne-network request at Open Source ang application na ito.</string>
<string name="store_description">Ang pangunahing feature ay maaari kang mag-type ng mas marami pang karakter sa pag-swipe sa gilid ng mga key.\n\nNoong simula, ginawa itong application para sa mga programmer sa na nagte-Termux.\nNgayo\'y perpekto na sa pang-araw-araw.\n\nWalang ads at Open Source ang application na ito.</string>
<string name="pref_portrait">Nakapatayo</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">Nakapahiga</string>
+24 -2
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (debug)</string>
<string name="short_description">Clavier virtuel léger et respectueux de la vie privée pour Android.</string>
<string name="store_description">La fonctionnalité principale est l\'accès rapide à plus de caractères en balayant les touches vers les coins.\n\nCette application a été conçue à l\'origine pour les programmeurs utilisant Termux.\nElle est maintenant parfaite pour une utilisation quotidienne.\n\nCette application ne contient pas de publicité, n\'accède pas au réseau et est Open Source.</string>
<string name="store_description">La fonctionnalité principale est l\'accès rapide à plus de caractères en balayant les touches vers les coins.\n\nCette application a été conçue à l\'origine pour les programmeurs utilisant Termux.\nElle est maintenant parfaite pour une utilisation quotidienne.\n\nCette application ne contient pas de publicité et est Open Source.</string>
<string name="pref_portrait">En mode portrait</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">En mode paysage</string>
@@ -26,7 +26,7 @@
<string name="pref_show_numpad_never">Jamais</string>
<string name="pref_show_numpad_landscape">Seulement en mode paysage</string>
<string name="pref_show_numpad_always">Toujours</string>
<string name="pref_number_row_title">Montrer la rangée de nombres</string>
<string name="pref_number_row_title">Montrer la rangée de chiffres</string>
<string name="pref_numpad_layout">Disposition du pavé numérique</string>
<string name="pref_numpad_layout_e_high_first">Du plus haut au plus bas</string>
<string name="pref_numpad_layout_e_low_first">Du plus bas au plus haut</string>
@@ -163,4 +163,26 @@
<!-- <string name="dictionaries_activity_not_enabled">You must first enable the keyboard to download dictionaries.</string> -->
<!-- <string name="candidates_status_no_dict">No dictionary installed</string> -->
<!-- <string name="candidates_status_install">Install</string> -->
<string name="pref_portrait_unfolded">En mode portrait déplié</string>
<string name="pref_landscape_unfolded">En mode paysage déplié</string>
<string name="pref_show_number_row_no_number_row">Aucune rangée de chiffres</string>
<string name="pref_show_number_row_no_symbols">Rangée de chiffres sans symboles</string>
<string name="pref_show_number_row_symbols">Rangée de chiffres avec symboles</string>
<string name="pref_category_suggestions">Suggestions</string>
<string name="pref_suggestions_title">Suggestions</string>
<string name="pref_suggestions_summary">Activer la suggestion de mots correction orthographique</string>
<string name="pref_space_bar_auto_complete_title">Correction automatique avec la barre d\'espace</string>
<string name="pref_space_bar_auto_complete_summary">Entrer la meilleure suggestion en appuyant sur espace</string>
<string name="pref_change_method_key_replacement_title">Changer de méthode de saisie</string>
<string name="pref_change_method_key_replacement_e_picker">Afficher le sélecteur de méthode de saisie (appui long)</string>
<string name="pref_change_method_key_replacement_e_prev">Changer vers le dernier utilisé</string>
<string name="pref_change_method_key_replacement_e_next">Changer vers le suivant dans la liste</string>
<string name="pref_number_entry_title">Disposition pour écrire des nombres, des dates et des numéros de téléphone</string>
<string name="pref_number_entry_layout_pin">Code PIN</string>
<string name="pref_number_entry_layout_number">Panneau des chiffres</string>
<string name="pref_number_entry_layout_normal">Utiliser la disposition principale</string>
<string name="pref_theme_e_everforestlight">Everforest Light</string>
<string name="pref_theme_e_cobalt">Cobalt</string>
<string name="pref_theme_e_pine">Pine</string>
<string name="pref_theme_e_epaperblack">ePaper Noir</string>
</resources>
+1 -1
View File
@@ -3,7 +3,7 @@
<!-- <string name="app_name_release">Unexpected Keyboard</string> -->
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
<!-- <string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Keyboard virtual yang ringan dan sadar privasi untuk Android.</string>
<string name="store_description">Fitur utamanya adalah Anda dapat mengetik lebih banyak karakter dengan menggeser tombol ke arah sudut.\n\nAplikasi ini awalnya dirancang untuk programmer yang menggunakan Termux.\nSekarang sempurna untuk penggunaan sehari-hari.\n\nAplikasi ini tidak berisi iklan, tidak membuat permintaan jaringan dan Open Source.</string>
<string name="store_description">Fitur utamanya adalah Anda dapat mengetik lebih banyak karakter dengan menggeser tombol ke arah sudut.\n\nAplikasi ini awalnya dirancang untuk programmer yang menggunakan Termux.\nSekarang sempurna untuk penggunaan sehari-hari.\n\nAplikasi ini tidak berisi iklan dan Open Source.</string>
<string name="pref_portrait">Dalam mode potret</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">Dalam mode lansekap</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Una tastiera virtuale leggera ed attenta alla privacy per Android.</string>
<string name="store_description">La caratteristica principale è quella di poter digitare altri caratteri scorrendo verso i bordi dei tasti.\n\nL\'applicazione era originariamente pensata per l\'utilizzo di Termux da parte di programmatori.\nOra è perfetta anche per l\'uso quotidiano.\n\nL\'applicazione non contiene pubblicità, non esegue alcuna richiesta di rete ed è Open Source.</string>
<string name="store_description">La caratteristica principale è quella di poter digitare altri caratteri scorrendo verso i bordi dei tasti.\n\nL\'applicazione era originariamente pensata per l\'utilizzo di Termux da parte di programmatori.\nOra è perfetta anche per l\'uso quotidiano.\n\nL\'applicazione non contiene pubblicità ed è Open Source.</string>
<string name="pref_portrait">In modalità verticale</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">In modalità orizzontale</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">軽量でプライバシーに配慮したAndroid用仮想キーボード</string>
<string name="store_description">このキーボードは、キーの角をスワイプすることで様々なキーを入力できます。\n\nこのアプリは元々はTermuxでのプログラミング用に設計されました。\nしかし、今では普段の入力にも適しています。\nPCキーボードでの半角入力を再現しています。日本語入力、変換は出来ません。\n\nこのアプリは広告を含まず、インターネットに接続せず、そしてオープンソースです。</string>
<string name="store_description">このキーボードは、キーの角をスワイプすることで様々なキーを入力できます。\n\nこのアプリは元々はTermuxでのプログラミング用に設計されました。\nしかし、今では普段の入力にも適しています。\nPCキーボードでの半角入力を再現しています。日本語入力、変換は出来ません。</string>
<string name="pref_portrait">縦向き</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">横向き</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (디버그)</string>
<string name="short_description">개발자들을 위한 가벼운 가상 키보드.</string>
<string name="store_description">주요 기능은 모서리 방향으로 키를 스와이프하여 더 많은 문자를 입력할 수 있다는 것입니다.\n\n이 앱은 처음에는 Termux를 사용하는 프로그래머들을 위한 것으로 개발되었습니다.\n지금은 일상적인 용도로도 완벽합니다.\n\n이 응용 프로그램에는 광고가 없으며 네트워크 요청을 하지 않고 오픈 소스입니다.</string>
<string name="store_description">주요 기능은 모서리 방향으로 키를 스와이프하여 더 많은 문자를 입력할 수 있다는 것입니다.\n\n이 앱은 처음에는 Termux를 사용하는 프로그래머들을 위한 것으로 개발되었습니다.\n지금은 일상적인 용도로도 완벽합니다.</string>
<string name="pref_portrait">세로 화면</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">가로 화면</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (atkļūdošana)</string>
<string name="short_description">Mazizmēra virtuālā Android tastatūra, kurai rūp privātums.</string>
<string name="store_description">Galvenā tastatūras iespēja ir viegli ievadīt vairāk rakstzīmju ar pavilkšanu uz taustiņu stūriem.\n\nSākotnēji šī lietotne tika izstrādāta programmētājiem, kas izmanto Termux.\nTagad tā lieliski piemērota ikdienas lietošanai.\n\nLietotne nesatur reklāmas, neveic nekādus tīkla pieprasījumus, un tās pirmkods ir pieejams visiem.</string>
<string name="store_description">Galvenā tastatūras iespēja ir viegli ievadīt vairāk rakstzīmju ar pavilkšanu uz taustiņu stūriem.\n\nSākotnēji šī lietotne tika izstrādāta programmētājiem, kas izmanto Termux.\nTagad tā lieliski piemērota ikdienas lietošanai.\n\nLietotne nesatur reklāmas, un tās pirmkods ir pieejams visiem.</string>
<string name="pref_portrait">Stateniskajā novietojumā</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">Guleniskajā novietojumā</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<!-- <string name="app_name_release">Unexpected Keyboard</string> -->
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
<!-- <string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
+1 -1
View File
@@ -3,7 +3,7 @@
<!-- <string name="app_name_release">Unexpected Keyboard</string> -->
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
<!-- <string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Android အတွက် သေးငယ်ပေါ့ပါးပြီးကိုယ်ရေးကိုယ်တာလုံခြုံမှုဆိုင်ရာအထူးဦးစား‌ပေးထားသည့်ကီးဘုတ်ဆော့ဝဲ.</string>
<string name="store_description">အဓိကလုပ်‌‌ဆောင်မှုကတော့လျင်မြန်စွာစာလုံးရေများများရိုက်ရလွယ်ကူစေရန်ဖိဆွဲလိုက်ရုံဖြင့်အက္ခရာများကိုပြောင်းလဲရိုက်နိုင်ခြင်းပါပဲ။\n\nဒီအပ်ပလီကေးရှင်းရဲ့ကနဦးရည်ရွယ်ချက်ကတော့ ပရိုဂရမ်မာတွေ Termux မှာအသုံးပြုဖို့ဖန်တီးခဲ့ခြင်းဖြစ်ပါတယ်။\nအခုတော့ Termux သာမကပဲနိစ္စဓူ၀ကိစ္စများအတွက်အသုံးပြုနိုင်ပါပြီ။\n\nဤအပ်ပလီကေးရှင်းတွင်မည်သည့်ကြော်ငြာ၊ အင်တာနက်ကွန်နက်ရှင်ချိတ်ဆက်မှုဆိုင်ရာများမပါ၀င်သလို Open source လည်းဖြစ်ပါတယ်။</string>
<string name="store_description">အဓိကလုပ်‌‌ဆောင်မှုကတော့လျင်မြန်စွာစာလုံးရေများများရိုက်ရလွယ်ကူစေရန်ဖိဆွဲလိုက်ရုံဖြင့်အက္ခရာများကိုပြောင်းလဲရိုက်နိုင်ခြင်းပါပဲ။\n\nဒီအပ်ပလီကေးရှင်းရဲ့ကနဦးရည်ရွယ်ချက်ကတော့ ပရိုဂရမ်မာတွေ Termux မှာအသုံးပြုဖို့ဖန်တီးခဲ့ခြင်းဖြစ်ပါတယ်။\nအခုတော့ Termux သာမကပဲနိစ္စဓူ၀ကိစ္စများအတွက်အသုံးပြုနိုင်ပါပြီ။</string>
<string name="pref_portrait">ဒေါင်လိုက်ပုံစံတွင်</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">အလျားလိုက်ပုံစံတွင်</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Lichtgewicht en privacy-bewust virtueel toetsenbord voor Android.</string>
<string name="store_description">De belangrijkste functie is dat je meer tekens kunt typen door de toetsen naar de hoeken te vegen.\n\nDeze applicatie is oorspronkelijk ontworpen voor programmeurs die Termux gebruiken.\nNu perfect voor dagelijks gebruik.\n\nDeze applicatie bevat geen advertenties, doet geen netwerkverzoeken en is Open Source.</string>
<string name="store_description">De belangrijkste functie is dat je meer tekens kunt typen door de toetsen naar de hoeken te vegen.\n\nDeze applicatie is oorspronkelijk ontworpen voor programmeurs die Termux gebruiken.\nNu perfect voor dagelijks gebruik.\n\nDeze applicatie bevat geen advertenties en is Open Source.</string>
<string name="pref_portrait">In staande stand</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">In liggende stand</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (debug)</string>
<string name="short_description">Lekka i dbająca o prywatność klawiatura wirtualna dla Androida.</string>
<string name="store_description">Główną cechą tej klawiatury jest możliwość wprowadzania więcej znaków poprzez przesuwanie po klawiszach do ich rogów.\n\nTa aplikacja została pierwotnie zaprojektowana z myślą o programistach używających Termuxa.\nObecnie nadaje się doskonale do codziennego użytku.\n\nAplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źródłowy jest dostępny publicznie.</string>
<string name="store_description">Główną cechą tej klawiatury jest możliwość wprowadzania więcej znaków poprzez przesuwanie po klawiszach do ich rogów.\n\nTa aplikacja została pierwotnie zaprojektowana z myślą o programistach używających Termuxa.\nObecnie nadaje się doskonale do codziennego użytku.\n\nAplikacja nie zawiera reklam, a jej kod źródłowy jest dostępny publicznie.</string>
<string name="pref_portrait">W widoku pionowym</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">W widoku poziomym</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Teclado Unexpected</string>
<string name="app_name_debug">Teclado Unexpected (Depuração)</string>
<string name="short_description">Um teclado virtual leve para desenvolvedores.</string>
<string name="store_description">A principal característica é que você pode digitar mais caracteres deslizando as teclas para os cantos.\n\nO app foi criado originalmente para desenvolvedores que usam Termux.\nAgora aperfeiçoado para o uso diário.\n\nEste aplicativo não contém anúncios, não faz nenhuma solicitação de rede e é Open Source.</string>
<string name="store_description">A principal característica é que você pode digitar mais caracteres deslizando as teclas para os cantos.\n\nO app foi criado originalmente para desenvolvedores que usam Termux.\nAgora aperfeiçoado para o uso diário.\n\nEste aplicativo não contém anúncios e é Open Source.</string>
<string name="pref_portrait">No modo retrato</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">No modo paisagem</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Tastatură Unexpected (depanare)</string>
<string name="short_description">Tastatură virtuală pentru Android, ușoară și respectuoasă cu viața privată.</string>
<string name="store_description">Funcționalitatea principală este accesul rapid la o mulțime de caractere ASCII prin glisarea către colțurile tastelor.\n\nAceastă aplicație a fost concepută inițial pentru programatori care folosec Termux.\nEste perfectă pentru uzul cotidian.\n\nAceastă aplicație nu conține publicitate, nu folosește rețeaua deloc și e Open Source.</string>
<string name="store_description">Funcționalitatea principală este accesul rapid la o mulțime de caractere ASCII prin glisarea către colțurile tastelor.\n\nAceastă aplicație a fost concepută inițial pentru programatori care folosec Termux.\nEste perfectă pentru uzul cotidian.\n\nAceastă aplicație nu conține publicitate și e Open Source.</string>
<string name="pref_portrait">În mod portret</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">În mod panoramă</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (отладка)</string>
<string name="short_description">Легкая клавиатура для пользователей, заботящихся о конфиденциальности.</string>
<string name="store_description">Главная особенность клавиатуры — это возможность легко напечатать любой ASCII-символ жестами в углы клавиш.\n\nПриложение изначально было разработано для использования с Termux.\nНа данный момент оно также удобно в повседневном использовании.\n\nПриложение не содержит рекламы, не осуществляет никаких запросов в сеть и имеет открытый исходный код.</string>
<string name="store_description">Главная особенность клавиатуры — это возможность легко напечатать любой ASCII-символ жестами в углы клавиш.\n\nПриложение изначально было разработано для использования с Termux.\nНа данный момент оно также удобно в повседневном использовании.\n\nПриложение не содержит рекламы и имеет открытый исходный код.</string>
<string name="pref_portrait">В портретном режиме</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">В ландшафтном режиме</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<!-- <string name="app_name_release">Unexpected Keyboard</string> -->
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
<!-- <string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (ดีบัก)</string>
<string name="short_description">คีย์บอร์ดสำหรับแอนดรอยด์ที่กินทรัพยากรน้อยและโฟกัสที่ความเป็นส่วนตัว</string>
<string name="store_description">คีย์บอร์ดนี้สามารถเขียนตัวอักษรได้หลายตัวมากขึ้นโดยใช้การปัดคีย์ไปที่มุมต่างๆ\n\nคีย์บอร์ดนี้ถูกออกแบบมาเพื่อนักเขียนโปรแกรมที่ใช้เทอร์มักซ์ (Termux) \nแต่ตอนนี้เพอร์เฟ็กต์สำหรับคนทั่วไป\n\nแอพนี้ไม่มีโฆษณา ไม่มีการเชื่อมต่อกับอินเทอร์เน็ตแล้วก็เป็นแอพโอเพ่นซอร์ส</string>
<string name="store_description">คีย์บอร์ดนี้สามารถเขียนตัวอักษรได้หลายตัวมากขึ้นโดยใช้การปัดคีย์ไปที่มุมต่างๆ\n\nคีย์บอร์ดนี้ถูกออกแบบมาเพื่อนักเขียนโปรแกรมที่ใช้เทอร์มักซ์ (Termux) \nแต่ตอนนี้เพอร์เฟ็กต์สำหรับคนทั่วไป</string>
<string name="pref_portrait">ในแนวตั้ง</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">ในแนวนอน</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">nItlh \'echlet jum</string>
<string name="app_name_debug">nItlh \'echlet jum (Qagh SamwI\')</string>
<!-- <string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (o weka!!, akesi ilo nanpa!! )</string>
<string name="short_description">supa nena ni li suli ala lon ilo, supa nena ni li sona e len, ni li lon ilo Android.</string>
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string> -->
<!-- <string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string> -->
<string name="pref_portrait">lon nasin awen</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">lon nasin lape</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (debug)</string>
<string name="short_description">Android için hafif ve güvenlik odaklı bir sanal klavye uygulaması.</string>
<string name="store_description">Bu uygulama özünde tuşların kenarlarından kaydırarak daha fazla karakter yazabilmek amacıyla geliştirildi.\n\nBu uygulama aslında Termux kullanıcıları için geliştirildi.\nArtık gündelik kullanım için de uygun.\n\nBu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz.</string>
<string name="store_description">Bu uygulama özünde tuşların kenarlarından kaydırarak daha fazla karakter yazabilmek amacıyla geliştirildi.\n\nBu uygulama aslında Termux kullanıcıları için geliştirildi.\nArtık gündelik kullanım için de uygun.\n\nBu uygulama açık kaynaklıdır. Reklam içermez.</string>
<string name="pref_portrait">Portre modunda</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">Manzara modunda</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Налагодження)</string>
<string name="short_description">Легка та конфіденційна віртуальна клавіатура для Android.</string>
<string name="store_description">Головна особливість полягає в тому, що ви можете вводити більше символів, проводячи клавіші до кутів.\n\nЦя програма спочатку була розроблена для програмістів, які використовують Termux.\nТепер ідеально підходить для щоденного використання.\n\nЦя програма не містить реклами, не надсилає жодних мережевих запитів і має відкритий код.</string>
<string name="store_description">Головна особливість полягає в тому, що ви можете вводити більше символів, проводячи клавіші до кутів.\n\nЦя програма спочатку була розроблена для програмістів, які використовують Termux.\nТепер ідеально підходить для щоденного використання.\n\nЦя програма не містить реклами і має відкритий код.</string>
<string name="pref_portrait">У портретному режимі</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">У альбомному режимі</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (gỡ lỗi)</string>
<string name="short_description">Bàn phím ảo gọn nhẹ và tôn trọng quyền riêng tư cho Android.</string>
<string name="store_description">Chức năng chính là dễ dàng gõ nhiều ký tự bằng cách kéo phím về góc của nó.\n\nỨng dụng này ban đầu được thiết kế cho các lập trình viên dùng Termux.\nBây giờ đã hoàn hảo cho việc sử dụng hàng ngày.\n\nỨng dụng này không chứa quảng cáo, không cần đến mạng, và có mã nguồn mở.</string>
<string name="store_description">Chức năng chính là dễ dàng gõ nhiều ký tự bằng cách kéo phím về góc của nó.\n\nỨng dụng này ban đầu được thiết kế cho các lập trình viên dùng Termux.\nBây giờ đã hoàn hảo cho việc sử dụng hàng ngày.\n\nỨng dụng này không chứa quảng cáo, có mã nguồn mở.</string>
<string name="pref_portrait">Trong chế độ chân dung</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">Trong chế độ phong cảnh</string>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (debug)</string>
<string name="short_description">适用于 Android 的轻量级、注重隐私的虚拟键盘。</string>
<string name="store_description">此应用的主要功能是,通过将按键沿四角滑动,您可以输入更多字符。\n\n此应用最初是为使用 Termux 的程序员而设计的。\n现在对于日常使用来说也很完美。\n\n此应用没有广告,不会发送任何网络请求,而且是开源的。</string>
<string name="store_description">此应用的主要功能是,通过将按键沿四角滑动,您可以输入更多字符。\n\n此应用最初是为使用 Termux 的程序员而设计的。\n现在对于日常使用来说也很完美。</string>
<string name="pref_portrait">在竖屏模式下</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">在横屏模式下</string>
+48 -4
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">為Android打造的輕量、注重隱私的虛擬鍵盤。</string>
<string name="store_description">你能透過往按鍵角落滑動來輸入更多字元。\n\n該軟體原先被設計給Termux使用者使用。\n現在已完善並可日用。\n\n該軟體無廣告,亦不會使用網路權限,並且開源。</string>
<string name="store_description">你能透過往按鍵角落滑動來輸入更多字元。\n\n該軟體原先被設計給Termux使用者使用。\n現在已完善並可日用。</string>
<string name="pref_portrait">直向螢幕模式</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_landscape">橫向螢幕模式</string>
@@ -28,8 +28,8 @@
<string name="pref_show_numpad_always">總是</string>
<string name="pref_number_row_title">顯示數字列</string>
<string name="pref_numpad_layout">數字小鍵盤佈局</string>
<string name="pref_numpad_layout_e_high_first">高精度數字優先</string>
<string name="pref_numpad_layout_e_low_first">低精度數字優先</string>
<string name="pref_numpad_layout_e_high_first">大數字優先</string>
<string name="pref_numpad_layout_e_low_first">小數字優先</string>
<string name="pref_extra_keys_title">往鍵盤上新增按鍵</string>
<string name="pref_extra_keys_custom">新增自訂按鍵</string>
<string name="pref_extra_keys_internal">選取要新增至鍵盤的按鍵</string>
@@ -112,7 +112,7 @@
<string name="launcher_button_imepicker">選擇鍵盤</string>
<!-- <string name="launcher_button_dictionaries">Install dictionaries</string> -->
<string name="launcher_description">此應用程式是一個虛擬鍵盤。透過下面的按鈕前往系統設定啟用Unexpected-Keyboard。</string>
<string name="launcher_sourcecode">這是一個免費伽開源的應用程式。你可以在GitHub上找到原始碼,或是回報錯誤。</string>
<string name="launcher_sourcecode">這是一個免費且開源的應用程式。你可以在GitHub上找到原始碼,或是回報錯誤。</string>
<string name="launcher_tryhere">啟用鍵盤後,你可以在這裡測試鍵盤:</string>
<string name="launcher_tryhere_hint">試試看</string>
<string name="key_descr_capslock">大寫鎖定</string>
@@ -163,4 +163,48 @@
<!-- <string name="dictionaries_activity_not_enabled">You must first enable the keyboard to download dictionaries.</string> -->
<!-- <string name="candidates_status_no_dict">No dictionary installed</string> -->
<!-- <string name="candidates_status_install">Install</string> -->
<string name="pref_portrait_unfolded">直向螢幕模式展開</string>
<string name="pref_landscape_unfolded">橫向螢幕模式展開</string>
<string name="pref_show_number_row_no_number_row">無數字列</string>
<string name="pref_show_number_row_no_symbols">數字列(無符號)</string>
<string name="pref_show_number_row_symbols">數字列</string>
<string name="pref_category_suggestions">建議</string>
<string name="pref_suggestions_title">建議</string>
<string name="pref_suggestions_summary">啟用自動選字與拼字檢查</string>
<string name="pref_space_bar_auto_complete_title">以空白鍵自動選字</string>
<string name="pref_space_bar_auto_complete_summary">以空白鍵填入最好的建議字詞</string>
<string name="pref_change_method_key_replacement_title">在輸入法間切換</string>
<string name="pref_change_method_key_replacement_e_picker">顯示輸入法切換器(長按)</string>
<string name="pref_change_method_key_replacement_e_prev">切換到上一個使用的</string>
<string name="pref_change_method_key_replacement_e_next">切換到列表中的下一個</string>
<string name="pref_number_entry_title">於輸入數字、日期與電話號碼時的佈局</string>
<string name="pref_number_entry_layout_pin">純數字</string>
<string name="pref_number_entry_layout_number">數字鍵盤</string>
<string name="pref_number_entry_layout_normal">原佈局</string>
<string name="pref_theme_e_everforestlight">永恆森林(淺色)</string>
<string name="pref_theme_e_cobalt">鈷藍</string>
<string name="pref_theme_e_pine">松</string>
<string name="pref_theme_e_epaperblack">電子紙(黑)</string>
<string name="pref_slider_sensitivity_title">空白鍵滑動靈敏度</string>
<string name="pref_slider_sensitivity_slow">低</string>
<string name="pref_slider_sensitivity_medium">中</string>
<string name="pref_slider_sensitivity_fast">高</string>
<string name="launcher_button_dictionaries">下載字典</string>
<string name="key_descr_delete_word">刪除游標左方的詞</string>
<string name="key_descr_forward_delete_word">刪除游標右方的詞</string>
<string name="key_descr_gesture">組合鍵</string>
<string name="toast_no_voice_input">無已安裝的語音輸入程式</string>
<string name="pref_category_clipboard">剪貼簿</string>
<string name="pref_clipboard_history_duration">剪貼簿記憶長度</string>
<string name="pref_clipboard_history_duration_1">最多一分鐘</string>
<string name="pref_clipboard_history_duration_5">最多五分鐘</string>
<string name="pref_clipboard_history_duration_30">最多半小時</string>
<string name="pref_clipboard_history_duration_stop">直到程式停止</string>
<string name="pref_dialog_edit_text">自定義</string>
<string name="dictionaries_from_internet">從網路下載字典</string>
<string name="dictionaries_download_success">字典已安裝</string>
<string name="dictionaries_download_failed">下載失敗</string>
<string name="dictionaries_activity_not_enabled">需要啟用鍵盤才能下載字典。</string>
<string name="candidates_status_no_dict">無已安裝的字典</string>
<string name="candidates_status_install">安裝</string>
</resources>
+57 -57
View File
@@ -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>
+1 -1
View File
@@ -3,7 +3,7 @@
<string name="app_name_release">Unexpected Keyboard</string>
<string name="app_name_debug">Unexpected Keyboard (Debug)</string>
<string name="short_description">Lightweight and privacy-conscious virtual keyboard for Android.</string>
<string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads, doesn\'t make any network requests and is Open Source.</string>
<string name="store_description">The main feature is that you can type more characters by swiping the keys towards the corners.\n\nThis application was originally designed for programmers using Termux.\nNow perfect for everyday use.\n\nThis application contains no ads and is Open Source.</string>
<string name="pref_portrait">In portrait mode</string>
<string name="pref_portrait_unfolded">In portrait mode unfolded</string>
<string name="pref_landscape">In landscape mode</string>
+17 -5
View File
@@ -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=₦|ẹ|ọ|ṣ" />
+3 -1
View File
@@ -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)
+2
View File
@@ -175,6 +175,8 @@ public class Keyboard2 extends InputMethodService
{
_config.current_dictionary = null;
_config.emoji_dictionary = null;
if (_device_locales.default_ == null)
return;
String current = _device_locales.default_.dictionary;
if (current == null)
return;
+1 -3
View File
@@ -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
+23 -23
View File
@@ -2,41 +2,41 @@
<keyboard name="ЙЦУКЕН (Русский)" script="cyrillic">
<row>
<key key0="й" key2="1" key4="loc esc"/>
<key key0="ц" key1="loc ї" key2="2" key3="№"/>
<key key0="у" key1="loc ў" key2="3" key3="-"/>
<key key0="к" key2="4" key3="/"/>
<key key0="е" key1="ё" key2="5" key3="&quot;"/>
<key key0="н" key1="loc є" key2="6" key3=":"/>
<key key0="г" key1="loc ґ" key2="7" key3=","/>
<key key0="ш" key2="8" key3="."/>
<key key0="щ" key2="9" key3="_"/>
<key key0="з" key2="0" key3="\?"/>
<key key0="х" key3="%"/>
<key key0="ц" key1="loc ї" key2="2" key3="\@" key4="~"/>
<key key0="у" key1="loc ў" key2="3" key3="\#" key4="!"/>
<key key0="к" key2="4" key3="$"/>
<key key0="е" key1="ё" key2="5" key3="%"/>
<key key0="н" key1="loc є" key2="6" key3="^"/>
<key key0="г" key1="loc ґ" key2="7" key3="&amp;"/>
<key key0="ш" key2="8" key3="*"/>
<key key0="щ" key2="9" key3="(" key4=")"/>
<key key0="з" key2="0" key3="{" key4="}"/>
<key key0="х" key3="[" key4="]"/>
</row>
<row>
<key key0="ф" key1="loc tab" key2="+" key3="|"/>
<key key0="ф" key1="loc tab" key2="`"/>
<key key0="ы"/>
<key key0="в"/>
<key key0="а"/>
<key key0="п"/>
<key key0="р"/>
<key key0="о"/>
<key key0="л" key4="₽"/>
<key key0="д" key2="=" key3="!"/>
<key key0="ж" key2="\\" key3=";"/>
<key key0="э" key2=")" key3="("/>
<key key0="л" key1="₽"/>
<key key0="д" key2="-" key3="_"/>
<key key0="ж" key2="=" key3="+"/>
<key key0="э" key2="|" key3="\\"/>
</row>
<row>
<key key0="shift" key2="loc capslock"/>
<row scale="11">
<key width="1.22" key0="shift" key2="loc capslock"/>
<key key0="я"/>
<key key0="ч"/>
<key key0="с"/>
<key key0="м"/>
<key key0="и" key1="loc і"/>
<key key0="т"/>
<key key0="ь" key1="ъ"/>
<key key0="б" key2="«"/>
<key key0="ю" key2="»"/>
<key key0="backspace" key2="delete"/>
<key key0="и" key1="loc і" key2="&lt;" key3="."/>
<key key0="т" key2="&gt;" key3=","/>
<key key0="ь" key1="ъ" key2="\?" key3="/"/>
<key key0="б" key2=":" key3=";"/>
<key key0="ю" key2="&quot;" key3="'"/>
<key width="1.22" key0="backspace" key2="delete"/>
</row>
</keyboard>
+12 -7
View File
@@ -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]