mirror of
https://github.com/Julow/Unexpected-Keyboard.git
synced 2025-08-18 20:55:14 +02:00
Compare commits
208 Commits
clipboard
...
selection-
Author | SHA1 | Date | |
---|---|---|---|
|
ab23a73357 | ||
|
9cfeb0f0c2 | ||
|
5e77fa84cf | ||
|
06fbc83c9c | ||
|
a123810247 | ||
|
906755b787 | ||
|
80c52460c7 | ||
|
13988ba2fe | ||
|
68c4ba96b7 | ||
|
2b978dd2e0 | ||
|
55cb5f5315 | ||
|
b7d1508d7b | ||
|
77b0c30728 | ||
|
466e0b8218 | ||
|
75fdc2bfa9 | ||
|
bee59aceaa | ||
|
92d50dd73f | ||
|
ba05b2770e | ||
|
44d1343b83 | ||
|
ca25cc55f6 | ||
|
68be82a4f9 | ||
|
581b31bf99 | ||
|
56903084f2 | ||
|
ac8fff599f | ||
|
a22cc39a45 | ||
|
7e86ca70cd | ||
|
33f8bf9dea | ||
|
653c598a1c | ||
|
bd5c815a6f | ||
|
06b76d58c2 | ||
|
255d7f80d7 | ||
|
d3753cc455 | ||
|
96dabde7c8 | ||
|
bd1a72d01e | ||
|
87667a2438 | ||
|
8f729bb90a | ||
|
aaf0a9a249 | ||
|
ae9c2fa626 | ||
|
0061911ef3 | ||
|
6b40803fa4 | ||
|
defc4bc0bd | ||
|
e1191f3add | ||
|
188c68279d | ||
|
3e3fd6ffda | ||
|
81c493bff2 | ||
|
e97dbbc771 | ||
|
1f9e450dfa | ||
|
b93bc90242 | ||
|
c6908ec846 | ||
|
16c2be96b3 | ||
|
d4a6bfe122 | ||
|
e3f9341ed1 | ||
|
3ea5c8d6b7 | ||
|
f7c5b74940 | ||
|
4351b3eb6e | ||
|
bffc76907a | ||
|
ca05c073d2 | ||
|
ddd2eebb0e | ||
|
1783dcdb35 | ||
|
4f8b5fa6ce | ||
|
c4e2b446e5 | ||
|
7b8f739400 | ||
|
a3023a7f18 | ||
|
6ce2195253 | ||
|
9ba718694b | ||
|
11c9bd850b | ||
|
b120fa8f09 | ||
|
e8c20bf521 | ||
|
56c62a005d | ||
|
115eda4084 | ||
|
55060f656e | ||
|
42c23d3864 | ||
|
f64a0be6fa | ||
|
b43cbf77c2 | ||
|
568b5a99f6 | ||
|
12d9e5eaf8 | ||
|
e594915e80 | ||
|
78974b7453 | ||
|
1a4e61557f | ||
|
e13f58658d | ||
|
e4695e1ff4 | ||
|
a9b78923c0 | ||
|
d9b5b36c27 | ||
|
5b5d8c692e | ||
|
926b99cbfe | ||
|
52af262e16 | ||
|
0d5954cc3a | ||
|
370f921bc3 | ||
|
57dbf3292f | ||
|
3162a5abe6 | ||
|
3e5e5a1979 | ||
|
c13e7608fa | ||
|
2e9f69d58c | ||
|
02cbe0632f | ||
|
e09abdd330 | ||
|
7aec194cdb | ||
|
3da696276e | ||
|
cbfd53a36b | ||
|
ae50ff2a5c | ||
|
82e472ba46 | ||
|
bd2170e04b | ||
|
a1dd0b8f2b | ||
|
4a429357ef | ||
|
83c6e5d2ad | ||
|
d73b9d638e | ||
|
f9c92007db | ||
|
908bb93f82 | ||
|
c59af9cf89 | ||
|
855b5359be | ||
|
e4a49d5256 | ||
|
fe7906a194 | ||
|
7c85870352 | ||
|
2060e6ab07 | ||
|
b3d28a65d1 | ||
|
baa16d742b | ||
|
ba02a3e305 | ||
|
5e312bfe58 | ||
|
dacd9ca6df | ||
|
4eb1f8bd9e | ||
|
dc922b0258 | ||
|
91751afec8 | ||
|
30fb50d912 | ||
|
b872c53798 | ||
|
905a78a541 | ||
|
9ac823be2d | ||
|
de6ee1858b | ||
|
bd49ff5432 | ||
|
ae323affca | ||
|
b6a8b4a285 | ||
|
6ea5901775 | ||
|
6b1551d103 | ||
|
ed36098439 | ||
|
997b7be4c0 | ||
|
23097921cf | ||
|
237c4e2cc2 | ||
|
9bf0a20226 | ||
|
354c0a6f1c | ||
|
46408572bc | ||
|
0d51f7ea1e | ||
|
fcbaa23ccf | ||
|
70365b48d4 | ||
|
3c30e8248e | ||
|
73742a853f | ||
|
24a6dd0f2c | ||
|
2233250e4d | ||
|
c4a88e4d5b | ||
|
cd2932bde1 | ||
|
6fae23a432 | ||
|
6e2494ca0b | ||
|
8a6dc34b2c | ||
|
9f0cf15d2e | ||
|
700ec23bd4 | ||
|
fb93d841a5 | ||
|
a1be402638 | ||
|
9f22e53a3b | ||
|
e309b76c0a | ||
|
4d686a8836 | ||
|
b21bf3fffd | ||
|
7454389f48 | ||
|
b61e9db21e | ||
|
24d6b96ad7 | ||
|
13ad05c0b0 | ||
|
a8e331c322 | ||
|
b600332595 | ||
|
e734d1d0e2 | ||
|
c57ae83bfa | ||
|
c886a89b11 | ||
|
231c08eb97 | ||
|
4eca9caec1 | ||
|
bc8fef11f1 | ||
|
4d0598a011 | ||
|
038f693cae | ||
|
72d88a5298 | ||
|
bd50964651 | ||
|
105a5a2f33 | ||
|
62530e98b9 | ||
|
b3d1a3fc1a | ||
|
50a3c0f5bc | ||
|
d8fc4e80e3 | ||
|
9d76227982 | ||
|
3967fb8a9f | ||
|
29b4b665dc | ||
|
35f35b27be | ||
|
bf2bec0d4b | ||
|
6e1364b5c2 | ||
|
acddd70435 | ||
|
6c786f2a1a | ||
|
2696f42144 | ||
|
84e10e0470 | ||
|
65f4ffd15b | ||
|
deb611a0d2 | ||
|
29f03d0e96 | ||
|
4629410230 | ||
|
b9526d918d | ||
|
db3b021bfc | ||
|
3862f4d6ba | ||
|
555ede0fee | ||
|
7b90294b57 | ||
|
69881e75c7 | ||
|
533e22ab4f | ||
|
46c86a05bd | ||
|
e053d4b20c | ||
|
c1e19a21d0 | ||
|
3164215879 | ||
|
99367a9ec6 | ||
|
cd0f61da74 | ||
|
ce57b5a4a2 | ||
|
bf3b9c374e |
4
.github/workflows/check-layouts.yml
vendored
4
.github/workflows/check-layouts.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- run: python3 gen_layouts.py
|
- run: python3 gen_layouts.py
|
||||||
- name: "Check that the generated 'layouts.xml' is uptodate, otherwise run 'python3 gen_layouts.py'"
|
- name: "Run 'python3 gen_layouts.py' to update generated files"
|
||||||
run: git diff --exit-code
|
run: git diff --exit-code
|
||||||
check-layouts:
|
check-layouts:
|
||||||
name: check_layout.output
|
name: check_layout.output
|
||||||
@@ -22,5 +22,5 @@ jobs:
|
|||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- run: python3 check_layout.py
|
- run: python3 check_layout.py
|
||||||
- name: "Check that the generated 'check_layout.output' is uptodate, otherwise run 'python3 check_layout.py'"
|
- name: "Fix your layout accordingly or run 'python3 check_layout.py' to promote the warnings"
|
||||||
run: git diff --exit-code
|
run: git diff --exit-code
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -10,3 +10,4 @@
|
|||||||
/build
|
/build
|
||||||
# Directory _build is not used anymore
|
# Directory _build is not used anymore
|
||||||
/_build
|
/_build
|
||||||
|
/release
|
||||||
|
@@ -10,11 +10,13 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
<meta-data android:name="android.view.im" android:resource="@xml/method"/>
|
<meta-data android:name="android.view.im" android:resource="@xml/method"/>
|
||||||
</service>
|
</service>
|
||||||
<activity android:name="juloo.keyboard2.SettingsActivity" android:icon="@mipmap/ic_launcher" android:label="@string/settings_activity_label" android:theme="@style/appTheme" android:exported="true" android:directBootAware="true">
|
|
||||||
|
<activity android:name="juloo.keyboard2.SettingsActivity" android:icon="@mipmap/ic_launcher" android:label="@string/settings_activity_label" android:theme="@style/settingsTheme" android:exported="true" android:directBootAware="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name="juloo.keyboard2.LauncherActivity" android:icon="@mipmap/ic_launcher" android:theme="@style/appTheme" android:exported="true" android:directBootAware="true">
|
<activity android:name="juloo.keyboard2.LauncherActivity" android:icon="@mipmap/ic_launcher" android:theme="@style/appTheme" android:exported="true" android:directBootAware="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
@@ -190,6 +190,12 @@ As translations need to be updated regularly, you can subscribe to this issue
|
|||||||
to receive a notification when an update is needed:
|
to receive a notification when an update is needed:
|
||||||
https://github.com/Julow/Unexpected-Keyboard/issues/373
|
https://github.com/Julow/Unexpected-Keyboard/issues/373
|
||||||
|
|
||||||
|
### Adding Compose key sequences
|
||||||
|
|
||||||
|
New Compose sequences can be added into `srcs/compose/compose/extra.json`.
|
||||||
|
If a entirely new family of sequences were to be added, a new `.json` file can
|
||||||
|
be created in the same directory to host them.
|
||||||
|
|
||||||
### Adding key combinations
|
### Adding key combinations
|
||||||
|
|
||||||
Key combinations are defined in `srcs/juloo.keyboard2/KeyModifier.java`.
|
Key combinations are defined in `srcs/juloo.keyboard2/KeyModifier.java`.
|
||||||
|
@@ -25,7 +25,7 @@ Usage: to apply the symbols located in the corners of each key, slide your finge
|
|||||||
| <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" alt="Screenshot-4" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" alt="Screenshot-5" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" alt="Screenshot-6" /> |
|
| <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" alt="Screenshot-4" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" alt="Screenshot-5" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" alt="Screenshot-6" /> |
|
||||||
|
|
||||||
## Similar apps
|
## Similar apps
|
||||||
* [Calculator++](https://github.com/Bubu/android-calculatorpp) - Calculator with a similar UX, swipe to corners for advanced math symbols and operators. Works up to Android 13 but maybe unmaintained.
|
* [Calculator++](https://git.bubu1.eu/Bubu/android-calculatorpp) - Calculator with a similar UX, swipe to corners for advanced math symbols and operators.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
Binary file not shown.
29
build.gradle
29
build.gradle
@@ -2,25 +2,33 @@ plugins {
|
|||||||
id 'com.android.application' version '8.1.1'
|
id 'com.android.application' version '8.1.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testImplementation "junit:junit:4.13.2"
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace 'juloo.keyboard2'
|
namespace 'juloo.keyboard2'
|
||||||
compileSdk 34
|
compileSdk 34
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "juloo.keyboard2"
|
applicationId "juloo.keyboard2"
|
||||||
minSdk 11
|
minSdk 21
|
||||||
targetSdkVersion 34
|
targetSdkVersion 35
|
||||||
versionCode 40
|
versionCode 46
|
||||||
versionName "1.28.0"
|
versionName "1.30.3"
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
java.srcDirs = ['srcs']
|
java.srcDirs = ['srcs/juloo.keyboard2']
|
||||||
res.srcDirs = ['res', 'build/generated-resources']
|
res.srcDirs = ['res', 'build/generated-resources']
|
||||||
assets.srcDirs = ['assets']
|
assets.srcDirs = ['assets']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test {
|
||||||
|
java.srcDirs = ['test']
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
@@ -84,9 +92,6 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register('buildKeyboardFont') {
|
tasks.register('buildKeyboardFont') {
|
||||||
println "\nBuilding assets/special_font.ttf"
|
println "\nBuilding assets/special_font.ttf"
|
||||||
mkdir "$buildDir"
|
mkdir "$buildDir"
|
||||||
@@ -129,12 +134,8 @@ tasks.register('genLayoutsList') {
|
|||||||
tasks.register('checkKeyboardLayouts') {
|
tasks.register('checkKeyboardLayouts') {
|
||||||
println "\nChecking layouts"
|
println "\nChecking layouts"
|
||||||
exec {
|
exec {
|
||||||
def layouts = new File(projectDir, "srcs/layouts").listFiles().findAll {
|
|
||||||
it.name.endsWith(".xml")
|
|
||||||
}
|
|
||||||
workingDir = projectDir
|
workingDir = projectDir
|
||||||
commandLine("python", "check_layout.py", *layouts)
|
commandLine("python", "check_layout.py")
|
||||||
standardOutput = new FileOutputStream("${projectDir}/check_layout.output")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,7 +152,7 @@ tasks.register('compileComposeSequences') {
|
|||||||
println "\nGenerating ${out}"
|
println "\nGenerating ${out}"
|
||||||
exec {
|
exec {
|
||||||
def sequences = new File(projectDir, "srcs/compose").listFiles().findAll {
|
def sequences = new File(projectDir, "srcs/compose").listFiles().findAll {
|
||||||
it.name.endsWith(".pre") || it.name.endsWith(".json")
|
!it.name.endsWith(".py") && !it.name.endsWith(".md")
|
||||||
}
|
}
|
||||||
workingDir = projectDir
|
workingDir = projectDir
|
||||||
commandLine("python", "srcs/compose/compile.py", *sequences)
|
commandLine("python", "srcs/compose/compile.py", *sequences)
|
||||||
|
@@ -1,132 +1,36 @@
|
|||||||
# arab_alt
|
arab_alt: Layout includes some ASCII punctuation but not all, missing: !, ", ', +, -, /, :, ;, <, =, >, ?, [, \, ], _, |, ~
|
||||||
Layout includes some ASCII punctuation but not all, missing: !, ", ', +, -, /, :, ;, <, =, >, ?, [, \, ], _, |, ~
|
arab_hamvaj_tly: Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], _, `, {, |, }
|
||||||
1 warnings
|
arab_pc: Layout includes some ASCII punctuation but not all, missing: !, ', +, ;, ?, \, |
|
||||||
# arab_hamvaj_tly
|
arab_pc_ckb: Layout includes some ASCII punctuation but not all, missing: ", %, ', +, ,, ;, <, =, >, ?, `, |, ~
|
||||||
Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], _, `, {, |, }
|
arab_pc_ckb_fa: Layout includes some ASCII punctuation but not all, missing: ", #, $, %, &, ', ,, /, ;, ?, @, \, ^, `, |, ~
|
||||||
Layout doesn't define some important keys, missing: loc esc
|
arab_pc_hindu: Layout includes some ASCII punctuation but not all, missing: !, ', +, ;, ?, \, |
|
||||||
2 warnings
|
arab_pc_ir: Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], `, {, |, }
|
||||||
# arab_pc
|
beng_national: Layout includes some ASCII punctuation but not all, missing: $
|
||||||
Layout includes some ASCII punctuation but not all, missing: !, ', +, ;, ?, \, |
|
beng_provat: Layout includes some ASCII punctuation but not all, missing: $, &, *, ., /, <, >, [, \, ], `, {, |, }
|
||||||
1 warnings
|
cyrl_yaverti: Layout includes some ASCII punctuation but not all, missing: ~
|
||||||
# arab_pc_ckb
|
cyrl_yqukeng_tj: These keys are now added automatically, unexpected: f11_placeholder, f12_placeholder
|
||||||
Layout includes some ASCII punctuation but not all, missing: ", %, ', +, ,, ., :, ;, <, =, >, ?, `, |, ~
|
cyrl_yxukeng_os: Layout includes some ASCII punctuation but not all, missing: ", #, $, &, ', @, [, ], ~
|
||||||
1 warnings
|
cyrl_yxukeng_os: These keys are now added automatically, unexpected: f11_placeholder, f12_placeholder
|
||||||
# arab_pc_hindu
|
deva_alt: Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, ), *, +, ., /, :, <, =, >, [, \, ], ^, _, `, {, |, }, ~
|
||||||
Layout includes some ASCII punctuation but not all, missing: !, ', +, ;, ?, \, |
|
deva_alt: Layout doesn't define some important keys, missing: delete
|
||||||
1 warnings
|
deva_inscript: Duplicate keys: ।
|
||||||
# arab_pc_ir
|
deva_inscript: Layout includes some ASCII punctuation but not all, missing: ", $, ', ^, _, `, |
|
||||||
Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], `, {, |, }
|
deva_phonetic_in: Duplicate keys: ट
|
||||||
1 warnings
|
grek_qwerty: Duplicate keys: ;
|
||||||
# armenian_ph_am
|
guj_phonetic_in: Duplicate keys: ટ, ડ
|
||||||
0 warnings
|
hebr_1_il: Layout includes some ASCII punctuation but not all, missing: (, ), <, >, [, ], {, }
|
||||||
# beng_national
|
hebr_2_il: Layout includes some ASCII punctuation but not all, missing: (, ), <, >, [, ], {, }
|
||||||
Layout includes some ASCII punctuation but not all, missing: $
|
kann_kannada: Layout includes some ASCII punctuation but not all, missing: #, $, %, (, ), *, +, /, <, =, >, [, \, ], ^, `, {, |, }, ~
|
||||||
1 warnings
|
latn_bepo_fr: Missing important key, missing: loc capslock
|
||||||
# beng_provat
|
latn_bone: Missing important key, missing: loc capslock
|
||||||
Layout includes some ASCII punctuation but not all, missing: $, &, *, ., /, <, >, [, \, ], `, {, |, }
|
latn_colemak: Some keys contain whitespaces, unexpected: ́
|
||||||
1 warnings
|
latn_dvorak: Missing important key, missing: loc capslock
|
||||||
# cyrl_jcuken_ru
|
latn_neo2: Layout redefines the bottom row but some important keys are missing, missing: loc switch_clipboard
|
||||||
0 warnings
|
latn_qwerty_se: Duplicate keys: !, ', ,, -, ., ?
|
||||||
# cyrl_jcuken_uk
|
latn_qwerty_tly: Duplicate keys: a, c, j, q
|
||||||
0 warnings
|
latn_qwerty_tly: Missing programming keys, missing: loc esc, loc tab
|
||||||
# cyrl_ueishsht
|
latn_qwertz_cz_multifunctional: Layout includes some ASCII punctuation but not all, missing: `
|
||||||
0 warnings
|
latn_qwertz_sk: Layout includes some ASCII punctuation but not all, missing: `
|
||||||
# cyrl_yaverti
|
urdu_phonetic_ur: Duplicate keys:
|
||||||
Layout includes some ASCII punctuation but not all, missing: ~
|
urdu_phonetic_ur: Layout includes some ASCII punctuation but not all, missing: <, >, ?, `, |, ~
|
||||||
1 warnings
|
urdu_phonetic_ur: Some keys contain whitespaces, unexpected:
|
||||||
# deva_alt
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, ), +, ., /, :, <, =, >, [, \, ], ^, _, `, {, |, }, ~
|
|
||||||
Layout doesn't define some important keys, missing: loc esc, loc tab
|
|
||||||
2 warnings
|
|
||||||
# deva_inscript
|
|
||||||
Duplicate keys: ।
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: ", $, ', ^, _, `, |
|
|
||||||
2 warnings
|
|
||||||
# grek_qwerty
|
|
||||||
Duplicate keys: ;
|
|
||||||
1 warnings
|
|
||||||
# guj_phonetic_in
|
|
||||||
Duplicate keys: ટ, ડ
|
|
||||||
1 warnings
|
|
||||||
# hang_dubeolsik_kr
|
|
||||||
Layout doesn't define some important keys, missing: loc esc, loc tab
|
|
||||||
1 warnings
|
|
||||||
# hebr_1_il
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: (, ), <, >, [, ], {, }
|
|
||||||
1 warnings
|
|
||||||
# hebr_2_il
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: (, ), <, >, [, ], {, }
|
|
||||||
1 warnings
|
|
||||||
# latn_azerty_fr
|
|
||||||
0 warnings
|
|
||||||
# latn_bepo_fr
|
|
||||||
0 warnings
|
|
||||||
# latn_bone
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: $
|
|
||||||
Layout redefines the bottom row but some important keys are missing, missing: cursor_left, cursor_right, loc compose, loc end, loc home, loc page_down, loc page_up, loc switch_greekmath, loc voice_typing, switch_backward
|
|
||||||
2 warnings
|
|
||||||
# latn_colemak
|
|
||||||
Some keys contain whitespaces, unexpected: ́
|
|
||||||
1 warnings
|
|
||||||
# latn_dvorak
|
|
||||||
0 warnings
|
|
||||||
# latn_neo2
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_br
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_cz
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_da
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_es
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_gb
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_hu
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_lv
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_no
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_pl
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_ro
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_se
|
|
||||||
Duplicate keys: !, ', ,, -, ., ?
|
|
||||||
1 warnings
|
|
||||||
# latn_qwerty_sk
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_tly
|
|
||||||
Duplicate keys: a, c, j, q
|
|
||||||
Layout doesn't define some important keys, missing: loc esc, loc tab
|
|
||||||
2 warnings
|
|
||||||
# latn_qwerty_tr
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_us
|
|
||||||
0 warnings
|
|
||||||
# latn_qwerty_vi
|
|
||||||
0 warnings
|
|
||||||
# latn_qwertz
|
|
||||||
0 warnings
|
|
||||||
# latn_qwertz_cz
|
|
||||||
0 warnings
|
|
||||||
# latn_qwertz_cz_multifunctional
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: `
|
|
||||||
1 warnings
|
|
||||||
# latn_qwertz_de
|
|
||||||
0 warnings
|
|
||||||
# latn_qwertz_fr_ch
|
|
||||||
0 warnings
|
|
||||||
# latn_qwertz_hu
|
|
||||||
0 warnings
|
|
||||||
# latn_qwertz_sk
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: `
|
|
||||||
1 warnings
|
|
||||||
# shaw_imperial_en
|
|
||||||
0 warnings
|
|
||||||
# urdu_phonetic_ur
|
|
||||||
Duplicate keys:
|
|
||||||
Layout includes some ASCII punctuation but not all, missing: <, >, ?, `, |, ~
|
|
||||||
Some keys contain whitespaces, unexpected:
|
|
||||||
3 warnings
|
|
||||||
|
@@ -1,17 +1,23 @@
|
|||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import sys, os
|
import sys, os, glob
|
||||||
|
|
||||||
warning_count = 0
|
layout_file_name = 0
|
||||||
|
warnings = []
|
||||||
|
|
||||||
KNOWN_NOT_LAYOUT = set([
|
KNOWN_NOT_LAYOUT = set([
|
||||||
"number_row", "numpad", "pin",
|
"number_row", "numpad", "pin",
|
||||||
"bottom_row", "settings", "method",
|
"bottom_row", "settings", "method",
|
||||||
"greekmath", "numeric", "emoji_bottom_row" ])
|
"greekmath", "numeric", "emoji_bottom_row",
|
||||||
|
"clipboard_bottom_row" ])
|
||||||
|
|
||||||
|
KEY_ATTRIBUTES = set([
|
||||||
|
"key0", "key1", "key2", "key3", "key4", "key5", "key6", "key7", "key8",
|
||||||
|
"c", "nw", "ne", "sw", "se", "w", "e", "n", "s"
|
||||||
|
])
|
||||||
|
|
||||||
def warn(msg):
|
def warn(msg):
|
||||||
global warning_count
|
global warnings
|
||||||
print(msg)
|
warnings.append("%s: %s" % (layout_file_name, msg))
|
||||||
warning_count += 1
|
|
||||||
|
|
||||||
def key_list_str(keys):
|
def key_list_str(keys):
|
||||||
return ", ".join(sorted(list(keys)))
|
return ", ".join(sorted(list(keys)))
|
||||||
@@ -38,7 +44,7 @@ def unexpected_keys(keys, symbols, msg):
|
|||||||
def parse_row_from_et(row, keys, dup):
|
def parse_row_from_et(row, keys, dup):
|
||||||
for key in row:
|
for key in row:
|
||||||
for attr in key.keys():
|
for attr in key.keys():
|
||||||
if attr.startswith("key"):
|
if attr in KEY_ATTRIBUTES:
|
||||||
k = key.get(attr).removeprefix("\\")
|
k = key.get(attr).removeprefix("\\")
|
||||||
if k in keys: dup.add(k)
|
if k in keys: dup.add(k)
|
||||||
keys.add(k)
|
keys.add(k)
|
||||||
@@ -67,9 +73,7 @@ def check_layout(layout):
|
|||||||
if len(dup) > 0: warn("Duplicate keys: " + key_list_str(dup))
|
if len(dup) > 0: warn("Duplicate keys: " + key_list_str(dup))
|
||||||
missing_some_of(keys, "~!@#$%^&*(){}`[]=\\-_;:/.,?<>'\"+|", "ASCII punctuation")
|
missing_some_of(keys, "~!@#$%^&*(){}`[]=\\-_;:/.,?<>'\"+|", "ASCII punctuation")
|
||||||
missing_some_of(keys, "0123456789", "digits")
|
missing_some_of(keys, "0123456789", "digits")
|
||||||
missing_required(keys,
|
missing_required(keys, ["backspace", "delete"], "Layout doesn't define some important keys")
|
||||||
["loc esc", "loc tab", "backspace", "delete"],
|
|
||||||
"Layout doesn't define some important keys")
|
|
||||||
unexpected_keys(keys,
|
unexpected_keys(keys,
|
||||||
["copy", "paste", "cut", "selectAll", "shareText",
|
["copy", "paste", "cut", "selectAll", "shareText",
|
||||||
"pasteAsPlainText", "undo", "redo" ],
|
"pasteAsPlainText", "undo", "redo" ],
|
||||||
@@ -83,6 +87,10 @@ def check_layout(layout):
|
|||||||
unexpected_keys(keys, filter(lambda k: k.strip()!=k, keys), "Some keys contain whitespaces")
|
unexpected_keys(keys, filter(lambda k: k.strip()!=k, keys), "Some keys contain whitespaces")
|
||||||
unexpected_keys(keys, ["f11_placeholder", "f12_placeholder"], "These keys are now added automatically")
|
unexpected_keys(keys, ["f11_placeholder", "f12_placeholder"], "These keys are now added automatically")
|
||||||
|
|
||||||
|
if root.get("script", "latin") == "latin":
|
||||||
|
missing_required(keys, ["shift", "loc capslock"], "Missing important key")
|
||||||
|
missing_required(keys, ["loc esc", "loc tab"], "Missing programming keys")
|
||||||
|
|
||||||
_, bottom_row_keys, _ = parse_row("res/xml/bottom_row.xml")
|
_, bottom_row_keys, _ = parse_row("res/xml/bottom_row.xml")
|
||||||
|
|
||||||
if root.get("bottom_row") == "false":
|
if root.get("bottom_row") == "false":
|
||||||
@@ -95,15 +103,17 @@ def check_layout(layout):
|
|||||||
if root.get("script") == None:
|
if root.get("script") == None:
|
||||||
warn("Layout doesn't specify a script.")
|
warn("Layout doesn't specify a script.")
|
||||||
|
|
||||||
for fname in sorted(sys.argv[1:]):
|
for fname in sorted(glob.glob("srcs/layouts/*.xml")):
|
||||||
layout_id, _ = os.path.splitext(os.path.basename(fname))
|
layout_id, _ = os.path.splitext(os.path.basename(fname))
|
||||||
if layout_id in KNOWN_NOT_LAYOUT:
|
if layout_id in KNOWN_NOT_LAYOUT:
|
||||||
continue
|
continue
|
||||||
|
layout_file_name = layout_id
|
||||||
layout = parse_layout(fname)
|
layout = parse_layout(fname)
|
||||||
if layout == None:
|
if layout == None:
|
||||||
print("Not a layout file: %s" % layout_id)
|
warn("Not a layout file")
|
||||||
else:
|
else:
|
||||||
print("# %s" % layout_id)
|
|
||||||
warning_count = 0
|
|
||||||
check_layout(layout)
|
check_layout(layout)
|
||||||
print("%d warnings" % warning_count)
|
|
||||||
|
with open("check_layout.output", "w") as out:
|
||||||
|
for w in warnings:
|
||||||
|
print(w, file=out)
|
||||||
|
@@ -20,7 +20,7 @@ A layout XML file comprises tags that start with `<` and end with `>`.
|
|||||||
* An optional `<modmap>`...`</modmap>` pair contains instructions if you want to change the behavior of a modifier key such as Shift.
|
* An optional `<modmap>`...`</modmap>` pair contains instructions if you want to change the behavior of a modifier key such as Shift.
|
||||||
* Stand-alone tags include `<key`...`/>`, which defines a single key.
|
* Stand-alone tags include `<key`...`/>`, which defines a single key.
|
||||||
|
|
||||||
A tag can have properties, defined using an equals sign and a pair of ASCII double quotes. For example, `<key key0="a" />` defines the "a" key. The `key0` property of the `key` tag says which key you are defining, and the tag's location inside `<row>`...`</row>` specifies where it will go in the row.
|
A tag can have properties, defined using an equals sign and a pair of ASCII double quotes. For example, `<key c="a" />` defines the "a" key. The `c` property of the `key` tag says which key you are defining, and the tag's location inside `<row>`...`</row>` specifies where it will go in the row.
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
Here is a complete keyboard file with a single row containing an "a" key on the left and a "b" key on the right:
|
Here is a complete keyboard file with a single row containing an "a" key on the left and a "b" key on the right:
|
||||||
@@ -28,17 +28,28 @@ Here is a complete keyboard file with a single row containing an "a" key on the
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<keyboard name="Simple example" script="latin">
|
<keyboard name="Simple example" script="latin">
|
||||||
<row>
|
<row>
|
||||||
<key key0="a" />
|
<key c="a" />
|
||||||
<key key0="b" />
|
<key c="b" />
|
||||||
</row>
|
</row>
|
||||||
</keyboard>
|
</keyboard>
|
||||||
|
|
||||||
## Keyboard metadata
|
## Keyboard metadata
|
||||||
|
|
||||||
The `<keyboard>`...`</keyboard>` pair follows the declaration tag and encloses the whole keyboard. The following properties may be used (The first two appear in the example above):
|
The `<keyboard>`...`</keyboard>` pair follows the declaration tag and encloses the whole keyboard. The following properties may be used (The first two appear in the example above):
|
||||||
|
|
||||||
* `name`: The name of the keyboard. The name you specify will appear in the Settings menu. If not present, the layout will just appear as “Custom layout”.
|
* `name`: The name of the keyboard. The name you specify will appear in the Settings menu. If not present, the layout will just appear as “Custom layout”.
|
||||||
|
|
||||||
* `script`: The (main) writing system that the keyboard supports. The possible values are `arabic`, `armenian`, `bengali`, `cyrillic`, `devanagari`, `gujarati`, `hangul`, `hebrew`, `latin`, `persian`, `shavian`, and `urdu`. It defaults to `latin`.
|
* `script`: The (main) writing system that the keyboard supports. The possible values are `arabic`, `armenian`, `bengali`, `cyrillic`, `devanagari`, `gujarati`, `hangul`, `hebrew`, `latin`, `persian`, `shavian`, and `urdu`. It defaults to `latin`.
|
||||||
|
|
||||||
* `numpad_script`: The script to use for the numpad. This is useful for scripts where a different, non-ASCII set of numerals is used, like Devanagari and Arabic. It defaults to the same as `script`.
|
* `numpad_script`: The script to use for the numpad. This is useful for scripts where a different, non-ASCII set of numerals is used, like Devanagari and Arabic. It defaults to the same as `script`.
|
||||||
* `bottom_row`: Whether or not to show the common bottom row. It accepts `true` or `false`, and defaults to `true`. If your custom layout defines the bottom row, then specify `bottom_row=false` to disable the built-in bottom row.
|
|
||||||
|
* `bottom_row`: Whether or not to show the built-in bottom row. It accepts `true` or `false`, and defaults to `true`. If your custom layout defines the bottom row, then specify `bottom_row="false"` to disable the built-in bottom row.
|
||||||
|
+ We recommend your layout use the built-in bottom row, because it is still evolving and your layout will incorporate innovations in future versions. However, to define your own, the current definition of the bottom row is in [bottom_row.xml](https://github.com/Julow/Unexpected-Keyboard/res/xml/bottom_row.xml). You can copypaste this XML into your custom layout as a starting point.
|
||||||
|
+ Likewise, the current definition of the top (number) row is in [number_row.xml](https://github.com/Julow/Unexpected-Keyboard/res/xml/number_row.xml).
|
||||||
|
|
||||||
|
* `embedded_number_row`: Whether the layout has an embedded number row, and thus the "Show number row" setting shouldn't add another one. It accepts `true` or `false`, and defaults to `false`.
|
||||||
|
|
||||||
|
* `locale_extra_keys`: Whether Unexpected should add language-dependent extra keys from [method.xml](../res/xml/method.xml) to this layout. It accepts `true` or `false`, and defaults to `true`. To disable these automatic additions, specify `locale_extra_keys="false"`.
|
||||||
|
|
||||||
## Row
|
## Row
|
||||||
The `<row>`...`</row>` pair encloses one row on the keyboard. It has only one optional property:
|
The `<row>`...`</row>` pair encloses one row on the keyboard. It has only one optional property:
|
||||||
@@ -50,7 +61,7 @@ A row's default height is 1.0 (one quarter of the keyboard height specified on t
|
|||||||
The `<key />` tag defines a key on the keyboard. Its position in the sequence of keys inside `<row>`...`</row>` indicates its position in the row from left to right. What the key does is defined by optional properties.
|
The `<key />` tag defines a key on the keyboard. Its position in the sequence of keys inside `<row>`...`</row>` indicates its position in the row from left to right. What the key does is defined by optional properties.
|
||||||
|
|
||||||
### Taps
|
### Taps
|
||||||
What the key does when tapped is defined by the optional `key0` property. For example, `<key key0="a" />` defines the "a" key. Unexpected Keyboard provides a legend in the middle of the key.
|
What the key does when tapped is defined by the optional `c` property. For example, `<key c="a" />` defines the "a" key. Unexpected Keyboard provides a legend in the middle of the key.
|
||||||
|
|
||||||
When the Shift modifier is tapped, the "a" key becomes the "A" key and the legend temporarily changes. The Fn modifier makes a different change. You can override this behavior with a modmap (see below).
|
When the Shift modifier is tapped, the "a" key becomes the "A" key and the legend temporarily changes. The Fn modifier makes a different change. You can override this behavior with a modmap (see below).
|
||||||
|
|
||||||
@@ -62,7 +73,7 @@ The following optional properties define the effects of swipes:
|
|||||||
<TD STYLE="width: 6em;">nw</TD><TD>n</TD><TD>ne</TD>
|
<TD STYLE="width: 6em;">nw</TD><TD>n</TD><TD>ne</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR ALIGN=CENTER>
|
<TR ALIGN=CENTER>
|
||||||
<TD>w</TD><TD> </TD><TD>e</TD>
|
<TD>w</TD><TD>c</TD><TD>e</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD>sw</TD><TD>s</TD><TD>se</TD>
|
<TD>sw</TD><TD>s</TD><TD>se</TD>
|
||||||
@@ -75,7 +86,7 @@ The following optional properties define the effects of swipes:
|
|||||||
<TD>key1</TD><TD>key7</TD><TD>key2</TD>
|
<TD>key1</TD><TD>key7</TD><TD>key2</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD>key5</TD><TD> </TD><TD>key6</TD>
|
<TD>key5</TD><TD>key0</TD><TD>key6</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD>key3</TD><TD>key8</TD><TD>key4</TD>
|
<TD>key3</TD><TD>key8</TD><TD>key4</TD>
|
||||||
@@ -84,7 +95,6 @@ The following optional properties define the effects of swipes:
|
|||||||
|
|
||||||
You can define a swipe only once with either compass-point or numeric notation. Unexpected Keyboard automatically puts a small legend in that direction from the center of the key.
|
You can define a swipe only once with either compass-point or numeric notation. Unexpected Keyboard automatically puts a small legend in that direction from the center of the key.
|
||||||
|
|
||||||
* `slider`: If `slider="true"`, and the key also has `w` and `e` properties, then the key tracks horizontal finger motion precisely and sends the `w` and `e` keystrokes repeatedly. In built-in layouts, this makes the space bar send left and right characters as the user slides on the space bar.
|
|
||||||
* `anticircle`: The key value to send when doing an anti-clockwise gesture on the key.
|
* `anticircle`: The key value to send when doing an anti-clockwise gesture on the key.
|
||||||
|
|
||||||
### Layout
|
### Layout
|
||||||
@@ -95,42 +105,47 @@ A key may have the following properties to control the row's layout:
|
|||||||
Normally, a key's width is 1.0 unit. Unexpected Keyboard occupies the full width of the screen, and the row defining the highest number of units (in widths plus shifts) is as wide as the screen. A row whose width is a smaller number of units has empty space on the right.
|
Normally, a key's width is 1.0 unit. Unexpected Keyboard occupies the full width of the screen, and the row defining the highest number of units (in widths plus shifts) is as wide as the screen. A row whose width is a smaller number of units has empty space on the right.
|
||||||
|
|
||||||
### Extra legend
|
### Extra legend
|
||||||
* `indication`: An optional extra legend to show under the main label. For example, `<key key0="2" indication="ABC" />` displays ABC at the bottom of the 2 key, as on a pinpad or some telephones. If the key also defines a downward swipe with `s` or `key8`, the legends overlap.
|
* `indication`: An optional extra legend to show under the main label. For example, `<key c="2" indication="ABC" />` displays ABC at the bottom of the 2 key, as on a pinpad or some telephones. If the key also defines a downward swipe with `s` or `key8`, the legends overlap.
|
||||||
|
|
||||||
### Possible key values
|
### Possible key values
|
||||||
|
Built-in strings that assign a special function to a key are described in [this page](Possible-key-values.md). For example, `se="copy"` means a southeasterly swipe produces the Copy key. If a key value does not match any of the built-in strings, it outputs that text _verbatim_. For example, `c="a"` simply outputs the letter a.
|
||||||
|
|
||||||
The possible key values are described in [this page](Possible-key-values.md).
|
In a layout, a key value can also start with the `loc` prefix. These are place-holders; the tap or swipe does nothing unless enabled through the "Add keys to keyboard" option in the Settings menu, or implicitly enabled by the language the device is set to use. For example, `ne="loc accent_aigu"` says that a northeast swipe produces the acute accent combinatorial key—if enabled.
|
||||||
|
|
||||||
In a layout, a key value can also start with the `loc` prefix. These are place-holders, the tap or swipe does nothing unless enabled through the "Add keys to keyboard" option in the Settings menu, or implicitly enabled by the language the device is set to use.
|
|
||||||
For example, `ne="loc accent_aigu"` says that a northeast swipe produces the acute accent combinatorial key—if enabled.
|
|
||||||
|
|
||||||
## Modmap
|
## Modmap
|
||||||
The `<modmap>`...`</modmap>` pair encloses custom mappings for modifier keys. The modmap is placed inside the `<keyboard>`...`</keyboard>` pair, but outside any row. A layout can have at most one modmap.
|
The `<modmap>`...`</modmap>` pair encloses custom mappings for modifier keys. The modmap is placed inside the `<keyboard>`...`</keyboard>` pair, but outside any row. A layout can have at most one modmap. It can contain any number of mappings. Each mapping has an `a` property and a `b` property and maps the `a` key to the `b` key. Valid values are listed in [Possible key values](Possible-key-values.md).
|
||||||
|
|
||||||
A modmap can contain the following tags, each of which must have an `a` and a `b` property:
|
The following mappings are supported:
|
||||||
* `<shift a="before" b="after" />` If the Shift modifier is on, the key `before` is changed into `after`.
|
|
||||||
* `<fn a="before" b="after" />` If the Fn modifier is on, the key `before` is changed into `after`.
|
|
||||||
|
|
||||||
Valid values for `before` and `after` are listed in [Possible key values](Possible-key-values.md).
|
```xml
|
||||||
|
<shift a="before" b="after" />
|
||||||
|
```
|
||||||
|
This means that when the Shift modifier is on, the key `before` is changed into `after`.
|
||||||
|
|
||||||
There can be as many of these tags inside `<modmap>` as needed.
|
```xml
|
||||||
|
<fn a="before" b="after" />
|
||||||
|
```
|
||||||
|
This means that when the Fn modifier is on, the key `before` is changed into `after`.
|
||||||
|
|
||||||
The clockwise circle and the round-trip gestures are affected by both Shift and Fn modmaps. The Shift mappings are used first and if that did not modify the key, the Fn mappings are used instead.
|
```xml
|
||||||
|
<ctrl a="before" b="after" />
|
||||||
|
```
|
||||||
|
This means that when the Ctrl modifier is on, the key `before` is changed into `after`. The `<ctrl />` mapping is special in that the Ctrl modifier is applied to `after` after the mapping.
|
||||||
|
|
||||||
|
The clockwise circle and the round-trip gestures are affected by both `<shift />` and `<fn />` mappings. The Shift mappings are used first and if that did not modify the key, the Fn mappings are used instead.
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
① Turkish keyboards use the Latin alphabet, but when "i" is shifted, it should produce "İ". This is achieved with the following modmap:
|
① Turkish keyboards use the Latin alphabet, but when "i" is shifted, it should produce "İ". This is achieved with the following mapping:
|
||||||
|
|
||||||
<modmap>
|
```xml
|
||||||
<shift a="i" b="İ" />
|
<shift a="i" b="İ" />
|
||||||
</modmap>
|
```
|
||||||
|
② Cyrillic layouts have no V key. A layout can define Ctrl-V with the following mapping:
|
||||||
|
|
||||||
② By default, `Fn`+`e` produces the € character. This can be inhibited with the following modmap, which maps the modified `e` key to itself:
|
```xml
|
||||||
|
<ctrl a="в" b="v" />
|
||||||
<modmap>
|
```
|
||||||
<fn a="e" b="e" />
|
This maps Ctrl+в to Ctrl+V—not to v.
|
||||||
</modmap>
|
|
||||||
|
|
||||||
These two examples are each shown in a modmap, for completeness. However, a layout can have at most one modmap, containing all the desired `<shift>` and `<fn>` tags.
|
|
||||||
|
|
||||||
## Portrait vs. landscape
|
## Portrait vs. landscape
|
||||||
Unexpected Keyboard remembers *separately* which layout has last been used in portrait and landscape orientation. So you may have one custom layout for portrait orientation, but another custom layout for landscape orientation, and Unexpected Keyboard will switch between them without your intervention.
|
Unexpected Keyboard remembers *separately* which layout has last been used in portrait and landscape orientation. So you may have one custom layout for portrait orientation, but another custom layout for landscape orientation, and Unexpected Keyboard will switch between them without your intervention.
|
||||||
|
@@ -1,43 +1,74 @@
|
|||||||
# Key values
|
# Key values
|
||||||
|
|
||||||
This is an exhaustive list of special values accepted for the `key0` through `key8` or `nw` through `se` attributes on a key.
|
A key value defines what a key on the keyboard does when pressed or swiped.
|
||||||
|
|
||||||
Any string that does not exactly match these will be printed verbatim.
|
Key values appear in the following places:
|
||||||
A key can output multiple characters, but cannot combine multiple built-in key values.
|
|
||||||
|
|
||||||
## Escape codes
|
- In custom layouts, they are the value of: the `c` attribute, the compass-point attributes `nw` ... `se`, and the old-style `key0` ... `key8` attributes.
|
||||||
Value | Escape code for
|
- Internally, they are used in the definition of the "Add keys to the keyboard" setting.
|
||||||
|
|
||||||
|
Key values can be any of the following:
|
||||||
|
|
||||||
|
- The name of a special key. A complete list of valid special keys follows.
|
||||||
|
|
||||||
|
- An arbitrary sequence of characters not containing `:`.
|
||||||
|
This results in a key that writes the specified characters.
|
||||||
|
|
||||||
|
- The syntax `legend:key_def`.
|
||||||
|
`legend` is the visible legend on the keyboard. It cannot contain `:`.
|
||||||
|
`key_def` can be:
|
||||||
|
+ The name of a special key, as listed below.
|
||||||
|
+ `'string'` An arbitrary string that can contain `:`. `'` can be added to the string as `` \' ``.
|
||||||
|
+ `keyevent:keycode` An Android keycode. They are listed as `KEYCODE_...` in [KeyEvent](https://developer.android.com/reference/android/view/KeyEvent#summary).
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
+ `⏯:keyevent:85` A play/pause key (which has no effect in most apps).
|
||||||
|
+ `my@:'my.email@domain.com'` A key that sends an arbitrary string
|
||||||
|
|
||||||
|
- A macro, `legend:key_def1,key_def2,...`.
|
||||||
|
This results in a key with legend `legend` that behaves as if the sequence of `key_def` had been pressed in order.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
+ `CA:ctrl,a,ctrl,c` A key with legend CA that sends the sequence `ctrl+a`, `ctrl+c`.
|
||||||
|
+ `Cd:ctrl,backspace` A key with legend Cd that sends the shortcut `ctrl+backspace`.
|
||||||
|
|
||||||
|
### Escape codes
|
||||||
|
|
||||||
|
When defining a key value, several characters have special effects. If you want a character not to have its usual effect but to be taken literally, you should "escape" it in the usual way for XML:
|
||||||
|
|
||||||
|
To get this character... | ...you can type
|
||||||
:---- | :------
|
:---- | :------
|
||||||
`\?` | `?`
|
A literal newline character, which is different from `enter` and `action` in certain apps. | `\n`
|
||||||
`\#` | `#`
|
A literal tab character, which is different from `tab` in certain apps. | `\t`
|
||||||
`\@` | `@`
|
`\` | `\\`
|
||||||
`\n` | Literal newline character. This is different from `enter` and `action` in certain apps.
|
`&` | `&`
|
||||||
`\t` | Literal tab character. This is different from `tab` in certain apps.
|
`<` | `<`
|
||||||
`\\` | `\`
|
`>` | `>`
|
||||||
|
`"` | `"`
|
||||||
|
|
||||||
XML escape codes also work, including:
|
The characters `?`, `#`, and `@` do not need to be escaped when writing custom layouts. Internally, they can be escaped by prepending backslash (by typing `\?`, `\#`, and `\@`).
|
||||||
|
|
||||||
Value | Escape code for
|
The characters `,` and `:` can be escaped in a key value, using single quotes. For example, this macro defines a key with legend `http` that sends a string containing `:`: `<key c="http:home,'https://'" />` For simplicity, `,` and `:` cannot be escaped in the key legend.
|
||||||
:------- | :------
|
|
||||||
`&` | `&`
|
|
||||||
`<` | `<`
|
|
||||||
`>` | `>`
|
|
||||||
`"` | `"`
|
|
||||||
|
|
||||||
## Modifiers
|
## Modifiers
|
||||||
System modifiers are sent to the app, which is free to do whatever they want in response.
|
System modifiers are sent to the app, which can take app-specific action.
|
||||||
The other modifiers only exist within the keyboard.
|
|
||||||
Value | Meaning
|
Value | Meaning
|
||||||
:---------- | :------
|
:---------- | :------
|
||||||
`shift` | System modifier.
|
`shift` | System modifier.
|
||||||
`ctrl` | System modifier.
|
`ctrl` | System modifier.
|
||||||
`alt` | System modifier.
|
`alt` | System modifier.
|
||||||
`meta` | System modifier. Equivalent to the Windows key.
|
`meta` | System modifier. Equivalent to the Windows key.
|
||||||
`fn` | Activates Fn mode, which assigns letters and symbols to special characters. e.g. `fn` `!` = `¡`
|
|
||||||
`compose` | Compose key. Enables composing characters using Linux-like shortcuts; e.g. `Compose` `A` `single quote` types `Á` (A with acute accent).
|
|
||||||
`capslock` | Actives and locks Shift
|
|
||||||
|
|
||||||
## Special keys
|
The other modifiers take effect only within the keyboard.
|
||||||
|
|
||||||
|
Value | Meaning
|
||||||
|
:---------- | :------
|
||||||
|
`fn` | Activates Fn mode, which assigns letters and symbols to special characters. Example: `fn` `!` = `¡`
|
||||||
|
`compose` | Compose key. Enables composing characters using Linux-like shortcuts. Example: `Compose` `A` `'` types `Á` (A with acute accent).
|
||||||
|
`capslock` | Activates and locks Shift.
|
||||||
|
|
||||||
|
## App function keys
|
||||||
These keys are sent to apps, which are free to ignore them. The keyboard does not perform editing in response to these keys.
|
These keys are sent to apps, which are free to ignore them. The keyboard does not perform editing in response to these keys.
|
||||||
|
|
||||||
`esc`, `enter`,
|
`esc`, `enter`,
|
||||||
@@ -46,12 +77,24 @@ These keys are sent to apps, which are free to ignore them. The keyboard does no
|
|||||||
`page_up`, `page_down`,
|
`page_up`, `page_down`,
|
||||||
`home`, `end`,
|
`home`, `end`,
|
||||||
`backspace`, `delete`,
|
`backspace`, `delete`,
|
||||||
`insert`, `f1`-`f12`,
|
`insert`, `scroll_lock`,
|
||||||
|
`f1`-`f12`,
|
||||||
`tab`, `copy`,
|
`tab`, `copy`,
|
||||||
`paste`, `cut`,
|
`paste`, `cut`,
|
||||||
`selectAll`, `pasteAsPlainText`,
|
`selectAll`, `pasteAsPlainText`,
|
||||||
`undo`, `redo`
|
`undo`, `redo`
|
||||||
|
|
||||||
|
## Keyboard editing actions
|
||||||
|
In contrast, these keys perform editing on the text without sending anything to the app.
|
||||||
|
Value | Meaning
|
||||||
|
:-------------------- | :------
|
||||||
|
`cursor_left` | Moves the cursor to the left with the slider gesture.
|
||||||
|
`cursor_right` | Moves the cursor to the right with the slider gesture.
|
||||||
|
`cursor_up` | Moves the cursor up with the slider gesture. Warning: this might make the cursor leave the text box.
|
||||||
|
`cursor_down` | Moves the cursor down with the slider gesture. Warning: this might make the cursor leave the text box.
|
||||||
|
`delete_word` | Delete the word to the left of the cursor.
|
||||||
|
`forward_delete_word` | Delete the word to the right of the cursor.
|
||||||
|
|
||||||
## Whitespace
|
## Whitespace
|
||||||
Value | Meaning
|
Value | Meaning
|
||||||
:------ | :------
|
:------ | :------
|
||||||
@@ -61,13 +104,6 @@ Value | Meaning
|
|||||||
`zwj` | Zero-width joiner.
|
`zwj` | Zero-width joiner.
|
||||||
`zwnj` | Zero-width non-joiner.
|
`zwnj` | Zero-width non-joiner.
|
||||||
|
|
||||||
## Keyboard editing actions
|
|
||||||
These keys perform editing on the text without sending keys that the app can interpret differently or ignore.
|
|
||||||
Value | Meaning
|
|
||||||
:----------------- | :------
|
|
||||||
`cursor_left` | Moves the cursor position to the left directly, without sending a `left` key event.
|
|
||||||
`cursor_right` | Moves the cursor position to the right directly, without sending a `right` key event.
|
|
||||||
|
|
||||||
## Other modifiers and diacritics
|
## Other modifiers and diacritics
|
||||||
Value | Meaning
|
Value | Meaning
|
||||||
:------------------- | :------
|
:------------------- | :------
|
||||||
@@ -90,6 +126,7 @@ Value | Meaning
|
|||||||
`accent_dot_below` | Dot below. `ạ`
|
`accent_dot_below` | Dot below. `ạ`
|
||||||
`accent_horn` | Horn accent. `ơ`
|
`accent_horn` | Horn accent. `ơ`
|
||||||
`accent_hook_above` | Hook accent. `ả`
|
`accent_hook_above` | Hook accent. `ả`
|
||||||
|
`accent_double_grave` | Double grave accent. `ȁ`
|
||||||
`superscript` | Superscript. `ᵃ`
|
`superscript` | Superscript. `ᵃ`
|
||||||
`subscript` | Subscript. `ₐ`
|
`subscript` | Subscript. `ₐ`
|
||||||
`ordinal` | Turns `a` and `o` into `ª` and `º`.
|
`ordinal` | Turns `a` and `o` into `ª` and `º`.
|
||||||
@@ -119,7 +156,7 @@ Keys ending in `_placeholder` are normally hidden unless the Fn key is pressed.
|
|||||||
`ole`, `ole_placeholder`,
|
`ole`, `ole_placeholder`,
|
||||||
`meteg`, `meteg_placeholder`
|
`meteg`, `meteg_placeholder`
|
||||||
|
|
||||||
## Unexpected Keyboard specific
|
## Keyboard behavior keys
|
||||||
Value | Meaning
|
Value | Meaning
|
||||||
:--------------------- | :------
|
:--------------------- | :------
|
||||||
`config` | Gear icon; opens Unexpected Keyboard settings.
|
`config` | Gear icon; opens Unexpected Keyboard settings.
|
||||||
@@ -130,6 +167,7 @@ Value | Meaning
|
|||||||
`switch_forward` | Change the keyboard layout, as long as Unexpected Keyboard has multiple keyboard layouts enabled in the settings.
|
`switch_forward` | Change the keyboard layout, as long as Unexpected Keyboard has multiple keyboard layouts enabled in the settings.
|
||||||
`switch_backward` | Change the keyboard layout to the previous one in the list.
|
`switch_backward` | Change the keyboard layout to the previous one in the list.
|
||||||
`switch_greekmath` | Switch to the Greek & Math Symbols layer.
|
`switch_greekmath` | Switch to the Greek & Math Symbols layer.
|
||||||
|
`switch_clipboard` | Switch to the clipboard pane.
|
||||||
`change_method` | Open the input method picker dialog.
|
`change_method` | Open the input method picker dialog.
|
||||||
`change_method_prev` | Switch to the previously used input method.
|
`change_method_prev` | Switch to the previously used input method.
|
||||||
`action` | Performs a special context-sensitive operation related to the Enter key. For example, in the Twitter (X) app, `enter` adds a new line, while `action` posts.
|
`action` | Performs a special context-sensitive operation related to the Enter key. For example, in the Twitter (X) app, `enter` adds a new line, while `action` posts.
|
||||||
|
8
fastlane/metadata/android/en-US/changelogs/41.txt
Normal file
8
fastlane/metadata/android/en-US/changelogs/41.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Clipboard pane
|
||||||
|
|
||||||
|
New Monet theme
|
||||||
|
Improvements to custom layouts
|
||||||
|
Options to disable key repeat and the circle gesture
|
||||||
|
Options to disable the Tab and Esc keys
|
||||||
|
|
||||||
|
Many thanks to the contributors: @alotbsol555 @ChasmSolacer @eandersons @polyctena @Sestowner @solokot @Spike-from-NH @TadaCZE @V6lhost @Validbit
|
6
fastlane/metadata/android/en-US/changelogs/42.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/42.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Fix crash on Android 6.
|
||||||
|
Fix scaling issues for layouts with few columns.
|
||||||
|
Added Serbian layouts.
|
||||||
|
Layout and compose key tweaks. Improvements to custom layouts. Added Menu key.
|
||||||
|
|
||||||
|
Many thanks to the contributors: @adrian4096 @asivery @bokidori @dingodoppelt @RZHSSNZDH
|
14
fastlane/metadata/android/en-US/changelogs/43.txt
Normal file
14
fastlane/metadata/android/en-US/changelogs/43.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
New supported languages: Albanian, Belgian, Estonian, Georgian, Hawaiian,
|
||||||
|
Irish, Kannada, Kazakh, Old Church Slavonic, Serbian, Tajiki, Tamil, Welsh
|
||||||
|
|
||||||
|
Added WORKMAN (US) layout.
|
||||||
|
Improved layouts for modern Hindi and Sanskrit, Greek, Kurdish, Persian, Czech.
|
||||||
|
|
||||||
|
New compose sequences and added combining diacritic keys.
|
||||||
|
New and improved themes.
|
||||||
|
Many bug fixes and improvements.
|
||||||
|
|
||||||
|
Many thanks to the contributors: @anaskaejdar @bokidori @cknight828 @cuhsy
|
||||||
|
@Danger-Mkh @DocJr90 @IYO-OYI @kalankaboom @Kxeo @marciozomb13 @ms-jagadeeshan
|
||||||
|
@npnpatidar @ptitgnu @quantenzitrone @Sestowner @solokot @Spike-from-NH
|
||||||
|
@tenextractor
|
1
fastlane/metadata/android/en-US/changelogs/44.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/44.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Bug fixes
|
1
fastlane/metadata/android/en-US/changelogs/45.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/45.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Bug fixes
|
1
fastlane/metadata/android/en-US/changelogs/46.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/46.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Bug fixes
|
7
fastlane/metadata/android/ja-JP/full_description.txt
Normal file
7
fastlane/metadata/android/ja-JP/full_description.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
このキーボードは、キーの角をスワイプすることで様々なキーを入力できます。
|
||||||
|
|
||||||
|
このアプリは元々はTermuxでのプログラミング用に設計されました。
|
||||||
|
しかし、今では普段の入力にも適しています。
|
||||||
|
PCキーボードでの半角入力を再現しています。日本語入力、変換は出来ません。
|
||||||
|
|
||||||
|
このアプリは広告を含まず、インターネットに接続せず、そしてオープンソースです。
|
1
fastlane/metadata/android/ja-JP/short_description.txt
Normal file
1
fastlane/metadata/android/ja-JP/short_description.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
軽量でプライバシーに配慮したAndroid用仮想キーボード
|
1
fastlane/metadata/android/ja-JP/title.txt
Normal file
1
fastlane/metadata/android/ja-JP/title.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Unexpected Keyboard
|
@@ -1,18 +1,6 @@
|
|||||||
이 앱은 안드로이드용 가상 키보드입니다. 주요 기능은 스와이프 제스처를 사용하여 모든 ASCII 문자를 쉽게 입력할 수 있다는 점과 악센트 및 수정자 키를 위한 데드 키와 특수 키(tab, esc, 방향키 등)이 있다는 것입니다.
|
주요 기능은 모서리 방향으로 키를 스와이프하여 더 많은 문자를 입력할 수 있다는 것입니다.
|
||||||
|
|
||||||
키보드는 각 키의 모서리에 최대 4개의 추가 문자를 표시합니다. 이러한 추가 문자는 키에서 손가락을 스와이프하여 적중됩니다.
|
이 앱은 처음에는 Termux를 사용하는 프로그래머들을 위한 것으로 개발되었습니다.
|
||||||
|
지금은 일상적인 용도로도 완벽합니다.
|
||||||
|
|
||||||
일부 하이라이트 기능:
|
이 응용 프로그램에는 광고가 없으며 네트워크 요청을 하지 않고 오픈 소스입니다.
|
||||||
|
|
||||||
- PC 키보드에서 사용할 수 있는 모든 문자 및 특수 키를 사요 가능합니다. 이것은 Termux와 같은 앱을 사용하는 데 효과적입니다.
|
|
||||||
|
|
||||||
- 여기에는 Tab, Esc, 방향키 및 function 키뿐만이 아닌 Ctrl 및 Alt 키도 포함되어 있습니다 !
|
|
||||||
|
|
||||||
- 악센트 키는 데드 키를 사용하여 액세스할 수 있습니다. 먼저 악센트 키를 활성화한 다음 악센트 문자를 입력합니다.
|
|
||||||
|
|
||||||
- 매우 가볍고 빠릅니다. Google 키보드보다 500배, 기본 키보드보다 15배 적은 공간을 사용합니다. 광고와 사용 기록 추적 없음.
|
|
||||||
|
|
||||||
- 다중 레이아웃: QWERTY, QWERTZ, AZERTY. 다양한 테마: White, Dark, OLED Black. 또한 다른 많은 옵션들.
|
|
||||||
|
|
||||||
다른 가상 키보드와 마찬가지로 시스템 설정에서 활성화해야 합니다. 시스템 설정을 열고 다음으로 이동합니다.
|
|
||||||
시스템 > 언어 및 입력 > 키보드 > 키보드 관리.
|
|
||||||
|
@@ -52,7 +52,7 @@ def generate_arrays(out, layouts):
|
|||||||
values_items, entries_items = zip(*(system_item + layouts + custom_item)) # unzip
|
values_items, entries_items = zip(*(system_item + layouts + custom_item)) # unzip
|
||||||
ids_items = map(lambda s: "@xml/%s" % s if s not in ["system", "custom"] else "-1", values_items)
|
ids_items = map(lambda s: "@xml/%s" % s if s not in ["system", "custom"] else "-1", values_items)
|
||||||
root = XML.Element("resources")
|
root = XML.Element("resources")
|
||||||
root.append(XML.Comment(text="DO NOT EDIT. This file is generated, see gen_layouts.py."))
|
root.append(XML.Comment(text=" DO NOT EDIT. This file is generated, run 'gradle genLayoutsList'. "))
|
||||||
root.append(mk_array("string-array", "pref_layout_values", values_items))
|
root.append(mk_array("string-array", "pref_layout_values", values_items))
|
||||||
root.append(mk_array("string-array", "pref_layout_entries", entries_items))
|
root.append(mk_array("string-array", "pref_layout_entries", entries_items))
|
||||||
root.append(mk_array("integer-array", "layout_ids", ids_items))
|
root.append(mk_array("integer-array", "layout_ids", ids_items))
|
||||||
|
38
res/drawable/doc_anim_circle.xml
Normal file
38
res/drawable/doc_anim_circle.xml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt">
|
||||||
|
<aapt:attr name="android:drawable">
|
||||||
|
<vector android:name="vector" android:width="35dp" android:height="40dp" android:viewportWidth="35" android:viewportHeight="40">
|
||||||
|
<path android:name="trace" android:pathData="M 17.5 20 C 20 3 26 7 27.5 10" android:strokeColor="#09b3f1" android:strokeWidth="2" android:strokeLineCap="round"/>
|
||||||
|
<group android:name="pointer_g">
|
||||||
|
<path android:name="pointer" android:pathData="m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0" android:fillColor="#09b3f1" android:strokeColor="#09b3f1" android:strokeWidth="2" android:fillAlpha="0" android:strokeAlpha="0"/>
|
||||||
|
</group>
|
||||||
|
</vector>
|
||||||
|
</aapt:attr>
|
||||||
|
<target android:name="trace">
|
||||||
|
<aapt:attr name="android:animation">
|
||||||
|
<set>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="trimPathEnd" android:duration="700" android:valueFrom="0" android:valueTo="1" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
</set>
|
||||||
|
</aapt:attr>
|
||||||
|
</target>
|
||||||
|
<target android:name="pointer">
|
||||||
|
<aapt:attr name="android:animation">
|
||||||
|
<set>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
</set>
|
||||||
|
</aapt:attr>
|
||||||
|
</target>
|
||||||
|
<target android:name="pointer_g">
|
||||||
|
<aapt:attr name="android:animation">
|
||||||
|
<set>
|
||||||
|
<objectAnimator android:propertyXName="translateX" android:propertyYName="translateY" android:duration="700" android:pathData="M 17.5 20 C 20 3 26 7 27 10" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
</set>
|
||||||
|
</aapt:attr>
|
||||||
|
</target>
|
||||||
|
</animated-vector>
|
33
res/drawable/doc_anim_round_trip.xml
Normal file
33
res/drawable/doc_anim_round_trip.xml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt">
|
||||||
|
<aapt:attr name="android:drawable">
|
||||||
|
<vector android:name="vector" android:width="35dp" android:height="40dp" android:viewportWidth="35" android:viewportHeight="40">
|
||||||
|
<path android:name="trace" android:pathData="M 0 0" android:fillColor="#09b3f1" android:strokeColor="#09b3f1" android:strokeWidth="2" android:strokeLineCap="round"/>
|
||||||
|
</vector>
|
||||||
|
</aapt:attr>
|
||||||
|
<target android:name="trace">
|
||||||
|
<aapt:attr name="android:animation">
|
||||||
|
<set>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="pathData"
|
||||||
|
android:duration="350"
|
||||||
|
android:valueFrom="M 17.5 20.0 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 17.5,20.0"
|
||||||
|
android:valueTo="M 31 4 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 31,4"
|
||||||
|
android:valueType="pathType"
|
||||||
|
android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="pathData"
|
||||||
|
android:startOffset="400"
|
||||||
|
android:duration="800"
|
||||||
|
android:valueFrom="M 31 4 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 31,4"
|
||||||
|
android:valueTo="M 17.5 20.0 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 31,4"
|
||||||
|
android:valueType="pathType"
|
||||||
|
android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
</set>
|
||||||
|
</aapt:attr>
|
||||||
|
</target>
|
||||||
|
</animated-vector>
|
25
res/drawable/doc_anim_swipe.xml
Normal file
25
res/drawable/doc_anim_swipe.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt">
|
||||||
|
<aapt:attr name="android:drawable">
|
||||||
|
<vector android:name="vector" android:width="35dp" android:height="40dp" android:viewportWidth="35" android:viewportHeight="40">
|
||||||
|
<path android:name="trace" android:pathData="M 0 0" android:fillColor="#09b3f1" android:strokeColor="#09b3f1" android:strokeWidth="2" android:strokeLineCap="round"/>
|
||||||
|
</vector>
|
||||||
|
</aapt:attr>
|
||||||
|
<target android:name="trace">
|
||||||
|
<aapt:attr name="android:animation">
|
||||||
|
<set>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="pathData"
|
||||||
|
android:duration="700"
|
||||||
|
android:valueFrom="M 17.5 20.0 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 17.5,20.0"
|
||||||
|
android:valueTo=" M 31 4 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 31 ,4"
|
||||||
|
android:valueType="pathType"
|
||||||
|
android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
</set>
|
||||||
|
</aapt:attr>
|
||||||
|
</target>
|
||||||
|
</animated-vector>
|
25
res/drawable/doc_key_g.xml
Normal file
25
res/drawable/doc_key_g.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="35dp"
|
||||||
|
android:height="40dp"
|
||||||
|
android:viewportWidth="35.0"
|
||||||
|
android:viewportHeight="40.0">
|
||||||
|
<path
|
||||||
|
android:pathData="M11.26,10.13L23.74,10.13A1.13,1.13 0,0 1,24.87 11.26L24.87,28.74A1.13,1.13 0,0 1,23.74 29.88L11.26,29.88A1.13,1.13 0,0 1,10.13 28.74L10.13,11.26A1.13,1.13 0,0 1,11.26 10.13z"
|
||||||
|
android:fillAlpha="1"
|
||||||
|
android:strokeColor="#404040"
|
||||||
|
android:fillColor="#333333"
|
||||||
|
android:strokeWidth="0.251"
|
||||||
|
android:strokeAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m11.18,28.83l0,-0.54l2.9,0l0,0.54z"
|
||||||
|
android:fillColor="#cccccc"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m19.52,17.02 l0.26,0.81q-0.27,0.09 -0.61,0.12 -0.33,0.03 -0.73,0.03 0.41,0.18 0.62,0.47 0.21,0.28 0.21,0.7 0,0.45 -0.22,0.8 -0.22,0.35 -0.62,0.55 -0.41,0.2 -0.97,0.2 -0.2,0 -0.35,-0.02 -0.14,-0.02 -0.28,-0.06 -0.09,0.06 -0.15,0.17 -0.06,0.1 -0.06,0.21 0,0.14 0.11,0.24 0.12,0.1 0.46,0.1l0.8,0q0.49,0 0.87,0.17 0.38,0.17 0.59,0.46 0.22,0.29 0.22,0.65 0,0.69 -0.59,1.07 -0.59,0.38 -1.71,0.38 -0.79,0 -1.24,-0.16 -0.45,-0.16 -0.63,-0.48 -0.18,-0.32 -0.18,-0.78l0.88,0q0,0.24 0.09,0.4 0.1,0.16 0.35,0.24 0.26,0.08 0.74,0.08 0.48,0 0.77,-0.08 0.29,-0.08 0.41,-0.23 0.13,-0.15 0.13,-0.36 0,-0.28 -0.24,-0.43 -0.24,-0.15 -0.65,-0.15l-0.79,0q-0.65,0 -0.96,-0.27 -0.3,-0.27 -0.3,-0.62 0,-0.24 0.13,-0.45 0.14,-0.22 0.38,-0.38 -0.41,-0.22 -0.61,-0.53 -0.19,-0.31 -0.19,-0.76 0,-0.49 0.24,-0.85 0.24,-0.37 0.68,-0.57 0.44,-0.2 1,-0.2 0.55,0 0.92,-0.06 0.37,-0.06 0.64,-0.17 0.28,-0.11 0.55,-0.24zM17.41,18.15q-0.47,0 -0.7,0.27 -0.24,0.26 -0.24,0.68 0,0.44 0.24,0.7 0.24,0.26 0.71,0.26 0.43,0 0.66,-0.25 0.23,-0.25 0.23,-0.72 0,-0.47 -0.23,-0.71 -0.23,-0.24 -0.68,-0.24z"
|
||||||
|
android:fillColor="#fdfdfd"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m21.24,13.59l0,-0.53l2.4,0l0,0.53z"
|
||||||
|
android:fillColor="#cccccc"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
</vector>
|
25
res/drawable/doc_key_u.xml
Normal file
25
res/drawable/doc_key_u.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="35dp"
|
||||||
|
android:height="40dp"
|
||||||
|
android:viewportWidth="35.0"
|
||||||
|
android:viewportHeight="40.0">
|
||||||
|
<path
|
||||||
|
android:pathData="M11.26,10.13L23.74,10.13A1.13,1.13 0,0 1,24.87 11.26L24.87,28.74A1.13,1.13 0,0 1,23.74 29.88L11.26,29.88A1.13,1.13 0,0 1,10.13 28.74L10.13,11.26A1.13,1.13 0,0 1,11.26 10.13z"
|
||||||
|
android:fillAlpha="1"
|
||||||
|
android:strokeColor="#404040"
|
||||||
|
android:fillColor="#333333"
|
||||||
|
android:strokeWidth="0.251"
|
||||||
|
android:strokeAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m16.64,17.64l0,3.21q0,0.41 0.16,0.58 0.17,0.17 0.5,0.17 0.31,0 0.61,-0.19 0.29,-0.19 0.46,-0.46l0,-3.33l0.98,0l0,4.6l-0.84,0l-0.06,-0.59q-0.26,0.34 -0.65,0.53 -0.39,0.18 -0.8,0.18 -0.67,0 -1,-0.37 -0.33,-0.37 -0.33,-1.01l0,-3.33z"
|
||||||
|
android:fillColor="#fdfdfd"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m12.52,24.71q0.3,0 0.54,0.09 0.25,0.09 0.49,0.35l-0.37,0.33q-0.14,-0.16 -0.28,-0.23 -0.14,-0.08 -0.34,-0.08 -0.27,0 -0.41,0.15 -0.14,0.15 -0.14,0.39 0,0.17 0.08,0.31 0.08,0.14 0.23,0.22 0.15,0.08 0.33,0.08l1.58,0l0,0.46l-0.47,0l0,1.56q-0.1,0.12 -0.26,0.24 -0.16,0.12 -0.41,0.21 -0.24,0.08 -0.58,0.08 -0.45,0 -0.75,-0.17 -0.3,-0.17 -0.44,-0.45 -0.15,-0.28 -0.15,-0.6 0,-0.46 0.24,-0.74 0.24,-0.28 0.66,-0.37l0,-0.02q-0.25,-0.06 -0.4,-0.18 -0.15,-0.12 -0.22,-0.3 -0.07,-0.17 -0.07,-0.37 0,-0.26 0.14,-0.48 0.14,-0.22 0.4,-0.35 0.26,-0.13 0.6,-0.13zM13.18,26.79l-0.58,0q-0.28,0 -0.45,0.12 -0.17,0.12 -0.26,0.32 -0.08,0.19 -0.08,0.39 0,0.2 0.08,0.37 0.08,0.17 0.24,0.28 0.16,0.1 0.42,0.1 0.21,0 0.37,-0.07 0.16,-0.07 0.26,-0.19z"
|
||||||
|
android:fillColor="#cccccc"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m22.12,15.25 l-0.61,-0.19 1.54,-3.37l-1.84,0l0,-0.51l2.49,0l0,0.47z"
|
||||||
|
android:fillColor="#cccccc"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
</vector>
|
1
res/drawable/ic_clipboard_paste.xml
Normal file
1
res/drawable/ic_clipboard_paste.xml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<!-- drawable/file_send.xml --><vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:width="24dp" android:viewportWidth="24" android:viewportHeight="24"><path android:fillColor="#000000" android:pathData="M14,2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M12.54,19.37V17.37H8.54V15.38H12.54V13.38L15.54,16.38L12.54,19.37M13,9V3.5L18.5,9H13Z" /></vector>
|
1
res/drawable/ic_clipboard_save.xml
Normal file
1
res/drawable/ic_clipboard_save.xml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<!-- drawable/bookmark_plus.xml --><vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:width="24dp" android:viewportWidth="24" android:viewportHeight="24"><path android:fillColor="#000000" android:pathData="M17,3A2,2 0 0,1 19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17M11,7V9H9V11H11V13H13V11H15V9H13V7H11Z" /></vector>
|
1
res/drawable/ic_delete.xml
Normal file
1
res/drawable/ic_delete.xml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<!-- drawable/delete.xml --><vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:width="24dp" android:viewportWidth="24" android:viewportHeight="24"><path android:fillColor="#000000" android:pathData="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z" /></vector>
|
8
res/layout/clipboard_history_entry.xml
Normal file
8
res/layout/clipboard_history_entry.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
|
||||||
|
<TextView android:id="@+id/clipboard_entry_text" style="@style/clipboardEntry"/>
|
||||||
|
<LinearLayout style="@style/clipboardEntryButtons">
|
||||||
|
<View android:id="@+id/clipboard_entry_paste" style="@style/clipboardEntryButton" android:background="@drawable/ic_clipboard_paste"/>
|
||||||
|
<View android:id="@+id/clipboard_entry_addpin" style="@style/clipboardEntryButton" android:background="@drawable/ic_clipboard_save"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
12
res/layout/clipboard_pane.xml
Normal file
12
res/layout/clipboard_pane.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="?attr/colorKeyboard" android:hardwareAccelerated="false">
|
||||||
|
<ScrollView android:layout_width="fill_parent" android:layout_height="@dimen/clipboard_view_height">
|
||||||
|
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
|
||||||
|
<juloo.keyboard2.ClipboardHistoryCheckBox android:text="@string/clipboard_history_heading" style="@style/clipboardHeading" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
|
||||||
|
<juloo.keyboard2.ClipboardHistoryView android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="?attr/clipboard_divider_color" android:dividerHeight="?attr/clipboard_divider_height"/>
|
||||||
|
<TextView android:text="@string/clipboard_pin_heading" style="@style/clipboardHeading" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
|
||||||
|
<juloo.keyboard2.ClipboardPinView android:id="@+id/clipboard_pin_view" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="?attr/clipboard_divider_color" android:dividerHeight="?attr/clipboard_divider_height"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
<juloo.keyboard2.Keyboard2View layout="@xml/clipboard_bottom_row" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="?attr/colorKeyboard"/>
|
||||||
|
</LinearLayout>
|
8
res/layout/clipboard_pin_entry.xml
Normal file
8
res/layout/clipboard_pin_entry.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
|
||||||
|
<TextView android:id="@+id/clipboard_pin_text" style="@style/clipboardEntry" android:maxLines="3"/>
|
||||||
|
<LinearLayout style="@style/clipboardEntryButtons">
|
||||||
|
<View android:id="@+id/clipboard_pin_paste" style="@style/clipboardEntryButton" android:background="@drawable/ic_clipboard_paste"/>
|
||||||
|
<View android:id="@+id/clipboard_pin_remove" style="@style/clipboardEntryButton" android:background="@drawable/ic_delete"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
@@ -1,10 +1,21 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true">
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:fitsSystemWindows="true">
|
||||||
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
|
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
|
||||||
<TextView style="@style/paragraph" android:text="@string/launcher_description"/>
|
<TextView style="@style/paragraph" android:text="@string/launcher_description"/>
|
||||||
<Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/>
|
<Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/>
|
||||||
<Button style="@style/paragraph" android:text="@string/launcher_button_imepicker" android:onClick="launch_imepicker" android:layout_width="wrap_content"/>
|
<Button style="@style/paragraph" android:text="@string/launcher_button_imepicker" android:onClick="launch_imepicker" android:layout_width="wrap_content"/>
|
||||||
<VideoView android:id="@+id/launcher_intro_video" android:layout_width="240dp" android:layout_height="wrap_content" android:layout_gravity="center"/>
|
<LinearLayout style="@style/anim_box">
|
||||||
|
<ImageView style="@style/anim" android:id="@+id/launcher_anim_swipe" android:background="@drawable/doc_key_u" android:src="@drawable/doc_anim_swipe"/>
|
||||||
|
<TextView style="@style/anim_text" android:text="7"/>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout style="@style/anim_box">
|
||||||
|
<ImageView style="@style/anim" android:id="@+id/launcher_anim_circle" android:background="@drawable/doc_key_g" android:src="@drawable/doc_anim_circle"/>
|
||||||
|
<TextView style="@style/anim_text" android:text="G"/>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout style="@style/anim_box">
|
||||||
|
<ImageView style="@style/anim" android:id="@+id/launcher_anim_round_trip" android:background="@drawable/doc_key_g" android:src="@drawable/doc_anim_round_trip"/>
|
||||||
|
<TextView style="@style/anim_text" android:text="–"/>
|
||||||
|
</LinearLayout>
|
||||||
<TextView android:id="@+id/launcher_tryhere_text" style="@style/paragraph" android:text="@string/launcher_tryhere"/>
|
<TextView android:id="@+id/launcher_tryhere_text" style="@style/paragraph" android:text="@string/launcher_tryhere"/>
|
||||||
<EditText android:id="@+id/launcher_tryhere_area" style="@style/paragraph" android:inputType="text" android:hint="@string/launcher_tryhere_hint" android:importantForAutofill="no"/>
|
<EditText android:id="@+id/launcher_tryhere_area" style="@style/paragraph" android:inputType="text" android:hint="@string/launcher_tryhere_hint" android:importantForAutofill="no"/>
|
||||||
<TextView style="@style/paragraph" android:text="@string/launcher_sourcecode"/>
|
<TextView style="@style/paragraph" android:text="@string/launcher_sourcecode"/>
|
||||||
|
Binary file not shown.
@@ -38,9 +38,9 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je
|
|||||||
<string name="pref_category_typing">Psaní</string>
|
<string name="pref_category_typing">Psaní</string>
|
||||||
<string name="pref_swipe_dist_title">Vzdálenost posunutí prstem</string>
|
<string name="pref_swipe_dist_title">Vzdálenost posunutí prstem</string>
|
||||||
<string name="pref_swipe_dist_summary">Jak daleko je třeba posunout prst pro zadání znaku/znaménka v rohu klávey (%s)</string>
|
<string name="pref_swipe_dist_summary">Jak daleko je třeba posunout prst pro zadání znaku/znaménka v rohu klávey (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Doba pro aktivaci dlouhého podržení</string>
|
||||||
<string name="pref_long_interval_title">Interval opakování znaků</string>
|
<string name="pref_long_interval_title">Interval opakování znaků</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Opakování kláves při držení</string>
|
||||||
<string name="pref_lock_double_tap_title">Dvojklik pro aktivaci Capslock(u)</string>
|
<string name="pref_lock_double_tap_title">Dvojklik pro aktivaci Capslock(u)</string>
|
||||||
<string name="pref_lock_double_tap_summary">Umožňuje zamknout Shift dvojklikem, namísto podržení</string>
|
<string name="pref_lock_double_tap_summary">Umožňuje zamknout Shift dvojklikem, namísto podržení</string>
|
||||||
<string name="pref_category_behavior">Chování</string>
|
<string name="pref_category_behavior">Chování</string>
|
||||||
@@ -68,6 +68,10 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je
|
|||||||
<string name="pref_theme_e_epaper">ePapír</string>
|
<string name="pref_theme_e_epaper">ePapír</string>
|
||||||
<string name="pref_theme_e_desert">Poušťě</string>
|
<string name="pref_theme_e_desert">Poušťě</string>
|
||||||
<string name="pref_theme_e_jungle">Džungle</string>
|
<string name="pref_theme_e_jungle">Džungle</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (dle systému)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (Světlý)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Tmavý)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Velmi krátká</string>
|
<string name="pref_swipe_dist_e_very_short">Velmi krátká</string>
|
||||||
<string name="pref_swipe_dist_e_short">Krátká</string>
|
<string name="pref_swipe_dist_e_short">Krátká</string>
|
||||||
<string name="pref_swipe_dist_e_default">Běžná</string>
|
<string name="pref_swipe_dist_e_default">Běžná</string>
|
||||||
@@ -78,11 +82,11 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je
|
|||||||
<string name="pref_border_config_title">Přizpůsobit okraje</string>
|
<string name="pref_border_config_title">Přizpůsobit okraje</string>
|
||||||
<string name="pref_border_width_title">Šířka okraje</string>
|
<string name="pref_border_width_title">Šířka okraje</string>
|
||||||
<string name="pref_corners_radius_title">Poloměr okraje</string>
|
<string name="pref_corners_radius_title">Poloměr okraje</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Citlivost kruhového gesta</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Vysoká</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Střední</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Nízká</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Deaktivováno</string>
|
||||||
<string name="key_action_next">Další</string>
|
<string name="key_action_next">Další</string>
|
||||||
<string name="key_action_done">Dokončit</string>
|
<string name="key_action_done">Dokončit</string>
|
||||||
<string name="key_action_go">Spustit</string>
|
<string name="key_action_go">Spustit</string>
|
||||||
@@ -116,4 +120,19 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je
|
|||||||
<string name="key_descr_page_down">Page Down</string>
|
<string name="key_descr_page_down">Page Down</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">Správce schránky</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Nedávno kopírovaný text</string>
|
||||||
|
<string name="clipboard_pin_heading">Připnout</string>
|
||||||
|
<string name="clipboard_remove_confirm">Odebrat ze schránky?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Ano</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quell
|
|||||||
<string name="pref_category_typing">Tippen</string>
|
<string name="pref_category_typing">Tippen</string>
|
||||||
<string name="pref_swipe_dist_title">Länge der Wischgeste</string>
|
<string name="pref_swipe_dist_title">Länge der Wischgeste</string>
|
||||||
<string name="pref_swipe_dist_summary">Abstand der Zeichen in den Ecken der Tasten (%s)</string>
|
<string name="pref_swipe_dist_summary">Abstand der Zeichen in den Ecken der Tasten (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Zeitüberschreitung durch langes Drücken</string>
|
||||||
<string name="pref_long_interval_title">Intervall der Tastenwiederholung</string>
|
<string name="pref_long_interval_title">Intervall der Tastenwiederholung</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Tastenwiederholung bei langem Drücken</string>
|
||||||
<string name="pref_lock_double_tap_title">Umschalttaste mit Doppeltippen einrasten</string>
|
<string name="pref_lock_double_tap_title">Umschalttaste mit Doppeltippen einrasten</string>
|
||||||
<string name="pref_lock_double_tap_summary">Anstatt Taste längere Zeit gedrückt zu halten</string>
|
<string name="pref_lock_double_tap_summary">Anstatt Taste längere Zeit gedrückt zu halten</string>
|
||||||
<string name="pref_category_behavior">Verhalten</string>
|
<string name="pref_category_behavior">Verhalten</string>
|
||||||
@@ -68,6 +68,10 @@ Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quell
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<string name="pref_theme_e_desert">Wüste</string>
|
<string name="pref_theme_e_desert">Wüste</string>
|
||||||
<string name="pref_theme_e_jungle">Dschungel</string>
|
<string name="pref_theme_e_jungle">Dschungel</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (System)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (Hell)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Dunkel)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Sehr kurz</string>
|
<string name="pref_swipe_dist_e_very_short">Sehr kurz</string>
|
||||||
<string name="pref_swipe_dist_e_short">Kurz</string>
|
<string name="pref_swipe_dist_e_short">Kurz</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@@ -116,4 +120,19 @@ Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quell
|
|||||||
<string name="key_descr_page_down">Bild ab</string>
|
<string name="key_descr_page_down">Bild ab</string>
|
||||||
<string name="key_descr_home">Pos1</string>
|
<string name="key_descr_home">Pos1</string>
|
||||||
<string name="key_descr_end">Ende</string>
|
<string name="key_descr_end">Ende</string>
|
||||||
|
<string name="key_descr_clipboard">Clipboard-Manager</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Zuletzt kopierter Text</string>
|
||||||
|
<string name="clipboard_pin_heading">Angeheftet</string>
|
||||||
|
<string name="clipboard_remove_confirm">Aus der Zwischenablage entfernen?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Ja</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y
|
|||||||
<string name="pref_category_typing">Escritura</string>
|
<string name="pref_category_typing">Escritura</string>
|
||||||
<string name="pref_swipe_dist_title">Distancia de deslizamiento</string>
|
<string name="pref_swipe_dist_title">Distancia de deslizamiento</string>
|
||||||
<string name="pref_swipe_dist_summary">Distancia de caracteres en las esquinas de las teclas (%s)</string>
|
<string name="pref_swipe_dist_summary">Distancia de caracteres en las esquinas de las teclas (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Duración para toque largo</string>
|
||||||
<string name="pref_long_interval_title">Intervalo de repetición de tecla</string>
|
<string name="pref_long_interval_title">Intervalo de repetición de tecla</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Permitir repetición de toque largo</string>
|
||||||
<string name="pref_lock_double_tap_title">Doble toque en Mayús para bloquear las mayúsculas</string>
|
<string name="pref_lock_double_tap_title">Doble toque en Mayús para bloquear las mayúsculas</string>
|
||||||
<string name="pref_lock_double_tap_summary">Se puede bloquear cualquier modificador manteniéndolo presionado</string>
|
<string name="pref_lock_double_tap_summary">Se puede bloquear cualquier modificador manteniéndolo presionado</string>
|
||||||
<string name="pref_category_behavior">Comportamiento</string>
|
<string name="pref_category_behavior">Comportamiento</string>
|
||||||
@@ -68,6 +68,10 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<string name="pref_theme_e_desert">Desierto</string>
|
<string name="pref_theme_e_desert">Desierto</string>
|
||||||
<string name="pref_theme_e_jungle">Selva</string>
|
<string name="pref_theme_e_jungle">Selva</string>
|
||||||
|
<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_swipe_dist_e_very_short">Muy corta</string>
|
<string name="pref_swipe_dist_e_very_short">Muy corta</string>
|
||||||
<string name="pref_swipe_dist_e_short">Corta</string>
|
<string name="pref_swipe_dist_e_short">Corta</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@@ -78,11 +82,11 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y
|
|||||||
<string name="pref_border_config_title">Bordes personalizados</string>
|
<string name="pref_border_config_title">Bordes personalizados</string>
|
||||||
<string name="pref_border_width_title">Ancho de bordes</string>
|
<string name="pref_border_width_title">Ancho de bordes</string>
|
||||||
<string name="pref_corners_radius_title">Radio de rincones</string>
|
<string name="pref_corners_radius_title">Radio de rincones</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Sensibilidad a gestos circulares</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Alta</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Mediana</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Baja</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Apagada</string>
|
||||||
<string name="key_action_next">Siguiente</string>
|
<string name="key_action_next">Siguiente</string>
|
||||||
<string name="key_action_done">Hecho</string>
|
<string name="key_action_done">Hecho</string>
|
||||||
<string name="key_action_go">Ir</string>
|
<string name="key_action_go">Ir</string>
|
||||||
@@ -116,4 +120,19 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y
|
|||||||
<string name="key_descr_page_down">Re Pág</string>
|
<string name="key_descr_page_down">Re Pág</string>
|
||||||
<string name="key_descr_home">Inicio</string>
|
<string name="key_descr_home">Inicio</string>
|
||||||
<string name="key_descr_end">Fin</string>
|
<string name="key_descr_end">Fin</string>
|
||||||
|
<string name="key_descr_clipboard">Arreglar portapapeles</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Textos recién copiados</string>
|
||||||
|
<string name="clipboard_pin_heading">Pegado</string>
|
||||||
|
<string name="clipboard_remove_confirm">¿Sacar este portapapeles?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Sí</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="pref_theme_e_epaper">ای-پیپر</string>
|
<string name="pref_theme_e_epaper">ای-پیپر</string>
|
||||||
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
||||||
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">بسیار کوتاه</string>
|
<string name="pref_swipe_dist_e_very_short">بسیار کوتاه</string>
|
||||||
<string name="pref_swipe_dist_e_short">کوتاه</string>
|
<string name="pref_swipe_dist_e_short">کوتاه</string>
|
||||||
<string name="pref_swipe_dist_e_default">عادی</string>
|
<string name="pref_swipe_dist_e_default">عادی</string>
|
||||||
@@ -116,4 +120,19 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirmed">Yes</string> -->
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="pref_category_typing">Saisie</string>
|
<string name="pref_category_typing">Saisie</string>
|
||||||
<string name="pref_swipe_dist_title">Distance de swipe</string>
|
<string name="pref_swipe_dist_title">Distance de swipe</string>
|
||||||
<string name="pref_swipe_dist_summary">La distance des caractères dans les coins (%s)</string>
|
<string name="pref_swipe_dist_summary">La distance des caractères dans les coins (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Delai de l\'appui long</string>
|
||||||
<string name="pref_long_interval_title">Écart entre les répétitions</string>
|
<string name="pref_long_interval_title">Écart entre les répétitions</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Répétition par appui long</string>
|
||||||
<string name="pref_lock_double_tap_title">Appuyer deux fois pour bloquer la majuscule</string>
|
<string name="pref_lock_double_tap_title">Appuyer deux fois pour bloquer la majuscule</string>
|
||||||
<string name="pref_lock_double_tap_summary">Un appui long bloque la majuscule</string>
|
<string name="pref_lock_double_tap_summary">Un appui long bloque la majuscule</string>
|
||||||
<string name="pref_category_behavior">Comportement</string>
|
<string name="pref_category_behavior">Comportement</string>
|
||||||
@@ -48,8 +48,8 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="pref_autocapitalisation_summary">Activer Shift au début des phrases</string>
|
<string name="pref_autocapitalisation_summary">Activer Shift au début des phrases</string>
|
||||||
<string name="pref_switch_input_immediate_title">Changer vers le clavier utilisé en dernier</string>
|
<string name="pref_switch_input_immediate_title">Changer vers le clavier utilisé en dernier</string>
|
||||||
<string name="pref_switch_input_immediate_summary">Comportement de la touche de changement de clavier</string>
|
<string name="pref_switch_input_immediate_summary">Comportement de la touche de changement de clavier</string>
|
||||||
<!-- <string name="pref_vibrate_custom">Custom vibration</string> -->
|
<string name="pref_vibrate_custom">Vibrations personnalisées</string>
|
||||||
<!-- <string name="pref_vibrate_duration_title">Vibration intensity</string> -->
|
<string name="pref_vibrate_duration_title">Intensité des vibrations</string>
|
||||||
<string name="pref_pin_entry_enabled_title">Clavier PIN</string>
|
<string name="pref_pin_entry_enabled_title">Clavier PIN</string>
|
||||||
<string name="pref_pin_entry_enabled_summary">Lors de la saisie de nombres, de dates et de numéros de téléphone</string>
|
<string name="pref_pin_entry_enabled_summary">Lors de la saisie de nombres, de dates et de numéros de téléphone</string>
|
||||||
<string name="pref_category_style">Style</string>
|
<string name="pref_category_style">Style</string>
|
||||||
@@ -68,6 +68,10 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<string name="pref_theme_e_desert">Desert</string>
|
<string name="pref_theme_e_desert">Desert</string>
|
||||||
<string name="pref_theme_e_jungle">Jungle</string>
|
<string name="pref_theme_e_jungle">Jungle</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (Système)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (Clair)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Sombre)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Très courte</string>
|
<string name="pref_swipe_dist_e_very_short">Très courte</string>
|
||||||
<string name="pref_swipe_dist_e_short">Courte</string>
|
<string name="pref_swipe_dist_e_short">Courte</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normale</string>
|
<string name="pref_swipe_dist_e_default">Normale</string>
|
||||||
@@ -75,14 +79,14 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="pref_swipe_dist_e_very_far">Très longue</string>
|
<string name="pref_swipe_dist_e_very_far">Très longue</string>
|
||||||
<string name="pref_key_horizontal_space">Espacement horizontal entre les touches</string>
|
<string name="pref_key_horizontal_space">Espacement horizontal entre les touches</string>
|
||||||
<string name="pref_key_vertical_space">Espacement vertical entre les touches</string>
|
<string name="pref_key_vertical_space">Espacement vertical entre les touches</string>
|
||||||
<!-- <string name="pref_border_config_title">Customize borders</string> -->
|
<string name="pref_border_config_title">Bordures personnalisées</string>
|
||||||
<!-- <string name="pref_border_width_title">Border Width</string> -->
|
<string name="pref_border_width_title">Largeur des bordures</string>
|
||||||
<!-- <string name="pref_corners_radius_title">Corner radius</string> -->
|
<string name="pref_corners_radius_title">Rayon des coins</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Sensibilité du mouvement en cercle</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Haute</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Moyenne</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Basse</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Désactivée</string>
|
||||||
<string name="key_action_next">Suiv.</string>
|
<string name="key_action_next">Suiv.</string>
|
||||||
<string name="key_action_done">Fin</string>
|
<string name="key_action_done">Fin</string>
|
||||||
<string name="key_action_go">Aller</string>
|
<string name="key_action_go">Aller</string>
|
||||||
@@ -94,11 +98,11 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="launcher_description">Cette application est un clavier virtuel. Activez-le dans les paramètres système en cliquant sur le bouton ci-dessous.</string>
|
<string name="launcher_description">Cette application est un clavier virtuel. Activez-le dans les paramètres système en cliquant sur le bouton ci-dessous.</string>
|
||||||
<string name="launcher_sourcecode">Cette application est libre et open-source. Lisez le source code et reportez des problèmes sur Github.</string>
|
<string name="launcher_sourcecode">Cette application est libre et open-source. Lisez le source code et reportez des problèmes sur Github.</string>
|
||||||
<string name="launcher_tryhere">Après l\'avoir activé, vous pouvez l\'essayer ici:</string>
|
<string name="launcher_tryhere">Après l\'avoir activé, vous pouvez l\'essayer ici:</string>
|
||||||
<!-- <string name="launcher_tryhere_hint">Try here</string> -->
|
<string name="launcher_tryhere_hint">Essayer ici</string>
|
||||||
<string name="key_descr_capslock">Verrouillage majuscules</string>
|
<string name="key_descr_capslock">Verrouillage majuscules</string>
|
||||||
<!-- <string name="key_descr_compose">Compose</string> -->
|
<string name="key_descr_compose">Compose</string>
|
||||||
<string name="key_descr_switch_greekmath">Symboles mathématiques</string>
|
<string name="key_descr_switch_greekmath">Symboles mathématiques</string>
|
||||||
<!-- <string name="key_descr_change_method">Switch keyboard</string> -->
|
<string name="key_descr_change_method">Changer de clavier</string>
|
||||||
<string name="key_descr_voice_typing">Saisie vocale</string>
|
<string name="key_descr_voice_typing">Saisie vocale</string>
|
||||||
<string name="key_descr_copy">Copier</string>
|
<string name="key_descr_copy">Copier</string>
|
||||||
<string name="key_descr_paste">Coller</string>
|
<string name="key_descr_paste">Coller</string>
|
||||||
@@ -116,4 +120,19 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="key_descr_page_down">Page suivante</string>
|
<string name="key_descr_page_down">Page suivante</string>
|
||||||
<string name="key_descr_home">Début</string>
|
<string name="key_descr_home">Début</string>
|
||||||
<string name="key_descr_end">Fin</string>
|
<string name="key_descr_end">Fin</string>
|
||||||
|
<string name="key_descr_clipboard">Presse-papiers</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Texte récemment copié</string>
|
||||||
|
<string name="clipboard_pin_heading">Épinglé</string>
|
||||||
|
<string name="clipboard_remove_confirm">Supprimer ce presse-papiers ?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Oui</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
|
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
|
||||||
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
||||||
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Veramente breve</string>
|
<string name="pref_swipe_dist_e_very_short">Veramente breve</string>
|
||||||
<string name="pref_swipe_dist_e_short">Breve</string>
|
<string name="pref_swipe_dist_e_short">Breve</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normale</string>
|
<string name="pref_swipe_dist_e_default">Normale</string>
|
||||||
@@ -116,4 +120,19 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirmed">Yes</string> -->
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
139
res/values-ja/strings.xml
Normal file
139
res/values-ja/strings.xml
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<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">"このキーボードは、キーの角をスワイプすることで様々なキーを入力できます。
|
||||||
|
|
||||||
|
このアプリは元々はTermuxでのプログラミング用に設計されました。
|
||||||
|
しかし、今では普段の入力にも適しています。
|
||||||
|
PCキーボードでの半角入力を再現しています。日本語入力、変換は出来ません。
|
||||||
|
|
||||||
|
このアプリは広告を含まず、インターネットに接続せず、そしてオープンソースです。"</string>
|
||||||
|
<string name="settings_activity_label">Unexpected Keyboardの設定</string>
|
||||||
|
<string name="pref_portrait">縦向き</string>
|
||||||
|
<string name="pref_landscape">横向き</string>
|
||||||
|
<string name="pref_category_layout">レイアウト</string>
|
||||||
|
<string name="pref_label_brightness">文字の明るさ</string>
|
||||||
|
<string name="pref_keyboard_opacity">背景の不透明度</string>
|
||||||
|
<string name="pref_key_opacity">キーの不透明度</string>
|
||||||
|
<string name="pref_key_activated_opacity">押下中のキーの不透明度</string>
|
||||||
|
<string name="pref_layout_e_system">システム設定</string>
|
||||||
|
<string name="pref_layout_e_custom">カスタムレイアウト</string>
|
||||||
|
<string name="pref_layouts_add">レイアウトを追加</string>
|
||||||
|
<string name="pref_layouts_item">レイアウト %1$d: %2$s</string>
|
||||||
|
<string name="pref_layouts_remove_custom">レイアウトを削除</string>
|
||||||
|
<string name="pref_custom_layout_title">カスタムレイアウト</string>
|
||||||
|
<string name="pref_show_numpad_title">テンキーを表示</string>
|
||||||
|
<string name="pref_show_numpad_never">表示しない</string>
|
||||||
|
<string name="pref_show_numpad_landscape">横向きの時は表示</string>
|
||||||
|
<string name="pref_show_numpad_always">表示する</string>
|
||||||
|
<string name="pref_number_row_title">数字の行を表示</string>
|
||||||
|
<string name="pref_number_row_summary">テンキーが非表示の場合最上段に数字の行を追加します</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_extra_keys_title">追加のキーの設定</string>
|
||||||
|
<string name="pref_extra_keys_custom">キーを追加</string>
|
||||||
|
<string name="pref_extra_keys_internal">キーボードに表示するキーを選択</string>
|
||||||
|
<string name="pref_category_typing">入力</string>
|
||||||
|
<string name="pref_swipe_dist_title">スワイプ距離</string>
|
||||||
|
<string name="pref_swipe_dist_summary">キーの角をスワイプする距離 (%s)</string>
|
||||||
|
<string name="pref_long_timeout_title">キー長押しの時間</string>
|
||||||
|
<string name="pref_long_interval_title">キーを連続入力する間隔</string>
|
||||||
|
<string name="pref_keyrepeat_enabled">長押しでキーを連続入力する</string>
|
||||||
|
<string name="pref_lock_double_tap_title">ShiftをダブルタップでCaps Lock</string>
|
||||||
|
<string name="pref_lock_double_tap_summary">どの装飾キーも長押しで固定できます</string>
|
||||||
|
<string name="pref_category_behavior">挙動</string>
|
||||||
|
<string name="pref_autocapitalisation_title">自動大文字化</string>
|
||||||
|
<string name="pref_autocapitalisation_summary">文章の先頭でShiftキーを自動入力</string>
|
||||||
|
<string name="pref_switch_input_immediate_title">最後に使用したキーボードに切替</string>
|
||||||
|
<string name="pref_switch_input_immediate_summary">キーボード切替キーの挙動</string>
|
||||||
|
<string name="pref_vibrate_custom">キーボード独自の振動設定</string>
|
||||||
|
<string name="pref_vibrate_duration_title">振動の時間</string>
|
||||||
|
<string name="pref_pin_entry_enabled_title">PIN入力</string>
|
||||||
|
<string name="pref_pin_entry_enabled_summary">数字・日付・電話番号入力時</string>
|
||||||
|
<string name="pref_category_style">表示</string>
|
||||||
|
<string name="pref_margin_bottom_title">下の余白</string>
|
||||||
|
<string name="pref_keyboard_height_title">キーボードの高さ</string>
|
||||||
|
<string name="pref_horizontal_margin_title">左右の余白</string>
|
||||||
|
<string name="pref_character_size_title">文字の大きさ</string>
|
||||||
|
<string name="pref_character_size_summary">キーボードに表示される文字の大きさ (%.2fx)</string>
|
||||||
|
<string name="pref_theme">テーマ</string>
|
||||||
|
<string name="pref_theme_e_system">システム設定</string>
|
||||||
|
<string name="pref_theme_e_dark">ダークモード</string>
|
||||||
|
<string name="pref_theme_e_light">ライトモード</string>
|
||||||
|
<string name="pref_theme_e_black">黒</string>
|
||||||
|
<string name="pref_theme_e_altblack">黒(別バージョン)</string>
|
||||||
|
<string name="pref_theme_e_white">白</string>
|
||||||
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
|
<string name="pref_theme_e_desert">Desert</string>
|
||||||
|
<string name="pref_theme_e_jungle">Jungle</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (システム)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (ライト)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (ダーク)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
|
<string name="pref_swipe_dist_e_very_short">短い</string>
|
||||||
|
<string name="pref_swipe_dist_e_short">やや短い</string>
|
||||||
|
<string name="pref_swipe_dist_e_default">普通</string>
|
||||||
|
<string name="pref_swipe_dist_e_far">やや長い</string>
|
||||||
|
<string name="pref_swipe_dist_e_very_far">長い</string>
|
||||||
|
<string name="pref_key_horizontal_space">キー間の左右の間隔</string>
|
||||||
|
<string name="pref_key_vertical_space">キー間の上下の間隔</string>
|
||||||
|
<string name="pref_border_config_title">キー形状の設定</string>
|
||||||
|
<string name="pref_border_width_title">縁取り</string>
|
||||||
|
<string name="pref_corners_radius_title">丸み</string>
|
||||||
|
<string name="pref_circle_sensitivity_title">円形ジェスチャーの感度</string>
|
||||||
|
<string name="pref_circle_sensitivity_e_high">高</string>
|
||||||
|
<string name="pref_circle_sensitivity_e_medium">中</string>
|
||||||
|
<string name="pref_circle_sensitivity_e_low">低</string>
|
||||||
|
<string name="pref_circle_sensitivity_e_disabled">無効</string>
|
||||||
|
<string name="key_action_next">次へ</string>
|
||||||
|
<string name="key_action_done">完了</string>
|
||||||
|
<string name="key_action_go">実行</string>
|
||||||
|
<string name="key_action_prev">戻る</string>
|
||||||
|
<string name="key_action_search">検索</string>
|
||||||
|
<string name="key_action_send">送信</string>
|
||||||
|
<string name="launcher_button_imesettings">キーボードを有効化</string>
|
||||||
|
<string name="launcher_button_imepicker">キーボードを選択</string>
|
||||||
|
<string name="launcher_description">このアプリは仮想キーボードです。下のボタンからシステム設定を開いてUnexpected Keyboardを有効化してください。</string>
|
||||||
|
<string name="launcher_sourcecode">このアプリはオープンソースのフリーウェアです。GitHubでソースコードを入手したり、不具合を報告したりできます。</string>
|
||||||
|
<string name="launcher_tryhere">有効化されている場合、ここでキーボードを試すことができます。</string>
|
||||||
|
<string name="launcher_tryhere_hint">文字を入力</string>
|
||||||
|
<string name="key_descr_capslock">Caps Lock</string>
|
||||||
|
<string name="key_descr_compose">Compose</string>
|
||||||
|
<string name="key_descr_switch_greekmath">ギリシャ文字と数学記号</string>
|
||||||
|
<string name="key_descr_change_method">キーボードの切替</string>
|
||||||
|
<string name="key_descr_voice_typing">音声入力</string>
|
||||||
|
<string name="key_descr_copy">コピー</string>
|
||||||
|
<string name="key_descr_paste">貼り付け</string>
|
||||||
|
<string name="key_descr_cut">切り取り</string>
|
||||||
|
<string name="key_descr_selectAll">すべて選択</string>
|
||||||
|
<string name="key_descr_shareText">テキストを共有</string>
|
||||||
|
<string name="key_descr_pasteAsPlainText">書式なしで貼り付け</string>
|
||||||
|
<string name="key_descr_undo">元に戻す</string>
|
||||||
|
<string name="key_descr_redo">やり直し</string>
|
||||||
|
<string name="key_descr_ª">序数標識</string>
|
||||||
|
<string name="key_descr_º">序数標識</string>
|
||||||
|
<string name="key_descr_superscript">上付き文字</string>
|
||||||
|
<string name="key_descr_subscript">下付き文字</string>
|
||||||
|
<string name="key_descr_page_up">Page Up</string>
|
||||||
|
<string name="key_descr_page_down">Page Down</string>
|
||||||
|
<string name="key_descr_home">Home</string>
|
||||||
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">クリップボード</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">最近コピーしたテキスト</string>
|
||||||
|
<string name="clipboard_pin_heading">お気に入り</string>
|
||||||
|
<string name="clipboard_remove_confirm">クリップボードから削除しますか?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">はい</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
|
</resources>
|
@@ -3,55 +3,55 @@
|
|||||||
<string name="app_name_release">Unexpected Keyboard</string>
|
<string name="app_name_release">Unexpected Keyboard</string>
|
||||||
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
|
<!-- <string name="app_name_debug">Unexpected Keyboard (Debug)</string> -->
|
||||||
<string name="short_description">개발자들을 위한 가벼운 가상 키보드.</string>
|
<string name="short_description">개발자들을 위한 가벼운 가상 키보드.</string>
|
||||||
<!-- <string name="store_description">"The main feature is that you can type more characters by swiping the keys towards the corners.
|
<string name="store_description">"주요 기능은 모서리 방향으로 키를 스와이프하여 더 많은 문자를 입력할 수 있다는 것입니다.
|
||||||
|
|
||||||
This application was originally designed for programmers using Termux.
|
이 앱은 처음에는 Termux를 사용하는 프로그래머들을 위한 것으로 개발되었습니다.
|
||||||
Now perfect for everyday use.
|
지금은 일상적인 용도로도 완벽합니다.
|
||||||
|
|
||||||
This application contains no ads, doesn't make any network requests and is Open Source."</string> -->
|
이 응용 프로그램에는 광고가 없으며 네트워크 요청을 하지 않고 오픈 소스입니다."</string>
|
||||||
<string name="settings_activity_label">Unexpected Keyboard 설정</string>
|
<string name="settings_activity_label">Unexpected Keyboard 설정</string>
|
||||||
<!-- <string name="pref_portrait">In portrait mode</string> -->
|
<string name="pref_portrait">세로 화면</string>
|
||||||
<!-- <string name="pref_landscape">In landscape mode</string> -->
|
<string name="pref_landscape">가로 화면</string>
|
||||||
<string name="pref_category_layout">레이아웃</string>
|
<string name="pref_category_layout">레이아웃</string>
|
||||||
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
|
<string name="pref_label_brightness">라벨 밝기 조절</string>
|
||||||
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
|
<string name="pref_keyboard_opacity">키보드 배경 불투명도 조절</string>
|
||||||
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
|
<string name="pref_key_opacity">키 불투명도 조절</string>
|
||||||
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
|
<string name="pref_key_activated_opacity">누른 키 불투명도 조절</string>
|
||||||
<string name="pref_layout_e_system">시스템 세팅</string>
|
<string name="pref_layout_e_system">시스템 세팅</string>
|
||||||
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
|
<string name="pref_layout_e_custom">사용자 정의 레이아웃</string>
|
||||||
<!-- <string name="pref_layouts_add">Add an alternate layout</string> -->
|
<string name="pref_layouts_add">대체 레이아웃 추가</string>
|
||||||
<!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> -->
|
<string name="pref_layouts_item">레이아웃 %1$d: %2$s</string>
|
||||||
<!-- <string name="pref_layouts_remove_custom">Remove layout</string> -->
|
<string name="pref_layouts_remove_custom">레이아웃 제거</string>
|
||||||
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
|
<string name="pref_custom_layout_title">사용자 정의 레이아웃</string>
|
||||||
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
|
<string name="pref_show_numpad_title">NumPad 표시</string>
|
||||||
<!-- <string name="pref_show_numpad_never">Never</string> -->
|
<string name="pref_show_numpad_never">안 함</string>
|
||||||
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
|
<string name="pref_show_numpad_landscape">가로 모드에서만</string>
|
||||||
<!-- <string name="pref_show_numpad_always">Always</string> -->
|
<string name="pref_show_numpad_always">항상</string>
|
||||||
<!-- <string name="pref_number_row_title">Show number row</string> -->
|
<string name="pref_number_row_title">숫자 열 표시</string>
|
||||||
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
|
<string name="pref_number_row_summary">NumPad이 숨겨진 경우 키보드 상단에 숫자 행을 추가합니다.</string>
|
||||||
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
|
<string name="pref_numpad_layout">NumPad 레이아웃</string>
|
||||||
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
|
<string name="pref_numpad_layout_e_high_first">높은 자리수 우선</string>
|
||||||
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
|
<string name="pref_numpad_layout_e_low_first">낮은 자리수 우선</string>
|
||||||
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
|
<string name="pref_extra_keys_title">키보드에 추가 키 설정</string>
|
||||||
<!-- <string name="pref_extra_keys_custom">Add custom keys</string> -->
|
<string name="pref_extra_keys_custom">사용자 정의 키 추가</string>
|
||||||
<!-- <string name="pref_extra_keys_internal">Select keys to add to the keyboard</string> -->
|
<string name="pref_extra_keys_internal">키보드에 추가할 키 선택</string>
|
||||||
<string name="pref_category_typing">타자</string>
|
<string name="pref_category_typing">입력</string>
|
||||||
<string name="pref_swipe_dist_title">스와이프 범위</string>
|
<string name="pref_swipe_dist_title">스와이프 범위</string>
|
||||||
<string name="pref_swipe_dist_summary">키 모서리 문자의 입력 범위 (%s)</string>
|
<string name="pref_swipe_dist_summary">키 모서리 문자의 입력 범위 (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">길게 누르는 시간</string>
|
||||||
<string name="pref_long_interval_title">키 반복 간격</string>
|
<string name="pref_long_interval_title">키 반복 간격</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">키보드 입력을 길게 유지할 때 반복</string>
|
||||||
<!-- <string name="pref_lock_double_tap_title">Double tap on shift for caps lock</string> -->
|
<string name="pref_lock_double_tap_title">쉬프트 키 더블 탭을 통해 대문자 잠금 설정</string>
|
||||||
<!-- <string name="pref_lock_double_tap_summary">You can lock any modifier by holding it</string> -->
|
<string name="pref_lock_double_tap_summary">modifier를 길게 누르고 있으면 해당 modifier가 잠긴 상태로 유지됩니다.</string>
|
||||||
<!-- <string name="pref_category_behavior">Behavior</string> -->
|
<string name="pref_category_behavior">동작</string>
|
||||||
<!-- <string name="pref_autocapitalisation_title">Automatic capitalisation</string> -->
|
<string name="pref_autocapitalisation_title">자동 대문자 전환</string>
|
||||||
<!-- <string name="pref_autocapitalisation_summary">Press Shift at the beginning of a sentence</string> -->
|
<string name="pref_autocapitalisation_summary">문장의 시작에서 Shift 키를 눌러 대문자로 전환합니다.</string>
|
||||||
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
|
<string name="pref_switch_input_immediate_title">마지막으로 사용한 키보드로 전환</string>
|
||||||
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
|
<string name="pref_switch_input_immediate_summary">키보드 전환 키의 동작 방식입니다.</string>
|
||||||
<!-- <string name="pref_vibrate_custom">Custom vibration</string> -->
|
<string name="pref_vibrate_custom">사용자 정의 진동</string>
|
||||||
<!-- <string name="pref_vibrate_duration_title">Vibration intensity</string> -->
|
<string name="pref_vibrate_duration_title">진동 강도</string>
|
||||||
<!-- <string name="pref_pin_entry_enabled_title">Pin entry layout</string> -->
|
<string name="pref_pin_entry_enabled_title">Pin 입력 레이아웃</string>
|
||||||
<!-- <string name="pref_pin_entry_enabled_summary">When typing numbers, dates and phone numbers</string> -->
|
<string name="pref_pin_entry_enabled_summary">숫자를 입력할 때, 날짜와 전화번호를 입력할 때 해당 레이아웃이 사용됩니다.</string>
|
||||||
<string name="pref_category_style">스타일</string>
|
<string name="pref_category_style">스타일</string>
|
||||||
<string name="pref_margin_bottom_title">아래 넓이</string>
|
<string name="pref_margin_bottom_title">아래 넓이</string>
|
||||||
<string name="pref_keyboard_height_title">키보드 높이</string>
|
<string name="pref_keyboard_height_title">키보드 높이</string>
|
||||||
@@ -60,14 +60,18 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="pref_character_size_summary">키보드의 표시되는 폰트 크기 (%.2fx)</string>
|
<string name="pref_character_size_summary">키보드의 표시되는 폰트 크기 (%.2fx)</string>
|
||||||
<string name="pref_theme">테마</string>
|
<string name="pref_theme">테마</string>
|
||||||
<string name="pref_theme_e_system">시스템 테마</string>
|
<string name="pref_theme_e_system">시스템 테마</string>
|
||||||
<string name="pref_theme_e_dark">Dark</string>
|
<string name="pref_theme_e_dark">다크</string>
|
||||||
<string name="pref_theme_e_light">Light</string>
|
<string name="pref_theme_e_light">라이트</string>
|
||||||
<string name="pref_theme_e_black">Black</string>
|
<string name="pref_theme_e_black">블랙</string>
|
||||||
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
|
<string name="pref_theme_e_altblack">대체 블랙</string>
|
||||||
<!-- <string name="pref_theme_e_white">White</string> -->
|
<string name="pref_theme_e_white">화이트</string>
|
||||||
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
|
<string name="pref_theme_e_epaper">종이</string>
|
||||||
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
<string name="pref_theme_e_desert">사막</string>
|
||||||
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
<string name="pref_theme_e_jungle">정글</string>
|
||||||
|
<string name="pref_theme_e_monet">모네트 (시스템)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">모네트 (라이트)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">모네트 (다크)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">매우 짧음</string>
|
<string name="pref_swipe_dist_e_very_short">매우 짧음</string>
|
||||||
<string name="pref_swipe_dist_e_short">짧음</string>
|
<string name="pref_swipe_dist_e_short">짧음</string>
|
||||||
<string name="pref_swipe_dist_e_default">보통</string>
|
<string name="pref_swipe_dist_e_default">보통</string>
|
||||||
@@ -75,45 +79,60 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="pref_swipe_dist_e_very_far">매우 넓음</string>
|
<string name="pref_swipe_dist_e_very_far">매우 넓음</string>
|
||||||
<string name="pref_key_horizontal_space">키보드 양 옆 간격</string>
|
<string name="pref_key_horizontal_space">키보드 양 옆 간격</string>
|
||||||
<string name="pref_key_vertical_space">키보드 세로 간격</string>
|
<string name="pref_key_vertical_space">키보드 세로 간격</string>
|
||||||
<!-- <string name="pref_border_config_title">Customize borders</string> -->
|
<string name="pref_border_config_title">경계선 사용자 정의</string>
|
||||||
<!-- <string name="pref_border_width_title">Border Width</string> -->
|
<string name="pref_border_width_title">경계선 너비</string>
|
||||||
<!-- <string name="pref_corners_radius_title">Corner radius</string> -->
|
<string name="pref_corners_radius_title">모서리 반지름</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">원형 제스처 감도</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">높음</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">중간</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">낮음</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">사용 안 함</string>
|
||||||
<string name="key_action_next">다음</string>
|
<string name="key_action_next">다음</string>
|
||||||
<string name="key_action_done">확인</string>
|
<string name="key_action_done">확인</string>
|
||||||
<string name="key_action_go">Go</string>
|
<string name="key_action_go">엔터</string>
|
||||||
<string name="key_action_prev">이전</string>
|
<string name="key_action_prev">이전</string>
|
||||||
<string name="key_action_search">검색</string>
|
<string name="key_action_search">검색</string>
|
||||||
<string name="key_action_send">보내기</string>
|
<string name="key_action_send">보내기</string>
|
||||||
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
|
<string name="launcher_button_imesettings">키보드 활성화</string>
|
||||||
<!-- <string name="launcher_button_imepicker">Select keyboard</string> -->
|
<string name="launcher_button_imepicker">키보드 선택</string>
|
||||||
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
|
<string name="launcher_description">이 앱은 가상 키보드입니다.Unexpected-Keyboard를 클릭하여 시스템 설정으로 이동하고 아래 버튼을 클릭하세요.</string>
|
||||||
<!-- <string name="launcher_sourcecode">This is a free and open source application. You can find the source code or report bugs on GitHub.</string> -->
|
<string name="launcher_sourcecode">이것은 무료이고 오픈 소스 응용 프로그램입니다. GitHub에서 원본 코드를 찾을 수 있습니다 또는 버그를 신고할 수 있습니다.</string>
|
||||||
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
|
<string name="launcher_tryhere">켜면 여기에서 키보드를 시험해 볼 수 있습니다:</string>
|
||||||
<!-- <string name="launcher_tryhere_hint">Try here</string> -->
|
<string name="launcher_tryhere_hint">여기서 시험해 보기</string>
|
||||||
<!-- <string name="key_descr_capslock">Caps lock</string> -->
|
<string name="key_descr_capslock">대문자 잠금</string>
|
||||||
<!-- <string name="key_descr_compose">Compose</string> -->
|
<string name="key_descr_compose">구성</string>
|
||||||
<!-- <string name="key_descr_switch_greekmath">Greek & math symbols</string> -->
|
<string name="key_descr_switch_greekmath">그리스 수학 기호 전환</string>
|
||||||
<!-- <string name="key_descr_change_method">Switch keyboard</string> -->
|
<string name="key_descr_change_method">키보드 전환</string>
|
||||||
<!-- <string name="key_descr_voice_typing">Voice typing</string> -->
|
<string name="key_descr_voice_typing">음성 입력</string>
|
||||||
<!-- <string name="key_descr_copy">Copy</string> -->
|
<string name="key_descr_copy">복사</string>
|
||||||
<!-- <string name="key_descr_paste">Paste</string> -->
|
<string name="key_descr_paste">붙여넣기</string>
|
||||||
<!-- <string name="key_descr_cut">Cut</string> -->
|
<string name="key_descr_cut">자르기</string>
|
||||||
<!-- <string name="key_descr_selectAll">Select all</string> -->
|
<string name="key_descr_selectAll">전부 선택</string>
|
||||||
<!-- <string name="key_descr_shareText">Share text</string> -->
|
<string name="key_descr_shareText">텍스트 공유</string>
|
||||||
<!-- <string name="key_descr_pasteAsPlainText">Paste as plain text</string> -->
|
<string name="key_descr_pasteAsPlainText">일반 텍스트로 붙여넣기</string>
|
||||||
<!-- <string name="key_descr_undo">Undo</string> -->
|
<string name="key_descr_undo">실행 취소</string>
|
||||||
<!-- <string name="key_descr_redo">Redo</string> -->
|
<string name="key_descr_redo">다시 실행</string>
|
||||||
<!-- <string name="key_descr_ª">Ordinal Indicator</string> -->
|
<string name="key_descr_ª">순서 표시기</string>
|
||||||
<!-- <string name="key_descr_º">Ordinal Indicator</string> -->
|
<string name="key_descr_º">순서 표시기</string>
|
||||||
<!-- <string name="key_descr_superscript">Superscript</string> -->
|
<string name="key_descr_superscript">상위 스크립트</string>
|
||||||
<!-- <string name="key_descr_subscript">Subscript</string> -->
|
<string name="key_descr_subscript">하위 스크립트</string>
|
||||||
<!-- <string name="key_descr_page_up">Page Up</string> -->
|
<string name="key_descr_page_up">페이지 위</string>
|
||||||
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
<string name="key_descr_page_down">페이지 아래</string>
|
||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<string name="key_descr_home">홈</string>
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<string name="key_descr_end">종료</string>
|
||||||
|
<string name="key_descr_clipboard">클립보드 관리자</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">최근에 복사한 텍스트</string>
|
||||||
|
<string name="clipboard_pin_heading">고정</string>
|
||||||
|
<string name="clipboard_remove_confirm">이 클립보드를 제거하시겠습니까?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">예</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ Tagad lieliski piemērota izmantošanai ikdienā.
|
|||||||
<string name="pref_category_typing">Rakstīšana</string>
|
<string name="pref_category_typing">Rakstīšana</string>
|
||||||
<string name="pref_swipe_dist_title">Pavilkšanas attālums</string>
|
<string name="pref_swipe_dist_title">Pavilkšanas attālums</string>
|
||||||
<string name="pref_swipe_dist_summary">Taustiņu stūros esošo rakstzīmju attālums (%s)</string>
|
<string name="pref_swipe_dist_summary">Taustiņu stūros esošo rakstzīmju attālums (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Ilgas piespiešanas noildze</string>
|
||||||
<string name="pref_long_interval_title">Taustiņa atkārtošanās aizture</string>
|
<string name="pref_long_interval_title">Taustiņa atkārtošanās aizture</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Taustiņa atkārtošanās ar ilgu piespiešanu</string>
|
||||||
<string name="pref_lock_double_tap_title">Divkāršs piesitiens burtslēgam</string>
|
<string name="pref_lock_double_tap_title">Divkāršs piesitiens burtslēgam</string>
|
||||||
<string name="pref_lock_double_tap_summary">Tā vietā, lai ilstoši piespiestu pārveidotāju</string>
|
<string name="pref_lock_double_tap_summary">Tā vietā, lai ilstoši piespiestu pārveidotāju</string>
|
||||||
<string name="pref_category_behavior">Uzvedība</string>
|
<string name="pref_category_behavior">Uzvedība</string>
|
||||||
@@ -68,6 +68,10 @@ Tagad lieliski piemērota izmantošanai ikdienā.
|
|||||||
<string name="pref_theme_e_epaper">ePapīrs</string>
|
<string name="pref_theme_e_epaper">ePapīrs</string>
|
||||||
<string name="pref_theme_e_desert">Tuksnesis</string>
|
<string name="pref_theme_e_desert">Tuksnesis</string>
|
||||||
<string name="pref_theme_e_jungle">Džungļi</string>
|
<string name="pref_theme_e_jungle">Džungļi</string>
|
||||||
|
<string name="pref_theme_e_monet">Monē (sistēmas)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monē (gaišs)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monē (tumšs)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Ļoti tuvs</string>
|
<string name="pref_swipe_dist_e_very_short">Ļoti tuvs</string>
|
||||||
<string name="pref_swipe_dist_e_short">Tuvs</string>
|
<string name="pref_swipe_dist_e_short">Tuvs</string>
|
||||||
<string name="pref_swipe_dist_e_default">Vidējs</string>
|
<string name="pref_swipe_dist_e_default">Vidējs</string>
|
||||||
@@ -78,11 +82,11 @@ Tagad lieliski piemērota izmantošanai ikdienā.
|
|||||||
<string name="pref_border_config_title">Pielāgot apmales</string>
|
<string name="pref_border_config_title">Pielāgot apmales</string>
|
||||||
<string name="pref_border_width_title">Apmales platums</string>
|
<string name="pref_border_width_title">Apmales platums</string>
|
||||||
<string name="pref_corners_radius_title">Stūru rādiuss</string>
|
<string name="pref_corners_radius_title">Stūru rādiuss</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Apļveida kustības jutīgums</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Augsts</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Vidējs</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Zems</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Atspējots</string>
|
||||||
<string name="key_action_next">Nākamais</string>
|
<string name="key_action_next">Nākamais</string>
|
||||||
<string name="key_action_done">Darīts</string>
|
<string name="key_action_done">Darīts</string>
|
||||||
<string name="key_action_go">Aiziet</string>
|
<string name="key_action_go">Aiziet</string>
|
||||||
@@ -118,4 +122,19 @@ Tagad lieliski piemērota izmantošanai ikdienā.
|
|||||||
<string name="key_descr_page_down">Lejupšķirt</string>
|
<string name="key_descr_page_down">Lejupšķirt</string>
|
||||||
<string name="key_descr_home">Sākums</string>
|
<string name="key_descr_home">Sākums</string>
|
||||||
<string name="key_descr_end">Beigas</string>
|
<string name="key_descr_end">Beigas</string>
|
||||||
|
<string name="key_descr_clipboard">Starpliktuves pārvaldnieks</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Nesen starpliktuvē ievietots teksts</string>
|
||||||
|
<string name="clipboard_pin_heading">Piesprausts</string>
|
||||||
|
<string name="clipboard_remove_confirm">Noņemt šo starpliktuves vienumu?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Jā</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród
|
|||||||
<string name="pref_category_typing">Pisanie</string>
|
<string name="pref_category_typing">Pisanie</string>
|
||||||
<string name="pref_swipe_dist_title">Odległość przesuwania</string>
|
<string name="pref_swipe_dist_title">Odległość przesuwania</string>
|
||||||
<string name="pref_swipe_dist_summary">Odległość znaków od rogów klawiszy (%s)</string>
|
<string name="pref_swipe_dist_summary">Odległość znaków od rogów klawiszy (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Opóźnienie przytrzymania klawisza</string>
|
||||||
<string name="pref_long_interval_title">Czas pomiędzy powtórzeniami</string>
|
<string name="pref_long_interval_title">Czas pomiędzy powtórzeniem klawisza</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Powtarzanie klawisza po przytrzymaniu</string>
|
||||||
<string name="pref_lock_double_tap_title">Naciśnij Shift podwójnie, aby włączyć caps lock</string>
|
<string name="pref_lock_double_tap_title">Naciśnij Shift podwójnie, aby włączyć caps lock</string>
|
||||||
<string name="pref_lock_double_tap_summary">Możesz zablokować modyfikator poprzez jego długie naciśnięcie</string>
|
<string name="pref_lock_double_tap_summary">Możesz zablokować modyfikator poprzez jego długie naciśnięcie</string>
|
||||||
<string name="pref_category_behavior">Zachowanie</string>
|
<string name="pref_category_behavior">Zachowanie</string>
|
||||||
@@ -68,6 +68,10 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród
|
|||||||
<string name="pref_theme_e_epaper">e-paper</string>
|
<string name="pref_theme_e_epaper">e-paper</string>
|
||||||
<string name="pref_theme_e_desert">Pustynny</string>
|
<string name="pref_theme_e_desert">Pustynny</string>
|
||||||
<string name="pref_theme_e_jungle">Dżunglowy</string>
|
<string name="pref_theme_e_jungle">Dżunglowy</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (Systemowy)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (Jasny)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Ciemny)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Bardzo mała</string>
|
<string name="pref_swipe_dist_e_very_short">Bardzo mała</string>
|
||||||
<string name="pref_swipe_dist_e_short">Mała</string>
|
<string name="pref_swipe_dist_e_short">Mała</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normalna</string>
|
<string name="pref_swipe_dist_e_default">Normalna</string>
|
||||||
@@ -78,11 +82,11 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród
|
|||||||
<string name="pref_border_config_title">Dostosuj krawędzie</string>
|
<string name="pref_border_config_title">Dostosuj krawędzie</string>
|
||||||
<string name="pref_border_width_title">Grubość krawedzi</string>
|
<string name="pref_border_width_title">Grubość krawedzi</string>
|
||||||
<string name="pref_corners_radius_title">Promień rogów</string>
|
<string name="pref_corners_radius_title">Promień rogów</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Czułość gestu koła</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Wysoka</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Średnia</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Mała</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Wyłączona</string>
|
||||||
<string name="key_action_next">Dalej</string>
|
<string name="key_action_next">Dalej</string>
|
||||||
<string name="key_action_done">OK</string>
|
<string name="key_action_done">OK</string>
|
||||||
<string name="key_action_go">Przejdź</string>
|
<string name="key_action_go">Przejdź</string>
|
||||||
@@ -116,4 +120,19 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród
|
|||||||
<string name="key_descr_page_down">Page Down</string>
|
<string name="key_descr_page_down">Page Down</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">Zarządzanie schowkiem</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Ostatnio skopiowane elementy</string>
|
||||||
|
<string name="clipboard_pin_heading">Przypięte</string>
|
||||||
|
<string name="clipboard_remove_confirm">Usunąć ten element ze schowka?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Tak</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e
|
|||||||
<string name="pref_category_typing">Digitação</string>
|
<string name="pref_category_typing">Digitação</string>
|
||||||
<string name="pref_swipe_dist_title">Distância a deslizar</string>
|
<string name="pref_swipe_dist_title">Distância a deslizar</string>
|
||||||
<string name="pref_swipe_dist_summary">Distância até acionar os cantos das teclas (%s)</string>
|
<string name="pref_swipe_dist_summary">Distância até acionar os cantos das teclas (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Tempo de pressionamento</string>
|
||||||
<string name="pref_long_interval_title">Intervalo de repetição de tecla</string>
|
<string name="pref_long_interval_title">Intervalo de repetição de tecla</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Repetir tecla ao pressionar</string>
|
||||||
<string name="pref_lock_double_tap_title">Tecle duas vezes no shift para travá-lo acionado</string>
|
<string name="pref_lock_double_tap_title">Tecle duas vezes no shift para travá-lo acionado</string>
|
||||||
<string name="pref_lock_double_tap_summary">Ao invés de apertar e segurar por um tempo</string>
|
<string name="pref_lock_double_tap_summary">Ao invés de apertar e segurar por um tempo</string>
|
||||||
<string name="pref_category_behavior">Comportamento</string>
|
<string name="pref_category_behavior">Comportamento</string>
|
||||||
@@ -68,21 +68,25 @@ Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e
|
|||||||
<string name="pref_theme_e_epaper">Papel Eletrônico</string>
|
<string name="pref_theme_e_epaper">Papel Eletrônico</string>
|
||||||
<string name="pref_theme_e_desert">Deserto</string>
|
<string name="pref_theme_e_desert">Deserto</string>
|
||||||
<string name="pref_theme_e_jungle">Selva</string>
|
<string name="pref_theme_e_jungle">Selva</string>
|
||||||
<string name="pref_swipe_dist_e_very_short">Bem curto</string>
|
<string name="pref_theme_e_monet">Monet (Sistema)</string>
|
||||||
<string name="pref_swipe_dist_e_short">Curto</string>
|
<string name="pref_theme_e_monetlight">Monet (Claro)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Escuro)</string>
|
||||||
|
<string name="pref_theme_e_rosepine">Rosé Pine</string>
|
||||||
|
<string name="pref_swipe_dist_e_very_short">Bem curta</string>
|
||||||
|
<string name="pref_swipe_dist_e_short">Curta</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
<string name="pref_swipe_dist_e_far">Longo</string>
|
<string name="pref_swipe_dist_e_far">Longa</string>
|
||||||
<string name="pref_swipe_dist_e_very_far">Bem longo</string>
|
<string name="pref_swipe_dist_e_very_far">Bem longa</string>
|
||||||
<string name="pref_key_horizontal_space">Distância horizontal entre teclas</string>
|
<string name="pref_key_horizontal_space">Distância horizontal entre teclas</string>
|
||||||
<string name="pref_key_vertical_space">Distância vertical entre teclas</string>
|
<string name="pref_key_vertical_space">Distância vertical entre teclas</string>
|
||||||
<string name="pref_border_config_title">Personalizar bordas</string>
|
<string name="pref_border_config_title">Personalizar bordas</string>
|
||||||
<string name="pref_border_width_title">Largura de borda</string>
|
<string name="pref_border_width_title">Largura de borda</string>
|
||||||
<string name="pref_corners_radius_title">Arredondamento de canto</string>
|
<string name="pref_corners_radius_title">Arredondamento de cantos</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Sensibilidade do gesto circular</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Alta</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Média</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Baixa</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Desativada</string>
|
||||||
<string name="key_action_next">Próximo</string>
|
<string name="key_action_next">Próximo</string>
|
||||||
<string name="key_action_done">Pronto</string>
|
<string name="key_action_done">Pronto</string>
|
||||||
<string name="key_action_go">Ir</string>
|
<string name="key_action_go">Ir</string>
|
||||||
@@ -116,4 +120,19 @@ Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e
|
|||||||
<string name="key_descr_page_down">Page Down</string>
|
<string name="key_descr_page_down">Page Down</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">Área de transferência</string>
|
||||||
|
<string name="key_descr_combining">Combinação de diacríticos</string>
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Textos recém copiados</string>
|
||||||
|
<string name="clipboard_pin_heading">Fixados</string>
|
||||||
|
<string name="clipboard_remove_confirm">Remover esta cópia?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Sim</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@ Această aplicație nu conține publicitate, nu folosește rețeaua deloc și e
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
||||||
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Foarte apropiată</string>
|
<string name="pref_swipe_dist_e_very_short">Foarte apropiată</string>
|
||||||
<string name="pref_swipe_dist_e_short">Apropiată</string>
|
<string name="pref_swipe_dist_e_short">Apropiată</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normală</string>
|
<string name="pref_swipe_dist_e_default">Normală</string>
|
||||||
@@ -116,4 +120,19 @@ Această aplicație nu conține publicitate, nu folosește rețeaua deloc și e
|
|||||||
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirmed">Yes</string> -->
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@
|
|||||||
<string name="pref_theme_e_epaper">Электронная бумага</string>
|
<string name="pref_theme_e_epaper">Электронная бумага</string>
|
||||||
<string name="pref_theme_e_desert">Пустыня</string>
|
<string name="pref_theme_e_desert">Пустыня</string>
|
||||||
<string name="pref_theme_e_jungle">Джунгли</string>
|
<string name="pref_theme_e_jungle">Джунгли</string>
|
||||||
|
<string name="pref_theme_e_monet">Моне (системная)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Моне (светлая)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Моне (темная)</string>
|
||||||
|
<string name="pref_theme_e_rosepine">Розовая сосна</string>
|
||||||
<string name="pref_swipe_dist_e_very_short">Очень короткая</string>
|
<string name="pref_swipe_dist_e_very_short">Очень короткая</string>
|
||||||
<string name="pref_swipe_dist_e_short">Короткая</string>
|
<string name="pref_swipe_dist_e_short">Короткая</string>
|
||||||
<string name="pref_swipe_dist_e_default">Обычная</string>
|
<string name="pref_swipe_dist_e_default">Обычная</string>
|
||||||
@@ -116,4 +120,19 @@
|
|||||||
<string name="key_descr_page_down">Страница вниз</string>
|
<string name="key_descr_page_down">Страница вниз</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">Менеджер буфера обмена</string>
|
||||||
|
<string name="key_descr_combining">Сочетание диакритических знаков</string>
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<string name="key_descr_zwj">Соединитель нулевой ширины</string>
|
||||||
|
<string name="key_descr_zwnj">Разделитель нулевой ширины</string>
|
||||||
|
<string name="key_descr_nbsp">Неразрывный пробел</string>
|
||||||
|
<string name="key_descr_nnbsp">Узкий неразрывный пробел</string>
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Недавно скопированный текст</string>
|
||||||
|
<string name="clipboard_pin_heading">Закреплено</string>
|
||||||
|
<string name="clipboard_remove_confirm">Удалить этот буфер обмена?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Да</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -38,9 +38,9 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="pref_category_typing">Yazma</string>
|
<string name="pref_category_typing">Yazma</string>
|
||||||
<string name="pref_swipe_dist_title">Kaydırma mesafesi</string>
|
<string name="pref_swipe_dist_title">Kaydırma mesafesi</string>
|
||||||
<string name="pref_swipe_dist_summary">Tuşların köşelerinden kaydırma mesafesi (%s)</string>
|
<string name="pref_swipe_dist_summary">Tuşların köşelerinden kaydırma mesafesi (%s)</string>
|
||||||
<!-- <string name="pref_long_timeout_title">Long press timeout</string> -->
|
<string name="pref_long_timeout_title">Uzun basma süresi</string>
|
||||||
<string name="pref_long_interval_title">Tuşların tekrarlama sıklığı</string>
|
<string name="pref_long_interval_title">Tuşların tekrarlama sıklığı</string>
|
||||||
<!-- <string name="pref_keyrepeat_enabled">Key repeat on long press</string> -->
|
<string name="pref_keyrepeat_enabled">Uzun basınca tuş tekrarlamaları</string>
|
||||||
<string name="pref_lock_double_tap_title">CapsLock için Shift tuşuna çift bas</string>
|
<string name="pref_lock_double_tap_title">CapsLock için Shift tuşuna çift bas</string>
|
||||||
<string name="pref_lock_double_tap_summary">Uzun basarak CapsLock açılabilir</string>
|
<string name="pref_lock_double_tap_summary">Uzun basarak CapsLock açılabilir</string>
|
||||||
<string name="pref_category_behavior">Klavye davranışı</string>
|
<string name="pref_category_behavior">Klavye davranışı</string>
|
||||||
@@ -68,6 +68,10 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="pref_theme_e_epaper">E-Kağıt</string>
|
<string name="pref_theme_e_epaper">E-Kağıt</string>
|
||||||
<string name="pref_theme_e_desert">Çöl</string>
|
<string name="pref_theme_e_desert">Çöl</string>
|
||||||
<string name="pref_theme_e_jungle">Orman</string>
|
<string name="pref_theme_e_jungle">Orman</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (Sisteme uyarla)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (Açık)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Koyu)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Çok kısa</string>
|
<string name="pref_swipe_dist_e_very_short">Çok kısa</string>
|
||||||
<string name="pref_swipe_dist_e_short">Kısa</string>
|
<string name="pref_swipe_dist_e_short">Kısa</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@@ -75,14 +79,14 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="pref_swipe_dist_e_very_far">Çok uzun</string>
|
<string name="pref_swipe_dist_e_very_far">Çok uzun</string>
|
||||||
<string name="pref_key_horizontal_space">Tuşlar arasındaki yatay boşluk</string>
|
<string name="pref_key_horizontal_space">Tuşlar arasındaki yatay boşluk</string>
|
||||||
<string name="pref_key_vertical_space">Tuşlar arasındaki dikey boşluk</string>
|
<string name="pref_key_vertical_space">Tuşlar arasındaki dikey boşluk</string>
|
||||||
<!-- <string name="pref_border_config_title">Customize borders</string> -->
|
<string name="pref_border_config_title">Çerçeveyi özelleştir</string>
|
||||||
<!-- <string name="pref_border_width_title">Border Width</string> -->
|
<string name="pref_border_width_title">Çerçeve kalınlığı</string>
|
||||||
<!-- <string name="pref_corners_radius_title">Corner radius</string> -->
|
<string name="pref_corners_radius_title">Kenar yumuşaklığı</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_title">Circle gesture sensitivity</string> -->
|
<string name="pref_circle_sensitivity_title">Dairesel hareket hassasiyeti</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_high">High</string> -->
|
<string name="pref_circle_sensitivity_e_high">Yüksek</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_medium">Medium</string> -->
|
<string name="pref_circle_sensitivity_e_medium">Orta</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_low">Low</string> -->
|
<string name="pref_circle_sensitivity_e_low">Düşük</string>
|
||||||
<!-- <string name="pref_circle_sensitivity_e_disabled">Disabled</string> -->
|
<string name="pref_circle_sensitivity_e_disabled">Devre dışı</string>
|
||||||
<string name="key_action_next">Sonraki</string>
|
<string name="key_action_next">Sonraki</string>
|
||||||
<string name="key_action_done">Tamam</string>
|
<string name="key_action_done">Tamam</string>
|
||||||
<string name="key_action_go">ileri</string>
|
<string name="key_action_go">ileri</string>
|
||||||
@@ -94,9 +98,9 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="launcher_description">Bu uygulama bir sanal klavye uygulamasıdır. Aşağıdaki butona basarak sistem ayarlarında etkinleştiriniz.</string>
|
<string name="launcher_description">Bu uygulama bir sanal klavye uygulamasıdır. Aşağıdaki butona basarak sistem ayarlarında etkinleştiriniz.</string>
|
||||||
<string name="launcher_sourcecode">Bu uygulama ücretsiz ve açık kaynaklıdır. Kaynak koduna erişmek veya bir hata raporlamak için GitHub</string>
|
<string name="launcher_sourcecode">Bu uygulama ücretsiz ve açık kaynaklıdır. Kaynak koduna erişmek veya bir hata raporlamak için GitHub</string>
|
||||||
<string name="launcher_tryhere">Ayarlardan aktif ettikten sonra klavyeyi burada test edebilirsin:</string>
|
<string name="launcher_tryhere">Ayarlardan aktif ettikten sonra klavyeyi burada test edebilirsin:</string>
|
||||||
<!-- <string name="launcher_tryhere_hint">Try here</string> -->
|
<string name="launcher_tryhere_hint">Burada dene</string>
|
||||||
<string name="key_descr_capslock">CapsLock</string>
|
<string name="key_descr_capslock">CapsLock</string>
|
||||||
<!-- <string name="key_descr_compose">Compose</string> -->
|
<string name="key_descr_compose">Oluştur</string>
|
||||||
<string name="key_descr_switch_greekmath">Greek & math sembolleri</string>
|
<string name="key_descr_switch_greekmath">Greek & math sembolleri</string>
|
||||||
<string name="key_descr_change_method">Klavye değiştir</string>
|
<string name="key_descr_change_method">Klavye değiştir</string>
|
||||||
<string name="key_descr_voice_typing">Sesle yazma</string>
|
<string name="key_descr_voice_typing">Sesle yazma</string>
|
||||||
@@ -116,4 +120,19 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="key_descr_page_down">Aşağı</string>
|
<string name="key_descr_page_down">Aşağı</string>
|
||||||
<string name="key_descr_home">BAŞ(Sol yön tuşu)</string>
|
<string name="key_descr_home">BAŞ(Sol yön tuşu)</string>
|
||||||
<string name="key_descr_end">SON(Sağ yön tuşu)</string>
|
<string name="key_descr_end">SON(Sağ yön tuşu)</string>
|
||||||
|
<string name="key_descr_clipboard">Pano</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Son kopyalanan metin</string>
|
||||||
|
<string name="clipboard_pin_heading">Sabitlendi</string>
|
||||||
|
<string name="clipboard_remove_confirm">Bu sabitlemeyi sil</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Evet</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<string name="pref_theme_e_desert">Пустеля</string>
|
<string name="pref_theme_e_desert">Пустеля</string>
|
||||||
<string name="pref_theme_e_jungle">Джунглі</string>
|
<string name="pref_theme_e_jungle">Джунглі</string>
|
||||||
|
<string name="pref_theme_e_monet">Моне (Системна)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Моне (Світла)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Моне (Темна)</string>
|
||||||
|
<string name="pref_theme_e_rosepine">Рожева сосна</string>
|
||||||
<string name="pref_swipe_dist_e_very_short">Дуже коротка</string>
|
<string name="pref_swipe_dist_e_very_short">Дуже коротка</string>
|
||||||
<string name="pref_swipe_dist_e_short">Коротка</string>
|
<string name="pref_swipe_dist_e_short">Коротка</string>
|
||||||
<string name="pref_swipe_dist_e_default">Звичайна</string>
|
<string name="pref_swipe_dist_e_default">Звичайна</string>
|
||||||
@@ -116,4 +120,19 @@
|
|||||||
<string name="key_descr_page_down">Page Down</string>
|
<string name="key_descr_page_down">Page Down</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">Менеджер буфера обміну</string>
|
||||||
|
<string name="key_descr_combining">Комбінування діакритики</string>
|
||||||
|
<string name="key_descr_dead_key">Мертва клавіша</string>
|
||||||
|
<string name="key_descr_zwj">З\'єднувач нульової ширини</string>
|
||||||
|
<string name="key_descr_zwnj">Разділювач нульової ширини</string>
|
||||||
|
<string name="key_descr_nbsp">Нерозривний пробіл</string>
|
||||||
|
<string name="key_descr_nnbsp">Вузький нерозривний пробіл</string>
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<string name="clipboard_history_heading">Нещодавно скопійований текст</string>
|
||||||
|
<string name="clipboard_pin_heading">Закріплено</string>
|
||||||
|
<string name="clipboard_remove_confirm">Видалити цей буфер обміну?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Так</string>
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@ Bây giờ đã hoàn hảo cho việc sử dụng hàng ngày.
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
<!-- <string name="pref_theme_e_desert">Desert</string> -->
|
||||||
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
<!-- <string name="pref_theme_e_jungle">Jungle</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Rất gần</string>
|
<string name="pref_swipe_dist_e_very_short">Rất gần</string>
|
||||||
<string name="pref_swipe_dist_e_short">Gần</string>
|
<string name="pref_swipe_dist_e_short">Gần</string>
|
||||||
<string name="pref_swipe_dist_e_default">Trungbình</string>
|
<string name="pref_swipe_dist_e_default">Trungbình</string>
|
||||||
@@ -116,4 +120,19 @@ Bây giờ đã hoàn hảo cho việc sử dụng hàng ngày.
|
|||||||
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
<!-- <string name="key_descr_page_down">Page Down</string> -->
|
||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirmed">Yes</string> -->
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -68,6 +68,10 @@
|
|||||||
<string name="pref_theme_e_epaper">白色带边框</string>
|
<string name="pref_theme_e_epaper">白色带边框</string>
|
||||||
<string name="pref_theme_e_desert">沙漠</string>
|
<string name="pref_theme_e_desert">沙漠</string>
|
||||||
<string name="pref_theme_e_jungle">雨林</string>
|
<string name="pref_theme_e_jungle">雨林</string>
|
||||||
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">非常短</string>
|
<string name="pref_swipe_dist_e_very_short">非常短</string>
|
||||||
<string name="pref_swipe_dist_e_short">短</string>
|
<string name="pref_swipe_dist_e_short">短</string>
|
||||||
<string name="pref_swipe_dist_e_default">中(默认)</string>
|
<string name="pref_swipe_dist_e_default">中(默认)</string>
|
||||||
@@ -116,4 +120,19 @@
|
|||||||
<string name="key_descr_page_down">下一页</string>
|
<string name="key_descr_page_down">下一页</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
|
<!-- <string name="key_descr_dead_key">Dead key</string> -->
|
||||||
|
<!-- <string name="key_descr_zwj">Zero width joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_zwnj">Zero width non-joiner</string> -->
|
||||||
|
<!-- <string name="key_descr_nbsp">Non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_nnbsp">Narrow non-breaking space</string> -->
|
||||||
|
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||||
|
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||||
|
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||||
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
<!-- <string name="clipboard_remove_confirmed">Yes</string> -->
|
||||||
|
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -28,6 +28,10 @@
|
|||||||
<item>@string/pref_theme_e_epaper</item>
|
<item>@string/pref_theme_e_epaper</item>
|
||||||
<item>@string/pref_theme_e_desert</item>
|
<item>@string/pref_theme_e_desert</item>
|
||||||
<item>@string/pref_theme_e_jungle</item>
|
<item>@string/pref_theme_e_jungle</item>
|
||||||
|
<item>@string/pref_theme_e_monet</item>
|
||||||
|
<item>@string/pref_theme_e_monetlight</item>
|
||||||
|
<item>@string/pref_theme_e_monetdark</item>
|
||||||
|
<item>@string/pref_theme_e_rosepine</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="pref_theme_values">
|
<string-array name="pref_theme_values">
|
||||||
<item>system</item>
|
<item>system</item>
|
||||||
@@ -39,6 +43,10 @@
|
|||||||
<item>epaper</item>
|
<item>epaper</item>
|
||||||
<item>desert</item>
|
<item>desert</item>
|
||||||
<item>jungle</item>
|
<item>jungle</item>
|
||||||
|
<item>monet</item>
|
||||||
|
<item>monetlight</item>
|
||||||
|
<item>monetdark</item>
|
||||||
|
<item>rosepine</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="pref_swipe_dist_entries">
|
<string-array name="pref_swipe_dist_entries">
|
||||||
<item>@string/pref_swipe_dist_e_very_short</item>
|
<item>@string/pref_swipe_dist_e_very_short</item>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<resources>
|
<resources>
|
||||||
<!--DO NOT EDIT. This file is generated, see gen_layouts.py.-->
|
<!-- DO NOT EDIT. This file is generated, run 'gradle genLayoutsList'. -->
|
||||||
<string-array name="pref_layout_values">
|
<string-array name="pref_layout_values">
|
||||||
<item>system</item>
|
<item>system</item>
|
||||||
<item>latn_qwerty_us</item>
|
<item>latn_qwerty_us</item>
|
||||||
@@ -10,49 +10,77 @@
|
|||||||
<item>arab_hamvaj_tly</item>
|
<item>arab_hamvaj_tly</item>
|
||||||
<item>arab_pc</item>
|
<item>arab_pc</item>
|
||||||
<item>arab_pc_ckb</item>
|
<item>arab_pc_ckb</item>
|
||||||
|
<item>arab_pc_ckb_fa</item>
|
||||||
<item>arab_pc_hindu</item>
|
<item>arab_pc_hindu</item>
|
||||||
<item>arab_pc_ir</item>
|
<item>arab_pc_ir</item>
|
||||||
<item>armenian_ph_am</item>
|
<item>armenian_ph_am</item>
|
||||||
<item>beng_national</item>
|
<item>beng_national</item>
|
||||||
<item>beng_provat</item>
|
<item>beng_provat</item>
|
||||||
|
<item>cyrl_fcuzhen_mn</item>
|
||||||
|
<item>cyrl_jcuken_kk</item>
|
||||||
<item>cyrl_jcuken_ru</item>
|
<item>cyrl_jcuken_ru</item>
|
||||||
<item>cyrl_jcuken_uk</item>
|
<item>cyrl_jcuken_uk</item>
|
||||||
|
<item>cyrl_lynyertz_sr</item>
|
||||||
<item>cyrl_ueishsht</item>
|
<item>cyrl_ueishsht</item>
|
||||||
<item>cyrl_yaverti</item>
|
<item>cyrl_yaverti</item>
|
||||||
|
<item>cyrl_yqukeng_tj</item>
|
||||||
|
<item>cyrl_yxukeng_os</item>
|
||||||
<item>deva_alt</item>
|
<item>deva_alt</item>
|
||||||
<item>deva_inscript</item>
|
<item>deva_inscript</item>
|
||||||
|
<item>deva_phonetic_in</item>
|
||||||
|
<item>georgian_mes</item>
|
||||||
|
<item>georgian_qwerty</item>
|
||||||
<item>grek_qwerty</item>
|
<item>grek_qwerty</item>
|
||||||
<item>guj_phonetic_in</item>
|
<item>guj_phonetic_in</item>
|
||||||
<item>hang_dubeolsik_kr</item>
|
<item>hang_dubeolsik_kr</item>
|
||||||
<item>hebr_1_il</item>
|
<item>hebr_1_il</item>
|
||||||
<item>hebr_2_il</item>
|
<item>hebr_2_il</item>
|
||||||
|
<item>kann_kannada</item>
|
||||||
|
<item>latn_azerty_be</item>
|
||||||
<item>latn_azerty_fr</item>
|
<item>latn_azerty_fr</item>
|
||||||
<item>latn_bepo_fr</item>
|
<item>latn_bepo_fr</item>
|
||||||
<item>latn_bone</item>
|
<item>latn_bone</item>
|
||||||
<item>latn_neo2</item>
|
<item>latn_neo2</item>
|
||||||
|
<item>latn_qwerty_apl</item>
|
||||||
|
<item>latn_qwerty_az</item>
|
||||||
|
<item>latn_qwerty_bqn</item>
|
||||||
<item>latn_qwerty_br</item>
|
<item>latn_qwerty_br</item>
|
||||||
|
<item>latn_qwerty_cy</item>
|
||||||
<item>latn_qwerty_cz</item>
|
<item>latn_qwerty_cz</item>
|
||||||
<item>latn_qwerty_da</item>
|
<item>latn_qwerty_da</item>
|
||||||
<item>latn_qwerty_es</item>
|
<item>latn_qwerty_es</item>
|
||||||
|
<item>latn_qwerty_et</item>
|
||||||
|
<item>latn_qwerty_ga</item>
|
||||||
<item>latn_qwerty_gb</item>
|
<item>latn_qwerty_gb</item>
|
||||||
|
<item>latn_qwerty_haw</item>
|
||||||
<item>latn_qwerty_hu</item>
|
<item>latn_qwerty_hu</item>
|
||||||
|
<item>latn_qwerty_jp</item>
|
||||||
|
<item>latn_qwerty_kk</item>
|
||||||
|
<item>latn_qwerty_lt</item>
|
||||||
<item>latn_qwerty_lv</item>
|
<item>latn_qwerty_lv</item>
|
||||||
|
<item>latn_qwerty_mt</item>
|
||||||
<item>latn_qwerty_no</item>
|
<item>latn_qwerty_no</item>
|
||||||
<item>latn_qwerty_pl</item>
|
<item>latn_qwerty_pl</item>
|
||||||
<item>latn_qwerty_ro</item>
|
<item>latn_qwerty_ro</item>
|
||||||
<item>latn_qwerty_se</item>
|
<item>latn_qwerty_se</item>
|
||||||
<item>latn_qwerty_sk</item>
|
<item>latn_qwerty_sk</item>
|
||||||
|
<item>latn_qwerty_sr</item>
|
||||||
<item>latn_qwerty_tly</item>
|
<item>latn_qwerty_tly</item>
|
||||||
<item>latn_qwerty_tr</item>
|
<item>latn_qwerty_tr</item>
|
||||||
|
<item>latn_qwerty_uz</item>
|
||||||
<item>latn_qwerty_vi</item>
|
<item>latn_qwerty_vi</item>
|
||||||
<item>latn_qwertz</item>
|
<item>latn_qwertz</item>
|
||||||
<item>latn_qwertz_cz</item>
|
<item>latn_qwertz_cz</item>
|
||||||
|
<item>latn_qwertz_cz_diacritics</item>
|
||||||
<item>latn_qwertz_cz_multifunctional</item>
|
<item>latn_qwertz_cz_multifunctional</item>
|
||||||
<item>latn_qwertz_de</item>
|
<item>latn_qwertz_de</item>
|
||||||
<item>latn_qwertz_fr_ch</item>
|
<item>latn_qwertz_fr_ch</item>
|
||||||
<item>latn_qwertz_hu</item>
|
<item>latn_qwertz_hu</item>
|
||||||
<item>latn_qwertz_sk</item>
|
<item>latn_qwertz_sk</item>
|
||||||
|
<item>latn_qwertz_sq</item>
|
||||||
|
<item>latn_workman_us</item>
|
||||||
<item>shaw_imperial_en</item>
|
<item>shaw_imperial_en</item>
|
||||||
|
<item>tamil_default</item>
|
||||||
<item>urdu_phonetic_ur</item>
|
<item>urdu_phonetic_ur</item>
|
||||||
<item>custom</item>
|
<item>custom</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
@@ -64,50 +92,78 @@
|
|||||||
<item>Arabic Alt</item>
|
<item>Arabic Alt</item>
|
||||||
<item>Talysh (تالشی همواج)</item>
|
<item>Talysh (تالشی همواج)</item>
|
||||||
<item>Arabic PC</item>
|
<item>Arabic PC</item>
|
||||||
<item>Kurdish (کوردی)</item>
|
<item>Kurdish (کوردی) QWERTY</item>
|
||||||
|
<item>Central Kurdish (سۆرانی) Persian Layout</item>
|
||||||
<item>Arabic PC (Hindu numerals)</item>
|
<item>Arabic PC (Hindu numerals)</item>
|
||||||
<item>Persian PC</item>
|
<item>Persian PC</item>
|
||||||
<item>Armenian</item>
|
<item>Armenian</item>
|
||||||
<item>বাংলা (জাতীয়)</item>
|
<item>বাংলা (জাতীয়)</item>
|
||||||
<item>বাংলা (প্রভাত)</item>
|
<item>বাংলা (প্রভাত)</item>
|
||||||
|
<item>ФЦУЖЭН (Монгол)</item>
|
||||||
|
<item>ЙЦУКЕН (Қазақша)</item>
|
||||||
<item>ЙЦУКЕН (Русский)</item>
|
<item>ЙЦУКЕН (Русский)</item>
|
||||||
<item>ЙЦУКЕН (Українська)</item>
|
<item>ЙЦУКЕН (Українська)</item>
|
||||||
|
<item>ЉЊЕРТЗ (Српски)</item>
|
||||||
<item>УЕИШЩ (Български, БДС)</item>
|
<item>УЕИШЩ (Български, БДС)</item>
|
||||||
<item>ЯВЕРТЪ</item>
|
<item>ЯВЕРТЪ</item>
|
||||||
|
<item>Tajiki Persian (Тоҷикӣ)</item>
|
||||||
|
<item>Old Church Slavonic (Црькъвьнословѣньскъ ѩзыкъ)</item>
|
||||||
<item>देवनागरी (हिंदी)-2</item>
|
<item>देवनागरी (हिंदी)-2</item>
|
||||||
<item>देवनागरी (हिंदी)-1</item>
|
<item>देवनागरी (हिंदी)-1</item>
|
||||||
|
<item>हिन्दी फोनेटिक - Hindi Phonetic</item>
|
||||||
|
<item>ქართული (MES)</item>
|
||||||
|
<item>ქართული (QWERTY)</item>
|
||||||
<item>QWERTY (Greek)</item>
|
<item>QWERTY (Greek)</item>
|
||||||
<item>ગુજરાતી ફોનેટિક - Gujarati Phonetic</item>
|
<item>ગુજરાતી ફોનેટિક - Gujarati Phonetic</item>
|
||||||
<item>두벌식 (Korean)</item>
|
<item>두벌식 (Korean)</item>
|
||||||
<item>Hebrew 1</item>
|
<item>Hebrew 1</item>
|
||||||
<item>Hebrew 2</item>
|
<item>Hebrew 2</item>
|
||||||
|
<item>ಕನ್ನಡ - Kannada</item>
|
||||||
|
<item>AZERTY (Belgian)</item>
|
||||||
<item>AZERTY (Français)</item>
|
<item>AZERTY (Français)</item>
|
||||||
<item>BEPO (Français)</item>
|
<item>BEPO (Français)</item>
|
||||||
<item>Bone</item>
|
<item>Bone</item>
|
||||||
<item>Neo 2</item>
|
<item>Neo 2</item>
|
||||||
|
<item>QWERTY (APL)</item>
|
||||||
|
<item>QWERTY (Azərbaycanca)</item>
|
||||||
|
<item>QWERTY (BQN)</item>
|
||||||
<item>QWERTY (Brasileiro)</item>
|
<item>QWERTY (Brasileiro)</item>
|
||||||
|
<item>QWERTY (Welsh)</item>
|
||||||
<item>QWERTY (Czech)</item>
|
<item>QWERTY (Czech)</item>
|
||||||
<item>QWERTY (Danish)</item>
|
<item>QWERTY (Danish)</item>
|
||||||
<item>QWERTY (Español)</item>
|
<item>QWERTY (Español)</item>
|
||||||
|
<item>QWERTY (eesti)</item>
|
||||||
|
<item>QWERTY (Irish)</item>
|
||||||
<item>QWERTY (UK)</item>
|
<item>QWERTY (UK)</item>
|
||||||
|
<item>QWERTY (Hawaiian)</item>
|
||||||
<item>QWERTY (Magyar)</item>
|
<item>QWERTY (Magyar)</item>
|
||||||
|
<item>QWERTY (Japan)</item>
|
||||||
|
<item>QWERTY (Qazaqşa)</item>
|
||||||
|
<item>QWERTY (Lietuviškai)</item>
|
||||||
<item>QWERTY (Latvian)</item>
|
<item>QWERTY (Latvian)</item>
|
||||||
|
<item>QWERTY (Malti)</item>
|
||||||
<item>QWERTY (Norwegian)</item>
|
<item>QWERTY (Norwegian)</item>
|
||||||
<item>QWERTY (Polski)</item>
|
<item>QWERTY (Polski)</item>
|
||||||
<item>QWERTY (Română)</item>
|
<item>QWERTY (Română)</item>
|
||||||
<item>QWERTY (Swedish)</item>
|
<item>QWERTY (Swedish)</item>
|
||||||
<item>QWERTY (Slovak)</item>
|
<item>QWERTY (Slovak)</item>
|
||||||
|
<item>QWERTY (Srpski, latinica)</item>
|
||||||
<item>QWERTY (Talysh New Latin)</item>
|
<item>QWERTY (Talysh New Latin)</item>
|
||||||
<item>QWERTY (Türkçe)</item>
|
<item>QWERTY (Türkçe)</item>
|
||||||
|
<item>QWERTY (Oʻzbekcha)</item>
|
||||||
<item>QWERTY (Vietnamese)</item>
|
<item>QWERTY (Vietnamese)</item>
|
||||||
<item>QWERTZ</item>
|
<item>QWERTZ</item>
|
||||||
<item>QWERTZ (Czech)</item>
|
<item>QWERTZ (Czech)</item>
|
||||||
|
<item>QWERTZ (Czech with diacritic keys)</item>
|
||||||
<item>QWERTZ Multifunctional (Czech)</item>
|
<item>QWERTZ Multifunctional (Czech)</item>
|
||||||
<item>QWERTZ (Deutsch)</item>
|
<item>QWERTZ (Deutsch)</item>
|
||||||
<item>QWERTZ (Swiss French)</item>
|
<item>QWERTZ (Swiss French)</item>
|
||||||
<item>QWERTZ (Magyar)</item>
|
<item>QWERTZ (Magyar)</item>
|
||||||
<item>QWERTZ (Slovak)</item>
|
<item>QWERTZ (Slovak)</item>
|
||||||
|
<item>QWERTZ (Albanian)</item>
|
||||||
|
<item>WORKMAN (US)</item>
|
||||||
<item>Shaw Imperial</item>
|
<item>Shaw Imperial</item>
|
||||||
|
<item>தமிழ்</item>
|
||||||
<item>Urdu Phonetic</item>
|
<item>Urdu Phonetic</item>
|
||||||
<item>@string/pref_layout_e_custom</item>
|
<item>@string/pref_layout_e_custom</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
@@ -120,49 +176,77 @@
|
|||||||
<item>@xml/arab_hamvaj_tly</item>
|
<item>@xml/arab_hamvaj_tly</item>
|
||||||
<item>@xml/arab_pc</item>
|
<item>@xml/arab_pc</item>
|
||||||
<item>@xml/arab_pc_ckb</item>
|
<item>@xml/arab_pc_ckb</item>
|
||||||
|
<item>@xml/arab_pc_ckb_fa</item>
|
||||||
<item>@xml/arab_pc_hindu</item>
|
<item>@xml/arab_pc_hindu</item>
|
||||||
<item>@xml/arab_pc_ir</item>
|
<item>@xml/arab_pc_ir</item>
|
||||||
<item>@xml/armenian_ph_am</item>
|
<item>@xml/armenian_ph_am</item>
|
||||||
<item>@xml/beng_national</item>
|
<item>@xml/beng_national</item>
|
||||||
<item>@xml/beng_provat</item>
|
<item>@xml/beng_provat</item>
|
||||||
|
<item>@xml/cyrl_fcuzhen_mn</item>
|
||||||
|
<item>@xml/cyrl_jcuken_kk</item>
|
||||||
<item>@xml/cyrl_jcuken_ru</item>
|
<item>@xml/cyrl_jcuken_ru</item>
|
||||||
<item>@xml/cyrl_jcuken_uk</item>
|
<item>@xml/cyrl_jcuken_uk</item>
|
||||||
|
<item>@xml/cyrl_lynyertz_sr</item>
|
||||||
<item>@xml/cyrl_ueishsht</item>
|
<item>@xml/cyrl_ueishsht</item>
|
||||||
<item>@xml/cyrl_yaverti</item>
|
<item>@xml/cyrl_yaverti</item>
|
||||||
|
<item>@xml/cyrl_yqukeng_tj</item>
|
||||||
|
<item>@xml/cyrl_yxukeng_os</item>
|
||||||
<item>@xml/deva_alt</item>
|
<item>@xml/deva_alt</item>
|
||||||
<item>@xml/deva_inscript</item>
|
<item>@xml/deva_inscript</item>
|
||||||
|
<item>@xml/deva_phonetic_in</item>
|
||||||
|
<item>@xml/georgian_mes</item>
|
||||||
|
<item>@xml/georgian_qwerty</item>
|
||||||
<item>@xml/grek_qwerty</item>
|
<item>@xml/grek_qwerty</item>
|
||||||
<item>@xml/guj_phonetic_in</item>
|
<item>@xml/guj_phonetic_in</item>
|
||||||
<item>@xml/hang_dubeolsik_kr</item>
|
<item>@xml/hang_dubeolsik_kr</item>
|
||||||
<item>@xml/hebr_1_il</item>
|
<item>@xml/hebr_1_il</item>
|
||||||
<item>@xml/hebr_2_il</item>
|
<item>@xml/hebr_2_il</item>
|
||||||
|
<item>@xml/kann_kannada</item>
|
||||||
|
<item>@xml/latn_azerty_be</item>
|
||||||
<item>@xml/latn_azerty_fr</item>
|
<item>@xml/latn_azerty_fr</item>
|
||||||
<item>@xml/latn_bepo_fr</item>
|
<item>@xml/latn_bepo_fr</item>
|
||||||
<item>@xml/latn_bone</item>
|
<item>@xml/latn_bone</item>
|
||||||
<item>@xml/latn_neo2</item>
|
<item>@xml/latn_neo2</item>
|
||||||
|
<item>@xml/latn_qwerty_apl</item>
|
||||||
|
<item>@xml/latn_qwerty_az</item>
|
||||||
|
<item>@xml/latn_qwerty_bqn</item>
|
||||||
<item>@xml/latn_qwerty_br</item>
|
<item>@xml/latn_qwerty_br</item>
|
||||||
|
<item>@xml/latn_qwerty_cy</item>
|
||||||
<item>@xml/latn_qwerty_cz</item>
|
<item>@xml/latn_qwerty_cz</item>
|
||||||
<item>@xml/latn_qwerty_da</item>
|
<item>@xml/latn_qwerty_da</item>
|
||||||
<item>@xml/latn_qwerty_es</item>
|
<item>@xml/latn_qwerty_es</item>
|
||||||
|
<item>@xml/latn_qwerty_et</item>
|
||||||
|
<item>@xml/latn_qwerty_ga</item>
|
||||||
<item>@xml/latn_qwerty_gb</item>
|
<item>@xml/latn_qwerty_gb</item>
|
||||||
|
<item>@xml/latn_qwerty_haw</item>
|
||||||
<item>@xml/latn_qwerty_hu</item>
|
<item>@xml/latn_qwerty_hu</item>
|
||||||
|
<item>@xml/latn_qwerty_jp</item>
|
||||||
|
<item>@xml/latn_qwerty_kk</item>
|
||||||
|
<item>@xml/latn_qwerty_lt</item>
|
||||||
<item>@xml/latn_qwerty_lv</item>
|
<item>@xml/latn_qwerty_lv</item>
|
||||||
|
<item>@xml/latn_qwerty_mt</item>
|
||||||
<item>@xml/latn_qwerty_no</item>
|
<item>@xml/latn_qwerty_no</item>
|
||||||
<item>@xml/latn_qwerty_pl</item>
|
<item>@xml/latn_qwerty_pl</item>
|
||||||
<item>@xml/latn_qwerty_ro</item>
|
<item>@xml/latn_qwerty_ro</item>
|
||||||
<item>@xml/latn_qwerty_se</item>
|
<item>@xml/latn_qwerty_se</item>
|
||||||
<item>@xml/latn_qwerty_sk</item>
|
<item>@xml/latn_qwerty_sk</item>
|
||||||
|
<item>@xml/latn_qwerty_sr</item>
|
||||||
<item>@xml/latn_qwerty_tly</item>
|
<item>@xml/latn_qwerty_tly</item>
|
||||||
<item>@xml/latn_qwerty_tr</item>
|
<item>@xml/latn_qwerty_tr</item>
|
||||||
|
<item>@xml/latn_qwerty_uz</item>
|
||||||
<item>@xml/latn_qwerty_vi</item>
|
<item>@xml/latn_qwerty_vi</item>
|
||||||
<item>@xml/latn_qwertz</item>
|
<item>@xml/latn_qwertz</item>
|
||||||
<item>@xml/latn_qwertz_cz</item>
|
<item>@xml/latn_qwertz_cz</item>
|
||||||
|
<item>@xml/latn_qwertz_cz_diacritics</item>
|
||||||
<item>@xml/latn_qwertz_cz_multifunctional</item>
|
<item>@xml/latn_qwertz_cz_multifunctional</item>
|
||||||
<item>@xml/latn_qwertz_de</item>
|
<item>@xml/latn_qwertz_de</item>
|
||||||
<item>@xml/latn_qwertz_fr_ch</item>
|
<item>@xml/latn_qwertz_fr_ch</item>
|
||||||
<item>@xml/latn_qwertz_hu</item>
|
<item>@xml/latn_qwertz_hu</item>
|
||||||
<item>@xml/latn_qwertz_sk</item>
|
<item>@xml/latn_qwertz_sk</item>
|
||||||
|
<item>@xml/latn_qwertz_sq</item>
|
||||||
|
<item>@xml/latn_workman_us</item>
|
||||||
<item>@xml/shaw_imperial_en</item>
|
<item>@xml/shaw_imperial_en</item>
|
||||||
|
<item>@xml/tamil_default</item>
|
||||||
<item>@xml/urdu_phonetic_ur</item>
|
<item>@xml/urdu_phonetic_ur</item>
|
||||||
<item>-1</item>
|
<item>-1</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
@@ -68,6 +68,10 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="pref_theme_e_epaper">ePaper</string>
|
<string name="pref_theme_e_epaper">ePaper</string>
|
||||||
<string name="pref_theme_e_desert">Desert</string>
|
<string name="pref_theme_e_desert">Desert</string>
|
||||||
<string name="pref_theme_e_jungle">Jungle</string>
|
<string name="pref_theme_e_jungle">Jungle</string>
|
||||||
|
<string name="pref_theme_e_monet">Monet (System)</string>
|
||||||
|
<string name="pref_theme_e_monetlight">Monet (Light)</string>
|
||||||
|
<string name="pref_theme_e_monetdark">Monet (Dark)</string>
|
||||||
|
<string name="pref_theme_e_rosepine">Rosé Pine</string>
|
||||||
<string name="pref_swipe_dist_e_very_short">Very short</string>
|
<string name="pref_swipe_dist_e_very_short">Very short</string>
|
||||||
<string name="pref_swipe_dist_e_short">Short</string>
|
<string name="pref_swipe_dist_e_short">Short</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@@ -116,4 +120,19 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="key_descr_page_down">Page Down</string>
|
<string name="key_descr_page_down">Page Down</string>
|
||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
|
<string name="key_descr_clipboard">Clipboard manager</string>
|
||||||
|
<string name="key_descr_combining">Combining diacritic</string>
|
||||||
|
<string name="key_descr_dead_key">Dead key</string>
|
||||||
|
<string name="key_descr_zwj">Zero width joiner</string>
|
||||||
|
<string name="key_descr_zwnj">Zero width non-joiner</string>
|
||||||
|
<string name="key_descr_nbsp">Non-breaking space</string>
|
||||||
|
<string name="key_descr_nnbsp">Narrow non-breaking space</string>
|
||||||
|
<string name="key_descr_delete_word">Delete a word</string>
|
||||||
|
<string name="key_descr_forward_delete_word">Delete a word on the right</string>
|
||||||
|
<string name="key_descr_gesture">Gesture</string>
|
||||||
|
<string name="clipboard_history_heading">Recently copied text</string>
|
||||||
|
<string name="clipboard_pin_heading">Pinned</string>
|
||||||
|
<string name="clipboard_remove_confirm">Remove this clipboard?</string>
|
||||||
|
<string name="clipboard_remove_confirmed">Yes</string>
|
||||||
|
<string name="toast_no_voice_input">No voice typing app installed</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<!-- Emoji pane -->
|
||||||
<style name="emojiTypeButton">
|
<style name="emojiTypeButton">
|
||||||
<item name="android:padding">1px</item>
|
<item name="android:padding">1px</item>
|
||||||
<item name="android:gravity">center</item>
|
<item name="android:gravity">center</item>
|
||||||
@@ -15,6 +16,39 @@
|
|||||||
<item name="android:textSize">@dimen/emoji_text_size</item>
|
<item name="android:textSize">@dimen/emoji_text_size</item>
|
||||||
<item name="android:textColor">?attr/emoji_color</item>
|
<item name="android:textColor">?attr/emoji_color</item>
|
||||||
</style>
|
</style>
|
||||||
|
<!-- Clipboard pane -->
|
||||||
|
<style name="clipboardEntry">
|
||||||
|
<item name="android:layout_weight">1</item>
|
||||||
|
<item name="android:layout_width">fill_parent</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layout_marginHorizontal">14dp</item>
|
||||||
|
<item name="android:layout_marginVertical">14dp</item>
|
||||||
|
<item name="android:textSize">16dp</item>
|
||||||
|
<item name="android:textColor">?attr/colorLabel</item>
|
||||||
|
</style>
|
||||||
|
<style name="clipboardHeading">
|
||||||
|
<item name="android:layout_marginHorizontal">6dp</item>
|
||||||
|
<item name="android:layout_marginTop">14dp</item>
|
||||||
|
<item name="android:layout_marginBottom">0dp</item>
|
||||||
|
<item name="android:textSize">14dp</item>
|
||||||
|
<item name="android:fontWeight">700</item>
|
||||||
|
<item name="android:textColor">?attr/colorSubLabel</item>
|
||||||
|
</style>
|
||||||
|
<style name="clipboardEntryButtons">
|
||||||
|
<item name="android:orientation">horizontal</item>
|
||||||
|
<item name="android:layout_width">wrap_content</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layout_gravity">center_vertical</item>
|
||||||
|
<item name="android:layout_marginRight">12dp</item>
|
||||||
|
</style>
|
||||||
|
<style name="clipboardEntryButton">
|
||||||
|
<item name="android:layout_width">24dp</item>
|
||||||
|
<item name="android:layout_height">24dp</item>
|
||||||
|
<item name="android:layout_marginHorizontal">2dp</item>
|
||||||
|
<item name="android:backgroundTint">?attr/colorLabel</item>
|
||||||
|
<item name="android:backgroundTintMode">src_in</item>
|
||||||
|
</style>
|
||||||
|
<!-- Launcher activity -->
|
||||||
<style name="paragraph">
|
<style name="paragraph">
|
||||||
<item name="android:layout_width">fill_parent</item>
|
<item name="android:layout_width">fill_parent</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
@@ -22,5 +56,33 @@
|
|||||||
<item name="android:layout_marginHorizontal">16dp</item>
|
<item name="android:layout_marginHorizontal">16dp</item>
|
||||||
<item name="android:layout_gravity">center</item>
|
<item name="android:layout_gravity">center</item>
|
||||||
</style>
|
</style>
|
||||||
|
<style name="anim">
|
||||||
|
<item name="android:adjustViewBounds">true</item>
|
||||||
|
<item name="android:layout_height">120dp</item>
|
||||||
|
<item name="android:layout_weight">1</item>
|
||||||
|
<item name="android:layout_width">wrap_content</item>
|
||||||
|
</style>
|
||||||
|
<style name="anim_text">
|
||||||
|
<item name="android:layout_gravity">center</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layout_marginHorizontal">20dp</item>
|
||||||
|
<item name="android:layout_weight">1</item>
|
||||||
|
<item name="android:layout_width">wrap_content</item>
|
||||||
|
<item name="android:textAlignment">center</item>
|
||||||
|
<item name="android:textSize">18dp</item>
|
||||||
|
<item name="android:textStyle">bold</item>
|
||||||
|
</style>
|
||||||
|
<style name="anim_box">
|
||||||
|
<item name="android:layout_gravity">center</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layout_marginVertical">16dp</item>
|
||||||
|
<item name="android:layout_width">wrap_content</item>
|
||||||
|
<item name="android:orientation">horizontal</item>
|
||||||
|
</style>
|
||||||
<style name="appTheme" parent="@android:style/Theme.DeviceDefault.DayNight"/>
|
<style name="appTheme" parent="@android:style/Theme.DeviceDefault.DayNight"/>
|
||||||
|
<style name="settingsTheme" parent="appTheme">
|
||||||
|
<!-- Setting this in the activity theme so it propagate to nested
|
||||||
|
preference screens. -->
|
||||||
|
<item name="android:fitsSystemWindows">true</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -23,11 +23,14 @@
|
|||||||
<attr name="keyBorderColorTop" format="color"/>
|
<attr name="keyBorderColorTop" format="color"/>
|
||||||
<attr name="keyBorderColorRight" format="color"/>
|
<attr name="keyBorderColorRight" format="color"/>
|
||||||
<attr name="keyBorderColorBottom" format="color"/>
|
<attr name="keyBorderColorBottom" format="color"/>
|
||||||
<!-- Emoji panel -->
|
<!-- Emoji pane -->
|
||||||
<attr name="emoji_button_bg" type="color" format="color"/>
|
<attr name="emoji_button_bg" type="color" format="color"/>
|
||||||
<attr name="emoji_color" type="color" format="color"/>
|
<attr name="emoji_color" type="color" format="color"/>
|
||||||
<attr name="emoji_key_bg" type="color" format="color"/>
|
<attr name="emoji_key_bg" type="color" format="color"/>
|
||||||
<attr name="emoji_key_text" type="color" format="color"/>
|
<attr name="emoji_key_text" type="color" format="color"/>
|
||||||
|
<!-- Clipboard pane -->
|
||||||
|
<attr name="clipboard_divider_color" type="color" format="color"/>
|
||||||
|
<attr name="clipboard_divider_height" format="dimension"/>
|
||||||
<!-- System integration -->
|
<!-- System integration -->
|
||||||
<attr name="navigationBarColor" format="color"/>
|
<attr name="navigationBarColor" format="color"/>
|
||||||
<attr name="windowLightNavigationBar" format="boolean"/>
|
<attr name="windowLightNavigationBar" format="boolean"/>
|
||||||
@@ -43,6 +46,8 @@
|
|||||||
<item name="greyedDimming">0.5</item>
|
<item name="greyedDimming">0.5</item>
|
||||||
<item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item>
|
<item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item>
|
||||||
<item name="emoji_key_text" type="color">?attr/colorLabel</item>
|
<item name="emoji_key_text" type="color">?attr/colorLabel</item>
|
||||||
|
<item name="clipboard_divider_color" type="color">?attr/colorKey</item>
|
||||||
|
<item name="clipboard_divider_height">1px</item>
|
||||||
</style>
|
</style>
|
||||||
<style name="Dark" parent="BaseTheme">
|
<style name="Dark" parent="BaseTheme">
|
||||||
<item name="android:isLightTheme">false</item>
|
<item name="android:isLightTheme">false</item>
|
||||||
@@ -116,6 +121,7 @@
|
|||||||
<item name="colorSubLabel">#333333</item>
|
<item name="colorSubLabel">#333333</item>
|
||||||
<item name="emoji_button_bg">#ffffff</item>
|
<item name="emoji_button_bg">#ffffff</item>
|
||||||
<item name="emoji_color">#000000</item>
|
<item name="emoji_color">#000000</item>
|
||||||
|
<item name="clipboard_divider_color" type="color">#eeeeee</item>
|
||||||
</style>
|
</style>
|
||||||
<style name="ePaper" parent="BaseTheme">
|
<style name="ePaper" parent="BaseTheme">
|
||||||
<item name="android:isLightTheme">true</item>
|
<item name="android:isLightTheme">true</item>
|
||||||
@@ -134,6 +140,8 @@
|
|||||||
<item name="colorSubLabel">#333333</item>
|
<item name="colorSubLabel">#333333</item>
|
||||||
<item name="emoji_button_bg">#ffffff</item>
|
<item name="emoji_button_bg">#ffffff</item>
|
||||||
<item name="emoji_color">#000000</item>
|
<item name="emoji_color">#000000</item>
|
||||||
|
<item name="clipboard_divider_color" type="color">#000000</item>
|
||||||
|
<item name="clipboard_divider_height">2dp</item>
|
||||||
</style>
|
</style>
|
||||||
<style name="Desert" parent="@style/BaseTheme">
|
<style name="Desert" parent="@style/BaseTheme">
|
||||||
<item name="android:isLightTheme">true</item>
|
<item name="android:isLightTheme">true</item>
|
||||||
@@ -171,4 +179,47 @@
|
|||||||
<item name="emoji_button_bg">?colorKeyActivated</item>
|
<item name="emoji_button_bg">?colorKeyActivated</item>
|
||||||
<item name="emoji_color">#000000</item>
|
<item name="emoji_color">#000000</item>
|
||||||
</style>
|
</style>
|
||||||
|
<style name="MonetLight" parent="@style/BaseTheme">
|
||||||
|
<item name="android:isLightTheme">true</item>
|
||||||
|
<item name="colorKeyboard">@android:color/system_accent1_100</item>
|
||||||
|
<item name="colorKey">@android:color/system_accent1_0</item>
|
||||||
|
<item name="colorKeyActivated">@android:color/system_accent1_300</item>
|
||||||
|
<item name="colorLabel">@android:color/system_accent1_1000</item>
|
||||||
|
<item name="colorLabelActivated">@android:color/system_accent1_1000</item>
|
||||||
|
<item name="colorLabelLocked">@android:color/system_accent1_500</item>
|
||||||
|
<item name="colorSubLabel">@android:color/system_accent1_900</item>
|
||||||
|
<item name="emoji_button_bg">?colorKeyActivated</item>
|
||||||
|
<item name="emoji_color">@android:color/system_accent1_1000</item>
|
||||||
|
</style>
|
||||||
|
<style name="MonetDark" parent="@style/BaseTheme">
|
||||||
|
<item name="android:isLightTheme">false</item>
|
||||||
|
<item name="colorKeyboard">@android:color/system_neutral1_900</item>
|
||||||
|
<item name="colorKey">@android:color/system_accent2_800</item>
|
||||||
|
<item name="colorKeyActivated">@android:color/system_accent1_800</item>
|
||||||
|
<item name="colorLabel">@android:color/system_neutral1_0</item>
|
||||||
|
<item name="colorLabelActivated">@android:color/system_accent1_400</item>
|
||||||
|
<item name="colorLabelLocked">@android:color/system_accent1_100</item>
|
||||||
|
<item name="colorSubLabel">@android:color/system_neutral1_300</item>
|
||||||
|
<item name="emoji_button_bg">?colorKeyActivated</item>
|
||||||
|
<item name="emoji_color">@android:color/system_neutral1_900</item>
|
||||||
|
</style>
|
||||||
|
<style name="RosePine" parent="BaseTheme">
|
||||||
|
<item name="android:isLightTheme">false</item>
|
||||||
|
<item name="colorKeyboard">#191724</item>
|
||||||
|
<item name="colorKey">#26233a</item>
|
||||||
|
<item name="colorKeyActivated">#403d52</item>
|
||||||
|
<item name="keyBorderWidth">0dp</item>
|
||||||
|
<item name="keyBorderWidthActivated">1dp</item>
|
||||||
|
<item name="keyBorderColorLeft">#6e6a86</item>
|
||||||
|
<item name="keyBorderColorTop">#6e6a86</item>
|
||||||
|
<item name="keyBorderColorRight">#6e6a86</item>
|
||||||
|
<item name="keyBorderColorBottom">#6e6a86</item>
|
||||||
|
<item name="colorLabel">#e0def4</item>
|
||||||
|
<item name="colorLabelActivated">#c4a7e7</item>
|
||||||
|
<item name="colorLabelLocked">#31748f</item>
|
||||||
|
<item name="colorSubLabel">#6e6a86</item>
|
||||||
|
<item name="keyBorderRadius">1dp</item>
|
||||||
|
<item name="emoji_button_bg">#26233a</item>
|
||||||
|
<item name="emoji_color">#e0def4</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -4,6 +4,11 @@
|
|||||||
<dimen name="key_padding">2dp</dimen>
|
<dimen name="key_padding">2dp</dimen>
|
||||||
<dimen name="emoji_grid_height">250dp</dimen>
|
<dimen name="emoji_grid_height">250dp</dimen>
|
||||||
<dimen name="emoji_text_size">28dp</dimen>
|
<dimen name="emoji_text_size">28dp</dimen>
|
||||||
|
<dimen name="clipboard_view_height">300dp</dimen>
|
||||||
<dimen name="pref_button_size">28dp</dimen>
|
<dimen name="pref_button_size">28dp</dimen>
|
||||||
<bool name="debug_logs">false</bool> <!-- Will be overwritten automatically by Gradle for the debug build variant -->
|
<!-- Margin needed to accomodate the gesture nav bar on Android 15. Found in
|
||||||
|
[core/res/res/values/dimens.xml]. -->
|
||||||
|
<dimen name="bottom_inset_min">48dp</dimen>
|
||||||
|
<!-- Will be overwritten automatically by Gradle for the debug build variant -->
|
||||||
|
<bool name="debug_logs">false</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<row height="0.95">
|
<row height="0.95">
|
||||||
<key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key4="switch_numeric"/>
|
<key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key3="loc switch_clipboard" key4="switch_numeric"/>
|
||||||
<key width="1.1" key0="fn" key1="loc alt" key2="loc change_method" key3="switch_emoji" key4="config"/>
|
<key width="1.1" key0="fn" key1="loc alt" key2="loc change_method" key3="switch_emoji" key4="config"/>
|
||||||
<key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right" slider="true"/>
|
<key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right"/>
|
||||||
<key width="1.1" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down"/>
|
<key width="1.1" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down"/>
|
||||||
<key width="1.7" key0="enter" key1="loc voice_typing" key2="action"/>
|
<key width="1.7" key0="enter" key1="loc voice_typing" key2="action"/>
|
||||||
</row>
|
</row>
|
||||||
|
10
res/xml/clipboard_bottom_row.xml
Normal file
10
res/xml/clipboard_bottom_row.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- The bottom row used in the clipboard history pane. -->
|
||||||
|
<keyboard bottom_row="false">
|
||||||
|
<row height="0.95">
|
||||||
|
<key key0="switch_back_clipboard"/>
|
||||||
|
<key width="3" key0="space" key5="cursor_left" key6="cursor_right"/>
|
||||||
|
<key key0="backspace" key2="delete"/>
|
||||||
|
<key key0="enter" key2="action"/>
|
||||||
|
</row>
|
||||||
|
</keyboard>
|
@@ -3,8 +3,8 @@
|
|||||||
<keyboard bottom_row="false">
|
<keyboard bottom_row="false">
|
||||||
<row height="0.95">
|
<row height="0.95">
|
||||||
<key key0="switch_back_emoji"/>
|
<key key0="switch_back_emoji"/>
|
||||||
<key width="4" key0="space" key5="cursor_left" key6="cursor_right" slider="true"/>
|
<key width="3" key0="space" key5="cursor_left" key6="cursor_right"/>
|
||||||
<key key0="backspace"/>
|
<key key0="backspace" key2="delete"/>
|
||||||
<key key0="enter"/>
|
<key key0="enter" key2="action"/>
|
||||||
</row>
|
</row>
|
||||||
</keyboard>
|
</keyboard>
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
<key key0="σ" key3="←" key4="∂"/>
|
<key key0="σ" key3="←" key4="∂"/>
|
||||||
<key key0="δ" key3="↓" key4="∫"/>
|
<key key0="δ" key3="↓" key4="∫"/>
|
||||||
<key key0="φ" key3="→" key4="∃"/>
|
<key key0="φ" key3="→" key4="∃"/>
|
||||||
<key key0="γ" key4="∈"/>
|
<key key0="γ" key3="∋" key4="∈"/>
|
||||||
<key key0="η" key1="⊕" key4="4"/>
|
<key key0="η" key1="⊕" key4="4"/>
|
||||||
<key key0="ξ" key1="⊖" key3="ℕ" key4="5"/>
|
<key key0="ξ" key1="⊖" key3="ℕ" key4="5"/>
|
||||||
<key key0="κ" key1="⊙" key3="ℝ" key4="6"/>
|
<key key0="κ" key1="⊙" key3="ℝ" key4="6"/>
|
||||||
|
@@ -1,44 +1,65 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<input-method xmlns:android="http://schemas.android.com/apk/res/android" android:settingsActivity="juloo.keyboard2.SettingsActivity" android:supportsSwitchingToNextInputMethod="true">
|
<input-method xmlns:android="http://schemas.android.com/apk/res/android" android:settingsActivity="juloo.keyboard2.SettingsActivity" android:supportsSwitchingToNextInputMethod="true">
|
||||||
|
<!-- The first entry of the list makes latn_qwerty_us the default layout for
|
||||||
|
unrecognized locales. -->
|
||||||
|
<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="ar" android:imeSubtypeLocale="ar" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=arabic,default_layout=arab_pc_hindu"/>
|
<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"/>
|
||||||
<subtype android:label="%s" android:languageTag="ar" android:imeSubtypeLocale="ar_TN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=arabic,default_layout=arab_pc"/>
|
<subtype android:label="%s" android:languageTag="ar" android:imeSubtypeLocale="ar_TN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=arabic,default_layout=arab_pc"/>
|
||||||
<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="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="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,extra_keys=ґ|є|і|ї|ў"/>
|
<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,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,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,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,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,extra_keys=৳"/>
|
||||||
<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,extra_keys=accent_aigu:á:é:í:ó:ú:ý@d|accent_ring:ů@s|accent_caron:č:ě:ň:ř:š:ž:ď:ť@f"/>
|
<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,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,extra_keys=€|æ|å|ø"/>
|
<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,extra_keys=€|æ|å|ø"/>
|
||||||
<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,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,extra_keys=accent_trema:ä:ö:ü@u|ß|€"/>
|
||||||
|
<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,extra_keys=accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|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,extra_keys=£@l|€"/>
|
<subtype android:label="%s" android:languageTag="el" android:imeSubtypeLocale="el" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=grek_qwerty,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"/>
|
||||||
<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-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,extra_keys=£@l"/>
|
<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,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-US" android:imeSubtypeLocale="en_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us"/>
|
<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"/>
|
||||||
<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,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_tilde:ñ@n|accent_grave@f|accent_trema@u|€"/>
|
<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,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="fa" android:imeSubtypeLocale="fa_IR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=arab_pc_ir"/>
|
<subtype android:label="%s" android:languageTag="fa" android:imeSubtypeLocale="fa_IR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=arab_pc_ir"/>
|
||||||
|
<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,extra_keys=accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|accent_trema@u|€"/>
|
||||||
<subtype android:label="%s" android:languageTag="fr-CA" android:imeSubtypeLocale="fr_CA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_fr,extra_keys=accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:â:ê:ô@f|accent_cedille:ç@c|accent_trema:ë:ï:ü:ÿ@u"/>
|
<subtype android:label="%s" android:languageTag="fr-CA" android:imeSubtypeLocale="fr_CA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_fr,extra_keys=accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:â:ê:ô@f|accent_cedille:ç@c|accent_trema:ë:ï:ü:ÿ@u"/>
|
||||||
<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,extra_keys=accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:â:ê:ô@o|accent_cedille:ç@c|accent_trema:ë:ï:ü:ÿ@u|€"/>
|
<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,extra_keys=accent_grave:à:è:ù@f|accent_aigu:é@d|accent_circonflexe:â:ê:ô@o|accent_cedille:ç@c|accent_trema:ë:ï:ü:ÿ@u|€"/>
|
||||||
<subtype android:label="%s" android:languageTag="fr-FR" android:imeSubtypeLocale="fr_FR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_fr,extra_keys=accent_grave:à:è@d|accent_aigu:é@d|accent_circonflexe:â:ê:ô@o|accent_cedille:ç@c|accent_trema:ë:ï:ü@l|€"/>
|
<subtype android:label="%s" android:languageTag="fr-FR" android:imeSubtypeLocale="fr_FR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_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="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=hebr_1_il,extra_keys=₪@r|€"/>
|
<subtype android:label="%s" android:languageTag="he" android:imeSubtypeLocale="he_IL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=hebrew,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,extra_keys=₹"/>
|
<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,extra_keys=₹"/>
|
||||||
<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,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_trema:ö:ü@u|accent_ogonek@s|accent_double_aigu:ő:ű@k|€"/>
|
<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,extra_keys=accent_aigu:á:é:í:ó:ú@d|accent_trema:ö:ü@u|accent_ogonek@s|accent_double_aigu:ő:ű@k|€"/>
|
||||||
<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_us,extra_keys=ð|þ|æ|accent_trema:ö@o|accent_aigu:á:é:í:ó:ú:ý@d"/>
|
<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_us,extra_keys=ð|þ|æ|accent_trema:ö@o|accent_aigu:á:é:í:ó:ú:ý@d"/>
|
||||||
<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,extra_keys=accent_grave:à:è:ì:ò:ù@f|accent_aigu:é:ó@d|accent_circonflexe:î@f|€|ə"/>
|
<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,extra_keys=accent_grave:à:è:ì:ò:ù@f|accent_aigu:é:ó@d|accent_circonflexe:î@f|€|ə"/>
|
||||||
|
<subtype android:label="%s" android:languageTag="ka-GE" android:imeSubtypeLocale="ka_GE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=georgian_mes"/>
|
||||||
|
<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"/>
|
||||||
<subtype android:label="%s" android:languageTag="ko" android:imeSubtypeLocale="ko_KR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=hangul,default_layout=latn_qwerty_us"/>
|
<subtype android:label="%s" android:languageTag="ko" android:imeSubtypeLocale="ko_KR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=hangul,default_layout=latn_qwerty_us"/>
|
||||||
<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_us,extra_keys=accent_ogonek:ą:ę:į:ų@s|accent_caron:č:š:ž@f|accent_dot_above:ė@s|accent_macron:ū@o|€"/>
|
<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,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,extra_keys=accent_macron:ā:ē:ī:ū@o|accent_caron:č:š:ž@f|accent_ogonek:ķ:ļ:ņ@s|accent_cedille:ģ@c|€"/>
|
<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,extra_keys=accent_macron:ā:ē:ī:ū@o|accent_caron:č:š:ž@f|accent_ogonek:ķ:ļ:ņ@s|accent_cedille:ģ@c|€"/>
|
||||||
|
<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,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,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="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="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-BE" android:imeSubtypeLocale="nl_BE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_fr,extra_keys=accent_grave:è@f|accent_aigu:á:é:í:ó:ú:ý:j́@d|accent_circonflexe:ê@f|accent_cedille:ç@c|accent_trema@u|€"/>
|
<subtype android:label="%s" android:languageTag="nl-BE" android:imeSubtypeLocale="nl_BE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_azerty_be,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="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"/>
|
<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"/>
|
||||||
<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,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_BR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_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,extra_keys=ă|â|î|ș|ț|€|$"/>
|
<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,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"/>
|
<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"/>
|
||||||
<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="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="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"/>
|
||||||
<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,extra_keys=accent_aigu:á@d|accent_trema:ä:ö@o|accent_ring:å@s|€"/>
|
<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,extra_keys=accent_aigu:á@d|accent_trema:ä:ö@o|accent_ring:å@s|€"/>
|
||||||
|
<subtype android:label="%s" android:languageTag="ta" android:imeSubtypeLocale="ta_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=tamil,default_layout=tamil_default"/>
|
||||||
<subtype android:label="%s" android:languageTag="tly" android:imeSubtypeLocale="tly_AZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_tly,extra_keys=á|ú|â|ê|ı|š|ž"/>
|
<subtype android:label="%s" android:languageTag="tly" android:imeSubtypeLocale="tly_AZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_tly,extra_keys=á|ú|â|ê|ı|š|ž"/>
|
||||||
<subtype android:label="%s" android:languageTag="tly" android:imeSubtypeLocale="tly_IR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=arab_hamvaj_tly"/>
|
<subtype android:label="%s" android:languageTag="tly" android:imeSubtypeLocale="tly_IR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="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,extra_keys=accent_cedille:ç:ş@c|accent_trema:ö:ü@u|accent_circonflexe:â:î:û@f|₺|ı|ğ"/>
|
<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,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,extra_keys=ґ|є|і|ї|₴"/>
|
<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,extra_keys=ґ|є|і|ї|₴"/>
|
||||||
|
<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="vi" android:imeSubtypeLocale="vi_VN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_vi"/>
|
||||||
</input-method>
|
</input-method>
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<row height="0.75">
|
<row height="0.75">
|
||||||
<key key0="1"/>
|
<key key0="1" se="!"/>
|
||||||
<key key0="2"/>
|
<key key0="2" se="@"/>
|
||||||
<key key0="3"/>
|
<key key0="3" se="#"/>
|
||||||
<key key0="4"/>
|
<key key0="4" se="$"/>
|
||||||
<key key0="5"/>
|
<key key0="5" se="%"/>
|
||||||
<key key0="6"/>
|
<key key0="6" sw="^"/>
|
||||||
<key key0="7"/>
|
<key key0="7" sw="&"/>
|
||||||
<key key0="8"/>
|
<key key0="8" sw="*"/>
|
||||||
<key key0="9"/>
|
<key key0="9" sw="("/>
|
||||||
<key key0="0"/>
|
<key key0="0" sw=")"/>
|
||||||
</row>
|
</row>
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
<key shift="1.0" key0="4" indication="GHI"/>
|
<key shift="1.0" key0="4" indication="GHI"/>
|
||||||
<key key0="5" indication="JKL"/>
|
<key key0="5" indication="JKL"/>
|
||||||
<key key0="6" indication="MNO"/>
|
<key key0="6" indication="MNO"/>
|
||||||
<key key0="(" key2="=" key3=":" key4="-"/>
|
<key key0="(" key1="paste" key2="=" key3=":" key4="-"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<key shift="1.0" key0="7" indication="PQRS"/>
|
<key shift="1.0" key0="7" indication="PQRS"/>
|
||||||
|
@@ -45,7 +45,7 @@
|
|||||||
<juloo.keyboard2.prefs.IntSlideBarPreference android:key="horizontal_margin_portrait" android:title="@string/pref_portrait" android:summary="%sdp" android:defaultValue="3" min="0" max="30"/>
|
<juloo.keyboard2.prefs.IntSlideBarPreference android:key="horizontal_margin_portrait" android:title="@string/pref_portrait" android:summary="%sdp" android:defaultValue="3" min="0" max="30"/>
|
||||||
<juloo.keyboard2.prefs.IntSlideBarPreference android:key="horizontal_margin_landscape" android:title="@string/pref_landscape" android:summary="%sdp" android:defaultValue="28" min="0" max="200"/>
|
<juloo.keyboard2.prefs.IntSlideBarPreference android:key="horizontal_margin_landscape" android:title="@string/pref_landscape" android:summary="%sdp" android:defaultValue="28" min="0" max="200"/>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
<juloo.keyboard2.prefs.SlideBarPreference android:key="character_size" android:title="@string/pref_character_size_title" android:summary="@string/pref_character_size_summary" android:defaultValue="1.0" min="0.75" max="1.5"/>
|
<juloo.keyboard2.prefs.SlideBarPreference android:key="character_size" android:title="@string/pref_character_size_title" android:summary="@string/pref_character_size_summary" android:defaultValue="1.15" min="0.75" max="1.5"/>
|
||||||
<juloo.keyboard2.prefs.SlideBarPreference android:key="key_vertical_margin" android:title="@string/pref_key_vertical_space" android:summary="%s%%" android:defaultValue="1.5" min="0" max="5"/>
|
<juloo.keyboard2.prefs.SlideBarPreference android:key="key_vertical_margin" android:title="@string/pref_key_vertical_space" android:summary="%s%%" android:defaultValue="1.5" min="0" max="5"/>
|
||||||
<juloo.keyboard2.prefs.SlideBarPreference android:key="key_horizontal_margin" android:title="@string/pref_key_horizontal_space" android:summary="%s%%" android:defaultValue="2" min="0" max="5"/>
|
<juloo.keyboard2.prefs.SlideBarPreference android:key="key_horizontal_margin" android:title="@string/pref_key_horizontal_space" android:summary="%s%%" android:defaultValue="2" min="0" max="5"/>
|
||||||
<CheckBoxPreference android:key="border_config" android:title="@string/pref_border_config_title" android:defaultValue="false"/>
|
<CheckBoxPreference android:key="border_config" android:title="@string/pref_border_config_title" android:defaultValue="false"/>
|
||||||
|
41
shell.nix
41
shell.nix
@@ -11,23 +11,58 @@ let
|
|||||||
buildToolsVersions = [ build_tools_version ];
|
buildToolsVersions = [ build_tools_version ];
|
||||||
platformVersions = [ "34" ];
|
platformVersions = [ "34" ];
|
||||||
abiVersions = [ "armeabi-v7a" ];
|
abiVersions = [ "armeabi-v7a" ];
|
||||||
|
inherit repoJson;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Ensure we have the needed system images
|
||||||
|
repoJson = pkgs.fetchurl {
|
||||||
|
url =
|
||||||
|
"https://raw.githubusercontent.com/NixOS/nixpkgs/ebc7402410a3ce2d25622137c190d4ab83945c10/pkgs/development/mobile/androidenv/repo.json";
|
||||||
|
hash = "sha256-4/0FMyxM+7d66qfhlY3A10RIe6j6VrW8DIilH2eQyzc=";
|
||||||
|
};
|
||||||
|
|
||||||
|
emulators = let
|
||||||
|
mk_emulator = { platformVersion, device ? "pixel_6", abiVersion ? "x86_64", systemImageType ? "default" }:
|
||||||
|
pkgs.androidenv.emulateApp rec {
|
||||||
|
name = "emulator_api${platformVersion}";
|
||||||
|
inherit platformVersion abiVersion systemImageType;
|
||||||
|
androidAvdFlags = "--device ${device}";
|
||||||
|
sdkExtraArgs = { inherit repoJson; };
|
||||||
|
};
|
||||||
|
# Allow to install several emulators in the same environment
|
||||||
|
link_emulator = version_name: args: {
|
||||||
|
name = "bin/emulate_android_${version_name}";
|
||||||
|
path = "${mk_emulator args}/bin/run-test-emulator";
|
||||||
|
};
|
||||||
|
in pkgs.linkFarm "emulator" [
|
||||||
|
(link_emulator "5" { platformVersion = "21"; })
|
||||||
|
# (link_emulator "14" { platformVersion = "34"; })
|
||||||
|
# There's no 'default' image for Android 15
|
||||||
|
(link_emulator "15" { platformVersion = "35"; systemImageType = "google_apis"; })
|
||||||
|
];
|
||||||
|
|
||||||
ANDROID_SDK_ROOT = "${android.androidsdk}/libexec/android-sdk";
|
ANDROID_SDK_ROOT = "${android.androidsdk}/libexec/android-sdk";
|
||||||
|
|
||||||
|
gradle = pkgs.gradle.override { java = jdk; };
|
||||||
# Without this option, aapt2 fails to run with a permissions error.
|
# Without this option, aapt2 fails to run with a permissions error.
|
||||||
gradle_wrapped = pkgs.runCommandLocal "gradle-wrapped" {
|
gradle_wrapped = pkgs.runCommandLocal "gradle-wrapped" {
|
||||||
nativeBuildInputs = with pkgs; [ makeBinaryWrapper ];
|
nativeBuildInputs = with pkgs; [ makeBinaryWrapper ];
|
||||||
} ''
|
} ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
ln -s ${pkgs.gradle}/bin/gradle $out/bin/gradle
|
ln -s ${gradle}/bin/gradle $out/bin/gradle
|
||||||
wrapProgram $out/bin/gradle \
|
wrapProgram $out/bin/gradle \
|
||||||
--add-flags "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${build_tools_version}/aapt2"
|
--add-flags "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${build_tools_version}/aapt2"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in pkgs.mkShell {
|
in pkgs.mkShell {
|
||||||
buildInputs =
|
buildInputs = [
|
||||||
[ pkgs.findutils pkgs.fontforge jdk android.androidsdk gradle_wrapped ];
|
pkgs.findutils
|
||||||
|
pkgs.fontforge
|
||||||
|
jdk
|
||||||
|
android.androidsdk
|
||||||
|
gradle_wrapped
|
||||||
|
emulators
|
||||||
|
];
|
||||||
JAVA_HOME = jdk.home;
|
JAVA_HOME = jdk.home;
|
||||||
inherit ANDROID_SDK_ROOT;
|
inherit ANDROID_SDK_ROOT;
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,8 @@
|
|||||||
The `compose.py` program parses the compose sequences found in this directory
|
The `compose.py` program parses the compose sequences found in this directory
|
||||||
and generates `srcs/juloo.keyboard2/ComposeKeyData.java`.
|
and generates `srcs/juloo.keyboard2/ComposeKeyData.java`.
|
||||||
|
|
||||||
## `en_US_UTF_8_Compose.pre`
|
## `compose/en_US_UTF_8_Compose.pre`
|
||||||
|
|
||||||
This file is copied from the `xorg` project. Copyright applies.
|
This file is copied from the `xorg` project. Copyright applies.
|
||||||
|
|
||||||
|
## `compose/extra.json`
|
||||||
|
@@ -1,17 +1,52 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "á",
|
"a": "á",
|
||||||
"c": "ć",
|
"c": "ć",
|
||||||
"e": "é",
|
"e": "é",
|
||||||
|
"g": "ǵ",
|
||||||
"i": "í",
|
"i": "í",
|
||||||
|
"k": "ḱ",
|
||||||
"l": "ĺ",
|
"l": "ĺ",
|
||||||
"ń": "ń",
|
"m": "ḿ",
|
||||||
|
"n": "ń",
|
||||||
"o": "ó",
|
"o": "ó",
|
||||||
|
"p": "ṕ",
|
||||||
"r": "ŕ",
|
"r": "ŕ",
|
||||||
"s": "ś",
|
"s": "ś",
|
||||||
"u": "ú",
|
"u": "ú",
|
||||||
|
"w": "ẃ",
|
||||||
"y": "ý",
|
"y": "ý",
|
||||||
"z": "ź",
|
"z": "ź",
|
||||||
|
// extended latin (multiple diacritics)
|
||||||
|
"â": "ấ",
|
||||||
|
"ă": "ắ",
|
||||||
|
"å": "ǻ",
|
||||||
|
"æ": "ǽ",
|
||||||
|
"ç": "ḉ",
|
||||||
|
"ê": "ế",
|
||||||
|
"ē": "ḗ",
|
||||||
|
"ï": "ḯ",
|
||||||
|
"ô": "ố",
|
||||||
|
"ơ": "ớ",
|
||||||
|
"õ": "ṍ",
|
||||||
|
"ō": "ṓ",
|
||||||
|
"ø": "ǿ",
|
||||||
|
"ṡ": "ṥ",
|
||||||
"ü": "ǘ",
|
"ü": "ǘ",
|
||||||
|
"ư": "ứ",
|
||||||
|
"ũ": "ṹ",
|
||||||
|
// greek
|
||||||
|
"α": "ά",
|
||||||
|
"ε": "έ",
|
||||||
|
"η": "ή",
|
||||||
|
"ι": "ί",
|
||||||
|
"ο": "ό",
|
||||||
|
"υ": "ύ",
|
||||||
|
// cyrillic
|
||||||
|
"к": "ќ",
|
||||||
|
"г": "ѓ",
|
||||||
|
// combining character
|
||||||
|
"ą": "ą\u0301",
|
||||||
"j": "j\u0301",
|
"j": "j\u0301",
|
||||||
"у": "у\u0301",
|
"у": "у\u0301",
|
||||||
"е": "е\u0301",
|
"е": "е\u0301",
|
||||||
|
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
|
"2": "ƻ",
|
||||||
"b": "ƀ",
|
"b": "ƀ",
|
||||||
"c": "ꞓ",
|
"c": "ꞓ",
|
||||||
"d": "đ",
|
"d": "đ",
|
||||||
|
"f": "ꞙ",
|
||||||
"g": "ǥ",
|
"g": "ǥ",
|
||||||
|
"h": "ħ",
|
||||||
"i": "ɨ",
|
"i": "ɨ",
|
||||||
"j": "ɉ",
|
"j": "ɉ",
|
||||||
"k": "ꝁ",
|
"k": "ꝁ",
|
||||||
@@ -14,5 +18,13 @@
|
|||||||
"t": "ŧ",
|
"t": "ŧ",
|
||||||
"u": "ʉ",
|
"u": "ʉ",
|
||||||
"y": "ɏ",
|
"y": "ɏ",
|
||||||
"z": "ƶ"
|
"z": "ƶ",
|
||||||
|
// extended latin
|
||||||
|
"ȷ": "ɟ",
|
||||||
|
// cyrillic
|
||||||
|
"о": "ө",
|
||||||
|
"ӧ": "ӫ",
|
||||||
|
"ү": "ұ",
|
||||||
|
"ь": "ҍ",
|
||||||
|
"х": "ӿ"
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,14 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ǎ",
|
"a": "ǎ",
|
||||||
"c": "č",
|
"c": "č",
|
||||||
"d": "ď",
|
"d": "ď",
|
||||||
"e": "ě",
|
"e": "ě",
|
||||||
|
"g": "ǧ",
|
||||||
|
"h": "ȟ",
|
||||||
"i": "ǐ",
|
"i": "ǐ",
|
||||||
|
"j": "ǰ", // no uppercase
|
||||||
|
"k": "ǩ",
|
||||||
"l": "ľ",
|
"l": "ľ",
|
||||||
"n": "ň",
|
"n": "ň",
|
||||||
"o": "ǒ",
|
"o": "ǒ",
|
||||||
@@ -12,5 +17,17 @@
|
|||||||
"t": "ť",
|
"t": "ť",
|
||||||
"u": "ǔ",
|
"u": "ǔ",
|
||||||
"z": "ž",
|
"z": "ž",
|
||||||
"ü": "ǚ"
|
// extended latin
|
||||||
|
"ṡ": "ṧ",
|
||||||
|
"ü": "ǚ",
|
||||||
|
"ʒ": "ǯ",
|
||||||
|
// combining character
|
||||||
|
"в": "в\u030C",
|
||||||
|
"г": "г\u030C",
|
||||||
|
"ғ": "ғ\u030C",
|
||||||
|
"д": "д\u030C",
|
||||||
|
"з": "з\u030C",
|
||||||
|
"р": "р\u030C",
|
||||||
|
"т": "т\u030C",
|
||||||
|
"х": "х\u030C"
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"c": "ç",
|
"c": "ç",
|
||||||
"d": "ḑ",
|
"d": "ḑ",
|
||||||
"e": "ȩ",
|
"e": "ȩ",
|
||||||
@@ -9,5 +10,8 @@
|
|||||||
"n": "ņ",
|
"n": "ņ",
|
||||||
"r": "ŗ",
|
"r": "ŗ",
|
||||||
"s": "ş",
|
"s": "ş",
|
||||||
"t": "ţ"
|
"t": "ţ",
|
||||||
|
// extended latin
|
||||||
|
"ć": "ḉ",
|
||||||
|
"ĕ": "ḝ"
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
|
"+": "⨣",
|
||||||
|
"≈": "⩯",
|
||||||
|
// latin
|
||||||
"a": "â",
|
"a": "â",
|
||||||
"c": "ĉ",
|
"c": "ĉ",
|
||||||
"e": "ê",
|
"e": "ê",
|
||||||
@@ -9,5 +12,30 @@
|
|||||||
"o": "ô",
|
"o": "ô",
|
||||||
"ŝ": "ŝ",
|
"ŝ": "ŝ",
|
||||||
"u": "û",
|
"u": "û",
|
||||||
"z": "ẑ"
|
"w": "ŵ",
|
||||||
|
"x": "x̂",
|
||||||
|
"y": "ŷ",
|
||||||
|
"z": "ẑ",
|
||||||
|
// extended latin
|
||||||
|
"á": "ấ",
|
||||||
|
"à": "ầ",
|
||||||
|
"ã": "ẫ",
|
||||||
|
"ạ": "ậ",
|
||||||
|
"ả": "ẩ",
|
||||||
|
"é": "ế",
|
||||||
|
"è": "ề",
|
||||||
|
"ẽ": "ễ",
|
||||||
|
"ẹ": "ệ",
|
||||||
|
"ẻ": "ể",
|
||||||
|
"ó": "ố",
|
||||||
|
"ò": "ồ",
|
||||||
|
"ơ": "ổ",
|
||||||
|
"õ": "ỗ",
|
||||||
|
"ọ": "ộ",
|
||||||
|
// combining characters
|
||||||
|
"а": "а\u0302",
|
||||||
|
"е": "е\u0302",
|
||||||
|
"и": "и\u0302",
|
||||||
|
"о": "о\u0302",
|
||||||
|
"у": "у\u0302"
|
||||||
}
|
}
|
||||||
|
@@ -17,5 +17,40 @@
|
|||||||
"w": "ẇ",
|
"w": "ẇ",
|
||||||
"x": "ẋ",
|
"x": "ẋ",
|
||||||
"y": "ẏ",
|
"y": "ẏ",
|
||||||
"z": "ż"
|
"z": "ż",
|
||||||
|
// remove dot since i and j already have one
|
||||||
|
"i": "ı",
|
||||||
|
"j": "ȷ",
|
||||||
|
// extended latin
|
||||||
|
"ā": "ǡ",
|
||||||
|
"ō": "ȱ",
|
||||||
|
"ś": "ṥ",
|
||||||
|
"ṣ": "ṩ",
|
||||||
|
"š": "ṧ",
|
||||||
|
"ſ": "ẛ",
|
||||||
|
// combining character
|
||||||
|
"k": "k\u0307",
|
||||||
|
"l": "l\u0307",
|
||||||
|
"q": "q\u0307",
|
||||||
|
"u": "u\u0307",
|
||||||
|
"v": "v\u0307",
|
||||||
|
"0": "0\u0307",
|
||||||
|
"1": "1\u0307",
|
||||||
|
"2": "2\u0307",
|
||||||
|
"3": "3\u0307",
|
||||||
|
"4": "4\u0307",
|
||||||
|
"5": "5\u0307",
|
||||||
|
"6": "6\u0307",
|
||||||
|
"7": "7\u0307",
|
||||||
|
"8": "8\u0307",
|
||||||
|
"9": "9\u0307",
|
||||||
|
// math
|
||||||
|
"∈": "⋵",
|
||||||
|
"⨯": "⨰",
|
||||||
|
"∧": "⩑",
|
||||||
|
"∨": "⩒",
|
||||||
|
"≡": "⩧",
|
||||||
|
"~": "⩪",
|
||||||
|
"⊆": "⫃",
|
||||||
|
"⊇": "⫄"
|
||||||
}
|
}
|
||||||
|
@@ -1,14 +1,34 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ạ",
|
"a": "ạ",
|
||||||
|
"b": "ḅ",
|
||||||
|
"d": "ḍ",
|
||||||
|
"e": "ẹ",
|
||||||
|
"h": "ḥ",
|
||||||
|
"i": "ị",
|
||||||
|
"k": "ḳ",
|
||||||
|
"l": "ḷ",
|
||||||
|
"m": "ṃ",
|
||||||
|
"n": "ṇ",
|
||||||
|
"o": "ọ",
|
||||||
|
"r": "ṛ",
|
||||||
|
"s": "ṣ",
|
||||||
|
"t": "ṭ",
|
||||||
|
"u": "ụ",
|
||||||
|
"v": "ṿ",
|
||||||
|
"w": "ẉ",
|
||||||
|
"y": "ỵ",
|
||||||
|
"z": "ẓ",
|
||||||
|
// extended latin
|
||||||
"ă": "ặ",
|
"ă": "ặ",
|
||||||
"â": "ậ",
|
"â": "ậ",
|
||||||
"e": "ẹ",
|
|
||||||
"ê": "ệ",
|
"ê": "ệ",
|
||||||
"i": "ị",
|
|
||||||
"o": "ọ",
|
|
||||||
"ô": "ộ",
|
"ô": "ộ",
|
||||||
"ơ": "ợ",
|
"ơ": "ợ",
|
||||||
"u": "ụ",
|
"ṡ": "ṩ",
|
||||||
"ư": "ự",
|
"ư": "ự",
|
||||||
"y": "ỵ"
|
// math
|
||||||
|
"-": "⨪",
|
||||||
|
"+": "⨥",
|
||||||
|
"=": "⩦"
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
" ": "˝",
|
||||||
|
// latin
|
||||||
"o": "ő",
|
"o": "ő",
|
||||||
"u": "ű",
|
"u": "ű",
|
||||||
" ": "˝",
|
// cyrillic
|
||||||
|
"у": "ӳ",
|
||||||
|
// combining character
|
||||||
"a": "a\u030b",
|
"a": "a\u030b",
|
||||||
"e": "e\u030b",
|
"e": "e\u030b",
|
||||||
"i": "i\u030b",
|
"i": "i\u030b",
|
||||||
|
17
srcs/compose/accent_double_grave.json
Normal file
17
srcs/compose/accent_double_grave.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
// latin
|
||||||
|
"a": "ȁ",
|
||||||
|
"e": "ȅ",
|
||||||
|
"i": "ȉ",
|
||||||
|
"o": "ȍ",
|
||||||
|
"r": "ȑ",
|
||||||
|
"u": "ȕ",
|
||||||
|
//cyrillic
|
||||||
|
"ѵ": "ѷ",
|
||||||
|
"а": "а\u030f",
|
||||||
|
"е": "е\u030f",
|
||||||
|
"и": "и\u030f",
|
||||||
|
"о": "о\u030f",
|
||||||
|
"р": "р\u030f",
|
||||||
|
"у": "у\u030f"
|
||||||
|
}
|
@@ -1,8 +1,38 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "à",
|
"a": "à",
|
||||||
"e": "è",
|
"e": "è",
|
||||||
"i": "ì",
|
"i": "ì",
|
||||||
|
"n": "ǹ",
|
||||||
"o": "ò",
|
"o": "ò",
|
||||||
"u": "ù",
|
"u": "ù",
|
||||||
"ü": "ǜ"
|
"w": "ẁ",
|
||||||
|
"y": "ỳ",
|
||||||
|
// extended latin
|
||||||
|
"â": "ầ",
|
||||||
|
"ă": "ằ",
|
||||||
|
"ê": "ề",
|
||||||
|
"ē": "ḕ",
|
||||||
|
"ơ": "ờ",
|
||||||
|
"ô": "ồ",
|
||||||
|
"ō": "ṑ",
|
||||||
|
"ü": "ǜ",
|
||||||
|
"ư": "ừ",
|
||||||
|
// greek (technically not a grave, but a varia)
|
||||||
|
"α": "ὰ",
|
||||||
|
"ε": "ὲ",
|
||||||
|
"η": "ὴ",
|
||||||
|
"ι": "ὶ",
|
||||||
|
"ο": "ὸ",
|
||||||
|
"υ": "ὺ",
|
||||||
|
"ω": "ὼ",
|
||||||
|
// there is more like ἒ, ᾣ, etc
|
||||||
|
// cyrillic
|
||||||
|
"е": "ѐ",
|
||||||
|
"и": "ѝ",
|
||||||
|
// combining character
|
||||||
|
"ɔ": "ɔ\u0300",
|
||||||
|
"s": "s\u0300",
|
||||||
|
"ʌ": "ʌ\u0300",
|
||||||
|
"z": "z\u0300"
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,35 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ā",
|
"a": "ā",
|
||||||
"e": "ē",
|
"e": "ē",
|
||||||
|
"g": "ḡ",
|
||||||
"i": "ī",
|
"i": "ī",
|
||||||
"o": "ō",
|
"o": "ō",
|
||||||
"u": "ū",
|
"u": "ū",
|
||||||
"ü": "ǖ"
|
"y": "ȳ",
|
||||||
|
// extended latin
|
||||||
|
"æ": "ǣ",
|
||||||
|
"ä": "ǟ",
|
||||||
|
"ȧ": "ǡ",
|
||||||
|
"è": "ḕ",
|
||||||
|
"é": "ḗ",
|
||||||
|
"ḷ": "ḹ",
|
||||||
|
"ṛ": "ṝ",
|
||||||
|
"ö": "ȫ",
|
||||||
|
"ȯ": "ȱ",
|
||||||
|
"ǫ": "ǭ",
|
||||||
|
"õ": "ȭ",
|
||||||
|
"ò": "ṑ",
|
||||||
|
"ó": "ṓ",
|
||||||
|
"ü": "ǖ", // there is also ṻ
|
||||||
|
// cyrillic
|
||||||
|
"и": "ӣ",
|
||||||
|
"у": "ӯ",
|
||||||
|
// greek
|
||||||
|
"α": "ᾱ",
|
||||||
|
"ι": "ῑ",
|
||||||
|
"υ": "ῡ",
|
||||||
|
// combining characters
|
||||||
|
"l": "l\u0304",
|
||||||
|
"r": "r\u0304"
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ą",
|
"a": "ą",
|
||||||
"e": "ę",
|
"e": "ę",
|
||||||
"i": "į",
|
"i": "į",
|
||||||
"k": "ķ",
|
|
||||||
"l": "ļ",
|
|
||||||
"n": "ņ",
|
|
||||||
"o": "ǫ",
|
"o": "ǫ",
|
||||||
"u": "ų"
|
"u": "ų",
|
||||||
|
// extended latin
|
||||||
|
"ō": "ǭ"
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "å",
|
"a": "å",
|
||||||
"u": "ů"
|
"u": "ů",
|
||||||
|
"w": "ẘ", // no uppercase
|
||||||
|
"y": "ẙ", // no uppercase
|
||||||
|
// extended latin
|
||||||
|
"á": "ǻ",
|
||||||
|
// extra
|
||||||
|
"~": "⸛"
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,11 @@
|
|||||||
"l": "ł",
|
"l": "ł",
|
||||||
"n": "ꞥ",
|
"n": "ꞥ",
|
||||||
"o": "ø",
|
"o": "ø",
|
||||||
|
"ó": "ǿ",
|
||||||
|
"ɔ": "ꬿ",
|
||||||
"r": "ꞧ",
|
"r": "ꞧ",
|
||||||
"s": "ꞩ",
|
"s": "ꞩ",
|
||||||
"t": "ⱦ"
|
"t": "ⱦ",
|
||||||
|
"u": "ꞹ",
|
||||||
|
"v": "ꝟ"
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
|
// arabic numbers
|
||||||
|
"0": "₀",
|
||||||
"1": "₁",
|
"1": "₁",
|
||||||
"2": "₂",
|
"2": "₂",
|
||||||
"3": "₃",
|
"3": "₃",
|
||||||
@@ -8,12 +10,13 @@
|
|||||||
"7": "₇",
|
"7": "₇",
|
||||||
"8": "₈",
|
"8": "₈",
|
||||||
"9": "₉",
|
"9": "₉",
|
||||||
"0": "₀",
|
// math operators
|
||||||
"+": "₊",
|
"+": "₊",
|
||||||
"-": "₋",
|
"-": "₋",
|
||||||
"=": "₌",
|
"=": "₌",
|
||||||
"(": "₍",
|
"(": "₍",
|
||||||
")": "₎",
|
")": "₎",
|
||||||
|
// latin
|
||||||
"a": "ₐ",
|
"a": "ₐ",
|
||||||
"e": "ₑ",
|
"e": "ₑ",
|
||||||
"h": "ₕ",
|
"h": "ₕ",
|
||||||
@@ -30,5 +33,13 @@
|
|||||||
"t": "ₜ",
|
"t": "ₜ",
|
||||||
"u": "ᵤ",
|
"u": "ᵤ",
|
||||||
"v": "ᵥ",
|
"v": "ᵥ",
|
||||||
"x": "ₓ"
|
"x": "ₓ",
|
||||||
|
// extended latin
|
||||||
|
"ə": "ₔ",
|
||||||
|
// greek
|
||||||
|
"β": "ᵦ",
|
||||||
|
"γ": "ᵧ",
|
||||||
|
"ρ": "ᵨ",
|
||||||
|
"φ": "ᵩ",
|
||||||
|
"χ": "ᵪ"
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
|
// numbers
|
||||||
|
"0": "⁰",
|
||||||
"1": "¹",
|
"1": "¹",
|
||||||
"2": "²",
|
"2": "²",
|
||||||
"3": "³",
|
"3": "³",
|
||||||
@@ -8,12 +10,18 @@
|
|||||||
"7": "⁷",
|
"7": "⁷",
|
||||||
"8": "⁸",
|
"8": "⁸",
|
||||||
"9": "⁹",
|
"9": "⁹",
|
||||||
"0": "⁰",
|
// math operators
|
||||||
"+": "⁺",
|
"+": "⁺",
|
||||||
"-": "⁻",
|
"-": "⁻",
|
||||||
"=": "⁼",
|
"=": "⁼",
|
||||||
"(": "⁽",
|
"(": "⁽",
|
||||||
")": "⁾",
|
")": "⁾",
|
||||||
|
// latin
|
||||||
|
"n": "ⁿ",
|
||||||
|
|
||||||
|
// since there are no more "superscript" characters,
|
||||||
|
// we substitute with "modifier letter small"s which looks the same
|
||||||
|
// latin
|
||||||
"a": "ᵃ",
|
"a": "ᵃ",
|
||||||
"b": "ᵇ",
|
"b": "ᵇ",
|
||||||
"c": "ᶜ",
|
"c": "ᶜ",
|
||||||
@@ -26,10 +34,11 @@
|
|||||||
"j": "ʲ",
|
"j": "ʲ",
|
||||||
"k": "ᵏ",
|
"k": "ᵏ",
|
||||||
"l": "ˡ",
|
"l": "ˡ",
|
||||||
|
// see above for n
|
||||||
"m": "ᵐ",
|
"m": "ᵐ",
|
||||||
"n": "ⁿ",
|
|
||||||
"o": "ᵒ",
|
"o": "ᵒ",
|
||||||
"p": "ᵖ",
|
"p": "ᵖ",
|
||||||
|
"q": "ꟴ", // there is no proper lowercase superscript q
|
||||||
"r": "ʳ",
|
"r": "ʳ",
|
||||||
"s": "ˢ",
|
"s": "ˢ",
|
||||||
"t": "ᵗ",
|
"t": "ᵗ",
|
||||||
@@ -38,5 +47,47 @@
|
|||||||
"w": "ʷ",
|
"w": "ʷ",
|
||||||
"x": "ˣ",
|
"x": "ˣ",
|
||||||
"y": "ʸ",
|
"y": "ʸ",
|
||||||
"z": "ᶻ"
|
"z": "ᶻ",
|
||||||
|
// extended latin
|
||||||
|
"ɐ": "ᵄ",
|
||||||
|
"ᴂ": "ᵆ",
|
||||||
|
"ɕ": "ᶝ",
|
||||||
|
"ə": "ᵊ",
|
||||||
|
"ɛ": "ᵋ",
|
||||||
|
"ɜ": "ᶟ", // turned open e, ↓ not the same
|
||||||
|
"ᴈ": "ᵌ", // reversed open e
|
||||||
|
"ɥ": "ᶣ",
|
||||||
|
"ɦ": "ʱ",
|
||||||
|
"ᴉ": "ᵎ",
|
||||||
|
"ɨ": "ᶤ",
|
||||||
|
"ɟ": "ᶡ",
|
||||||
|
"ɱ": "ᶬ",
|
||||||
|
"ɯ": "ᵚ",
|
||||||
|
"ɰ": "ᶭ",
|
||||||
|
"ŋ": "ᵑ",
|
||||||
|
"ᴝ": "ᵙ",
|
||||||
|
"ɵ": "ᶱ",
|
||||||
|
"œ": "ꟹ",
|
||||||
|
"ɔ": "ᵓ",
|
||||||
|
"ɹ": "ʴ",
|
||||||
|
"ɻ": "ʵ",
|
||||||
|
"ʁ": "ʶ",
|
||||||
|
"ʂ": "ᶳ",
|
||||||
|
"ʉ": "ᶶ",
|
||||||
|
"ʃ": "ᶴ",
|
||||||
|
"ʒ": "ᶾ",
|
||||||
|
"ʍ": "ꭩ",
|
||||||
|
// greek
|
||||||
|
"ɒ": "ᶛ",
|
||||||
|
"β": "ᵝ",
|
||||||
|
"ɣ": "ˠ",
|
||||||
|
"δ": "ᵟ",
|
||||||
|
"φ": "ᵠ",
|
||||||
|
"χ": "ᵡ",
|
||||||
|
"ι": "ᶥ",
|
||||||
|
"ʊ": "ᶷ",
|
||||||
|
"ʌ": "ᶺ",
|
||||||
|
"θ": "ᶿ",
|
||||||
|
// cyrillic
|
||||||
|
"ө": "ᶱ"
|
||||||
}
|
}
|
||||||
|
@@ -1,13 +1,21 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ã",
|
"a": "ã",
|
||||||
"e": "ẽ",
|
"e": "ẽ",
|
||||||
"i": "ĩ",
|
"i": "ĩ",
|
||||||
"n": "ñ",
|
"n": "ñ",
|
||||||
"o": "õ",
|
"o": "õ",
|
||||||
"u": "ũ",
|
"u": "ũ",
|
||||||
|
"v": "ṽ",
|
||||||
|
"y": "ỹ",
|
||||||
|
// extended latin
|
||||||
"ă": "ẵ",
|
"ă": "ẵ",
|
||||||
"â": "ẫ",
|
"â": "ẫ",
|
||||||
"ê": "ễ",
|
"ê": "ễ",
|
||||||
"ơ": "ỡ",
|
"ơ": "ỡ",
|
||||||
"ư": "ữ"
|
"ō": "ȭ",
|
||||||
|
"ó": "ṍ",
|
||||||
|
"ö": "ṏ",
|
||||||
|
"ư": "ữ",
|
||||||
|
"ú": "ṹ"
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,54 @@
|
|||||||
{
|
{
|
||||||
|
// fun
|
||||||
|
"~": "⍨",
|
||||||
|
"*": "⍣",
|
||||||
|
"∇": "⍢",
|
||||||
|
"°": "⍤",
|
||||||
|
// latin
|
||||||
"a": "ä",
|
"a": "ä",
|
||||||
"e": "ë",
|
"e": "ë",
|
||||||
|
"h": "ḧ",
|
||||||
"i": "ï",
|
"i": "ï",
|
||||||
"o": "ö",
|
"o": "ö",
|
||||||
|
"t": "ẗ",
|
||||||
"u": "ü",
|
"u": "ü",
|
||||||
"y": "ÿ"
|
"w": "ẅ",
|
||||||
|
"x": "ẍ",
|
||||||
|
"y": "ÿ",
|
||||||
|
// extended latin
|
||||||
|
"ā": "ǟ",
|
||||||
|
"ō": "ȫ",
|
||||||
|
"õ": "ṏ",
|
||||||
|
"í": "ḯ",
|
||||||
|
"ū": "ǖ", // there is also ṻ
|
||||||
|
"ú": "ǘ",
|
||||||
|
"ù": "ǜ",
|
||||||
|
"ǔ": "ǚ",
|
||||||
|
// greek
|
||||||
|
"ι": "ϊ",
|
||||||
|
"υ": "ϋ",
|
||||||
|
"ὺ": "ῢ",
|
||||||
|
"ύ": "ΰ",
|
||||||
|
"ῦ": "ῧ",
|
||||||
|
"ϒ": "ϔ",
|
||||||
|
// cyrillic
|
||||||
|
"а": "ӓ",
|
||||||
|
"ә": "ӛ",
|
||||||
|
"ж": "ӝ",
|
||||||
|
"з": "ӟ",
|
||||||
|
"и": "ӥ",
|
||||||
|
"о": "ӧ",
|
||||||
|
"ө": "ӫ",
|
||||||
|
"э": "ӭ",
|
||||||
|
"у": "ӱ",
|
||||||
|
"ч": "ӵ",
|
||||||
|
"ы": "ӹ",
|
||||||
|
// combining character
|
||||||
|
"c": "c\u0308",
|
||||||
|
"j": "j\u0308",
|
||||||
|
"k": "k\u0308",
|
||||||
|
"l": "l\u0308",
|
||||||
|
"m": "m\u0308",
|
||||||
|
"n": "n\u0308",
|
||||||
|
"s": "s\u0308"
|
||||||
}
|
}
|
||||||
|
@@ -12,20 +12,18 @@ from array import array
|
|||||||
# Parse symbol names from keysymdef.h. Many compose sequences in
|
# Parse symbol names from keysymdef.h. Many compose sequences in
|
||||||
# en_US_UTF_8_Compose.pre reference theses. For example, all the sequences on
|
# en_US_UTF_8_Compose.pre reference theses. For example, all the sequences on
|
||||||
# the Greek, Cyrillic and Hebrew scripts need these symbols.
|
# the Greek, Cyrillic and Hebrew scripts need these symbols.
|
||||||
def parse_keysymdef_h():
|
def parse_keysymdef_h(fname):
|
||||||
with open(os.path.join(os.path.dirname(__file__), "keysymdef.h"), "r") as inp:
|
with open(fname, "r") as inp:
|
||||||
keysym_re = re.compile(r'^#define XK_(\S+)\s+\S+\s*/\*.U\+([0-9a-fA-F]+)\s')
|
keysym_re = re.compile(r'^#define XK_(\S+)\s+\S+\s*/\*.U\+([0-9a-fA-F]+)\s')
|
||||||
for line in inp:
|
for line in inp:
|
||||||
m = re.match(keysym_re, line)
|
m = re.match(keysym_re, line)
|
||||||
if m != None:
|
if m != None:
|
||||||
yield (m.group(1), chr(int(m.group(2), 16)))
|
yield (m.group(1), chr(int(m.group(2), 16)))
|
||||||
|
|
||||||
xkb_char_extra_names = dict(parse_keysymdef_h())
|
|
||||||
|
|
||||||
dropped_sequences = 0
|
dropped_sequences = 0
|
||||||
|
|
||||||
# Parse XKB's Compose.pre files
|
# Parse XKB's Compose.pre files
|
||||||
def parse_sequences_file_xkb(fname):
|
def parse_sequences_file_xkb(fname, xkb_char_extra_names):
|
||||||
# Parse a line of the form:
|
# Parse a line of the form:
|
||||||
# <Multi_key> <minus> <space> : "~" asciitilde # TILDE
|
# <Multi_key> <minus> <space> : "~" asciitilde # TILDE
|
||||||
# Sequences not starting with <Multi_key> are ignored.
|
# Sequences not starting with <Multi_key> are ignored.
|
||||||
@@ -92,47 +90,89 @@ def parse_sequences_file_xkb(fname):
|
|||||||
seqs.append(s)
|
seqs.append(s)
|
||||||
return seqs
|
return seqs
|
||||||
|
|
||||||
|
# Basic support for comments in json files. Reads a file
|
||||||
|
def strip_cstyle_comments(inp):
|
||||||
|
def strip_line(line):
|
||||||
|
i = line.find("//")
|
||||||
|
return line[:i] + "\n" if i >= 0 else line
|
||||||
|
return "".join(map(strip_line, inp))
|
||||||
|
|
||||||
# Parse from a json file containing a dictionary sequence → result string.
|
# Parse from a json file containing a dictionary sequence → result string.
|
||||||
def parse_sequences_file_json(fname):
|
def parse_sequences_file_json(fname):
|
||||||
|
def tree_to_seqs(tree, prefix):
|
||||||
|
for c, r in tree.items():
|
||||||
|
if isinstance(r, str):
|
||||||
|
yield prefix + [c], r
|
||||||
|
else:
|
||||||
|
yield from tree_to_seqs(r, prefix + [c])
|
||||||
|
try:
|
||||||
with open(fname, "r") as inp:
|
with open(fname, "r") as inp:
|
||||||
seqs = json.load(inp)
|
tree = json.loads(strip_cstyle_comments(inp))
|
||||||
return list(seqs.items())
|
return list(tree_to_seqs(tree, []))
|
||||||
|
except Exception as e:
|
||||||
|
print("Failed parsing '%s': %s" % (fname, str(e)), file=sys.stderr)
|
||||||
|
|
||||||
# Format of the sequences file is determined by its extension
|
# Format of the sequences file is determined by its extension
|
||||||
def parse_sequences_file(fname):
|
def parse_sequences_file(fname, xkb_char_extra_names={}):
|
||||||
if fname.endswith(".pre"):
|
if fname.endswith(".pre"):
|
||||||
return parse_sequences_file_xkb(fname)
|
return parse_sequences_file_xkb(fname, xkb_char_extra_names)
|
||||||
if fname.endswith(".json"):
|
if fname.endswith(".json"):
|
||||||
return parse_sequences_file_json(fname)
|
return parse_sequences_file_json(fname)
|
||||||
raise Exception(fname + ": Unsupported format")
|
raise Exception(fname + ": Unsupported format")
|
||||||
|
|
||||||
|
# A sequence directory can contain several sequence files as well as
|
||||||
|
# 'keysymdef.h'.
|
||||||
|
def parse_sequences_dir(dname):
|
||||||
|
compose_files = []
|
||||||
|
xkb_char_extra_names = {}
|
||||||
|
# Parse keysymdef.h first if present
|
||||||
|
for fbasename in os.listdir(dname):
|
||||||
|
fname = os.path.join(dname, fbasename)
|
||||||
|
if fbasename == "keysymdef.h":
|
||||||
|
xkb_char_extra_names = dict(parse_keysymdef_h(fname))
|
||||||
|
else:
|
||||||
|
compose_files.append(fname)
|
||||||
|
sequences = []
|
||||||
|
for fname in compose_files:
|
||||||
|
sequences.extend(parse_sequences_file(fname, xkb_char_extra_names))
|
||||||
|
return sequences
|
||||||
|
|
||||||
# Turn a list of sequences into a trie.
|
# Turn a list of sequences into a trie.
|
||||||
def add_sequences_to_trie(seqs, trie):
|
def add_sequences_to_trie(seqs, trie):
|
||||||
def add_seq_to_trie(t_, seq, result):
|
|
||||||
t_ = trie
|
|
||||||
i = 0
|
|
||||||
while i < len(seq) - 1:
|
|
||||||
c = seq[i]
|
|
||||||
if c not in t_:
|
|
||||||
t_[c] = {}
|
|
||||||
if isinstance(t_[c], str):
|
|
||||||
global dropped_sequences
|
global dropped_sequences
|
||||||
dropped_sequences += 1
|
def add_seq_to_trie(seq, result):
|
||||||
print("Sequence collide: '%s = %s' '%s = %s'" % (
|
t_ = trie
|
||||||
seq[:i+1], t_[c], seq, result),
|
for c in seq[:-1]:
|
||||||
file=sys.stderr)
|
t_ = t_.setdefault(c, {})
|
||||||
return
|
if isinstance(t_, str):
|
||||||
t_ = t_[c]
|
return False
|
||||||
i += 1
|
c = seq[-1]
|
||||||
c = seq[i]
|
if c in t_:
|
||||||
|
return False
|
||||||
t_[c] = result
|
t_[c] = result
|
||||||
|
return True
|
||||||
|
def existing_sequence_to_str(seq): # Used in error message
|
||||||
|
i = 0
|
||||||
|
t_ = trie
|
||||||
|
while i < len(seq):
|
||||||
|
if seq[i] not in t_: break # No collision ?
|
||||||
|
t_ = t_[seq[i]]
|
||||||
|
i += 1
|
||||||
|
if isinstance(t_, str): break
|
||||||
|
return "".join(seq[:i]) + " = " + str(t_)
|
||||||
for seq, result in seqs:
|
for seq, result in seqs:
|
||||||
add_seq_to_trie(trie, seq, result)
|
if not add_seq_to_trie(seq, result):
|
||||||
|
dropped_sequences += 1
|
||||||
|
print("Sequence collide: '%s' and '%s = %s'" % (
|
||||||
|
existing_sequence_to_str(seq),
|
||||||
|
"".join(seq), result), file=sys.stderr)
|
||||||
|
|
||||||
# Compile the trie into a state machine.
|
# Compile the trie into a state machine.
|
||||||
def make_automata(tries):
|
def make_automata(tries):
|
||||||
|
previous_leafs = {} # Deduplicate leafs
|
||||||
states = []
|
states = []
|
||||||
def add_tree(t):
|
def add_tree(t):
|
||||||
|
this_node_index = len(states)
|
||||||
# Index and size of the new node
|
# Index and size of the new node
|
||||||
i = len(states)
|
i = len(states)
|
||||||
s = len(t.keys())
|
s = len(t.keys())
|
||||||
@@ -144,30 +184,34 @@ def make_automata(tries):
|
|||||||
states.append((None, None))
|
states.append((None, None))
|
||||||
# Add nested nodes and fill the current node
|
# Add nested nodes and fill the current node
|
||||||
for c in sorted(t.keys()):
|
for c in sorted(t.keys()):
|
||||||
node_i = len(states)
|
states[i] = (c, add_node(t[c]))
|
||||||
add_node(t[c])
|
|
||||||
states[i] = (c, node_i)
|
|
||||||
i += 1
|
i += 1
|
||||||
|
return this_node_index
|
||||||
def add_leaf(c):
|
def add_leaf(c):
|
||||||
|
if c in previous_leafs:
|
||||||
|
return previous_leafs[c]
|
||||||
|
this_node_index = len(states)
|
||||||
|
previous_leafs[c] = this_node_index
|
||||||
# There are two encoding for leafs: character final state for 15-bit
|
# There are two encoding for leafs: character final state for 15-bit
|
||||||
# characters and string final state for the rest.
|
# characters and string final state for the rest.
|
||||||
if len(c) > 1 or ord(c[0]) > 32767: # String final state
|
if len(c) > 1 or ord(c[0]) > 32767: # String final state
|
||||||
|
# A ':' can be added to the result of a sequence to force a string
|
||||||
|
# final state. For example, to go through KeyValue lookup.
|
||||||
|
if c.startswith(":"): c = c[1:]
|
||||||
javachars = array('H', c.encode("UTF-16-LE"))
|
javachars = array('H', c.encode("UTF-16-LE"))
|
||||||
states.append((-1, len(javachars) + 1))
|
states.append((-1, len(javachars) + 1))
|
||||||
for c in javachars:
|
for c in javachars:
|
||||||
states.append((c, 0))
|
states.append((c, 0))
|
||||||
else: # Character final state
|
else: # Character final state
|
||||||
states.append((c, 1))
|
states.append((c, 1))
|
||||||
|
return this_node_index
|
||||||
def add_node(n):
|
def add_node(n):
|
||||||
if type(n) == str:
|
if type(n) == str:
|
||||||
add_leaf(n)
|
return add_leaf(n)
|
||||||
else:
|
else:
|
||||||
add_tree(n)
|
return add_tree(n)
|
||||||
states.append((1, 1)) # Add an empty state at the beginning.
|
states.append((1, 1)) # Add an empty state at the beginning.
|
||||||
entry_states = {}
|
entry_states = { n: add_tree(root) for n, root in tries.items() }
|
||||||
for tname, tree_root in tries.items():
|
|
||||||
entry_states[tname] = len(states)
|
|
||||||
add_tree(tree_root)
|
|
||||||
return entry_states, states
|
return entry_states, states
|
||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
@@ -238,8 +282,11 @@ public final class ComposeKeyData
|
|||||||
|
|
||||||
total_sequences = 0
|
total_sequences = 0
|
||||||
tries = {} # Orderred dict
|
tries = {} # Orderred dict
|
||||||
for fname in sys.argv[1:]:
|
for fname in sorted(sys.argv[1:]):
|
||||||
tname, _ = os.path.splitext(os.path.basename(fname))
|
tname, _ = os.path.splitext(os.path.basename(fname))
|
||||||
|
if os.path.isdir(fname):
|
||||||
|
sequences = parse_sequences_dir(fname)
|
||||||
|
else:
|
||||||
sequences = parse_sequences_file(fname)
|
sequences = parse_sequences_file(fname)
|
||||||
add_sequences_to_trie(sequences, tries.setdefault(tname, {}))
|
add_sequences_to_trie(sequences, tries.setdefault(tname, {}))
|
||||||
total_sequences += len(sequences)
|
total_sequences += len(sequences)
|
||||||
|
149
srcs/compose/compose/arabic.json
Normal file
149
srcs/compose/compose/arabic.json
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
{
|
||||||
|
"ا": {
|
||||||
|
"ا": "combining_alef_above",
|
||||||
|
"ع": "أ",
|
||||||
|
"و": "ۉ",
|
||||||
|
"ي": "ؽ",
|
||||||
|
"ی": "ؽ",
|
||||||
|
"۷": "combining_alef_below",
|
||||||
|
"٧": "combining_alef_below"
|
||||||
|
},
|
||||||
|
"ت": {
|
||||||
|
"د": "ط",
|
||||||
|
"ر": "ڑ",
|
||||||
|
"ش": "ث",
|
||||||
|
"ن": "ٹ"
|
||||||
|
},
|
||||||
|
"ج": {
|
||||||
|
"ش": "چ"
|
||||||
|
},
|
||||||
|
"ح": {
|
||||||
|
"ح": "combining_sukun"
|
||||||
|
},
|
||||||
|
"د": {
|
||||||
|
"ت": "ڈ",
|
||||||
|
"ز": "ذ",
|
||||||
|
"ت": "ڑ",
|
||||||
|
"۷": "ڕ"
|
||||||
|
},
|
||||||
|
"س": {
|
||||||
|
"ش": "ص"
|
||||||
|
},
|
||||||
|
"ش": {
|
||||||
|
"ت": "ث"
|
||||||
|
},
|
||||||
|
"ع": {
|
||||||
|
"ا": "إ",
|
||||||
|
"ه": "ۀ",
|
||||||
|
"و": "ؤ",
|
||||||
|
"ي": "ئ",
|
||||||
|
"ی": "ئ",
|
||||||
|
"۷": "combining_hamza_below",
|
||||||
|
"۸": "combining_hamza_above",
|
||||||
|
"٧": "combining_hamza_below",
|
||||||
|
"٨": "combining_hamza_above"
|
||||||
|
},
|
||||||
|
"غ": {
|
||||||
|
"ك": "گ",
|
||||||
|
"ک": "گ"
|
||||||
|
},
|
||||||
|
"ف": {
|
||||||
|
"و": "ڡ"
|
||||||
|
},
|
||||||
|
"ق": {
|
||||||
|
"و": "ۊ"
|
||||||
|
},
|
||||||
|
"ل": {
|
||||||
|
"ل": "combining_shaddah",
|
||||||
|
"۷": "ڵ",
|
||||||
|
"٧": "ڵ"
|
||||||
|
},
|
||||||
|
"ن": {
|
||||||
|
"ت": "ٹ",
|
||||||
|
"ه": "combining_fathatan",
|
||||||
|
"و": "combining_dammatan",
|
||||||
|
"ی": "combining_kasratan",
|
||||||
|
"ي": "combining_kasratan"
|
||||||
|
},
|
||||||
|
"ه": {
|
||||||
|
" ": "ە",
|
||||||
|
"ت": "ة",
|
||||||
|
"ع": "ۀ",
|
||||||
|
"ن": "combining_fathatan",
|
||||||
|
"ه": "combining_fatha",
|
||||||
|
"و": "ۆ",
|
||||||
|
"ي": "ێ",
|
||||||
|
"ی": "ێ"
|
||||||
|
},
|
||||||
|
"و": {
|
||||||
|
"ث": "ۋ",
|
||||||
|
"ع": "ؤ",
|
||||||
|
"ف": "ڡ",
|
||||||
|
"ن": "combining_dammatan",
|
||||||
|
"و": "combining_dammah",
|
||||||
|
"۷": "ۆ",
|
||||||
|
"۸": "ۉ",
|
||||||
|
"۸": "ۉ",
|
||||||
|
"٧": "ۆ",
|
||||||
|
"٨": "ۉ",
|
||||||
|
"٨": "ۉ"
|
||||||
|
},
|
||||||
|
"ي": {
|
||||||
|
" ": "ے",
|
||||||
|
"ا": "ى",
|
||||||
|
"ع": "ئ",
|
||||||
|
"ي": "combining_kasra",
|
||||||
|
"۷": "ێ",
|
||||||
|
"۸": "ؽ",
|
||||||
|
"ن": "combining_kasratan",
|
||||||
|
"٧": "ێ",
|
||||||
|
"٨": "ؽ"
|
||||||
|
},
|
||||||
|
"ی": {
|
||||||
|
" ": "ے",
|
||||||
|
"ا": "ى",
|
||||||
|
"ع": "ئ",
|
||||||
|
"ن": "combining_kasratan",
|
||||||
|
"ی": "combining_kasra",
|
||||||
|
"۷": "ێ",
|
||||||
|
"۸": "ؽ",
|
||||||
|
"٧": "ێ",
|
||||||
|
"٨": "ؽ"
|
||||||
|
},
|
||||||
|
"۷": {
|
||||||
|
"ا": "combining_alef_below",
|
||||||
|
"ر": "ڕ",
|
||||||
|
"ع": "combining_hamza_below",
|
||||||
|
"ل": "ڵ",
|
||||||
|
"و": "ۆ",
|
||||||
|
"ي": "ێ",
|
||||||
|
"ی": "ێ",
|
||||||
|
"۷": "combining_arabic_v"
|
||||||
|
},
|
||||||
|
"۸": {
|
||||||
|
"ع": "combining_hamza_above",
|
||||||
|
"و": "ۉ",
|
||||||
|
"و": "ۉ",
|
||||||
|
"ي": "ؽ",
|
||||||
|
"ی": "ؽ",
|
||||||
|
"۸": "combining_arabic_inverted_v"
|
||||||
|
},
|
||||||
|
"٧": {
|
||||||
|
"ا": "combining_alef_below",
|
||||||
|
"ر": "ڕ",
|
||||||
|
"ع": "combining_hamza_below",
|
||||||
|
"ل": "ڵ",
|
||||||
|
"و": "ۆ",
|
||||||
|
"ي": "ێ",
|
||||||
|
"٧": "combining_arabic_v",
|
||||||
|
"ی": "ێ"
|
||||||
|
},
|
||||||
|
"٨": {
|
||||||
|
"ع": "combining_hamza_above",
|
||||||
|
"و": "ۉ",
|
||||||
|
"و": "ۉ",
|
||||||
|
"ي": "ؽ",
|
||||||
|
"٨": "combining_arabic_inverted_v",
|
||||||
|
"ی": "ؽ"
|
||||||
|
}
|
||||||
|
}
|
165
srcs/compose/compose/cyrillic.json
Normal file
165
srcs/compose/compose/cyrillic.json
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
",": {
|
||||||
|
"г": "ӻ",
|
||||||
|
"к": "ӄ",
|
||||||
|
"л": "ԓ",
|
||||||
|
"н": "ӈ",
|
||||||
|
"х": "ӽ",
|
||||||
|
"ѧ": "ӊ"
|
||||||
|
},
|
||||||
|
".": {
|
||||||
|
"г": "ӷ",
|
||||||
|
"ж": "җ",
|
||||||
|
"й": "ҋ",
|
||||||
|
"к": "қ",
|
||||||
|
"л": "ԯ",
|
||||||
|
"м": "ӎ",
|
||||||
|
"н": "ӊ",
|
||||||
|
"х": "ҳ",
|
||||||
|
"ч": "ҷ",
|
||||||
|
"і": "ї"
|
||||||
|
},
|
||||||
|
"а": {
|
||||||
|
"е": "ѣ",
|
||||||
|
"у": "ѡ",
|
||||||
|
"ч": "combining_aigu",
|
||||||
|
"ы": "ѣ",
|
||||||
|
"ь": "ꙙ",
|
||||||
|
"ꙋ": "ꙍ",
|
||||||
|
"ꙑ": "ѣ"
|
||||||
|
},
|
||||||
|
"б": {
|
||||||
|
"ч": "combining_slavonic_psili"
|
||||||
|
},
|
||||||
|
"г": {
|
||||||
|
",": "ӻ",
|
||||||
|
".": "ӷ",
|
||||||
|
"й": "ғ",
|
||||||
|
"к": "ґ",
|
||||||
|
"х": "ҁ",
|
||||||
|
"ј": "ғ"
|
||||||
|
},
|
||||||
|
"д": {
|
||||||
|
"е": "ꙉ",
|
||||||
|
"ж": "џ",
|
||||||
|
"з": "ꙃ",
|
||||||
|
"й": "ꙉ",
|
||||||
|
"ј": "ꙉ",
|
||||||
|
"ѥ": "ђ"
|
||||||
|
},
|
||||||
|
"е": {
|
||||||
|
"ч": "combining_trema"
|
||||||
|
},
|
||||||
|
"ж": {
|
||||||
|
".": "җ"
|
||||||
|
},
|
||||||
|
"з": {
|
||||||
|
"ф": "ҙ"
|
||||||
|
},
|
||||||
|
"и": {
|
||||||
|
"и": "ӣ",
|
||||||
|
"у": "ѵ"
|
||||||
|
},
|
||||||
|
"й": {
|
||||||
|
".": "ҋ",
|
||||||
|
"ч": "combining_breve"
|
||||||
|
},
|
||||||
|
"к": {
|
||||||
|
",": "ӄ",
|
||||||
|
".": "қ",
|
||||||
|
"г": "ґ",
|
||||||
|
"с": "ѯ",
|
||||||
|
"х": "ҁ",
|
||||||
|
"ш": "ѯ"
|
||||||
|
},
|
||||||
|
"л": {
|
||||||
|
",": "ԓ",
|
||||||
|
".": "ԯ",
|
||||||
|
"ь": "љ"
|
||||||
|
},
|
||||||
|
"м": {
|
||||||
|
".": "ӎ"
|
||||||
|
},
|
||||||
|
"н": {
|
||||||
|
",": "ӈ",
|
||||||
|
"·": "ԩ",
|
||||||
|
"ч": "combining_titlo",
|
||||||
|
"ь": "њ"
|
||||||
|
},
|
||||||
|
"о": {
|
||||||
|
"т": "ѿ",
|
||||||
|
"у": "ѹ",
|
||||||
|
"ч": "combining_inverted_breve"
|
||||||
|
},
|
||||||
|
"п": {
|
||||||
|
"с": "ѱ"
|
||||||
|
},
|
||||||
|
"т": {
|
||||||
|
"й": "ћ",
|
||||||
|
"ф": "ѳ",
|
||||||
|
"ј": "ћ"
|
||||||
|
},
|
||||||
|
"у": {
|
||||||
|
"и": "ѵ",
|
||||||
|
"й": "ў",
|
||||||
|
"у": "ӯ",
|
||||||
|
"ч": "combining_pokrytie",
|
||||||
|
"і": "ѵ",
|
||||||
|
"ј": "ў"
|
||||||
|
},
|
||||||
|
"х": {
|
||||||
|
",": "ӽ",
|
||||||
|
".": "ҳ",
|
||||||
|
"ч": "combining_slavonic_dasia"
|
||||||
|
},
|
||||||
|
"ч": {
|
||||||
|
".": "ҷ",
|
||||||
|
"а": "combining_aigu",
|
||||||
|
"б": "combining_slavonic_psili",
|
||||||
|
"е": "combining_trema",
|
||||||
|
"й": "combining_breve",
|
||||||
|
"н": "combining_titlo",
|
||||||
|
"о": "combining_inverted_breve",
|
||||||
|
"у": "combining_pokrytie",
|
||||||
|
"х": "combining_slavonic_dasia",
|
||||||
|
"ч": "combining_payerok",
|
||||||
|
"ч": "combining_payerok",
|
||||||
|
"ъ": "combining_vertical_tilde",
|
||||||
|
"ю": "combining_grave",
|
||||||
|
"ј": "combining_breve",
|
||||||
|
"ѧ": "combining_vzmet"
|
||||||
|
},
|
||||||
|
"ш": {
|
||||||
|
"т": "щ"
|
||||||
|
},
|
||||||
|
"ъ": {
|
||||||
|
"ч": "combining_vertical_tilde"
|
||||||
|
},
|
||||||
|
"ю": {
|
||||||
|
"а": "ꙓ",
|
||||||
|
"е": "ё",
|
||||||
|
"м": "ѭ",
|
||||||
|
"н": "ѩ",
|
||||||
|
"ч": "combining_grave"
|
||||||
|
},
|
||||||
|
"я": {
|
||||||
|
"ь": "ꙝ"
|
||||||
|
},
|
||||||
|
"і": {
|
||||||
|
"\"": "ї",
|
||||||
|
".": "ї",
|
||||||
|
"у": "ѵ",
|
||||||
|
"і": "ӣ"
|
||||||
|
},
|
||||||
|
"ј": {
|
||||||
|
"а": "ꙗ",
|
||||||
|
"ч": "combining_breve",
|
||||||
|
"ѣ": "ꙝ"
|
||||||
|
},
|
||||||
|
"ѡ": {
|
||||||
|
"т": "ѿ"
|
||||||
|
},
|
||||||
|
"ѧ": {
|
||||||
|
"ч": "combining_vzmet"
|
||||||
|
}
|
||||||
|
}
|
@@ -4016,7 +4016,7 @@ XCOMM Mathematical Operators
|
|||||||
<Multi_key> <U2225> <slash> : "∦" U2226 # NOT PARALLEL TO
|
<Multi_key> <U2225> <slash> : "∦" U2226 # NOT PARALLEL TO
|
||||||
<Multi_key> <U223C> <slash> : "≁" U2241 # NOT TILDE
|
<Multi_key> <U223C> <slash> : "≁" U2241 # NOT TILDE
|
||||||
<Multi_key> <U2243> <slash> : "≄" U2244 # NOT ASYMPTOTICALLY EQUAL TO
|
<Multi_key> <U2243> <slash> : "≄" U2244 # NOT ASYMPTOTICALLY EQUAL TO
|
||||||
<Multi_key> <approximate> <slash> : "≇" U2247 # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
|
XCOMM <Multi_key> <approximate> <slash> : "≇" U2247 # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
|
||||||
<Multi_key> <U2248> <slash> : "≉" U2249 # NOT ALMOST EQUAL TO
|
<Multi_key> <U2248> <slash> : "≉" U2249 # NOT ALMOST EQUAL TO
|
||||||
<Multi_key> <slash> <equal> : "≠" U2260 # NOT EQUAL TO
|
<Multi_key> <slash> <equal> : "≠" U2260 # NOT EQUAL TO
|
||||||
<Multi_key> <equal> <slash> : "≠" U2260 # NOT EQUAL TO
|
<Multi_key> <equal> <slash> : "≠" U2260 # NOT EQUAL TO
|
11
srcs/compose/compose/extra.json
Normal file
11
srcs/compose/compose/extra.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"V": {
|
||||||
|
"s": "Š",
|
||||||
|
"c": "Č",
|
||||||
|
"z": "Ž"
|
||||||
|
},
|
||||||
|
"\\": {
|
||||||
|
"n": "\\n",
|
||||||
|
"t": "\\t"
|
||||||
|
}
|
||||||
|
}
|
268
srcs/compose/fn.json
Normal file
268
srcs/compose/fn.json
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
{
|
||||||
|
"1": "f1",
|
||||||
|
"2": "f2",
|
||||||
|
"3": "f3",
|
||||||
|
"4": "f4",
|
||||||
|
"5": "f5",
|
||||||
|
"6": "f6",
|
||||||
|
"7": "f7",
|
||||||
|
"8": "f8",
|
||||||
|
"9": "f9",
|
||||||
|
"0": "f10",
|
||||||
|
"<": "«",
|
||||||
|
">": "»",
|
||||||
|
"{": "‹",
|
||||||
|
"}": "›",
|
||||||
|
"[": "‘",
|
||||||
|
"]": "’",
|
||||||
|
"(": "“",
|
||||||
|
")": "”",
|
||||||
|
"'": "‚",
|
||||||
|
"\"": "„",
|
||||||
|
"-": "–",
|
||||||
|
"_": "—",
|
||||||
|
"^": "¬",
|
||||||
|
"%": "‰",
|
||||||
|
"=": "≈",
|
||||||
|
"u": "µ",
|
||||||
|
"a": "æ",
|
||||||
|
"o": "œ",
|
||||||
|
"*": "°",
|
||||||
|
".": "…",
|
||||||
|
",": "·",
|
||||||
|
"!": "¡",
|
||||||
|
"?": "¿",
|
||||||
|
"|": "¦",
|
||||||
|
"§": "¶",
|
||||||
|
"†": "‡",
|
||||||
|
"×": "∙",
|
||||||
|
" ": "nbsp",
|
||||||
|
|
||||||
|
// arrows
|
||||||
|
"↖": "⇖",
|
||||||
|
"↑": "⇑",
|
||||||
|
"↗": "⇗",
|
||||||
|
"←": "⇐",
|
||||||
|
"→": "⇒",
|
||||||
|
"↙": "⇙",
|
||||||
|
"↓": "⇓",
|
||||||
|
"↘": "⇘",
|
||||||
|
"↔": "⇔",
|
||||||
|
"↕": "⇕",
|
||||||
|
// Currency symbols
|
||||||
|
"e": "€",
|
||||||
|
"l": "£",
|
||||||
|
"r": "₹",
|
||||||
|
"y": "¥",
|
||||||
|
"c": "¢",
|
||||||
|
"p": "₽",
|
||||||
|
"b": "₱",
|
||||||
|
"h": "₴",
|
||||||
|
"z": "₿",
|
||||||
|
// avoid showing these twice
|
||||||
|
"€": "removed",
|
||||||
|
"£": "removed",
|
||||||
|
// alternative greek letters
|
||||||
|
"π": "ϖ",
|
||||||
|
"θ": "ϑ",
|
||||||
|
"Θ": "ϴ",
|
||||||
|
"ε": "ϵ",
|
||||||
|
"β": "ϐ",
|
||||||
|
"ρ": "ϱ",
|
||||||
|
"σ": "ς",
|
||||||
|
"γ": "ɣ",
|
||||||
|
"φ": "ϕ",
|
||||||
|
"υ": "ϒ",
|
||||||
|
"κ": "ϰ",
|
||||||
|
// alternative math characters
|
||||||
|
"∪": "⋃",
|
||||||
|
"∩": "⋂",
|
||||||
|
"∃": "∄",
|
||||||
|
"∫": "∮",
|
||||||
|
"Π": "∏",
|
||||||
|
"Σ": "∑",
|
||||||
|
"∨": "⋁",
|
||||||
|
"∧": "⋀",
|
||||||
|
"⊷": "⊶",
|
||||||
|
"⊂": "⊆",
|
||||||
|
"⊃": "⊇",
|
||||||
|
"±": "∓",
|
||||||
|
|
||||||
|
// APL
|
||||||
|
"⍺": "⍶",
|
||||||
|
"⍵": "⍹",
|
||||||
|
"⋄": "⌺",
|
||||||
|
"⍝": "⍧",
|
||||||
|
"∆": "⍙",
|
||||||
|
"∇": "⍢",
|
||||||
|
"⊤": "⍡",
|
||||||
|
"⎕": "⍞",
|
||||||
|
|
||||||
|
// hebrew niqqud
|
||||||
|
"ק": "qamats", // kamatz
|
||||||
|
"ר": "hataf_qamats", // reduced kamatz
|
||||||
|
"ו": "holam",
|
||||||
|
"ם": "rafe",
|
||||||
|
"פ": "patah", // patach
|
||||||
|
"ש": "sheva",
|
||||||
|
"ד": "dagesh", // or mapiq
|
||||||
|
"ח": "hiriq",
|
||||||
|
"ף": "hataf_patah", // reduced patach
|
||||||
|
"ז": "qubuts", // kubuts
|
||||||
|
"ס": "segol",
|
||||||
|
"ב": "hataf_segol", // reduced segol
|
||||||
|
"צ": "tsere",
|
||||||
|
|
||||||
|
// Devanagari symbols
|
||||||
|
"ए": "ऍ",
|
||||||
|
"े": "ॅ",
|
||||||
|
"ऐ": "ऎ",
|
||||||
|
"ै": "ॆ",
|
||||||
|
"ऋ": "ॠ",
|
||||||
|
"ृ": "ॄ",
|
||||||
|
"ळ": "ऴ",
|
||||||
|
"र": "ऱ",
|
||||||
|
"क": "क़",
|
||||||
|
"ख": "ख़",
|
||||||
|
"ग": "ग़",
|
||||||
|
"घ": "ॻ",
|
||||||
|
"ढ": "ढ़",
|
||||||
|
"न": "ऩ",
|
||||||
|
"ड": "ड़",
|
||||||
|
"ट": "ॸ",
|
||||||
|
"ण": "ॾ",
|
||||||
|
"फ": "फ़",
|
||||||
|
"ऌ": "ॡ",
|
||||||
|
"ॢ": "ॣ",
|
||||||
|
"औ": "ॵ",
|
||||||
|
"ौ": "ॏ",
|
||||||
|
"ओ": "ऒ",
|
||||||
|
"ो": "ॊ",
|
||||||
|
"च": "ॼ",
|
||||||
|
"ज": "ज़",
|
||||||
|
"ब": "ॿ",
|
||||||
|
"व": "ॺ",
|
||||||
|
"य": "य़",
|
||||||
|
"अ": "ॲ",
|
||||||
|
"आ": "ऑ",
|
||||||
|
"ा": "ॉ",
|
||||||
|
"झ": "ॹ",
|
||||||
|
"ई": "ॴ",
|
||||||
|
"ी": "ऻ",
|
||||||
|
"इ": "ॳ",
|
||||||
|
"ि": "ऺ",
|
||||||
|
"उ": "ॶ",
|
||||||
|
"ऊ": "ॷ",
|
||||||
|
"ु": "ऄ",
|
||||||
|
"ष": "क्ष",
|
||||||
|
"थ": "त्र",
|
||||||
|
"द": "द्र",
|
||||||
|
"प": "प्र",
|
||||||
|
"श": "श्र",
|
||||||
|
"छ": "श्च",
|
||||||
|
"ँ": "ऀ",
|
||||||
|
"₹": "₨",
|
||||||
|
"ॖ": "ॗ",
|
||||||
|
"॓": "॔",
|
||||||
|
"॰": "ॱ",
|
||||||
|
"।": "॥",
|
||||||
|
"ं": "ॕ",
|
||||||
|
"़": "ॎ",
|
||||||
|
"ऽ": "ॽ",
|
||||||
|
|
||||||
|
// Persian numbers
|
||||||
|
"۱": "f1",
|
||||||
|
"۲": "f2",
|
||||||
|
"۳": "f3",
|
||||||
|
"۴": "f4",
|
||||||
|
"۵": "f5",
|
||||||
|
"۶": "f6",
|
||||||
|
"۷": "f7",
|
||||||
|
"۸": "f8",
|
||||||
|
"۹": "f9",
|
||||||
|
// Arabic numbers
|
||||||
|
"۰": "f10",
|
||||||
|
"١": "f1",
|
||||||
|
"٢": "f2",
|
||||||
|
"٣": "f3",
|
||||||
|
"٤": "f4",
|
||||||
|
"٥": "f5",
|
||||||
|
"٦": "f6",
|
||||||
|
"٧": "f7",
|
||||||
|
"٨": "f8",
|
||||||
|
"٩": "f9",
|
||||||
|
"٠": "f10",
|
||||||
|
|
||||||
|
// Cyrillic
|
||||||
|
"ꙑ": "ы",
|
||||||
|
"ы": "ꙑ",
|
||||||
|
"ш": "ѱ",
|
||||||
|
"з": "ꙁ",
|
||||||
|
"и": "і",
|
||||||
|
"і": "и",
|
||||||
|
"я": "ꙗ",
|
||||||
|
"е": "ѥ",
|
||||||
|
"ѡ": "ꙍ",
|
||||||
|
"о": "ѻ",
|
||||||
|
"а": "ѣ",
|
||||||
|
"э": "є",
|
||||||
|
"ъ": "ь",
|
||||||
|
"ь": "ъ",
|
||||||
|
"й": "ј",
|
||||||
|
"ꙉ": "ђ",
|
||||||
|
"ч": "ћ",
|
||||||
|
"ҁ": "қ",
|
||||||
|
"қ": "ҁ",
|
||||||
|
"џ": "ҷ",
|
||||||
|
"ҷ": "џ",
|
||||||
|
"ј": "й",
|
||||||
|
"у": "ꙋ",
|
||||||
|
"м": "ѫ",
|
||||||
|
"н": "ѧ",
|
||||||
|
"с": "ѕ",
|
||||||
|
"л": "ԯ",
|
||||||
|
"ԓ": "ԯ",
|
||||||
|
"\ua67d": "\u0483",
|
||||||
|
"\u0487": "\ua66f",
|
||||||
|
"ӈ": "ԩ",
|
||||||
|
|
||||||
|
// Arabic
|
||||||
|
":": "zwnj",
|
||||||
|
"ل": "ڵ",
|
||||||
|
"\u064F": "ۆ", // combining_dammah
|
||||||
|
"\u0650": "ێ", // combining_kasra
|
||||||
|
"ر": "ڕ",
|
||||||
|
"ب": "ٮ",
|
||||||
|
"ه": "ھ",
|
||||||
|
"ث": "پ",
|
||||||
|
"ز": "ژ",
|
||||||
|
"غ": "گ",
|
||||||
|
"ك": "ک",
|
||||||
|
"ا": "آ",
|
||||||
|
"ي": "ی",
|
||||||
|
"ک": "ك",
|
||||||
|
"ط": "ظ",
|
||||||
|
"ص": "ض",
|
||||||
|
"ی": "ي",
|
||||||
|
"ق": "غ",
|
||||||
|
"ع": "ء",
|
||||||
|
"ح": "ہ",
|
||||||
|
"ێ": "combining_kasra",
|
||||||
|
"ئ": "combining_hamza_above",
|
||||||
|
"ؽ": "combining_arabic_inverted_v",
|
||||||
|
"ۉ": "combining_arabic_inverted_v",
|
||||||
|
"ڡ": "combining_dammah",
|
||||||
|
"ة": "combining_fatha",
|
||||||
|
"إ": "combining_hamza_below",
|
||||||
|
"ۆ": "combining_arabic_v",
|
||||||
|
"س": "ـ",
|
||||||
|
"ف": "ڤ",
|
||||||
|
"ن": "ں",
|
||||||
|
|
||||||
|
// Tamil
|
||||||
|
"ய": ":௰",
|
||||||
|
"ஒ": ":ௐ",
|
||||||
|
"ள": ":௱",
|
||||||
|
"ச": ":௲",
|
||||||
|
"வ": ":௳"
|
||||||
|
}
|
12
srcs/compose/numpad_bengali.json
Normal file
12
srcs/compose/numpad_bengali.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"0": "০",
|
||||||
|
"1": "১",
|
||||||
|
"2": "২",
|
||||||
|
"3": "৩",
|
||||||
|
"4": "৪",
|
||||||
|
"5": "৫",
|
||||||
|
"6": "৬",
|
||||||
|
"7": "৭",
|
||||||
|
"8": "৮",
|
||||||
|
"9": "৯"
|
||||||
|
}
|
12
srcs/compose/numpad_devanagari.json
Normal file
12
srcs/compose/numpad_devanagari.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"0": "०",
|
||||||
|
"1": "१",
|
||||||
|
"2": "२",
|
||||||
|
"3": "३",
|
||||||
|
"4": "४",
|
||||||
|
"5": "५",
|
||||||
|
"6": "६",
|
||||||
|
"7": "७",
|
||||||
|
"8": "८",
|
||||||
|
"9": "९"
|
||||||
|
}
|
12
srcs/compose/numpad_gujarati.json
Normal file
12
srcs/compose/numpad_gujarati.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"0": "૦",
|
||||||
|
"1": "૧",
|
||||||
|
"2": "૨",
|
||||||
|
"3": "૩",
|
||||||
|
"4": "૪",
|
||||||
|
"5": "૫",
|
||||||
|
"6": "૬",
|
||||||
|
"7": "૭",
|
||||||
|
"8": "૮",
|
||||||
|
"9": "૯"
|
||||||
|
}
|
14
srcs/compose/numpad_hindu.json
Normal file
14
srcs/compose/numpad_hindu.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// Used with Arabic despite the name; called "Hindi numerals" in Arabic
|
||||||
|
// numpad_devanagari is used in Hindi
|
||||||
|
{
|
||||||
|
"0": "٠",
|
||||||
|
"1": "١",
|
||||||
|
"2": "٢",
|
||||||
|
"3": "٣",
|
||||||
|
"4": "٤",
|
||||||
|
"5": "٥",
|
||||||
|
"6": "٦",
|
||||||
|
"7": "٧",
|
||||||
|
"8": "٨",
|
||||||
|
"9": "٩"
|
||||||
|
}
|
12
srcs/compose/numpad_kannada.json
Normal file
12
srcs/compose/numpad_kannada.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"0": "೦",
|
||||||
|
"1": "೧",
|
||||||
|
"2": "೨",
|
||||||
|
"3": "೩",
|
||||||
|
"4": "೪",
|
||||||
|
"5": "೫",
|
||||||
|
"6": "೬",
|
||||||
|
"7": "೭",
|
||||||
|
"8": "೮",
|
||||||
|
"9": "೯"
|
||||||
|
}
|
12
srcs/compose/numpad_persian.json
Normal file
12
srcs/compose/numpad_persian.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"0": "۰",
|
||||||
|
"1": "۱",
|
||||||
|
"2": "۲",
|
||||||
|
"3": "۳",
|
||||||
|
"4": "۴",
|
||||||
|
"5": "۵",
|
||||||
|
"6": "۶",
|
||||||
|
"7": "۷",
|
||||||
|
"8": "۸",
|
||||||
|
"9": "۹"
|
||||||
|
}
|
12
srcs/compose/numpad_tamil.json
Normal file
12
srcs/compose/numpad_tamil.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"0": "௦",
|
||||||
|
"1": "௧",
|
||||||
|
"2": "௨",
|
||||||
|
"3": "௩",
|
||||||
|
"4": "௪",
|
||||||
|
"5": "௫",
|
||||||
|
"6": "௬",
|
||||||
|
"7": "௭",
|
||||||
|
"8": "௮",
|
||||||
|
"9": "௯"
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user