Compare commits
42 Commits
v0.5.0-alp
...
flest
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c1bfb60ba | ||
|
|
76702d6d68 | ||
|
|
28df80a1df | ||
|
|
56a81f86a3 | ||
|
|
ab65aac74a | ||
|
|
ee08c58db2 | ||
|
|
05d4a5cf62 | ||
|
|
c5c8f7a4c3 | ||
|
|
ce3aee93d6 | ||
|
|
96340f7277 | ||
|
|
d0dcf5be38 | ||
|
|
15450a760e | ||
|
|
de0027d87e | ||
|
|
c7e83fca21 | ||
|
|
115dc5c42a | ||
|
|
c78cf84d6c | ||
|
|
5e59f144dd | ||
|
|
564c075763 | ||
|
|
86365d393b | ||
|
|
45a0c9ef63 | ||
|
|
25da6be1a4 | ||
|
|
976afc2e51 | ||
|
|
d994da8c97 | ||
|
|
40a22a762a | ||
|
|
264b9ff98b | ||
|
|
f1b7ddedb8 | ||
|
|
b1665f61e5 | ||
|
|
0fa663f658 | ||
|
|
b7f5bf267d | ||
|
|
8563f37c98 | ||
|
|
d3a2e50dda | ||
|
|
29562c9980 | ||
|
|
5bbb5cfbce | ||
|
|
4ada583418 | ||
|
|
200a195ae6 | ||
|
|
fa910692bc | ||
|
|
c3545d1625 | ||
|
|
300ca755ec | ||
|
|
3efb760787 | ||
|
|
647f7c106b | ||
|
|
d998f8fe0c | ||
|
|
b7020d7cc9 |
11
.dockerignore
Normal file
11
.dockerignore
Normal file
@@ -0,0 +1,11 @@
|
||||
**/.*/
|
||||
!.git/
|
||||
**/build/
|
||||
**/dist/
|
||||
**/out/
|
||||
**/target/
|
||||
utils/
|
||||
!utils/repr_build/scripts/
|
||||
.env
|
||||
gradlew.bat
|
||||
local.properties
|
||||
4
.github/workflows/android.yml
vendored
4
.github/workflows/android.yml
vendored
@@ -25,14 +25,14 @@ jobs:
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: gradle/actions/wrapper-validation@v3
|
||||
- uses: gradle/actions/wrapper-validation@v4
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: temurin
|
||||
- name: Set up CMake and Ninja
|
||||
uses: lukka/get-cmake@latest
|
||||
uses: lukka/get-cmake@v4.0.2
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew clean assembleDebug
|
||||
- uses: actions/upload-artifact@v4
|
||||
|
||||
@@ -64,7 +64,7 @@ fully respecting your privacy. Currently in early-beta state.
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Beginning with v0.6.0 FlorisBoard will enter the public beta on Google Play.
|
||||
Beginning with v0.7 FlorisBoard will enter the public beta on Google Play.
|
||||
|
||||
## Highlighted features
|
||||
- Integrated clipboard manager / history
|
||||
@@ -74,7 +74,7 @@ Beginning with v0.6.0 FlorisBoard will enter the public beta on Google Play.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Word suggestions/spell checking are not included in the current releases
|
||||
> and are a major goal for the v0.5 milestone.
|
||||
> and are a major goal for the v0.6 milestone.
|
||||
|
||||
Feature roadmap: See [ROADMAP.md](ROADMAP.md)
|
||||
|
||||
|
||||
45
ROADMAP.md
45
ROADMAP.md
@@ -6,34 +6,49 @@ Each major milestone has associated alpha/beta releases, so if you are intereste
|
||||
|
||||
## 0.5 (currently in development)
|
||||
|
||||
- [x] Theme rework part II / Snygg v2
|
||||
- See https://github.com/florisboard/florisboard/pull/2855
|
||||
> [!NOTE]
|
||||
> The milestone 0.5 was split, thus the word suggestions now come with version 0.6. The old version 0.6 has been moved down and is now 0.7. The time it takes to implement word suggestions will not change, but we can now release the new theme editor earlier, which would otherwise lie dormant.
|
||||
|
||||
- [ ] Theme rework part II / Snygg v2
|
||||
- [x] See https://github.com/florisboard/florisboard/pull/2855
|
||||
- [x] Spaces in URI bug (See https://github.com/florisboard/florisboard/issues/2898)
|
||||
- [ ] Rework cache manager (See https://github.com/florisboard/florisboard/issues/2870)
|
||||
- [x] Re-add time based theme switching (See https://github.com/florisboard/florisboard/pull/2977)
|
||||
- [ ] Add support for any remaining new features introduced with Android 13 / 14
|
||||
- [ ] Proper physical keyboard support (See https://github.com/florisboard/florisboard/issues/2815)
|
||||
- [x] Raise minimum required Android version from Android 7 (SDK level 24) to Android 8 (SDK level 26)
|
||||
|
||||
## 0.6
|
||||
|
||||
- [ ] Implement predictive text support / spell checking
|
||||
- [ ] Add new extension type: Language Pack
|
||||
- Basically groups all locale-relevant data (predictive base model, emoji suggestion data, ...)
|
||||
in a dynamically importable extension file
|
||||
- [ ] Add support for any remaining new features introduced with Android 13 / 14
|
||||
- [x] Raise minimum required Android version from Android 7 (SDK level 24) to Android 8 (SDK level 26)
|
||||
- Basically groups all locale-relevant data (predictive base model, emoji suggestion data, ...)
|
||||
in a dynamically importable extension file
|
||||
|
||||
## k3lp
|
||||
|
||||
> [!NOTE]
|
||||
> The development of k3lp is not tied to a florisboard version and takes place on [codeberg.org](https://codeberg.org/k3lp/k3lp) simultaneously.
|
||||
|
||||
- [ ] New keyboard layout engine + file syntax based on the upcoming Unicode Keyboard v3 standard
|
||||
- [ ] Add Tablet mode / Optimizations for landscape input based on new keyboard layout engine
|
||||
- [ ] Not bound to a specific FlorisBoard version
|
||||
|
||||
## 0.6
|
||||
## 0.7+
|
||||
|
||||
> [!NOTE]
|
||||
> From 0.6 onwards we plan to have more stable 0.X releases but with at most one large feature per release, thus having a much quicker iteration of new features on the stable track, which is a benefit for everyone involved.
|
||||
|
||||
- [ ] Add floating keyboard mode
|
||||
- [ ] New text processing logic
|
||||
- [ ] Complete rework of the Emoji panel
|
||||
- Emoji search
|
||||
- Fully scrollable emoji list (soft category borders)
|
||||
- Side scrollable emoji list (swipe for next category)
|
||||
- More granular theming options
|
||||
- Layout customization (e.g. placement of category buttons)
|
||||
- Maybe: consider upgrading to emoji2 for better unified system-wide emoji styles
|
||||
- [ ] Emoji search
|
||||
- [ ] Fully scrollable emoji list (soft category borders)
|
||||
- [ ] Side scrollable emoji list (swipe for next category)
|
||||
- [ ] More granular theming options
|
||||
- [ ] Layout customization (e.g. placement of category buttons)
|
||||
- [ ] Maybe: consider upgrading to emoji2 for better unified system-wide emoji styles
|
||||
- [ ] Reimplementation of glide typing with the new layout engine and predictive text core
|
||||
- [ ] Prepare FlorisBoard repository and app store presence for public beta release on Google Play (will go live with stable 0.6)
|
||||
- [ ] Prepare FlorisBoard repository and app store presence for public beta release on Google Play (will go live with stable 0.7)
|
||||
- [ ] Rework branding images and texts of FlorisBoard for the app stores
|
||||
- [ ] Focus on stability and experience improvements of the app and keyboard
|
||||
- [ ] Add support for new features introduced with Android 15 / 16
|
||||
|
||||
@@ -28,8 +28,6 @@ plugins {
|
||||
val projectMinSdk: String by project
|
||||
val projectTargetSdk: String by project
|
||||
val projectCompileSdk: String by project
|
||||
val projectBuildToolsVersion: String by project
|
||||
val projectNdkVersion: String by project
|
||||
val projectVersionCode: String by project
|
||||
val projectVersionName: String by project
|
||||
val projectVersionNameSuffix = projectVersionName.substringAfter("-", "").let { suffix ->
|
||||
@@ -43,8 +41,8 @@ val projectVersionNameSuffix = projectVersionName.substringAfter("-", "").let {
|
||||
android {
|
||||
namespace = "dev.patrickgold.florisboard"
|
||||
compileSdk = projectCompileSdk.toInt()
|
||||
buildToolsVersion = projectBuildToolsVersion
|
||||
ndkVersion = projectNdkVersion
|
||||
buildToolsVersion = tools.versions.buildTools.get()
|
||||
ndkVersion = tools.versions.ndk.get()
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
@@ -159,6 +157,10 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
baseline = file("lint.xml")
|
||||
}
|
||||
|
||||
testOptions {
|
||||
unitTests {
|
||||
isIncludeAndroidResources = true
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<lint>
|
||||
<issue id="UsingMaterialAndMaterial3Libraries" severity="ignore" />
|
||||
<issue id="ExtraTranslation" severity="warning"/>
|
||||
</lint>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"label": "Armenian Alt Phonetic",
|
||||
"authors": [ "MikayelB" ],
|
||||
"direction": "ltr",
|
||||
"modifier": "org.florisboard.layouts:armenian_alt_phonetic"
|
||||
"modifier": "org.florisboard.layouts:armenian"
|
||||
},
|
||||
{
|
||||
"id": "western_armenian",
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 2535, "label": "১", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2536, "label": "২", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2537, "label": "৩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2538, "label": "৪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2539, "label": "৫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 2540, "label": "৬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2542, "label": "৮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2543, "label": "৯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2534, "label": "০", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
{ "code": 32902, "label": "肆" },
|
||||
{ "code": 18825, "label": "䦉" },
|
||||
{ "code": 20118, "label": "亖" },
|
||||
{ "code": 65300, "label": "3" }
|
||||
{ "code": 65300, "label": "4" }
|
||||
]
|
||||
} },
|
||||
{ "code": 20116, "label": "五", "type": "numeric", "popup": {
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 2407, "label": "१", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2408, "label": "२", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2409, "label": "३", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2410, "label": "४", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2411, "label": "५", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 2412, "label": "६", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2414, "label": "८", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2415, "label": "९", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2406, "label": "०", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 1633, "label": "١", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1634, "label": "٢", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1635, "label": "٣", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1636, "label": "٤", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1637, "label": "٥", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 1638, "label": "٦", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1640, "label": "٨", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1641, "label": "٩", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1632, "label": "٠", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 2791, "label": "૧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2792, "label": "૨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2793, "label": "૩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2794, "label": "૪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2795, "label": "૫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 2796, "label": "૬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2798, "label": "૮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2799, "label": "૯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2790, "label": "૦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 2663, "label": "੧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2664, "label": "੨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2665, "label": "੩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2666, "label": "੪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2667, "label": "੫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 2668, "label": "੬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2670, "label": "੮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2671, "label": "੯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2662, "label": "੦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 3303, "label": "೧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3304, "label": "೨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3305, "label": "೩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3306, "label": "೪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3307, "label": "೫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 3308, "label": "೬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3310, "label": "೮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3311, "label": "೯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3302, "label": "೦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 3431, "label": "൧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3432, "label": "൨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3433, "label": "൩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3434, "label": "൪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3435, "label": "൫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 3436, "label": "൬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3438, "label": "൮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3439, "label": "൯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3430, "label": "൦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 2919, "label": "୧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2920, "label": "୨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2921, "label": "୩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2922, "label": "୪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2923, "label": "୫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 2924, "label": "୬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2926, "label": "୮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2927, "label": "୯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 2918, "label": "୦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 1777, "label": "۱", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1778, "label": "۲", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1779, "label": "۳", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1780, "label": "۴", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1781, "label": "۵", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 1782, "label": "۶", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1784, "label": "۸", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1785, "label": "۹", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 1776, "label": "۰", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 3047, "label": "௧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3048, "label": "௨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3049, "label": "௩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3050, "label": "௪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3051, "label": "௫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 3052, "label": "௬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3054, "label": "௮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3055, "label": "௯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3046, "label": "௦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 3175, "label": "౧", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3176, "label": "౨", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3177, "label": "౩", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3178, "label": "౪", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3179, "label": "౫", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 3180, "label": "౬", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3182, "label": "౮", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3183, "label": "౯", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3174, "label": "౦", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,20 +3,23 @@
|
||||
{ "code": 3665, "label": "๑", "type": "numeric", "popup": {
|
||||
"main": { "code": 185, "label": "¹" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3666, "label": "๒", "type": "numeric", "popup": {
|
||||
"main": { "code": 178, "label": "²" },
|
||||
"relevant": [
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
@@ -24,44 +27,59 @@
|
||||
{ "code": 3667, "label": "๓", "type": "numeric", "popup": {
|
||||
"main": { "code": 179, "label": "³" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3668, "label": "๔", "type": "numeric", "popup": {
|
||||
"main": { "code": 8308, "label": "⁴" },
|
||||
"relevant": [
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3669, "label": "๕", "type": "numeric", "popup": {
|
||||
"main": { "code": 8309, "label": "⁵" },
|
||||
"relevant": [
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3670, "label": "๖", "type": "numeric", "popup": {
|
||||
"main": { "code": 8310, "label": "⁶" }
|
||||
"main": { "code": 8310, "label": "⁶" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3671, "label": "๗", "type": "numeric", "popup": {
|
||||
"main": { "code": 8311, "label": "⁷" },
|
||||
"relevant": [
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8542, "label": "⅞" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3672, "label": "๘", "type": "numeric", "popup": {
|
||||
"main": { "code": 8312, "label": "⁸" }
|
||||
"main": { "code": 8312, "label": "⁸" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3673, "label": "๙", "type": "numeric", "popup": {
|
||||
"main": { "code": 8313, "label": "⁹" }
|
||||
"main": { "code": 8313, "label": "⁹" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" }
|
||||
]
|
||||
} },
|
||||
{ "code": 3664, "label": "๐", "type": "numeric", "popup": {
|
||||
"main": { "code": 8304, "label": "⁰" },
|
||||
"relevant": [
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8319, "label": "ⁿ" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
{ "code": 71905, "label": "𑣡", "type": "numeric", "popup": {
|
||||
"main": { "code": 49, "label": "1" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 185, "label": "¹" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71906, "label": "𑣢", "type": "numeric", "popup": {
|
||||
"main": { "code": 50, "label": "2" },
|
||||
"relevant": [
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 178, "label": "²" },
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71907, "label": "𑣣", "type": "numeric", "popup": {
|
||||
"main": { "code": 51, "label": "3" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 179, "label": "³" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 179, "label": "³" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71908, "label": "𑣤", "type": "numeric", "popup": {
|
||||
"main": { "code": 52, "label": "4" },
|
||||
"relevant": [
|
||||
{ "code": 8536, "label": "⅘" },
|
||||
{ "code": 8308, "label": "⁴" }
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8308, "label": "⁴" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71909, "label": "𑣥", "type": "numeric", "popup": {
|
||||
"main": { "code": 53, "label": "5" },
|
||||
"relevant": [
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8309, "label": "⁵" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
{ "code": 71910, "label": "𑣦", "type": "numeric", "popup": {
|
||||
"main": { "code": 54, "label": "6" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" },
|
||||
{ "code": 8310, "label": "⁶" }
|
||||
]
|
||||
} },
|
||||
@@ -57,27 +64,32 @@
|
||||
"main": { "code": 55, "label": "7" },
|
||||
"relevant": [
|
||||
{ "code": 8542, "label": "⅞" },
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8311, "label": "⁷" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71912, "label": "𑣨", "type": "numeric", "popup": {
|
||||
"main": { "code": 56, "label": "8" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" },
|
||||
{ "code": 8312, "label": "⁸" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71913, "label": "𑣩", "type": "numeric", "popup": {
|
||||
"main": { "code": 57, "label": "9" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" },
|
||||
{ "code": 8313, "label": "⁹" }
|
||||
]
|
||||
} },
|
||||
{ "code": 71904, "label": "𑣠", "type": "numeric", "popup": {
|
||||
"main": { "code": 48, "label": "0" },
|
||||
"relevant": [
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8304, "label": "⁰" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8304, "label": "⁰" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
} }
|
||||
]
|
||||
|
||||
@@ -10,15 +10,17 @@
|
||||
"code": 49, "label": "1", "type": "numeric", "popup": {
|
||||
"main": { "code": 185, "label": "¹" },
|
||||
"relevant": [
|
||||
{ "code": 8537, "label": "⅙" },
|
||||
{ "code": 8321, "label": "₁" },
|
||||
{ "code": 8528, "label": "⅐" },
|
||||
{ "code": 8539, "label": "⅛" },
|
||||
{ "code": 8529, "label": "⅑" },
|
||||
{ "code": 8530, "label": "⅒" },
|
||||
{ "code": 8543, "label": "⅟" },
|
||||
{ "code": 189, "label": "½" },
|
||||
{ "code": 8531, "label": "⅓" },
|
||||
{ "code": 188, "label": "¼" },
|
||||
{ "code": 8533, "label": "⅕" }
|
||||
{ "code": 8533, "label": "⅕" },
|
||||
{ "code": 8537, "label": "⅙" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -29,6 +31,7 @@
|
||||
"code": 50, "label": "2", "type": "numeric", "popup": {
|
||||
"main": { "code": 178, "label": "²" },
|
||||
"relevant": [
|
||||
{ "code": 8322, "label": "₂"},
|
||||
{ "code": 8532, "label": "⅔" },
|
||||
{ "code": 8534, "label": "⅖" }
|
||||
]
|
||||
@@ -45,9 +48,10 @@
|
||||
"code": 51, "label": "3", "type": "numeric", "popup": {
|
||||
"main": { "code": 179, "label": "³" },
|
||||
"relevant": [
|
||||
{ "code": 8535, "label": "⅗" },
|
||||
{ "code": 8540, "label": "⅜" },
|
||||
{ "code": 8323, "label": "₃"},
|
||||
{ "code": 190, "label": "¾" },
|
||||
{ "code": 8540, "label": "⅜" }
|
||||
{ "code": 8535, "label": "⅗" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -68,6 +72,7 @@
|
||||
"code": 52, "label": "4", "type": "numeric", "popup": {
|
||||
"main": { "code": 8308, "label": "⁴" },
|
||||
"relevant": [
|
||||
{ "code": 8324, "label": "₄" },
|
||||
{ "code": 8536, "label": "⅘" }
|
||||
]
|
||||
}
|
||||
@@ -86,6 +91,7 @@
|
||||
"code": 53, "label": "5", "type": "numeric", "popup": {
|
||||
"main": { "code": 8309, "label": "⁵" },
|
||||
"relevant": [
|
||||
{ "code": 8325, "label": "₅" },
|
||||
{ "code": 8538, "label": "⅚" },
|
||||
{ "code": 8541, "label": "⅝" }
|
||||
]
|
||||
@@ -105,7 +111,10 @@
|
||||
},
|
||||
"default": {
|
||||
"code": 54, "label": "6", "type": "numeric", "popup": {
|
||||
"main": { "code": 8310, "label": "⁶" }
|
||||
"main": { "code": 8310, "label": "⁶" },
|
||||
"relevant": [
|
||||
{ "code": 8326, "label": "₆" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -115,6 +124,7 @@
|
||||
"code": 55, "label": "7", "type": "numeric", "popup": {
|
||||
"main": { "code": 8311, "label": "⁷" },
|
||||
"relevant": [
|
||||
{ "code": 8327, "label": "₇" },
|
||||
{ "code": 8542, "label": "⅞" }
|
||||
]
|
||||
}
|
||||
@@ -132,7 +142,10 @@
|
||||
},
|
||||
"default": {
|
||||
"code": 56, "label": "8", "type": "numeric", "popup": {
|
||||
"main": { "code": 8312, "label": "⁸" }
|
||||
"main": { "code": 8312, "label": "⁸" },
|
||||
"relevant": [
|
||||
{ "code": 8328, "label": "₈" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -160,7 +173,10 @@
|
||||
},
|
||||
"default": {
|
||||
"code": 57, "label": "9", "type": "numeric", "popup": {
|
||||
"main": { "code": 8313, "label": "⁹" }
|
||||
"main": { "code": 8313, "label": "⁹" },
|
||||
"relevant": [
|
||||
{ "code": 8329, "label": "₉" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -191,7 +207,9 @@
|
||||
"main": { "code": 8304, "label": "⁰" },
|
||||
"relevant": [
|
||||
{ "code": 8709, "label": "∅" },
|
||||
{ "code": 8319, "label": "ⁿ" }
|
||||
{ "code": 8319, "label": "ⁿ" },
|
||||
{ "code": 8585, "label": "↉" },
|
||||
{ "code": 8320, "label": "₀" }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,6 +401,16 @@
|
||||
"characters": "org.florisboard.layouts:qwertz"
|
||||
}
|
||||
},
|
||||
{
|
||||
"languageTag": "hy",
|
||||
"composer": "org.florisboard.composers:appender",
|
||||
"currencySet": "org.florisboard.currencysets:armenian_dram",
|
||||
"popupMapping": "org.florisboard.localization:hy",
|
||||
"preferred": {
|
||||
"characters": "org.florisboard.layouts:armenian_alt_phonetic",
|
||||
"symbols": "org.florisboard.layouts:armenian"
|
||||
}
|
||||
},
|
||||
{
|
||||
"languageTag": "hy",
|
||||
"composer": "org.florisboard.composers:appender",
|
||||
|
||||
@@ -291,6 +291,9 @@ class FlorisImeService : LifecycleInputMethodService() {
|
||||
}
|
||||
resourcesContext = createConfigurationContext(config)
|
||||
}
|
||||
prefs.physicalKeyboard.showOnScreenKeyboard.observeForever {
|
||||
updateInputViewShown()
|
||||
}
|
||||
@Suppress("DEPRECATION") // We do not retrieve the wallpaper but only listen to changes
|
||||
registerReceiver(wallpaperChangeReceiver, IntentFilter(Intent.ACTION_WALLPAPER_CHANGED))
|
||||
}
|
||||
@@ -356,6 +359,13 @@ class FlorisImeService : LifecycleInputMethodService() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onEvaluateInputViewShown(): Boolean {
|
||||
val config = resources.configuration
|
||||
return super.onEvaluateInputViewShown()
|
||||
|| config.keyboard == Configuration.KEYBOARD_NOKEYS
|
||||
|| prefs.physicalKeyboard.showOnScreenKeyboard.get()
|
||||
}
|
||||
|
||||
override fun onUpdateSelection(
|
||||
oldSelStart: Int,
|
||||
oldSelEnd: Int,
|
||||
@@ -759,7 +769,8 @@ class FlorisImeService : LifecycleInputMethodService() {
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
SnyggBox(FlorisImeUi.ExtractedLandscapeInputLayout.elementName,
|
||||
SnyggBox(
|
||||
elementName = FlorisImeUi.ExtractedLandscapeInputLayout.elementName,
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
.weight(1f),
|
||||
|
||||
@@ -58,6 +58,7 @@ import dev.patrickgold.florisboard.lib.ext.ExtensionComponentName
|
||||
import dev.patrickgold.florisboard.lib.observeAsTransformingState
|
||||
import dev.patrickgold.florisboard.lib.util.VersionName
|
||||
import dev.patrickgold.jetpref.datastore.JetPref
|
||||
import dev.patrickgold.jetpref.datastore.model.LocalTime
|
||||
import dev.patrickgold.jetpref.datastore.model.PreferenceData
|
||||
import dev.patrickgold.jetpref.datastore.model.PreferenceMigrationEntry
|
||||
import dev.patrickgold.jetpref.datastore.model.PreferenceModel
|
||||
@@ -638,6 +639,14 @@ class AppPrefs : PreferenceModel("florisboard-app-prefs") {
|
||||
)
|
||||
}
|
||||
|
||||
val physicalKeyboard = PhysicalKeyboard()
|
||||
inner class PhysicalKeyboard {
|
||||
val showOnScreenKeyboard = boolean(
|
||||
key = "physical_keyboard__show_on_screen_keyboard",
|
||||
default = false,
|
||||
)
|
||||
}
|
||||
|
||||
val smartbar = Smartbar()
|
||||
inner class Smartbar {
|
||||
val enabled = boolean(
|
||||
@@ -749,14 +758,14 @@ class AppPrefs : PreferenceModel("florisboard-app-prefs") {
|
||||
},
|
||||
serializer = ColorPreferenceSerializer,
|
||||
)
|
||||
//val sunriseTime = localTime(
|
||||
// key = "theme__sunrise_time",
|
||||
// default = LocalTime.of(6, 0),
|
||||
//)
|
||||
//val sunsetTime = localTime(
|
||||
// key = "theme__sunset_time",
|
||||
// default = LocalTime.of(18, 0),
|
||||
//)
|
||||
val sunriseTime = time(
|
||||
key = "theme__sunrise_time",
|
||||
default = LocalTime(6, 0),
|
||||
)
|
||||
val sunsetTime = time(
|
||||
key = "theme__sunset_time",
|
||||
default = LocalTime(18, 0),
|
||||
)
|
||||
val editorColorRepresentation = enum(
|
||||
key = "theme__editor_color_representation",
|
||||
default = ColorRepresentation.HEX,
|
||||
@@ -819,12 +828,10 @@ class AppPrefs : PreferenceModel("florisboard-app-prefs") {
|
||||
|
||||
//Migrate one hand mode prefs keep until: 0.7 dev cycle
|
||||
"keyboard__one_handed_mode" -> {
|
||||
if (entry.rawValue != "OFF") {
|
||||
val prefs by florisPreferenceModel()
|
||||
prefs.keyboard.oneHandedModeEnabled.set(true)
|
||||
entry.keepAsIs()
|
||||
} else {
|
||||
if (entry.rawValue == "OFF") {
|
||||
entry.reset()
|
||||
} else {
|
||||
entry.keepAsIs()
|
||||
}
|
||||
}
|
||||
"smartbar__action_arrangement" -> {
|
||||
|
||||
@@ -47,8 +47,9 @@ import dev.patrickgold.florisboard.app.settings.HomeScreen
|
||||
import dev.patrickgold.florisboard.app.settings.about.AboutScreen
|
||||
import dev.patrickgold.florisboard.app.settings.about.ProjectLicenseScreen
|
||||
import dev.patrickgold.florisboard.app.settings.about.ThirdPartyLicensesScreen
|
||||
import dev.patrickgold.florisboard.app.settings.advanced.OtherScreen
|
||||
import dev.patrickgold.florisboard.app.settings.advanced.BackupScreen
|
||||
import dev.patrickgold.florisboard.app.settings.advanced.OtherScreen
|
||||
import dev.patrickgold.florisboard.app.settings.advanced.PhysicalKeyboardScreen
|
||||
import dev.patrickgold.florisboard.app.settings.advanced.RestoreScreen
|
||||
import dev.patrickgold.florisboard.app.settings.clipboard.ClipboardScreen
|
||||
import dev.patrickgold.florisboard.app.settings.dictionary.DictionaryScreen
|
||||
@@ -111,6 +112,7 @@ object Routes {
|
||||
const val Media = "settings/media"
|
||||
|
||||
const val Other = "settings/other"
|
||||
const val PhysicalKeyboard = "settings/other/physical-keyboard"
|
||||
const val Backup = "settings/other/backup"
|
||||
const val Restore = "settings/other/restore"
|
||||
|
||||
@@ -240,6 +242,7 @@ object Routes {
|
||||
composableWithDeepLink(Settings.Media) { MediaScreen() }
|
||||
|
||||
composableWithDeepLink(Settings.Other) { OtherScreen() }
|
||||
composableWithDeepLink(Settings.PhysicalKeyboard) { PhysicalKeyboardScreen() }
|
||||
composableWithDeepLink(Settings.Backup) { BackupScreen() }
|
||||
composableWithDeepLink(Settings.Restore) { RestoreScreen() }
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.core.content.MimeTypeFilter
|
||||
import dev.patrickgold.florisboard.R
|
||||
import dev.patrickgold.florisboard.lib.cache.CacheManager
|
||||
import dev.patrickgold.florisboard.lib.compose.FlorisIconButton
|
||||
@@ -64,20 +63,20 @@ import org.florisboard.lib.android.showShortToast
|
||||
import org.florisboard.lib.kotlin.io.parentDir
|
||||
import org.florisboard.lib.kotlin.io.subDir
|
||||
import org.florisboard.lib.kotlin.io.subFile
|
||||
import org.florisboard.lib.kotlin.mimeTypeFilterOf
|
||||
|
||||
const val FONTS = "fonts"
|
||||
const val IMAGES = "images"
|
||||
|
||||
val MIME_TYPES = mapOf(
|
||||
FONTS to listOf(
|
||||
FONTS to mimeTypeFilterOf(
|
||||
// Source: https://www.alienfactory.co.uk/articles/mime-types-for-web-fonts-in-bedsheet#mimeTypes
|
||||
"font/*",
|
||||
"application/vnd.ms-fontobject", // .eot
|
||||
"application/font-woff", // .woff
|
||||
"application/x-font-truetype", // .ttf
|
||||
"application/x-font-opentype", // .otf
|
||||
"application/font-*",
|
||||
"application/x-font-*",
|
||||
"application/vnd.ms-fontobject",
|
||||
),
|
||||
IMAGES to listOf(
|
||||
IMAGES to mimeTypeFilterOf(
|
||||
"image/*",
|
||||
),
|
||||
)
|
||||
@@ -118,9 +117,9 @@ fun ExtensionEditFilesScreen(workspace: CacheManager.ExtEditorWorkspace<*>) = Fl
|
||||
val tempFile = context.cacheDir.subFile("temp_${UUID.randomUUID()}")
|
||||
context.contentResolver.readToFile(uri, tempFile)
|
||||
val mimeType = context.contentResolver.getType(uri)
|
||||
val types = MIME_TYPES[currentImportDest!!]!!
|
||||
checkNotNull(MimeTypeFilter.matches(mimeType, types.toTypedArray())) {
|
||||
"Given file mime type was '$mimeType', expected one of $types"
|
||||
val filter = MIME_TYPES[currentImportDest!!]!!
|
||||
check(filter.matches(mimeType)) {
|
||||
"Given file mime type was '$mimeType', expected one of ${filter.types}"
|
||||
}
|
||||
val fileName = context.contentResolver.query(uri, arrayOf(OpenableColumns.DISPLAY_NAME)).use { cursor ->
|
||||
if (cursor == null || !cursor.moveToFirst()) return@use null
|
||||
|
||||
@@ -19,7 +19,6 @@ package dev.patrickgold.florisboard.app.settings
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.outlined.Assignment
|
||||
import androidx.compose.material.icons.filled.Adb
|
||||
import androidx.compose.material.icons.filled.Extension
|
||||
import androidx.compose.material.icons.filled.Gesture
|
||||
import androidx.compose.material.icons.filled.Language
|
||||
|
||||
@@ -45,6 +45,7 @@ import dev.patrickgold.jetpref.datastore.ui.PreferenceGroup
|
||||
import dev.patrickgold.jetpref.datastore.ui.SwitchPreference
|
||||
import dev.patrickgold.jetpref.datastore.ui.isMaterialYou
|
||||
import dev.patrickgold.jetpref.datastore.ui.listPrefEntries
|
||||
import dev.patrickgold.jetpref.datastore.ui.vectorResource
|
||||
import org.florisboard.lib.android.AndroidVersion
|
||||
import org.florisboard.lib.color.ColorMappings
|
||||
|
||||
@@ -154,6 +155,11 @@ fun OtherScreen() = FlorisScreen {
|
||||
},
|
||||
enabledIf = { AndroidVersion.ATMOST_API28_P },
|
||||
)
|
||||
Preference(
|
||||
icon = vectorResource(R.drawable.ic_keyboard_keys),
|
||||
title = stringRes(R.string.physical_keyboard__title),
|
||||
onClick = { navController.navigate(Routes.Settings.PhysicalKeyboard) },
|
||||
)
|
||||
Preference(
|
||||
icon = Icons.Default.Adb,
|
||||
title = stringRes(R.string.devtools__title),
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (C) 2025 The FlorisBoard Contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package dev.patrickgold.florisboard.app.settings.advanced
|
||||
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.provider.Settings
|
||||
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import dev.patrickgold.florisboard.R
|
||||
import dev.patrickgold.florisboard.lib.compose.FlorisScreen
|
||||
import dev.patrickgold.florisboard.lib.compose.stringRes
|
||||
import dev.patrickgold.jetpref.datastore.ui.Preference
|
||||
import dev.patrickgold.jetpref.datastore.ui.SwitchPreference
|
||||
|
||||
@Composable
|
||||
fun PhysicalKeyboardScreen() = FlorisScreen {
|
||||
title = stringRes(R.string.physical_keyboard__title)
|
||||
|
||||
val context = LocalContext.current
|
||||
val physicalKeyboardAttached by remember {
|
||||
mutableStateOf(context.resources.configuration.keyboard != Configuration.KEYBOARD_NOKEYS)
|
||||
}
|
||||
|
||||
val activityForResult = rememberLauncherForActivityResult(
|
||||
ActivityResultContracts.StartActivityForResult()
|
||||
) { }
|
||||
|
||||
content {
|
||||
if (physicalKeyboardAttached) {
|
||||
Preference(
|
||||
title = stringRes(R.string.physical_keyboard__system_settings__title),
|
||||
summary = stringRes(R.string.physical_keyboard__system_settings__summary),
|
||||
onClick = {
|
||||
activityForResult.launch(Intent(Settings.ACTION_HARD_KEYBOARD_SETTINGS))
|
||||
}
|
||||
)
|
||||
} else {
|
||||
Preference(
|
||||
title = stringRes(R.string.physical_keyboard__system_settings__title),
|
||||
summary = stringRes(R.string.physical_keyboard__system_settings__summary_not_attached),
|
||||
)
|
||||
}
|
||||
SwitchPreference(
|
||||
pref = prefs.physicalKeyboard.showOnScreenKeyboard,
|
||||
title = stringRes(R.string.physical_keyboard__show_on_screen_keyboard__title),
|
||||
summary = stringRes(R.string.physical_keyboard__show_on_screen_keyboard__summary),
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -20,11 +20,8 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import dev.patrickgold.florisboard.R
|
||||
import dev.patrickgold.florisboard.app.enumDisplayEntriesOf
|
||||
import dev.patrickgold.florisboard.ime.input.InputFeedbackActivationMode
|
||||
import dev.patrickgold.florisboard.ime.input.HapticVibrationMode
|
||||
import org.florisboard.lib.android.AndroidVersion
|
||||
import org.florisboard.lib.android.systemVibratorOrNull
|
||||
import org.florisboard.lib.android.vibrate
|
||||
import dev.patrickgold.florisboard.ime.input.InputFeedbackActivationMode
|
||||
import dev.patrickgold.florisboard.lib.compose.FlorisScreen
|
||||
import dev.patrickgold.florisboard.lib.compose.stringRes
|
||||
import dev.patrickgold.jetpref.datastore.ui.DialogSliderPreference
|
||||
@@ -32,6 +29,8 @@ import dev.patrickgold.jetpref.datastore.ui.ExperimentalJetPrefDatastoreUi
|
||||
import dev.patrickgold.jetpref.datastore.ui.ListPreference
|
||||
import dev.patrickgold.jetpref.datastore.ui.PreferenceGroup
|
||||
import dev.patrickgold.jetpref.datastore.ui.SwitchPreference
|
||||
import org.florisboard.lib.android.systemVibratorOrNull
|
||||
import org.florisboard.lib.android.vibrate
|
||||
|
||||
@OptIn(ExperimentalJetPrefDatastoreUi::class)
|
||||
@Composable
|
||||
@@ -138,8 +137,6 @@ fun InputFeedbackScreen() = FlorisScreen {
|
||||
summary = { strength ->
|
||||
if (vibrator == null || !vibrator.hasVibrator()) {
|
||||
stringRes(R.string.pref__input_feedback__haptic_vibration_strength__summary_no_vibrator)
|
||||
} else if (AndroidVersion.ATMOST_API25_N_MR1) {
|
||||
stringRes(R.string.pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version)
|
||||
} else if (!vibrator.hasAmplitudeControl()) {
|
||||
stringRes(R.string.pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl)
|
||||
} else {
|
||||
@@ -157,7 +154,7 @@ fun InputFeedbackScreen() = FlorisScreen {
|
||||
prefs.inputFeedback.hapticEnabled isEqualTo true &&
|
||||
prefs.inputFeedback.hapticVibrationMode isEqualTo HapticVibrationMode.USE_VIBRATOR_DIRECTLY &&
|
||||
vibrator != null && vibrator.hasVibrator() &&
|
||||
AndroidVersion.ATLEAST_API26_O && vibrator.hasAmplitudeControl()
|
||||
vibrator.hasAmplitudeControl()
|
||||
},
|
||||
)
|
||||
SwitchPreference(
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package dev.patrickgold.florisboard.app.settings.theme
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
@@ -655,7 +656,7 @@ private fun PropertyValueEditor(
|
||||
JetPrefListItem(
|
||||
modifier = Modifier.clickable {
|
||||
val relPath = file.path.removePrefix(workspace.extDir.path)
|
||||
inputStr = "flex:$relPath"
|
||||
inputStr = "flex:" + Uri.encode(relPath, "/")
|
||||
onValueChange(SnyggUriValue(inputStr))
|
||||
showSelectFileDialog = false
|
||||
},
|
||||
|
||||
@@ -16,19 +16,18 @@
|
||||
|
||||
package dev.patrickgold.florisboard.app.settings.theme
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Brightness2
|
||||
import androidx.compose.material.icons.filled.BrightnessAuto
|
||||
import androidx.compose.material.icons.filled.ColorLens
|
||||
import androidx.compose.material.icons.filled.DarkMode
|
||||
import androidx.compose.material.icons.filled.LightMode
|
||||
import androidx.compose.material.icons.filled.WbTwilight
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.livedata.observeAsState
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.dp
|
||||
import dev.patrickgold.florisboard.R
|
||||
import dev.patrickgold.florisboard.app.LocalNavController
|
||||
import dev.patrickgold.florisboard.app.Routes
|
||||
@@ -37,7 +36,6 @@ import dev.patrickgold.florisboard.app.ext.AddonManagementReferenceBox
|
||||
import dev.patrickgold.florisboard.app.ext.ExtensionListScreenType
|
||||
import dev.patrickgold.florisboard.ime.theme.ThemeManager
|
||||
import dev.patrickgold.florisboard.ime.theme.ThemeMode
|
||||
import dev.patrickgold.florisboard.lib.compose.FlorisInfoCard
|
||||
import dev.patrickgold.florisboard.lib.compose.FlorisScreen
|
||||
import dev.patrickgold.florisboard.lib.compose.stringRes
|
||||
import dev.patrickgold.florisboard.lib.ext.ExtensionComponentName
|
||||
@@ -45,6 +43,7 @@ import dev.patrickgold.florisboard.themeManager
|
||||
import dev.patrickgold.jetpref.datastore.model.observeAsState
|
||||
import dev.patrickgold.jetpref.datastore.ui.ColorPickerPreference
|
||||
import dev.patrickgold.jetpref.datastore.ui.ListPreference
|
||||
import dev.patrickgold.jetpref.datastore.ui.LocalTimePickerPreference
|
||||
import dev.patrickgold.jetpref.datastore.ui.Preference
|
||||
import dev.patrickgold.jetpref.datastore.ui.isMaterialYou
|
||||
import org.florisboard.lib.color.ColorMappings
|
||||
@@ -66,35 +65,15 @@ fun ThemeScreen() = FlorisScreen {
|
||||
}
|
||||
|
||||
content {
|
||||
val themeMode by prefs.theme.mode.observeAsState()
|
||||
val dayThemeId by prefs.theme.dayThemeId.observeAsState()
|
||||
val nightThemeId by prefs.theme.nightThemeId.observeAsState()
|
||||
|
||||
/*Card(modifier = Modifier.padding(8.dp)) {
|
||||
Column(modifier = Modifier.padding(8.dp)) {
|
||||
Text("If you want to give feedback on the new stylesheet editor and theme engine, please do so in below linked feedback thread:\n")
|
||||
Button(onClick = {
|
||||
context.launchUrl("https://github.com/florisboard/florisboard/discussions/1531")
|
||||
}) {
|
||||
Text("Open Feedback Thread")
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
ListPreference(
|
||||
prefs.theme.mode,
|
||||
icon = Icons.Default.BrightnessAuto,
|
||||
title = stringRes(R.string.pref__theme__mode__label),
|
||||
entries = enumDisplayEntriesOf(ThemeMode::class),
|
||||
)
|
||||
if (themeMode == ThemeMode.FOLLOW_TIME) {
|
||||
FlorisInfoCard(
|
||||
modifier = Modifier.padding(8.dp),
|
||||
text = """
|
||||
The theme mode "Follow time" is not available in this beta release.
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
Preference(
|
||||
icon = Icons.Default.LightMode,
|
||||
title = stringRes(R.string.pref__theme__day),
|
||||
@@ -113,6 +92,18 @@ fun ThemeScreen() = FlorisScreen {
|
||||
navController.navigate(Routes.Settings.ThemeManager(ThemeManagerScreenAction.SELECT_NIGHT))
|
||||
},
|
||||
)
|
||||
LocalTimePickerPreference(
|
||||
pref = prefs.theme.sunriseTime,
|
||||
title = stringRes(R.string.pref__theme__sunrise_time__label),
|
||||
icon = Icons.Default.WbTwilight,
|
||||
enabledIf = { prefs.theme.mode isEqualTo ThemeMode.FOLLOW_TIME },
|
||||
)
|
||||
LocalTimePickerPreference(
|
||||
pref = prefs.theme.sunsetTime,
|
||||
title = stringRes(R.string.pref__theme__sunset_time__label),
|
||||
icon = Icons.Default.Brightness2,
|
||||
enabledIf = { prefs.theme.mode isEqualTo ThemeMode.FOLLOW_TIME },
|
||||
)
|
||||
ColorPickerPreference(
|
||||
pref = prefs.theme.accentColor,
|
||||
title = stringRes(R.string.pref__theme__theme_accent_color__label),
|
||||
|
||||
@@ -19,8 +19,8 @@ package dev.patrickgold.florisboard.ime.clipboard
|
||||
import android.content.ClipData
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.ImageDecoder
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import androidx.activity.ComponentActivity
|
||||
@@ -53,16 +53,19 @@ import dev.patrickgold.florisboard.lib.compose.ProvideLocalizedResources
|
||||
import dev.patrickgold.florisboard.lib.compose.stringRes
|
||||
import dev.patrickgold.jetpref.datastore.model.observeAsState
|
||||
import org.florisboard.lib.android.AndroidClipboardManager
|
||||
import org.florisboard.lib.android.AndroidVersion
|
||||
import org.florisboard.lib.android.stringRes
|
||||
import org.florisboard.lib.android.systemService
|
||||
import org.florisboard.lib.kotlin.mimeTypeFilterOf
|
||||
|
||||
class FlorisCopyToClipboardActivity : ComponentActivity() {
|
||||
private var error: CopyToClipboardError? = null
|
||||
private var bitmap: Bitmap? = null
|
||||
private val clipboardManager by lazy { systemService(AndroidClipboardManager::class) }
|
||||
private val filter = mimeTypeFilterOf("image/*")
|
||||
|
||||
internal enum class CopyToClipboardError {
|
||||
UNKNOWN_ERROR,
|
||||
ANDROID_VERSION_TO_OLD_ERROR,
|
||||
TYPE_NOT_SUPPORTED_ERROR;
|
||||
|
||||
@Composable
|
||||
@@ -70,88 +73,100 @@ class FlorisCopyToClipboardActivity : ComponentActivity() {
|
||||
val textId = when (this) {
|
||||
UNKNOWN_ERROR -> R.string.send_to_clipboard__unknown_error
|
||||
TYPE_NOT_SUPPORTED_ERROR -> R.string.send_to_clipboard__type_not_supported_error
|
||||
ANDROID_VERSION_TO_OLD_ERROR -> R.string.send_to_clipboard__android_version_to_old_error
|
||||
}
|
||||
return stringRes(id = textId)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
handleIntent(intent)
|
||||
|
||||
setContent {
|
||||
Content()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
finish()
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
val systemClipboardManager = this.systemService(AndroidClipboardManager::class)
|
||||
private fun handleIntent(intent: Intent) {
|
||||
val type = intent.type
|
||||
val action = intent.action
|
||||
|
||||
val prefs by florisPreferenceModel()
|
||||
|
||||
if (Intent.ACTION_SEND != action || type == null) {
|
||||
error = CopyToClipboardError.UNKNOWN_ERROR
|
||||
} else {
|
||||
if (type.startsWith("image/")) {
|
||||
val hasExtraStream = intent.hasExtra(Intent.EXTRA_STREAM)
|
||||
if (!hasExtraStream) {
|
||||
error = CopyToClipboardError.TYPE_NOT_SUPPORTED_ERROR
|
||||
} else {
|
||||
// pasting images via virtual keyboard only available since Android 7.1 (API 25)
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {
|
||||
error = CopyToClipboardError.ANDROID_VERSION_TO_OLD_ERROR
|
||||
} else {
|
||||
val uri: Uri? =
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
@Suppress("DEPRECATION")
|
||||
intent.getParcelableExtra(Intent.EXTRA_STREAM)
|
||||
} else {
|
||||
intent.getParcelableExtra(Intent.EXTRA_STREAM, Uri::class.java)
|
||||
}
|
||||
val clip = ClipData.newUri(contentResolver, "image", uri)
|
||||
systemClipboardManager.setPrimaryClip(clip)
|
||||
bitmap = MediaStore.Images.Media.getBitmap(this.contentResolver, uri)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
error = CopyToClipboardError.TYPE_NOT_SUPPORTED_ERROR
|
||||
}
|
||||
return
|
||||
}
|
||||
if (!filter.matches(type) || !intent.hasExtra(Intent.EXTRA_STREAM)) {
|
||||
error = CopyToClipboardError.TYPE_NOT_SUPPORTED_ERROR
|
||||
return
|
||||
}
|
||||
|
||||
setContent {
|
||||
ProvideLocalizedResources(this, forceLayoutDirection = LayoutDirection.Ltr) {
|
||||
val theme by prefs.other.settingsTheme.observeAsState()
|
||||
FlorisAppTheme(theme) {
|
||||
BottomSheet {
|
||||
Row {
|
||||
Text(
|
||||
text = error?.showError()
|
||||
?: bitmap?.let { stringRes(id = R.string.send_to_clipboard__description__copied_image_to_clipboard) }
|
||||
?: stringRes(R.string.send_to_clipboard__unknown_error),
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.weight(1f),
|
||||
val uri: Uri? =
|
||||
if (AndroidVersion.ATLEAST_API33_T) {
|
||||
intent.getParcelableExtra(Intent.EXTRA_STREAM, Uri::class.java)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
intent.getParcelableExtra(Intent.EXTRA_STREAM)
|
||||
}
|
||||
|
||||
if (uri == null) {
|
||||
error = CopyToClipboardError.TYPE_NOT_SUPPORTED_ERROR
|
||||
return
|
||||
}
|
||||
bitmap = uriToBitmap(uri)
|
||||
}
|
||||
|
||||
private fun uriToBitmap(uri: Uri): Bitmap {
|
||||
val clip = ClipData.newUri(contentResolver, "image", uri)
|
||||
clipboardManager.setPrimaryClip(clip)
|
||||
return if (AndroidVersion.ATLEAST_API28_P) {
|
||||
val source = ImageDecoder.createSource(contentResolver, uri)
|
||||
ImageDecoder.decodeBitmap(source)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
MediaStore.Images.Media.getBitmap(contentResolver, uri)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Content() {
|
||||
val prefs by florisPreferenceModel()
|
||||
ProvideLocalizedResources(this, forceLayoutDirection = LayoutDirection.Ltr) {
|
||||
val theme by prefs.other.settingsTheme.observeAsState()
|
||||
FlorisAppTheme(theme) {
|
||||
BottomSheet {
|
||||
Row {
|
||||
Text(
|
||||
text = error?.showError()
|
||||
?: bitmap?.let { stringRes(id = R.string.send_to_clipboard__description__copied_image_to_clipboard) }
|
||||
?: stringRes(R.string.send_to_clipboard__unknown_error),
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.weight(1f),
|
||||
)
|
||||
}
|
||||
bitmap?.let {
|
||||
Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center) {
|
||||
Image(
|
||||
modifier = Modifier
|
||||
.padding(start = 64.dp, end = 64.dp, top = 32.dp, bottom = 8.dp),
|
||||
bitmap = bitmap!!.asImageBitmap(),
|
||||
contentDescription = null
|
||||
)
|
||||
}
|
||||
bitmap?.let {
|
||||
Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center) {
|
||||
Image(
|
||||
modifier = Modifier
|
||||
.padding(start = 64.dp, end = 64.dp, top = 32.dp, bottom = 8.dp),
|
||||
bitmap = bitmap!!.asImageBitmap(),
|
||||
contentDescription = null
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
internal fun BottomSheet(
|
||||
private fun BottomSheet(
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
) {
|
||||
ModalBottomSheet(
|
||||
@@ -165,9 +180,7 @@ class FlorisCopyToClipboardActivity : ComponentActivity() {
|
||||
.align(Alignment.End)
|
||||
.padding(16.dp),
|
||||
onClick = { finish() },
|
||||
colors = ButtonDefaults.textButtonColors(
|
||||
//containerColor = buttonContainer.background.solidColor(context = context),
|
||||
)
|
||||
colors = ButtonDefaults.textButtonColors(),
|
||||
) {
|
||||
Text(text = stringRes(id = R.string.action__ok))
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ package dev.patrickgold.florisboard.ime.editor
|
||||
import android.content.ClipDescription
|
||||
import android.content.ContentUris
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.view.KeyEvent
|
||||
import androidx.core.view.inputmethod.InputConnectionCompat
|
||||
import androidx.core.view.inputmethod.InputContentInfoCompat
|
||||
@@ -30,21 +29,20 @@ import dev.patrickgold.florisboard.clipboardManager
|
||||
import dev.patrickgold.florisboard.ime.clipboard.provider.ClipboardFileStorage
|
||||
import dev.patrickgold.florisboard.ime.clipboard.provider.ClipboardItem
|
||||
import dev.patrickgold.florisboard.ime.clipboard.provider.ItemType
|
||||
import dev.patrickgold.florisboard.ime.keyboard.KeyboardMode
|
||||
import dev.patrickgold.florisboard.ime.input.InputShiftState
|
||||
import dev.patrickgold.florisboard.ime.keyboard.IncognitoMode
|
||||
import dev.patrickgold.florisboard.ime.keyboard.KeyboardMode
|
||||
import dev.patrickgold.florisboard.ime.nlp.SuggestionCandidate
|
||||
import dev.patrickgold.florisboard.ime.text.composing.Appender
|
||||
import dev.patrickgold.florisboard.ime.text.composing.Composer
|
||||
import dev.patrickgold.florisboard.ime.text.key.KeyVariation
|
||||
import dev.patrickgold.florisboard.keyboardManager
|
||||
import org.florisboard.lib.android.AndroidVersion
|
||||
import org.florisboard.lib.android.showShortToast
|
||||
import dev.patrickgold.florisboard.lib.ext.ExtensionComponentName
|
||||
import dev.patrickgold.florisboard.nlpManager
|
||||
import dev.patrickgold.florisboard.subtypeManager
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.florisboard.lib.android.showShortToast
|
||||
|
||||
class EditorInstance(context: Context) : AbstractEditorInstance(context) {
|
||||
companion object {
|
||||
@@ -324,16 +322,7 @@ class EditorInstance(context: Context) : AbstractEditorInstance(context) {
|
||||
)
|
||||
val ic = currentInputConnection() ?: return false
|
||||
ic.finishComposingText()
|
||||
var flags = 0
|
||||
if (AndroidVersion.ATLEAST_API25_N_MR1) {
|
||||
flags = flags or InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION
|
||||
} else {
|
||||
appContext.grantUriPermission(
|
||||
activeInfo.packageName,
|
||||
item.uri,
|
||||
Intent.FLAG_GRANT_READ_URI_PERMISSION,
|
||||
)
|
||||
}
|
||||
val flags = InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION
|
||||
InputConnectionCompat.commitContent(ic, activeInfo.base, inputContentInfo, flags, null)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,9 +167,9 @@ fun TextKeyboardLayout(
|
||||
MotionEvent.ACTION_MOVE,
|
||||
MotionEvent.ACTION_POINTER_UP,
|
||||
MotionEvent.ACTION_UP,
|
||||
MotionEvent.ACTION_CANCEL
|
||||
-> {
|
||||
val clonedEvent = MotionEvent.obtainNoHistory(event)
|
||||
MotionEvent.ACTION_CANCEL,
|
||||
-> {
|
||||
val clonedEvent = MotionEvent.obtain(event)
|
||||
touchEventChannel
|
||||
.trySend(clonedEvent)
|
||||
.onFailure {
|
||||
|
||||
@@ -50,7 +50,10 @@ import dev.patrickgold.florisboard.lib.devtools.flogInfo
|
||||
import dev.patrickgold.florisboard.lib.ext.ExtensionComponentName
|
||||
import dev.patrickgold.florisboard.lib.ext.ExtensionMeta
|
||||
import dev.patrickgold.florisboard.lib.io.ZipUtils
|
||||
import dev.patrickgold.florisboard.lib.util.TimeUtils.javaLocalTime
|
||||
import dev.patrickgold.florisboard.lib.util.ViewUtils
|
||||
import java.time.LocalTime
|
||||
import java.util.*
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
@@ -63,7 +66,6 @@ import org.florisboard.lib.kotlin.io.subDir
|
||||
import org.florisboard.lib.kotlin.io.subFile
|
||||
import org.florisboard.lib.snygg.SnyggStylesheet
|
||||
import org.florisboard.lib.snygg.value.SnyggStaticColorValue
|
||||
import java.util.UUID
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
/**
|
||||
@@ -187,18 +189,14 @@ class ThemeManager(context: Context) {
|
||||
prefs.theme.dayThemeId.get()
|
||||
}
|
||||
ThemeMode.FOLLOW_TIME -> {
|
||||
//if (AndroidVersion.ATLEAST_API26_O) {
|
||||
// val current = LocalTime.now()
|
||||
// val sunrise = prefs.theme.sunriseTime.get()
|
||||
// val sunset = prefs.theme.sunsetTime.get()
|
||||
// if (current in sunrise..sunset) {
|
||||
// prefs.theme.dayThemeId.get()
|
||||
// } else {
|
||||
// prefs.theme.nightThemeId.get()
|
||||
// }
|
||||
//} else {
|
||||
val current = LocalTime.now()
|
||||
val sunrise = prefs.theme.sunriseTime.get().javaLocalTime
|
||||
val sunset = prefs.theme.sunsetTime.get().javaLocalTime
|
||||
if (current in sunrise..sunset) {
|
||||
prefs.theme.dayThemeId.get()
|
||||
} else {
|
||||
prefs.theme.nightThemeId.get()
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,10 +168,11 @@ fun FlorisStepLayout(
|
||||
) {
|
||||
val scope = FlorisStepLayoutScope(this, primaryColor)
|
||||
header(scope)
|
||||
for (step in steps) {
|
||||
for ((index, step) in steps.withIndex()) {
|
||||
key(step.id) {
|
||||
Step(
|
||||
ownStepId = step.id,
|
||||
index = index + 1, // Start numbering with 1
|
||||
stepState = stepState,
|
||||
title = step.title,
|
||||
primaryColor = primaryColor,
|
||||
@@ -188,6 +189,7 @@ fun FlorisStepLayout(
|
||||
@Composable
|
||||
private fun ColumnScope.Step(
|
||||
ownStepId: Int,
|
||||
index: Int,
|
||||
stepState: FlorisStepState,
|
||||
title: String,
|
||||
primaryColor: Color,
|
||||
@@ -207,7 +209,7 @@ private fun ColumnScope.Step(
|
||||
else -> Modifier.alpha(0.38f)
|
||||
},
|
||||
backgroundColor = backgroundColor,
|
||||
step = ownStepId,
|
||||
step = index,
|
||||
title = title,
|
||||
)
|
||||
val animSpec = spring<Float>(stiffness = Spring.StiffnessMedium)
|
||||
|
||||
@@ -35,12 +35,11 @@ import dev.patrickgold.florisboard.R
|
||||
import dev.patrickgold.florisboard.lib.devtools.LogTopic
|
||||
import dev.patrickgold.florisboard.lib.devtools.flogError
|
||||
import dev.patrickgold.florisboard.lib.devtools.flogInfo
|
||||
import org.florisboard.lib.android.AndroidVersion
|
||||
import java.lang.ref.WeakReference
|
||||
import org.florisboard.lib.kotlin.io.FsDir
|
||||
import org.florisboard.lib.kotlin.io.FsFile
|
||||
import org.florisboard.lib.kotlin.io.subDir
|
||||
import org.florisboard.lib.kotlin.io.subFile
|
||||
import java.lang.ref.WeakReference
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
/**
|
||||
@@ -113,7 +112,7 @@ abstract class CrashUtility private constructor() {
|
||||
application.registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
|
||||
override fun onActivityCreated(
|
||||
activity: Activity,
|
||||
savedInstanceState: Bundle?
|
||||
savedInstanceState: Bundle?,
|
||||
) {
|
||||
if (activity !is CrashDialogActivity) {
|
||||
lastActivityCreated = WeakReference(activity)
|
||||
@@ -125,28 +124,26 @@ abstract class CrashUtility private constructor() {
|
||||
override fun onActivityStopped(activity: Activity) {}
|
||||
override fun onActivitySaveInstanceState(
|
||||
activity: Activity,
|
||||
outState: Bundle
|
||||
outState: Bundle,
|
||||
) {}
|
||||
override fun onActivityDestroyed(activity: Activity) {}
|
||||
})
|
||||
if (AndroidVersion.ATLEAST_API26_O) {
|
||||
try {
|
||||
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE)
|
||||
if (notificationManager != null && notificationManager is NotificationManager) {
|
||||
val notificationChannel = NotificationChannel(
|
||||
NOTIFICATION_CHANNEL_ID,
|
||||
context.resources.getString(R.string.crash_notification_channel__title),
|
||||
NotificationManager.IMPORTANCE_HIGH
|
||||
)
|
||||
notificationManager.createNotificationChannel(notificationChannel)
|
||||
}
|
||||
flogInfo(LogTopic.CRASH_UTILITY) {
|
||||
"Successfully created crash handler notification channel!"
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
flogError(LogTopic.CRASH_UTILITY) {
|
||||
"Failed to create crash handler notification channel due to an unspecified error:\n$e"
|
||||
}
|
||||
try {
|
||||
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE)
|
||||
if (notificationManager != null && notificationManager is NotificationManager) {
|
||||
val notificationChannel = NotificationChannel(
|
||||
NOTIFICATION_CHANNEL_ID,
|
||||
context.resources.getString(R.string.crash_notification_channel__title),
|
||||
NotificationManager.IMPORTANCE_HIGH
|
||||
)
|
||||
notificationManager.createNotificationChannel(notificationChannel)
|
||||
}
|
||||
flogInfo(LogTopic.CRASH_UTILITY) {
|
||||
"Successfully created crash handler notification channel!"
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
flogError(LogTopic.CRASH_UTILITY) {
|
||||
"Failed to create crash handler notification channel due to an unspecified error:\n$e"
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -274,14 +271,7 @@ abstract class CrashUtility private constructor() {
|
||||
context ?: return
|
||||
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE)
|
||||
if (notificationManager != null && notificationManager is NotificationManager) {
|
||||
val notificationBuilder = if (AndroidVersion.ATLEAST_API26_O) {
|
||||
Notification.Builder(context.applicationContext, NOTIFICATION_CHANNEL_ID)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
Notification.Builder(context.applicationContext).apply {
|
||||
setPriority(Notification.PRIORITY_MAX)
|
||||
}
|
||||
}
|
||||
val notificationBuilder = Notification.Builder(context.applicationContext, NOTIFICATION_CHANNEL_ID)
|
||||
val crashDialogIntent = Intent(context, CrashDialogActivity::class.java)
|
||||
val notification = notificationBuilder.run {
|
||||
setContentTitle(title)
|
||||
@@ -369,7 +359,7 @@ abstract class CrashUtility private constructor() {
|
||||
*/
|
||||
data class Stacktrace(
|
||||
val name: String,
|
||||
val details: String
|
||||
val details: String,
|
||||
)
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,7 +36,6 @@ object NetworkUtils {
|
||||
}
|
||||
|
||||
fun getUrls(str: CharSequence): List<MatchGroup> {
|
||||
if (AndroidVersion.ATMOST_API25_N_MR1) return emptyList() // See issue #1970
|
||||
return UrlRegex.findAll(str).mapNotNull { it.groups["Url"] }.toList()
|
||||
}
|
||||
|
||||
@@ -45,7 +44,6 @@ object NetworkUtils {
|
||||
}
|
||||
|
||||
fun getEmailAddresses(str: CharSequence): List<MatchGroup> {
|
||||
if (AndroidVersion.ATMOST_API25_N_MR1) return emptyList() // See issue #1970
|
||||
return EmailRegex.findAll(str).mapNotNull { it.groups["Email"] }.toList()
|
||||
}
|
||||
|
||||
@@ -54,7 +52,6 @@ object NetworkUtils {
|
||||
}
|
||||
|
||||
fun getPhoneNumbers(str: CharSequence): List<MatchGroup> {
|
||||
if (AndroidVersion.ATMOST_API25_N_MR1) return emptyList() // See issue #1970
|
||||
return PhoneNumberRegex.findAll(str).mapNotNull { it.groups["Phone"] }.toList()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,10 +17,8 @@
|
||||
package dev.patrickgold.florisboard.lib.util
|
||||
|
||||
import android.icu.text.SimpleDateFormat
|
||||
import android.icu.util.Calendar
|
||||
import android.icu.util.TimeZone
|
||||
import dev.patrickgold.florisboard.lib.FlorisLocale
|
||||
import org.florisboard.lib.android.AndroidVersion
|
||||
import dev.patrickgold.jetpref.datastore.model.LocalTime
|
||||
import java.time.Instant
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
@@ -28,10 +26,9 @@ object TimeUtils {
|
||||
private val ISO_INSTANT = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", FlorisLocale.ENGLISH.base)
|
||||
|
||||
fun currentUtcTimestamp(): CharSequence {
|
||||
return if (AndroidVersion.ATLEAST_API26_O) {
|
||||
DateTimeFormatter.ISO_INSTANT.format(Instant.now())
|
||||
} else {
|
||||
ISO_INSTANT.format(Calendar.getInstance(TimeZone.GMT_ZONE, FlorisLocale.ENGLISH.base))
|
||||
}
|
||||
return DateTimeFormatter.ISO_INSTANT.format(Instant.now())
|
||||
}
|
||||
|
||||
val LocalTime.javaLocalTime: java.time.LocalTime
|
||||
get() = java.time.LocalTime.of(hour, minute)
|
||||
}
|
||||
|
||||
9
app/src/main/res/drawable/ic_keyboard_keys.xml
Normal file
9
app/src/main/res/drawable/ic_keyboard_keys.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960">
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M280,680L280,600L680,600L680,680L280,680ZM120,520L120,440L200,440L200,520L120,520ZM280,520L280,440L360,440L360,520L280,520ZM440,520L440,440L520,440L520,520L440,520ZM600,520L600,440L680,440L680,520L600,520ZM760,520L760,440L840,440L840,520L760,520ZM120,360L120,280L200,280L200,360L120,360ZM280,360L280,280L360,280L360,360L280,360ZM440,360L440,280L520,280L520,360L440,360ZM600,360L600,280L680,280L680,360L600,360ZM760,360L760,280L840,280L840,360L760,360Z"/>
|
||||
</vector>
|
||||
@@ -72,6 +72,8 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">فتح سجل الحافظة</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">رمز تعبيري</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">فتح نافذة الرموز التعبيرية</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">تبديل اللغة</string>
|
||||
<string name="quick_action__language_switch__tooltip">تنفيذ تبديل اللغة</string>
|
||||
<string name="quick_action__settings" maxLength="12">الإعدادات</string>
|
||||
<string name="quick_action__settings__tooltip">فتح الإعدادات</string>
|
||||
<string name="quick_action__undo" maxLength="12">تراجع</string>
|
||||
@@ -277,7 +279,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">قوة الاهتزاز</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">تتطلب هذه الميزة عتاد الهزاز في جهازك ، والذي يبدو أنه مفقود</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">تتطلب هذه الميزة دعم التحكم في مدى الأجهزة ، وهو مفقود على جهازك</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">تتطلب هذه الميزة دعم التحكم في المدى ، والذي لا يتوفر إلا على نظام اندرويد 8.0 أو أحدث</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">اهتزاز الضغط على المفتاح</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">اهتزاز الضغط المطول على المفاتيح</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">اهتزاز عند الضغط المتكرر</string>
|
||||
@@ -460,6 +461,7 @@
|
||||
<string name="setup__finish_up__description_p1">تم تمكين{app_name} في النظام وجاهز للتخصيص بأسلوبك.</string>
|
||||
<string name="setup__finish_up__description_p2">إذا واجهت أي مشاكل أو أخطاء أو أعطال أو اذا كنت ترغب فقط في تقديم اقتراح ، تحقق من مستودع المشروع من شاشة \"حول التطبيق\"!</string>
|
||||
<string name="setup__finish_up__finish_btn">أبدأ بالتخصيص</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">النسخ الإحتياطي و الإستعادة</string>
|
||||
<string name="backup_and_restore__back_up__title">النسخ الاحتياطي للبيانات</string>
|
||||
@@ -555,7 +557,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">يؤدي مسح السجل الأساسي للحافظة أيضًا إلى حذف آخر إدخال للمحفوظات</string>
|
||||
<string name="send_to_clipboard__unknown_error">حدث خطأ غير معروف. حاول مرة اخرى!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">هذا النوع من الوسائط غير مدعوم.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">إصدار Android قديم جدًا لهذه الميزة. </string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">نسخ الصورة أدناه إلى الحافظة.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">أدوات المطور</string>
|
||||
|
||||
@@ -188,6 +188,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} ta activáu nel sistema y yá pues personalizalu.</string>
|
||||
<string name="setup__finish_up__description_p2">Si atopes cualesquier problema, fallu, casque o namás quier facer dalguna suxerencia, consulta\'l depósitu del proyeutu na pantalla «Tocante a».</string>
|
||||
<string name="setup__finish_up__finish_btn">Comenzar a personalizar</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__back_up__destination_file_sys">Sistema de ficheros llocal</string>
|
||||
<string name="backup_and_restore__back_up__destination_share_intent">Aplicación de terceros pel menú de compartición</string>
|
||||
|
||||
@@ -219,8 +219,15 @@
|
||||
<string name="snygg__rule_element__clipboard_header_text">Текст в заглавката на межд. памет</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Подзаглавие на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Съдържание на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Ред на филтър на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip">Елемент на филтър на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_icon">Пиктограма на елемент на филтър на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_text">Текст на елемент на филтър на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Мрежа на междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Елемент от междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Описание на елемент от междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Подсказка на елемент от междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Времеви маркер на елемент от междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Действия на елемент от междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Действие на елемент от междинната памет</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_icon">Пиктограма с действие на елемент от междинната памет</string>
|
||||
@@ -369,7 +376,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Сила на вибрацията</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Тази възможност изисква модул за вибрации, какъвто изглежда липсва на устройството</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Тази възможност изисква поддръжка на апаратен контрол на амплитудата, каквато липсва на устройството</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Тази възможност изисква поддръжка на апаратен контрол на амплитудата, каквато е налична от Android 8.0 и по-нов</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Вибрация при докосване на клавиш</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Вибрация при задържане на клавиш</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Вибрация при продължително задържане на клавиш</string>
|
||||
@@ -551,6 +557,13 @@
|
||||
<string name="setup__finish_up__description_p1">Клавииатурата на {app_name} вече е включена в системата и готова да я настроите според вашите предпочитения.</string>
|
||||
<string name="setup__finish_up__description_p2">Акосе сблъскате с проблеми, дефекти, сривове или просто искате да направите предложение, разгледайте хранилището на проекта от екрана Относно!</string>
|
||||
<string name="setup__finish_up__finish_btn">Започнете да настройвате</string>
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Физическа клавиатура</string>
|
||||
<string name="physical_keyboard__system_settings__title">Системни настройки на физическа клавиатура</string>
|
||||
<string name="physical_keyboard__system_settings__summary">Подредби, клав. комбинации и специални клавиши</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Достъпно само при включена клавиатура</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__title">Екранна клавиатура</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__summary">Показване на екранна клавиатура при използване на физкческа клавиатура</string>
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Резервно копие и възстановяване</string>
|
||||
<string name="backup_and_restore__back_up__title">Резервно копие на данни</string>
|
||||
@@ -621,6 +634,7 @@
|
||||
<string name="clipboard__cleared_primary_clip">Текущото съдържание на междинната памет е изчистено</string>
|
||||
<string name="clipboard__cleared_history">Историята е изчистена</string>
|
||||
<string name="clipboard__cleared_full_history">Цялата история е изчистена</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Желаете ли историята на междинната памет да бъде изчистена? Всички елементи, с изключение на закачените ще бъдат премахнати без значение на използвания филтър.</string>
|
||||
<string name="settings__clipboard__title">Междинна памет</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Междинна памет на приложението</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Използва се междинната памет на приложението вместо системната</string>
|
||||
@@ -647,7 +661,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Изчистване на текущото съдържание на междинната памет изчиства и последния елемент от историята</string>
|
||||
<string name="send_to_clipboard__unknown_error">Възникна неизвестна грешка. Опитайте отново!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Този вид медия не се поддържа.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Това издание на Андроид е твърде остаряло за тази възможност.</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Долното изображение е копирано в междинната памет.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Развойни инструменти</string>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<string name="about__view_source_code" comment="Label of View source code button in About">Izvorni kod</string>
|
||||
<!-- Setup UI strings -->
|
||||
<string name="setup__title" comment="Title of Setup">Dobrodošli!</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__close" comment="Label of Close button in crash dialog">Zatvori</string>
|
||||
|
||||
@@ -297,7 +297,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Intensitat de la vibració</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">A aquesta funció li cal un maquinari de vibració, però sembla que el vostre dispositiu no en té cap</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">A aquesta funció li cal un maquinari de suport de control d\'amplificació, però sembla que el vostre dispositiu no en té cap</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">A aquesta funció li cal el suport del control d\'amplificació, però només està disponible en versions d\'Android 8.0 o posteriors</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibració en pitjar la tecla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibració de toc llarg de la tecla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibració d\'acció repetida de la tecla</string>
|
||||
@@ -313,9 +312,9 @@
|
||||
<string name="pref__keyboard__number_row__summary" comment="Preference summary">Mostra una fila amb els números a la part superior del teclat</string>
|
||||
<string name="pref__keyboard__hinted_number_row_mode__label" comment="Preference title">Números suggerits a les tecles</string>
|
||||
<string name="pref__keyboard__hinted_symbols_mode__label" comment="Preference title">Símbols suggerits a les tecles</string>
|
||||
<string name="pref__keyboard__utility_key_enabled__label" comment="Preference title">Mostra la clau d\'utilitat</string>
|
||||
<string name="pref__keyboard__utility_key_enabled__summary" comment="Preference summary">Mostra una clau d\'utilitat configurable al costat de la barra d\'espai</string>
|
||||
<string name="pref__keyboard__utility_key_action__label" comment="Preference title">Acció de la clau d\'utilitat</string>
|
||||
<string name="pref__keyboard__utility_key_enabled__label" comment="Preference title">Mostra la tecla d\'utilitat</string>
|
||||
<string name="pref__keyboard__utility_key_enabled__summary" comment="Preference summary">Mostra una tecla d\'utilitat configurable al costat de la barra d\'espai</string>
|
||||
<string name="pref__keyboard__utility_key_action__label" comment="Preference title">Acció de la tecla d\'utilitat</string>
|
||||
<string name="pref__keyboard__space_bar_mode__label" comment="Preference title">Etiqueta de la barra espaiadora</string>
|
||||
<string name="pref__keyboard__capitalization_behavior__label" comment="Preference title">Comportament de les majúscules</string>
|
||||
<string name="pref__keyboard__font_size_multiplier__label" comment="Preference title">Multiplicador de la mida de la font</string>
|
||||
@@ -482,6 +481,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} s\'habilitat al sistema i està preparat perquè el personalitzis.</string>
|
||||
<string name="setup__finish_up__description_p2">Si trobes cap incidència, error, fallada o simplement vols suggerir alguna cosa, només has d\'anar al repositori del projecte des de la pantalla Quant a!</string>
|
||||
<string name="setup__finish_up__finish_btn">Comença a personalitzar</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Còpia de seguretat & Restauració</string>
|
||||
<string name="backup_and_restore__back_up__title">Còpia de seguretat de les dades</string>
|
||||
@@ -578,8 +578,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Si suprimeixes l\'entrada principal, també suprimiràs la darrera entrada de l\'historial</string>
|
||||
<string name="send_to_clipboard__unknown_error">S\'ha produït un error desconegut. Torna-ho a provar!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Aquest tipus de mitjà no és compatible.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">La versió d\'Android és massa antiga per a aquesta funció.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">La imatge de sota s\'ha copiat al porta-retalls.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Eines de desenvolupament</string>
|
||||
|
||||
@@ -18,6 +18,16 @@
|
||||
<string name="prefs__media__emoji_history__title" comment="Preference group title">مێژووی ئیمۆجی</string>
|
||||
<string name="prefs__media__emoji_history_enabled" comment="Preference title">مێژووی ئیمۆجی کارا بکە</string>
|
||||
<string name="prefs__media__emoji_history_enabled__summary" comment="Preference summary">دوایین ئیمۆجییە بەکارھێندراوەکان بھێڵەوە بۆ ئاسانکاری</string>
|
||||
<string name="prefs__media__emoji_history_pinned_update_strategy" comment="Preference title">ماوەی نوێبونەوە (جێگیرکراو)</string>
|
||||
<string name="prefs__media__emoji_history_recent_update_strategy" comment="Preference title">ماوەی نوێبونەوە (دوایین)</string>
|
||||
<string name="prefs__media__emoji_history_max_size">زۆرترین ڕێژەی هەڵگرتن</string>
|
||||
<string name="prefs__media__emoji_history_pinned_reset">ڕێکخستنەوەی لیستی خەندە جێگیرکراوەکان</string>
|
||||
<string name="prefs__media__emoji_history_reset">ڕێکخستنەوەی لیستی خەندەکان</string>
|
||||
<string name="prefs__media__emoji_suggestion__title" comment="Preference group title">پێشنیارکردنی خەندەکان</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled" comment="Preference title">چالاککردنی پێشنیاری خەندەکان</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled__summary" comment="Preference summary">پێشنیارکردنی خەندە و کاردانەوەکان لەکاتی نووسیندا</string>
|
||||
<string name="prefs__media__emoji_suggestion_type" comment="Preference title">شێوازی پێشنیاری خەندەکان</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name" comment="Preference title">پیشاندانی ناوی خەندەکان</string>
|
||||
<!-- Emoji strings -->
|
||||
<string name="emoji__category__smileys_emotion" comment="Emoji category name">خەندەکان </string>
|
||||
<string name="emoji__category__people_body" comment="Emoji category name">خەڵک</string>
|
||||
@@ -28,6 +38,8 @@
|
||||
<string name="emoji__category__objects" comment="Emoji category name">ئامانجەکان</string>
|
||||
<string name="emoji__category__symbols" comment="Emoji category name">هێماکان</string>
|
||||
<string name="emoji__category__flags" comment="Emoji category name">ئاڵاکان</string>
|
||||
<string name="emoji__history__pinned">جێگیرکراو</string>
|
||||
<string name="emoji__history__recent">دوایین</string>
|
||||
<!-- Quick action strings -->
|
||||
<string name="quick_action__arrow_up" maxLength="12">چونە سەرەوە</string>
|
||||
<string name="quick_action__arrow_up__tooltip">چوونە سەرەتای دێڕ</string>
|
||||
@@ -51,6 +63,8 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">پیشاندانی لەبەرگیراوەکان</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">ئیمۆجی</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">کردنەوەی لیستی ئیمۆجیەکان</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">گۆڕینی زمان</string>
|
||||
<string name="quick_action__language_switch__tooltip">گۆڕینی زمانی تەختەکلیل</string>
|
||||
<string name="quick_action__settings" maxLength="12">ڕێکخستنەکان</string>
|
||||
<string name="quick_action__settings__tooltip">کردنەوەی ڕێکخستنەکان</string>
|
||||
<string name="quick_action__undo" maxLength="12">دواتر</string>
|
||||
@@ -166,6 +180,10 @@
|
||||
<string name="settings__theme_editor__component_meta_is_night_theme">ڕووکاری تاریکە</string>
|
||||
<string name="settings__theme_editor__component_meta_is_borderless">بێ لێوار</string>
|
||||
<string name="settings__theme_editor__component_meta_stylesheet_path">شوێنی هەڵگرتن</string>
|
||||
<string name="snygg__rule_annotation__font">فۆنت</string>
|
||||
<string name="snygg__rule_annotation__font_name">ناوی فۆنت</string>
|
||||
<string name="snygg__rule_element__root">بنەڕەتی</string>
|
||||
<string name="snygg__rule_element__window">پەنجەرە</string>
|
||||
<string name="snygg__rule_element__key">دوگمە</string>
|
||||
<string name="snygg__rule_element__key_hint">پیتە لاوەکییەکان</string>
|
||||
<string name="snygg__rule_element__clipboard_header">سەرەوەی لەبەرگیراوەکان</string>
|
||||
@@ -217,6 +235,7 @@
|
||||
<string name="snygg__property_name__var_shape_variant">شێوەی دوگمەکان (هەمەجۆر)</string>
|
||||
<string name="snygg__property_value__explicit_inherit">بنەڕەتی</string>
|
||||
<string name="snygg__property_value__defined_var">سەرچاوە</string>
|
||||
<string name="snygg__property_value__no">نەخێر</string>
|
||||
<string name="snygg__property_value__solid_color">ڕەنگ</string>
|
||||
<string name="snygg__property_value__rectangle_shape">چوارگۆشەیی</string>
|
||||
<string name="snygg__property_value__circle_shape">بازنەیی</string>
|
||||
@@ -245,7 +264,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">هێزی لەرزین</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">ئەم تایبەتمەندییە پێویستی بە هاردوێری لەرینەوەیە کە لە ئامێرەکەتدا بوونی نییە</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">مۆبایلەکەت پشتگری ئەم تایبەتمەندییە ناکات</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">ئەم تایبەتمەندییە تەنها لە ئەندرۆیدی ٨. ٠ و بەرەو سەر کاردەکات</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">لەرزین لەکاتی نووسین</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">لەرزین لەکاتی دەست ڕاگرتن</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">لەرزین لەکاتی فرمانە دووبارەکان</string>
|
||||
@@ -405,6 +423,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} ئێستا چالاکە بۆ بەکارهێنان و نووسین لەسەر مۆبایلەکەت.</string>
|
||||
<string name="setup__finish_up__description_p2">لەکاتی بوونی هەر پرسیار و سەرنج و پێشنیارێک ئەتوانن سەردانی بەشی تایبەتی یارمەتیدان بکەن!</string>
|
||||
<string name="setup__finish_up__finish_btn">ڕێکخستنەکانی تەختەکلیل</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">پاشەکەوتکردن و گێڕانەوە</string>
|
||||
<string name="backup_and_restore__back_up__title">پاشەکەوتکردنی داتاکان</string>
|
||||
@@ -602,6 +621,8 @@
|
||||
<string name="general__no_browser_app_found_for_url">هیچ بەرنامەیەکی وێبگەڕ نەدۆزرایەوە بۆ کردنەوەی {url}</string>
|
||||
<string name="general__select_dropdown_value_placeholder">- دیاریبکە -</string>
|
||||
<string name="general__unlimited">بێ سنوور</string>
|
||||
<string name="general__file_name">ناوی فایل</string>
|
||||
<string name="general__auto" comment="Generic shorthand for 'Automatic' value">خۆکار</string>
|
||||
<!-- Screen orientation strings -->
|
||||
<string name="screen_orientation__portrait">دۆخی ئاسایی</string>
|
||||
<string name="screen_orientation__landscape">دۆخی خستنە سەرلا</string>
|
||||
@@ -618,6 +639,7 @@
|
||||
<string name="enum__candidates_display_mode__classic" comment="Enum value label">ئاسایی (٣ ڕیز)</string>
|
||||
<string name="enum__candidates_display_mode__dynamic" comment="Enum value label">جوڵاو</string>
|
||||
<string name="enum__candidates_display_mode__dynamic_scrollable" comment="Enum value label">جوڵاو و ڕاکێشان</string>
|
||||
<string name="enum__color_representation__rgb" comment="Enum value label">سوور سەوز شین</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always" comment="Enum value label">هەمیشە پیشاندان</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always__description" comment="Enum value description">پیشاندانی تەختەکلیل دوای داخستنی بەشی دەستکاریکردنی ڕووکار</string>
|
||||
<string name="enum__display_kbd_after_dialogs__never" comment="Enum value label">پیشان نەدان</string>
|
||||
@@ -674,6 +696,9 @@
|
||||
<string name="enum__snygg_level__advanced__description" comment="Enum value description">هەموو زانیارییەکانی ڕەنگەکان پیشان ئەدرێن، درێژە و بەشەکانی تر وەردەگێڕدرێن.</string>
|
||||
<string name="enum__snygg_level__developer" comment="Enum value label">گەشەپێدەر</string>
|
||||
<string name="enum__snygg_level__developer__description" comment="Enum value description">هەموو زانیارییەکانی ڕەنگەکان پیشان ئەدرێن، زانیاری ڕووکار هەمان ناوی فایل پیشان ئەدات.</string>
|
||||
<string name="enum__space_bar_mode__nothing" comment="Enum value label">بێ ناو</string>
|
||||
<string name="enum__space_bar_mode__current_language" comment="Enum value label">ناوی زمان</string>
|
||||
<string name="enum__space_bar_mode__space_bar_key" comment="Enum value label">␣</string>
|
||||
<string name="enum__spelling_language_mode__use_system_languages" comment="Enum value label">بەکارهێنانی زمانی سیستەم</string>
|
||||
<string name="enum__spelling_language_mode__use_keyboard_subtypes" comment="Enum value label">بەکارهێنانی ناوی تەختەکلیل</string>
|
||||
<string name="enum__swipe_action__no_action" comment="Enum value label">هیچ فرمانێک</string>
|
||||
@@ -730,4 +755,12 @@
|
||||
<item quantity="one">{v} دانە</item>
|
||||
<item quantity="other">{v} دانە</item>
|
||||
</plurals>
|
||||
<plurals name="unit__characters__written">
|
||||
<item quantity="one">{v} پیت</item>
|
||||
<item quantity="other">{v} پیت</item>
|
||||
</plurals>
|
||||
<plurals name="unit__candidates__written">
|
||||
<item quantity="one">{v} دانە</item>
|
||||
<item quantity="other">{v} دانە</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
|
||||
@@ -218,8 +218,15 @@
|
||||
<string name="snygg__rule_element__clipboard_header_text">Text záhlaví schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Podzáhlaví schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Obsah schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Řádek filtru schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip">Pilulka filtru schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_icon">Ikona pilulky filtru schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_text">Text pilulky filtru schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Mřížka schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Položka schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Popis položky schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Vyskakovací nabídka položky schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Čas položky schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Akce položky schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Akce položky schránky</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_icon">Ikona akce položky schránky</string>
|
||||
@@ -368,7 +375,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Síla vibrací</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Tato funkce vyžaduje hardwarové vibrační zařízení, které na tomto zařízení nejspíše chybí</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Tato funkce vyžaduje hardwarovou podporu řízení amplitudy, která ve vašem zařízení chybí</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Tato funkce vyžaduje podporu řízení amplitudy, která je dostupná pouze na systému Android 8.0 nebo vyšším</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibrace při stisku klávesy</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibrace při dlouhém stisku klávesy</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibrace při opakované akci klávesy</string>
|
||||
@@ -553,6 +559,13 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} je nyní povolena ve vašem systému a je připravena na přizpůsobení.</string>
|
||||
<string name="setup__finish_up__description_p2">Pokud objevíte jakékoli problémy, chyby, pády nebo prostě jen budete chtít podat návrh, podívejte se na repozitář projektu na obrazovce O aplikaci!</string>
|
||||
<string name="setup__finish_up__finish_btn">Začít přizpůsobovat</string>
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Fyzická klávesnice</string>
|
||||
<string name="physical_keyboard__system_settings__title">Systémová nastavení fyzické klávesnice</string>
|
||||
<string name="physical_keyboard__system_settings__summary">Rozložení, klávesové zkratky a modifikátory</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Dostupné pouze při připojené klávesnici</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__title">Zobrazit klávesnici na obrazovce</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__summary">Zobrazí klávesnici na obrazovce při používání fyzické klávesnice</string>
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Záloha a obnovení</string>
|
||||
<string name="backup_and_restore__back_up__title">Zálohovat data</string>
|
||||
@@ -593,7 +606,7 @@
|
||||
<string name="crash_dialog__copy_to_clipboard_failure" comment="Label of Copy to clipboard failure message in crash dialog">Nepodařilo se zkopírovat do systémové schránky: Instance správce schránky nenalezena</string>
|
||||
<string name="crash_dialog__open_issue_tracker" comment="Label of Open issue tracker button in crash dialog">Nahlásit problém (github.com)</string>
|
||||
<string name="crash_dialog__close" comment="Label of Close button in crash dialog">Zavřít</string>
|
||||
<string name="crash_notification_channel__title" comment="Title of crash notification channel">FlorisBoard chybová hlášení</string>
|
||||
<string name="crash_notification_channel__title" comment="Title of crash notification channel">Chybová hlášení FlorisBoard</string>
|
||||
<string name="crash_once_notification__title" comment="Title of the notification for a single crash">FlorisBoard přestal pracovat…</string>
|
||||
<string name="crash_once_notification__body" comment="Body of the notification for a single crash">Klepnutím zobrazíte podrobnosti o chybě</string>
|
||||
<string name="crash_multiple_notification__title" comment="Title of the notification for consecutive crashes">Zdá se, že FlorisBoard přestal opakovaně pracovat…</string>
|
||||
@@ -623,6 +636,7 @@
|
||||
<string name="clipboard__cleared_primary_clip">Primární zkopírovaná položka vymazána</string>
|
||||
<string name="clipboard__cleared_history">Historie vymazána</string>
|
||||
<string name="clipboard__cleared_full_history">Celá historie vymazána</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Opravdu chcete vymazat historii schránky? Smažete tím všechny položky kromě připnutých, nezávisle na aktivních filtrech.</string>
|
||||
<string name="settings__clipboard__title">Schránka</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Použít interní schránku</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Použít interní schránku místo systémové schránky</string>
|
||||
@@ -649,8 +663,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Vymazání primární položky také vymaže poslední zápis v historii</string>
|
||||
<string name="send_to_clipboard__unknown_error">Došlo k neznámé chybě. Zkuste to prosím znovu!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Tento typ médií není podporován.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Pro použití této funkce máte příliš starou verzi systému.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Obrázek níže zkopírován do schránky.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Vývojářské nástroje</string>
|
||||
|
||||
@@ -252,6 +252,7 @@
|
||||
<string name="setup__enable_ime__title">Aktivér {app_name}</string>
|
||||
<string name="setup__select_ime__title">Vælg {app_name}</string>
|
||||
<string name="setup__select_ime__switch_keyboard_btn">Skift tastatur</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__title" comment="Title of crash dialog">FlorisBoard fejlrapport</string>
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Zwischenablage Verlauf öffnen</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Emoji</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Öffne Emoji-Panel</string>
|
||||
<string name="quick_action__language_switch__tooltip">Sprachwechsel ausführen</string>
|
||||
<string name="quick_action__settings" maxLength="12">Einstellung</string>
|
||||
<string name="quick_action__settings__tooltip">Einstellungen öffnen</string>
|
||||
<string name="quick_action__undo" maxLength="12">Rückgängig</string>
|
||||
@@ -172,6 +173,7 @@
|
||||
<string name="settings__theme_editor__add_code">Key code hinzufügen</string>
|
||||
<string name="settings__theme_editor__edit_code">Key code bearbeiten</string>
|
||||
<string name="settings__theme_editor__no_codes_defined">Regel auf alle Zielelemente anwenden.</string>
|
||||
<string name="settings__theme_editor__no_enum_value_to_add_anymore">Alle möglichen Werte wurden hinzugefügt.</string>
|
||||
<string name="settings__theme_editor__code_already_exists">Dieser Tastencode ist bereits definiert.</string>
|
||||
<string name="settings__theme_editor__code_invalid">Dieser Tastencode ist nicht gültig. Stelle sicher, dass der Tastencode innerhalb der Spanne von {c_min} bis {c_max} für Zeichen oder von {i_min} bis {i_max} für interne Spezialschlüssel liegt.</string>
|
||||
<string name="settings__theme_editor__code_help_text">Alternativ werden die folgenden Links helfen die korrespondierenden Codes zu finden:</string>
|
||||
@@ -189,9 +191,11 @@
|
||||
<string name="settings__theme_editor__property_value_shape_apply_for_all_corners">Auf alle Ecken anwenden</string>
|
||||
<string name="settings__theme_editor__property_value_color_dialog_title">Farbzeichenkette bearbeiten</string>
|
||||
<string name="settings__theme_editor__file_selector_dialog_title">Datei auswählen</string>
|
||||
<string name="settings__theme_editor__file_selector_no_files_text">Es wurden noch keine Dateien zu der Erweiterung hinzugefügt. Bitte nutze {action_title} auf der vorherigen Seite um die Dateien zu importieren.</string>
|
||||
<string name="settings__theme_editor__component_meta_is_night_theme">Ist Nachtthema</string>
|
||||
<string name="settings__theme_editor__component_meta_is_borderless">Ist randlos</string>
|
||||
<string name="settings__theme_editor__component_meta_stylesheet_path">Stylesheetpfad</string>
|
||||
<string name="settings__theme_editor__stylesheet_error_title">Stylesheet Fehler</string>
|
||||
<string name="snygg__rule_annotation__defines">Variablen</string>
|
||||
<string name="snygg__rule_annotation__font">Schriftart</string>
|
||||
<string name="snygg__rule_annotation__font_name">Schriftname</string>
|
||||
@@ -200,9 +204,14 @@
|
||||
<string name="snygg__rule_element__key">Taste</string>
|
||||
<string name="snygg__rule_element__key_hint">Tastenhinweis</string>
|
||||
<string name="snygg__rule_element__clipboard_header">Zwischenablagekopfzeile</string>
|
||||
<string name="snygg__rule_element__clipboard_header_button">Zwischenablagekopfzeilen Knopf</string>
|
||||
<string name="snygg__rule_element__clipboard_header_text">Zwischenablagekopfzeilentext</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Zwischenablagenuntertitel</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Zwischenablageninhalt</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Zwischenablagenitem</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Zwischensblagenitem-Popup</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_message">Zwischenablagehistorie Deaktivierungsnachricht</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_button">Zwischenablagehistorie Deaktivierungsknopf</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_layout">Eingabeanordnung im Querformat</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_field">Eingabefeld im Querformat</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_action">Eingabeaktion im Querformat</string>
|
||||
@@ -293,7 +302,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Vibrationsstärke</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Diese Funktion benötigt einen Vibrationsmotor, der bei diesem Gerät anscheinend fehlt</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Diese Funktion erfordert hardwareseitige Unterstützung zur Festlegung der Stärke von Vibrationsimpulsen, die auf diesem Gerät fehlt</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Diese Funktion verwendet Api Funktionen zur Steuerung der Stärke von Vibrationsimpulsen, die erst ab Android 8.0 unterstützt werden</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Bei Tastendruck vibrieren</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Bei langem Drücken einer Taste vibrieren</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Bei Doppeltippen auf eine Taste vibrieren</string>
|
||||
@@ -474,6 +482,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} ist nun im System aktiviert und bereit von dir angepasst zu werden.</string>
|
||||
<string name="setup__finish_up__description_p2">Falls dir irgendwelche Probleme, Bugs oder Abstürze begegnen, oder du einfach einen Vorschlag machen möchtest, besuche einfach die GitHub Seite des Projekts (zu finden im About \"Über die App\" Screen)!</string>
|
||||
<string name="setup__finish_up__finish_btn">Anpassung beginnen</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Sichern & Wiederherstellen</string>
|
||||
<string name="backup_and_restore__back_up__title">Daten sichern</string>
|
||||
@@ -569,7 +578,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Durch das Löschen des aktiven Elements wird auch das neueste Verlaufselement entfernt</string>
|
||||
<string name="send_to_clipboard__unknown_error">Ein unbekannter Fehler ist aufgetreten. Bitte versuche es erneut!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Dieser Media-Typ wird nicht unterstützt.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Die Androidversion ist zu alt für diese Funktion. </string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Nachfolgendes Bild wurde in die Zwischenablage kopiert.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Entwicklerwerkzeuge</string>
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_duration__label" comment="Preference title">Διάρκεια δόνησης</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Ένταση δόνησης</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Αυτό το χαρακτηριστικό απαιτεί υποστήριξη ελέγχου εύρους στο υλισμικό, η οποία απουσιάζει από τη συσκευή σας</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Αυτό το χαρακτηριστικό απαιτεί υποστήριξη ελέγχου εύρους, η οποία είναι διαθέσιμη μόνο στο Android 8.0 ή νεότερο</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Δόνηση πατήματος πλήκτρου</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Δόνηση παρατεταμένου πατήματος πλήκτρου</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Δόνηση επαναλαμβανόμενης ενέργειας πλήκτρου</string>
|
||||
@@ -227,6 +226,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} είναι τώρα ενεργοποιημένο στο σύστημα και έτοιμο να προσαρμοστεί από εσάς.</string>
|
||||
<string name="setup__finish_up__description_p2">Εάν αντιμετωπίσετε τυχόν θέματα, προβλήματα, σφάλματα ή απλώς θέλετε να κάνετε μία πρόταση, ρίξτε μία ματιά στο αποθετήριο από το πεδίο σχετικά με!</string>
|
||||
<string name="setup__finish_up__finish_btn">Ξεκινήστε την προσαρμογή</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__restore__title">Επαναφορά δεδομένων</string>
|
||||
<string name="backup_and_restore__restore__mode">Λειτουργία επαναφοράς</string>
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
<string name="prefs__media__emoji_history_enabled" comment="Preference title">Aktivigi emoĝian historion</string>
|
||||
<string name="prefs__media__emoji_history_enabled__summary" comment="Preference summary">Memorigi antaŭ ne longe uzitaj emoĝioj por rapida alireblo</string>
|
||||
<string name="prefs__media__emoji_history_pinned_update_strategy" comment="Preference title">Ĝisdatigon strategio (Alpinglitaj)</string>
|
||||
<string name="prefs__media__emoji_history_recent_update_strategy" comment="Preference title">Ĝisdatigon strategio (Ĵusaj)</string>
|
||||
<string name="prefs__media__emoji_history_recent_update_strategy" comment="Preference title">Ĝisdatigon strategio (Lastaj)</string>
|
||||
<string name="prefs__media__emoji_history_max_size">Maksimumo da konservendaj eroj</string>
|
||||
<string name="prefs__media__emoji_history_pinned_reset">Forgesi alpinglitajn emoĝiojn</string>
|
||||
<string name="prefs__media__emoji_history_reset">Forgesi ĵusajn emoĝiojn</string>
|
||||
<string name="prefs__media__emoji_history_reset">Forgesi lastajn emoĝiojn</string>
|
||||
<string name="prefs__media__emoji_suggestion__title" comment="Preference group title">Emoĝiaj sugestoj</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled" comment="Preference title">Aktivigi emoĝiajn sugestojn</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled__summary" comment="Preference summary">Havigi emoĝiajn sugestojn dum ke vi tajpas</string>
|
||||
<string name="prefs__media__emoji_suggestion_type" comment="Preference title">Ekigon tipo</string>
|
||||
<string name="prefs__media__emoji_suggestion_type" comment="Preference title">Ekigon speco</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history" comment="Preference title">Ĝisdatigi emoĝian historion</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history__summary" comment="Preference summary">Akcepti sugestitajn emoĝiojn aldonas ilin al la emoĝia historio</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name" comment="Preference title">Montri la nomojn de la emoĝioj</string>
|
||||
@@ -48,9 +48,9 @@
|
||||
<string name="emoji__history__usage_tip" comment="Feature discoverability for actions of emoji history">Informo: Vi povas longe tuŝi emoĝiojn en la historio por alpingli aŭ forigi ilin!</string>
|
||||
<string name="emoji__history__removal_success_message" comment="Toast message if user has used the delete action on an emoji in the emoji history">Forigis {emoji} el emoĝiojn historio</string>
|
||||
<string name="emoji__history__pinned">Alpinglitaj</string>
|
||||
<string name="emoji__history__recent">Ĵusaj</string>
|
||||
<string name="emoji__history__recent">Lastaj</string>
|
||||
<!-- Quick action strings -->
|
||||
<string name="quick_action__arrow_up" maxLength="12">Sago supren</string>
|
||||
<string name="quick_action__arrow_up" maxLength="12">Supren</string>
|
||||
<string name="quick_action__arrow_up__tooltip">Movi la kursoron al la supra linio</string>
|
||||
<string name="quick_action__arrow_down" maxLength="12">Suben</string>
|
||||
<string name="quick_action__arrow_down__tooltip">Movi la kursoron al la malsupra linio</string>
|
||||
@@ -72,8 +72,10 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Malfermi tondujan historion</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Emoĝioj</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Malfermi emoĝian panelon</string>
|
||||
<string name="quick_action__settings" maxLength="12">Agordo</string>
|
||||
<string name="quick_action__settings__tooltip">Malfermi agordon</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Lingva ŝanĝo</string>
|
||||
<string name="quick_action__language_switch__tooltip">Baskuligi lingvon</string>
|
||||
<string name="quick_action__settings" maxLength="12">Agordoj</string>
|
||||
<string name="quick_action__settings__tooltip">Malfermi agordojn</string>
|
||||
<string name="quick_action__undo" maxLength="12">Malfari</string>
|
||||
<string name="quick_action__undo__tooltip">Malfari la lastan enigon</string>
|
||||
<string name="quick_action__redo" maxLength="12">Refari</string>
|
||||
@@ -112,6 +114,7 @@
|
||||
<string name="settings__home__ime_not_selected" comment="Warning message shown in Home fragment when FlorisBoard is not selected as the default keyboard">FlorisBoard ne estas elektita kiel la implicita enigmetodo. Klaku ĉi tie por solvi la problemon.</string>
|
||||
<string name="settings__localization__title" comment="Title of languages and Layout screen">Lingvoj & Aranĝoj</string>
|
||||
<string name="settings__localization__display_language_names_in__label" comment="Label of Display language names in preference">Montri lingvajn nomojn en</string>
|
||||
<string name="settings__localization__display_keyboard_labels_in_subtype_language" comment="Label of Display keyboard labels in subtype language preference">Montri klavarajn etikedojn en la subspeca lingvo</string>
|
||||
<string name="settings__localization__group_subtypes__label" comment="Label of subtypes group">Subspecoj</string>
|
||||
<string name="settings__localization__subtype_add_title" comment="Title of subtype dialog when adding a new subtype">Aldoni subspecon</string>
|
||||
<string name="settings__localization__language_pack_title" comment="Title of the language pack manager screen for managing installed and custom language packs">Mastrumi instalitajn lingvajn pakojn</string>
|
||||
@@ -139,6 +142,7 @@
|
||||
<string name="settings__localization__suggested_subtype_presets_none_found" comment="Suggested presets none found">Neniu subspeco jam agordita disponebla. Uzu suban butonon por vidi ĉiujn jam agorditajn subspecojn.</string>
|
||||
<string name="settings__localization__subtype_presets" comment="Subtype presets dialog title">Subspecoj jam agorditaj</string>
|
||||
<string name="settings__localization__subtype_presets_view_all" comment="View all presets button">Montri ĉiujn</string>
|
||||
<string name="settings__localization__subtype_no_subtypes_configured_warning" comment="Warning message that no subtype has been defined">Ŝajnas ke vi agordis neniun subspecon. La subspeco English/QWERTY estos uzata por solvi tiun problemon!</string>
|
||||
<string name="settings__localization__subtype_error_already_exists" comment="Error message shown in subtype dialog when a subtype to add already exists">Ĉi tiu subspeco jam ekzistas!</string>
|
||||
<string name="settings__localization__subtype_error_fields_no_value" comment="Error message shown in subtype editor if at least one field is set to '- select -' (means no value specified)">Almenaŭ unu kampo ne havas valoron elektitan. Bonvolu elekti valoro(j)n por tiu(j) kampo(j).</string>
|
||||
<string name="settings__localization__subtype_error_layout_not_installed" comment="Error message shown in subtype list when a layout is not installed, where %s will be replaced by the layout ID">{layout_id} (ne instalita)</string>
|
||||
@@ -151,6 +155,8 @@
|
||||
<string name="pref__theme__sunset_time__label" comment="Label of the sunset time preference">Sunsubira horo</string>
|
||||
<string name="pref__theme__day" comment="Label of the day group (day means light theme)">Taga etoso</string>
|
||||
<string name="pref__theme__night" comment="Label of the night group (night means dark theme)">Nokta etoso</string>
|
||||
<string name="pref__theme__theme_accent_color__label" comment="Label of accent color preference in Theme"> Baza koloro (etosoj Material You)
|
||||
</string>
|
||||
<string name="settings__theme_manager__title_manage" comment="Title of the theme manager screen for managing installed and custom themes">Administri instalitajn etosojn</string>
|
||||
<string name="pref__theme__source_assets" comment="Label for the theme source field">Rimedoj apon FlorisBoard</string>
|
||||
<string name="pref__theme__source_internal" comment="Label for the theme source field">Interna memoro</string>
|
||||
@@ -226,7 +232,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Vibradon intenseco</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Tiu funkcio bezonas aparatan vibrilon, kiu ŝajnas malesti en tiu aparato</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Tiu funkcio necesas subtenon de la kontrolo aparataran amplitudon, kiu mankas en via aparato</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Tiu funkcio necesas subtenon de la kontrolo amplitudon, kiu estas nur disponebla en Android 8.0 aŭ pli nova</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibrado je tuŝoj klavojn</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibrado je longaj tuŝoj klavojn</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibrado je ripetitaj klavaj agoj</string>
|
||||
@@ -263,8 +268,10 @@
|
||||
<string name="pref__smartbar__layout__label" comment="Preference title">Aranĝo</string>
|
||||
<string name="pref__smartbar__group_layout_specific__label" comment="Preference group title">Aranĝo-specifaj opcioj</string>
|
||||
<string name="pref__smartbar__flip_toggles__label" comment="Preference title">Inversigi baskulajn butonojn</string>
|
||||
<string name="pref__smartbar__flip_toggles__summary" comment="Preference summary">Inversigi baskulojn de la agojn vico</string>
|
||||
<string name="pref__smartbar__extended_actions_placement__label" comment="Preference title">Pozicio de la agojn-vico</string>
|
||||
<string name="pref__smartbar__flip_toggles__summary" comment="Preference summary">Inversigi baskulojn de la aga vico</string>
|
||||
<string name="pref__smartbar__shared_actions_auto_expand_collapse__label" comment="Preference title">Aŭtomate etendi/maletendi</string>
|
||||
<string name="pref__smartbar__shared_actions_auto_expand_collapse__summary" comment="Preference summary">Aŭtomate etendi/maletendi la kunan agan vicon laŭ nuna stato</string>
|
||||
<string name="pref__smartbar__extended_actions_placement__label" comment="Preference title">Pozicio de la aga vico</string>
|
||||
<!-- Typing strings -->
|
||||
<string name="settings__typing__title" comment="Title of Typing screen">Tajpado</string>
|
||||
<string name="pref__suggestion__title" comment="Preference group title">Sugestoj</string>
|
||||
@@ -366,11 +373,11 @@
|
||||
<string name="about__repository__title" comment="Preference title">Deponejo (GitHub)</string>
|
||||
<string name="about__repository__summary" comment="Preference summary">Fontkodo, diskutoj, problemoj kaj informoj</string>
|
||||
<string name="about__privacy_policy__title" comment="Preference title">Privateca politiko</string>
|
||||
<string name="about__privacy_policy__summary" comment="Preference summary">La privateca politiko de tiu projekto</string>
|
||||
<string name="about__privacy_policy__summary" comment="Preference summary">La privateca politiko de tiu ĉi projekto</string>
|
||||
<string name="about__project_license__title" comment="Preference title">Projekton permesilo</string>
|
||||
<string name="about__project_license__error_license_text_failed" comment="Error text for license text loading failure">Eraro: Fiaskis elŝuti la permesilan tekston.\n-> Kaŭzo: {error_message}</string>
|
||||
<string name="about__third_party_licenses__title" comment="Preference title">Tria-partaj permesiloj</string>
|
||||
<string name="about__third_party_licenses__summary" comment="Preference summary">Permesiloj de la tria-partaj bibliotekoj enhavata en tiu apo</string>
|
||||
<string name="about__third_party_licenses__summary" comment="Preference summary">Permesiloj de la tria-partaj bibliotekoj enhavata en tiu ĉi apo</string>
|
||||
<!-- Setup UI strings -->
|
||||
<string name="setup__title" comment="Title of Setup">Bonvenon!</string>
|
||||
<string name="setup__footer__privacy_policy" comment="Privacy policy label for URL">Privateca politiko</string>
|
||||
@@ -381,6 +388,7 @@
|
||||
<string name="setup__grant_notification_permission__btn">Permesi</string>
|
||||
<string name="setup__finish_up__title">Plenumi</string>
|
||||
<string name="setup__finish_up__finish_btn">Komenci agordi</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Savkopiado & Restaŭrigo</string>
|
||||
<string name="backup_and_restore__back_up__title">Savi datumojn</string>
|
||||
@@ -430,7 +438,7 @@
|
||||
<string name="clipboard__locked__title">Via tondujo estas ŝlosita</string>
|
||||
<string name="clipboard__locked__message">Por iri al via tonduja historio, bonvolu unue malŝlosi vian aparaton.</string>
|
||||
<string name="clipboard__group_pinned">Alpinglitaj</string>
|
||||
<string name="clipboard__group_recent">Ĵusaj</string>
|
||||
<string name="clipboard__group_recent">Lastaj</string>
|
||||
<string name="clipboard__group_other">Alia</string>
|
||||
<string name="clipboard__item_description_email">Retpoŝtadreso</string>
|
||||
<string name="clipboard__item_description_url">URL</string>
|
||||
@@ -470,8 +478,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Viŝi lastan tondujan eron ankaŭ forigas la lastan historian enigaĵon</string>
|
||||
<string name="send_to_clipboard__unknown_error">Nekonata eraro okazis. Bonvolu ree provi!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Tiu aŭdvidaĵon tipo estas ne subtenata.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">La Androidon versio estas tro malnova por tiu funkcio.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Malsupra bildo kopiita al tondujo.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Programiloj</string>
|
||||
@@ -631,13 +637,13 @@
|
||||
<string name="enum__display_language_names_in__system_locale" comment="Enum value label">Sistemon lingvo</string>
|
||||
<string name="enum__display_language_names_in__native_locale" comment="Enum value label">Nomata lingvo</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_prepend" comment="Enum value label">Aŭtomate ordigi (komenco)</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_prepend__description" comment="Enum value description">Aŭtomate ordigi emoĝiojn laŭ uzo. Ĵusaj emoĝioj estos aldonitaj al komenco.</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_prepend__description" comment="Enum value description">Aŭtomate ordigi emoĝiojn laŭ uzo. Lastaj emoĝioj estos aldonitaj al komenco.</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_append" comment="Enum value label">Aŭtomate ordigi (fino)</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_append__description" comment="Enum value description">Aŭtomate ordigi emoĝiojn laŭ uzo. Ĵusaj emoĝioj estos aldonitaj al fino.</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_append__description" comment="Enum value description">Aŭtomate ordigi emoĝiojn laŭ uzo. Lastaj emoĝioj estos aldonitaj al fino.</string>
|
||||
<string name="enum__emoji_history_update_strategy__manual_sort_prepend" comment="Enum value label">Mane ordigi (komenco)</string>
|
||||
<string name="enum__emoji_history_update_strategy__manual_sort_prepend__description" comment="Enum value description">Ne aŭtomate ordigi emoĝiojn laŭ uzo. Ĵusaj emoĝioj estos aldonitaj al komenco.</string>
|
||||
<string name="enum__emoji_history_update_strategy__manual_sort_prepend__description" comment="Enum value description">Ne aŭtomate ordigi emoĝiojn laŭ uzo. Lastaj emoĝioj estos aldonitaj al komenco.</string>
|
||||
<string name="enum__emoji_history_update_strategy__manual_sort_append" comment="Enum value label">Mane ordigi (fino)</string>
|
||||
<string name="enum__emoji_history_update_strategy__manual_sort_append__description" comment="Enum value description">Ne aŭtomate ordigi emoĝiojn laŭ uzo. Ĵusaj emoĝioj estos aldonitaj al fino.</string>
|
||||
<string name="enum__emoji_history_update_strategy__manual_sort_append__description" comment="Enum value description">Ne aŭtomate ordigi emoĝiojn laŭ uzo. Lastaj emoĝioj estos aldonitaj al fino.</string>
|
||||
<string name="enum__emoji_skin_tone__default" comment="Enum value label">{emoji} Defaŭlta haŭtkoloro</string>
|
||||
<string name="enum__emoji_skin_tone__light_skin_tone" comment="Enum value label">{emoji} Hela haŭtkoloro</string>
|
||||
<string name="enum__emoji_skin_tone__medium_light_skin_tone" comment="Enum value label">{emoji} Heleta haŭtkoloro</string>
|
||||
@@ -685,13 +691,13 @@
|
||||
<string name="enum__shape_corner__bottom_end" comment="Enum value label">Sube dekstre</string>
|
||||
<string name="enum__shape_corner__bottom_start" comment="Enum value label">Supre maldekstre</string>
|
||||
<string name="enum__smartbar_layout__suggestions_only" comment="Enum value label">Nur sugestoj</string>
|
||||
<string name="enum__smartbar_layout__suggestions_only__description" comment="Enum value description">Montri nur la sugestojn-vicon, sen ia ajn agojn-vico/ŝaltilo aŭ fiksita ago</string>
|
||||
<string name="enum__smartbar_layout__suggestions_only__description" comment="Enum value description">Montri nur la sugestan vicon, sen ia ajn aga vico/ŝaltilo aŭ fiksita ago</string>
|
||||
<string name="enum__smartbar_layout__actions_only" comment="Enum value label">Nur agoj</string>
|
||||
<string name="enum__smartbar_layout__actions_only__description" comment="Enum value description">Montri nur la agojn-vicon, sen la sugestojn-vico aŭ eksplicite fiksita ago</string>
|
||||
<string name="enum__smartbar_layout__actions_only__description" comment="Enum value description">Montri nur la agan vicon, sen la sugesta vico aŭ eksplicite fiksita ago</string>
|
||||
<string name="enum__smartbar_layout__suggestions_action_shared" comment="Enum value label">Sugestoj & Agoj kune</string>
|
||||
<string name="enum__smartbar_layout__suggestions_action_shared__description" comment="Enum value description">Komuna ŝaltebla sugestojn kaj agojn vico, kun fiksita ago</string>
|
||||
<string name="enum__smartbar_layout__suggestions_actions_extended" comment="Enum value label">Sugestoj & Agoj plie</string>
|
||||
<string name="enum__smartbar_layout__suggestions_actions_extended__description" comment="Enum value description">Statika sugestojn-vico kaj aldona ŝaltebla agojn-vico, kun fiksita ago</string>
|
||||
<string name="enum__smartbar_layout__suggestions_actions_extended__description" comment="Enum value description">Statika sugesta vico kaj aldona ŝaltebla aga vico, kun fiksita ago</string>
|
||||
<string name="enum__snygg_level__basic" comment="Enum value label">Baza</string>
|
||||
<string name="enum__snygg_level__basic__description" comment="Enum value description">Nur koloraj propraĵoj estas montritaj, propraĵoj kaj reguloj estas tradukitaj.</string>
|
||||
<string name="enum__snygg_level__advanced" comment="Enum value label">Spertula</string>
|
||||
|
||||
@@ -370,7 +370,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Intensidad de vibración</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Esta función requiere de un motor de vibración, el cual al parecer no está presente en este dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Esta función requiere soporte de control de amplitud de hardware, el cual falta en su dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Esta función requiere soporte de control de amplitud, el cual solo está disponible desde Android 8.0 en adelante</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibración al presionar una tecla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibración al presionar prolongadamente</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibración al presionar repetidamente</string>
|
||||
@@ -555,6 +554,13 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} ahora está habilitado en su sistema y listo para ser personalizado.</string>
|
||||
<string name="setup__finish_up__description_p2">Si encuentra algún problema, errores, fallos o sólo desea hacer alguna sugerencia, ¡revise el repositorio del proyecto en el menú de \"Acerca de\"!</string>
|
||||
<string name="setup__finish_up__finish_btn">Empiece a personalizar</string>
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Teclado físico</string>
|
||||
<string name="physical_keyboard__system_settings__title">Configuración del teclado físico del sistema</string>
|
||||
<string name="physical_keyboard__system_settings__summary">Distribuciones, atajos de teclado y teclas modificadoras</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Solo disponible cuando el teclado está conectado</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__title">Mostrar teclado en pantalla</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__summary">Mostrar el teclado en pantalla mientras se utiliza el teclado físico</string>
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Respaldar & Restaurar</string>
|
||||
<string name="backup_and_restore__back_up__title">Respaldar datos</string>
|
||||
@@ -651,7 +657,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Al borrar el clip principal también se borra la última entrada del historial</string>
|
||||
<string name="send_to_clipboard__unknown_error">Ha ocurrido un error desconocido. Por favor, vuelve a intentarlo.</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Este tipo de medio no está soportado.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">La versión de android es demasiado antigua para esta función.</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Imagen copiada en el portapapeles.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Herramientas de desarrollo</string>
|
||||
|
||||
100
app/src/main/res/values-et-rEE/strings.xml
Normal file
100
app/src/main/res/values-et-rEE/strings.xml
Normal file
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||
<string name="app_name">FlorisBoard</string>
|
||||
<string name="key__phone_pause" comment="Label for the Pause key in the telephone keyboard layout">Paus</string>
|
||||
<string name="key__phone_wait" comment="Label for the Wait key in the telephone keyboard layout">Oota</string>
|
||||
<string name="key_popup__threedots_alt" comment="Content description for the three-dots icon in a key popup">Kolme punktiga ikoon. Kui nähtav, siis saab pikemal vajutusel kasutada rohkem tähti.</string>
|
||||
<!-- One-handed strings -->
|
||||
<string name="one_handed__close_btn_content_description" comment="Content description for the one-handed close button">Sule ühe käe režiim.</string>
|
||||
<string name="one_handed__move_start_btn_content_description" comment="Content description for the one-handed move to left button">Liiguta klaviatuur vasakule.</string>
|
||||
<string name="one_handed__move_end_btn_content_description" comment="Content description for the one-handed move to right button">Liiguta klaviatuur paremale.</string>
|
||||
<!-- Media strings -->
|
||||
<string name="settings__media__title">Emojid</string>
|
||||
<string name="media__tab__emojis" comment="Tab description for emojis in the media UI">Emojid</string>
|
||||
<string name="media__tab__emoticons" comment="Tab description for emoticons in the media UI">Emootikonid</string>
|
||||
<string name="media__tab__kaomoji" comment="Tab description for kaomoji in the media UI">Kaomoji</string>
|
||||
<string name="prefs__media__emoji_preferred_skin_tone">Eelistatud emoji nahavärv</string>
|
||||
<string name="prefs__media__emoji_preferred_hair_style">Eelistatud emoji soeng</string>
|
||||
<string name="prefs__media__emoji_history__title" comment="Preference group title">Emojide ajalugu</string>
|
||||
<string name="prefs__media__emoji_history_enabled" comment="Preference title">Luba emojide ajalugu</string>
|
||||
<string name="prefs__media__emoji_history_enabled__summary" comment="Preference summary">Säilita hijuti kasutatud emojid kiireks juurdepääsuks</string>
|
||||
<string name="prefs__media__emoji_history_pinned_update_strategy" comment="Preference title">Uuendusmeetod (Kinnitatud)</string>
|
||||
<string name="prefs__media__emoji_history_recent_update_strategy" comment="Preference title">Uuendusmeetod (Hiljutine)</string>
|
||||
<string name="prefs__media__emoji_history_max_size">Maksimum säilitatud emojide arv</string>
|
||||
<string name="prefs__media__emoji_history_pinned_reset">Lähtesta kinnitatud emojid</string>
|
||||
<string name="prefs__media__emoji_history_reset">Lähtesta hiljutised emojid</string>
|
||||
<string name="prefs__media__emoji_suggestion__title" comment="Preference group title">Emojide soovitused</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled" comment="Preference title">Luba emojide soovitused</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled__summary" comment="Preference summary">Kirjutamisel emojide soovitamine</string>
|
||||
<string name="prefs__media__emoji_suggestion_type" comment="Preference title">Käivitusmeetod</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history" comment="Preference title">UUenda emojide ajalugu</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history__summary" comment="Preference summary">Soovitatud emojide kasutamine lisab need emojidde ajalukku</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name" comment="Preference title">Näita emoji nime</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name__summary" comment="Preference summary">Soovitatud emoji kõrval nime kuvamine</string>
|
||||
<string name="prefs__media__emoji_suggestion_query_min_length" comment="Preference title">Miinimum päringu pikkus</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_max_count" comment="Preference title">Maksimum kandidaatide arv</string>
|
||||
<!-- Emoji strings -->
|
||||
<string name="emoji__category__smileys_emotion" comment="Emoji category name">Naerunäod & Emotsioonid</string>
|
||||
<string name="emoji__category__people_body" comment="Emoji category name">Inimesed & Keha</string>
|
||||
<string name="emoji__category__animals_nature" comment="Emoji category name">Loomad & Loodus</string>
|
||||
<string name="emoji__category__food_drink" comment="Emoji category name">Toit & Jook</string>
|
||||
<string name="emoji__category__travel_places" comment="Emoji category name">Reisimine & Kohad</string>
|
||||
<string name="emoji__category__activities" comment="Emoji category name">Tegevused</string>
|
||||
<string name="emoji__category__objects" comment="Emoji category name">Objektid</string>
|
||||
<string name="emoji__category__symbols" comment="Emoji category name">Sümbolid</string>
|
||||
<string name="emoji__category__flags" comment="Emoji category name">Lipud</string>
|
||||
<string name="emoji__history__empty_message" comment="Message if the emoji history is empty">Hiljuti kasutatud emojisid ei leitud. Kui hakkad emojisid sisestama, siis need ilmuvad automaatselt siia</string>
|
||||
<string name="emoji__history__phone_locked_message" comment="Message to show if phone is locked">Et emojide ajaloole ligi pääseda, palun avage oma seade lukust.</string>
|
||||
<string name="emoji__history__usage_tip" comment="Feature discoverability for actions of emoji history">Hea näpunäide: Vajuta pikalt emojide ajaloos nende peale, et neid kinnitada või eemaldada!</string>
|
||||
<string name="emoji__history__removal_success_message" comment="Toast message if user has used the delete action on an emoji in the emoji history">{emoji} on emojide ajaloost eemaldatud</string>
|
||||
<string name="emoji__history__pinned">Kinnitatud</string>
|
||||
<string name="emoji__history__recent">Hiljutine</string>
|
||||
<!-- Quick action strings -->
|
||||
<string name="quick_action__arrow_up" maxLength="12">Nool üles</string>
|
||||
<string name="quick_action__arrow_up__tooltip">Soorita nool üles</string>
|
||||
<string name="quick_action__arrow_down" maxLength="12">Nool alla</string>
|
||||
<string name="quick_action__arrow_down__tooltip">Soorita nool alla</string>
|
||||
<string name="quick_action__arrow_left__tooltip">Soorita nool vasakule</string>
|
||||
<string name="quick_action__arrow_right__tooltip">Soorita nool paremale</string>
|
||||
<string name="quick_action__clipboard_clear_primary_clip__tooltip">Soorita põhilõikelaua tühjendus</string>
|
||||
<string name="quick_action__clipboard_copy" maxLength="12">Kopeeri</string>
|
||||
<string name="quick_action__clipboard_copy__tooltip">Soorita lõikelaual kopeeri</string>
|
||||
<string name="quick_action__clipboard_cut" maxLength="12">Lõika</string>
|
||||
<string name="quick_action__clipboard_cut__tooltip">Soorita lõikelaual lõika</string>
|
||||
<string name="quick_action__clipboard_paste" maxLength="12">Kleebi</string>
|
||||
<string name="quick_action__clipboard_paste__tooltip">Soorita lõikelaual kleebi</string>
|
||||
<string name="quick_action__clipboard_select_all" maxLength="12">Vali kõik</string>
|
||||
<string name="quick_action__clipboard_select_all__tooltip">Soorita lõikelaual vali kõik</string>
|
||||
<string name="quick_action__ime_ui_mode_clipboard" maxLength="12">Lõikelaud</string>
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Ava lõikelaua ajalugu</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Emoji</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Ava emojide paneel</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Vaheta keelt</string>
|
||||
<string name="quick_action__language_switch__tooltip">Soorita keelevahetus</string>
|
||||
<string name="quick_action__settings" maxLength="12">Sätted</string>
|
||||
<string name="quick_action__settings__tooltip">Ava sätted</string>
|
||||
<string name="quick_action__undo" maxLength="12">Võta tagasi</string>
|
||||
<string name="quick_action__undo__tooltip">Võta viimane sisestus tagasi</string>
|
||||
<string name="quick_action__redo" maxLength="12">Tee uuesti</string>
|
||||
<string name="quick_action__redo__tooltip">Tee viimane sisestus uuesti</string>
|
||||
<!-- Incognito mode strings -->
|
||||
<!-- Settings UI strings -->
|
||||
<!-- Smartbar strings -->
|
||||
<!-- Typing strings -->
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
<!-- Devtools strings -->
|
||||
<!-- Extension strings -->
|
||||
<!-- Action strings -->
|
||||
<!-- Error strings (generic) -->
|
||||
<!-- General strings -->
|
||||
<!-- Screen orientation strings -->
|
||||
<!-- State strings -->
|
||||
<!-- Enum label and description strings -->
|
||||
<!-- Unit strings (symbols) -->
|
||||
<!-- Unit strings (written words) -->
|
||||
</resources>
|
||||
@@ -244,6 +244,7 @@
|
||||
<!-- Setup UI strings -->
|
||||
<string name="setup__title" comment="Title of Setup">خوش آمدید!</string>
|
||||
<string name="setup__footer__privacy_policy" comment="Privacy policy label for URL">سیاست حفظ حریم خصوصی</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__title" comment="Title of crash dialog">گزارش خطای فلوریس بورد</string>
|
||||
|
||||
@@ -140,7 +140,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_duration__label" comment="Preference title">Värinän kesto</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Värinän voimakkuus</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Tämä ominaisuus vaatii tuen laitteiston värinänvoimakkuudensäätöön, jota laitteellasi ei ole</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Tämä ominaisuus vaatii tuen värinänvoimakkuudensäätöön, joka on saatavilla Android 8.0 tai uudemmassa versiossa</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Painalluksen värinä</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Pitkän painalluksen värinä</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Toistetun painalluksen värinä</string>
|
||||
@@ -282,6 +281,7 @@
|
||||
<string name="setup__enable_ime__open_settings_btn">Avaa järjestelmän asetukset</string>
|
||||
<string name="setup__select_ime__title">Valitse {app_name}</string>
|
||||
<string name="setup__select_ime__switch_keyboard_btn">Vaihda näppäimistöä</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__title" comment="Title of crash dialog">FlorisBoardin virheraportti</string>
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Ouvrir l\'historique du presse-papier</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Émoji</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Ouvrir le panneau émoji</string>
|
||||
<string name="quick_action__language_switch__tooltip">Effectuer un changement de langue</string>
|
||||
<string name="quick_action__settings" maxLength="12">Paramètres</string>
|
||||
<string name="quick_action__settings__tooltip">Accède aux paramètres</string>
|
||||
<string name="quick_action__undo" maxLength="12">Annuler</string>
|
||||
@@ -176,6 +177,7 @@
|
||||
<string name="settings__theme_editor__add_code">Ajouter un code de touche</string>
|
||||
<string name="settings__theme_editor__edit_code">Modifier le code de touche</string>
|
||||
<string name="settings__theme_editor__no_codes_defined">Appliquer la règle à tous les éléments cibles.</string>
|
||||
<string name="settings__theme_editor__no_enum_value_to_add_anymore">Toutes les valeurs possibles ont été ajoutées.</string>
|
||||
<string name="settings__theme_editor__code_already_exists">Ce code de touche est déjà défini.</string>
|
||||
<string name="settings__theme_editor__code_invalid">Ce code de touche n\'est pas valide. Assurez-vous que le code de touche est dans la plage de {c_min} à {c_max} pour les caractères ou de {i_min} à {i_max} pour les touches spéciales internes.</string>
|
||||
<string name="settings__theme_editor__code_help_text">Sinon, les liens suivants vous aideront à trouver le code de touche correspondant :</string>
|
||||
@@ -192,6 +194,8 @@
|
||||
<string name="settings__theme_editor__property_value">Valeur de la propriété</string>
|
||||
<string name="settings__theme_editor__property_value_shape_apply_for_all_corners">Appliquer pour tous les coins</string>
|
||||
<string name="settings__theme_editor__property_value_color_dialog_title">Modifier la chaîne de couleur</string>
|
||||
<string name="settings__theme_editor__file_selector_dialog_title">Sélectionner un fichier</string>
|
||||
<string name="settings__theme_editor__file_selector_no_files_text">Aucun fichier n’a encore été ajouté à cette extension. Veuillez utiliser l’action « {action_title} » dans l’écran précédent pour importer des fichiers.</string>
|
||||
<string name="settings__theme_editor__component_meta_is_night_theme">Est le thème sombre</string>
|
||||
<string name="settings__theme_editor__component_meta_is_borderless">Est sans bordures</string>
|
||||
<string name="settings__theme_editor__component_meta_stylesheet_path">Chemin vers la feuille de style</string>
|
||||
@@ -205,10 +209,26 @@
|
||||
<string name="snygg__rule_element__window">Fenêtre</string>
|
||||
<string name="snygg__rule_element__key">Touche</string>
|
||||
<string name="snygg__rule_element__key_hint">Indice de touche</string>
|
||||
<string name="snygg__rule_element__key_popup_box">Info-bulle de touche</string>
|
||||
<string name="snygg__rule_element__key_popup_element">Aperçu de touche</string>
|
||||
<string name="snygg__rule_element__key_popup_extended_indicator">Indicateur étendu de l\'aperçu de touche</string>
|
||||
<string name="snygg__rule_element__clipboard_header">En-tête du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_header_button">Bouton d’en-tête du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_header_text">Texte d\'en-tête du presse-papier</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Sous-en-tête du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Contenu du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Ligne de filtre du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip">Puce de filtre de presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_icon">Icône de puce de filtre de presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_text">Texte de puce de filtre de presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Grille de disposition du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Élément du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Description de l’élément du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Pop-up d\'élément du presse-papiers</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Horodatage des éléments du presse-papier</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_title">Désactiver l\'historique</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_message">L\'historique du presse-papier va être désactivé</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_button">Confirmer</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_layout">Disposition en mode paysage</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_field">Champ d\'entrée en mode paysage</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_action">Action d\'entrée en mode paysage</string>
|
||||
@@ -300,7 +320,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Intensité de la vibration</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Cette fonctionnalité nécessite un vibreur matériel, qui semble manquer dans cet appareil</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Cette fonction nécessite la prise en charge du contrôle d\'amplitude du matériel, qui n\'est pas disponible sur votre appareil</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Cette fonction nécessite la prise en charge du contrôle d\'amplitude, qui n\'est disponible que sur Android 8.0 ou plus récent</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibration de touche</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibration lors d\'un appuie long</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibration de la touche d\'action répétée</string>
|
||||
@@ -315,7 +334,7 @@
|
||||
<string name="pref__keyboard__number_row__label" comment="Preference title">Rangée de chiffres</string>
|
||||
<string name="pref__keyboard__number_row__summary" comment="Preference summary">Afficher une rangée de chiffres au dessus des caractères</string>
|
||||
<string name="pref__keyboard__hinted_number_row_mode__label" comment="Preference title">Rangée de chiffres suggérée</string>
|
||||
<string name="pref__keyboard__hinted_symbols_mode__label" comment="Preference title">Symboles suggérés</string>
|
||||
<string name="pref__keyboard__hinted_symbols_mode__label" comment="Preference title">Symbole suggéré</string>
|
||||
<string name="pref__keyboard__utility_key_enabled__label" comment="Preference title">Afficher la touche utilitaire</string>
|
||||
<string name="pref__keyboard__utility_key_enabled__summary" comment="Preference summary">Affiche une touche utilitaire configurable à côté de la barre d\'espace</string>
|
||||
<string name="pref__keyboard__utility_key_action__label" comment="Preference title">Action de la touche utilitaire</string>
|
||||
@@ -487,6 +506,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} est maintenant activé dans le système et prêt à être personnalisé par vous.</string>
|
||||
<string name="setup__finish_up__description_p2">Si vous rencontrez des problèmes, des bogues, des pannes ou si vous voulez simplement faire une suggestion, consultez le dépôt du projet à partir de l\'écran \" à propos \" !</string>
|
||||
<string name="setup__finish_up__finish_btn">Commencer à personnaliser</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Sauvegarder & Restaurer</string>
|
||||
<string name="backup_and_restore__back_up__title">Sauvegarder les données</string>
|
||||
@@ -582,8 +602,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Effacer l\'attache principale supprime aussi le dernier élément de l\'historique</string>
|
||||
<string name="send_to_clipboard__unknown_error">Une erreur inconnue s\'est produite. Merci de réessayer !</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Ce type de média n\'est pas supporté.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">La version d\'Android est trop ancienne pour cette fonctionnalité.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">L\'image ci-dessous est copiée dans le presse-papiers.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Outils de développement</string>
|
||||
@@ -771,9 +789,9 @@
|
||||
<string name="enum__display_kbd_after_dialogs__remember" comment="Enum value label">Se souvenir du dernier état</string>
|
||||
<string name="enum__display_kbd_after_dialogs__remember__description" comment="Enum value description">N\'affiche le clavier qu\'après la fermeture d\'une boîte de dialogue d\'éditeur s\'il était auparavant visible</string>
|
||||
<string name="enum__display_language_names_in__system_locale" comment="Enum value label">Langage du système</string>
|
||||
<string name="enum__display_language_names_in__system_locale__description" comment="Enum value description">Les noms de langue dans l\'application et l\'interface utilisateur du clavier sont affichés dans les paramètres régionaux définis pour l\'ensemble de l\'appareil</string>
|
||||
<string name="enum__display_language_names_in__system_locale__description" comment="Enum value description">Les noms de langues dans l\'app et l\'interface clavier sont affichés dans la langue définie pour l\'appareil</string>
|
||||
<string name="enum__display_language_names_in__native_locale" comment="Enum value label">Langage natif</string>
|
||||
<string name="enum__display_language_names_in__native_locale__description" comment="Enum value description">Les noms de langue dans l\'application et l\'interface utilisateur du clavier sont affichés dans les paramètres régionaux référencés par eux-mêmes</string>
|
||||
<string name="enum__display_language_names_in__native_locale__description" comment="Enum value description">Les noms de langue dans l\'app et l\'interface clavier sont affichés dans chaque langue</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_prepend" comment="Enum value label">Tri automatique (ajout au début)</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_prepend__description" comment="Enum value description">Réordonner automatiquement les émojis en fonction de votre usage. Les nouveaux émojis sont ajoutés au début.</string>
|
||||
<string name="enum__emoji_history_update_strategy__auto_sort_append" comment="Enum value label">Tri automatique (ajout à la fin)</string>
|
||||
@@ -807,12 +825,12 @@
|
||||
<string name="enum__haptic_vibration_mode__use_vibrator_directly__description" comment="Enum value description">{app_name} interagit directement avec le vibreur matériel par défaut. Cela contrôle mieux la durée et la force d\'une vibration, mais la vibration peut ne pas être aussi douce et optimisée qu\'avec l\'interface de retour haptique</string>
|
||||
<string name="enum__haptic_vibration_mode__use_haptic_feedback_interface" comment="Enum value label">Utiliser l\'interface de retour haptique</string>
|
||||
<string name="enum__haptic_vibration_mode__use_haptic_feedback_interface__description" comment="Enum value description">{app_name} utilise l\'interface de retour haptique pour déclencher une séquence de vibrations prédéfinie pour les pressions sur les touches. Cela peut fonctionner exceptionnellement bien sur certains appareils, mais échouer complètement ou avoir des performances très faibles sur d\'autres</string>
|
||||
<string name="enum__key_hint_mode__accent_priority" comment="Enum value label">Activé priorité à l\'accent</string>
|
||||
<string name="enum__key_hint_mode__accent_priority__description" comment="Enum value description">Le caractère initial sélectionné après une pression longue est toujours l\'accent primaire ou le symbole de l\'indice si aucun accent primaire n\'est disponible.</string>
|
||||
<string name="enum__key_hint_mode__hint_priority" comment="Enum value label">Activé priorité à l\'accent</string>
|
||||
<string name="enum__key_hint_mode__hint_priority__description" comment="Enum value description">Le caractère initial sélectionné après une pression longue est toujours l\'accent primaire ou le symbole de l\'indice si aucun accent primaire n\'est disponible.</string>
|
||||
<string name="enum__key_hint_mode__accent_priority" comment="Enum value label">Priorité à l\'accent</string>
|
||||
<string name="enum__key_hint_mode__accent_priority__description" comment="Enum value description">Le caractère initial sélectionné après une pression longue est toujours l\'accent le plus courant, ou le symbole de l\'indice si aucun accent n\'est disponible</string>
|
||||
<string name="enum__key_hint_mode__hint_priority" comment="Enum value label">Priorité à l\'indice</string>
|
||||
<string name="enum__key_hint_mode__hint_priority__description" comment="Enum value description">Le caractère initial sélectionné après un appui long est toujours le symbole de l\'indice, ou l’accent le plus courant si aucun symbole d’indice n’est disponible</string>
|
||||
<string name="enum__key_hint_mode__smart_priority" comment="Enum value label">Priorité intelligente</string>
|
||||
<string name="enum__key_hint_mode__smart_priority__description" comment="Enum value description">Le caractère initial sélectionné après une pression longue est décidé de manière dynamique pour être soit l\'accent principal, soit le symbole de l\'indice, en fonction de la langue et de la disposition actuelles.</string>
|
||||
<string name="enum__key_hint_mode__smart_priority__description" comment="Enum value description">Le caractère initial sélectionné après une pression longue est décidé de manière dynamique pour être soit l\'accent le plus courant, soit le symbole de l\'indice, en fonction de la langue et de la disposition actuelle</string>
|
||||
<string name="enum__incognito_display_mode__replace_shared_actions_toggle" comment="Enum value label">Remplace l\'icône de bascule des actions partagées par l\'indicateur incognito</string>
|
||||
<string name="enum__incognito_display_mode__display_behind_keyboard" comment="Enum value label">Affiche l\'indicateur incognito derrière le clavier</string>
|
||||
<string name="enum__incognito_mode__force_off" comment="Enum value label">Forcer la désactivation</string>
|
||||
@@ -856,7 +874,7 @@
|
||||
<string name="enum__space_bar_mode__current_language" comment="Enum value label">Langue actuelle</string>
|
||||
<string name="enum__space_bar_mode__space_bar_key" comment="Enum value label">␣</string>
|
||||
<string name="enum__spelling_language_mode__use_system_languages" comment="Enum value label">Utiliser la langue du système</string>
|
||||
<string name="enum__spelling_language_mode__use_keyboard_subtypes" comment="Enum value label">Utiliser les sous-types du clavier</string>
|
||||
<string name="enum__spelling_language_mode__use_keyboard_subtypes" comment="Enum value label">Utiliser la langue du clavier</string>
|
||||
<string name="enum__swipe_action__no_action" comment="Enum value label">Aucune action</string>
|
||||
<string name="enum__swipe_action__cycle_to_previous_keyboard_mode" comment="Enum value label">Passer au mode de clavier précédent</string>
|
||||
<string name="enum__swipe_action__cycle_to_next_keyboard_mode" comment="Enum value label">Passer au mode de clavier suivant</string>
|
||||
|
||||
@@ -178,7 +178,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_duration__label" comment="Preference title">Trajanje vibracije</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Jačina vibracije</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Ova značajka zahtijeva mogućnost upravljanja amplitudom hardvera, koja nedostaje na ovom uređaju</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Ova značajka zahtijeva mogućnost upravljanja amplitudom hardvera, koja je dostuna samo na uređajima inačice Androida 8.0 ili novije</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibriraj na tipku</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibriraj na produljen pritisak tipke</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibriraj na ponovljenu radnju tipke</string>
|
||||
@@ -218,6 +217,7 @@
|
||||
<string name="pref__spelling__use_contacts__summary" comment="Summary of Use contact list pref">Pregledajte imena iz vašeg popisa kontakata</string>
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
|
||||
@@ -220,8 +220,15 @@
|
||||
<string name="snygg__rule_element__clipboard_header_text">Vágólapfejlécszöveg</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Vágólap alfejléc</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Vágólap tartalma</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Vágólap-szűrősor</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip">Vágólapszűrő chip</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_icon">Vágólapszűrő chip ikonja</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_text">Vágólapszűrő chip szövege</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Vágólaprács</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Vágólapelem</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Vágólapi elem leírása</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Felugró vágólapelem</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Vágólapi elem időbélyege</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Vágólapi elemműveletek</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Vágólapi elemművelet</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_icon">Vágólapi elemművelet ikonja</string>
|
||||
@@ -240,7 +247,7 @@
|
||||
<string name="snygg__rule_element__extracted_landscape_input_action">Fekvő bemeneti művelet</string>
|
||||
<string name="snygg__rule_element__glide_trail">Csúsztatási nyomvonal</string>
|
||||
<string name="snygg__rule_element__incognito_mode_indicator">Inkognitó mód jelzője</string>
|
||||
<string name="snygg__rule_element__inline_autofill_chip">Beágyazott automatikus kitöltés chip</string>
|
||||
<string name="snygg__rule_element__inline_autofill_chip">Beágyazott automatikus kitöltési chip</string>
|
||||
<string name="snygg__rule_element__media">Média</string>
|
||||
<string name="snygg__rule_element__media_emoji_subheader">Médiaemodzsi-alfejléc</string>
|
||||
<string name="snygg__rule_element__media_emoji_key">Médiaemodzsi billentyű</string>
|
||||
@@ -370,7 +377,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Rezgés erőssége</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Ez a funkció rezgőmotort igényel, amely úgy tűnik nem található a készülékben</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Ez a funkció rezgéserősség-vezérlést igényel, amely úgy tűnik nem található a készülékben</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Ez a funkció rezgéserősség-vezérlést igényel, amely csak Android 8.0-tól elérhető</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Gombnyomás rezgése</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Hosszú gombnyomás rezgése</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Ismételt billentyűművelet rezgése</string>
|
||||
@@ -556,6 +562,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} most már engedélyezve van a rendszerben, és csak arra vár, hogy személyre szabja.</string>
|
||||
<string name="setup__finish_up__description_p2">Ha bármilyen hibával vagy összeomlással találkozik, vagy csak javaslatot szeretne tenni, nézze meg a projekt kódtárját a névjegy képernyőn!</string>
|
||||
<string name="setup__finish_up__finish_btn">Személyre szabás megkezdése</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Mentés és helyreállítás</string>
|
||||
<string name="backup_and_restore__back_up__title">Adatok biztonsági mentése</string>
|
||||
@@ -626,6 +633,7 @@
|
||||
<string name="clipboard__cleared_primary_clip">Elsődleges vágólap törölve</string>
|
||||
<string name="clipboard__cleared_history">Előzmények törölve</string>
|
||||
<string name="clipboard__cleared_full_history">Az összes előzmény törölve</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Biztosan törölni szeretné a vágólap előzményeit? Ez az összes elemet törli, kivéve a kitűzötteket, függetlenül az aktív szűrőktől.</string>
|
||||
<string name="settings__clipboard__title">Vágólap</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Belső vágólap használata</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Belső vágólap használata a rendszer vágólapja helyett</string>
|
||||
@@ -652,8 +660,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Az elsődleges vágólap ürítése emellett törli az utolsó elemet</string>
|
||||
<string name="send_to_clipboard__unknown_error">Ismeretlen hiba történt. Kérjük próbálja újra!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Ez a médiatípus nem támogatott.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Az android verziója túl régi ehhez a funkcióhoz.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Az alábbi kép a vágólapra lett másolva.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Fejlesztői eszközök</string>
|
||||
|
||||
@@ -15,22 +15,22 @@
|
||||
<string name="media__tab__kaomoji" comment="Tab description for kaomoji in the media UI">Kaomoji</string>
|
||||
<string name="prefs__media__emoji_preferred_skin_tone">Warna kulit emoji yang disukai</string>
|
||||
<string name="prefs__media__emoji_preferred_hair_style">Gaya rambut emoji yang disukai</string>
|
||||
<string name="prefs__media__emoji_history__title" comment="Preference group title">Histori emoji</string>
|
||||
<string name="prefs__media__emoji_history__title" comment="Preference group title">Riwayat emoji</string>
|
||||
<string name="prefs__media__emoji_history_enabled" comment="Preference title">Aktifkan riwayat emoji</string>
|
||||
<string name="prefs__media__emoji_history_enabled__summary" comment="Preference summary">Pertahankan emoji yang baru-san digunakan untuk akses cepat</string>
|
||||
<string name="prefs__media__emoji_history_enabled__summary" comment="Preference summary">Simpan emoji yang baru saja digunakan agar mudah diakses dengan cepat</string>
|
||||
<string name="prefs__media__emoji_history_pinned_update_strategy" comment="Preference title">Perbarui strategi (disematkan)</string>
|
||||
<string name="prefs__media__emoji_history_recent_update_strategy" comment="Preference title">Perbarui strategi (terbaru)</string>
|
||||
<string name="prefs__media__emoji_history_max_size">Maksimal item untuk disimpan</string>
|
||||
<string name="prefs__media__emoji_history_pinned_reset">Reset emoji yang disematkan</string>
|
||||
<string name="prefs__media__emoji_history_reset">Reset emoji terbaru</string>
|
||||
<string name="prefs__media__emoji_history_recent_update_strategy" comment="Preference title">Strategi pembaruan (terbaru)</string>
|
||||
<string name="prefs__media__emoji_history_max_size">Jumlah maksimum item yang dapat disimpan</string>
|
||||
<string name="prefs__media__emoji_history_pinned_reset">Atur ulang emoji yang disematkan</string>
|
||||
<string name="prefs__media__emoji_history_reset">Atur ulang emoji terbaru</string>
|
||||
<string name="prefs__media__emoji_suggestion__title" comment="Preference group title">Saran emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled" comment="Preference title">Aktifkan saran emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled__summary" comment="Preference summary">Ngasih saran emoji pas ngetik</string>
|
||||
<string name="prefs__media__emoji_suggestion_enabled__summary" comment="Preference summary">Memberikan saran emoji saat Anda mengetik</string>
|
||||
<string name="prefs__media__emoji_suggestion_type" comment="Preference title">Jenis pemicu</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history" comment="Preference title">Perbarui histori emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history" comment="Preference title">Perbarui riwayat emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_update_history__summary" comment="Preference summary">Menerima emoji yang disarankan akan menambahkannya ke riwayat emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name" comment="Preference title">Tampilkan nama emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name__summary" comment="Preference summary">Saran emoji menampilkan nama emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_show_name__summary" comment="Preference summary">Saran emoji menampilkan nama emoji tersebut di samping emoji</string>
|
||||
<string name="prefs__media__emoji_suggestion_query_min_length" comment="Preference title">Panjang kueri minimum</string>
|
||||
<string name="prefs__media__emoji_suggestion_candidate_max_count" comment="Preference title">Jumlah kandidat maksimum</string>
|
||||
<!-- Emoji strings -->
|
||||
@@ -48,7 +48,7 @@
|
||||
<string name="emoji__history__usage_tip" comment="Feature discoverability for actions of emoji history">Pro tip: Tekan lama emoji dalam riwayat emoji untuk menyematkan atau menghapusnya!</string>
|
||||
<string name="emoji__history__removal_success_message" comment="Toast message if user has used the delete action on an emoji in the emoji history">Menghapus {emoji} dari riwayat emoji</string>
|
||||
<string name="emoji__history__pinned">Disematkan</string>
|
||||
<string name="emoji__history__recent">Terkini</string>
|
||||
<string name="emoji__history__recent">Terbaru</string>
|
||||
<!-- Quick action strings -->
|
||||
<string name="quick_action__arrow_up" maxLength="12">Panah atas</string>
|
||||
<string name="quick_action__arrow_up__tooltip">Lakukan panah atas</string>
|
||||
@@ -59,13 +59,13 @@
|
||||
<string name="quick_action__arrow_right" maxLength="12">Panah kanan</string>
|
||||
<string name="quick_action__arrow_right__tooltip">Lakukan panah kanan</string>
|
||||
<string name="quick_action__clipboard_clear_primary_clip" maxLength="12">Hapus klip</string>
|
||||
<string name="quick_action__clipboard_clear_primary_clip__tooltip">Lakukan penghapusan klip papan klip utama</string>
|
||||
<string name="quick_action__clipboard_clear_primary_clip__tooltip">Lakukan penghapusan klip utama pada papan klip</string>
|
||||
<string name="quick_action__clipboard_copy" maxLength="12">Salin</string>
|
||||
<string name="quick_action__clipboard_copy__tooltip">Lakukan salinan papan klip</string>
|
||||
<string name="quick_action__clipboard_cut" maxLength="12">Potong</string>
|
||||
<string name="quick_action__clipboard_cut__tooltip">Lakukan potongan papan klip</string>
|
||||
<string name="quick_action__clipboard_paste" maxLength="12">Tempel</string>
|
||||
<string name="quick_action__clipboard_paste__tooltip">Lakukan tempelan papan klip</string>
|
||||
<string name="quick_action__clipboard_paste" maxLength="12">Tempelkan</string>
|
||||
<string name="quick_action__clipboard_paste__tooltip">Lakukan penempelan papan klip</string>
|
||||
<string name="quick_action__clipboard_select_all" maxLength="12">Pilih semua</string>
|
||||
<string name="quick_action__clipboard_select_all__tooltip">Lakukan pemilihan semua papan klip</string>
|
||||
<string name="quick_action__ime_ui_mode_clipboard" maxLength="12">Papan klip</string>
|
||||
@@ -74,18 +74,18 @@
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Buka panel emoji</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Ganti bahasa</string>
|
||||
<string name="quick_action__language_switch__tooltip">Ubah bahasa</string>
|
||||
<string name="quick_action__settings" maxLength="12">Setelan</string>
|
||||
<string name="quick_action__settings__tooltip">Buka setelan</string>
|
||||
<string name="quick_action__settings" maxLength="12">Pengaturan</string>
|
||||
<string name="quick_action__settings__tooltip">Buka pengaturan</string>
|
||||
<string name="quick_action__undo" maxLength="12">Urungkan</string>
|
||||
<string name="quick_action__undo__tooltip">Urungkan masukan terakhir</string>
|
||||
<string name="quick_action__redo" maxLength="12">Ulangi</string>
|
||||
<string name="quick_action__redo__tooltip">Ulangi masukan terakhir</string>
|
||||
<string name="quick_action__toggle_actions_overflow" maxLength="12">Aksi lain</string>
|
||||
<string name="quick_action__toggle_actions_overflow" maxLength="12">Tndkn. lain</string>
|
||||
<string name="quick_action__toggle_actions_overflow__tooltip">Tampilkan atau sembunyikan tindakan tambahan</string>
|
||||
<string name="quick_action__toggle_incognito_mode" maxLength="12">Samaran</string>
|
||||
<string name="quick_action__toggle_incognito_mode__tooltip">Alih mode samaran</string>
|
||||
<string name="quick_action__toggle_autocorrect" maxLength="12">Autocorrect</string>
|
||||
<string name="quick_action__toggle_autocorrect__tooltip">Alih koreksi otomatis</string>
|
||||
<string name="quick_action__toggle_incognito_mode" maxLength="12">Penyamaran</string>
|
||||
<string name="quick_action__toggle_incognito_mode__tooltip">Alihkan mode penyamaran</string>
|
||||
<string name="quick_action__toggle_autocorrect" maxLength="12">Koreksi oto.</string>
|
||||
<string name="quick_action__toggle_autocorrect__tooltip">Alihkan koreksi otomatis</string>
|
||||
<string name="quick_action__voice_input" maxLength="12">Input suara</string>
|
||||
<string name="quick_action__voice_input__tooltip" comment="IME stands for Input Method Editor and is indirectly equivalent to 'keyboard'.">Buka penyedia masukan suara</string>
|
||||
<string name="quick_action__one_handed_mode" maxLength="12">Satu tangan</string>
|
||||
@@ -220,16 +220,45 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="snygg__rule_element__clipboard_header_text">Teks header papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Subjudul papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Konten papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Baris filter papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip">Chip filter papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_icon">Ikon chip filter papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_text">Teks chip filter papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Kisi papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Deskripsi item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Munculan item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Stempel waktu item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Aksi item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Aksi item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_icon">Ikon tindakan item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_text">Teks tindakan item papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_clear_all_dialog">Dialog hapus semua papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_clear_all_dialog_message">Pesan dialog hapus semua papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_clear_all_dialog_buttons">Tombol-tombol pada dialog hapus semua papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_clear_all_dialog_button">Tombol dialog hapus semua papan klip</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_title">Judul papan klip dinonaktifkan</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_message">Pesan papan klip dinonaktifkan</string>
|
||||
<string name="snygg__rule_element__clipboard_history_disabled_button">Tombol papan klip dinonaktifkan</string>
|
||||
<string name="snygg__rule_element__clipboard_history_locked_title">Judul papan klip terkunci</string>
|
||||
<string name="snygg__rule_element__clipboard_history_locked_message">Pesan papan klip terkunci</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_layout">Tata letak masukan lanskap</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_field">Kolom masukan lanskap</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_action">Tindakan masukan lanskap</string>
|
||||
<string name="snygg__rule_element__glide_trail">Jejak geser</string>
|
||||
<string name="snygg__rule_element__incognito_mode_indicator">Indikator mode samaran</string>
|
||||
<string name="snygg__rule_element__inline_autofill_chip">Chip pengisian otomatis sebaris</string>
|
||||
<string name="snygg__rule_element__media">Media</string>
|
||||
<string name="snygg__rule_element__media_emoji_subheader">Subjudul media emoji</string>
|
||||
<string name="snygg__rule_element__media_emoji_key">Tombol media emoji</string>
|
||||
<string name="snygg__rule_element__media_emoji_key_popup_box">Kotak pop-up tombol media emoji</string>
|
||||
<string name="snygg__rule_element__media_emoji_key_popup_element">Elemen popup tombol media emoji</string>
|
||||
<string name="snygg__rule_element__media_emoji_key_popup_extended_indicator">Indikator pop-up tombol media emoji yang diperluas</string>
|
||||
<string name="snygg__rule_element__media_emoji_tab">Tab media emoji</string>
|
||||
<string name="snygg__rule_element__media_bottom_row">Baris bawah media</string>
|
||||
<string name="snygg__rule_element__media_bottom_row_button">Tombol baris bawah media</string>
|
||||
<string name="snygg__rule_element__one_handed_panel">Panel satu-tangan</string>
|
||||
<string name="snygg__rule_element__one_handed_panel_button">Tombol panel satu tangan</string>
|
||||
<string name="snygg__rule_element__smartbar">Smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_shared_actions_row">Barisan tindakan terbagi smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_shared_actions_toggle">Alih tindakan terbagi smartbar</string>
|
||||
@@ -237,20 +266,38 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="snygg__rule_element__smartbar_extended_actions_toggle">Alih tindakan smartbar yang diperpanjang</string>
|
||||
<string name="snygg__rule_element__smartbar_action_key">Tombol tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_action_tile">Ubin tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_action_tile_icon">Ikon ubin tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_action_tile_text">Teks ubin tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_overflow">Luapan tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_overflow_customize_button">Tombol pengubahan luapan tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_editor">Editor tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_editor_header">Tajuk editor tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_editor_header_button">Tombol pada judul editor tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_editor_subheader">Editor editor tindakan subtajuk</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_editor_tile_grid">Kisi ubin editor tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_actions_editor_tile">Kisi editor tindakan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidates_row">Calon barisan smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_word">Calon kata smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_word_text">Teks kata kandidat Smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_word_secondary_text">Teks sekunder kata kandidat Smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_clip">Calon klip smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_clip_icon">Ikon kandidat klip smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_clip_text">Teks kandidat klip smartbar</string>
|
||||
<string name="snygg__rule_element__smartbar_candidate_spacer">Calon pembelah smartbar</string>
|
||||
<string name="snygg__rule_element__subtype_panel">Panel subtipe</string>
|
||||
<string name="snygg__rule_element__subtype_panel_header">Judul panel subtipe</string>
|
||||
<string name="snygg__rule_element__subtype_panel_list">Daftar panel subtipe</string>
|
||||
<string name="snygg__rule_element__subtype_panel_list_item">Item daftar panel subtipe</string>
|
||||
<string name="snygg__rule_element__subtype_panel_list_item_icon_leading">Ikon item daftar panel subtipe (di bagian atas)</string>
|
||||
<string name="snygg__rule_element__subtype_panel_list_item_text">Teks item daftar panel subtipe</string>
|
||||
<string name="snygg__rule_selector__pressed">Ditekan</string>
|
||||
<string name="snygg__rule_selector__focus">Difokus</string>
|
||||
<string name="snygg__rule_selector__hover">Melayang</string>
|
||||
<string name="snygg__rule_selector__disabled">Dinonaktifkan</string>
|
||||
<string name="snygg__property_name__background">Latar belakang</string>
|
||||
<string name="snygg__property_name__foreground">Latar depan</string>
|
||||
<string name="snygg__property_name__background_image">Gambar latar belakang</string>
|
||||
<string name="snygg__property_name__content_scale">Skala konten</string>
|
||||
<string name="snygg__property_name__border_color">Warna tepian</string>
|
||||
<string name="snygg__property_name__border_style">Gaya tepian</string>
|
||||
<string name="snygg__property_name__border_width">Lebar tepian</string>
|
||||
@@ -258,8 +305,19 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="snygg__property_name__font_size">Ukuran font</string>
|
||||
<string name="snygg__property_name__font_style">Gaya font</string>
|
||||
<string name="snygg__property_name__font_weight">Berat font</string>
|
||||
<string name="snygg__property_name__letter_spacing">Jarak huruf</string>
|
||||
<string name="snygg__property_name__line_height">Tinggi baris</string>
|
||||
<string name="snygg__property_name__margin">Margin</string>
|
||||
<string name="snygg__property_name__padding">Jarak</string>
|
||||
<string name="snygg__property_name__shadow_color">Warna bayangan</string>
|
||||
<string name="snygg__property_name__shadow_elevation">Ketinggian bayangan</string>
|
||||
<string name="snygg__property_name__shape">Bentuk</string>
|
||||
<string name="snygg__property_name__clip">Klip</string>
|
||||
<string name="snygg__property_name__src">Sumber</string>
|
||||
<string name="snygg__property_name__text_align">Perataan teks</string>
|
||||
<string name="snygg__property_name__text_decoration_line">Baris dekorasi teks</string>
|
||||
<string name="snygg__property_name__text_max_lines">Baris maksimal teks</string>
|
||||
<string name="snygg__property_name__text_overflow">Teks meluap</string>
|
||||
<string name="snygg__property_name__var_primary">Warna utama</string>
|
||||
<string name="snygg__property_name__var_primary_variant">Warna utama (varian)</string>
|
||||
<string name="snygg__property_name__var_secondary">Warna sekunder</string>
|
||||
@@ -276,9 +334,16 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="snygg__property_name__var_shape_variant">Bentuk umum (varian)</string>
|
||||
<string name="snygg__property_value__explicit_inherit">Warisan</string>
|
||||
<string name="snygg__property_value__defined_var">Referensi var</string>
|
||||
<string name="snygg__property_value__yes">Ya</string>
|
||||
<string name="snygg__property_value__no">Tidak</string>
|
||||
<string name="snygg__property_value__solid_color">Warna padat</string>
|
||||
<string name="snygg__property_value__material_you_light_color">Warna Material You (Terang)</string>
|
||||
<string name="snygg__property_value__material_you_dark_color">Warna Material You (Gelap)</string>
|
||||
<string name="snygg__property_value__font_family_generic">Keluarga font (generik)</string>
|
||||
<string name="snygg__property_value__font_family_custom">Keluarga font (kustom)</string>
|
||||
<string name="snygg__property_value__font_style">Gaya font</string>
|
||||
<string name="snygg__property_value__font_weight">Berat font</string>
|
||||
<string name="snygg__property_value__padding">Jarak atau Margin</string>
|
||||
<string name="snygg__property_value__rectangle_shape">Bentuk persegi panjang</string>
|
||||
<string name="snygg__property_value__circle_shape">Bentuk lingkaran</string>
|
||||
<string name="snygg__property_value__cut_corner_shape_dp">Potong bentuk sudut (dp)</string>
|
||||
@@ -288,6 +353,12 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="snygg__property_value__dp_size">Ukuran (dp)</string>
|
||||
<string name="snygg__property_value__sp_size">Ukuran (sp)</string>
|
||||
<string name="snygg__property_value__percentage_size">Ukuran (%)</string>
|
||||
<string name="snygg__property_value__content_scale">Skala konten</string>
|
||||
<string name="snygg__property_value__text_align">Perataan teks</string>
|
||||
<string name="snygg__property_value__text_decoration_line">Baris dekorasi teks</string>
|
||||
<string name="snygg__property_value__text_max_lines">Baris maksimal teks</string>
|
||||
<string name="snygg__property_value__text_overflow">Teks meluap</string>
|
||||
<string name="snygg__property_value__uri">Referensi URI</string>
|
||||
<string name="settings__input_feedback__title" comment="Title of Input Feedback screen">Suara & Getaran</string>
|
||||
<string name="pref__input_feedback__group_audio__label" comment="Preference group title">Feedback audio / Suara</string>
|
||||
<string name="pref__input_feedback__audio_enabled__label" comment="Preference title">Aktifkan feedback audio</string>
|
||||
@@ -306,7 +377,6 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Kekuatan getaran</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Fitur ini membutuhkan penggetar perangkat keras, yang sepertinya tidak ada pada perangkat ini</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Fitur ini memerlukan dukungan kontrol amplitudo perangkat keras, yang tidak ada di perangkat Anda</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Fitur ini memerlukan dukungan kontrol amplitudo, yang hanya tersedia di Android 8.0 ke atas</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Getaran tekanan tombol</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Getaran tekanan lama tombol</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Getaran aksi berulang tombol</string>
|
||||
@@ -363,6 +433,7 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="pref__suggestion__display_mode__label" comment="Preference title">Mode penampilan saran</string>
|
||||
<string name="pref__suggestion__block_possibly_offensive__label" comment="Preference title">Blokir kata-kata yang mungkin menyinggungkan</string>
|
||||
<string name="pref__suggestion__api30_inline_suggestions_enabled__summary" comment="Preference summary">Tampilkan saran dalam baris yang disediakan oleh layanan pengisian otomatis</string>
|
||||
<string name="pref__suggestion__incognito_mode__label" comment="Label of Incognito mode preference in Typing">Mode penyamaran</string>
|
||||
<string name="pref__correction__title" comment="Preference group title">Koreksi</string>
|
||||
<string name="pref__correction__auto_capitalization__label" comment="Preference title">Kapitalisasi otomatis</string>
|
||||
<string name="pref__correction__auto_capitalization__summary" comment="Preference summary">Kapitalisasi kata berdasarkan konteks input saat ini</string>
|
||||
@@ -442,7 +513,11 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="pref__other__settings_theme__light" comment="Possible value of Settings theme preference in Other">Terang</string>
|
||||
<string name="pref__other__settings_theme__dark" comment="Possible value of Settings theme preference in Other">Gelap</string>
|
||||
<string name="pref__other__settings_theme__amoled_dark" comment="Possible value of Settings theme preference in Other">AMOLED Gelap</string>
|
||||
<string name="pref__other__settings_accent_color__label" comment="Label of accent color preference in Other"> Pengaturan warna aksen
|
||||
</string>
|
||||
<string name="pref__other__settings_language__label" comment="Label of Settings language preference in Other">Pengaturan Bahasa</string>
|
||||
<string name="pref__other__show_app_icon__label" comment="Label of Show app icon preference in Other">Tampilkan ikon aplikasi pada peluncur</string>
|
||||
<string name="pref__other__show_app_icon__summary_atleast_q" comment="Summary of Show app icon preference in Other for Android 10+">Selalu diaktifkan di Android 10+ karena pembatasan sistem</string>
|
||||
<!-- About UI strings -->
|
||||
<string name="about__title" comment="Title of About activity">Tentang</string>
|
||||
<string name="about__app_icon_content_description" comment="Content description of app icon in About">Ikon aplikasi FlorisBoard</string>
|
||||
@@ -486,6 +561,7 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="setup__finish_up__description_p1">{app_name} sekarang sudah diaktifkan di sistem ini dan siap untuk disesuaikan oleh Anda.</string>
|
||||
<string name="setup__finish_up__description_p2">Jika Anda mengalami masalah, bug, crash, atau hanya ingin membuat saran, lihat repositori proyek di layar tentang!</string>
|
||||
<string name="setup__finish_up__finish_btn">Mulai Menyesuaikan</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Cadangkan & Pulihkan</string>
|
||||
<string name="backup_and_restore__back_up__title">Cadangkan data</string>
|
||||
@@ -556,6 +632,7 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="clipboard__cleared_primary_clip">Klip utama dibersihkan</string>
|
||||
<string name="clipboard__cleared_history">Riwayat dibersihkan</string>
|
||||
<string name="clipboard__cleared_full_history">Seluruh riwayat dibersihkan</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Apakah Anda yakin ingin menghapus riwayat papan klip Anda? Ini akan menghapus semua item kecuali yang telah disematkan, terlepas dari filter yang aktif.</string>
|
||||
<string name="settings__clipboard__title">Papan klip</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Gunakan papan klip internal</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Gunakan papan klip internal daripada papan klip sistem</string>
|
||||
@@ -563,6 +640,12 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="pref__clipboard__sync_from_system_clipboard__summary">Pembaruan papan klip sistem juga memperbarui papan klip Floris</string>
|
||||
<string name="pref__clipboard__sync_to_system_clipboard__label">Sinkronkan ke papan klip sistem</string>
|
||||
<string name="pref__clipboard__sync_to_system_clipboard__summary">Pembaruan papan klip Floris juga memperbarui papan klip sistem</string>
|
||||
<string name="pref__clipboard__group_clipboard_suggestion__label">Saran papan klip</string>
|
||||
<string name="pref__clipboard__suggestion_enabled__label" comment="Preference title">Saran konten papan klip</string>
|
||||
<string name="pref__clipboard__suggestion_enabled__summary" comment="Preference summary">Sarankan konten papan klip yang sebelumnya disalin</string>
|
||||
<string name="pref__clipboard__num_history_grid_columns__label">Jumlah kolom kisi</string>
|
||||
<string name="pref__clipboard__suggestion_timeout__label" comment="Preference title; Translators: This should form a sentence together with `pref__clipboard__suggestion_timeout__summary` and is the first part">Batasi saran papan klip sampai</string>
|
||||
<string name="pref__clipboard__suggestion_timeout__summary" comment="Preference summary; Translators: This should form a sentence together with `pref__clipboard__suggestion_timeout__label` and is the second part">Item yang disalin {v} d sebelumnya</string>
|
||||
<string name="pref__clipboard__group_clipboard_history__label">Riwayat papan klip</string>
|
||||
<string name="pref__clipboard__enable_clipboard_history__label">Aktifkan riwayat papan klip</string>
|
||||
<string name="pref__clipboard__enable_clipboard_history__summary">Tetapkan item papan klip untuk akses cepat</string>
|
||||
@@ -576,8 +659,6 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Membersihkan klip utama juga menghapus entri riwayat terkini</string>
|
||||
<string name="send_to_clipboard__unknown_error">Terjadi kesalahan yang tidak diketahui. Harap coba lagi!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Jenis media ini tidak didukung.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Versi android terlalu lawas untuk fitur ini.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Salin gambar berikut ke papan klip.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Alat pengembang</string>
|
||||
@@ -597,6 +678,9 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="devtools__show_drag_and_drop_helpers__summary" comment="Summary of Show drag and drop helpers in Devtools">Render pembantu tersembunyi dalam layar tarik&lepas untuk pengawakutuan</string>
|
||||
<string name="devtools__clear_udm_internal_database__label" comment="Label of Clear internal user dictionary database in Devtools">Bersihkan data kamus pengguna internal</string>
|
||||
<string name="devtools__clear_udm_internal_database__summary" comment="Summary of Clear internal user dictionary database in Devtools">Akan membersihkan semua kata-kata dari tabel basisdata kamus</string>
|
||||
<string name="devtools__reset_quick_actions_to_default__label">Atur ulang tindakan cepat smartbar</string>
|
||||
<string name="devtools__reset_quick_actions_to_default__summary">Atur ulang tindakan cepat smartbar ke pengaturan default</string>
|
||||
<string name="devtools__reset_quick_actions_to_default__toast_success">Berhasil mengatur ulang tindakan cepat smartbar ke default</string>
|
||||
<string name="devtools__reset_flag__label" comment="Label of Reset flag preferences in Devtools">Atur ulang flag \"{flag_name}\"</string>
|
||||
<string name="devtools__reset_flag_is_ime_set_up__summary" comment="Summary of Reset is IME set up flag in Devtools">Aksi debug untuk menampilkan kembali layar pengaturan</string>
|
||||
<string name="devtools__test_crash_report__label" comment="Label of Test Crash Report in Devtools">Layar percobaan laporan crash</string>
|
||||
@@ -645,6 +729,8 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="ext__editor__metadata__message_invalid">Metadata untuk ekstensi ini tidak valid, mohon periksa editor metadata untuk detailnya!</string>
|
||||
<string name="ext__editor__dependencies__title">Kelola ketergantungan</string>
|
||||
<string name="ext__editor__files__title">Kelola file arsip</string>
|
||||
<string name="ext__editor__files__type_fonts">Font</string>
|
||||
<string name="ext__editor__files__type_images">Gambar</string>
|
||||
<string name="ext__editor__create_component__title">Buat komponen</string>
|
||||
<string name="ext__editor__create_component__title_theme">Buat tema</string>
|
||||
<string name="ext__editor__create_component__from_empty">Kosong</string>
|
||||
@@ -711,12 +797,18 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="action__delete">Hapus</string>
|
||||
<string name="action__delete_confirm_title">Konfirmasi penghapusan</string>
|
||||
<string name="action__delete_confirm_message">Apakah Anda yakin ingin menghapus \"{name}\"? Tindakan ini tidak dapat dibatalkan setelah dilakukan.</string>
|
||||
<string name="action__reset_confirm_title">Konfirmasi atur ulang</string>
|
||||
<string name="action__reset_confirm_message">Apakah Anda yakin ingin mengatur ulang \"{name}\"? Tindakan ini tidak dapat dibatalkan setelah dilakukan.</string>
|
||||
<string name="action__discard">Buang</string>
|
||||
<string name="action__discard_confirm_title">Perubahan belum disimpan</string>
|
||||
<string name="action__discard_confirm_message">Apakah Anda yakin ingin membuang perubahan yang belum disimpan? Tindakan ini tidak dapat dibatalkan setelah dieksekusi.</string>
|
||||
<string name="action__edit">Edit</string>
|
||||
<string name="action__export">Ekspor</string>
|
||||
<string name="action__export_file">Impor file</string>
|
||||
<string name="action__export_files">Impor file</string>
|
||||
<string name="action__import">Impor</string>
|
||||
<string name="action__import_file">Impor file</string>
|
||||
<string name="action__import_files">Impor file</string>
|
||||
<string name="action__no">Tidak</string>
|
||||
<string name="action__ok">Oke</string>
|
||||
<string name="action__restore">Pulihkan</string>
|
||||
@@ -738,6 +830,9 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="general__no_browser_app_found_for_url">Tidak ada aplikasi peramban untuk menangani URL {url}</string>
|
||||
<string name="general__select_dropdown_value_placeholder">- pilih -</string>
|
||||
<string name="general__unlimited">Tak terbatas</string>
|
||||
<string name="general__file_name">Nama file</string>
|
||||
<string name="general__properties">Properti</string>
|
||||
<string name="general__auto" comment="Generic shorthand for 'Automatic' value">Otomatis</string>
|
||||
<!-- Screen orientation strings -->
|
||||
<string name="screen_orientation__portrait">Potret</string>
|
||||
<string name="screen_orientation__landscape">Lanskap</string>
|
||||
@@ -756,6 +851,9 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="enum__candidates_display_mode__dynamic_scrollable" comment="Enum value label">Lebar dinamis & dapat digulir</string>
|
||||
<string name="enum__capitalization_behavior__capslock_by_double_tap" comment="Enum value label">Aktifkan Capslock dengan klik shift dua kali</string>
|
||||
<string name="enum__capitalization_behavior__capslock_by_cycle" comment="Enum value label">Ganti ke kapitalisasi berikutnya setiap tombol shift ditekan</string>
|
||||
<string name="enum__color_representation__hex" comment="Enum value label">Heksadesimal</string>
|
||||
<string name="enum__color_representation__rgb" comment="Enum value label">Merah Hijau Biru</string>
|
||||
<string name="enum__color_representation__hsv" comment="Enum value label">Hue Saturasi Nilai</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always" comment="Enum value label">Selalu tampilkan</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always__description" comment="Enum value description">Selalu tampilkan papan ketik setelah menutup dialog editor apa pun</string>
|
||||
<string name="enum__display_kbd_after_dialogs__never" comment="Enum value label">Jangan pernah tampilkan</string>
|
||||
@@ -821,6 +919,13 @@ Klik di sini untuk menyelesaikan masalah ini.</string>
|
||||
<string name="enum__input_shift_state__shifted_manual" comment="Enum value label">Di-shift (manual)</string>
|
||||
<string name="enum__input_shift_state__shifted_automatic" comment="Enum value label">Di-shift (otomatis)</string>
|
||||
<string name="enum__input_shift_state__caps_lock" comment="Enum value label">Kunci huruf kapital</string>
|
||||
<string name="enum__keyboard_mode__characters" comment="Enum value label">Karakter</string>
|
||||
<string name="enum__keyboard_mode__symbols" comment="Enum value label">Simbol</string>
|
||||
<string name="enum__keyboard_mode__symbols2" comment="Enum value label">Simbol 2</string>
|
||||
<string name="enum__keyboard_mode__numeric" comment="Enum value label">Numerik</string>
|
||||
<string name="enum__keyboard_mode__numeric_advanced" comment="Enum value label">Numerik lanjutan</string>
|
||||
<string name="enum__keyboard_mode__phone" comment="Enum value label">Telepon</string>
|
||||
<string name="enum__keyboard_mode__phone2" comment="Enum value label">Telepon 2</string>
|
||||
<string name="enum__landscape_input_ui_mode__never_show" comment="Enum value label">Jangan tampilkan</string>
|
||||
<string name="enum__landscape_input_ui_mode__always_show" comment="Enum value label">Selalu tampilkan</string>
|
||||
<string name="enum__landscape_input_ui_mode__dynamically_show" comment="Enum value label">Tampilkan secara dinamis</string>
|
||||
|
||||
@@ -207,6 +207,7 @@
|
||||
<string name="snygg__rule_element__clipboard_subheader">Sottotitolo degli appunti</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Contenuto degli appunti</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Elemento degli appunti</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Descrizione degli appunti della clipboard</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Popup elemento degli appunti</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Azione dell\'elemento degli appunti</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Azione dell\'elemento degli appunti</string>
|
||||
@@ -290,7 +291,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Resistenza alle vibrazioni</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Questa funzione richiede una componente hardware in grado di generare vibrazioni, che sembra assente nel dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Questa funzione richiede il supporto del controllo dell\'ampiezza dell\'hardware, che manca sul tuo dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Questa funzione richiede il supporto del controllo dell\'ampiezza, che è disponibile solo su Android 8.0 o più recente</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibrazione dei tasti</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibrazione dei tasti premuti a lungo</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibrazione dell\'azione ripetuta del tasto</string>
|
||||
@@ -464,6 +464,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} è stata abilitata nel sistema ed è pronta per essere personalizzata.</string>
|
||||
<string name="setup__finish_up__description_p2">Se riscontri problemi, bug, arresti anomali o vuoi semplicemente dare un suggerimento, controlla il repository del progetto dalla schermata informazioni!</string>
|
||||
<string name="setup__finish_up__finish_btn">Inizia la personalizzazione</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Backup & Ripristino</string>
|
||||
<string name="backup_and_restore__back_up__title">Backup dei dati</string>
|
||||
@@ -530,6 +531,7 @@
|
||||
<string name="clipboard__cleared_primary_clip">Clip principale cancellata</string>
|
||||
<string name="clipboard__cleared_history">Cronologia cancellata</string>
|
||||
<string name="clipboard__cleared_full_history">Tutta la cronologia cancellata</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Sei sicuro di voler cancellare la cronologia degli appunti? Questa azione cancellerà tutti gli appunti tranne quelli spuntati, indipendentemente dai filtri attivi.</string>
|
||||
<string name="settings__clipboard__title">Appunti</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Usa gli appunti integrati</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Usa gli appunti integrati invece degli appunti di sistema</string>
|
||||
|
||||
@@ -174,10 +174,13 @@
|
||||
<string name="settings__theme_editor__rule_name">אלמנט / ביאור</string>
|
||||
<string name="settings__theme_editor__rule_codes">קודי מפתח יעד</string>
|
||||
<string name="settings__theme_editor__rule_groups">קבוצות</string>
|
||||
<string name="settings__theme_editor__rule_modes">מצבי יעד (שכבות)</string>
|
||||
<string name="settings__theme_editor__rule_shift_states">מצבי הזזת יעד</string>
|
||||
<string name="settings__theme_editor__rule_selectors">כלי בחירה</string>
|
||||
<string name="settings__theme_editor__add_code">הוסף קוד מפתח</string>
|
||||
<string name="settings__theme_editor__edit_code">ערוך מפתח קוד</string>
|
||||
<string name="settings__theme_editor__no_codes_defined">החל כלל על כל רכיבי היעד.</string>
|
||||
<string name="settings__theme_editor__no_enum_value_to_add_anymore">כל הערכים האפשריים נוספו.</string>
|
||||
<string name="settings__theme_editor__code_already_exists">מפתח זה כבר מוגדר.</string>
|
||||
<string name="settings__theme_editor__code_invalid">קוד מפתח זה אינו תקף. ודא שקוד המפתח נמצא בטווח של {c_min} עד {c_max} עבור תווים או {i_min} עד {i_max} עבור מפתחות מיוחדים פנימיים.</string>
|
||||
<string name="settings__theme_editor__code_placeholder">קוד</string>
|
||||
@@ -188,6 +191,12 @@
|
||||
<string name="settings__theme_editor__property_name">שם מאפיין</string>
|
||||
<string name="settings__theme_editor__property_value">ערך מאפיין</string>
|
||||
<string name="settings__theme_editor__file_selector_dialog_title">בחר קובץ</string>
|
||||
<string name="snygg__rule_annotation__font">גופן</string>
|
||||
<string name="snygg__rule_annotation__font_name">שם גופן</string>
|
||||
<string name="snygg__rule_element__root">רוט</string>
|
||||
<string name="snygg__rule_element__window">חלון</string>
|
||||
<string name="snygg__rule_element__key">מקש</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">רשת הלוח</string>
|
||||
<string name="settings__keyboard__title" comment="Title of Keyboard preferences screen">מקלדת</string>
|
||||
<string name="pref__keyboard__number_row__label" comment="Preference title">שורת המספרים</string>
|
||||
<string name="pref__keyboard__hinted_number_row_mode__label" comment="Preference title">שורת מספרים מרומזת</string>
|
||||
@@ -255,6 +264,7 @@
|
||||
<!-- Setup UI strings -->
|
||||
<string name="setup__title" comment="Title of Setup">ברוכים הבאים!</string>
|
||||
<string name="setup__footer__privacy_policy" comment="Privacy policy label for URL">מדיניות פרטיות</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__title" comment="Title of crash dialog">FlorisBoard דוח שגיאה</string>
|
||||
|
||||
@@ -365,7 +365,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">振動の強さ</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">この機能にはハードウェアバイブレータが必要ですが、このデバイスには搭載されていないようです</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">この機能にはハードウェア振幅制御のサポートが必要ですが、このデバイスにはありません</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">この機能には、Android 8.0以降でのみ利用可能な振幅制御のサポートが必要です。</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">キー押下時のバイブレーション</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">キー長押し時のバイブレーション</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">キーリピート時のバイブレーション</string>
|
||||
@@ -546,6 +545,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name}はシステムで有効になり、カスタマイズの準備ができました。</string>
|
||||
<string name="setup__finish_up__description_p2">問題、バグ、クラッシュが発生した場合、または単に提案をしたい場合は、概要画面からプロジェクトリポジトリを確認してください!</string>
|
||||
<string name="setup__finish_up__finish_btn">カスタマイズを開始</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">バックアップと復元</string>
|
||||
<string name="backup_and_restore__back_up__title">データをバックアップ</string>
|
||||
@@ -641,7 +641,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">プライマリクリップをクリアすると最新の履歴エントリも削除されます</string>
|
||||
<string name="send_to_clipboard__unknown_error">不明なエラーが発生しました。もう一度お試しください!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">このメディアタイプはサポートされていません。</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Androidのバージョンが古いため、この機能は利用できません。\n </string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">下の画像をクリップボードにコピーしました。</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">開発者ツール</string>
|
||||
|
||||
@@ -328,6 +328,7 @@
|
||||
<string name="setup__finish_up__description_p1">이제 {app_name} 키보드를 마음껏 꾸미고 써볼 수 있어요.</string>
|
||||
<string name="setup__finish_up__description_p2">문제가 생기거나, 버그를 발견하거나, 제안할 내용이 있다면 정보 화면에서 프로젝트 리포지터리에 방문해 주세요!</string>
|
||||
<string name="setup__finish_up__finish_btn">꾸미기 시작</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">백업 및 복원</string>
|
||||
<string name="backup_and_restore__back_up__title">데이터 백업</string>
|
||||
|
||||
@@ -237,6 +237,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} niha di pergalê de çalak e û amade ye ku ji hêla we ve were xwemalîkirin.</string>
|
||||
<string name="setup__finish_up__description_p2">Heke hûn bi pirsgirêk, xeletî, qezayan an jî bi tenê dixwazin pêşnîyazekê bikin, li depoya projeyê binêrin ji ekrana der barê ekranê!</string>
|
||||
<string name="setup__finish_up__finish_btn">Dest Bi Taybetkirinê Bike</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Yêdek & Nûvdekirin kirin</string>
|
||||
<string name="backup_and_restore__back_up__title">Daneyên paşde bikin</string>
|
||||
|
||||
@@ -217,8 +217,12 @@
|
||||
<string name="snygg__rule_element__clipboard_header_text">Starpliktuves galvenes teksts</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Starpliktuves apakšvirsraksts</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Starpliktuves saturs</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Starpliktuves atlasītāja rinda</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Starpliktuves režģis</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Starpliktuves vienums</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Starpliktuves vienuma apraksts</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Starpliktuves vienuma uznirstošais lodziņš</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Starpliktuves vienuma laikspiedols</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Starpliktuves vienuma darbības</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Starpliktuves vienuma darbība</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_icon">Starpliktuves vienuma darbības ikona</string>
|
||||
@@ -270,6 +274,8 @@
|
||||
<string name="snygg__rule_selector__disabled">Atspējots</string>
|
||||
<string name="snygg__property_name__background">Pamats</string>
|
||||
<string name="snygg__property_name__foreground">Priekšplāns</string>
|
||||
<string name="snygg__property_name__background_image">Fona attēls</string>
|
||||
<string name="snygg__property_name__content_scale">Satura mērogs</string>
|
||||
<string name="snygg__property_name__border_color">Apmales krāsa</string>
|
||||
<string name="snygg__property_name__border_style">Apmales veids</string>
|
||||
<string name="snygg__property_name__border_width">Apmales platums</string>
|
||||
@@ -277,8 +283,14 @@
|
||||
<string name="snygg__property_name__font_size">Burtu lielums</string>
|
||||
<string name="snygg__property_name__font_style">Burtu veids</string>
|
||||
<string name="snygg__property_name__font_weight">Burtu biezums</string>
|
||||
<string name="snygg__property_name__letter_spacing">Atstarpes starp burtiem</string>
|
||||
<string name="snygg__property_name__line_height">Līnijas augstums</string>
|
||||
<string name="snygg__property_name__shadow_color">Ēnas krāsa</string>
|
||||
<string name="snygg__property_name__shadow_elevation">Ēnas pacēlums</string>
|
||||
<string name="snygg__property_name__shape">Veidols</string>
|
||||
<string name="snygg__property_name__src">Avots</string>
|
||||
<string name="snygg__property_name__text_align">Teksta līdzinājums</string>
|
||||
<string name="snygg__property_name__text_overflow">Teksta pārplūde</string>
|
||||
<string name="snygg__property_name__var_primary">Pamatkrāsa</string>
|
||||
<string name="snygg__property_name__var_primary_variant">Pamatkrāsa (paveids)</string>
|
||||
<string name="snygg__property_name__var_secondary">Otrējā krāsa</string>
|
||||
@@ -295,6 +307,8 @@
|
||||
<string name="snygg__property_name__var_shape_variant">Kopējs veidols (paveids)</string>
|
||||
<string name="snygg__property_value__explicit_inherit">Mantot</string>
|
||||
<string name="snygg__property_value__defined_var">Mainīgā atsauce</string>
|
||||
<string name="snygg__property_value__yes">Jā</string>
|
||||
<string name="snygg__property_value__no">Nē</string>
|
||||
<string name="snygg__property_value__solid_color">Tīrtoņa krāsa</string>
|
||||
<string name="snygg__property_value__material_you_light_color">Material You krāsa (gaiša)</string>
|
||||
<string name="snygg__property_value__material_you_dark_color">Material You krāsa (tumša)</string>
|
||||
@@ -307,6 +321,9 @@
|
||||
<string name="snygg__property_value__dp_size">Lielums (dp)</string>
|
||||
<string name="snygg__property_value__sp_size">Lielums (sp)</string>
|
||||
<string name="snygg__property_value__percentage_size">Lielums (%)</string>
|
||||
<string name="snygg__property_value__content_scale">Satura mērogs</string>
|
||||
<string name="snygg__property_value__text_align">Teksta līdzinājums</string>
|
||||
<string name="snygg__property_value__text_overflow">Teksta pārplūde</string>
|
||||
<string name="settings__input_feedback__title" comment="Title of Input Feedback screen">Skaņas un trīcēšana</string>
|
||||
<string name="pref__input_feedback__group_audio__label" comment="Preference group title">Dzirdamā atgriezeniskā saite / Skaņas</string>
|
||||
<string name="pref__input_feedback__audio_enabled__label" comment="Preference title">Iespējot dzirdamo atgriezenisko saiti</string>
|
||||
@@ -325,7 +342,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Trīcēšanas stiprums</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Šai iespējai ir nepieciešams trīcinātājs, kā šķietami nav šajā iekārtā</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Šīs iespējas izmantošanai ir nepieciešama aparatūras starpības vadības atbalsts, kā nav šajā iekārtā</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Šīs iespējas izmantošanai ir nepieciešama starpības vadības atbalsts, kas ir pieejams tikai sākot no Android 8.0</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Taustiņa nospiešanas trīcēšana</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Ilgas taustiņa nospiešanas trīcēšana</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Taustiņa atkārtošanās darbības trīcēšana</string>
|
||||
@@ -510,6 +526,13 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} tagad ir iespējots un ir gatavs pielāgojumiem.</string>
|
||||
<string name="setup__finish_up__description_p2">Ja tiek pamanītas kādas nepilnības, kļūdas, avārijas vai ir vēlme kaut ko ieteikt, apskati projekta glabātavu, kuras saite ir sadaļā \"Par\"!</string>
|
||||
<string name="setup__finish_up__finish_btn">Sākt pielāgošanu</string>
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Fiziska tastatūra</string>
|
||||
<string name="physical_keyboard__system_settings__title">Sistēmas fiziskās tastatūras iestatījumi</string>
|
||||
<string name="physical_keyboard__system_settings__summary">Izkārtojumi, tastatūras saīsnes un pārveidotājtaustiņi</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Pieejams tikai tad, kad ir pievienotat tastatūra</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__title">Rādīt ekrāna tastatūru</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__summary">Rādīt ekrāna tastatūru, kamēr izmanto fizisko tastatūru</string>
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Rezerves kopēšana un atjaunošana</string>
|
||||
<string name="backup_and_restore__back_up__title">Veikt datu rezerves kopēšanu</string>
|
||||
@@ -580,6 +603,7 @@
|
||||
<string name="clipboard__cleared_primary_clip">Galvenais vienums notīrīts</string>
|
||||
<string name="clipboard__cleared_history">Vēsture notīrīta</string>
|
||||
<string name="clipboard__cleared_full_history">Visa vēsture notīrīta</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Vai tiešām iztīrīt starpliktuves vēsturi? Tas notīrīs visus vienumus (izņemot piespraustos) neatkarīgi no spēkā esošajiem atlasītājiem.</string>
|
||||
<string name="settings__clipboard__title">Starpliktuve</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Izmantot iekšējo starpliktuvi</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Izmantot iekšējo, nevis sistēmas starpliktuvi</string>
|
||||
@@ -606,8 +630,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Galvenā vienuma notīrīšana dzēš arī jaunāko vēstures ierakstu</string>
|
||||
<string name="send_to_clipboard__unknown_error">Radusies nezināma kļūda. Lūgums vēlāk mēģināt vēlreiz.</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Šis informācijas nesēja veids netiek atbalstīts.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Android versija pārāk veca, lai izmantotu šo iespēju.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Zemāk esošais attēls ir ievietots starpliktuvē.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Izstrādātāju rīki</string>
|
||||
@@ -800,6 +822,8 @@
|
||||
<string name="enum__candidates_display_mode__dynamic_scrollable" comment="Enum value label">Mainīgs platums un ritināms</string>
|
||||
<string name="enum__capitalization_behavior__capslock_by_double_tap" comment="Enum value label">Iespējot burtslēgu ar divkāršu piesitienu pārslēgšanas taustiņam</string>
|
||||
<string name="enum__capitalization_behavior__capslock_by_cycle" comment="Enum value label">Pārslēgties uz nākamo lielā burta rakstīšānas soli katru reizi, kad tiek nospiests pārslēgšanas taustiņš</string>
|
||||
<string name="enum__color_representation__rgb" comment="Enum value label">Sarkans Zaļš Zils</string>
|
||||
<string name="enum__color_representation__hsv" comment="Enum value label">Nokrāsas piesātinājuma vērtība</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always" comment="Enum value label">Rādīt vienmēr</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always__description" comment="Enum value description">Vienmēr rādīt tastatūru pēc jebkura labošanas ziņojumlodziņa aizvēršanas</string>
|
||||
<string name="enum__display_kbd_after_dialogs__never" comment="Enum value label">Nerādīt nekad</string>
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
<!-- Typing strings -->
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<!-- Typing strings -->
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Klembordgeschiedenis openen</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Emoji</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Emoji-paneel openen</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Wijzig taal</string>
|
||||
<string name="quick_action__settings" maxLength="12">Instellingen</string>
|
||||
<string name="quick_action__settings__tooltip">Instellingen openen</string>
|
||||
<string name="quick_action__undo" maxLength="12">Annuleren</string>
|
||||
@@ -166,6 +167,7 @@
|
||||
<string name="settings__theme_editor__edit_rule">Regel bewerken</string>
|
||||
<string name="settings__theme_editor__no_rules_defined">Deze stylesheet heeft geen regels gedefinieerd. Voeg een regel toe om deze stylesheet aan te passen.</string>
|
||||
<string name="settings__theme_editor__rule_already_exists">Deze stylesheet regel is al gedefinieerd.</string>
|
||||
<string name="settings__theme_editor__rule_name">Element / Annotatie</string>
|
||||
<string name="settings__theme_editor__rule_codes">Doelwit sleutelcode</string>
|
||||
<string name="settings__theme_editor__rule_groups">Groepen</string>
|
||||
<string name="settings__theme_editor__rule_selectors">Selectors</string>
|
||||
@@ -188,12 +190,18 @@
|
||||
<string name="settings__theme_editor__property_value">Eigendoms-waarde</string>
|
||||
<string name="settings__theme_editor__property_value_shape_apply_for_all_corners">Solliciteer voor alle hoeken</string>
|
||||
<string name="settings__theme_editor__property_value_color_dialog_title">Kleurreeks bewerken</string>
|
||||
<string name="settings__theme_editor__file_selector_dialog_title">Bestand selecteren</string>
|
||||
<string name="settings__theme_editor__component_meta_is_night_theme">Is nacht thema</string>
|
||||
<string name="settings__theme_editor__component_meta_is_borderless">Is grenzeloos</string>
|
||||
<string name="settings__theme_editor__component_meta_stylesheet_path">Stylesheet-pad</string>
|
||||
<string name="snygg__rule_annotation__defines">Variabelen</string>
|
||||
<string name="snygg__rule_annotation__font">Lettertype</string>
|
||||
<string name="snygg__rule_annotation__font_name">Lettertypenaam</string>
|
||||
<string name="snygg__rule_element__window">Venster</string>
|
||||
<string name="snygg__rule_element__key">Sleutel</string>
|
||||
<string name="snygg__rule_element__key_hint">Sleutel hint</string>
|
||||
<string name="snygg__rule_element__clipboard_header">Klembordkoptekst</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Klembordinhoud</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Klemborditem</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Pop-up met klemborditem</string>
|
||||
<string name="snygg__rule_element__extracted_landscape_input_layout">Liggende invoerlay-out</string>
|
||||
@@ -201,6 +209,7 @@
|
||||
<string name="snygg__rule_element__extracted_landscape_input_action">Landschap invoeractie</string>
|
||||
<string name="snygg__rule_element__glide_trail">Glijpad</string>
|
||||
<string name="snygg__rule_element__incognito_mode_indicator">Incognito modus-indicator</string>
|
||||
<string name="snygg__rule_element__media">Media</string>
|
||||
<string name="snygg__rule_element__one_handed_panel">Paneel met één hand</string>
|
||||
<string name="snygg__rule_element__smartbar">Slimme balk</string>
|
||||
<string name="snygg__rule_element__smartbar_shared_actions_row">Rij voor gedeelde acties op de smartbar</string>
|
||||
@@ -223,6 +232,7 @@
|
||||
<string name="snygg__rule_selector__disabled">Gehandicapt</string>
|
||||
<string name="snygg__property_name__background">Achtergrond</string>
|
||||
<string name="snygg__property_name__foreground">Voorgrond</string>
|
||||
<string name="snygg__property_name__background_image">Achtergrondafbeelding</string>
|
||||
<string name="snygg__property_name__border_color">Rand kleur</string>
|
||||
<string name="snygg__property_name__border_style">Randstijl</string>
|
||||
<string name="snygg__property_name__border_width">Grensbreedte</string>
|
||||
@@ -230,8 +240,13 @@
|
||||
<string name="snygg__property_name__font_size">Lettertypegrootte</string>
|
||||
<string name="snygg__property_name__font_style">Lettertype</string>
|
||||
<string name="snygg__property_name__font_weight">Lettertype dikte</string>
|
||||
<string name="snygg__property_name__letter_spacing">Ruimte tussen letters</string>
|
||||
<string name="snygg__property_name__margin">Marge</string>
|
||||
<string name="snygg__property_name__shadow_color">Schaduwkleur</string>
|
||||
<string name="snygg__property_name__shadow_elevation">Schaduwhoogte</string>
|
||||
<string name="snygg__property_name__shape">Vorm geven aan</string>
|
||||
<string name="snygg__property_name__src">Bron</string>
|
||||
<string name="snygg__property_name__text_align">Uitlijning</string>
|
||||
<string name="snygg__property_name__var_primary">Primaire kleur</string>
|
||||
<string name="snygg__property_name__var_primary_variant">Primaire kleur (variant)</string>
|
||||
<string name="snygg__property_name__var_secondary">Secundaire kleur</string>
|
||||
@@ -248,9 +263,12 @@
|
||||
<string name="snygg__property_name__var_shape_variant">Gemeenschappelijke vorm (variant)</string>
|
||||
<string name="snygg__property_value__explicit_inherit">Erven</string>
|
||||
<string name="snygg__property_value__defined_var">Was referentie</string>
|
||||
<string name="snygg__property_value__yes">Ja</string>
|
||||
<string name="snygg__property_value__no">Nee</string>
|
||||
<string name="snygg__property_value__solid_color">Effen kleur</string>
|
||||
<string name="snygg__property_value__material_you_light_color">Material You kleur (licht)</string>
|
||||
<string name="snygg__property_value__material_you_dark_color">Material You kleur (donker)</string>
|
||||
<string name="snygg__property_value__font_style">Lettertype</string>
|
||||
<string name="snygg__property_value__rectangle_shape">Rechthoekige vorm</string>
|
||||
<string name="snygg__property_value__circle_shape">cirkelvorm</string>
|
||||
<string name="snygg__property_value__cut_corner_shape_dp">Gesneden hoekvorm (dp)</string>
|
||||
@@ -278,7 +296,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Trilsterkte</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Deze functie vereist een hardwarevibrator, die op dit apparaat lijkt te ontbreken</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Deze functie vereist hardwarematige besturing van de trillingssterkte, en wordt niet ondersteund door uw apparaat</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Deze functie vereist hardwarematige besturing van de trillingssterkte, en is alleen beschikbaar op Android 8.0 of nieuwer</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Trillen bij toetsaanslag</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Trilling voor langdurige toetsaanslag</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Trilling voor herhaalde toetsaanslagen</string>
|
||||
@@ -461,6 +478,9 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="setup__finish_up__description_p1">{app_name} is nu ingeschakeld in het systeem en kan door jou worden aangepast.</string>
|
||||
<string name="setup__finish_up__description_p2">Als je problemen, bugs, crashes tegenkomt of gewoon een suggestie wilt doen, bekijk dan de projectrepository vanaf het about-scherm!</string>
|
||||
<string name="setup__finish_up__finish_btn">Begin met aanpassen</string>
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Fysiek toetsenbord</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Enkel beschikbaar wanneer toetsenbord is aangesloten</string>
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Back-up & Herstel</string>
|
||||
<string name="backup_and_restore__back_up__title">Back-upgegevens</string>
|
||||
@@ -556,8 +576,6 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Als u de primaire clip wist, wordt ook het laatste geschiedenisitem verwijderd</string>
|
||||
<string name="send_to_clipboard__unknown_error">Een onbekende fout is opgetreden. Probeer het alstublieft opnieuw!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Dit mediatype wordt niet ondersteund.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">De versie van Android is te oud voor deze functie.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Onderstaande afbeelding gekopieerd naar klembord.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Devtools</string>
|
||||
@@ -625,6 +643,8 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="ext__editor__metadata__message_invalid">De metagegevens voor deze extensie zijn niet geldig, controleer de metagegevenseditor voor details!</string>
|
||||
<string name="ext__editor__dependencies__title">Afhankelijkheden beheren</string>
|
||||
<string name="ext__editor__files__title">Archiefbestanden beheren</string>
|
||||
<string name="ext__editor__files__type_fonts">Lettertypes</string>
|
||||
<string name="ext__editor__files__type_images">Afbeeldingen</string>
|
||||
<string name="ext__editor__create_component__title">Component maken</string>
|
||||
<string name="ext__editor__create_component__title_theme">Thema maken</string>
|
||||
<string name="ext__editor__create_component__from_empty">Leeg</string>
|
||||
@@ -698,7 +718,11 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="action__discard_confirm_message">Weet u zeker dat u uw niet-opgeslagen wijzigingen wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt nadat deze is uitgevoerd.</string>
|
||||
<string name="action__edit">Bewerk</string>
|
||||
<string name="action__export">Exporteren</string>
|
||||
<string name="action__export_file">Bestand importeren</string>
|
||||
<string name="action__export_files">Bestanden importeren</string>
|
||||
<string name="action__import">Importeren</string>
|
||||
<string name="action__import_file">Bestand importeren</string>
|
||||
<string name="action__import_files">Bestanden importeren</string>
|
||||
<string name="action__no">Nee</string>
|
||||
<string name="action__ok">Oké</string>
|
||||
<string name="action__restore">Herstellen</string>
|
||||
@@ -720,6 +744,9 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="general__no_browser_app_found_for_url">Geen browser app gevonden voor het afhandelen van URL {url}</string>
|
||||
<string name="general__select_dropdown_value_placeholder">- selecteer -</string>
|
||||
<string name="general__unlimited">Onbeperkt</string>
|
||||
<string name="general__file_name">Bestandsnaam</string>
|
||||
<string name="general__properties">Eigenschappen</string>
|
||||
<string name="general__auto" comment="Generic shorthand for 'Automatic' value">Auto</string>
|
||||
<!-- Screen orientation strings -->
|
||||
<string name="screen_orientation__portrait">Staand</string>
|
||||
<string name="screen_orientation__landscape">Liggend</string>
|
||||
@@ -738,6 +765,8 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="enum__candidates_display_mode__dynamic_scrollable" comment="Enum value label">Dynamische breedte</string>
|
||||
<string name="enum__capitalization_behavior__capslock_by_double_tap" comment="Enum value label">Capslock inschakelen door tweemaal op shift te tikken</string>
|
||||
<string name="enum__capitalization_behavior__capslock_by_cycle" comment="Enum value label">Telkens wanneer de shift-toets wordt ingedrukt, overschakelen naar de volgende hoofdletterstap</string>
|
||||
<string name="enum__color_representation__hex" comment="Enum value label">Hexadecimaal</string>
|
||||
<string name="enum__color_representation__rgb" comment="Enum value label">Rood Groen Blauw</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always" comment="Enum value label">Altijd weergeven</string>
|
||||
<string name="enum__display_kbd_after_dialogs__always__description" comment="Enum value description">Het toetsenbord altijd weergeven na het sluiten van een editor-dialoogvenster</string>
|
||||
<string name="enum__display_kbd_after_dialogs__never" comment="Enum value label">Nooit weergeven</string>
|
||||
@@ -803,6 +832,13 @@ Deze toestemming kan op elk moment worden gewijzigd in de systeeminstellingen.
|
||||
<string name="enum__input_shift_state__shifted_manual" comment="Enum value label">Verschoven (handmatig)</string>
|
||||
<string name="enum__input_shift_state__shifted_automatic" comment="Enum value label">geschakeld (automatisch)</string>
|
||||
<string name="enum__input_shift_state__caps_lock" comment="Enum value label">Caps Lock</string>
|
||||
<string name="enum__keyboard_mode__characters" comment="Enum value label">Tekens</string>
|
||||
<string name="enum__keyboard_mode__symbols" comment="Enum value label">Symbolen</string>
|
||||
<string name="enum__keyboard_mode__symbols2" comment="Enum value label">Symbolen 2</string>
|
||||
<string name="enum__keyboard_mode__numeric" comment="Enum value label">Numeriek</string>
|
||||
<string name="enum__keyboard_mode__numeric_advanced" comment="Enum value label">Numeriek geavanceerd</string>
|
||||
<string name="enum__keyboard_mode__phone" comment="Enum value label">Telefoon</string>
|
||||
<string name="enum__keyboard_mode__phone2" comment="Enum value label">Telefoon 2</string>
|
||||
<string name="enum__landscape_input_ui_mode__never_show" comment="Enum value label">Nooit tonen</string>
|
||||
<string name="enum__landscape_input_ui_mode__always_show" comment="Enum value label">Altijd tonen</string>
|
||||
<string name="enum__landscape_input_ui_mode__dynamically_show" comment="Enum value label">Dynamisch tonen</string>
|
||||
|
||||
@@ -193,7 +193,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_duration__label" comment="Preference title">Vibrasjonsvarighet</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Vibrasjonsstyrke</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Denne funksjonen krever støtte for kontroll av maskinvareamplitude, som mangler på enheten din</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Denne funksjonen krever støtte for kontroll av maskinvareamplitude, som bare er tilgjengelig på Android 8.0 eller nyere</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Tastevibrasjon</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Tastevibrasjon for lange trykk</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Gjentatte tastehandlingsvibrasjoner</string>
|
||||
@@ -329,6 +328,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} er nå aktivert i systemet og klar til å bli tilpasset av deg.</string>
|
||||
<string name="setup__finish_up__description_p2">Dersom du støter på problemer, feil, krasj eller ønsker å komme med forslag, sjekk ut prosjektlageret fra Om-skjermen!</string>
|
||||
<string name="setup__finish_up__finish_btn">Begynn å Tilpasse</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__back_up__destination_file_sys">Lokalt filsystem</string>
|
||||
<string name="backup_and_restore__restore__title">Gjenopprett data</string>
|
||||
|
||||
@@ -220,8 +220,15 @@
|
||||
<string name="snygg__rule_element__clipboard_header_text">Tekst nagłówka schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_subheader">Podtytuł schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_content">Zawartość schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_row">Wiersz filtra schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip">Układu filtra schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_icon">Ikona układu filtra schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_filter_chip_text">Tekst układu filtra schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_grid">Siatka schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item">Element schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item_description">Opis elementu schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item_popup">Popup elementu schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item_timestamp">Znacznik czasu elementu schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item_actions">Działania na elementach schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action">Działanie na elemencie schowka</string>
|
||||
<string name="snygg__rule_element__clipboard_item_action_icon">Ikona działania elementu schowka</string>
|
||||
@@ -370,7 +377,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Siła wibracji</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Ta funkcja wymaga fizycznego wibratora, którego to urządzenie nie posiada</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Ta funkcja wymaga obsługi sprzętowej kontroli amplitudy, której brakuje na Twoim urządzeniu</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Ta funkcja wymaga obsługi kontroli amplitudy, która jest dostępna tylko w systemie Android 8.0 lub nowszym</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Wibracja po naciśnięciu klawisza</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Wibracje przy długim naciśnięciu klawisza</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Wibracja powtórzonego wciśnięcia klawisza</string>
|
||||
@@ -555,6 +561,13 @@
|
||||
<string name="setup__finish_up__description_p1">Aplikacja {app_name} jest teraz włączona w systemie i gotowa do dostosowania przez Ciebie.</string>
|
||||
<string name="setup__finish_up__description_p2">Jeśli napotkasz jakieś problemy, błędy, awarie lub po prostu chcesz coś zasugerować, sprawdź repozytorium projektu z ekranu \"Informacje o oprogramowaniu\"!</string>
|
||||
<string name="setup__finish_up__finish_btn">Rozpocznij personalizowanie</string>
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Klawiatura fizyczna</string>
|
||||
<string name="physical_keyboard__system_settings__title">Ustawienia klawiatury fizycznej systemu</string>
|
||||
<string name="physical_keyboard__system_settings__summary">Układy, skróty klawiaturowe i klawisze modyfikujące</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Dostępne tylko po podłączeniu klawiatury</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__title">Pokazuj klawiaturę ekranową</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__summary">Wyświetlaj klawiaturę ekranową podczas korzystania z klawiatury fizycznej</string>
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Kopia zapasowa i przywracanie</string>
|
||||
<string name="backup_and_restore__back_up__title">Utwórz kopię zapasową</string>
|
||||
@@ -625,6 +638,7 @@
|
||||
<string name="clipboard__cleared_primary_clip">Wyczyść główny schowek</string>
|
||||
<string name="clipboard__cleared_history">Historia została usunięta</string>
|
||||
<string name="clipboard__cleared_full_history">Cała historia została usunięta</string>
|
||||
<string name="clipboard__confirm_clear_history__message">Czy na pewno chcesz wyczyścić historię schowka? Spowoduje to wyczyszczenie wszystkich elementów z wyjątkiem przypiętych, niezależnie od aktywnych filtrów.</string>
|
||||
<string name="settings__clipboard__title">Schowek</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__label">Użyj wewnętrznego schowka</string>
|
||||
<string name="pref__clipboard__use_internal_clipboard__summary">Użyj wewnętrznego schowka zamiast systemowego schowka</string>
|
||||
@@ -651,8 +665,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Wyczyszczenie głównego schowka również usuwa najnowsze pozycje w historii</string>
|
||||
<string name="send_to_clipboard__unknown_error">Wystąpił nieoczekiwany błąd. Proszę spróbować ponownie!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Ten typ mediów nie jest wspierany.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Wersja Androida jest zbyt stara, aby obsłużyć tę funkcję.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Skopiowano poniższy obraz do schowka.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Narzędzia Programistyczne</string>
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Abrir histórico da área de transferência</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Emoji</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Painel de emojis</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Mudar idioma</string>
|
||||
<string name="quick_action__settings" maxLength="12">Ajustes</string>
|
||||
<string name="quick_action__settings__tooltip">Abrir configurações</string>
|
||||
<string name="quick_action__undo" maxLength="12">Desfazer</string>
|
||||
@@ -151,6 +152,8 @@
|
||||
<string name="pref__theme__sunset_time__label" comment="Label of the sunset time preference">Hora do pôr do sol</string>
|
||||
<string name="pref__theme__day" comment="Label of the day group (day means light theme)">Tema diurno</string>
|
||||
<string name="pref__theme__night" comment="Label of the night group (night means dark theme)">Tema noturno</string>
|
||||
<string name="pref__theme__theme_accent_color__label" comment="Label of accent color preference in Theme"> Cor de destaque (Temas Material You)
|
||||
</string>
|
||||
<string name="settings__theme_manager__title_manage" comment="Title of the theme manager screen for managing installed and custom themes">Gerenciar temas instalados</string>
|
||||
<string name="pref__theme__source_assets" comment="Label for the theme source field">Assets do Aplicativo FlorisBoard</string>
|
||||
<string name="pref__theme__source_internal" comment="Label for the theme source field">Armazenamento Interno</string>
|
||||
@@ -186,11 +189,14 @@
|
||||
<string name="settings__theme_editor__property_value">Valor da propriedade</string>
|
||||
<string name="settings__theme_editor__property_value_shape_apply_for_all_corners">Aplicar para todos os cantos</string>
|
||||
<string name="settings__theme_editor__property_value_color_dialog_title">Editar sequência de cores</string>
|
||||
<string name="settings__theme_editor__file_selector_dialog_title">Selecionar arquivo</string>
|
||||
<string name="settings__theme_editor__component_meta_is_night_theme">É tema noturno</string>
|
||||
<string name="settings__theme_editor__component_meta_is_borderless">É sem bordas</string>
|
||||
<string name="settings__theme_editor__component_meta_stylesheet_path">Caminho da folha de estilo</string>
|
||||
<string name="snygg__rule_annotation__defines">Variáveis</string>
|
||||
<string name="snygg__rule_annotation__defines_description">Defina variáveis dentro desta regra para reutilizar cores ou tamanhos comuns em sua folha de estilo.</string>
|
||||
<string name="snygg__rule_annotation__font">Fonte</string>
|
||||
<string name="snygg__rule_annotation__font_name">Nome da fonte</string>
|
||||
<string name="snygg__rule_element__key">Tecla</string>
|
||||
<string name="snygg__rule_element__key_hint">Dica da tecla</string>
|
||||
<string name="snygg__rule_element__clipboard_header">Cabeçalho da área de transferência</string>
|
||||
@@ -248,6 +254,8 @@
|
||||
<string name="snygg__property_name__var_shape_variant">Forma comum (variante)</string>
|
||||
<string name="snygg__property_value__explicit_inherit">Herdar</string>
|
||||
<string name="snygg__property_value__defined_var">Referência da Var</string>
|
||||
<string name="snygg__property_value__yes">Sim</string>
|
||||
<string name="snygg__property_value__no">Não</string>
|
||||
<string name="snygg__property_value__solid_color">Cor sólida</string>
|
||||
<string name="snygg__property_value__material_you_light_color">Cor do Material You (Clara)</string>
|
||||
<string name="snygg__property_value__material_you_dark_color">Cor do Material You (Escura)</string>
|
||||
@@ -260,6 +268,7 @@
|
||||
<string name="snygg__property_value__dp_size">Tamanho (dp)</string>
|
||||
<string name="snygg__property_value__sp_size">Tamanho (sp)</string>
|
||||
<string name="snygg__property_value__percentage_size">Tamanho (%)</string>
|
||||
<string name="snygg__property_value__text_align">Alinhamento do texto</string>
|
||||
<string name="settings__input_feedback__title" comment="Title of Input Feedback screen">Sons e Vibração</string>
|
||||
<string name="pref__input_feedback__group_audio__label" comment="Preference group title">Resposta de Áudio / Sons</string>
|
||||
<string name="pref__input_feedback__audio_enabled__label" comment="Preference title">Ativar resposta de áudio</string>
|
||||
@@ -278,7 +287,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Intensidade da vibração</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Essa funcionalidade exige um vibrador no hardware, que parece não estar presente nesse dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Este recurso requer suporte de controle de amplitude de hardware, que está faltando em seu dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Este recurso requer suporte de controle de amplitude, que só está disponível no Android 8.0 ou mais recente</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibração ao pressionar tecla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibração ao pressionar e segurar tecla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibração de ação repetida da tecla</string>
|
||||
@@ -461,6 +469,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} agora está ativado no sistema e pronto para ser personalizado por você.</string>
|
||||
<string name="setup__finish_up__description_p2">Se você encontrar quaisquer problemas, bugs, travamentos ou apenas quiser fazer uma sugestão, verifique o repositório do projeto na tela sobre!</string>
|
||||
<string name="setup__finish_up__finish_btn">Começar a Personalizar</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Backup e Restauração</string>
|
||||
<string name="backup_and_restore__back_up__title">Fazer backup dos dados</string>
|
||||
@@ -556,7 +565,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Limpar o clipe primário também exclui a última entrada do histórico</string>
|
||||
<string name="send_to_clipboard__unknown_error">Ocorreu um erro desconhecido. Por favor, tente novamente!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Esse tipo de mídia não é suportado.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Sua versão do Android é muito antiga para essa funcionalidade. </string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Imagem abaixo copiada para área de transferência.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Ferramentas de desenvolvedor</string>
|
||||
|
||||
@@ -162,7 +162,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_duration__label" comment="Preference title">Duração da vibração</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Intensidade da vibração</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Esta funcionalidade necessita do suporte a controlo de amplitude do hardware, que não está disponível no seu dispositivo</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Esta funcionalidade necessita do suporte a controlo de amplitude do hardware, apenas disponível em Android 8.0 ou mais recente.</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibrar ao premir as teclas</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibrar ao premir longamente as teclas</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Vibrar na repetição das teclas</string>
|
||||
@@ -302,6 +301,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} está agora ativado no sistema e já pode ser personalizado ao seu gosto.</string>
|
||||
<string name="setup__finish_up__description_p2">Se encontrar erros, problemas ou se quiser sugerir melhorias, aceda ao repositório do projeto através do ecrã Acerca!</string>
|
||||
<string name="setup__finish_up__finish_btn">Iniciar personalização</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Backup e restauro</string>
|
||||
<string name="backup_and_restore__back_up__title">Copiar dados</string>
|
||||
|
||||
@@ -72,6 +72,8 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Включить историю буфера обмена</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Эмодзи</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Открыть панель эмодзи</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Сменить язык</string>
|
||||
<string name="quick_action__language_switch__tooltip">Выполнить переключение языка</string>
|
||||
<string name="quick_action__settings" maxLength="12">Настройки</string>
|
||||
<string name="quick_action__settings__tooltip">Открыть настройки</string>
|
||||
<string name="quick_action__undo" maxLength="12">Отменить</string>
|
||||
@@ -146,7 +148,7 @@
|
||||
<string name="settings__localization__subtype_error_layout_not_installed" comment="Error message shown in subtype list when a layout is not installed, where %s will be replaced by the layout ID">{layout_id} (не установлен)</string>
|
||||
<string name="settings__localization__group_layouts__label" comment="Label of layouts group">Раскладки</string>
|
||||
<string name="settings__localization__subtype_delete_confirmation_title" comment="Title of the subtype delete confirmation dialog">Подтверждение удаления</string>
|
||||
<string name="settings__localization__subtype_delete_confirmation_warning" comment="Warning message in the confirmation dialog to confirm the user's intent to delete">Вы уверены что хотите удалить этот подтип?</string>
|
||||
<string name="settings__localization__subtype_delete_confirmation_warning" comment="Warning message in the confirmation dialog to confirm the user's intent to delete">Вы уверены, что хотите удалить этот подтип?</string>
|
||||
<string name="settings__theme__title" comment="Title of the Theme screen">Темы</string>
|
||||
<string name="pref__theme__mode__label" comment="Label of the theme mode preference">Тема оформления</string>
|
||||
<string name="pref__theme__sunrise_time__label" comment="Label of the sunrise time preference">Время восхода</string>
|
||||
@@ -163,11 +165,13 @@
|
||||
<string name="settings__theme_manager__title_night" comment="Title of the theme manager screen for night theme selection">Выбрать темную тему</string>
|
||||
<string name="settings__theme_editor__fine_tune__title">Настройки редактора тем</string>
|
||||
<string name="settings__theme_editor__fine_tune__level">Уровень редактирования</string>
|
||||
<string name="settings__theme_editor__fine_tune__color_representation">Цветопередача</string>
|
||||
<string name="settings__theme_editor__fine_tune__display_kbd_after_dialogs">Отображать клавиатуру после диалогов</string>
|
||||
<string name="settings__theme_editor__add_rule">Добавить правило</string>
|
||||
<string name="settings__theme_editor__edit_rule">Изменить правило</string>
|
||||
<string name="settings__theme_editor__no_rules_defined">В таблице стилей не определены правила. Добавьте правило, чтобы начать её настройку.</string>
|
||||
<string name="settings__theme_editor__rule_already_exists">Это правило таблицы стилей уже определено.</string>
|
||||
<string name="settings__theme_editor__rule_name">Элемент / Аннотация</string>
|
||||
<string name="settings__theme_editor__rule_codes">Целевые коды клавиш</string>
|
||||
<string name="settings__theme_editor__rule_groups">Группы</string>
|
||||
<string name="settings__theme_editor__rule_modes">Целевые режимы (слои)</string>
|
||||
@@ -193,12 +197,18 @@
|
||||
<string name="settings__theme_editor__property_value">Значения свойства</string>
|
||||
<string name="settings__theme_editor__property_value_shape_apply_for_all_corners">Применить ко всем углам</string>
|
||||
<string name="settings__theme_editor__property_value_color_dialog_title">Изменить цвет строки</string>
|
||||
<string name="settings__theme_editor__file_selector_dialog_title">Выбрать файл</string>
|
||||
<string name="settings__theme_editor__file_selector_no_files_text">В это расширение еще не добавлено ни одного файла. Для импорта файлов используйте действие \"{action_title}\" на предыдущем экране.</string>
|
||||
<string name="settings__theme_editor__component_meta_is_night_theme">Это ночная тема</string>
|
||||
<string name="settings__theme_editor__component_meta_is_borderless">Без контура</string>
|
||||
<string name="settings__theme_editor__component_meta_stylesheet_path">Путь таблицы стилей</string>
|
||||
<string name="settings__theme_editor__stylesheet_error_title">Ошибка таблицы стилей</string>
|
||||
<string name="settings__theme_editor__stylesheet_error_description">{app_name} может попытаться мягко загрузить таблицу стилей и добавить недостающие схемы, правила или удалить недействительные правила, свойства или значения. Хотите ли вы, чтобы {app_name} применило эти изменения?</string>
|
||||
<string name="snygg__rule_annotation__defines">Переменные</string>
|
||||
<string name="snygg__rule_annotation__defines_description">Определите переменные в этом правиле, чтобы повторно использовать общие цвета или размеры в таблице стилей.</string>
|
||||
<string name="snygg__rule_annotation__font">Шрифт</string>
|
||||
<string name="snygg__rule_annotation__font_name">Название шрифта</string>
|
||||
<string name="snygg__rule_element__window">Окно</string>
|
||||
<string name="snygg__rule_element__key">Кнопка</string>
|
||||
<string name="snygg__rule_element__key_hint">Подсказка кнопки</string>
|
||||
<string name="snygg__rule_element__clipboard_header">Заголовок буфера обмена</string>
|
||||
@@ -268,7 +278,7 @@
|
||||
<string name="snygg__property_value__dp_size">Размер (dp)</string>
|
||||
<string name="snygg__property_value__sp_size">Размер (sp)</string>
|
||||
<string name="snygg__property_value__percentage_size">Размер (%)</string>
|
||||
<string name="settings__input_feedback__title" comment="Title of Input Feedback screen">Звук и вибрация</string>
|
||||
<string name="settings__input_feedback__title" comment="Title of Input Feedback screen">Звук & Вибрация</string>
|
||||
<string name="pref__input_feedback__group_audio__label" comment="Preference group title">Аудиоотклик / звуки</string>
|
||||
<string name="pref__input_feedback__audio_enabled__label" comment="Preference title">Использовать аудиоотклик</string>
|
||||
<string name="pref__input_feedback__audio_enabled__summary_disabled" comment="Preference summary">Не воспроизводить звуки при вводе вне зависимости от системных настроек</string>
|
||||
@@ -286,7 +296,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Сила вибрации</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Для этой функции требуется вибромотор, который, по-видимому, отсутствует на данном устройстве</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Эта функция требует аппаратной поддержки управления амплитудой, которая отсутствует на вашем устройстве</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Эта функция требует поддержки управления амплитудой, которая доступна только на Android 8.0 или новее</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Вибрация нажатия кнопки</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Вибрация долгого нажатия кнопки</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Вибрация автоповтора ввода кнопки</string>
|
||||
@@ -426,7 +435,7 @@
|
||||
<string name="pref__other__settings_accent_color__label" comment="Label of accent color preference in Other"> Настройки цвета акцента
|
||||
</string>
|
||||
<string name="pref__other__settings_language__label" comment="Label of Settings language preference in Other">Настройки языка</string>
|
||||
<string name="pref__other__show_app_icon__label" comment="Label of Show app icon preference in Other">Показывать значок приложения а лаунчере</string>
|
||||
<string name="pref__other__show_app_icon__label" comment="Label of Show app icon preference in Other">Показывать значок приложения в лаунчере</string>
|
||||
<string name="pref__other__show_app_icon__summary_atleast_q" comment="Summary of Show app icon preference in Other for Android 10+">Всегда включено на Android 10+ из-за системных ограничений</string>
|
||||
<!-- About UI strings -->
|
||||
<string name="about__title" comment="Title of About activity">О приложении</string>
|
||||
@@ -446,7 +455,7 @@
|
||||
<string name="about__privacy_policy__summary" comment="Preference summary">Политика конфиденциальности этого проекта</string>
|
||||
<string name="about__project_license__title" comment="Preference title">Лицензия проекта</string>
|
||||
<string name="about__project_license__summary" comment="Preference summary">FlorisBoard выпускается под лицензией {license_name}</string>
|
||||
<string name="about__project_license__error_license_text_failed" comment="Error text for license text loading failure">Ошибка: невозможно загрузить текст лицензии.\nПричина: {error_message}</string>
|
||||
<string name="about__project_license__error_license_text_failed" comment="Error text for license text loading failure">Ошибка: невозможно загрузить текст лицензии.\n-> Причина: {error_message}</string>
|
||||
<string name="about__project_license__error_reason_asset_manager_null" comment="Error text if asset manager is null">Ссылка на диспетчер активов не определена</string>
|
||||
<string name="about__third_party_licenses__title" comment="Preference title">Лицензии третьих сторон</string>
|
||||
<string name="about__third_party_licenses__summary" comment="Preference summary">Лицензии сторонних библиотек, используемых в данном приложении</string>
|
||||
@@ -471,6 +480,7 @@
|
||||
<string name="setup__finish_up__description_p1">Клавиатура {app_name} активирована и готова к дальнейшей настройке.</string>
|
||||
<string name="setup__finish_up__description_p2">Если столкнетесь с какими-либо трудностями, ошибками, сбоями или просто захотите предложить идею, загляните в репозиторий проекта в разделе «О программе»!</string>
|
||||
<string name="setup__finish_up__finish_btn">Перейти к настройке</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Резервное копирование и восстановление</string>
|
||||
<string name="backup_and_restore__back_up__title">Резервирование данных</string>
|
||||
@@ -566,9 +576,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">При очистке основного клипа также удаляется последняя запись в истории</string>
|
||||
<string name="send_to_clipboard__unknown_error">Неизвестная ошибка. Попробуйте еще раз!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Данный формат файла не поддерживается.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Требуется более новая версия Android для этой функции.
|
||||
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Изображение ниже скопировано в буфер обмена.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Инструменты разработчика</string>
|
||||
@@ -624,7 +631,7 @@
|
||||
<string name="ext__meta__title">Заголовок</string>
|
||||
<string name="ext__meta__version">Версия</string>
|
||||
<string name="ext__error__not_found_title">Расширение не найдено</string>
|
||||
<string name="ext__error__not_found_description">Не найдено расширения с ID \"{id}\"</string>
|
||||
<string name="ext__error__not_found_description">Не найдено расширения с ID \"{id}\".</string>
|
||||
<string name="ext__editor__title_create_any">Создать расширение</string>
|
||||
<string name="ext__editor__title_create_keyboard">Создать расширение клавиатуры</string>
|
||||
<string name="ext__editor__title_create_theme">Создать расширение темы</string>
|
||||
|
||||
@@ -178,7 +178,6 @@
|
||||
<string name="pref__input_feedback__audio_feat_key_press__label" comment="Preference title">Zvuky stláčania klávesov</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_mode__label" comment="Preference title">Režim vibrácií</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Táto funkcia vyžaduje hardvérovú podporu riadenia amplitúdy, ktorá vo vašom zariadení chýba.</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Táto funkcia vyžaduje podporu ovládania amplitúdy, ktorá je k dispozícii len v systéme Android 8.0 alebo novšom.</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Vibrácie pri stlačení tlačidla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Vibrácie pri dlhom stlačení tlačidla</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Kľúčové opakované vibrácie</string>
|
||||
@@ -279,6 +278,7 @@
|
||||
<string name="setup__enable_ime__title">Povoliť {app_name}</string>
|
||||
<string name="setup__enable_ime__description">Android vyžaduje, aby bola každá vlastná klávesnica samostatne povolená, kým ju bude možné používať. Prejdite na Systém <i> Jazyk a vstup </i> Nastavenia a povoľte tam aplikáciu {app_name}.</string>
|
||||
<string name="setup__enable_ime__open_settings_btn">Otvoriť systémové nastavenia</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Zálohovanie a obnovenie</string>
|
||||
<string name="backup_and_restore__back_up__title">Zálohovať dáta</string>
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
<!-- Typing strings -->
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
<!-- Typing strings -->
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
<!-- Typing strings -->
|
||||
<!-- About UI strings -->
|
||||
<!-- Setup UI strings -->
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<!-- Clipboard strings -->
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
<!-- Setup UI strings -->
|
||||
<string name="setup__title" comment="Title of Setup">Välkommen!</string>
|
||||
<string name="setup__footer__privacy_policy" comment="Privacy policy label for URL">Sekretesspolicy</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__close" comment="Label of Close button in crash dialog">Stäng</string>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -72,6 +72,7 @@
|
||||
<string name="quick_action__ime_ui_mode_clipboard__tooltip">Відкрити буфер обміну</string>
|
||||
<string name="quick_action__ime_ui_mode_media" maxLength="12">Емоджі</string>
|
||||
<string name="quick_action__ime_ui_mode_media__tooltip">Відкрити панель емоджі</string>
|
||||
<string name="quick_action__language_switch" maxLength="12">Змінити мову</string>
|
||||
<string name="quick_action__settings" maxLength="12">Налаштування</string>
|
||||
<string name="quick_action__settings__tooltip">Відкрити налаштування</string>
|
||||
<string name="quick_action__undo" maxLength="12">Скасувати</string>
|
||||
@@ -277,7 +278,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Сила вібрації</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">Для цієї функції потрібен вібромотор, якого, схоже, немає на цьому пристрої</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">Ця функція вимагає підтримки апаратного керування амплітудою, яка відсутня на вашому пристрої</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">Ця функція вимагає підтримки контролю амплітуди, яка доступна лише на Android 8.0 або новіше</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Вібрація при натисканні клавіш</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Вібрація при довгому натисканні клавіш</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Вібрація повторювального натискання клавіш</string>
|
||||
@@ -462,6 +462,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} тепер ввімкнено в системі і він готовий до ваших налаштувань.</string>
|
||||
<string name="setup__finish_up__description_p2">Якщо ви зіткнулися з будь-якими проблемами, помилками, збоями або просто хочете внести пропозицію, перевірте репозиторій проєкту з розділу «Про застосунок»!</string>
|
||||
<string name="setup__finish_up__finish_btn">Почати персоналізацію</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Резервні копії та відновлення</string>
|
||||
<string name="backup_and_restore__back_up__title">Резервна копія даних</string>
|
||||
@@ -557,7 +558,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Очищення основного запису також видаляє останній запис історії</string>
|
||||
<string name="send_to_clipboard__unknown_error">Виникла невідома помилка. Спробуйте ще раз!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">Цей тип медіа не підтримується.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">Версія Android застаріла для цієї функції. </string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Зображення нижче скопійовано в буфер обміну.</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">Інструменти розробника</string>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<string name="about__title" comment="Title of About activity">ⵅⴼ</string>
|
||||
<!-- Setup UI strings -->
|
||||
<string name="setup__title" comment="Title of Setup">ⴱⵔⵔⴽ!</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<!-- Crash Dialog strings -->
|
||||
<string name="crash_dialog__close" comment="Label of Close button in crash dialog">ⵔⴳⵍ</string>
|
||||
|
||||
@@ -278,7 +278,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">振动强度</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">此功能需要硬件振动器,此设备上似乎缺少此部件</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">此功能需要硬件振幅控制支持,您的设备上缺少该支持</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">此功能需要振幅控制支持,仅适用于安卓8.0或更高版本</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">按键振动</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">长按键振动</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">键盘重复操作振动</string>
|
||||
@@ -462,6 +461,7 @@
|
||||
<string name="setup__finish_up__description_p1">{app_name} 现在已在系统中启用,可供您自定义。</string>
|
||||
<string name="setup__finish_up__description_p2">如果您遇到任何问题、错误、崩溃或只是想提出建议,请从“关于”界面中查看项目源码库!</string>
|
||||
<string name="setup__finish_up__finish_btn">开始自定义</string>
|
||||
<!-- Physical keyboard -->
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">备份 & 还原</string>
|
||||
<string name="backup_and_restore__back_up__title">备份数据</string>
|
||||
@@ -557,7 +557,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">清除主要剪贴板条目时还会删除最新的历史记录条目</string>
|
||||
<string name="send_to_clipboard__unknown_error">发生未知错误。请重试!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">不支持这一媒体类型。</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">安卓版本过低,无法使用此功能。 </string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">已将以下图像复制到剪贴板。</string>
|
||||
<!-- Devtools strings -->
|
||||
<string name="devtools__title" comment="Title of Devtools screen. Translators: treat this string as 'Developer tools' for translation, except a similar short term is available for your language.">开发者工具</string>
|
||||
|
||||
@@ -410,7 +410,6 @@
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__label" comment="Preference title">Vibration strength</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_vibrator" comment="Preference summary">This feature requires a hardware vibrator, which seems to be missing on this device</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_no_amplitude_ctrl" comment="Preference summary">This feature requires hardware amplitude control support, which is missing on your device</string>
|
||||
<string name="pref__input_feedback__haptic_vibration_strength__summary_unsupported_android_version" comment="Preference summary">This feature requires amplitude control support, which is only available on Android 8.0 or newer</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_press__label" comment="Preference title">Key press vibration</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_long_press__label" comment="Preference title">Key long press vibration</string>
|
||||
<string name="pref__input_feedback__haptic_feat_key_repeated_action__label" comment="Preference title">Key repeated action vibration</string>
|
||||
@@ -613,6 +612,14 @@
|
||||
<string name="setup__finish_up__description_p2">If you encounter any issues, bugs, crashes or just want to make a suggestion, check out the project repository from the about screen!</string>
|
||||
<string name="setup__finish_up__finish_btn">Start Customizing</string>
|
||||
|
||||
<!-- Physical keyboard -->
|
||||
<string name="physical_keyboard__title">Physical keyboard</string>
|
||||
<string name="physical_keyboard__system_settings__title">System physical keyboard settings</string>
|
||||
<string name="physical_keyboard__system_settings__summary">Layouts, keyboard shortcuts and modifier keys</string>
|
||||
<string name="physical_keyboard__system_settings__summary_not_attached">Only available when keyboard is attached</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__title">Show on-screen keyboard</string>
|
||||
<string name="physical_keyboard__show_on_screen_keyboard__summary">Show on-screen keyboard while using physical keyboard</string>
|
||||
|
||||
<!-- Back up & Restore -->
|
||||
<string name="backup_and_restore__title">Back up & Restore</string>
|
||||
<string name="backup_and_restore__back_up__title">Back up data</string>
|
||||
@@ -714,8 +721,6 @@
|
||||
<string name="pref__clipboard__clear_primary_clip_deletes_last_item__summary">Clearing the primary clip also deletes the latest history entry</string>
|
||||
<string name="send_to_clipboard__unknown_error">An unknown error occurred. Please try again!</string>
|
||||
<string name="send_to_clipboard__type_not_supported_error">This media type is not supported.</string>
|
||||
<string name="send_to_clipboard__android_version_to_old_error">The version of android is to old for this feature.
|
||||
</string>
|
||||
<string name="send_to_clipboard__description__copied_image_to_clipboard">Copied below image to clipboard.</string>
|
||||
|
||||
|
||||
|
||||
42
flake.lock
generated
42
flake.lock
generated
@@ -1,42 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1673387755,
|
||||
"narHash": "sha256-7y2wuml3bnR2jRgSpDTdeKx9HeAuGW7rYpk4G+Ibeuk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ce1aa29621356706746c53e2d480da7c68f6c972",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
81
flake.nix
81
flake.nix
@@ -1,81 +0,0 @@
|
||||
{
|
||||
description = "florisboard build environment";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
}: let
|
||||
supportedSystems = with flake-utils.lib.system; [x86_64-linux x86_64-darwin aarch64-darwin];
|
||||
forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system);
|
||||
android = {
|
||||
versions = {
|
||||
tools = "26.1.1";
|
||||
platformTools = "33.0.3";
|
||||
buildTools = "31.0.0";
|
||||
ndk = "22.1.7171670";
|
||||
cmake = "3.18.1";
|
||||
emulator = "31.3.9";
|
||||
};
|
||||
platforms = ["32"];
|
||||
};
|
||||
in
|
||||
flake-utils.lib.eachSystem supportedSystems
|
||||
(
|
||||
system: let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = {
|
||||
android_sdk.accept_license = true; # accept all of the sdk licenses
|
||||
allowUnfree = true; # needed to get android stuff to compile
|
||||
};
|
||||
};
|
||||
# Make the android enviornment we specify
|
||||
android-composition = pkgs.androidenv.composeAndroidPackages {
|
||||
toolsVersion = android.versions.tools;
|
||||
platformToolsVersion = android.versions.platformTools;
|
||||
buildToolsVersions = [android.versions.buildTools];
|
||||
platformVersions = android.platforms;
|
||||
cmakeVersions = [android.versions.cmake];
|
||||
includeNDK = true;
|
||||
ndkVersions = [android.versions.ndk];
|
||||
includeEmulator = true;
|
||||
emulatorVersion = android.versions.emulator;
|
||||
};
|
||||
android-sdk =
|
||||
(pkgs.androidenv.composeAndroidPackages {
|
||||
toolsVersion = android.versions.tools;
|
||||
platformToolsVersion = android.versions.platformTools;
|
||||
buildToolsVersions = [android.versions.buildTools];
|
||||
platformVersions = android.platforms;
|
||||
cmakeVersions = [android.versions.cmake];
|
||||
includeNDK = true;
|
||||
ndkVersions = [android.versions.ndk];
|
||||
})
|
||||
.androidsdk;
|
||||
in rec {
|
||||
devShells.default = pkgs.mkShell rec {
|
||||
ANDROID_SDK_ROOT = "${android-sdk}/libexec/android-sdk";
|
||||
ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
|
||||
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${android.versions.buildTools}/aapt2";
|
||||
JAVA_HOME = "${pkgs.jdk8.home}";
|
||||
nativeBulidInputs = with pkgs; [
|
||||
android-sdk
|
||||
jdk8
|
||||
clang
|
||||
kotlin-language-server
|
||||
];
|
||||
|
||||
# Use the same cmakeVersion here
|
||||
shellHook = ''
|
||||
export PATH="$(echo "$ANDROID_SDK_ROOT/cmake/${android.versions.cmake}".*/bin):$PATH"
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -10,8 +10,6 @@ org.gradle.warning.mode=all
|
||||
projectMinSdk=26
|
||||
projectTargetSdk=35
|
||||
projectCompileSdk=35
|
||||
projectBuildToolsVersion=35.0.0
|
||||
projectNdkVersion=26.1.10909125
|
||||
|
||||
projectVersionCode=108
|
||||
projectVersionName=0.5.0-alpha04
|
||||
projectVersionCode=110
|
||||
projectVersionName=0.5.0-beta02
|
||||
|
||||
@@ -20,13 +20,14 @@ kotlinx-serialization-json = "1.8.1"
|
||||
ksp = "2.1.20-1.0.32"
|
||||
mikepenz-aboutlibraries = "12.1.2"
|
||||
patrickgold-compose-tooltip = "0.2.0-rc02"
|
||||
patrickgold-jetpref = "0.2.0-rc03"
|
||||
patrickgold-jetpref = "0.2.0-rc04"
|
||||
|
||||
# Testing
|
||||
androidx-benchmark = "1.3.4"
|
||||
androidx-test-ext = "1.2.1"
|
||||
androidx-test-espresso = "3.6.1"
|
||||
androidx-test-uiautomator = "2.3.0"
|
||||
junit-jupiter-params = "5.13.3"
|
||||
kotlinx-kover = "0.9.1"
|
||||
|
||||
|
||||
@@ -70,6 +71,7 @@ androidx-benchmark-macro = { module = "androidx.benchmark:benchmark-macro-junit4
|
||||
androidx-test-ext = { module = "androidx.test.ext:junit", version.ref = "androidx-test-ext" }
|
||||
androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" }
|
||||
androidx-test-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androidx-test-uiautomator" }
|
||||
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit-jupiter-params" }
|
||||
kotlin-test-junit5 = { module = "org.jetbrains.kotlin:kotlin-test-junit5", version.ref = "kotlin" }
|
||||
|
||||
|
||||
|
||||
12
gradle/tools.versions.toml
Normal file
12
gradle/tools.versions.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[versions]
|
||||
buildTools = "35.0.0"
|
||||
cmake = "4.0.2"
|
||||
jdk = "17"
|
||||
ndk = "26.1.10909125"
|
||||
rustup = "1.24.3"
|
||||
rustToolchain = "1.83.0"
|
||||
|
||||
### Command line tools ###
|
||||
# See: https://developer.android.com/studio#command-line-tools-only
|
||||
cmdlineTools = "13114758"
|
||||
cmdlineToolsChecksum = "7ec965280a073311c339e571cd5de778b9975026cfcbe79f2b1cdcb1e15317ee"
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
6
gradle/wrapper/gradle-wrapper.properties
vendored
6
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,8 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
|
||||
distributionSha256Sum=bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
47
gradlew
vendored
47
gradlew
vendored
@@ -15,6 +15,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
@@ -55,7 +57,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
@@ -80,13 +82,11 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
APP_NAME="Gradle"
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
@@ -114,7 +114,7 @@ case "$( uname )" in #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
CLASSPATH="\\\"\\\""
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
@@ -133,22 +133,29 @@ location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
@@ -193,18 +200,28 @@ if "$cygwin" || "$msys" ; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
|
||||
41
gradlew.bat
vendored
41
gradlew.bat
vendored
@@ -13,8 +13,10 @@
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@@ -25,7 +27,8 @@
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
@@ -56,32 +59,34 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
set CLASSPATH=
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
@@ -21,20 +21,6 @@ import androidx.annotation.ChecksSdkIntAtLeast
|
||||
|
||||
@Suppress("unused")
|
||||
object AndroidVersion {
|
||||
/** Android 7.1 **/
|
||||
inline val ATLEAST_API25_N_MR1
|
||||
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.N_MR1)
|
||||
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1
|
||||
inline val ATMOST_API25_N_MR1
|
||||
get() = Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1
|
||||
|
||||
/** Android 8 **/
|
||||
inline val ATLEAST_API26_O
|
||||
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O)
|
||||
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
||||
inline val ATMOST_API26_O
|
||||
get() = Build.VERSION.SDK_INT <= Build.VERSION_CODES.O
|
||||
|
||||
/** Android 8.1 **/
|
||||
inline val ATLEAST_API27_O_MR1
|
||||
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O_MR1)
|
||||
|
||||
@@ -33,17 +33,11 @@ fun Context.systemVibratorOrNull(): Vibrator? {
|
||||
fun Vibrator.vibrate(duration: Int, strength: Int, factor: Double = 1.0) {
|
||||
if (duration == 0 || strength == 0) return
|
||||
val effectiveDuration = (duration * factor).toLong().coerceAtLeast(1L)
|
||||
if (AndroidVersion.ATLEAST_API26_O) {
|
||||
val effectiveStrength = when {
|
||||
this.hasAmplitudeControl() -> (255.0 * ((strength * factor) / 100.0)).toInt().coerceIn(1, 255)
|
||||
else -> VibrationEffect.DEFAULT_AMPLITUDE
|
||||
}
|
||||
Log.d("Vibrator", "Perform haptic with duration=$effectiveDuration and strength=$effectiveStrength")
|
||||
val effect = VibrationEffect.createOneShot(effectiveDuration, effectiveStrength)
|
||||
this.vibrate(effect)
|
||||
} else {
|
||||
Log.d("Vibrator", "Perform haptic with duration=$effectiveDuration")
|
||||
@Suppress("DEPRECATION")
|
||||
this.vibrate(effectiveDuration)
|
||||
val effectiveStrength = when {
|
||||
this.hasAmplitudeControl() -> (255.0 * ((strength * factor) / 100.0)).toInt().coerceIn(1, 255)
|
||||
else -> VibrationEffect.DEFAULT_AMPLITUDE
|
||||
}
|
||||
Log.d("Vibrator", "Perform haptic with duration=$effectiveDuration and strength=$effectiveStrength")
|
||||
val effect = VibrationEffect.createOneShot(effectiveDuration, effectiveStrength)
|
||||
this.vibrate(effect)
|
||||
}
|
||||
|
||||
@@ -14,10 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import org.gradle.api.tasks.testing.logging.TestLogEvent
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.kotlin.jvm)
|
||||
alias(libs.plugins.kotlinx.kover)
|
||||
}
|
||||
|
||||
val projectGroupId: String by project
|
||||
@@ -48,8 +50,22 @@ tasks {
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Test> {
|
||||
testLogging {
|
||||
events = setOf(TestLogEvent.FAILED, TestLogEvent.PASSED, TestLogEvent.SKIPPED)
|
||||
}
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
kover {
|
||||
useJacoco()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
implementation(libs.kotlinx.coroutines)
|
||||
|
||||
testImplementation(libs.junit.jupiter.params)
|
||||
testImplementation(libs.kotlin.test.junit5)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (C) 2025 The FlorisBoard Contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.florisboard.lib.kotlin
|
||||
|
||||
/**
|
||||
* Utility class for matching MIME types against predefined filters.
|
||||
*
|
||||
* Supports wildcards at any position. E.g. */*, font/*, and application/font-* are valid filter types.
|
||||
* Neither type nor subtype can be empty.
|
||||
*
|
||||
* MIME types can be null or ill-formatted. In such case they won't match anything.
|
||||
*
|
||||
* MIME type filters must be correctly formatted, or an exception will be thrown.
|
||||
*
|
||||
* Inspired by the Android [MimeTypeFilter](https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/java/android/content/MimeTypeFilter.java)
|
||||
*/
|
||||
class MimeTypeFilter {
|
||||
/**
|
||||
* The original list of filter types.
|
||||
*/
|
||||
val types: List<String>
|
||||
|
||||
private val filters: List<Pair<Regex, Regex>>
|
||||
|
||||
internal constructor(filterTypes: List<String>) {
|
||||
types = filterTypes
|
||||
filters = filterTypes.map { filterType ->
|
||||
val filterTypeParts = filterType.split("/")
|
||||
require(filterTypeParts.size == 2) {
|
||||
"Ill-formatted MIME type filter '$filterType'. Must be type/subtype."
|
||||
}
|
||||
require(filterTypeParts[0].isNotEmpty() && filterTypeParts[1].isNotEmpty()) {
|
||||
"Ill-formatted MIME type filter '$filterType'. Type or subtype empty."
|
||||
}
|
||||
val filter0 = filterTypeParts[0].replace("*", "[^\\s]+").toRegex()
|
||||
val filter1 = filterTypeParts[1].replace("*", "[^\\s]+").toRegex()
|
||||
filter0 to filter1
|
||||
}
|
||||
println(filters)
|
||||
}
|
||||
|
||||
private fun matchMimeTypeAgainstFilters(mimeType: String): Boolean {
|
||||
val mimeTypeParts = mimeType.split("/")
|
||||
if (mimeTypeParts.size != 2 || mimeTypeParts[0].isEmpty() || mimeTypeParts[1].isEmpty()) {
|
||||
return false
|
||||
}
|
||||
for ((filter0, filter1) in filters) {
|
||||
if (mimeTypeParts[0].matches(filter0) && mimeTypeParts[1].matches(filter1)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches a given [mimeType] against the filter types of this [MimeTypeFilter]. If the MIME type is null or
|
||||
* ill-formatted, it will not match.
|
||||
*/
|
||||
fun matches(mimeType: String?): Boolean {
|
||||
if (mimeType.isNullOrEmpty()) {
|
||||
return false
|
||||
}
|
||||
return matchMimeTypeAgainstFilters(mimeType)
|
||||
}
|
||||
|
||||
// TODO: document and test
|
||||
fun matchesAll(mimeTypes: List<String?>?): Boolean {
|
||||
if (mimeTypes.isNullOrEmpty()) {
|
||||
return false
|
||||
}
|
||||
for (mimeType in mimeTypes) {
|
||||
if (!matches(mimeType)) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// TODO: document and test
|
||||
fun matchesAny(mimeTypes: List<String?>?): Boolean {
|
||||
if (mimeTypes.isNullOrEmpty()) {
|
||||
return false
|
||||
}
|
||||
for (mimeType in mimeTypes) {
|
||||
if (matches(mimeType)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// TODO: document and test
|
||||
fun matchesOne(mimeTypes: List<String?>?): Boolean {
|
||||
if (mimeTypes.isNullOrEmpty()) {
|
||||
return false
|
||||
}
|
||||
var numMatches = 0
|
||||
for (mimeType in mimeTypes) {
|
||||
if (matches(mimeType)) {
|
||||
if (++numMatches > 1) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
return numMatches == 1
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new [MimeTypeFilter] with given [filterTypes].
|
||||
*/
|
||||
fun mimeTypeFilterOf(vararg filterTypes: String): MimeTypeFilter {
|
||||
return MimeTypeFilter(filterTypes.toList())
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
* Copyright (C) 2025 The FlorisBoard Contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.florisboard.lib.kotlin
|
||||
|
||||
import org.junit.jupiter.api.Assertions.*
|
||||
import org.junit.jupiter.api.Nested
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.params.ParameterizedTest
|
||||
import org.junit.jupiter.params.provider.ValueSource
|
||||
|
||||
class MimeTypeFilterTest {
|
||||
@Nested
|
||||
inner class BasicMatching {
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = [
|
||||
"font/woff2",
|
||||
"image/png",
|
||||
"application/x-font-otf",
|
||||
])
|
||||
fun `valid matches`(mimeType: String) {
|
||||
val filter = mimeTypeFilterOf(mimeType)
|
||||
assertTrue { filter.matches(mimeType) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `null does not match`() {
|
||||
val filter = mimeTypeFilterOf("image/png")
|
||||
assertFalse { filter.matches(null) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `empty string does not match`() {
|
||||
val filter = mimeTypeFilterOf("image/png")
|
||||
assertFalse { filter.matches("") }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `blank string does not match`() {
|
||||
val filter = mimeTypeFilterOf("image/png")
|
||||
assertFalse { filter.matches(" ") }
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
inner class WildcardMatching {
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = [
|
||||
"image/png",
|
||||
"image/jpeg",
|
||||
"font/woff2",
|
||||
"application/x-font-otf",
|
||||
])
|
||||
fun `should match type=any subtype=any`(mimeType: String) {
|
||||
val filter = mimeTypeFilterOf("*/*")
|
||||
assertTrue { filter.matches(mimeType) }
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = [
|
||||
"",
|
||||
" ",
|
||||
"/",
|
||||
" /",
|
||||
"/ ",
|
||||
"image/",
|
||||
"/jpeg",
|
||||
"image/ ",
|
||||
" /jpeg",
|
||||
"image/png/jpeg",
|
||||
"image-jpeg",
|
||||
])
|
||||
fun `should not match type=any subtype=any`(mimeType: String) {
|
||||
val filter = mimeTypeFilterOf("*/*")
|
||||
assertFalse { filter.matches(mimeType) }
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = [
|
||||
"image/png",
|
||||
"image/jpeg",
|
||||
])
|
||||
fun `should match type=image subtype=any`(mimeType: String) {
|
||||
val filter = mimeTypeFilterOf("image/*")
|
||||
assertTrue { filter.matches(mimeType) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `legacy otf file should work with wildcard filters`() {
|
||||
// https://github.com/florisboard/florisboard/issues/2957
|
||||
val filter = mimeTypeFilterOf(
|
||||
"font/*",
|
||||
"application/font-*",
|
||||
"application/x-font-*",
|
||||
"application/vnd.ms-fontobject",
|
||||
)
|
||||
assertTrue { filter.matches("application/x-font-otf") }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `should match type=any subtype=font-any`() {
|
||||
val filter = mimeTypeFilterOf(
|
||||
"*/x-font-*",
|
||||
)
|
||||
assertTrue { filter.matches("application/x-font-otf") }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `should match type=application subtype=any-font-any`() {
|
||||
val filter = mimeTypeFilterOf(
|
||||
"application/*-font-*",
|
||||
)
|
||||
assertTrue { filter.matches("application/x-font-otf") }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `should match type=any-application-any subtype=any-font-any`() {
|
||||
val filter = mimeTypeFilterOf(
|
||||
"*-application-*/*-font-*",
|
||||
)
|
||||
assertTrue { filter.matches("x-application-custom/x-font-otf") }
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user