mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-24 15:47:53 -05:00
Compare commits
368 Commits
v2.38.0
...
create-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f974bf8b74 | ||
|
|
f3e5c74154 | ||
|
|
05a06eea27 | ||
|
|
663d7f3354 | ||
|
|
dbe5b88b52 | ||
|
|
c839fffadb | ||
|
|
8edfe53b45 | ||
|
|
0153fc54f1 | ||
|
|
f6b0af153f | ||
|
|
cfefce1baf | ||
|
|
ff1683d5b4 | ||
|
|
e181a866f7 | ||
|
|
1571d5766c | ||
|
|
1a4582adae | ||
|
|
88335b970f | ||
|
|
cac2dffb6c | ||
|
|
8a868e17bc | ||
|
|
1d05e96690 | ||
|
|
1d315d530f | ||
|
|
597fefa9c9 | ||
|
|
764834bbae | ||
|
|
582cfb4cf0 | ||
|
|
998fb16a03 | ||
|
|
40dd95f9c2 | ||
|
|
a27a6733e8 | ||
|
|
c76de152fc | ||
|
|
d0d75a4f50 | ||
|
|
df42111f83 | ||
|
|
da52a3685f | ||
|
|
bd85711e7f | ||
|
|
a02bf3e05c | ||
|
|
a397199834 | ||
|
|
27c16c2faf | ||
|
|
131004494b | ||
|
|
777bde7b5e | ||
|
|
3ba8f36108 | ||
|
|
773a0fa6d4 | ||
|
|
e88a537aec | ||
|
|
6ac60f9546 | ||
|
|
6fd6379ef3 | ||
|
|
2a4949a505 | ||
|
|
386a24305d | ||
|
|
45c4b89a4d | ||
|
|
73ea525d8b | ||
|
|
2ab267f601 | ||
|
|
ae54e91382 | ||
|
|
45c082fba9 | ||
|
|
aeedd9c3ac | ||
|
|
e76e4f42f2 | ||
|
|
f68a1f1c86 | ||
|
|
45a07d361c | ||
|
|
b786fd60b4 | ||
|
|
66646758a8 | ||
|
|
ece309fbde | ||
|
|
99c472330f | ||
|
|
246d5b5e4c | ||
|
|
8a8b243012 | ||
|
|
4612473e62 | ||
|
|
ab94e05e91 | ||
|
|
d2ecad5c3f | ||
|
|
a4c9d5a345 | ||
|
|
5b30a11da3 | ||
|
|
bda159a343 | ||
|
|
f473d31f13 | ||
|
|
1afe181085 | ||
|
|
647b7185df | ||
|
|
f301726a02 | ||
|
|
819be647b5 | ||
|
|
6215972732 | ||
|
|
90e406c30e | ||
|
|
d7a5a47393 | ||
|
|
8bacd4d1f5 | ||
|
|
a4d9ef0cb1 | ||
|
|
8bed9c753b | ||
|
|
47e598ede1 | ||
|
|
7edd41b08f | ||
|
|
a00dd69005 | ||
|
|
201c2b5964 | ||
|
|
5329a69e4d | ||
|
|
7ab0ffa0a3 | ||
|
|
33471e91be | ||
|
|
129bffe4b7 | ||
|
|
3f3a9ac807 | ||
|
|
c702efbd1e | ||
|
|
088098edad | ||
|
|
1e3e3c0e2e | ||
|
|
d9781e207c | ||
|
|
4a83c21d0d | ||
|
|
5d592e253b | ||
|
|
820091b8fa | ||
|
|
40c5eab3c5 | ||
|
|
c133fcf08a | ||
|
|
8094b7cc47 | ||
|
|
abd8716b56 | ||
|
|
cecad8351e | ||
|
|
4d1af69ed8 | ||
|
|
f468c06801 | ||
|
|
a0ef9b8d1b | ||
|
|
27f1f6f179 | ||
|
|
6ea1120517 | ||
|
|
2f7c44cbbe | ||
|
|
dd866a0f2b | ||
|
|
889d1beab4 | ||
|
|
357052ee42 | ||
|
|
19eda065ba | ||
|
|
5279c5c3b2 | ||
|
|
17be4e739f | ||
|
|
f2dd2e4d7e | ||
|
|
7c6ce077c1 | ||
|
|
45bf552eff | ||
|
|
633d412b52 | ||
|
|
54b8fb2d78 | ||
|
|
443e9f110b | ||
|
|
ac80bed084 | ||
|
|
802717c7a4 | ||
|
|
68b931f3b5 | ||
|
|
d4a4067754 | ||
|
|
ca18cfd6d1 | ||
|
|
18d80d2a4a | ||
|
|
ba4b9e4234 | ||
|
|
b87d531069 | ||
|
|
5cbb2505e3 | ||
|
|
e500a13c7e | ||
|
|
a4e9333c6e | ||
|
|
9dbe39e1a4 | ||
|
|
13c78eaee5 | ||
|
|
ef0e36b8be | ||
|
|
a1351563c1 | ||
|
|
303b40e572 | ||
|
|
622ea37554 | ||
|
|
8a80d16f11 | ||
|
|
4ea515c342 | ||
|
|
ce3dbaf902 | ||
|
|
a429b858e2 | ||
|
|
d8d228aa67 | ||
|
|
b31785a705 | ||
|
|
48b5e9f775 | ||
|
|
150ef5982a | ||
|
|
f91b94d100 | ||
|
|
6f25cc416f | ||
|
|
8358e982f9 | ||
|
|
637fdeebe6 | ||
|
|
96cf5274b1 | ||
|
|
1df5772857 | ||
|
|
44690dae55 | ||
|
|
ff46db7ac2 | ||
|
|
8f03595683 | ||
|
|
ac7494d08d | ||
|
|
e6ae0dab30 | ||
|
|
bc7da41da4 | ||
|
|
2fc5216cf1 | ||
|
|
8a792481b6 | ||
|
|
53e4e6b675 | ||
|
|
f06d338c5a | ||
|
|
fef65bd5d2 | ||
|
|
b830040639 | ||
|
|
2662178bef | ||
|
|
2a15ba9fe4 | ||
|
|
f777491dcd | ||
|
|
81445a21ff | ||
|
|
ff410542fb | ||
|
|
343e10f433 | ||
|
|
8023372a03 | ||
|
|
cd999f2346 | ||
|
|
4272d48fbf | ||
|
|
ae40737b75 | ||
|
|
4fe55be866 | ||
|
|
c5c4cf615f | ||
|
|
44e542ed5a | ||
|
|
bc2be8d33c | ||
|
|
73ed0edab7 | ||
|
|
a34a091cdb | ||
|
|
4f3d162d7a | ||
|
|
99605d7d18 | ||
|
|
fa152510a6 | ||
|
|
ddc868894e | ||
|
|
0a65fb607a | ||
|
|
921c76459c | ||
|
|
abf1ad61d6 | ||
|
|
fbcc2ef4fe | ||
|
|
699e7ce489 | ||
|
|
a45588abee | ||
|
|
44d5095101 | ||
|
|
b0b6de9a7d | ||
|
|
6b13e83146 | ||
|
|
cbac67728e | ||
|
|
400f4d20c1 | ||
|
|
3288b4602a | ||
|
|
74dec728ad | ||
|
|
aa72663440 | ||
|
|
f2fa6ed96d | ||
|
|
9b8e78a264 | ||
|
|
0e442beed5 | ||
|
|
ff1d38d159 | ||
|
|
5f8c8048e6 | ||
|
|
dc6d951241 | ||
|
|
9037ae0d53 | ||
|
|
83e7aa61fa | ||
|
|
11030b1e6a | ||
|
|
2f37e2a9c7 | ||
|
|
fcf891647c | ||
|
|
8465131d41 | ||
|
|
a33656d43b | ||
|
|
52397ab340 | ||
|
|
930a730252 | ||
|
|
37a707ba1d | ||
|
|
d9e4f58687 | ||
|
|
98bbca85b2 | ||
|
|
0f9aac76e2 | ||
|
|
7c933f888c | ||
|
|
9ae02ddb15 | ||
|
|
8333dd0d0c | ||
|
|
c21159c571 | ||
|
|
81db39d4e1 | ||
|
|
3e77ab6845 | ||
|
|
562ae9cd56 | ||
|
|
cb321ffdb8 | ||
|
|
a8d654b8d5 | ||
|
|
b2806cd000 | ||
|
|
d4166f681d | ||
|
|
19829be16a | ||
|
|
666ee288c3 | ||
|
|
2a8b5f983f | ||
|
|
adf8ae9878 | ||
|
|
7a6bee4a13 | ||
|
|
4a05031e42 | ||
|
|
8c86cc3c1a | ||
|
|
5205011610 | ||
|
|
f689cb6a8e | ||
|
|
412215603e | ||
|
|
97c34f8ae6 | ||
|
|
6563bc1b70 | ||
|
|
205bda34ae | ||
|
|
663f68fff9 | ||
|
|
dc9f4fafde | ||
|
|
6651aff962 | ||
|
|
55a6dfafed | ||
|
|
a6bf282db5 | ||
|
|
63bd0edb10 | ||
|
|
9f2adf4691 | ||
|
|
d36b95d275 | ||
|
|
c7fdd63d7d | ||
|
|
412077e2ab | ||
|
|
0f1005c193 | ||
|
|
7353414ae6 | ||
|
|
894a3dd44f | ||
|
|
4b86f3e822 | ||
|
|
b6077e1dd6 | ||
|
|
267efb8905 | ||
|
|
9412a70517 | ||
|
|
de754acf92 | ||
|
|
fce7bf9cd0 | ||
|
|
6f335d44a0 | ||
|
|
2fa6af7de9 | ||
|
|
4b9dfc9e0c | ||
|
|
3ead1ab079 | ||
|
|
ff5ffed8aa | ||
|
|
d047c38bc2 | ||
|
|
52b62b1075 | ||
|
|
ad384af7e4 | ||
|
|
06b3ec09be | ||
|
|
c803c5be8b | ||
|
|
f120a00a75 | ||
|
|
99a244ae2e | ||
|
|
713af1aeaa | ||
|
|
1cc7ac3f4d | ||
|
|
dfee86186a | ||
|
|
d82574136a | ||
|
|
766f953e65 | ||
|
|
593a4098a5 | ||
|
|
ecfc29feb9 | ||
|
|
84ce92cebc | ||
|
|
489a2eb037 | ||
|
|
e48e0233bb | ||
|
|
b67471df92 | ||
|
|
be727462ee | ||
|
|
ed72b41527 | ||
|
|
309980836a | ||
|
|
fb3ab11700 | ||
|
|
ccbcc8b736 | ||
|
|
7fcfcf7bdb | ||
|
|
f7231a3ac5 | ||
|
|
c4ae77123d | ||
|
|
81c6874aff | ||
|
|
de05560297 | ||
|
|
816a3b2f2c | ||
|
|
c8af3fe35e | ||
|
|
f3448d06c1 | ||
|
|
3442cf3a35 | ||
|
|
03115c0de1 | ||
|
|
9f5f7f0dd8 | ||
|
|
4901a6b183 | ||
|
|
f2372c40aa | ||
|
|
3f1c0695b8 | ||
|
|
fd9991ceb1 | ||
|
|
2628a9856b | ||
|
|
c1f3fae50b | ||
|
|
2d5cd25696 | ||
|
|
dc8b7d6ae4 | ||
|
|
a2211947cd | ||
|
|
db2617e2d4 | ||
|
|
412f48d801 | ||
|
|
bd7bf7ddbe | ||
|
|
e7a99ad7b6 | ||
|
|
8fce04cf45 | ||
|
|
62f2545f9e | ||
|
|
d22e0bd5e5 | ||
|
|
61d206f318 | ||
|
|
7bfef398c3 | ||
|
|
2311acc15e | ||
|
|
14787cc520 | ||
|
|
7b57b603aa | ||
|
|
185f6d1a5f | ||
|
|
791cf7224e | ||
|
|
8cab9a4204 | ||
|
|
42a8efd5e5 | ||
|
|
85e171ae4a | ||
|
|
18d5438c38 | ||
|
|
0f311d1901 | ||
|
|
5f33679ddd | ||
|
|
ce0fab5b38 | ||
|
|
d6ba49add5 | ||
|
|
2dcb561882 | ||
|
|
25153d98e7 | ||
|
|
ee90044a59 | ||
|
|
4a0a23a8f7 | ||
|
|
09d5b68baf | ||
|
|
402a5ef044 | ||
|
|
31fd642295 | ||
|
|
68dc947c4c | ||
|
|
4daa00111b | ||
|
|
b6e00fa096 | ||
|
|
3cf5910e62 | ||
|
|
681d0744d4 | ||
|
|
c19d6dd2f2 | ||
|
|
35b81437f8 | ||
|
|
f1403e6fce | ||
|
|
7f12530b8e | ||
|
|
850209c00b | ||
|
|
72e7b8127a | ||
|
|
db2808fa94 | ||
|
|
d9c3509bbc | ||
|
|
231b17d955 | ||
|
|
310a1266a5 | ||
|
|
407e7293af | ||
|
|
577ab84020 | ||
|
|
650cf559ba | ||
|
|
b3b53cd25a | ||
|
|
160456d21c | ||
|
|
37b5ed2c24 | ||
|
|
5c410d4817 | ||
|
|
940ba85e3d | ||
|
|
92508bdd2b | ||
|
|
235cbce123 | ||
|
|
060cfa75bf | ||
|
|
329770576e | ||
|
|
4881212adb | ||
|
|
5b7ed3f4e5 | ||
|
|
bdd6bc3923 | ||
|
|
1d5d5419dc | ||
|
|
196051dc82 | ||
|
|
4962701224 | ||
|
|
a74c801977 | ||
|
|
409f35719d | ||
|
|
f761ae6c3e | ||
|
|
d56f1eb2a3 | ||
|
|
23907a558d | ||
|
|
6b77aff18f |
6
.github/workflows/android.yml
vendored
6
.github/workflows/android.yml
vendored
@@ -32,10 +32,10 @@ jobs:
|
||||
matrix:
|
||||
flavor: [Foss, Gplay]
|
||||
steps:
|
||||
- uses: actions/checkout@v5.0.0
|
||||
- uses: actions/checkout@v5
|
||||
- name: Fail on bad translations
|
||||
run: if grep -ri "<xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
|
||||
- uses: gradle/actions/wrapper-validation@v4
|
||||
- uses: gradle/actions/wrapper-validation@v5
|
||||
- name: set up OpenJDK 21
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
|
||||
- name: Archive test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4.6.2
|
||||
uses: actions/upload-artifact@v5.0.0
|
||||
with:
|
||||
name: test-results-flavor${{ matrix.flavor }}
|
||||
path: app/build/reports
|
||||
|
||||
16
.github/workflows/changelog-to-fastlane.yml
vendored
16
.github/workflows/changelog-to-fastlane.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Convert CHANGELOG to Fastlane
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
@@ -6,20 +7,11 @@ on:
|
||||
- main
|
||||
paths:
|
||||
- 'CHANGELOG.md'
|
||||
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
contents: write
|
||||
deployments: none
|
||||
discussions: none
|
||||
id-token: none
|
||||
issues: none
|
||||
packages: none
|
||||
pages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
jobs:
|
||||
convert_changelog_to_fastlane:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -27,7 +19,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
id: checkout
|
||||
uses: actions/checkout@v5.0.0
|
||||
uses: actions/checkout@v5
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6.0.0
|
||||
with:
|
||||
|
||||
16
.github/workflows/contributors-to-file.yml
vendored
16
.github/workflows/contributors-to-file.yml
vendored
@@ -1,22 +1,14 @@
|
||||
name: Write contributors to file
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '3 4 * * 0'
|
||||
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
contents: write
|
||||
deployments: none
|
||||
discussions: none
|
||||
id-token: none
|
||||
issues: none
|
||||
packages: none
|
||||
pages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
jobs:
|
||||
contributors_to_file:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -25,7 +17,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
id: checkout
|
||||
uses: actions/checkout@v5.0.0
|
||||
uses: actions/checkout@v5
|
||||
- name: Update contributors
|
||||
id: update_contributors
|
||||
uses: TheLastProject/contributors-to-file-action@v3.2.0
|
||||
|
||||
16
.github/workflows/generate-feature-graphic.yml
vendored
16
.github/workflows/generate-feature-graphic.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Generate feature graphic
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
@@ -7,25 +8,16 @@ on:
|
||||
paths:
|
||||
- 'fastlane/**/title.txt'
|
||||
- '.scripts/generate_feature_graphic/**'
|
||||
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
contents: write
|
||||
deployments: none
|
||||
discussions: none
|
||||
id-token: none
|
||||
issues: none
|
||||
packages: none
|
||||
pages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
jobs:
|
||||
generate-feature-graphic:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5.0.0
|
||||
- uses: actions/checkout@v5
|
||||
- name: Install requirements
|
||||
run: |
|
||||
sudo apt-get update
|
||||
|
||||
13
.github/workflows/update-gradle-wrapper.yml
vendored
13
.github/workflows/update-gradle-wrapper.yml
vendored
@@ -5,26 +5,15 @@ on:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
contents: write
|
||||
deployments: none
|
||||
discussions: none
|
||||
id-token: none
|
||||
issues: none
|
||||
packages: none
|
||||
pages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
jobs:
|
||||
update-gradle-wrapper:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Update Gradle Wrapper
|
||||
uses: gradle-update/update-gradle-wrapper-action@v2
|
||||
|
||||
16
.github/workflows/update-locales.yml
vendored
16
.github/workflows/update-locales.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Update locales
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
@@ -7,25 +8,16 @@ on:
|
||||
paths:
|
||||
- app/src/main/res/values-*/strings.xml
|
||||
- app/src/main/res/values/settings.xml
|
||||
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
contents: write
|
||||
deployments: none
|
||||
discussions: none
|
||||
id-token: none
|
||||
issues: none
|
||||
packages: none
|
||||
pages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
jobs:
|
||||
update-locales:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5.0.0
|
||||
- uses: actions/checkout@v5
|
||||
- name: Add new locales
|
||||
run: .scripts/new-locales.py
|
||||
- name: Update locales
|
||||
|
||||
@@ -42,6 +42,7 @@ for lang in "$script_location/../../fastlane/metadata/android/"*; do
|
||||
ja-JP) sed -i "s/Lexend/Noto Sans CJK JP/" featureGraphic.svg ;;
|
||||
kn-IN) sed -i -e 's/font-size="150"/font-size="125"/' -e 's/\(<tspan x="469" \)y="270"/\1y="240"/' -e "s/Lobster/Noto Sans Kannada/" -e "s/Lexend/Noto Sans Kannada/" featureGraphic.svg ;;
|
||||
ko) sed -i "s/Lexend/Noto Sans CJK KR/" featureGraphic.svg ;;
|
||||
ta-IN) sed -i -e 's/font-size="150"/font-size="110"/' featureGraphic.svg ;;
|
||||
zh-CN) sed -i "s/Lexend/Noto Sans CJK SC/" featureGraphic.svg ;;
|
||||
zh-TW) sed -i -e "s/Lobster/Noto Sans CJK TC/" -e "s/Lexend/Noto Sans CJK TC/" featureGraphic.svg ;;
|
||||
*) ;;
|
||||
|
||||
11
CHANGELOG.md
11
CHANGELOG.md
@@ -1,5 +1,16 @@
|
||||
# Changelog
|
||||
|
||||
## v2.39.1 - 154 (2025-10-01)
|
||||
|
||||
- Fix possible crash that could occur for cards missing colour information in the database
|
||||
|
||||
## v2.39.0 - 153 (2025-09-30)
|
||||
|
||||
- Target Android 16
|
||||
- Fix possible crash after removing image from card
|
||||
- Remove "Screen orientation" feature (Google removed the ability for apps to control screen rotation when targeting Android 16)
|
||||
- Add crash reporter to FOSS build (not used in Google Play version, only in other app stores)
|
||||
|
||||
## v2.38.0 - 152 (2025-09-12)
|
||||
|
||||
- Add support for .pkpasses files
|
||||
|
||||
@@ -23,6 +23,30 @@ for good reason.
|
||||
|
||||
## Code Changes
|
||||
|
||||
Note: submitting LLM ("AI") generated code is strongly discouraged, as such
|
||||
code is often (subtly) incorrect or overcomplicated (for example: unnecessarily
|
||||
pulling in extra libraries for functionality already covered by existing
|
||||
libraries). It also often makes unrelated changes that increase the risk of
|
||||
introducing new issues and complicates reviewing. Even when it doesn't do any
|
||||
of the before mentioned things, it will often not fit the coding style and flow
|
||||
of existing code, requiring excessive refactoring.
|
||||
|
||||
While we cannot ever control or be sure if LLMs were used to generate the
|
||||
submitted code, it is your responsibility to ensure that whatever code you
|
||||
submit is correct and fits within the design of existing code. It is never
|
||||
acceptable to defend a change by stating a LLM suggested it.
|
||||
|
||||
This is a personal plea more than anything: please understand that writing code
|
||||
is the easy part. The hard part is making sure the code fits the design of the
|
||||
rest of the application and is maintainable. Reviewing is a very time-consuming
|
||||
task for this reason. Please do not use LLMs to quickly generate a "fix" and
|
||||
moving the cost of labor to me as a reviewer. If you do use LLMs to generate
|
||||
part of your code, please be open about this, explain what was generated how
|
||||
and how you confirmed and refactored the code to fit the project and minimized
|
||||
risk.
|
||||
|
||||
Please never submit LLM-generated code as-is.
|
||||
|
||||
### Test Your Code
|
||||
|
||||
There are four possible tests you can run to verify your code. The first
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
**Last updated**
|
||||
August 30 2023
|
||||
September 30 2025
|
||||
|
||||
# Privacy Policy
|
||||
Catima does not collect or transmit any personal information.
|
||||
@@ -11,6 +11,12 @@ To ensure correct app functionality, we require access to the following:
|
||||
|
||||
Catima offers a feature to share cards with other users. All the relevant data is in the generated shareable URLs and never transmitted to our servers. When viewed through catima.app, the data in the URL is rendered using client-side Javascript to further ensure no data is ever transmitted to us.
|
||||
|
||||
## Crash reporting privacy
|
||||
|
||||
In the FOSS version of Catima (the version used on IzzyOnDroid, F-Droid and GitHub), the open source crash reporter ACRA is used for crash reporting. When a crash is detected, Catima will ask the user if they are willing to report the crash. If they choose to do so, the user's mail client is opened so they can review the data that would be sent. Crash reporting data is only sent when the user explicitly chooses to do so, it is **never** sent automatically. Crash reporting data is only used to solve crashes and no (potentially) sensitive information is ever shared. Users who do not want to be asked to report crashes can disable the "Ask to send crash reports" setting in Catima settings.
|
||||
|
||||
For the Google Play version of Catima, crash reporting is [managed by Google](https://support.google.com/googleplay/android-developer/answer/9859174?hl=en). Users can opt in or out of crash reporting through the Google app under the "Usage and diagnostics" setting.
|
||||
|
||||
# Changes
|
||||
This Privacy Policy may be updated from time to time for any reason. We will notify you of any changes to our Privacy Policy by posting the new Privacy Policy to https://catima.app/privacy-policy/. A snapshot of the Privacy Policy is available within the Catima app, though it may be outdated. When the Privacy Policy on the website and in the app differ, the website should be considered leading. You are advised to consult the Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import com.android.build.gradle.internal.tasks.factory.dependsOn
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
alias(libs.plugins.com.android.application)
|
||||
alias(libs.plugins.org.jetbrains.kotlin.android)
|
||||
}
|
||||
|
||||
kotlin {
|
||||
@@ -11,14 +11,14 @@ kotlin {
|
||||
|
||||
android {
|
||||
namespace = "protect.card_locker"
|
||||
compileSdk = 35
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "me.hackerchick.catima"
|
||||
minSdk = 21
|
||||
targetSdk = 35
|
||||
versionCode = 152
|
||||
versionName = "2.38.0"
|
||||
targetSdk = 36
|
||||
versionCode = 154
|
||||
versionName = "2.39.1"
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
multiDexEnabled = true
|
||||
@@ -29,6 +29,7 @@ android {
|
||||
|
||||
buildConfigField("boolean", "showDonate", "true")
|
||||
buildConfigField("boolean", "showRateOnGooglePlay", "false")
|
||||
buildConfigField("boolean", "useAcraCrashReporter", "true")
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -61,6 +62,9 @@ android {
|
||||
// Google doesn't allow donation links
|
||||
buildConfigField("boolean", "showDonate", "false")
|
||||
buildConfigField("boolean", "showRateOnGooglePlay", "true")
|
||||
|
||||
// Google Play already sends crashes to the Google Play Console
|
||||
buildConfigField("boolean", "useAcraCrashReporter", "false")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,38 +113,38 @@ android {
|
||||
|
||||
dependencies {
|
||||
// AndroidX
|
||||
implementation("androidx.appcompat:appcompat:1.7.1")
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
|
||||
implementation("androidx.core:core-ktx:1.16.0")
|
||||
implementation("androidx.core:core-remoteviews:1.1.0")
|
||||
implementation("androidx.core:core-splashscreen:1.0.1")
|
||||
implementation("androidx.exifinterface:exifinterface:1.4.1")
|
||||
implementation("androidx.palette:palette:1.0.0")
|
||||
implementation("androidx.preference:preference:1.2.1")
|
||||
implementation("com.google.android.material:material:1.13.0")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
|
||||
implementation(libs.androidx.appcompat.appcompat)
|
||||
implementation(libs.androidx.constraintlayout.constraintlayout)
|
||||
implementation(libs.androidx.core.core.ktx)
|
||||
implementation(libs.androidx.core.core.remoteviews)
|
||||
implementation(libs.androidx.core.core.splashscreen)
|
||||
implementation(libs.androidx.exifinterface.exifinterface)
|
||||
implementation(libs.androidx.palette.palette)
|
||||
implementation(libs.androidx.preference.preference)
|
||||
implementation(libs.com.google.android.material.material)
|
||||
coreLibraryDesugaring(libs.com.android.tools.desugar.jdk.libs)
|
||||
|
||||
// Third-party
|
||||
implementation("com.journeyapps:zxing-android-embedded:4.3.0@aar")
|
||||
implementation("com.github.yalantis:ucrop:2.2.10")
|
||||
implementation("com.google.zxing:core:3.5.3")
|
||||
implementation("org.apache.commons:commons-csv:1.9.0")
|
||||
implementation("com.jaredrummler:colorpicker:1.1.0")
|
||||
implementation("net.lingala.zip4j:zip4j:2.11.5")
|
||||
implementation(libs.com.journeyapps.zxing.android.embedded)
|
||||
implementation(libs.com.github.yalantis.ucrop)
|
||||
implementation(libs.com.google.zxing.core)
|
||||
implementation(libs.org.apache.commons.commons.csv)
|
||||
implementation(libs.com.jaredrummler.colorpicker)
|
||||
implementation(libs.net.lingala.zip4j.zip4j)
|
||||
|
||||
// Crash reporting
|
||||
implementation(libs.bundles.acra)
|
||||
|
||||
// Testing
|
||||
val androidXTestVersion = "1.7.0"
|
||||
val junitVersion = "4.13.2"
|
||||
testImplementation("androidx.test:core:$androidXTestVersion")
|
||||
testImplementation("junit:junit:$junitVersion")
|
||||
testImplementation("org.robolectric:robolectric:4.16")
|
||||
testImplementation(libs.androidx.test.core)
|
||||
testImplementation(libs.junit.junit)
|
||||
testImplementation(libs.org.robolectric.robolectric)
|
||||
|
||||
androidTestImplementation("androidx.test:core:$androidXTestVersion")
|
||||
androidTestImplementation("junit:junit:$junitVersion")
|
||||
androidTestImplementation("androidx.test.ext:junit:1.3.0")
|
||||
androidTestImplementation("androidx.test:runner:$androidXTestVersion")
|
||||
androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
|
||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0")
|
||||
androidTestImplementation(libs.bundles.androidx.test)
|
||||
androidTestImplementation(libs.junit.junit)
|
||||
androidTestImplementation(libs.androidx.test.ext.junit)
|
||||
androidTestImplementation(libs.androidx.test.uiautomator.uiautomator)
|
||||
androidTestImplementation(libs.androidx.test.espresso.espresso.core)
|
||||
}
|
||||
|
||||
tasks.register("copyRawResFiles", Copy::class) {
|
||||
|
||||
17
app/proguard-rules.pro
vendored
17
app/proguard-rules.pro
vendored
@@ -21,4 +21,19 @@
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# This keep the class and method names the same, for debugging stack traces
|
||||
-dontobfuscate
|
||||
-dontobfuscate
|
||||
|
||||
# Required for uCrop 2.2.11
|
||||
# This is generated automatically by the Android Gradle plugin.
|
||||
-dontwarn javax.annotation.processing.AbstractProcessor
|
||||
-dontwarn javax.annotation.processing.SupportedOptions
|
||||
-dontwarn okhttp3.Call
|
||||
-dontwarn okhttp3.Dispatcher
|
||||
-dontwarn okhttp3.OkHttpClient
|
||||
-dontwarn okhttp3.Request$Builder
|
||||
-dontwarn okhttp3.Request
|
||||
-dontwarn okhttp3.Response
|
||||
-dontwarn okhttp3.ResponseBody
|
||||
-dontwarn okio.BufferedSource
|
||||
-dontwarn okio.Okio
|
||||
-dontwarn okio.Sink
|
||||
|
||||
@@ -144,12 +144,11 @@
|
||||
android:name=".preferences.SettingsActivity"
|
||||
android:label="@string/settings"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<!-- FIXME: locked screenOrientation is a workaround for https://github.com/CatimaLoyalty/Android/issues/1715, remove when https://github.com/CatimaLoyalty/Android/issues/513 is fixed -->
|
||||
<!-- FIXME: ImportExportActivity cancels import on rotation -->
|
||||
<activity
|
||||
android:name=".ImportExportActivity"
|
||||
android:label="@string/importExport"
|
||||
android:exported="true"
|
||||
android:screenOrientation="locked"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
|
||||
<!-- ZIP Intent Filter -->
|
||||
|
||||
@@ -99,9 +99,9 @@ public class AboutContent {
|
||||
|
||||
public String getThirdPartyLibraries() {
|
||||
final List<ThirdPartyInfo> usedLibraries = new ArrayList<>();
|
||||
usedLibraries.add(new ThirdPartyInfo("ACRA", "https://github.com/ACRA/acra", "Apache 2.0"));
|
||||
usedLibraries.add(new ThirdPartyInfo("Color Picker", "https://github.com/jaredrummler/ColorPicker", "Apache 2.0"));
|
||||
usedLibraries.add(new ThirdPartyInfo("Commons CSV", "https://commons.apache.org/proper/commons-csv/", "Apache 2.0"));
|
||||
usedLibraries.add(new ThirdPartyInfo("NumberPickerPreference", "https://github.com/invissvenska/NumberPickerPreference", "GNU LGPL 3.0"));
|
||||
usedLibraries.add(new ThirdPartyInfo("uCrop", "https://github.com/Yalantis/uCrop", "Apache 2.0"));
|
||||
usedLibraries.add(new ThirdPartyInfo("Zip4j", "https://github.com/srikanth-lingala/zip4j", "Apache 2.0"));
|
||||
usedLibraries.add(new ThirdPartyInfo("ZXing", "https://github.com/zxing/zxing", "Apache 2.0"));
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
public interface BarcodeImageWriterResultCallback {
|
||||
void onBarcodeImageWriterResult(boolean success);
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package protect.card_locker
|
||||
|
||||
interface BarcodeImageWriterResultCallback {
|
||||
fun onBarcodeImageWriterResult(success: Boolean)
|
||||
}
|
||||
@@ -1,395 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.util.Log;
|
||||
import android.view.MenuItem;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.textfield.TextInputLayout;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import protect.card_locker.async.TaskHandler;
|
||||
import protect.card_locker.databinding.ImportExportActivityBinding;
|
||||
import protect.card_locker.importexport.DataFormat;
|
||||
import protect.card_locker.importexport.ImportExportResult;
|
||||
import protect.card_locker.importexport.ImportExportResultType;
|
||||
|
||||
public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
private ImportExportActivityBinding binding;
|
||||
private static final String TAG = "Catima";
|
||||
|
||||
private ImportExportTask importExporter;
|
||||
|
||||
private String importAlertTitle;
|
||||
private String importAlertMessage;
|
||||
private DataFormat importDataFormat;
|
||||
private String exportPassword;
|
||||
|
||||
private ActivityResultLauncher<Intent> fileCreateLauncher;
|
||||
private ActivityResultLauncher<String> fileOpenLauncher;
|
||||
|
||||
final private TaskHandler mTasks = new TaskHandler();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ImportExportActivityBinding.inflate(getLayoutInflater());
|
||||
setTitle(R.string.importExport);
|
||||
setContentView(binding.getRoot());
|
||||
Utils.applyWindowInsets(binding.getRoot());
|
||||
Toolbar toolbar = binding.toolbar;
|
||||
setSupportActionBar(toolbar);
|
||||
enableToolbarBackButton();
|
||||
|
||||
Intent fileIntent = getIntent();
|
||||
if (fileIntent != null && fileIntent.getType() != null) {
|
||||
chooseImportType(fileIntent.getData());
|
||||
}
|
||||
|
||||
// would use ActivityResultContracts.CreateDocument() but mime type cannot be set
|
||||
fileCreateLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
Intent intent = result.getData();
|
||||
if (intent == null) {
|
||||
Log.e(TAG, "Activity returned NULL data");
|
||||
return;
|
||||
}
|
||||
Uri uri = intent.getData();
|
||||
if (uri == null) {
|
||||
Log.e(TAG, "Activity returned NULL uri");
|
||||
return;
|
||||
}
|
||||
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
|
||||
// FIXME: This is still suboptimal, because showing that the export started is delayed until the network request finishes
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
OutputStream writer = getContentResolver().openOutputStream(uri);
|
||||
Log.d(TAG, "Starting file export with: " + result);
|
||||
startExport(writer, uri, exportPassword.toCharArray(), true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to export file: " + result, e);
|
||||
onExportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, result.toString()), uri);
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
});
|
||||
fileOpenLauncher = registerForActivityResult(new ActivityResultContracts.GetContent(), result -> {
|
||||
if (result == null) {
|
||||
Log.e(TAG, "Activity returned NULL data");
|
||||
return;
|
||||
}
|
||||
openFileForImport(result, null);
|
||||
});
|
||||
|
||||
// Check that there is a file manager available
|
||||
final Intent intentCreateDocumentAction = new Intent(Intent.ACTION_CREATE_DOCUMENT);
|
||||
intentCreateDocumentAction.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intentCreateDocumentAction.setType("application/zip");
|
||||
intentCreateDocumentAction.putExtra(Intent.EXTRA_TITLE, "catima.zip");
|
||||
|
||||
Button exportButton = binding.exportButton;
|
||||
exportButton.setOnClickListener(v -> {
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(ImportExportActivity.this);
|
||||
builder.setTitle(R.string.exportPassword);
|
||||
|
||||
FrameLayout container = new FrameLayout(ImportExportActivity.this);
|
||||
|
||||
final TextInputLayout textInputLayout = new TextInputLayout(ImportExportActivity.this);
|
||||
textInputLayout.setEndIconMode(TextInputLayout.END_ICON_PASSWORD_TOGGLE);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
params.setMargins(50, 10, 50, 0);
|
||||
textInputLayout.setLayoutParams(params);
|
||||
|
||||
final EditText input = new EditText(ImportExportActivity.this);
|
||||
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
input.setHint(R.string.exportPasswordHint);
|
||||
|
||||
textInputLayout.addView(input);
|
||||
container.addView(textInputLayout);
|
||||
builder.setView(container);
|
||||
builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> {
|
||||
exportPassword = input.getText().toString();
|
||||
try {
|
||||
fileCreateLauncher.launch(intentCreateDocumentAction);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(getApplicationContext(), R.string.failedOpeningFileManager, Toast.LENGTH_LONG).show();
|
||||
Log.e(TAG, "No activity found to handle intent", e);
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, (dialogInterface, i) -> dialogInterface.cancel());
|
||||
builder.show();
|
||||
});
|
||||
|
||||
// Check that there is a file manager available
|
||||
Button importFilesystem = binding.importOptionFilesystemButton;
|
||||
importFilesystem.setOnClickListener(v -> chooseImportType(null));
|
||||
|
||||
// FIXME: The importer/exporter is currently quite broken
|
||||
// To prevent the screen from turning off during import/export and some devices killing Catima as it's no longer foregrounded, force the screen to stay on here
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
|
||||
private void openFileForImport(Uri uri, char[] password) {
|
||||
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
|
||||
// FIXME: This is still suboptimal, because showing that the import started is delayed until the network request finishes
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
InputStream reader = getContentResolver().openInputStream(uri);
|
||||
Log.d(TAG, "Starting file import with: " + uri);
|
||||
startImport(reader, uri, importDataFormat, password, true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to import file: " + uri, e);
|
||||
onImportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, e.toString()), uri, importDataFormat);
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
|
||||
private void chooseImportType(@Nullable Uri fileData) {
|
||||
|
||||
List<CharSequence> betaImportOptions = new ArrayList<>();
|
||||
betaImportOptions.add("Fidme");
|
||||
List<CharSequence> importOptions = new ArrayList<>();
|
||||
|
||||
for (String importOption : getResources().getStringArray(R.array.import_types_array)) {
|
||||
if (betaImportOptions.contains(importOption)) {
|
||||
importOption = importOption + " (BETA)";
|
||||
}
|
||||
|
||||
importOptions.add(importOption);
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
builder.setTitle(R.string.chooseImportType)
|
||||
.setItems(importOptions.toArray(new CharSequence[importOptions.size()]), (dialog, which) -> {
|
||||
switch (which) {
|
||||
// Catima
|
||||
case 0:
|
||||
importAlertTitle = getString(R.string.importCatima);
|
||||
importAlertMessage = getString(R.string.importCatimaMessage);
|
||||
importDataFormat = DataFormat.Catima;
|
||||
break;
|
||||
// Fidme
|
||||
case 1:
|
||||
importAlertTitle = getString(R.string.importFidme);
|
||||
importAlertMessage = getString(R.string.importFidmeMessage);
|
||||
importDataFormat = DataFormat.Fidme;
|
||||
break;
|
||||
// Loyalty Card Keychain
|
||||
case 2:
|
||||
importAlertTitle = getString(R.string.importLoyaltyCardKeychain);
|
||||
importAlertMessage = getString(R.string.importLoyaltyCardKeychainMessage);
|
||||
importDataFormat = DataFormat.Catima;
|
||||
break;
|
||||
// Voucher Vault
|
||||
case 3:
|
||||
importAlertTitle = getString(R.string.importVoucherVault);
|
||||
importAlertMessage = getString(R.string.importVoucherVaultMessage);
|
||||
importDataFormat = DataFormat.VoucherVault;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown DataFormat");
|
||||
}
|
||||
|
||||
if (fileData != null) {
|
||||
openFileForImport(fileData, null);
|
||||
return;
|
||||
}
|
||||
|
||||
new MaterialAlertDialogBuilder(this)
|
||||
.setTitle(importAlertTitle)
|
||||
.setMessage(importAlertMessage)
|
||||
.setPositiveButton(R.string.ok, (dialog1, which1) -> {
|
||||
try {
|
||||
fileOpenLauncher.launch("*/*");
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(getApplicationContext(), R.string.failedOpeningFileManager, Toast.LENGTH_LONG).show();
|
||||
Log.e(TAG, "No activity found to handle intent", e);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.show();
|
||||
});
|
||||
builder.show();
|
||||
}
|
||||
|
||||
private void startImport(final InputStream target, final Uri targetUri, final DataFormat dataFormat, final char[] password, final boolean closeWhenDone) {
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.IMPORT, true, false, false);
|
||||
ImportExportTask.TaskCompleteListener listener = new ImportExportTask.TaskCompleteListener() {
|
||||
@Override
|
||||
public void onTaskComplete(ImportExportResult result, DataFormat dataFormat) {
|
||||
onImportComplete(result, targetUri, dataFormat);
|
||||
if (closeWhenDone) {
|
||||
try {
|
||||
target.close();
|
||||
} catch (IOException ioException) {
|
||||
ioException.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
importExporter = new ImportExportTask(ImportExportActivity.this,
|
||||
dataFormat, target, password, listener);
|
||||
mTasks.executeTask(TaskHandler.TYPE.IMPORT, importExporter);
|
||||
}
|
||||
|
||||
private void startExport(final OutputStream target, final Uri targetUri, char[] password, final boolean closeWhenDone) {
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.EXPORT, true, false, false);
|
||||
ImportExportTask.TaskCompleteListener listener = new ImportExportTask.TaskCompleteListener() {
|
||||
@Override
|
||||
public void onTaskComplete(ImportExportResult result, DataFormat dataFormat) {
|
||||
onExportComplete(result, targetUri);
|
||||
if (closeWhenDone) {
|
||||
try {
|
||||
target.close();
|
||||
} catch (IOException ioException) {
|
||||
ioException.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
importExporter = new ImportExportTask(ImportExportActivity.this,
|
||||
DataFormat.Catima, target, password, listener);
|
||||
mTasks.executeTask(TaskHandler.TYPE.EXPORT, importExporter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.IMPORT, true, false, false);
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.EXPORT, true, false, false);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == android.R.id.home) {
|
||||
finish();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void retryWithPassword(DataFormat dataFormat, Uri uri) {
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
builder.setTitle(R.string.passwordRequired);
|
||||
|
||||
FrameLayout container = new FrameLayout(ImportExportActivity.this);
|
||||
|
||||
final TextInputLayout textInputLayout = new TextInputLayout(ImportExportActivity.this);
|
||||
textInputLayout.setEndIconMode(TextInputLayout.END_ICON_PASSWORD_TOGGLE);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
params.setMargins(50, 10, 50, 0);
|
||||
textInputLayout.setLayoutParams(params);
|
||||
|
||||
final EditText input = new EditText(ImportExportActivity.this);
|
||||
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
input.setHint(R.string.exportPasswordHint);
|
||||
|
||||
textInputLayout.addView(input);
|
||||
container.addView(textInputLayout);
|
||||
builder.setView(container);
|
||||
|
||||
builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> {
|
||||
openFileForImport(uri, input.getText().toString().toCharArray());
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, (dialogInterface, i) -> dialogInterface.cancel());
|
||||
|
||||
builder.show();
|
||||
}
|
||||
|
||||
private String buildResultDialogMessage(ImportExportResult result, boolean isImport) {
|
||||
int messageId;
|
||||
|
||||
if (result.resultType() == ImportExportResultType.Success) {
|
||||
messageId = isImport ? R.string.importSuccessful : R.string.exportSuccessful;
|
||||
} else {
|
||||
messageId = isImport ? R.string.importFailed : R.string.exportFailed;
|
||||
}
|
||||
|
||||
StringBuilder messageBuilder = new StringBuilder(getResources().getString(messageId));
|
||||
if (result.developerDetails() != null) {
|
||||
messageBuilder.append("\n\n");
|
||||
messageBuilder.append(getResources().getString(R.string.include_if_asking_support));
|
||||
messageBuilder.append("\n\n");
|
||||
messageBuilder.append(result.developerDetails());
|
||||
}
|
||||
|
||||
return messageBuilder.toString();
|
||||
}
|
||||
|
||||
private void onImportComplete(ImportExportResult result, Uri path, DataFormat dataFormat) {
|
||||
ImportExportResultType resultType = result.resultType();
|
||||
|
||||
if (resultType == ImportExportResultType.BadPassword) {
|
||||
retryWithPassword(dataFormat, path);
|
||||
return;
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
builder.setTitle(resultType == ImportExportResultType.Success ? R.string.importSuccessfulTitle : R.string.importFailedTitle);
|
||||
builder.setMessage(buildResultDialogMessage(result, true));
|
||||
builder.setNeutralButton(R.string.ok, (dialog, which) -> dialog.dismiss());
|
||||
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
private void onExportComplete(ImportExportResult result, final Uri path) {
|
||||
ImportExportResultType resultType = result.resultType();
|
||||
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
builder.setTitle(resultType == ImportExportResultType.Success ? R.string.exportSuccessfulTitle : R.string.exportFailedTitle);
|
||||
builder.setMessage(buildResultDialogMessage(result, false));
|
||||
builder.setNeutralButton(R.string.ok, (dialog, which) -> dialog.dismiss());
|
||||
|
||||
if (resultType == ImportExportResultType.Success) {
|
||||
final CharSequence sendLabel = ImportExportActivity.this.getResources().getText(R.string.sendLabel);
|
||||
|
||||
builder.setPositiveButton(sendLabel, (dialog, which) -> {
|
||||
Intent sendIntent = new Intent(Intent.ACTION_SEND);
|
||||
sendIntent.putExtra(Intent.EXTRA_STREAM, path);
|
||||
sendIntent.setType("text/csv");
|
||||
|
||||
// set flag to give temporary permission to external app to use the FileProvider
|
||||
sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
|
||||
ImportExportActivity.this.startActivity(Intent.createChooser(sendIntent,
|
||||
sendLabel));
|
||||
|
||||
dialog.dismiss();
|
||||
});
|
||||
}
|
||||
|
||||
builder.create().show();
|
||||
}
|
||||
}
|
||||
416
app/src/main/java/protect/card_locker/ImportExportActivity.kt
Normal file
416
app/src/main/java/protect/card_locker/ImportExportActivity.kt
Normal file
@@ -0,0 +1,416 @@
|
||||
package protect.card_locker
|
||||
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.InputType
|
||||
import android.util.Log
|
||||
import android.view.MenuItem
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import protect.card_locker.async.TaskHandler
|
||||
import protect.card_locker.databinding.ImportExportActivityBinding
|
||||
import protect.card_locker.importexport.DataFormat
|
||||
import protect.card_locker.importexport.ImportExportResult
|
||||
import protect.card_locker.importexport.ImportExportResultType
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
import java.io.OutputStream
|
||||
|
||||
class ImportExportActivity : CatimaAppCompatActivity() {
|
||||
private lateinit var binding: ImportExportActivityBinding
|
||||
|
||||
private var importExporter: ImportExportTask? = null
|
||||
|
||||
private var importAlertTitle: String? = null
|
||||
private var importAlertMessage: String? = null
|
||||
private var importDataFormat: DataFormat? = null
|
||||
private var exportPassword: String? = null
|
||||
|
||||
private lateinit var fileCreateLauncher: ActivityResultLauncher<Intent>
|
||||
private lateinit var fileOpenLauncher: ActivityResultLauncher<String>
|
||||
|
||||
private val mTasks = TaskHandler()
|
||||
|
||||
companion object {
|
||||
private const val TAG = "Catima"
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ImportExportActivityBinding.inflate(layoutInflater)
|
||||
setTitle(R.string.importExport)
|
||||
setContentView(binding.root)
|
||||
Utils.applyWindowInsets(binding.root)
|
||||
val toolbar: Toolbar = binding.toolbar
|
||||
setSupportActionBar(toolbar)
|
||||
enableToolbarBackButton()
|
||||
|
||||
val fileIntent = intent
|
||||
if (fileIntent?.type != null) {
|
||||
chooseImportType(fileIntent.data)
|
||||
}
|
||||
|
||||
// would use ActivityResultContracts.CreateDocument() but mime type cannot be set
|
||||
fileCreateLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
val intent = result.data
|
||||
if (intent == null) {
|
||||
Log.e(TAG, "Activity returned NULL data")
|
||||
return@registerForActivityResult
|
||||
}
|
||||
val uri = intent.data
|
||||
if (uri == null) {
|
||||
Log.e(TAG, "Activity returned NULL uri")
|
||||
return@registerForActivityResult
|
||||
}
|
||||
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
|
||||
// FIXME: This is still suboptimal, because showing that the export started is delayed until the network request finishes
|
||||
Thread {
|
||||
try {
|
||||
val writer = contentResolver.openOutputStream(uri)
|
||||
Log.d(TAG, "Starting file export with: $result")
|
||||
startExport(writer, uri, exportPassword?.toCharArray(), true)
|
||||
} catch (e: IOException) {
|
||||
Log.e(TAG, "Failed to export file: $result", e)
|
||||
onExportComplete(
|
||||
ImportExportResult(
|
||||
ImportExportResultType.GenericFailure,
|
||||
result.toString()
|
||||
), uri
|
||||
)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
fileOpenLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.GetContent()) { result ->
|
||||
if (result == null) {
|
||||
Log.e(TAG, "Activity returned NULL data")
|
||||
return@registerForActivityResult
|
||||
}
|
||||
openFileForImport(result, null)
|
||||
}
|
||||
|
||||
// Check that there is a file manager available
|
||||
val intentCreateDocumentAction = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
|
||||
addCategory(Intent.CATEGORY_OPENABLE)
|
||||
type = "application/zip"
|
||||
putExtra(Intent.EXTRA_TITLE, "catima.zip")
|
||||
}
|
||||
|
||||
val exportButton: Button = binding.exportButton
|
||||
exportButton.setOnClickListener {
|
||||
val builder = MaterialAlertDialogBuilder(this@ImportExportActivity)
|
||||
builder.setTitle(R.string.exportPassword)
|
||||
|
||||
val container = FrameLayout(this@ImportExportActivity)
|
||||
|
||||
val textInputLayout = TextInputLayout(this@ImportExportActivity).apply {
|
||||
endIconMode = TextInputLayout.END_ICON_PASSWORD_TOGGLE
|
||||
layoutParams = LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
setMargins(50, 10, 50, 0)
|
||||
}
|
||||
}
|
||||
|
||||
val input = EditText(this@ImportExportActivity).apply {
|
||||
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD
|
||||
setHint(R.string.exportPasswordHint)
|
||||
}
|
||||
|
||||
textInputLayout.addView(input)
|
||||
container.addView(textInputLayout)
|
||||
builder.setView(container)
|
||||
builder.setPositiveButton(R.string.ok) { _, _ ->
|
||||
exportPassword = input.text.toString()
|
||||
try {
|
||||
fileCreateLauncher.launch(intentCreateDocumentAction)
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
Toast.makeText(
|
||||
applicationContext,
|
||||
R.string.failedOpeningFileManager,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
Log.e(TAG, "No activity found to handle intent", e)
|
||||
}
|
||||
}
|
||||
builder.setNegativeButton(R.string.cancel) { dialogInterface, _ -> dialogInterface.cancel() }
|
||||
builder.show()
|
||||
}
|
||||
|
||||
// Check that there is a file manager available
|
||||
val importFilesystem: Button = binding.importOptionFilesystemButton
|
||||
importFilesystem.setOnClickListener { chooseImportType(null) }
|
||||
|
||||
// FIXME: The importer/exporter is currently quite broken
|
||||
// To prevent the screen from turning off during import/export and some devices killing Catima as it's no longer foregrounded, force the screen to stay on here
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
}
|
||||
|
||||
private fun openFileForImport(uri: Uri, password: CharArray?) {
|
||||
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
|
||||
// FIXME: This is still suboptimal, because showing that the import started is delayed until the network request finishes
|
||||
Thread {
|
||||
try {
|
||||
val reader = contentResolver.openInputStream(uri)
|
||||
Log.d(TAG, "Starting file import with: $uri")
|
||||
startImport(reader, uri, importDataFormat, password, true)
|
||||
} catch (e: IOException) {
|
||||
Log.e(TAG, "Failed to import file: $uri", e)
|
||||
onImportComplete(
|
||||
ImportExportResult(
|
||||
ImportExportResultType.GenericFailure,
|
||||
e.toString()
|
||||
), uri, importDataFormat
|
||||
)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
private fun chooseImportType(fileData: Uri?) {
|
||||
val betaImportOptions = mutableListOf<CharSequence>()
|
||||
betaImportOptions.add("Fidme")
|
||||
val importOptions = mutableListOf<CharSequence>()
|
||||
|
||||
for (importOption in resources.getStringArray(R.array.import_types_array)) {
|
||||
var option = importOption
|
||||
if (betaImportOptions.contains(importOption)) {
|
||||
option = "$importOption (BETA)"
|
||||
}
|
||||
importOptions.add(option)
|
||||
}
|
||||
|
||||
val builder = MaterialAlertDialogBuilder(this)
|
||||
builder.setTitle(R.string.chooseImportType)
|
||||
.setItems(importOptions.toTypedArray()) { _, which ->
|
||||
when (which) {
|
||||
// Catima
|
||||
0 -> {
|
||||
importAlertTitle = getString(R.string.importCatima)
|
||||
importAlertMessage = getString(R.string.importCatimaMessage)
|
||||
importDataFormat = DataFormat.Catima
|
||||
}
|
||||
// Fidme
|
||||
1 -> {
|
||||
importAlertTitle = getString(R.string.importFidme)
|
||||
importAlertMessage = getString(R.string.importFidmeMessage)
|
||||
importDataFormat = DataFormat.Fidme
|
||||
}
|
||||
// Loyalty Card Keychain
|
||||
2 -> {
|
||||
importAlertTitle = getString(R.string.importLoyaltyCardKeychain)
|
||||
importAlertMessage = getString(R.string.importLoyaltyCardKeychainMessage)
|
||||
importDataFormat = DataFormat.Catima
|
||||
}
|
||||
// Voucher Vault
|
||||
3 -> {
|
||||
importAlertTitle = getString(R.string.importVoucherVault)
|
||||
importAlertMessage = getString(R.string.importVoucherVaultMessage)
|
||||
importDataFormat = DataFormat.VoucherVault
|
||||
}
|
||||
|
||||
else -> throw IllegalArgumentException("Unknown DataFormat")
|
||||
}
|
||||
|
||||
if (fileData != null) {
|
||||
openFileForImport(fileData, null)
|
||||
return@setItems
|
||||
}
|
||||
|
||||
MaterialAlertDialogBuilder(this)
|
||||
.setTitle(importAlertTitle)
|
||||
.setMessage(importAlertMessage)
|
||||
.setPositiveButton(R.string.ok) { _, _ ->
|
||||
try {
|
||||
fileOpenLauncher.launch("*/*")
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
Toast.makeText(
|
||||
applicationContext,
|
||||
R.string.failedOpeningFileManager,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
Log.e(TAG, "No activity found to handle intent", e)
|
||||
}
|
||||
}
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.show()
|
||||
}
|
||||
builder.show()
|
||||
}
|
||||
|
||||
private fun startImport(
|
||||
target: InputStream?,
|
||||
targetUri: Uri,
|
||||
dataFormat: DataFormat?,
|
||||
password: CharArray?,
|
||||
closeWhenDone: Boolean
|
||||
) {
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.IMPORT, true, false, false)
|
||||
val listener = ImportExportTask.TaskCompleteListener { result, dataFormat ->
|
||||
onImportComplete(result, targetUri, dataFormat)
|
||||
if (closeWhenDone) {
|
||||
try {
|
||||
target?.close()
|
||||
} catch (ioException: IOException) {
|
||||
ioException.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
importExporter = ImportExportTask(
|
||||
this@ImportExportActivity,
|
||||
dataFormat, target, password, listener
|
||||
)
|
||||
mTasks.executeTask(TaskHandler.TYPE.IMPORT, importExporter)
|
||||
}
|
||||
|
||||
private fun startExport(
|
||||
target: OutputStream?,
|
||||
targetUri: Uri,
|
||||
password: CharArray?,
|
||||
closeWhenDone: Boolean
|
||||
) {
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.EXPORT, true, false, false)
|
||||
val listener = ImportExportTask.TaskCompleteListener { result, dataFormat ->
|
||||
onExportComplete(result, targetUri)
|
||||
if (closeWhenDone) {
|
||||
try {
|
||||
target?.close()
|
||||
} catch (ioException: IOException) {
|
||||
ioException.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
importExporter = ImportExportTask(
|
||||
this@ImportExportActivity,
|
||||
DataFormat.Catima, target, password, listener
|
||||
)
|
||||
mTasks.executeTask(TaskHandler.TYPE.EXPORT, importExporter)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.IMPORT, true, false, false)
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.EXPORT, true, false, false)
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
val id = item.itemId
|
||||
|
||||
if (id == android.R.id.home) {
|
||||
finish()
|
||||
return true
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun retryWithPassword(dataFormat: DataFormat, uri: Uri) {
|
||||
val builder = MaterialAlertDialogBuilder(this)
|
||||
builder.setTitle(R.string.passwordRequired)
|
||||
|
||||
val container = FrameLayout(this@ImportExportActivity)
|
||||
|
||||
val textInputLayout = TextInputLayout(this@ImportExportActivity).apply {
|
||||
endIconMode = TextInputLayout.END_ICON_PASSWORD_TOGGLE
|
||||
layoutParams = LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
setMargins(50, 10, 50, 0)
|
||||
}
|
||||
}
|
||||
|
||||
val input = EditText(this@ImportExportActivity).apply {
|
||||
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD
|
||||
setHint(R.string.exportPasswordHint)
|
||||
}
|
||||
|
||||
textInputLayout.addView(input)
|
||||
container.addView(textInputLayout)
|
||||
builder.setView(container)
|
||||
|
||||
builder.setPositiveButton(R.string.ok) { _, _ ->
|
||||
openFileForImport(uri, input.text.toString().toCharArray())
|
||||
}
|
||||
builder.setNegativeButton(R.string.cancel) { dialogInterface, _ -> dialogInterface.cancel() }
|
||||
|
||||
builder.show()
|
||||
}
|
||||
|
||||
private fun buildResultDialogMessage(result: ImportExportResult, isImport: Boolean): String {
|
||||
val messageId = if (result.resultType() == ImportExportResultType.Success) {
|
||||
if (isImport) R.string.importSuccessful else R.string.exportSuccessful
|
||||
} else {
|
||||
if (isImport) R.string.importFailed else R.string.exportFailed
|
||||
}
|
||||
|
||||
val messageBuilder = StringBuilder(resources.getString(messageId))
|
||||
if (result.developerDetails() != null) {
|
||||
messageBuilder.append("\n\n")
|
||||
messageBuilder.append(resources.getString(R.string.include_if_asking_support))
|
||||
messageBuilder.append("\n\n")
|
||||
messageBuilder.append(result.developerDetails())
|
||||
}
|
||||
|
||||
return messageBuilder.toString()
|
||||
}
|
||||
|
||||
private fun onImportComplete(result: ImportExportResult, path: Uri, dataFormat: DataFormat?) {
|
||||
val resultType = result.resultType()
|
||||
|
||||
if (resultType == ImportExportResultType.BadPassword) {
|
||||
retryWithPassword(dataFormat!!, path)
|
||||
return
|
||||
}
|
||||
|
||||
val builder = MaterialAlertDialogBuilder(this)
|
||||
builder.setTitle(if (resultType == ImportExportResultType.Success) R.string.importSuccessfulTitle else R.string.importFailedTitle)
|
||||
builder.setMessage(buildResultDialogMessage(result, true))
|
||||
builder.setNeutralButton(R.string.ok) { dialog, _ -> dialog.dismiss() }
|
||||
|
||||
builder.create().show()
|
||||
}
|
||||
|
||||
private fun onExportComplete(result: ImportExportResult, path: Uri) {
|
||||
val resultType = result.resultType()
|
||||
|
||||
val builder = MaterialAlertDialogBuilder(this)
|
||||
builder.setTitle(if (resultType == ImportExportResultType.Success) R.string.exportSuccessfulTitle else R.string.exportFailedTitle)
|
||||
builder.setMessage(buildResultDialogMessage(result, false))
|
||||
builder.setNeutralButton(R.string.ok) { dialog, _ -> dialog.dismiss() }
|
||||
|
||||
if (resultType == ImportExportResultType.Success) {
|
||||
val sendLabel = this@ImportExportActivity.resources.getText(R.string.sendLabel)
|
||||
|
||||
builder.setPositiveButton(sendLabel) { dialog, _ ->
|
||||
val sendIntent = Intent(Intent.ACTION_SEND).apply {
|
||||
putExtra(Intent.EXTRA_STREAM, path)
|
||||
type = "text/csv"
|
||||
// set flag to give temporary permission to external app to use the FileProvider
|
||||
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
|
||||
}
|
||||
|
||||
this@ImportExportActivity.startActivity(Intent.createChooser(sendIntent, sendLabel))
|
||||
dialog.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
builder.create().show()
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,17 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -32,7 +37,7 @@ public class ImportExportTask implements CompatCallable<ImportExportResult> {
|
||||
private char[] password;
|
||||
private TaskCompleteListener listener;
|
||||
|
||||
private ProgressDialog progress;
|
||||
private AlertDialog progress;
|
||||
|
||||
/**
|
||||
* Constructor which will setup a task for exporting to the given file
|
||||
@@ -88,12 +93,36 @@ public class ImportExportTask implements CompatCallable<ImportExportResult> {
|
||||
}
|
||||
|
||||
public void onPreExecute() {
|
||||
progress = new ProgressDialog(activity);
|
||||
progress.setTitle(doImport ? R.string.importing : R.string.exporting);
|
||||
MaterialAlertDialogBuilder progressDialogBuilder = new MaterialAlertDialogBuilder(activity);
|
||||
progressDialogBuilder.setCancelable(false); // Don't cancel if user taps next to dialog
|
||||
progressDialogBuilder.setTitle(doImport ? R.string.importing : R.string.exporting);
|
||||
|
||||
progress.setOnCancelListener(dialog -> cancel());
|
||||
progress.setOnDismissListener(dialog -> cancel());
|
||||
// Create components
|
||||
TextView progressDialogTextView = new TextView(activity);
|
||||
progressDialogTextView.setText(R.string.pleaseDoNotRotateTheDevice); // FIXME: Instead of telling the user to not rotate, rotation should not cancel the import
|
||||
ProgressBar progressDialogProgressBar = new ProgressBar(activity);
|
||||
progressDialogProgressBar.setIndeterminate(true);
|
||||
|
||||
// Create LinearLayout (to put the components below each other)
|
||||
LinearLayout progressDialogLayout = new LinearLayout(activity);
|
||||
progressDialogLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
LinearLayout.LayoutParams progressDialogLayoutParams = new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT
|
||||
);
|
||||
int contentPadding = activity.getResources().getDimensionPixelSize(R.dimen.alert_dialog_content_padding);
|
||||
progressDialogLayoutParams.setMargins(contentPadding, contentPadding / 2, contentPadding, 0);
|
||||
|
||||
// Put components in layout
|
||||
progressDialogLayout.addView(progressDialogTextView, progressDialogLayoutParams);
|
||||
progressDialogLayout.addView(progressDialogProgressBar, progressDialogLayoutParams);
|
||||
|
||||
// Create and show dialog
|
||||
progressDialogBuilder.setView(progressDialogLayout);
|
||||
progressDialogBuilder.setNeutralButton(R.string.cancel, (dialogInterface, i) -> cancel());
|
||||
progressDialogBuilder.setOnCancelListener(dialogInterface -> cancel());
|
||||
progressDialogBuilder.setOnDismissListener(dialogInterface -> cancel());
|
||||
progress = progressDialogBuilder.create();
|
||||
progress.show();
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,6 @@ import androidx.core.graphics.PaintCompat;
|
||||
* is shown instead.
|
||||
*/
|
||||
class LetterBitmap {
|
||||
|
||||
/**
|
||||
* The number of available tile colors
|
||||
*/
|
||||
private static final int NUM_OF_TILE_COLORS = 8;
|
||||
/**
|
||||
* The letter bitmap
|
||||
*/
|
||||
@@ -121,7 +116,7 @@ class LetterBitmap {
|
||||
private static int pickColor(String key, TypedArray colors) {
|
||||
// String.hashCode() is not supposed to change across java versions, so
|
||||
// this should guarantee the same key always maps to the same color
|
||||
final int color = Math.abs(key.hashCode()) % NUM_OF_TILE_COLORS;
|
||||
final int color = Math.abs(key.hashCode()) % colors.length();
|
||||
return colors.getColor(color, Color.BLACK);
|
||||
}
|
||||
|
||||
|
||||
@@ -719,7 +719,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
int colorOnSurface = MaterialColors.getColor(this, com.google.android.material.R.attr.colorOnSurface, ContextCompat.getColor(this, R.color.md_theme_light_onSurface));
|
||||
int colorBackground = MaterialColors.getColor(this, android.R.attr.colorBackground, ContextCompat.getColor(this, R.color.md_theme_light_onSurface));
|
||||
mCropperOptions.setToolbarColor(colorSurface);
|
||||
mCropperOptions.setStatusBarColor(colorSurface);
|
||||
mCropperOptions.setToolbarWidgetColor(colorOnSurface);
|
||||
mCropperOptions.setRootViewBackgroundColor(colorBackground);
|
||||
// set tool tip to be the darker of primary color
|
||||
|
||||
@@ -4,6 +4,12 @@ import android.app.Application;
|
||||
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
|
||||
import org.acra.ACRA;
|
||||
import org.acra.config.CoreConfigurationBuilder;
|
||||
import org.acra.config.DialogConfigurationBuilder;
|
||||
import org.acra.config.MailSenderConfigurationBuilder;
|
||||
import org.acra.data.StringFormat;
|
||||
|
||||
import protect.card_locker.preferences.Settings;
|
||||
|
||||
public class LoyaltyCardLockerApplication extends Application {
|
||||
@@ -12,6 +18,27 @@ public class LoyaltyCardLockerApplication extends Application {
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
// Initialize crash reporter (if enabled)
|
||||
if (BuildConfig.useAcraCrashReporter) {
|
||||
ACRA.init(this, new CoreConfigurationBuilder()
|
||||
//core configuration:
|
||||
.withBuildConfigClass(BuildConfig.class)
|
||||
.withReportFormat(StringFormat.KEY_VALUE_LIST)
|
||||
.withPluginConfigurations(
|
||||
new DialogConfigurationBuilder()
|
||||
.withText(String.format(getString(R.string.acra_catima_has_crashed), getString(R.string.app_name)))
|
||||
.withCommentPrompt(getString(R.string.acra_explain_crash))
|
||||
.withResTheme(R.style.AppTheme)
|
||||
.build(),
|
||||
new MailSenderConfigurationBuilder()
|
||||
.withMailTo("acra-crash@catima.app")
|
||||
.withSubject(String.format(getString(R.string.acra_crash_email_subject), getString(R.string.app_name)))
|
||||
.build()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// Set theme
|
||||
Settings settings = new Settings(this);
|
||||
AppCompatDelegate.setDefaultNightMode(settings.getTheme());
|
||||
}
|
||||
|
||||
@@ -262,19 +262,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
settings = new Settings(this);
|
||||
|
||||
String cardOrientation = settings.getCardViewOrientation();
|
||||
if (cardOrientation.equals(getString(R.string.settings_key_follow_sensor_orientation))) {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
|
||||
} else if (cardOrientation.equals(getString(R.string.settings_key_lock_on_opening_orientation))) {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
|
||||
} else if (cardOrientation.equals(getString(R.string.settings_key_portrait_orientation))) {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
||||
} else if (cardOrientation.equals(getString(R.string.settings_key_landscape_orientation))) {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
||||
} else {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
|
||||
}
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
mainImageIndex = savedInstanceState.getInt(STATE_IMAGEINDEX);
|
||||
isFullscreen = savedInstanceState.getBoolean(STATE_FULLSCREEN);
|
||||
@@ -1098,6 +1085,12 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
}
|
||||
|
||||
private void setMainImagePreviousNextButtons() {
|
||||
// Ensure the main image index is valid. After a card update, some images (front/back/barcode)
|
||||
// may have been removed, so the index should not exceed the number of available images.
|
||||
if(mainImageIndex > imageTypes.size() - 1){
|
||||
mainImageIndex = 0;
|
||||
}
|
||||
|
||||
if (imageTypes.size() < 2) {
|
||||
binding.mainLeftButton.setVisibility(View.INVISIBLE);
|
||||
binding.mainRightButton.setVisibility(View.INVISIBLE);
|
||||
|
||||
@@ -1,242 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import protect.card_locker.databinding.ActivityManageGroupBinding;
|
||||
|
||||
public class ManageGroupActivity extends CatimaAppCompatActivity implements ManageGroupCursorAdapter.CardAdapterListener {
|
||||
private ActivityManageGroupBinding binding;
|
||||
private SQLiteDatabase mDatabase;
|
||||
private ManageGroupCursorAdapter mAdapter;
|
||||
|
||||
private final String SAVE_INSTANCE_ADAPTER_STATE = "adapterState";
|
||||
private final String SAVE_INSTANCE_CURRENT_GROUP_NAME = "currentGroupName";
|
||||
|
||||
protected Group mGroup = null;
|
||||
private RecyclerView mCardList;
|
||||
private TextView noGroupCardsText;
|
||||
private EditText mGroupNameText;
|
||||
|
||||
private boolean mGroupNameNotInUse;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle inputSavedInstanceState) {
|
||||
super.onCreate(inputSavedInstanceState);
|
||||
binding = ActivityManageGroupBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
Utils.applyWindowInsetsAndFabOffset(binding.getRoot(), binding.fabSave);
|
||||
Toolbar toolbar = binding.toolbar;
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
mDatabase = new DBHelper(this).getWritableDatabase();
|
||||
|
||||
noGroupCardsText = binding.include.noGroupCardsText;
|
||||
mCardList = binding.include.list;
|
||||
FloatingActionButton saveButton = binding.fabSave;
|
||||
|
||||
mGroupNameText = binding.editTextGroupName;
|
||||
|
||||
mGroupNameText.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
mGroupNameNotInUse = true;
|
||||
mGroupNameText.setError(null);
|
||||
String currentGroupName = mGroupNameText.getText().toString().trim();
|
||||
if (currentGroupName.length() == 0) {
|
||||
mGroupNameText.setError(getResources().getText(R.string.group_name_is_empty));
|
||||
return;
|
||||
}
|
||||
if (!mGroup._id.equals(currentGroupName)) {
|
||||
if (DBHelper.getGroup(mDatabase, currentGroupName) != null) {
|
||||
mGroupNameNotInUse = false;
|
||||
mGroupNameText.setError(getResources().getText(R.string.group_name_already_in_use));
|
||||
} else {
|
||||
mGroupNameNotInUse = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Intent intent = getIntent();
|
||||
String groupId = intent.getStringExtra("group");
|
||||
if (groupId == null) {
|
||||
throw (new IllegalArgumentException("this activity expects a group loaded into it's intent"));
|
||||
}
|
||||
Log.d("groupId", "groupId: " + groupId);
|
||||
mGroup = DBHelper.getGroup(mDatabase, groupId);
|
||||
if (mGroup == null) {
|
||||
throw (new IllegalArgumentException("cannot load group " + groupId + " from database"));
|
||||
}
|
||||
mGroupNameText.setText(mGroup._id);
|
||||
setTitle(getString(R.string.editGroup, mGroup._id));
|
||||
mAdapter = new ManageGroupCursorAdapter(this, null, this, mGroup, null);
|
||||
mCardList.setAdapter(mAdapter);
|
||||
registerForContextMenu(mCardList);
|
||||
|
||||
if (inputSavedInstanceState != null) {
|
||||
mAdapter.importInGroupState(integerArrayToAdapterState(inputSavedInstanceState.getIntegerArrayList(SAVE_INSTANCE_ADAPTER_STATE)));
|
||||
mGroupNameText.setText(inputSavedInstanceState.getString(SAVE_INSTANCE_CURRENT_GROUP_NAME));
|
||||
}
|
||||
|
||||
enableToolbarBackButton();
|
||||
|
||||
saveButton.setOnClickListener(v -> {
|
||||
String currentGroupName = mGroupNameText.getText().toString().trim();
|
||||
if (!currentGroupName.equals(mGroup._id)) {
|
||||
if (currentGroupName.length() == 0) {
|
||||
Toast.makeText(getApplicationContext(), R.string.group_name_is_empty, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
if (!mGroupNameNotInUse) {
|
||||
Toast.makeText(getApplicationContext(), R.string.group_name_already_in_use, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
mAdapter.commitToDatabase();
|
||||
if (!currentGroupName.equals(mGroup._id)) {
|
||||
DBHelper.updateGroup(mDatabase, mGroup._id, currentGroupName);
|
||||
}
|
||||
Toast.makeText(getApplicationContext(), R.string.group_updated, Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
});
|
||||
// this setText is here because content_main.xml is reused from main activity
|
||||
noGroupCardsText.setText(getResources().getText(R.string.noGiftCardsGroup));
|
||||
updateLoyaltyCardList();
|
||||
|
||||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
leaveWithoutSaving();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private ArrayList<Integer> adapterStateToIntegerArray(HashMap<Integer, Boolean> adapterState) {
|
||||
ArrayList<Integer> ret = new ArrayList<>(adapterState.size() * 2);
|
||||
for (Map.Entry<Integer, Boolean> entry : adapterState.entrySet()) {
|
||||
ret.add(entry.getKey());
|
||||
ret.add(entry.getValue() ? 1 : 0);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private HashMap<Integer, Boolean> integerArrayToAdapterState(ArrayList<Integer> in) {
|
||||
HashMap<Integer, Boolean> ret = new HashMap<>();
|
||||
if (in.size() % 2 != 0) {
|
||||
throw (new RuntimeException("failed restoring adapterState from integer array list"));
|
||||
}
|
||||
for (int i = 0; i < in.size(); i += 2) {
|
||||
ret.put(in.get(i), in.get(i + 1) == 1);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu inputMenu) {
|
||||
getMenuInflater().inflate(R.menu.card_details_menu, inputMenu);
|
||||
|
||||
return super.onCreateOptionsMenu(inputMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem inputItem) {
|
||||
int id = inputItem.getItemId();
|
||||
|
||||
if (id == R.id.action_display_options) {
|
||||
mAdapter.showDisplayOptionsDialog();
|
||||
invalidateOptionsMenu();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(inputItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
|
||||
outState.putIntegerArrayList(SAVE_INSTANCE_ADAPTER_STATE, adapterStateToIntegerArray(mAdapter.exportInGroupState()));
|
||||
outState.putString(SAVE_INSTANCE_CURRENT_GROUP_NAME, mGroupNameText.getText().toString());
|
||||
}
|
||||
|
||||
private void updateLoyaltyCardList() {
|
||||
mAdapter.swapCursor(DBHelper.getLoyaltyCardCursor(mDatabase));
|
||||
|
||||
if (mAdapter.getItemCount() == 0) {
|
||||
mCardList.setVisibility(View.GONE);
|
||||
noGroupCardsText.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mCardList.setVisibility(View.VISIBLE);
|
||||
noGroupCardsText.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void leaveWithoutSaving() {
|
||||
if (hasChanged()) {
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(ManageGroupActivity.this);
|
||||
builder.setTitle(R.string.leaveWithoutSaveTitle);
|
||||
builder.setMessage(R.string.leaveWithoutSaveConfirmation);
|
||||
builder.setPositiveButton(R.string.confirm, (dialog, which) -> finish());
|
||||
builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
|
||||
AlertDialog dialog = builder.create();
|
||||
dialog.show();
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSupportNavigateUp() {
|
||||
getOnBackPressedDispatcher().onBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean hasChanged() {
|
||||
return mAdapter.hasChanged() || !mGroup._id.equals(mGroupNameText.getText().toString().trim());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRowLongClicked(int inputPosition) {
|
||||
mAdapter.toggleSelection(inputPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRowClicked(int inputPosition) {
|
||||
mAdapter.toggleSelection(inputPosition);
|
||||
|
||||
}
|
||||
}
|
||||
236
app/src/main/java/protect/card_locker/ManageGroupActivity.kt
Normal file
236
app/src/main/java/protect/card_locker/ManageGroupActivity.kt
Normal file
@@ -0,0 +1,236 @@
|
||||
package protect.card_locker
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import protect.card_locker.LoyaltyCardCursorAdapter.CardAdapterListener
|
||||
import protect.card_locker.databinding.ActivityManageGroupBinding
|
||||
|
||||
class ManageGroupActivity : CatimaAppCompatActivity(), CardAdapterListener {
|
||||
private lateinit var binding: ActivityManageGroupBinding
|
||||
private lateinit var mDatabase: SQLiteDatabase
|
||||
private lateinit var mAdapter: ManageGroupCursorAdapter
|
||||
|
||||
private lateinit var mGroup: Group
|
||||
private lateinit var mCardList: RecyclerView
|
||||
private lateinit var noGroupCardsText: TextView
|
||||
private lateinit var mGroupNameText: EditText
|
||||
|
||||
private var mGroupNameNotInUse = false
|
||||
|
||||
override fun onCreate(inputSavedInstanceState: Bundle?) {
|
||||
super.onCreate(inputSavedInstanceState)
|
||||
binding = ActivityManageGroupBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
Utils.applyWindowInsetsAndFabOffset(binding.root, binding.fabSave)
|
||||
setSupportActionBar(binding.toolbar)
|
||||
|
||||
mDatabase = DBHelper(this).writableDatabase
|
||||
noGroupCardsText = binding.include.noGroupCardsText
|
||||
mCardList = binding.include.list
|
||||
|
||||
mGroupNameText = binding.editTextGroupName
|
||||
mGroupNameText.doAfterTextChanged {
|
||||
mGroupNameNotInUse = true
|
||||
mGroupNameText.error = null
|
||||
val currentGroupName = mGroupNameText.text.trim().toString()
|
||||
if (currentGroupName.isEmpty()) {
|
||||
mGroupNameText.error = getText(R.string.group_name_is_empty)
|
||||
return@doAfterTextChanged
|
||||
}
|
||||
if (mGroup._id != currentGroupName) {
|
||||
if (DBHelper.getGroup(mDatabase, currentGroupName) != null) {
|
||||
mGroupNameNotInUse = false
|
||||
mGroupNameText.error = getText(R.string.group_name_already_in_use)
|
||||
} else {
|
||||
mGroupNameNotInUse = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val groupId = intent.getStringExtra("group")
|
||||
?: throw (IllegalArgumentException("this activity expects a group loaded into it's intent"))
|
||||
Log.d("groupId", "groupId: $groupId")
|
||||
mGroup = DBHelper.getGroup(mDatabase, groupId)
|
||||
?: throw IllegalArgumentException("Cannot load group $groupId from database")
|
||||
mGroupNameText.setText(mGroup._id)
|
||||
setTitle(getString(R.string.editGroup, mGroup._id))
|
||||
mAdapter = ManageGroupCursorAdapter(this, null, this, mGroup, null)
|
||||
mCardList.adapter = mAdapter
|
||||
registerForContextMenu(mCardList)
|
||||
|
||||
if (inputSavedInstanceState != null) {
|
||||
mAdapter.importInGroupState(
|
||||
bundleToAdapterState(
|
||||
adapterStateBundle = inputSavedInstanceState.getBundle(
|
||||
SAVE_INSTANCE_ADAPTER_STATE
|
||||
)
|
||||
)
|
||||
)
|
||||
mGroupNameText.setText(
|
||||
inputSavedInstanceState.getString(
|
||||
SAVE_INSTANCE_CURRENT_GROUP_NAME
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
enableToolbarBackButton()
|
||||
|
||||
binding.fabSave.setOnClickListener { v: View ->
|
||||
val currentGroupName = mGroupNameText.text.trim().toString()
|
||||
if (currentGroupName != mGroup._id) {
|
||||
when {
|
||||
currentGroupName.isEmpty() -> {
|
||||
Toast.makeText(
|
||||
applicationContext,
|
||||
R.string.group_name_is_empty,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
!mGroupNameNotInUse -> {
|
||||
Toast.makeText(
|
||||
applicationContext,
|
||||
R.string.group_name_already_in_use,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mAdapter.commitToDatabase()
|
||||
if (currentGroupName != mGroup._id) {
|
||||
DBHelper.updateGroup(mDatabase, mGroup._id, currentGroupName)
|
||||
}
|
||||
Toast.makeText(
|
||||
applicationContext,
|
||||
R.string.group_updated,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
finish()
|
||||
}
|
||||
// this setText is here because content_main.xml is reused from main activity
|
||||
noGroupCardsText.text = getText(R.string.noGiftCardsGroup)
|
||||
updateLoyaltyCardList()
|
||||
|
||||
onBackPressedDispatcher.addCallback(
|
||||
owner = this,
|
||||
onBackPressedCallback = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
leaveWithoutSaving()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun adapterStateToBundle(adapterState: HashMap<Int, Boolean>): Bundle {
|
||||
val adapterStateBundle = Bundle().apply {
|
||||
for (entry in adapterState.entries) {
|
||||
putBoolean(entry.key.toString(), entry.value)
|
||||
}
|
||||
}
|
||||
return adapterStateBundle
|
||||
}
|
||||
|
||||
private fun bundleToAdapterState(adapterStateBundle: Bundle?): Map<Int, Boolean> {
|
||||
adapterStateBundle ?: return emptyMap()
|
||||
val adapterStateMap = buildMap {
|
||||
for (key in adapterStateBundle.keySet()) {
|
||||
put(key.toInt(), adapterStateBundle.getBoolean(key))
|
||||
}
|
||||
}
|
||||
return adapterStateMap
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(inputMenu: Menu): Boolean {
|
||||
menuInflater.inflate(R.menu.card_details_menu, inputMenu)
|
||||
|
||||
return super.onCreateOptionsMenu(inputMenu)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(inputItem: MenuItem): Boolean {
|
||||
val id = inputItem.itemId
|
||||
|
||||
if (id == R.id.action_display_options) {
|
||||
mAdapter.showDisplayOptionsDialog()
|
||||
invalidateOptionsMenu()
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(inputItem)
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
super.onSaveInstanceState(outState)
|
||||
|
||||
outState.putBundle(
|
||||
SAVE_INSTANCE_ADAPTER_STATE,
|
||||
adapterStateToBundle(mAdapter.exportInGroupState())
|
||||
)
|
||||
outState.putString(SAVE_INSTANCE_CURRENT_GROUP_NAME, mGroupNameText.text.toString())
|
||||
}
|
||||
|
||||
private fun updateLoyaltyCardList() {
|
||||
mAdapter.swapCursor(DBHelper.getLoyaltyCardCursor(mDatabase))
|
||||
|
||||
if (mAdapter.itemCount == 0) {
|
||||
mCardList.visibility = View.GONE
|
||||
noGroupCardsText.visibility = View.VISIBLE
|
||||
} else {
|
||||
mCardList.visibility = View.VISIBLE
|
||||
noGroupCardsText.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun leaveWithoutSaving() {
|
||||
if (hasChanged()) {
|
||||
MaterialAlertDialogBuilder(this@ManageGroupActivity).apply {
|
||||
setTitle(R.string.leaveWithoutSaveTitle)
|
||||
setMessage(R.string.leaveWithoutSaveConfirmation)
|
||||
setPositiveButton(R.string.confirm) { dialog: DialogInterface, _ ->
|
||||
finish()
|
||||
}
|
||||
setNegativeButton(R.string.cancel) { dialog: DialogInterface, _ ->
|
||||
dialog.dismiss()
|
||||
}
|
||||
}.create().show()
|
||||
} else {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSupportNavigateUp(): Boolean {
|
||||
onBackPressedDispatcher.onBackPressed()
|
||||
return true
|
||||
}
|
||||
|
||||
private fun hasChanged(): Boolean {
|
||||
return mAdapter.hasChanged() || mGroup._id != mGroupNameText.text.trim().toString()
|
||||
}
|
||||
|
||||
override fun onRowLongClicked(inputPosition: Int) {
|
||||
mAdapter.toggleSelection(inputPosition)
|
||||
}
|
||||
|
||||
override fun onRowClicked(inputPosition: Int) {
|
||||
mAdapter.toggleSelection(inputPosition)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val SAVE_INSTANCE_ADAPTER_STATE = "adapterState"
|
||||
const val SAVE_INSTANCE_CURRENT_GROUP_NAME = "currentGroupName"
|
||||
}
|
||||
}
|
||||
@@ -99,7 +99,7 @@ public class ManageGroupCursorAdapter extends LoyaltyCardCursorAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public void importInGroupState(HashMap<Integer, Boolean> cardIdInGroupMap) {
|
||||
public void importInGroupState(Map<Integer, Boolean> cardIdInGroupMap) {
|
||||
mInGroupOverlay = new HashMap<>(cardIdInGroupMap);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,247 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import protect.card_locker.databinding.ManageGroupsActivityBinding;
|
||||
|
||||
public class ManageGroupsActivity extends CatimaAppCompatActivity implements GroupCursorAdapter.GroupAdapterListener {
|
||||
private ManageGroupsActivityBinding binding;
|
||||
private static final String TAG = "Catima";
|
||||
|
||||
private SQLiteDatabase mDatabase;
|
||||
private TextView mHelpText;
|
||||
private RecyclerView mGroupList;
|
||||
GroupCursorAdapter mAdapter;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ManageGroupsActivityBinding.inflate(getLayoutInflater());
|
||||
setTitle(R.string.groups);
|
||||
setContentView(binding.getRoot());
|
||||
Utils.applyWindowInsets(binding.getRoot());
|
||||
Toolbar toolbar = binding.toolbar;
|
||||
setSupportActionBar(toolbar);
|
||||
enableToolbarBackButton();
|
||||
|
||||
mDatabase = new DBHelper(this).getWritableDatabase();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
FloatingActionButton addButton = binding.fabAdd;
|
||||
addButton.setOnClickListener(v -> createGroup());
|
||||
addButton.bringToFront();
|
||||
|
||||
mGroupList = binding.include.list;
|
||||
mHelpText = binding.include.helpText;
|
||||
|
||||
// Init group list
|
||||
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
|
||||
mGroupList.setLayoutManager(mLayoutManager);
|
||||
mGroupList.setItemAnimator(new DefaultItemAnimator());
|
||||
|
||||
mAdapter = new GroupCursorAdapter(this, null, this);
|
||||
mGroupList.setAdapter(mAdapter);
|
||||
|
||||
updateGroupList();
|
||||
}
|
||||
|
||||
private void updateGroupList() {
|
||||
mAdapter.swapCursor(DBHelper.getGroupCursor(mDatabase));
|
||||
|
||||
if (DBHelper.getGroupCount(mDatabase) == 0) {
|
||||
mGroupList.setVisibility(View.GONE);
|
||||
mHelpText.setVisibility(View.VISIBLE);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
mGroupList.setVisibility(View.VISIBLE);
|
||||
mHelpText.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
private void invalidateHomescreenActiveTab() {
|
||||
SharedPreferences activeTabPref = getApplicationContext().getSharedPreferences(
|
||||
getString(R.string.sharedpreference_active_tab),
|
||||
Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor activeTabPrefEditor = activeTabPref.edit();
|
||||
activeTabPrefEditor.putInt(getString(R.string.sharedpreference_active_tab), 0);
|
||||
activeTabPrefEditor.apply();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == android.R.id.home) {
|
||||
finish();
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void createGroup() {
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
|
||||
// Header
|
||||
builder.setTitle(R.string.enter_group_name);
|
||||
|
||||
// Layout
|
||||
LinearLayout layout = new LinearLayout(this);
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
);
|
||||
int contentPadding = getResources().getDimensionPixelSize(R.dimen.alert_dialog_content_padding);
|
||||
params.leftMargin = contentPadding;
|
||||
params.topMargin = contentPadding / 2;
|
||||
params.rightMargin = contentPadding;
|
||||
|
||||
// EditText with spacing
|
||||
final EditText input = new EditText(this);
|
||||
input.setInputType(InputType.TYPE_CLASS_TEXT);
|
||||
input.setLayoutParams(params);
|
||||
layout.addView(input);
|
||||
|
||||
// Set layout
|
||||
builder.setView(layout);
|
||||
|
||||
// Buttons
|
||||
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
|
||||
DBHelper.insertGroup(mDatabase, input.getText().toString().trim());
|
||||
updateGroupList();
|
||||
});
|
||||
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
|
||||
AlertDialog dialog = builder.create();
|
||||
|
||||
// Now that the dialog exists, we can bind something that affects the OK button
|
||||
input.addTextChangedListener(new SimpleTextWatcher() {
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
String groupName = s.toString().trim();
|
||||
|
||||
if (groupName.length() == 0) {
|
||||
input.setError(getString(R.string.group_name_is_empty));
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (DBHelper.getGroup(mDatabase, groupName) != null) {
|
||||
input.setError(getString(R.string.group_name_already_in_use));
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
input.setError(null);
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
|
||||
}
|
||||
});
|
||||
|
||||
dialog.show();
|
||||
|
||||
// Disable button (must be done **after** dialog is shown to prevent crash
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
|
||||
// Set focus on input field
|
||||
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
||||
input.requestFocus();
|
||||
}
|
||||
|
||||
private String getGroupName(View view) {
|
||||
TextView groupNameTextView = view.findViewById(R.id.name);
|
||||
return (String) groupNameTextView.getText();
|
||||
}
|
||||
|
||||
private void moveGroup(View view, boolean up) {
|
||||
List<Group> groups = DBHelper.getGroups(mDatabase);
|
||||
final String groupName = getGroupName(view);
|
||||
|
||||
int currentIndex = DBHelper.getGroup(mDatabase, groupName).order;
|
||||
int newIndex;
|
||||
|
||||
// Reinsert group in correct position
|
||||
if (up) {
|
||||
newIndex = currentIndex - 1;
|
||||
} else {
|
||||
newIndex = currentIndex + 1;
|
||||
}
|
||||
|
||||
// Don't try to move out of bounds
|
||||
if (newIndex < 0 || newIndex >= groups.size()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Group group = groups.remove(currentIndex);
|
||||
groups.add(newIndex, group);
|
||||
|
||||
// Update database
|
||||
DBHelper.reorderGroups(mDatabase, groups);
|
||||
|
||||
// Update UI
|
||||
updateGroupList();
|
||||
|
||||
// Ordering may have changed, so invalidate
|
||||
invalidateHomescreenActiveTab();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMoveDownButtonClicked(View view) {
|
||||
moveGroup(view, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMoveUpButtonClicked(View view) {
|
||||
moveGroup(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEditButtonClicked(View view) {
|
||||
Intent intent = new Intent(this, ManageGroupActivity.class);
|
||||
intent.putExtra("group", getGroupName(view));
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeleteButtonClicked(View view) {
|
||||
final String groupName = getGroupName(view);
|
||||
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
builder.setTitle(R.string.deleteConfirmationGroup);
|
||||
builder.setMessage(groupName);
|
||||
|
||||
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
|
||||
DBHelper.deleteGroup(mDatabase, groupName);
|
||||
updateGroupList();
|
||||
// Delete may change ordering, so invalidate
|
||||
invalidateHomescreenActiveTab();
|
||||
});
|
||||
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
|
||||
AlertDialog dialog = builder.create();
|
||||
dialog.show();
|
||||
}
|
||||
}
|
||||
240
app/src/main/java/protect/card_locker/ManageGroupsActivity.kt
Normal file
240
app/src/main/java/protect/card_locker/ManageGroupsActivity.kt
Normal file
@@ -0,0 +1,240 @@
|
||||
package protect.card_locker
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import android.os.Bundle
|
||||
import android.text.InputType
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.widget.EditText
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import protect.card_locker.GroupCursorAdapter.GroupAdapterListener
|
||||
import protect.card_locker.databinding.ManageGroupsActivityBinding
|
||||
|
||||
class ManageGroupsActivity : CatimaAppCompatActivity(), GroupAdapterListener {
|
||||
private lateinit var binding: ManageGroupsActivityBinding
|
||||
private lateinit var mDatabase: SQLiteDatabase
|
||||
private lateinit var mHelpText: TextView
|
||||
private lateinit var mGroupList: RecyclerView
|
||||
private lateinit var mAdapter: GroupCursorAdapter
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
binding = ManageGroupsActivityBinding.inflate(layoutInflater)
|
||||
setTitle(R.string.groups)
|
||||
setContentView(binding.root)
|
||||
Utils.applyWindowInsets(binding.root)
|
||||
setSupportActionBar(binding.toolbar)
|
||||
enableToolbarBackButton()
|
||||
|
||||
mDatabase = DBHelper(this).writableDatabase
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
with(binding.fabAdd) {
|
||||
setOnClickListener { v: View ->
|
||||
createGroup()
|
||||
}
|
||||
bringToFront()
|
||||
}
|
||||
|
||||
mGroupList = binding.include.list
|
||||
mHelpText = binding.include.helpText
|
||||
|
||||
// Init group list
|
||||
LinearLayoutManager(applicationContext).apply {
|
||||
mGroupList.layoutManager = this
|
||||
}
|
||||
mGroupList.setItemAnimator(DefaultItemAnimator())
|
||||
mAdapter = GroupCursorAdapter(this, null, this)
|
||||
mGroupList.setAdapter(mAdapter)
|
||||
|
||||
updateGroupList()
|
||||
}
|
||||
|
||||
private fun updateGroupList() {
|
||||
mAdapter.swapCursor(DBHelper.getGroupCursor(mDatabase))
|
||||
|
||||
if (DBHelper.getGroupCount(mDatabase) == 0) {
|
||||
mGroupList.visibility = View.GONE
|
||||
mHelpText.visibility = View.VISIBLE
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
mGroupList.visibility = View.VISIBLE
|
||||
mHelpText.visibility = View.GONE
|
||||
}
|
||||
|
||||
private fun invalidateHomescreenActiveTab() {
|
||||
val activeTabPref = getSharedPreferences(
|
||||
getString(R.string.sharedpreference_active_tab),
|
||||
MODE_PRIVATE
|
||||
)
|
||||
activeTabPref.edit {
|
||||
putInt(getString(R.string.sharedpreference_active_tab), 0)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (item.itemId == android.R.id.home) {
|
||||
finish()
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun createGroup() {
|
||||
val builder: AlertDialog.Builder = MaterialAlertDialogBuilder(this)
|
||||
|
||||
// Header
|
||||
builder.setTitle(R.string.enter_group_name)
|
||||
|
||||
// Layout
|
||||
val layout = LinearLayout(this)
|
||||
layout.orientation = LinearLayout.VERTICAL
|
||||
val params = LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
val contentPadding =
|
||||
resources.getDimensionPixelSize(R.dimen.alert_dialog_content_padding)
|
||||
leftMargin = contentPadding
|
||||
topMargin = contentPadding / 2
|
||||
rightMargin = contentPadding
|
||||
}
|
||||
|
||||
// EditText with spacing
|
||||
val input = EditText(this)
|
||||
input.setInputType(InputType.TYPE_CLASS_TEXT)
|
||||
input.setLayoutParams(params)
|
||||
layout.addView(input)
|
||||
|
||||
// Set layout
|
||||
builder.setView(layout)
|
||||
|
||||
// Buttons
|
||||
builder.setPositiveButton(getString(R.string.ok)) { dialog: DialogInterface, which: Int ->
|
||||
DBHelper.insertGroup(mDatabase, input.text.trim().toString())
|
||||
updateGroupList()
|
||||
}
|
||||
builder.setNegativeButton(getString(R.string.cancel)) { dialog: DialogInterface, which: Int ->
|
||||
dialog.cancel()
|
||||
}
|
||||
val dialog = builder.create()
|
||||
|
||||
// Now that the dialog exists, we can bind something that affects the OK button
|
||||
input.doOnTextChanged { s: CharSequence?, start: Int, before: Int, count: Int ->
|
||||
val groupName = s?.trim().toString()
|
||||
|
||||
if (groupName.isEmpty()) {
|
||||
input.error = getString(R.string.group_name_is_empty)
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false)
|
||||
return@doOnTextChanged
|
||||
}
|
||||
|
||||
if (DBHelper.getGroup(mDatabase, groupName) != null) {
|
||||
input.error = getString(R.string.group_name_already_in_use)
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false)
|
||||
return@doOnTextChanged
|
||||
}
|
||||
|
||||
input.error = null
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true)
|
||||
}
|
||||
|
||||
dialog.apply {
|
||||
show()
|
||||
// Disable button (must be done **after** dialog is shown to prevent crash
|
||||
getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false)
|
||||
// Set focus on input field
|
||||
window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
}
|
||||
|
||||
input.requestFocus()
|
||||
}
|
||||
|
||||
private fun getGroupName(view: View): String {
|
||||
val groupNameTextView = view.findViewById<TextView>(R.id.name)
|
||||
return groupNameTextView.text.toString()
|
||||
}
|
||||
|
||||
private fun moveGroup(view: View, up: Boolean) {
|
||||
val groups = DBHelper.getGroups(mDatabase)
|
||||
val groupName = getGroupName(view)
|
||||
|
||||
val currentIndex = DBHelper.getGroup(mDatabase, groupName).order
|
||||
|
||||
// Reinsert group in correct position
|
||||
val newIndex: Int = if (up) {
|
||||
currentIndex - 1
|
||||
} else {
|
||||
currentIndex + 1
|
||||
}
|
||||
|
||||
// Don't try to move out of bounds
|
||||
if (newIndex < 0 || newIndex >= groups.size) {
|
||||
return
|
||||
}
|
||||
|
||||
val group = groups.removeAt(currentIndex)
|
||||
groups.add(newIndex, group)
|
||||
|
||||
// Update database
|
||||
DBHelper.reorderGroups(mDatabase, groups)
|
||||
|
||||
// Update UI
|
||||
updateGroupList()
|
||||
|
||||
// Ordering may have changed, so invalidate
|
||||
invalidateHomescreenActiveTab()
|
||||
}
|
||||
|
||||
override fun onMoveDownButtonClicked(view: View) {
|
||||
moveGroup(view, false)
|
||||
}
|
||||
|
||||
override fun onMoveUpButtonClicked(view: View) {
|
||||
moveGroup(view, true)
|
||||
}
|
||||
|
||||
override fun onEditButtonClicked(view: View) {
|
||||
Intent(this, ManageGroupActivity::class.java).apply {
|
||||
putExtra("group", getGroupName(view))
|
||||
startActivity(this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDeleteButtonClicked(view: View) {
|
||||
val groupName = getGroupName(view)
|
||||
|
||||
MaterialAlertDialogBuilder(this).apply {
|
||||
setTitle(R.string.deleteConfirmationGroup)
|
||||
setMessage(groupName)
|
||||
|
||||
setPositiveButton(getString(R.string.ok)) { dialog: DialogInterface, which: Int ->
|
||||
DBHelper.deleteGroup(mDatabase, groupName)
|
||||
updateGroupList()
|
||||
// Delete may change ordering, so invalidate
|
||||
invalidateHomescreenActiveTab()
|
||||
}
|
||||
setNegativeButton(getString(R.string.cancel)) { dialog: DialogInterface, which: Int ->
|
||||
dialog.cancel()
|
||||
}
|
||||
}.create().show()
|
||||
}
|
||||
}
|
||||
@@ -1,542 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import static protect.card_locker.BarcodeSelectorActivity.BARCODE_CONTENTS;
|
||||
import static protect.card_locker.BarcodeSelectorActivity.BARCODE_FORMAT;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.text.InputType;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.SimpleAdapter;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.zxing.DecodeHintType;
|
||||
import com.google.zxing.ResultPoint;
|
||||
import com.google.zxing.client.android.Intents;
|
||||
import com.journeyapps.barcodescanner.BarcodeCallback;
|
||||
import com.journeyapps.barcodescanner.BarcodeResult;
|
||||
import com.journeyapps.barcodescanner.CaptureManager;
|
||||
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import protect.card_locker.databinding.CustomBarcodeScannerBinding;
|
||||
import protect.card_locker.databinding.ScanActivityBinding;
|
||||
|
||||
/**
|
||||
* Custom Scannner Activity extending from Activity to display a custom layout form scanner view.
|
||||
* <p>
|
||||
* Based on https://github.com/journeyapps/zxing-android-embedded/blob/0fdfbce9fb3285e985bad9971c5f7c0a7a334e7b/sample/src/main/java/example/zxing/CustomScannerActivity.java
|
||||
* originally licensed under Apache 2.0
|
||||
*/
|
||||
public class ScanActivity extends CatimaAppCompatActivity {
|
||||
private ScanActivityBinding binding;
|
||||
private CustomBarcodeScannerBinding customBarcodeScannerBinding;
|
||||
private static final String TAG = "Catima";
|
||||
|
||||
private static final int MEDIUM_SCALE_FACTOR_DIP = 460;
|
||||
private static final int COMPAT_SCALE_FACTOR_DIP = 320;
|
||||
|
||||
private static final int PERMISSION_SCAN_ADD_FROM_IMAGE = 100;
|
||||
private static final int PERMISSION_SCAN_ADD_FROM_PDF = 101;
|
||||
private static final int PERMISSION_SCAN_ADD_FROM_PKPASS = 102;
|
||||
|
||||
private CaptureManager capture;
|
||||
private DecoratedBarcodeView barcodeScannerView;
|
||||
|
||||
private String cardId;
|
||||
private String addGroup;
|
||||
private boolean torch = false;
|
||||
|
||||
private ActivityResultLauncher<Intent> manualAddLauncher;
|
||||
// can't use the pre-made contract because that launches the file manager for image type instead of gallery
|
||||
private ActivityResultLauncher<Intent> photoPickerLauncher;
|
||||
private ActivityResultLauncher<Intent> pdfPickerLauncher;
|
||||
private ActivityResultLauncher<Intent> pkpassPickerLauncher;
|
||||
|
||||
static final String STATE_SCANNER_ACTIVE = "scannerActive";
|
||||
private boolean mScannerActive = true;
|
||||
private boolean mHasError = false;
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
cardId = b != null ? b.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID) : null;
|
||||
addGroup = b != null ? b.getString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP) : null;
|
||||
Log.d(TAG, "Scan activity: id=" + cardId);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ScanActivityBinding.inflate(getLayoutInflater());
|
||||
customBarcodeScannerBinding = CustomBarcodeScannerBinding.bind(binding.zxingBarcodeScanner);
|
||||
setTitle(R.string.scanCardBarcode);
|
||||
setContentView(binding.getRoot());
|
||||
Utils.applyWindowInsets(binding.getRoot());
|
||||
Toolbar toolbar = binding.toolbar;
|
||||
setSupportActionBar(toolbar);
|
||||
enableToolbarBackButton();
|
||||
|
||||
extractIntentFields(getIntent());
|
||||
|
||||
manualAddLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.SELECT_BARCODE_REQUEST, result.getResultCode(), result.getData()));
|
||||
photoPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_IMAGE_FILE, result.getResultCode(), result.getData()));
|
||||
pdfPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_PDF_FILE, result.getResultCode(), result.getData()));
|
||||
pkpassPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_PKPASS_FILE, result.getResultCode(), result.getData()));
|
||||
customBarcodeScannerBinding.fabOtherOptions.setOnClickListener(view -> {
|
||||
setScannerActive(false);
|
||||
|
||||
ArrayList<HashMap<String, Object>> list = new ArrayList<>();
|
||||
String[] texts = new String[]{
|
||||
getString(R.string.addWithoutBarcode),
|
||||
getString(R.string.addManually),
|
||||
getString(R.string.addFromImage),
|
||||
getString(R.string.addFromPdfFile),
|
||||
getString(R.string.addFromPkpass)
|
||||
};
|
||||
Object[] icons = new Object[]{
|
||||
R.drawable.baseline_block_24,
|
||||
R.drawable.ic_edit,
|
||||
R.drawable.baseline_image_24,
|
||||
R.drawable.baseline_picture_as_pdf_24,
|
||||
R.drawable.local_activity_24px
|
||||
};
|
||||
String[] columns = new String[]{"text", "icon"};
|
||||
|
||||
for (int i = 0; i < texts.length; i++) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put(columns[0], texts[i]);
|
||||
map.put(columns[1], icons[i]);
|
||||
list.add(map);
|
||||
}
|
||||
|
||||
ListAdapter adapter = new SimpleAdapter(
|
||||
ScanActivity.this,
|
||||
list,
|
||||
R.layout.alertdialog_row_with_icon,
|
||||
columns,
|
||||
new int[]{R.id.textView, R.id.imageView}
|
||||
);
|
||||
|
||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
|
||||
builder.setTitle(getString(R.string.add_a_card_in_a_different_way));
|
||||
builder.setAdapter(
|
||||
adapter,
|
||||
(dialogInterface, i) -> {
|
||||
switch (i) {
|
||||
case 0:
|
||||
addWithoutBarcode();
|
||||
break;
|
||||
case 1:
|
||||
addManually();
|
||||
break;
|
||||
case 2:
|
||||
addFromImage();
|
||||
break;
|
||||
case 3:
|
||||
addFromPdf();
|
||||
break;
|
||||
case 4:
|
||||
addFromPkPass();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown 'Add a card in a different way' dialog option");
|
||||
}
|
||||
}
|
||||
);
|
||||
builder.setOnCancelListener(dialogInterface -> setScannerActive(true));
|
||||
builder.show();
|
||||
});
|
||||
|
||||
// Configure barcodeScanner
|
||||
barcodeScannerView = binding.zxingBarcodeScanner;
|
||||
Intent barcodeScannerIntent = new Intent();
|
||||
Bundle barcodeScannerIntentBundle = new Bundle();
|
||||
barcodeScannerIntentBundle.putBoolean(DecodeHintType.ALSO_INVERTED.name(), Boolean.TRUE);
|
||||
barcodeScannerIntent.putExtras(barcodeScannerIntentBundle);
|
||||
barcodeScannerView.initializeFromIntent(barcodeScannerIntent);
|
||||
|
||||
// Even though we do the actual decoding with the barcodeScannerView
|
||||
// CaptureManager needs to be running to show the camera and scanning bar
|
||||
capture = new CatimaCaptureManager(this, barcodeScannerView, this::onCaptureManagerError);
|
||||
Intent captureIntent = new Intent();
|
||||
Bundle captureIntentBundle = new Bundle();
|
||||
captureIntentBundle.putBoolean(Intents.Scan.BEEP_ENABLED, false);
|
||||
captureIntent.putExtras(captureIntentBundle);
|
||||
capture.initializeFromIntent(captureIntent, savedInstanceState);
|
||||
|
||||
barcodeScannerView.decodeSingle(new BarcodeCallback() {
|
||||
@Override
|
||||
public void barcodeResult(BarcodeResult result) {
|
||||
LoyaltyCard loyaltyCard = new LoyaltyCard();
|
||||
loyaltyCard.setCardId(result.getText());
|
||||
loyaltyCard.setBarcodeType(CatimaBarcode.fromBarcode(result.getBarcodeFormat()));
|
||||
|
||||
returnResult(new ParseResult(ParseResultType.BARCODE_ONLY, loyaltyCard));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void possibleResultPoints(List<ResultPoint> resultPoints) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
if (mScannerActive) {
|
||||
capture.onResume();
|
||||
}
|
||||
|
||||
if (!Utils.deviceHasCamera(this)) {
|
||||
showCameraError(getString(R.string.noCameraFoundGuideText), false);
|
||||
} else if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||
showCameraPermissionMissingText();
|
||||
} else {
|
||||
hideCameraError();
|
||||
}
|
||||
|
||||
scaleScreen();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
capture.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
capture.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle savedInstanceState) {
|
||||
super.onSaveInstanceState(savedInstanceState);
|
||||
capture.onSaveInstanceState(savedInstanceState);
|
||||
|
||||
savedInstanceState.putBoolean(STATE_SCANNER_ACTIVE, mScannerActive);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
|
||||
mScannerActive = savedInstanceState.getBoolean(STATE_SCANNER_ACTIVE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
return barcodeScannerView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
|
||||
getMenuInflater().inflate(R.menu.scan_menu, menu);
|
||||
}
|
||||
|
||||
barcodeScannerView.setTorchOff();
|
||||
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
setResult(Activity.RESULT_CANCELED);
|
||||
finish();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.action_toggle_flashlight) {
|
||||
if (torch) {
|
||||
torch = false;
|
||||
barcodeScannerView.setTorchOff();
|
||||
item.setTitle(R.string.turn_flashlight_on);
|
||||
item.setIcon(R.drawable.ic_flashlight_off_white_24dp);
|
||||
} else {
|
||||
torch = true;
|
||||
barcodeScannerView.setTorchOn();
|
||||
item.setTitle(R.string.turn_flashlight_off);
|
||||
item.setIcon(R.drawable.ic_flashlight_on_white_24dp);
|
||||
}
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void setScannerActive(boolean isActive) {
|
||||
if (isActive) {
|
||||
barcodeScannerView.resume();
|
||||
} else {
|
||||
barcodeScannerView.pause();
|
||||
}
|
||||
mScannerActive = isActive;
|
||||
}
|
||||
|
||||
private void returnResult(ParseResult parseResult) {
|
||||
Intent result = new Intent();
|
||||
Bundle bundle = parseResult.toLoyaltyCardBundle(ScanActivity.this);
|
||||
if (addGroup != null) {
|
||||
bundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, addGroup);
|
||||
}
|
||||
result.putExtras(bundle);
|
||||
ScanActivity.this.setResult(RESULT_OK, result);
|
||||
finish();
|
||||
}
|
||||
|
||||
private void handleActivityResult(int requestCode, int resultCode, Intent intent) {
|
||||
super.onActivityResult(requestCode, resultCode, intent);
|
||||
|
||||
List<ParseResult> parseResultList = Utils.parseSetBarcodeActivityResult(requestCode, resultCode, intent, this);
|
||||
|
||||
if (parseResultList.isEmpty()) {
|
||||
setScannerActive(true);
|
||||
return;
|
||||
}
|
||||
|
||||
Utils.makeUserChooseParseResultFromList(this, parseResultList, new ParseResultListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseParseResult(ParseResult parseResult) {
|
||||
returnResult(parseResult);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserDismissedSelector() {
|
||||
setScannerActive(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void addWithoutBarcode() {
|
||||
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||
|
||||
builder.setOnCancelListener(dialogInterface -> setScannerActive(true));
|
||||
|
||||
// Header
|
||||
builder.setTitle(R.string.addWithoutBarcode);
|
||||
|
||||
// Layout
|
||||
LinearLayout layout = new LinearLayout(this);
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
);
|
||||
int contentPadding = getResources().getDimensionPixelSize(R.dimen.alert_dialog_content_padding);
|
||||
params.leftMargin = contentPadding;
|
||||
params.topMargin = contentPadding / 2;
|
||||
params.rightMargin = contentPadding;
|
||||
|
||||
// Description
|
||||
TextView currentTextview = new TextView(this);
|
||||
currentTextview.setText(getString(R.string.enter_card_id));
|
||||
currentTextview.setLayoutParams(params);
|
||||
layout.addView(currentTextview);
|
||||
|
||||
// EditText with spacing
|
||||
final EditText input = new EditText(this);
|
||||
input.setInputType(InputType.TYPE_CLASS_TEXT);
|
||||
input.setLayoutParams(params);
|
||||
layout.addView(input);
|
||||
|
||||
// Set layout
|
||||
builder.setView(layout);
|
||||
|
||||
// Buttons
|
||||
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
|
||||
LoyaltyCard loyaltyCard = new LoyaltyCard();
|
||||
loyaltyCard.setCardId(input.getText().toString());
|
||||
returnResult(new ParseResult(ParseResultType.BARCODE_ONLY, loyaltyCard));
|
||||
});
|
||||
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
|
||||
AlertDialog dialog = builder.create();
|
||||
|
||||
// Now that the dialog exists, we can bind something that affects the OK button
|
||||
input.addTextChangedListener(new SimpleTextWatcher() {
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (s.length() == 0) {
|
||||
input.setError(getString(R.string.card_id_must_not_be_empty));
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
|
||||
} else {
|
||||
input.setError(null);
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
dialog.show();
|
||||
|
||||
// Disable button (must be done **after** dialog is shown to prevent crash
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
|
||||
// Set focus on input field
|
||||
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
||||
input.requestFocus();
|
||||
}
|
||||
|
||||
public void addManually() {
|
||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
|
||||
builder.setTitle(R.string.add_manually_warning_title);
|
||||
builder.setMessage(R.string.add_manually_warning_message);
|
||||
builder.setPositiveButton(R.string.continue_, (dialog, which) -> {
|
||||
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
|
||||
if (cardId != null) {
|
||||
final Bundle b = new Bundle();
|
||||
b.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, cardId);
|
||||
i.putExtras(b);
|
||||
}
|
||||
manualAddLauncher.launch(i);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, (dialog, which) -> setScannerActive(true));
|
||||
builder.setOnCancelListener(dialog -> setScannerActive(true));
|
||||
builder.show();
|
||||
}
|
||||
|
||||
public void addFromImage() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_IMAGE);
|
||||
}
|
||||
|
||||
public void addFromPdf() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_PDF);
|
||||
}
|
||||
|
||||
public void addFromPkPass() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_PKPASS);
|
||||
}
|
||||
|
||||
private void addFromImageOrFileAfterPermission(String mimeType, ActivityResultLauncher<Intent> launcher, int chooserText, int errorMessage) {
|
||||
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
|
||||
photoPickerIntent.setType(mimeType);
|
||||
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
|
||||
contentIntent.setType(mimeType);
|
||||
|
||||
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(chooserText));
|
||||
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { contentIntent });
|
||||
try {
|
||||
launcher.launch(chooserIntent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
setScannerActive(true);
|
||||
Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_LONG).show();
|
||||
Log.e(TAG, "No activity found to handle intent", e);
|
||||
}
|
||||
}
|
||||
|
||||
public void onCaptureManagerError(String errorMessage) {
|
||||
if (mHasError) {
|
||||
// We're already showing an error, ignore this new error
|
||||
return;
|
||||
}
|
||||
|
||||
showCameraError(errorMessage, false);
|
||||
}
|
||||
|
||||
private void showCameraPermissionMissingText() {
|
||||
showCameraError(getString(R.string.noCameraPermissionDirectToSystemSetting), true);
|
||||
}
|
||||
|
||||
private void showCameraError(String message, boolean setOnClick) {
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorMessage.setText(message);
|
||||
|
||||
setCameraErrorState(true, setOnClick);
|
||||
}
|
||||
|
||||
private void hideCameraError() {
|
||||
setCameraErrorState(false, false);
|
||||
}
|
||||
|
||||
private void setCameraErrorState(boolean visible, boolean setOnClick) {
|
||||
mHasError = visible;
|
||||
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorClickableArea.setOnClickListener(visible && setOnClick ? v -> {
|
||||
navigateToSystemPermissionSetting();
|
||||
} : null);
|
||||
customBarcodeScannerBinding.cardInputContainer.setBackgroundColor(visible ? obtainThemeAttribute(com.google.android.material.R.attr.colorSurface) : Color.TRANSPARENT);
|
||||
customBarcodeScannerBinding.cameraErrorLayout.getRoot().setVisibility(visible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void scaleScreen() {
|
||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
||||
int screenHeight = displayMetrics.heightPixels;
|
||||
float mediumSizePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,MEDIUM_SCALE_FACTOR_DIP,getResources().getDisplayMetrics());
|
||||
boolean shouldScaleSmaller = screenHeight < mediumSizePx;
|
||||
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorIcon.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorTitle.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
|
||||
private int obtainThemeAttribute(int attribute) {
|
||||
TypedValue typedValue = new TypedValue();
|
||||
getTheme().resolveAttribute(attribute, typedValue, true);
|
||||
return typedValue.data;
|
||||
}
|
||||
|
||||
private void navigateToSystemPermissionSetting() {
|
||||
Intent permissionIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null));
|
||||
permissionIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(permissionIntent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
|
||||
onMockedRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
|
||||
public void onMockedRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
boolean granted = grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
|
||||
|
||||
if (requestCode == CaptureManager.getCameraPermissionReqCode()) {
|
||||
if (granted) {
|
||||
hideCameraError();
|
||||
} else {
|
||||
showCameraPermissionMissingText();
|
||||
}
|
||||
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE || requestCode == PERMISSION_SCAN_ADD_FROM_PDF || requestCode == PERMISSION_SCAN_ADD_FROM_PKPASS) {
|
||||
if (granted) {
|
||||
if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
|
||||
addFromImageOrFileAfterPermission("image/*", photoPickerLauncher, R.string.addFromImage, R.string.failedLaunchingPhotoPicker);
|
||||
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_PDF) {
|
||||
addFromImageOrFileAfterPermission("application/pdf", pdfPickerLauncher, R.string.addFromPdfFile, R.string.failedLaunchingFileManager);
|
||||
} else {
|
||||
addFromImageOrFileAfterPermission("application/*", pkpassPickerLauncher, R.string.addFromPkpass, R.string.failedLaunchingFileManager);
|
||||
}
|
||||
} else {
|
||||
setScannerActive(true);
|
||||
Toast.makeText(this, R.string.storageReadPermissionRequired, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
599
app/src/main/java/protect/card_locker/ScanActivity.kt
Normal file
599
app/src/main/java/protect/card_locker/ScanActivity.kt
Normal file
@@ -0,0 +1,599 @@
|
||||
package protect.card_locker
|
||||
|
||||
|
||||
import android.Manifest
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Color
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.text.InputType
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.util.TypedValue
|
||||
import android.view.KeyEvent
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.widget.EditText
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.ListAdapter
|
||||
import android.widget.SimpleAdapter
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.zxing.DecodeHintType
|
||||
import com.google.zxing.ResultPoint
|
||||
import com.journeyapps.barcodescanner.BarcodeCallback
|
||||
import com.journeyapps.barcodescanner.BarcodeResult
|
||||
import com.journeyapps.barcodescanner.CaptureManager
|
||||
import com.journeyapps.barcodescanner.DecoratedBarcodeView
|
||||
import protect.card_locker.databinding.CustomBarcodeScannerBinding
|
||||
import protect.card_locker.databinding.ScanActivityBinding
|
||||
|
||||
/**
|
||||
* Custom Scannner Activity extending from Activity to display a custom layout form scanner view.
|
||||
* <p>
|
||||
* Based on https://github.com/journeyapps/zxing-android-embedded/blob/0fdfbce9fb3285e985bad9971c5f7c0a7a334e7b/sample/src/main/java/example/zxing/CustomScannerActivity.java
|
||||
* originally licensed under Apache 2.0
|
||||
*/
|
||||
class ScanActivity : CatimaAppCompatActivity() {
|
||||
private lateinit var binding: ScanActivityBinding
|
||||
private lateinit var customBarcodeScannerBinding: CustomBarcodeScannerBinding
|
||||
|
||||
companion object {
|
||||
private const val TAG = "Catima"
|
||||
|
||||
private const val MEDIUM_SCALE_FACTOR_DIP = 460
|
||||
private const val COMPAT_SCALE_FACTOR_DIP = 320
|
||||
|
||||
private const val PERMISSION_SCAN_ADD_FROM_IMAGE = 100
|
||||
private const val PERMISSION_SCAN_ADD_FROM_PDF = 101
|
||||
private const val PERMISSION_SCAN_ADD_FROM_PKPASS = 102
|
||||
|
||||
private const val STATE_SCANNER_ACTIVE = "scannerActive"
|
||||
}
|
||||
|
||||
private lateinit var capture: CaptureManager
|
||||
private lateinit var barcodeScannerView: DecoratedBarcodeView
|
||||
private var cardId: String? = null
|
||||
private var addGroup: String? = null
|
||||
private var torch = false
|
||||
|
||||
private lateinit var manualAddLauncher: ActivityResultLauncher<Intent>
|
||||
// can't use the pre-made contract because that launches the file manager for image type instead of gallery
|
||||
private lateinit var photoPickerLauncher: ActivityResultLauncher<Intent>
|
||||
private lateinit var pdfPickerLauncher: ActivityResultLauncher<Intent>
|
||||
private lateinit var pkpassPickerLauncher: ActivityResultLauncher<Intent>
|
||||
|
||||
private var mScannerActive = true
|
||||
private var mHasError = false
|
||||
|
||||
private fun extractIntentFields(intent: Intent) {
|
||||
val b = intent.extras
|
||||
cardId = b?.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID)
|
||||
addGroup = b?.getString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP)
|
||||
Log.d(TAG, "Scan activity: id=$cardId")
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ScanActivityBinding.inflate(layoutInflater)
|
||||
customBarcodeScannerBinding = CustomBarcodeScannerBinding.bind(binding.zxingBarcodeScanner)
|
||||
setTitle(R.string.scanCardBarcode)
|
||||
setContentView(binding.root)
|
||||
Utils.applyWindowInsets(binding.root)
|
||||
setSupportActionBar(binding.toolbar)
|
||||
enableToolbarBackButton()
|
||||
|
||||
extractIntentFields(intent)
|
||||
|
||||
manualAddLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
handleActivityResult(
|
||||
Utils.SELECT_BARCODE_REQUEST,
|
||||
result.resultCode,
|
||||
result.data
|
||||
)
|
||||
}
|
||||
photoPickerLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
handleActivityResult(
|
||||
Utils.BARCODE_IMPORT_FROM_IMAGE_FILE,
|
||||
result.resultCode,
|
||||
result.data
|
||||
)
|
||||
}
|
||||
pdfPickerLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
handleActivityResult(
|
||||
Utils.BARCODE_IMPORT_FROM_PDF_FILE,
|
||||
result.resultCode,
|
||||
result.data
|
||||
)
|
||||
}
|
||||
pkpassPickerLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
handleActivityResult(
|
||||
Utils.BARCODE_IMPORT_FROM_PKPASS_FILE,
|
||||
result.resultCode,
|
||||
result.data
|
||||
)
|
||||
}
|
||||
|
||||
customBarcodeScannerBinding.fabOtherOptions.setOnClickListener {
|
||||
setScannerActive(false)
|
||||
|
||||
val list: ArrayList<HashMap<String, Any>> = arrayListOf()
|
||||
val texts = arrayOf(
|
||||
getString(R.string.addWithoutBarcode),
|
||||
getString(R.string.addManually),
|
||||
getString(R.string.addFromImage),
|
||||
getString(R.string.addFromPdfFile),
|
||||
getString(R.string.addFromPkpass)
|
||||
)
|
||||
val icons = arrayOf(
|
||||
R.drawable.baseline_block_24,
|
||||
R.drawable.ic_edit,
|
||||
R.drawable.baseline_image_24,
|
||||
R.drawable.baseline_picture_as_pdf_24,
|
||||
R.drawable.local_activity_24px
|
||||
)
|
||||
val columns = arrayOf("text", "icon")
|
||||
|
||||
for (i in 0 until texts.size) {
|
||||
val map: HashMap<String, Any> = hashMapOf()
|
||||
map.put(columns[0], texts[i])
|
||||
map.put(columns[1], icons[i])
|
||||
list.add(map)
|
||||
}
|
||||
|
||||
val adapter: ListAdapter = SimpleAdapter(
|
||||
this,
|
||||
list,
|
||||
R.layout.alertdialog_row_with_icon,
|
||||
columns,
|
||||
intArrayOf(R.id.textView, R.id.imageView)
|
||||
)
|
||||
|
||||
val builder = MaterialAlertDialogBuilder(this).apply {
|
||||
setTitle(getString(R.string.add_a_card_in_a_different_way))
|
||||
setAdapter(adapter) { _, i ->
|
||||
when (i) {
|
||||
0 -> addWithoutBarcode()
|
||||
1 -> addManually()
|
||||
2 -> addFromImage()
|
||||
3 -> addFromPdf()
|
||||
4 -> addFromPkPass()
|
||||
else -> throw IllegalArgumentException(
|
||||
"Unknown 'Add a card in a different way' dialog option: $i"
|
||||
)
|
||||
}
|
||||
}
|
||||
setOnCancelListener { _ -> setScannerActive(true) }
|
||||
}
|
||||
builder.show()
|
||||
}
|
||||
|
||||
// Configure barcodeScanner
|
||||
barcodeScannerView = binding.zxingBarcodeScanner
|
||||
|
||||
val barcodeScannerIntent = Intent().apply {
|
||||
val barcodeScannerIntentBundle = Bundle().apply {
|
||||
putBoolean(DecodeHintType.ALSO_INVERTED.name, true)
|
||||
}
|
||||
putExtras(barcodeScannerIntentBundle)
|
||||
}
|
||||
barcodeScannerView.initializeFromIntent(barcodeScannerIntent)
|
||||
|
||||
// Even though we do the actual decoding with the barcodeScannerView
|
||||
// CaptureManager needs to be running to show the camera and scanning bar
|
||||
capture = CatimaCaptureManager(this, barcodeScannerView, this::onCaptureManagerError)
|
||||
val captureIntent = Intent().apply {
|
||||
val captureIntentBundle = Bundle().apply {
|
||||
putBoolean(DecodeHintType.ALSO_INVERTED.name, false)
|
||||
}
|
||||
putExtras(captureIntentBundle)
|
||||
}
|
||||
capture.initializeFromIntent(captureIntent, savedInstanceState)
|
||||
|
||||
barcodeScannerView.decodeSingle(object : BarcodeCallback {
|
||||
override fun barcodeResult(result: BarcodeResult) {
|
||||
val loyaltyCard = LoyaltyCard().apply {
|
||||
setCardId(result.text)
|
||||
setBarcodeType(CatimaBarcode.fromBarcode(result.barcodeFormat))
|
||||
}
|
||||
|
||||
returnResult(ParseResult(ParseResultType.BARCODE_ONLY, loyaltyCard))
|
||||
}
|
||||
|
||||
override fun possibleResultPoints(resultPoints: List<ResultPoint?>?) {}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
if (mScannerActive) {
|
||||
capture.onResume()
|
||||
}
|
||||
|
||||
if (!Utils.deviceHasCamera(this)) {
|
||||
showCameraError(getString(R.string.noCameraFoundGuideText), false)
|
||||
} else if (ContextCompat.checkSelfPermission(
|
||||
this,
|
||||
Manifest.permission.CAMERA
|
||||
) != PackageManager.PERMISSION_GRANTED
|
||||
) {
|
||||
showCameraPermissionMissingText()
|
||||
} else {
|
||||
hideCameraError()
|
||||
}
|
||||
|
||||
scaleScreen()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
capture.onPause()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
capture.onDestroy()
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(savedInstanceState: Bundle) {
|
||||
super.onSaveInstanceState(savedInstanceState)
|
||||
capture.onSaveInstanceState(savedInstanceState)
|
||||
|
||||
savedInstanceState.putBoolean(STATE_SCANNER_ACTIVE, mScannerActive)
|
||||
}
|
||||
|
||||
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
|
||||
super.onRestoreInstanceState(savedInstanceState)
|
||||
|
||||
mScannerActive = savedInstanceState.getBoolean(STATE_SCANNER_ACTIVE)
|
||||
}
|
||||
|
||||
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
|
||||
return barcodeScannerView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event)
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
|
||||
menuInflater.inflate(R.menu.scan_menu, menu)
|
||||
}
|
||||
|
||||
barcodeScannerView.setTorchOff()
|
||||
|
||||
return super.onCreateOptionsMenu(menu)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (item.itemId == android.R.id.home) {
|
||||
setResult(RESULT_CANCELED)
|
||||
finish()
|
||||
return true
|
||||
} else if (item.itemId == R.id.action_toggle_flashlight) {
|
||||
if (torch) {
|
||||
torch = false
|
||||
barcodeScannerView.setTorchOff()
|
||||
item.setTitle(R.string.turn_flashlight_on)
|
||||
item.setIcon(R.drawable.ic_flashlight_off_white_24dp)
|
||||
} else {
|
||||
torch = true
|
||||
barcodeScannerView.setTorchOn()
|
||||
item.setTitle(R.string.turn_flashlight_off)
|
||||
item.setIcon(R.drawable.ic_flashlight_on_white_24dp)
|
||||
}
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun setScannerActive(isActive: Boolean) {
|
||||
if (isActive) {
|
||||
barcodeScannerView.resume()
|
||||
} else {
|
||||
barcodeScannerView.pause()
|
||||
}
|
||||
mScannerActive = isActive
|
||||
}
|
||||
|
||||
private fun returnResult(parseResult: ParseResult) {
|
||||
val bundle = parseResult.toLoyaltyCardBundle(this).apply {
|
||||
addGroup?.let { putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, it) }
|
||||
}
|
||||
val result = Intent().apply { putExtras(bundle) }
|
||||
this.setResult(RESULT_OK, result)
|
||||
finish()
|
||||
}
|
||||
|
||||
private fun handleActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
|
||||
super.onActivityResult(resultCode, resultCode, intent)
|
||||
|
||||
val parseResultList: List<ParseResult> =
|
||||
Utils.parseSetBarcodeActivityResult(requestCode, resultCode, intent, this)
|
||||
|
||||
if (parseResultList.isEmpty()) {
|
||||
setScannerActive(true)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Utils.makeUserChooseParseResultFromList(
|
||||
this,
|
||||
parseResultList,
|
||||
object : ParseResultListDisambiguatorCallback {
|
||||
override fun onUserChoseParseResult(parseResult: ParseResult) {
|
||||
returnResult(parseResult)
|
||||
}
|
||||
|
||||
override fun onUserDismissedSelector() {
|
||||
setScannerActive(true)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun addWithoutBarcode() {
|
||||
val builder: AlertDialog.Builder = MaterialAlertDialogBuilder(this).apply {
|
||||
setOnCancelListener { dialogInterface -> setScannerActive(true) }
|
||||
// Header
|
||||
setTitle(R.string.addWithoutBarcode)
|
||||
}
|
||||
|
||||
// Layout
|
||||
val layout = LinearLayout(this).apply {
|
||||
orientation = LinearLayout.VERTICAL
|
||||
}
|
||||
val contentPadding = resources.getDimensionPixelSize(R.dimen.alert_dialog_content_padding)
|
||||
val params = LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
leftMargin = contentPadding
|
||||
topMargin = contentPadding / 2
|
||||
rightMargin = contentPadding
|
||||
}
|
||||
|
||||
// Description
|
||||
val currentTextview = TextView(this).apply {
|
||||
text = getString(R.string.enter_card_id)
|
||||
layoutParams = params
|
||||
}
|
||||
layout.addView(currentTextview)
|
||||
|
||||
//EditText with spacing
|
||||
val input = EditText(this).apply {
|
||||
inputType = InputType.TYPE_CLASS_TEXT
|
||||
layoutParams = params
|
||||
}
|
||||
layout.addView(input)
|
||||
|
||||
// Set layout
|
||||
builder.setView(layout).apply {
|
||||
|
||||
setPositiveButton(getString(R.string.ok)) { _, _ ->
|
||||
val loyaltyCard = LoyaltyCard()
|
||||
loyaltyCard.cardId = input.text.toString()
|
||||
returnResult(ParseResult(ParseResultType.BARCODE_ONLY, loyaltyCard))
|
||||
}
|
||||
setNegativeButton(getString(R.string.cancel)) { dialog, _ ->
|
||||
dialog.cancel()
|
||||
}
|
||||
}
|
||||
val dialog: AlertDialog = builder.create()
|
||||
|
||||
// Now that the dialog exists, we can bind something that affects the OK button
|
||||
input.doOnTextChanged { text, _, _, _ ->
|
||||
if (text.isNullOrEmpty()) {
|
||||
input.error = getString(R.string.card_id_must_not_be_empty)
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = false
|
||||
} else {
|
||||
input.error = null
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
dialog.show()
|
||||
|
||||
// Disable button (must be done **after** dialog is shown to prevent crash
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = false
|
||||
// Set focus on input field
|
||||
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
input.requestFocus()
|
||||
}
|
||||
|
||||
fun addManually() {
|
||||
val builder = MaterialAlertDialogBuilder(this).apply {
|
||||
setTitle(R.string.add_manually_warning_title)
|
||||
setMessage(R.string.add_manually_warning_message)
|
||||
setPositiveButton(R.string.continue_) { _, _ ->
|
||||
val i = Intent(applicationContext, BarcodeSelectorActivity::class.java)
|
||||
if (cardId != null) {
|
||||
val b = Bundle()
|
||||
b.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, cardId)
|
||||
i.putExtras(b)
|
||||
}
|
||||
manualAddLauncher.launch(i)
|
||||
}
|
||||
setNegativeButton(R.string.cancel) { _, _ -> setScannerActive(true) }
|
||||
setOnCancelListener { _ -> setScannerActive(true) }
|
||||
}
|
||||
builder.show()
|
||||
}
|
||||
|
||||
fun addFromImage() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_IMAGE)
|
||||
}
|
||||
|
||||
fun addFromPdf() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_PDF)
|
||||
}
|
||||
|
||||
fun addFromPkPass() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_PKPASS)
|
||||
}
|
||||
|
||||
private fun addFromImageOrFileAfterPermission(
|
||||
mimeType: String,
|
||||
launcher: ActivityResultLauncher<Intent>,
|
||||
chooserText: Int,
|
||||
errorMessage: Int
|
||||
) {
|
||||
val photoPickerIntent = Intent(Intent.ACTION_PICK)
|
||||
photoPickerIntent.type = mimeType
|
||||
val contentIntent = Intent(Intent.ACTION_GET_CONTENT)
|
||||
contentIntent.type = mimeType
|
||||
|
||||
val chooserIntent = Intent.createChooser(photoPickerIntent, getString(chooserText))
|
||||
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, arrayOf(contentIntent))
|
||||
try {
|
||||
launcher.launch(chooserIntent)
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
setScannerActive(true)
|
||||
Toast.makeText(applicationContext, errorMessage, Toast.LENGTH_LONG).show()
|
||||
Log.e(TAG, "No activity found to handle intent", e)
|
||||
}
|
||||
}
|
||||
|
||||
fun onCaptureManagerError(errorMessage: String) {
|
||||
if (mHasError) {
|
||||
// We're already showing an error, ignore this new error
|
||||
return
|
||||
}
|
||||
|
||||
showCameraError(errorMessage, false)
|
||||
}
|
||||
|
||||
private fun showCameraPermissionMissingText() {
|
||||
showCameraError(getString(R.string.noCameraPermissionDirectToSystemSetting), true)
|
||||
}
|
||||
|
||||
private fun showCameraError(message: String, setOnClick: Boolean) {
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorMessage.text = message
|
||||
|
||||
setCameraErrorState(true, setOnClick)
|
||||
}
|
||||
|
||||
private fun hideCameraError() {
|
||||
setCameraErrorState(false, false)
|
||||
}
|
||||
|
||||
private fun setCameraErrorState(visible: Boolean, setOnClick: Boolean) {
|
||||
mHasError = visible
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorClickableArea.setOnClickListener(
|
||||
if (visible && setOnClick) { _ -> navigateToSystemPermissionSetting() }
|
||||
else null
|
||||
)
|
||||
customBarcodeScannerBinding.cardInputContainer.setBackgroundColor(
|
||||
if (visible) obtainThemeAttribute(com.google.android.material.R.attr.colorSurface)
|
||||
else Color.TRANSPARENT
|
||||
)
|
||||
customBarcodeScannerBinding.cameraErrorLayout.root.visibility =
|
||||
if (visible) View.VISIBLE else View.GONE
|
||||
}
|
||||
|
||||
private fun scaleScreen() {
|
||||
val displayMetrics = DisplayMetrics()
|
||||
windowManager.defaultDisplay.getMetrics(displayMetrics)
|
||||
val screenHeight: Int = displayMetrics.heightPixels
|
||||
val mediumSizePx: Float = TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
MEDIUM_SCALE_FACTOR_DIP.toFloat(),
|
||||
resources.displayMetrics
|
||||
)
|
||||
val shouldScaleSmaller = screenHeight < mediumSizePx
|
||||
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorIcon.visibility =
|
||||
if (shouldScaleSmaller) View.GONE else View.VISIBLE
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorTitle.visibility =
|
||||
if (shouldScaleSmaller) View.GONE else View.VISIBLE
|
||||
}
|
||||
|
||||
private fun obtainThemeAttribute(attribute: Int): Int {
|
||||
val typedValue = TypedValue()
|
||||
theme.resolveAttribute(attribute, typedValue, true)
|
||||
return typedValue.data
|
||||
}
|
||||
|
||||
private fun navigateToSystemPermissionSetting() {
|
||||
val permissionIntent = Intent(
|
||||
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
|
||||
Uri.fromParts("package", getPackageName(), null)
|
||||
)
|
||||
permissionIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
startActivity(permissionIntent)
|
||||
}
|
||||
|
||||
override fun onRequestPermissionsResult(
|
||||
requestCode: Int,
|
||||
permissions: Array<String?>,
|
||||
grantResults: IntArray
|
||||
) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||
|
||||
onMockedRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||
}
|
||||
|
||||
override fun onMockedRequestPermissionsResult(
|
||||
requestCode: Int,
|
||||
permissions: Array<String?>,
|
||||
grantResults: IntArray
|
||||
) {
|
||||
val granted =
|
||||
grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED
|
||||
|
||||
if (requestCode == CaptureManager.getCameraPermissionReqCode()) {
|
||||
if (granted) {
|
||||
hideCameraError()
|
||||
} else {
|
||||
showCameraPermissionMissingText()
|
||||
}
|
||||
} else if (requestCode in listOf(
|
||||
PERMISSION_SCAN_ADD_FROM_IMAGE,
|
||||
PERMISSION_SCAN_ADD_FROM_PDF,
|
||||
PERMISSION_SCAN_ADD_FROM_PKPASS
|
||||
)
|
||||
) {
|
||||
if (granted) {
|
||||
if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
|
||||
addFromImageOrFileAfterPermission(
|
||||
"image/*",
|
||||
photoPickerLauncher,
|
||||
R.string.addFromImage,
|
||||
R.string.failedLaunchingPhotoPicker
|
||||
)
|
||||
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_PDF) {
|
||||
addFromImageOrFileAfterPermission(
|
||||
"application/pdf",
|
||||
pdfPickerLauncher,
|
||||
R.string.addFromPdfFile,
|
||||
R.string.failedLaunchingFileManager
|
||||
)
|
||||
} else {
|
||||
addFromImageOrFileAfterPermission(
|
||||
"application/*",
|
||||
pkpassPickerLauncher,
|
||||
R.string.addFromPkpass,
|
||||
R.string.failedLaunchingFileManager
|
||||
)
|
||||
}
|
||||
} else {
|
||||
setScannerActive(true)
|
||||
Toast.makeText(this, R.string.storageReadPermissionRequired, Toast.LENGTH_LONG)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
public class ThirdPartyInfo {
|
||||
private final String mName;
|
||||
private final String mUrl;
|
||||
private final String mLicense;
|
||||
|
||||
public ThirdPartyInfo(String name, String url, String license) {
|
||||
mName = name;
|
||||
mUrl = url;
|
||||
mLicense = license;
|
||||
}
|
||||
|
||||
public String name() {
|
||||
return mName;
|
||||
}
|
||||
|
||||
public String url() {
|
||||
return mUrl;
|
||||
}
|
||||
|
||||
public String license() {
|
||||
return mLicense;
|
||||
}
|
||||
|
||||
public String toHtml() {
|
||||
return String.format("<a href=\"%s\">%s</a> (%s)", url(), name(), license());
|
||||
}
|
||||
}
|
||||
23
app/src/main/java/protect/card_locker/ThirdPartyInfo.kt
Normal file
23
app/src/main/java/protect/card_locker/ThirdPartyInfo.kt
Normal file
@@ -0,0 +1,23 @@
|
||||
package protect.card_locker
|
||||
|
||||
class ThirdPartyInfo(
|
||||
private val mName: String,
|
||||
private val mUrl: String,
|
||||
private val mLicense: String
|
||||
) {
|
||||
fun name(): String {
|
||||
return mName
|
||||
}
|
||||
|
||||
fun url(): String {
|
||||
return mUrl
|
||||
}
|
||||
|
||||
fun license(): String {
|
||||
return mLicense
|
||||
}
|
||||
|
||||
fun toHtml(): String {
|
||||
return String.format("<a href=\"%s\">%s</a> (%s)", url(), name(), license())
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
import androidx.core.view.WindowInsetsControllerCompat;
|
||||
|
||||
import com.google.android.material.color.MaterialColors;
|
||||
import com.google.android.material.textview.MaterialTextView;
|
||||
import com.yalantis.ucrop.UCropActivity;
|
||||
|
||||
public class UCropWrapper extends UCropActivity {
|
||||
public static final String UCROP_TOOLBAR_TYPEFACE_STYLE = "ucop_toolbar_typeface_style";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Utils.applyWindowInsets(findViewById(android.R.id.content));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
boolean darkMode = Utils.isDarkModeEnabled(this);
|
||||
Window window = getWindow();
|
||||
// setup status bar to look like the rest of the app
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
if (window != null) {
|
||||
View decorView = window.getDecorView();
|
||||
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(window, decorView);
|
||||
wic.setAppearanceLightStatusBars(!darkMode);
|
||||
}
|
||||
} else {
|
||||
// icons are always white back then
|
||||
if (window != null && !darkMode) {
|
||||
window.setStatusBarColor(ColorUtils.compositeColors(Color.argb(127, 0, 0, 0), window.getStatusBarColor()));
|
||||
}
|
||||
}
|
||||
|
||||
// find and check views that we wish to color modify
|
||||
// for when we update ucrop or switch to another cropper
|
||||
View check = findViewById(com.yalantis.ucrop.R.id.wrapper_controls);
|
||||
if (check instanceof FrameLayout) {
|
||||
FrameLayout controls = (FrameLayout) check;
|
||||
check = findViewById(com.yalantis.ucrop.R.id.wrapper_states);
|
||||
if (check instanceof LinearLayout) {
|
||||
LinearLayout states = (LinearLayout) check;
|
||||
for (int i = 0; i < controls.getChildCount(); i++) {
|
||||
check = controls.getChildAt(i);
|
||||
if (check instanceof AppCompatImageView) {
|
||||
AppCompatImageView controlsBackgroundImage = (AppCompatImageView) check;
|
||||
// everything gathered and are as expected, now perform color patching
|
||||
Utils.patchColors(this);
|
||||
int colorSurface = MaterialColors.getColor(this, com.google.android.material.R.attr.colorSurface, ContextCompat.getColor(this, R.color.md_theme_light_surface));
|
||||
int colorOnSurface = MaterialColors.getColor(this, com.google.android.material.R.attr.colorOnSurface, ContextCompat.getColor(this, R.color.md_theme_light_onSurface));
|
||||
|
||||
Drawable controlsBackgroundImageDrawable = controlsBackgroundImage.getBackground();
|
||||
controlsBackgroundImageDrawable.mutate();
|
||||
controlsBackgroundImageDrawable.setTint(darkMode ? colorOnSurface : colorSurface);
|
||||
controlsBackgroundImage.setBackgroundDrawable(controlsBackgroundImageDrawable);
|
||||
|
||||
states.setBackgroundColor(darkMode ? colorSurface : colorOnSurface);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// change toolbar font
|
||||
check = findViewById(com.yalantis.ucrop.R.id.toolbar_title);
|
||||
if (check instanceof MaterialTextView) {
|
||||
MaterialTextView toolbarTextview = (MaterialTextView) check;
|
||||
Intent intent = getIntent();
|
||||
int style = intent.getIntExtra(UCROP_TOOLBAR_TYPEFACE_STYLE, -1);
|
||||
if (style != -1) {
|
||||
toolbarTextview.setTypeface(Typeface.defaultFromStyle(style));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
122
app/src/main/java/protect/card_locker/UCropWrapper.kt
Normal file
122
app/src/main/java/protect/card_locker/UCropWrapper.kt
Normal file
@@ -0,0 +1,122 @@
|
||||
package protect.card_locker
|
||||
|
||||
import android.graphics.Color
|
||||
import android.graphics.Typeface
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.LinearLayout
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import androidx.core.view.children
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.textview.MaterialTextView
|
||||
import com.yalantis.ucrop.UCropActivity
|
||||
|
||||
class UCropWrapper : UCropActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
Utils.applyWindowInsets(findViewById(android.R.id.content))
|
||||
}
|
||||
|
||||
override fun onPostCreate(savedInstanceState: Bundle?) {
|
||||
super.onPostCreate(savedInstanceState)
|
||||
val darkMode = Utils.isDarkModeEnabled(this)
|
||||
// setup status bar to look like the rest of the app
|
||||
setupStatusBar(darkMode)
|
||||
// find and check views that we wish to color modify
|
||||
// for when we update ucrop or switch to another cropper
|
||||
checkViews(darkMode)
|
||||
// change toolbar font
|
||||
changeToolbarFont()
|
||||
}
|
||||
|
||||
private fun setupStatusBar(darkMode: Boolean) {
|
||||
if (window == null) {
|
||||
return
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
val decorView = window.decorView
|
||||
val wic = WindowInsetsControllerCompat(window, decorView)
|
||||
wic.isAppearanceLightStatusBars = !darkMode
|
||||
} else if (!darkMode) {
|
||||
window.statusBarColor = ColorUtils.compositeColors(
|
||||
Color.argb(127, 0, 0, 0),
|
||||
window.statusBarColor
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkViews(darkMode: Boolean) {
|
||||
var view = findViewById<View?>(com.yalantis.ucrop.R.id.wrapper_controls)
|
||||
if (view !is FrameLayout) {
|
||||
return
|
||||
}
|
||||
|
||||
val controls = view
|
||||
view = findViewById(com.yalantis.ucrop.R.id.wrapper_states)
|
||||
if (view !is LinearLayout) {
|
||||
return
|
||||
}
|
||||
val states = view
|
||||
controls.children.firstOrNull { it is AppCompatImageView }?.let {
|
||||
// everything gathered and are as expected, now perform color patching
|
||||
Utils.patchColors(this)
|
||||
val colorSurface = MaterialColors.getColor(
|
||||
this,
|
||||
com.google.android.material.R.attr.colorSurface,
|
||||
ContextCompat.getColor(
|
||||
this,
|
||||
R.color.md_theme_light_surface
|
||||
)
|
||||
)
|
||||
val colorOnSurface = MaterialColors.getColor(
|
||||
this,
|
||||
com.google.android.material.R.attr.colorOnSurface,
|
||||
ContextCompat.getColor(
|
||||
this,
|
||||
R.color.md_theme_light_onSurface
|
||||
)
|
||||
)
|
||||
|
||||
val controlsBackgroundImageDrawable = it.background
|
||||
controlsBackgroundImageDrawable.mutate()
|
||||
controlsBackgroundImageDrawable.setTint(
|
||||
if (darkMode) {
|
||||
colorOnSurface
|
||||
} else {
|
||||
colorSurface
|
||||
}
|
||||
)
|
||||
it.background = controlsBackgroundImageDrawable
|
||||
states.setBackgroundColor(
|
||||
if (darkMode) {
|
||||
colorSurface
|
||||
} else {
|
||||
colorOnSurface
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun changeToolbarFont() {
|
||||
val toolbar = findViewById<View?>(com.yalantis.ucrop.R.id.toolbar_title)
|
||||
if (toolbar !is MaterialTextView) {
|
||||
return
|
||||
}
|
||||
|
||||
val style = intent.getIntExtra(UCROP_TOOLBAR_TYPEFACE_STYLE, -1)
|
||||
if (style != -1) {
|
||||
toolbar.setTypeface(Typeface.defaultFromStyle(style))
|
||||
}
|
||||
}
|
||||
|
||||
internal companion object {
|
||||
const val UCROP_TOOLBAR_TYPEFACE_STYLE: String = "ucop_toolbar_typeface_style"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package protect.card_locker.async;
|
||||
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
public interface CompatCallable<T> extends Callable<T> {
|
||||
void onPostExecute(Object result);
|
||||
|
||||
void onPreExecute();
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package protect.card_locker.async
|
||||
|
||||
import java.util.concurrent.Callable
|
||||
|
||||
interface CompatCallable<T> : Callable<T?> {
|
||||
fun onPostExecute(result: Any?)
|
||||
|
||||
fun onPreExecute()
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
public enum DataFormat {
|
||||
Catima,
|
||||
Fidme,
|
||||
VoucherVault;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package protect.card_locker.importexport
|
||||
|
||||
enum class DataFormat {
|
||||
Catima,
|
||||
Fidme,
|
||||
VoucherVault
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
/**
|
||||
* Interface for a class which can export the contents of the database
|
||||
* in a given format.
|
||||
*/
|
||||
public interface Exporter {
|
||||
/**
|
||||
* Export the database to the output stream in a given format.
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
void exportData(Context context, SQLiteDatabase database, OutputStream output, char[] password) throws IOException, InterruptedException;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package protect.card_locker.importexport
|
||||
|
||||
import android.content.Context
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import java.io.IOException
|
||||
import java.io.OutputStream
|
||||
|
||||
/**
|
||||
* Interface for a class which can export the contents of the database
|
||||
* in a given format.
|
||||
*/
|
||||
interface Exporter {
|
||||
/**
|
||||
* Export the database to the output stream in a given format.
|
||||
*
|
||||
* @throws IOException, InterruptedException
|
||||
*/
|
||||
@Throws(IOException::class, InterruptedException::class)
|
||||
fun exportData(
|
||||
context: Context,
|
||||
database: SQLiteDatabase,
|
||||
output: OutputStream,
|
||||
password: CharArray
|
||||
)
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
public enum ImportExportResultType {
|
||||
Success,
|
||||
GenericFailure,
|
||||
BadPassword;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package protect.card_locker.importexport
|
||||
|
||||
enum class ImportExportResultType {
|
||||
Success,
|
||||
GenericFailure,
|
||||
BadPassword
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
|
||||
import protect.card_locker.FormatException;
|
||||
|
||||
/**
|
||||
* Interface for a class which can import the contents of a stream
|
||||
* into the database.
|
||||
*/
|
||||
public interface Importer {
|
||||
/**
|
||||
* Import data from the input stream in a given format into
|
||||
* the database.
|
||||
*
|
||||
* @throws IOException
|
||||
* @throws FormatException
|
||||
*/
|
||||
void importData(Context context, SQLiteDatabase database, File inputFile, char[] password) throws IOException, FormatException, InterruptedException, JSONException, ParseException;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package protect.card_locker.importexport
|
||||
|
||||
import android.content.Context
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import org.json.JSONException
|
||||
import protect.card_locker.FormatException
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.text.ParseException
|
||||
|
||||
/**
|
||||
* Interface for a class which can import the contents of a stream
|
||||
* into the database.
|
||||
*/
|
||||
interface Importer {
|
||||
/**
|
||||
* Import data from the input stream in a given format into
|
||||
* the database.
|
||||
*
|
||||
* @throws IOException
|
||||
* @throws FormatException
|
||||
* @throws InterruptedException
|
||||
* @throws JSONException
|
||||
* @throws ParseException
|
||||
*/
|
||||
@Throws(
|
||||
IOException::class,
|
||||
FormatException::class,
|
||||
InterruptedException::class,
|
||||
JSONException::class,
|
||||
ParseException::class
|
||||
)
|
||||
fun importData(
|
||||
context: Context,
|
||||
database: SQLiteDatabase,
|
||||
inputFile: File,
|
||||
password: CharArray
|
||||
)
|
||||
}
|
||||
@@ -74,10 +74,6 @@ public class Settings {
|
||||
return getBoolean(R.string.settings_key_display_barcode_max_brightness, true);
|
||||
}
|
||||
|
||||
public String getCardViewOrientation() {
|
||||
return getString(R.string.settings_key_card_orientation, getResString(R.string.settings_key_follow_system_orientation));
|
||||
}
|
||||
|
||||
public boolean getKeepScreenOn() {
|
||||
return getBoolean(R.string.settings_key_keep_screen_on, true);
|
||||
}
|
||||
|
||||
@@ -1,206 +0,0 @@
|
||||
package protect.card_locker.preferences;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.os.LocaleListCompat;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import com.google.android.material.color.DynamicColors;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import protect.card_locker.CatimaAppCompatActivity;
|
||||
import protect.card_locker.MainActivity;
|
||||
import protect.card_locker.R;
|
||||
import protect.card_locker.Utils;
|
||||
import protect.card_locker.databinding.SettingsActivityBinding;
|
||||
|
||||
public class SettingsActivity extends CatimaAppCompatActivity {
|
||||
|
||||
private SettingsActivityBinding binding;
|
||||
private final static String RELOAD_MAIN_STATE = "mReloadMain";
|
||||
private SettingsFragment fragment;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = SettingsActivityBinding.inflate(getLayoutInflater());
|
||||
setTitle(R.string.settings);
|
||||
setContentView(binding.getRoot());
|
||||
Utils.applyWindowInsets(binding.getRoot());
|
||||
Toolbar toolbar = binding.toolbar;
|
||||
setSupportActionBar(toolbar);
|
||||
enableToolbarBackButton();
|
||||
|
||||
// Display the fragment as the main content.
|
||||
fragment = new SettingsFragment();
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(R.id.settings_container, fragment)
|
||||
.commit();
|
||||
|
||||
// restore reload main state
|
||||
if (savedInstanceState != null) {
|
||||
fragment.mReloadMain = savedInstanceState.getBoolean(RELOAD_MAIN_STATE);
|
||||
}
|
||||
|
||||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
finishSettingsActivity();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putBoolean(RELOAD_MAIN_STATE, fragment.mReloadMain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == android.R.id.home) {
|
||||
finishSettingsActivity();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void finishSettingsActivity() {
|
||||
if (fragment.mReloadMain) {
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(MainActivity.RESTART_ACTIVITY_INTENT, true);
|
||||
setResult(Activity.RESULT_OK, intent);
|
||||
} else {
|
||||
setResult(Activity.RESULT_OK);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
public static class SettingsFragment extends PreferenceFragmentCompat {
|
||||
private static final String DIALOG_FRAGMENT_TAG = "SettingsFragment";
|
||||
|
||||
public boolean mReloadMain;
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
|
||||
// Show pretty names and summaries
|
||||
ListPreference themePreference = findPreference(getResources().getString(R.string.settings_key_theme));
|
||||
assert themePreference != null;
|
||||
themePreference.setOnPreferenceChangeListener((preference, o) -> {
|
||||
if (o.toString().equals(getResources().getString(R.string.settings_key_light_theme))) {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
} else if (o.toString().equals(getResources().getString(R.string.settings_key_dark_theme))) {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
} else {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
ListPreference themeColorPreference = findPreference(getResources().getString(R.string.setting_key_theme_color));
|
||||
assert themeColorPreference != null;
|
||||
themeColorPreference.setOnPreferenceChangeListener((preference, o) -> {
|
||||
refreshActivity(true);
|
||||
return true;
|
||||
});
|
||||
if (!DynamicColors.isDynamicColorAvailable()) {
|
||||
themeColorPreference.setEntryValues(R.array.color_values_no_dynamic);
|
||||
themeColorPreference.setEntries(R.array.color_value_strings_no_dynamic);
|
||||
}
|
||||
|
||||
Preference oledDarkPreference = findPreference(getResources().getString(R.string.settings_key_oled_dark));
|
||||
assert oledDarkPreference != null;
|
||||
oledDarkPreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
refreshActivity(true);
|
||||
return true;
|
||||
});
|
||||
|
||||
ListPreference localePreference = findPreference(getResources().getString(R.string.settings_key_locale));
|
||||
assert localePreference != null;
|
||||
CharSequence[] entryValues = localePreference.getEntryValues();
|
||||
List<CharSequence> entries = new ArrayList<>();
|
||||
for (CharSequence entry : entryValues) {
|
||||
if (entry.length() == 0) {
|
||||
entries.add(getResources().getString(R.string.settings_system_locale));
|
||||
} else {
|
||||
Locale entryLocale = Utils.stringToLocale(entry.toString());
|
||||
entries.add(entryLocale.getDisplayName(entryLocale));
|
||||
}
|
||||
}
|
||||
localePreference.setEntries(entries.toArray(new CharSequence[entryValues.length]));
|
||||
// Make locale picker preference in sync with system settings
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
Locale sysLocale = AppCompatDelegate.getApplicationLocales().get(0);
|
||||
if (sysLocale == null) {
|
||||
// Corresponds to "System"
|
||||
localePreference.setValue("");
|
||||
} else {
|
||||
// Need to set preference's value to one of localePreference.getEntryValues() to match the locale.
|
||||
// Locale.toLanguageTag() theoretically should be one of the values in localePreference.getEntryValues()...
|
||||
// But it doesn't work for some locales. so trying something more heavyweight.
|
||||
|
||||
// Obtain all locales supported by the app.
|
||||
List<Locale> appLocales = Arrays.stream(localePreference.getEntryValues())
|
||||
.map(Objects::toString)
|
||||
.map(Utils::stringToLocale)
|
||||
.collect(Collectors.toList());
|
||||
// Get the app locale that best matches the system one
|
||||
Locale bestMatchLocale = Utils.getBestMatchLocale(appLocales, sysLocale);
|
||||
// Get its index in supported locales
|
||||
int index = appLocales.indexOf(bestMatchLocale);
|
||||
// Set preference value to entry value at that index
|
||||
localePreference.setValue(localePreference.getEntryValues()[index].toString());
|
||||
}
|
||||
}
|
||||
|
||||
localePreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
// See corresponding comment in Utils.updateBaseContextLocale for Android 6- notes
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
||||
refreshActivity(true);
|
||||
return true;
|
||||
}
|
||||
String newLocale = (String) newValue;
|
||||
// If newLocale is empty, that means "System" was selected
|
||||
AppCompatDelegate.setApplicationLocales(newLocale.isEmpty() ? LocaleListCompat.getEmptyLocaleList() : LocaleListCompat.create(Utils.stringToLocale(newLocale)));
|
||||
return true;
|
||||
});
|
||||
|
||||
// Disable content provider on SDK < 23 since dangerous permissions
|
||||
// are granted at install-time
|
||||
Preference contentProviderReadPreference = findPreference(getResources().getString(R.string.settings_key_allow_content_provider_read));
|
||||
assert contentProviderReadPreference != null;
|
||||
contentProviderReadPreference.setVisible(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M);
|
||||
}
|
||||
|
||||
private void refreshActivity(boolean reloadMain) {
|
||||
mReloadMain = reloadMain || mReloadMain;
|
||||
Activity activity = getActivity();
|
||||
if (activity != null) {
|
||||
activity.recreate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
package protect.card_locker.preferences
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import protect.card_locker.BuildConfig
|
||||
import protect.card_locker.CatimaAppCompatActivity
|
||||
import protect.card_locker.MainActivity
|
||||
import protect.card_locker.R
|
||||
import protect.card_locker.Utils
|
||||
import protect.card_locker.databinding.SettingsActivityBinding
|
||||
|
||||
class SettingsActivity : CatimaAppCompatActivity() {
|
||||
|
||||
private lateinit var binding: SettingsActivityBinding
|
||||
private lateinit var fragment: SettingsFragment
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = SettingsActivityBinding.inflate(layoutInflater)
|
||||
setTitle(R.string.settings)
|
||||
setContentView(binding.root)
|
||||
Utils.applyWindowInsets(binding.root)
|
||||
val toolbar = binding.toolbar
|
||||
setSupportActionBar(toolbar)
|
||||
enableToolbarBackButton()
|
||||
|
||||
// Display the fragment as the main content.
|
||||
fragment = SettingsFragment()
|
||||
supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.settings_container, fragment)
|
||||
.commit()
|
||||
|
||||
// restore reload main state
|
||||
if (savedInstanceState != null) {
|
||||
fragment.mReloadMain = savedInstanceState.getBoolean(RELOAD_MAIN_STATE)
|
||||
}
|
||||
|
||||
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
finishSettingsActivity()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
super.onSaveInstanceState(outState)
|
||||
outState.putBoolean(RELOAD_MAIN_STATE, fragment.mReloadMain)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
val id = item.itemId
|
||||
|
||||
if (id == android.R.id.home) {
|
||||
finishSettingsActivity()
|
||||
return true
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun finishSettingsActivity() {
|
||||
if (fragment.mReloadMain) {
|
||||
val intent = Intent()
|
||||
intent.putExtra(MainActivity.RESTART_ACTIVITY_INTENT, true)
|
||||
setResult(RESULT_OK, intent)
|
||||
} else {
|
||||
setResult(RESULT_OK)
|
||||
}
|
||||
finish()
|
||||
}
|
||||
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
var mReloadMain: Boolean = false
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.xml.preferences)
|
||||
|
||||
// Show pretty names and summaries
|
||||
val themePreference = findPreference<ListPreference>(getString(R.string.settings_key_theme))
|
||||
themePreference!!.setOnPreferenceChangeListener { _, o ->
|
||||
when (o.toString()) {
|
||||
getString(R.string.settings_key_light_theme) -> {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||||
}
|
||||
getString(R.string.settings_key_dark_theme) -> {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||||
}
|
||||
else -> {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
val themeColorPreference = findPreference<ListPreference>(getString(R.string.setting_key_theme_color))
|
||||
themeColorPreference!!.setOnPreferenceChangeListener { _, _ ->
|
||||
refreshActivity(true)
|
||||
true
|
||||
}
|
||||
if (!DynamicColors.isDynamicColorAvailable()) {
|
||||
themeColorPreference.setEntryValues(R.array.color_values_no_dynamic)
|
||||
themeColorPreference.setEntries(R.array.color_value_strings_no_dynamic)
|
||||
}
|
||||
|
||||
val oledDarkPreference = findPreference<Preference>(getString(R.string.settings_key_oled_dark))
|
||||
oledDarkPreference!!.setOnPreferenceChangeListener { _, _ ->
|
||||
refreshActivity(true)
|
||||
true
|
||||
}
|
||||
|
||||
val localePreference =
|
||||
findPreference<ListPreference>(getString(R.string.settings_key_locale))!!
|
||||
localePreference.let {
|
||||
val entryValues = it.entryValues
|
||||
val entries = entryValues.map { entry ->
|
||||
if (entry.isEmpty()) {
|
||||
getString(R.string.settings_system_locale)
|
||||
} else {
|
||||
val entryLocale = Utils.stringToLocale(entry.toString())
|
||||
entryLocale.getDisplayName(entryLocale)
|
||||
}
|
||||
}
|
||||
it.entries = entries.toTypedArray()
|
||||
|
||||
// Make locale picker preference in sync with system settings
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
val sysLocale = AppCompatDelegate.getApplicationLocales()[0]
|
||||
if (sysLocale == null) {
|
||||
// Corresponds to "System"
|
||||
it.value = ""
|
||||
} else {
|
||||
// Need to set preference's value to one of localePreference.getEntryValues() to match the locale.
|
||||
// Locale.toLanguageTag() theoretically should be one of the values in localePreference.getEntryValues()...
|
||||
// But it doesn't work for some locales. so trying something more heavyweight.
|
||||
|
||||
// Obtain all locales supported by the app.
|
||||
val appLocales = entryValues.map { entry -> Utils.stringToLocale(entry.toString()) }
|
||||
// Get the app locale that best matches the system one
|
||||
val bestMatchLocale = Utils.getBestMatchLocale(appLocales, sysLocale)
|
||||
// Get its index in supported locales
|
||||
val index = appLocales.indexOf(bestMatchLocale)
|
||||
// Set preference value to entry value at that index
|
||||
it.value = entryValues[index].toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
localePreference.setOnPreferenceChangeListener { _, newValue ->
|
||||
// See corresponding comment in Utils.updateBaseContextLocale for Android 6- notes
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
||||
refreshActivity(true)
|
||||
return@setOnPreferenceChangeListener true
|
||||
}
|
||||
val newLocale = newValue as String
|
||||
// If newLocale is empty, that means "System" was selected
|
||||
AppCompatDelegate.setApplicationLocales(if (newLocale.isEmpty()) LocaleListCompat.getEmptyLocaleList() else LocaleListCompat.create(Utils.stringToLocale(newLocale)))
|
||||
true
|
||||
}
|
||||
|
||||
// Disable content provider on SDK < 23 since dangerous permissions
|
||||
// are granted at install-time
|
||||
val contentProviderReadPreference = findPreference<Preference>(getString(R.string.settings_key_allow_content_provider_read))
|
||||
contentProviderReadPreference!!.isVisible =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
|
||||
// Hide crash reporter settings on builds it's not enabled on
|
||||
val crashReporterPreference = findPreference<Preference>("acra.enable")
|
||||
crashReporterPreference!!.isVisible = BuildConfig.useAcraCrashReporter
|
||||
}
|
||||
|
||||
private fun refreshActivity(reloadMain: Boolean) {
|
||||
mReloadMain = reloadMain || mReloadMain
|
||||
activity?.recreate()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val RELOAD_MAIN_STATE = "mReloadMain"
|
||||
}
|
||||
}
|
||||
@@ -7,80 +7,92 @@ Heimen Stoffels
|
||||
Oğuz Ersen
|
||||
FC (Fay) Stegerman
|
||||
StoyanDimitrov
|
||||
Katharine Chui
|
||||
SlavekB
|
||||
大王叫我来巡山
|
||||
Katharine Chui
|
||||
B o d o
|
||||
mondstern
|
||||
IllusiveMan196
|
||||
大王叫我来巡山
|
||||
Altonss
|
||||
B o d o
|
||||
Michael Moroni
|
||||
Silvério Santos
|
||||
Eric
|
||||
Edgars Andersons
|
||||
Michael Moroni
|
||||
Joel A
|
||||
Максим Горпиніч
|
||||
GM
|
||||
Eric
|
||||
Priit Jõerüüt
|
||||
Максим Горпиніч
|
||||
Liner Seven
|
||||
GM
|
||||
Petr Novák
|
||||
laralem
|
||||
Edgars Andersons
|
||||
GitSpoon
|
||||
Fjuro
|
||||
Taco
|
||||
nadiafekihahmed
|
||||
pfaffenrodt
|
||||
Aayush Gupta
|
||||
Scrambled777
|
||||
Giovanni Donisi
|
||||
ikanakova
|
||||
HudobniVolk
|
||||
Nyatsuki
|
||||
Jiri Grönroos
|
||||
josé m
|
||||
Samantaz Fox
|
||||
Fjuro
|
||||
Balázs Meskó
|
||||
ikanakova
|
||||
Nyatsuki
|
||||
Giovanni Donisi
|
||||
Milo Ivir
|
||||
Sergio Paredes
|
||||
Cliff Heraldo
|
||||
Ankit Tiwari
|
||||
Arno-github
|
||||
HudobniVolk
|
||||
Jiri Grönroos
|
||||
Vasilis
|
||||
Warder
|
||||
GitSpoon
|
||||
Kachelkaiser
|
||||
Samantaz Fox
|
||||
Горпиніч Максим Олександрович
|
||||
Balázs Meskó
|
||||
Feike Donia
|
||||
Arno-github
|
||||
Ankit Tiwari
|
||||
Cliff Heraldo
|
||||
Sergio Paredes
|
||||
Jose Delvani
|
||||
109247019824
|
||||
mdvhimself
|
||||
Milan Šalka
|
||||
Robin
|
||||
தமிழ் நேரம்
|
||||
தமிழ்நேரம்
|
||||
huuhaa
|
||||
Vasilis
|
||||
Skrripy
|
||||
Govindgopalyadav
|
||||
damjang
|
||||
Projjal Moitra
|
||||
Quentin PAGÈS
|
||||
StellarSand
|
||||
aradxxx
|
||||
ngocanhtve
|
||||
Marnick L'Eau
|
||||
waffshappen
|
||||
e-michalak
|
||||
JungHee Lee
|
||||
hajertabbane
|
||||
Ziad OUALHADJ
|
||||
Robin Liu
|
||||
Ricky Tigg
|
||||
Renko
|
||||
Denis Shilin
|
||||
Renko
|
||||
Ricky Tigg
|
||||
Robin Liu
|
||||
Ziad OUALHADJ
|
||||
delvani
|
||||
しいたけ
|
||||
Alexander Ivanov
|
||||
Miha Frangež
|
||||
stavpup
|
||||
mrestivill
|
||||
ehrt74
|
||||
Virginie
|
||||
Tim Trek
|
||||
Peter Dave Hello
|
||||
Michael Gangolf
|
||||
rudy3
|
||||
Kim Seohyun
|
||||
Govind S Nair
|
||||
Freddo espresso
|
||||
Augustin LAVILLE
|
||||
arshbeerSingh
|
||||
MisterCosta96
|
||||
Aliaksandr Trush
|
||||
MisterCosta96
|
||||
arshbeerSingh
|
||||
Augustin LAVILLE
|
||||
Freddo espresso
|
||||
Gideon
|
||||
n3m0-blip
|
||||
Kim Seohyun
|
||||
rudy3
|
||||
Michael Gangolf
|
||||
PRATHAMESH BHAGAT
|
||||
|
||||
11
app/src/main/res/values-af/strings.xml
Normal file
11
app/src/main/res/values-af/strings.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="action_search">Soek</string>
|
||||
<string name="action_add">Voeg by</string>
|
||||
<string name="save">Stoor</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> geselekteer</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> geselekteer</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">بحث</string>
|
||||
<string name="action_add">أضف</string>
|
||||
<string name="noGiftCards">اضغط على زر الإضافة + لإضافة بطاقة، أو استورد من ⋮ القائمة.</string>
|
||||
<string name="noGiftCards">اضغط على زر الإضافة + لإضافة بطاقة، أو استورد من القائمة خلال ⋮</string>
|
||||
<string name="noMatchingGiftCards">لا نتائج. حاول تغيير كلمات البحث.</string>
|
||||
<string name="storeName">اسم</string>
|
||||
<string name="note">مذكرة</string>
|
||||
@@ -29,7 +29,7 @@
|
||||
<string name="noCardExistsError">لا يمكن العثور على هذه البطاقة</string>
|
||||
<string name="failedParsingImportUriError">لا يمكن تحليل الرابط المستورد</string>
|
||||
<string name="importExport">استيراد/تصدير</string>
|
||||
<string name="importExportHelp">دعم بياناتك يسمح بنقلها إلى جهاز آخر.</string>
|
||||
<string name="importExportHelp">انشاء نسخة احتياطية من بياناتك يسمح بنقلها إلى جهاز آخر.</string>
|
||||
<string name="importFailed">تعذر إجراء الاستيراد</string>
|
||||
<string name="exportSuccessfulTitle">متصدر</string>
|
||||
<string name="exportFailedTitle">فشل التصدير</string>
|
||||
@@ -40,16 +40,13 @@
|
||||
<string name="app_copyright_old">بناء على Loyalty Card Keychain
|
||||
\nحقوق النشر © 2016-2020 Branden Archer</string>
|
||||
<string name="app_license">البرمجيات الحرة متروكة الحقوق, ترخيص +GPLv3</string>
|
||||
<string name="app_libraries">مكتبات الطرف الثالث الحرة: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">مكتبات الطرف الثالث : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">اختار الباركود</string>
|
||||
<string name="thumbnailDescription">صورة مصغرة</string>
|
||||
<string name="starImage">نجم مفضل</string>
|
||||
<string name="settings">الإعدادات</string>
|
||||
<string name="settings_light_theme">فاتحة</string>
|
||||
<string name="settings_dark_theme">داكنة</string>
|
||||
<string name="settings_card_orientation">اتجاه الشاشة</string>
|
||||
<string name="settings_portrait_orientation">الوضع الرأسي</string>
|
||||
<string name="settings_landscape_orientation">الوضع الأفقي</string>
|
||||
<string name="settings_theme">مظهر</string>
|
||||
<string name="settings_display_barcode_max_brightness">شاشة ساطعة</string>
|
||||
<string name="importSuccessful">تم استيراد البيانات</string>
|
||||
@@ -63,7 +60,7 @@
|
||||
<string name="group_updated">تم تحديث المجموعة</string>
|
||||
<string name="all">الكل</string>
|
||||
<string name="deleteConfirmationGroup">هل تريد حذف المجموعة؟</string>
|
||||
<string name="failedOpeningFileManager">ثبِّت مدير الملفات أولاً.</string>
|
||||
<string name="failedOpeningFileManager">فشل فتح مدير الملفات</string>
|
||||
<string name="moveUp">تحرك لأعلى</string>
|
||||
<string name="addFromImage">حدد صورة من المعرض</string>
|
||||
<string name="balance">الرصيد</string>
|
||||
@@ -181,16 +178,14 @@
|
||||
<string name="about_title_fmt">حول <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">نسخة: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="settings_system_theme">النظام</string>
|
||||
<string name="settings_lock_on_opening_orientation">قفل على الاتجاه عند فتح البطاقة</string>
|
||||
<string name="app_resources">موارد الطرف الثالث الحرة: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_follow_system_orientation">نظام المتابعة</string>
|
||||
<string name="groups">مجموعات</string>
|
||||
<string name="settings_keep_screen_on">حافظ على الشاشة قيد التشغيل</string>
|
||||
<string name="intent_import_card_from_url_share_text">اريد مشاركة بطاقة معك</string>
|
||||
<string name="groupsList">مجموعات: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">منع قفل الشاشة</string>
|
||||
<string name="leaveWithoutSaveTitle">خروج</string>
|
||||
<string name="editGroup">تعديل المجموعه: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">تعديل المجموعة: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="zero"><xliff:g>%d</xliff:g> بطاقة</item>
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> بطاقة</item>
|
||||
@@ -227,7 +222,7 @@
|
||||
<string name="sort_by_expiry">انقضاء</string>
|
||||
<string name="importLoyaltyCardKeychain">الاستيراد من Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">حدّد ملفك <i>LoyaltyCardKeychain.csv</i> التصدير من Loyalty Card Keychain للاستيراد. \nإنشئها من قائمة الاستيراد / التصدير في Loyalty Card Keychain بالضغط على تصدير هناك أولاً.</string>
|
||||
<string name="failedGeneratingShareURL">تعذر إنشاء عنوان URL قابل للمشاركة. الرجاء الإبلاغ عن هذا.</string>
|
||||
<string name="failedGeneratingShareURL">تعذر إنشاء عنوان URL قابل للمشاركة</string>
|
||||
<string name="help_translate_this_app">ساعد في ترجمة هذا التطبيق</string>
|
||||
<string name="on_google_play">على Google Play</string>
|
||||
<string name="settings_theme_color">لون المظهر</string>
|
||||
@@ -289,7 +284,6 @@
|
||||
<string name="addWithoutBarcode">إضافة بدون باركود</string>
|
||||
<string name="field_must_not_be_empty">يجب ألا يكون الحقل فارغا</string>
|
||||
<string name="app_name">كاتيما</string>
|
||||
<string name="settings_follow_sensor_orientation">التدوير دائمًا ( تجاهل إعدادات النظام)</string>
|
||||
<string name="add_manually_warning_title">الفحص موصى به</string>
|
||||
<string name="continue_">استمر</string>
|
||||
<string name="spend">انفق</string>
|
||||
@@ -308,7 +302,7 @@
|
||||
<string name="useBackImage">استخدم صورة خلفية</string>
|
||||
<string name="addFromPkpass">اختر ملف الدفتر (.pkpass)</string>
|
||||
<string name="unsupportedFile">هذا الملف غير مدعوم</string>
|
||||
<string name="generic_error_please_retry">نعتذر، حدث خطأ ما، حاول مرة أخرى...</string>
|
||||
<string name="generic_error_please_retry">حدث خطأ ما</string>
|
||||
<string name="settings_use_volume_keys_navigation">بدّل البطاقات باستخدام أزرار الصوت</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">بدّل البطاقات الظاهرة باستخدام أزرار الصوت</string>
|
||||
<string name="settings_category_title_cards_overview">نظرة عامة على البطاقات</string>
|
||||
@@ -325,4 +319,7 @@
|
||||
<string name="sort_by_valid_from">صالح من</string>
|
||||
<string name="width">العرض</string>
|
||||
<string name="setBarcodeWidth">تعيين عرض الرمز الشريطي \"باركود\"</string>
|
||||
<string name="card_list_widget_name">قائمة البطاقات</string>
|
||||
<string name="cardWithNumber">البطاقة <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">البطاقة <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
</resources>
|
||||
|
||||
@@ -84,11 +84,6 @@
|
||||
<string name="settings_system_theme">Сістэмная</string>
|
||||
<string name="settings_light_theme">Светлая</string>
|
||||
<string name="settings_dark_theme">Цёмная</string>
|
||||
<string name="settings_card_orientation">Арыентацыя экрана</string>
|
||||
<string name="settings_follow_sensor_orientation">Заўсёды паварочваць (ігнаруе налады сістэмы)</string>
|
||||
<string name="settings_portrait_orientation">Партрэтная</string>
|
||||
<string name="settings_landscape_orientation">Альбомная</string>
|
||||
<string name="settings_lock_on_opening_orientation">Зафіксаваць арыентацыю, якая выкарыстоўваецца пры адкрыцці карты</string>
|
||||
<string name="settings_keep_screen_on_summary">Адключае тайм-аўт экрана падчас прагляду карты</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Прадухіляць блакіроўку экрана</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Адключае блакіроўку экрана падчас прагляду карты</string>
|
||||
@@ -267,7 +262,6 @@
|
||||
<string name="addFromImage">Выбраць малюнак з галерэі</string>
|
||||
<string name="settings_keep_screen_on">Трымаць экран уключаным</string>
|
||||
<string name="app_resources">Бясплатныя староннія рэсурсы: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_follow_system_orientation">Як у сістэме</string>
|
||||
<string name="leaveWithoutSaveTitle">Выйсці</string>
|
||||
<string name="settings_allow_content_provider_read_title">Дазволіць іншым праграмам доступ да маіх даных</string>
|
||||
<string name="settings_display_barcode_max_brightness">Павялічваць яркасць экрану</string>
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
<string name="note">Бележка</string>
|
||||
<string name="storeName">Наименование</string>
|
||||
<string name="noMatchingGiftCards">Няма резултати. Променете критериите за търсене.</string>
|
||||
<string name="noGiftCards">Докоснете бутона +, за да добавите карта или внесете от менюто ⋮.</string>
|
||||
<string name="noGiftCards">Докоснете бутона +, за да добавите карта или внесете от менюто ⋮</string>
|
||||
<string name="all">Всички</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> карта</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> карти</item>
|
||||
</plurals>
|
||||
<string name="failedOpeningFileManager">Инсталирайте приложение за управление на файлове.</string>
|
||||
<string name="failedOpeningFileManager">Грешка при отваряне управление на файлове</string>
|
||||
<string name="app_license">Свободен софтуер с авторски права, лицензиран под GPLv3+</string>
|
||||
<string name="frontImageDescription">Снимка на предната страна</string>
|
||||
<string name="backImageDescription">Снимка на задната страна</string>
|
||||
@@ -45,10 +45,9 @@
|
||||
<string name="sameAsCardId">Като номера</string>
|
||||
<string name="barcodeId">Стойност на щрихкода</string>
|
||||
<string name="importLoyaltyCardKeychain">Внасяне от Loyalty Card Keychain</string>
|
||||
<string name="importFidmeMessage">Изберете файла <i>fidme-export-request-xxxxxx.zip</i>, предварително изнесен от FidMe и ръчно изберете вида на щрихкодовете.
|
||||
\nСъздайте такъв файл от Data Protection в менюто на профила във FidMe и изберете „Extract my data“.</string>
|
||||
<string name="importFidmeMessage">Изберете предварително изнесен файл от FidMe, който да внесете и ръчно изберете вида на щрихкодовете.\nСъздайте такъв файл от Data Protection в менюто на профила във FidMe и изберете „Extract my data“.</string>
|
||||
<string name="importFidme">Внасяне от FidMe</string>
|
||||
<string name="exportOptionExplanation">Данните ще бъдат запазени на място по ваш избор.</string>
|
||||
<string name="exportOptionExplanation">Данните ще бъдат запазени на място по ваш избор</string>
|
||||
<string name="accept">Приемане</string>
|
||||
<string name="privacy_policy">Политика за личните данни</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
@@ -70,7 +69,7 @@
|
||||
<string name="expiryStateSentence">Валидност до: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Изтекла: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Наличност: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noGroups">Докоснете бутона +, за да добавите списък.</string>
|
||||
<string name="noGroups">Докоснете бутона +, за да добавите списък</string>
|
||||
<string name="groups">Списъци</string>
|
||||
<string name="enter_group_name">Въведете име на списъка</string>
|
||||
<string name="intent_import_card_from_url_share_text">Искам да споделя тази карта с вас</string>
|
||||
@@ -93,22 +92,21 @@
|
||||
<string name="importFailedTitle">Грешка при внасяне</string>
|
||||
<string name="exportSuccessfulTitle">Резултат от изнасяне</string>
|
||||
<string name="importSuccessfulTitle">Резултат от внасяне</string>
|
||||
<string name="importExportHelp">Резервните копия на данните ви дават възможност да ги премествате на друго устройство.</string>
|
||||
<string name="importExportHelp">Резервните копия на данните дават възможност да ги премествате на друго устройство</string>
|
||||
<string name="exportName">Изнасяне</string>
|
||||
<string name="importExport">Внасяне/изнасяне</string>
|
||||
<string name="sendLabel">Изпращане…</string>
|
||||
<string name="scanCardBarcode">Снемане на щрихкод</string>
|
||||
<string name="editCardTitle">Редактиране на карта</string>
|
||||
<string name="editCardTitle">Променяне на карта</string>
|
||||
<string name="share">Споделя</string>
|
||||
<string name="ok">Добре</string>
|
||||
<string name="importSuccessful">Данните са внесени</string>
|
||||
<string name="chooseImportType">Внасяне на данни на</string>
|
||||
<string name="importCatimaMessage">Изберете файла <i>catima.zip</i>, предварително изнесен от Catima.
|
||||
\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Catima като изберете Изнасяне.</string>
|
||||
<string name="importCatimaMessage">Изберете предварително изнесен файл от Catima, който да внесете.\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Catima като изберете Изнасяне.</string>
|
||||
<string name="importOptionFilesystemButton">Избиране от файлова система</string>
|
||||
<string name="importOptionFilesystemExplanation">Изберете определен файл от файловата система.</string>
|
||||
<string name="app_resources">Свободни ресурси: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Свободни библиотеки: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="importOptionFilesystemExplanation">Изберете определен файл от файловата система</string>
|
||||
<string name="app_resources">Ресурси: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Библиотеки: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Издание: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt">Относно <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Всички права запазени © 2019–<xliff:g>%d</xliff:g> Силвия ван Ос и сътрудници</string>
|
||||
@@ -130,12 +128,10 @@
|
||||
<string name="leaveWithoutSaveConfirmation">Оставяте промените незапазени\?</string>
|
||||
<string name="unsupportedBarcodeType">Щрихкод от този вид не може да бъде показан. Може да бъде поддържан в следващо издание.</string>
|
||||
<string name="importVoucherVault">Внасяне от Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Изберете файла <i>vouchervault.json</i>, предварително изнесен от Voucher Vault.
|
||||
\nСъздайте такъв файл от меню „Export“ във Voucher Vault.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Изберете файла <i>LoyaltyCardKeychain.csv</i>, предварително изнесен от Loyalty Card Keychain.
|
||||
\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Loyalty Card Keychain като изберете Изнасяне.</string>
|
||||
<string name="failedParsingImportUriError">Препратката не може да бъде анализирана за внасяне</string>
|
||||
<string name="failedGeneratingShareURL">Не може да бъде генериран адрес за споделяне. Изпратете доклад за дефект.</string>
|
||||
<string name="importVoucherVaultMessage">Изберете предварително изнесен файл от Voucher Vault, който да внесете.\nСъздайте такъв файл от меню „Export“ във Voucher Vault.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Изберете предварително изнесен файл от Loyalty Card Keychain, който да внесете.\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Loyalty Card Keychain като изберете Изнасяне.</string>
|
||||
<string name="failedParsingImportUriError">Адресът за внасяне не може да бъде анализиран</string>
|
||||
<string name="failedGeneratingShareURL">Грешка при създаване на адрес, който да споделите</string>
|
||||
<string name="deleteTitle">Премахване на карта</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Изтриване на <xliff:g>%d</xliff:g> карта</item>
|
||||
@@ -185,7 +181,7 @@
|
||||
<string name="selectColor">Избиране на цвят</string>
|
||||
<string name="group_name_is_empty">Името на списъка не трябва да е празно</string>
|
||||
<string name="group_edit">Редактиране на списък</string>
|
||||
<string name="noGiftCardsGroup">Създайте карти и ги зачислите към списък от тук.</string>
|
||||
<string name="noGiftCardsGroup">Създайте карти и ги зачислете към списък от тук</string>
|
||||
<string name="translate_platform">в Weblate</string>
|
||||
<string name="shortcutSelectCard">Избор на карта</string>
|
||||
<string name="starred">Със звезда</string>
|
||||
@@ -197,17 +193,12 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Черен фон за тъмната тема</string>
|
||||
<string name="include_if_asking_support">Ако искате да потърсите поддръжка, включете следната информация:</string>
|
||||
<string name="settings_card_orientation">Завъртане на екрана</string>
|
||||
<string name="settings_follow_system_orientation">Според системата</string>
|
||||
<string name="settings_portrait_orientation">Портрет</string>
|
||||
<string name="settings_landscape_orientation">Пейзаж</string>
|
||||
<string name="settings_lock_on_opening_orientation">Като при отваряне на картата</string>
|
||||
<string name="duplicateCard">Дублиране</string>
|
||||
<string name="archive">Архивиране</string>
|
||||
<string name="unarchive">Изваждане от архива</string>
|
||||
<string name="archived">Картата е архивирана</string>
|
||||
<string name="unarchived">Карта е извадена от архива</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не е намерено поддържано приложение за галерия</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не е намерено поддържано приложение за избор на изображение</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> карта (<xliff:g id="archivedCount">%2$d</xliff:g> архивирана)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> карти (<xliff:g id="archivedCount">%2$d</xliff:g> архивирани)</item>
|
||||
@@ -236,8 +227,8 @@
|
||||
<string name="switchToFrontImage">Показване на предната страна</string>
|
||||
<string name="switchToBackImage">Показване на задната страна</string>
|
||||
<string name="switchToBarcode">Показване на щрихкода</string>
|
||||
<string name="openFrontImageInGalleryApp">Отваряне на изображението на предната страна в приложението галерия</string>
|
||||
<string name="openBackImageInGalleryApp">Отваряне на изображението на задната страна в приложението галерия</string>
|
||||
<string name="openFrontImageInGalleryApp">Отваряне на изображението на предната страна в приложение за преглед за изображения</string>
|
||||
<string name="openBackImageInGalleryApp">Отваряне на изображението на задната страна в приложение за преглед за изображения</string>
|
||||
<string name="setBarcodeHeight">Задаване на височина на щрихкода</string>
|
||||
<string name="donate">Даряване</string>
|
||||
<string name="icon_header_click_text">Задръжте, за да промените миниатюрата</string>
|
||||
@@ -269,10 +260,9 @@
|
||||
<string name="addWithoutBarcode">Добавяне на карта без щрихкод</string>
|
||||
<string name="field_must_not_be_empty">Полето не трябва да е празно</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Винаги да се завърта (пренебрегва системната настройка)</string>
|
||||
<string name="continue_">Продължаване</string>
|
||||
<string name="add_manually_warning_title">Препоръчително е да сканирате</string>
|
||||
<string name="add_manually_warning_message">Стойностите от щрихкода и отбелязаните на картата числа в някои случаи се различават. По тази причина е при ръчно въвеждане картата може да не работи. Силно препоръчително е да сканирате щрихкода с камерата. Желаете ли да продължите въпреки това?</string>
|
||||
<string name="add_manually_warning_message">Стойностите от щрихкода и отбелязаните на картата числа в някои случаи се различават. По тази причина при ръчно въвеждане картата може да не работи. Препоръчително е да сканирате щрихкода с камерата. Желаете ли да продължите въпреки това?</string>
|
||||
<string name="amountParsingFailed">Неприемлива сума</string>
|
||||
<string name="spend">Похарчено</string>
|
||||
<string name="receive">Получено</string>
|
||||
@@ -299,14 +289,20 @@
|
||||
<string name="settings_column_count_landscape">Колони в пейзажен изглед</string>
|
||||
<string name="settings_column_count_portrait">Колони в портретен изглед</string>
|
||||
<string name="settings_category_title_cards_overview">Списък с карти</string>
|
||||
<string name="generic_error_please_retry">Съжаляваме, нещо се обърка, опитайте отново…</string>
|
||||
<string name="generic_error_please_retry">Възникна грешка</string>
|
||||
<string name="addFromPkpass">Изберете файл на Passbook (.pkpass / pkpasses)</string>
|
||||
<string name="unsupportedFile">Този вид файлове не се поддържат</string>
|
||||
<string name="sort_by_valid_from">Начало валидност</string>
|
||||
<string name="width">Ширина</string>
|
||||
<string name="setBarcodeWidth">Задаване ширина на щрих кода</string>
|
||||
<string name="setBarcodeWidth">Задаване ширина на щрихкода</string>
|
||||
<string name="card_list_widget_name">Списък с карти</string>
|
||||
<string name="card_list_widget_empty">Когато добавите карти в Catima те ще се покажат тук. Ако имате карти уверете се, че са извън архива.</string>
|
||||
<string name="cardWithNumber">Карта <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Карта <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Карта <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Не завъртайте устройството, защото това ще прекъсне действието</string>
|
||||
<string name="acra_catima_has_crashed">За съжаление <xliff:g id="app_name">%s</xliff:g> се срина. Помогнете ни да оправим проблема като ни изпратите доклад за грешката.</string>
|
||||
<string name="acra_crash_email_subject">Доклад за срив на <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Питане преди изпращане на доклад за срив</string>
|
||||
<string name="pref_enable_acra_summary">Когато е отметнато, при срив ще ви бъде предложено да докладвате за него. Докладите никога не се изпращат автоматично.</string>
|
||||
<string name="acra_explain_crash">Ако е възможно добавете подробности за вашите действия:</string>
|
||||
</resources>
|
||||
|
||||
@@ -110,9 +110,6 @@
|
||||
<string name="about_title_fmt"><xliff:g id="app_name">%s</xliff:g>টির সম্পর্কে</string>
|
||||
<string name="app_resources">মুক্ত সম্পদ যেগুলি আমার নয়: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="thumbnailDescription">থাম্বনেইল</string>
|
||||
<string name="settings_card_orientation">বারকোড অভিমুখ</string>
|
||||
<string name="settings_follow_system_orientation">সিস্টেমের অনুসারে</string>
|
||||
<string name="settings_portrait_orientation">প্রতিকৃতি</string>
|
||||
<string name="barcodeImageDescriptionWithType">ছবি <xliff:g>%s</xliff:g> বারকোড</string>
|
||||
<string name="exportName">রপ্তানি</string>
|
||||
<string name="failedParsingImportUriError">আমদানির URI-টি বোঝা যাচ্ছে না</string>
|
||||
@@ -138,8 +135,6 @@
|
||||
<string name="selectBarcodeTitle">বারকোড নির্বাচন করুন</string>
|
||||
<string name="settings">সেটিংস</string>
|
||||
<string name="settings_dark_theme">অন্ধকার</string>
|
||||
<string name="settings_landscape_orientation">অনুভূমিক</string>
|
||||
<string name="settings_lock_on_opening_orientation">কার্ড খোলার সময় যে অভিমুখ থাকে সেটিতে লক করে দেবেন</string>
|
||||
<string name="group_name_already_in_use">গ্রুপটির নাম আগে একবার ব্যবহার করে ফেলেছেন</string>
|
||||
<string name="group_edit">গ্রুপ সম্পাদনা করুন</string>
|
||||
<string name="group_updated">গ্রুপটি আপডেট করা হল</string>
|
||||
|
||||
@@ -73,6 +73,5 @@
|
||||
<string name="permissionReadCardsLabel">কাটিমা কার্ডস পড়ুন</string>
|
||||
<string name="storageReadPermissionRequired">এই কাজটির জন্য ফোনের স্টোরেজ দেখার অনুমতি লাগবে…</string>
|
||||
<string name="exportFailedTitle">রপ্তানি ব্যর্থ</string>
|
||||
<string name="settings_card_orientation">বারকোড অভিমুখ (ওরিয়েন্টেশন)</string>
|
||||
<string name="app_name">ক্যাটিমা</string>
|
||||
</resources>
|
||||
@@ -7,12 +7,12 @@
|
||||
<string name="delete">Elimina</string>
|
||||
<string name="confirm">Confirma</string>
|
||||
<string name="ok">D\'acord</string>
|
||||
<string name="importExport">Importa/Exporta</string>
|
||||
<string name="importExport">Importa/exporta</string>
|
||||
<string name="exportName">Exporta</string>
|
||||
<string name="action_search">Cerca</string>
|
||||
<string name="deleteTitle">Elimina la targeta</string>
|
||||
<string name="welcome">Benvingut a Catima</string>
|
||||
<string name="noGiftCards">Cliqueu el botó + més per afegir una targeta, o importeu-ne des del ⋮ menú.</string>
|
||||
<string name="noGiftCards">Fes clic al botó + per afegir una targeta, o importa des del menú ⋮</string>
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="moveDown">Baixar abaix</string>
|
||||
@@ -24,10 +24,10 @@
|
||||
<string name="on_google_play">al Google Play</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="field_must_not_be_empty">El camp no pot estar buit</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os i contribuïdors</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os i contribuïdors</string>
|
||||
<string name="app_license">Software lliure Copyleft, licència GPLv3+</string>
|
||||
<string name="app_resources">Recursos lliures de tercers: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os i col·laboradors</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os i col·laboradors</string>
|
||||
<string name="app_license">Programari lliure Copyleft, licència GPLv3+</string>
|
||||
<string name="app_resources">Recursos de tercers: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Estrella de preferides</string>
|
||||
<string name="settings">Configuració</string>
|
||||
@@ -35,7 +35,6 @@
|
||||
<string name="settings_light_theme">Tema clar</string>
|
||||
<string name="settings_system_theme">Tema de sistema</string>
|
||||
<string name="settings_dark_theme">Tema Fosc</string>
|
||||
<string name="settings_card_orientation">Orientació de la pantalla</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permet altres apps a accedir a les meves dades</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desactiva el bloqueix la pantalla mentre es visualitza la targeta</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Les aplicacions han de seguir demanant permís per tenir-hi accés</string>
|
||||
@@ -56,13 +55,13 @@
|
||||
<string name="add_manually_warning_title">Recomenem escanejar</string>
|
||||
<string name="add_manually_warning_message">En algunes targetes el valor imprès en la targeta no correspon amb el codi registrat en el codi de barres. Per això, introduint manualment el codi pot no funcionar en alguns casos. Recomanem sempre que sigui possible escanejar la targeta amb la càmera. Vol igualment continuar la edició manual?</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="exportOptionExplanation">La informació serà escrita al lloc de la seva elecció.</string>
|
||||
<string name="exportOptionExplanation">La informació serà escrita al lloc de la seva elecció</string>
|
||||
<string name="importOptionFilesystemTitle">Importar desde el sistema de fitxers</string>
|
||||
<string name="importOptionFilesystemButton">Desde el sistema de fitxers</string>
|
||||
<string name="selectBarcodeTitle">Sel•lecciona el Codi de Barres</string>
|
||||
<string name="selectBarcodeTitle">Selecciona el codi de barres</string>
|
||||
<string name="importSuccessful">Dades importades correctament</string>
|
||||
<string name="exportSuccessful">Dades exportades correctament</string>
|
||||
<string name="failedOpeningFileManager">Instala un gestor de fitxers.</string>
|
||||
<string name="failedOpeningFileManager">No s\'ha pogut obrir el gestor de fitxers</string>
|
||||
<string name="showMoreInfo">Mostrar informació</string>
|
||||
<string name="version_history">Històric de versions</string>
|
||||
<string name="sort_by">Ordenar per</string>
|
||||
@@ -73,7 +72,7 @@
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> seleccionats</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> seleccionats</item>
|
||||
</plurals>
|
||||
<string name="importOptionFilesystemExplanation">Escull un fitxer especific del sistema de fitxers.</string>
|
||||
<string name="importOptionFilesystemExplanation">Escull un fitxer especific del sistema de fitxers</string>
|
||||
<string name="no">No</string>
|
||||
<string name="settings_pink_theme">Rosa</string>
|
||||
<string name="sort">Ordenar</string>
|
||||
@@ -97,22 +96,19 @@
|
||||
</plurals>
|
||||
<string name="importCancelled">Importació anulada</string>
|
||||
<string name="exportCancelled">Exportació cancelada</string>
|
||||
<string name="noGiftCardsGroup">Crea algunes targetes, asigna-les en un grup aquí.</string>
|
||||
<string name="noMatchingGiftCards">Sense resultats. Prova a canviar la teva cerca.</string>
|
||||
<string name="noGiftCardsGroup">Crea algunes targetes i després asigna-les en al grup aquí</string>
|
||||
<string name="noMatchingGiftCards">No hi ha resultats; prova de modificar la cerca.</string>
|
||||
<string name="storeName">Nom</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="cardId">Id. de la Targeta</string>
|
||||
<string name="barcodeType">Tipus de codi de barres</string>
|
||||
<string name="noBarcode">Sense codi de barres</string>
|
||||
<string name="settings_portrait_orientation">Vertical</string>
|
||||
<string name="yes">Si</string>
|
||||
<string name="addFromPdfFile">Seleccioni un PDF</string>
|
||||
<string name="errorReadingFile">No s\'ha pogut llegir el fitxer</string>
|
||||
<string name="failedLaunchingFileManager">No s\'ha pogut trobar un gestor de fitxers compatible</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Quin dels següents codis de barres prefereix utilitzar?</string>
|
||||
<string name="pageWithNumber">Pàgina <xliff:g>%d</xliff:g></string>
|
||||
<string name="settings_follow_system_orientation">Seguir el sistema</string>
|
||||
<string name="settings_landscape_orientation">Horitzontal</string>
|
||||
<string name="intent_import_card_from_url_share_text">Vull compartir una targeta amb tu</string>
|
||||
<string name="takePhoto">Fer una foto</string>
|
||||
<string name="help_translate_this_app">Ajuda a traduïr aquesta app</string>
|
||||
@@ -134,7 +130,6 @@
|
||||
<string name="barcodeImageDescriptionWithType">Codi de barres <xliff:g>%s</xliff:g></string>
|
||||
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versió: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="settings_follow_sensor_orientation">Sempre rota (ignora la configuració de sistema)</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Alguns escàners ho necesiten</string>
|
||||
<string name="settings_keep_screen_on">Mantenir la pantalla encesa</string>
|
||||
<string name="settings_keep_screen_on_summary">Desactiva el bloqueix de la pantalla mentre mostra una targeta</string>
|
||||
@@ -171,22 +166,21 @@
|
||||
<string name="deleteConfirmation">Vols eliminar de forma permanent aquesta targeta?</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="sendLabel">Enviar…</string>
|
||||
<string name="editCardTitle">Editar Targeta</string>
|
||||
<string name="addCardTitle">Afegir Targeta</string>
|
||||
<string name="scanCardBarcode">Escanejar Codi de Barres</string>
|
||||
<string name="cardShortcut">Drecera a la Targeta</string>
|
||||
<string name="editCardTitle">Editar targeta</string>
|
||||
<string name="addCardTitle">Afegir targeta</string>
|
||||
<string name="scanCardBarcode">Escanejar codi de barres</string>
|
||||
<string name="cardShortcut">Drecera a la targeta</string>
|
||||
<string name="noCardsMessage">Afegeix primer una targeta</string>
|
||||
<string name="noCardExistsError">No s\'ha pogut trobar aquesta targeta</string>
|
||||
<string name="failedParsingImportUriError">No s\'ha pogut analitzar la URI d\'importació</string>
|
||||
<string name="failedParsingImportUriError">No s\'ha pogut analitzar l\'URI d\'importació</string>
|
||||
<string name="openFrontImageInGalleryApp">Obrir la imatge frontal a l\'app de galeria</string>
|
||||
<string name="settings_lock_on_opening_orientation">En obrir la targeta, bloquejar la orientació de la pantalla</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilitza els botons de volum per canviar la targeta que es mostra</string>
|
||||
<string name="updateBarcodeQuestionText">Ha canviat el valor ID. Vol actualitzar també el codi de barres per uter utilitzar el mateix valor?</string>
|
||||
<string name="settings_sky_blue_theme">Blau fluix</string>
|
||||
<string name="starred">Preferides</string>
|
||||
<string name="deleteConfirmationGroup">Vols eliminar aquest grup?</string>
|
||||
<string name="removeImage">Eliminar imatge</string>
|
||||
<string name="app_libraries">Llibreries lliures de tercers: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Llibreries de tercers: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="settings_display_barcode_max_brightness">Màxima iluminació</string>
|
||||
<string name="settings_brown_theme">Marró</string>
|
||||
<string name="manually_enter_barcode_instructions">Introdueixi el ID de la targeta manualment i trii un codi de barres que s\'assembli al de la seva targeta.</string>
|
||||
@@ -233,7 +227,7 @@
|
||||
<string name="addFromPkpass">Seleccioni el fitxer Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Aquest fitxer no està soportat</string>
|
||||
<string name="settings_use_volume_keys_navigation">Canviar les targetes al prèmer els botons de volum</string>
|
||||
<string name="noGroups">Clica el botó + per afegir grups per categoritzar.</string>
|
||||
<string name="noGroups">Feu clic al botó + més per aferir grups pre categoritzar</string>
|
||||
<string name="noGroupCards">Aquest grup està buit</string>
|
||||
<string name="group_name_already_in_use">Ja existeix un grup amb aquest nom</string>
|
||||
<string name="group_updated">Grup actualitzat</string>
|
||||
@@ -244,4 +238,43 @@
|
||||
<string name="settings_system_locale">Idioma del sistema</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="importExportHelp">Fer una còpia de seguretat de les dades permet moure-les a un altre dispositiu</string>
|
||||
<string name="importSuccessfulTitle">Importat</string>
|
||||
<string name="importFailedTitle">La importació ha fallat</string>
|
||||
<string name="importFailed">No s\'ha pogut realitzar la importació</string>
|
||||
<string name="exportSuccessfulTitle">Exportat</string>
|
||||
<string name="exportFailedTitle">L\'exportació ha fallat</string>
|
||||
<string name="exportFailed">No s\'ha pogut realitzar l\'exportació</string>
|
||||
<string name="importing">Important…</string>
|
||||
<string name="exporting">Exportant…</string>
|
||||
<string name="storageReadPermissionRequired">Cal permís per llegir l\'emmagatzematge per a aquesta acció…</string>
|
||||
<string name="cameraPermissionRequired">Cal permís per accedir a la càmera per a aquesta acció…</string>
|
||||
<string name="permissionReadCardsLabel">Legeix targetes Catima</string>
|
||||
<string name="permissionReadCardsDescription">llegeix les teves targetes Catima i tots els seus detalls, incloses notes i imatges</string>
|
||||
<string name="cameraPermissionDeniedTitle">No s\'ha pogut accedir a la càmera</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Per escanejar codis de barres, Catima necessitarà accés a la teva càmera. Toca aquí per canviar la configuració dels permisos.</string>
|
||||
<string name="about">Sobre</string>
|
||||
<string name="app_copyright_old">Clauer basat en na Loyalty Card Keychain\ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="addManually">Introduïu el codi de barres manualment</string>
|
||||
<string name="addFromImage">Seleccioneu una imatge de la galeria</string>
|
||||
<string name="groupsList">Grups: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editeu el grup: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Caduca el: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Caducat el: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punt</item>
|
||||
<item quantity="many"><xliff:g>%s</xliff:g> punts</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="card">Targeta</string>
|
||||
<string name="editBarcode">Editeu el codi de barres</string>
|
||||
<string name="expiryDate">Data de caducitat</string>
|
||||
<string name="never">Mai</string>
|
||||
<string name="chooseExpiryDate">Trieu la data de caducitat</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Moveu el codi de barres a la part superior de la pantalla</string>
|
||||
<string name="noBarcodeFound">No s\'ha trobat cap codi de barres</string>
|
||||
<string name="errorReadingImage">No s\'ha pogut llegir la imatge</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Přidat</string>
|
||||
<string name="noGiftCards">Klepněte na tlačítko plus (+) pro přidání karty nebo naimportujete karty z nabídky (⋮).</string>
|
||||
<string name="noGiftCards">Klepněte na tlačítko plus (+) pro přidání karty nebo naimportujete karty z nabídky (⋮)</string>
|
||||
<string name="storeName">Název</string>
|
||||
<string name="note">Poznámka</string>
|
||||
<string name="cardId">ID karty</string>
|
||||
@@ -12,12 +12,12 @@
|
||||
<string name="confirm">Potvrdit</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="sendLabel">Odeslat…</string>
|
||||
<string name="editCardTitle">Editovat kartu</string>
|
||||
<string name="editCardTitle">Upravit kartu</string>
|
||||
<string name="addCardTitle">Přidat kartu</string>
|
||||
<string name="scanCardBarcode">Naskenovat čárový kód</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
<string name="importExport">Import/export</string>
|
||||
<string name="exportName">Export</string>
|
||||
<string name="importExportHelp">Zálohování dat vám umožní přesunout je do jiného zařízení.</string>
|
||||
<string name="importExportHelp">Zálohování dat vám umožní přesunout je do jiného zařízení</string>
|
||||
<string name="importSuccessfulTitle">Importováno</string>
|
||||
<string name="importFailedTitle">Import selhal</string>
|
||||
<string name="importFailed">Import nelze provést</string>
|
||||
@@ -27,7 +27,7 @@
|
||||
<string name="importing">Importuji…</string>
|
||||
<string name="exporting">Exportuji…</string>
|
||||
<string name="importOptionFilesystemTitle">Import z úložiště</string>
|
||||
<string name="importOptionFilesystemExplanation">Vyberte konkrétní soubor v úložišti.</string>
|
||||
<string name="importOptionFilesystemExplanation">Vyberte konkrétní soubor v úložišti</string>
|
||||
<string name="importOptionFilesystemButton">Z úložiště</string>
|
||||
<string name="about">O aplikaci</string>
|
||||
<string name="app_license">Copyleftovaný svobodný software s licencí GPLv3+</string>
|
||||
@@ -41,13 +41,13 @@
|
||||
<string name="never">Nikdy</string>
|
||||
<string name="expiryDate">Vypršení platnosti</string>
|
||||
<string name="editBarcode">Upravit čárový kód</string>
|
||||
<string name="app_resources">Svobodné zdroje třetích stran: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Svobodné knihovny třetích stran: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Zdroje třetích stran: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Knihovny třetích stran: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_copyright_old">Založeno na Loyalty Card Keychain
|
||||
\ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Data budou zapsána na místo podle vašeho výběru.</string>
|
||||
<string name="failedParsingImportUriError">Nelze zpracovat URI importu</string>
|
||||
<string name="noCardExistsError">Tuto kartu nelze najít</string>
|
||||
<string name="exportOptionExplanation">Data budou zapsána na místo podle vašeho výběru</string>
|
||||
<string name="failedParsingImportUriError">Nepodařilo se zpracovat URI importu</string>
|
||||
<string name="noCardExistsError">Kartu se nepodařilo najít</string>
|
||||
<string name="noCardsMessage">Nejprve přidejte kartu</string>
|
||||
<string name="cardShortcut">Zástupce karty</string>
|
||||
<string name="share">Sdílet</string>
|
||||
@@ -96,8 +96,8 @@
|
||||
<string name="settings_locale">Jazyk</string>
|
||||
<string name="turn_flashlight_off">Vypnout světlo</string>
|
||||
<string name="turn_flashlight_on">Zapnout světlo</string>
|
||||
<string name="failedGeneratingShareURL">Nepodařilo se vygenerovat adresu URL pro sdílení. Nahlaste to prosím.</string>
|
||||
<string name="passwordRequired">Zadejte prosím heslo</string>
|
||||
<string name="failedGeneratingShareURL">Nepodařilo se vygenerovat adresu URL pro sdílení</string>
|
||||
<string name="passwordRequired">Zadejte heslo</string>
|
||||
<string name="no">Ne</string>
|
||||
<string name="yes">Ano</string>
|
||||
<string name="updateBarcodeQuestionText">Změnili jste ID. Chcete také aktualizovat čárový kód, aby používal stejnou hodnotu\?</string>
|
||||
@@ -115,33 +115,29 @@
|
||||
<string name="barcodeId">Hodnota čárového kódu</string>
|
||||
<string name="setBarcodeId">Nastavení hodnoty čárového kódu</string>
|
||||
<string name="sameAsCardId">Stejné jako ID</string>
|
||||
<string name="importVoucherVaultMessage">Vyberte k importu svůj <i>vouchervault.json</i> exportovaný z Voucher Vault.
|
||||
\nVytvoříte jej tak, že nejprve stisknete tlačítko Exportovat v aplikaci Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Vyberte soubor exportu z aplikace Voucher Vault, který chcete importovat.\nVytvořte jej z nabídky stisknutím tlačítka Export v aplikaci Voucher Vault.</string>
|
||||
<string name="importVoucherVault">Import z Voucher Vault</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Vyberte k importu <i>LoyaltyCardKeychain.csv</i> exportovaný z Loyalty Card Keychain.
|
||||
\nVytvoříte jej z nabídky Import/Export v Loyalty Card Keychain tak, že tam nejprve stisknete tlačítko Exportovat.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Vyberte soubor exportu z aplikace Loyalty Card Keychain, který chcete importovat.\nVytvořte jej z nabídky Import/export jiné aplikace Loyalty Card Keychain klepnutím na Export.</string>
|
||||
<string name="importLoyaltyCardKeychain">Import z Loyalty Card Keychain</string>
|
||||
<string name="importFidmeMessage">Vyberte k importu svůj <i>fidme-export-request-xxxxxx.zip</i> exportovaný z FidMe a poté vyberte typy čárových kódů ručně.
|
||||
\nVytvoříte jej ze svého profilu FidMe tak, že nejprve zvolíte možnost Ochrana dat a poté stisknete tlačítko Extrahovat moje data.</string>
|
||||
<string name="importFidmeMessage">Vyberte soubor exportu z aplikace FidMe, který chcete importovat, a poté ručně vyberte typy čárových kódů.\nVytvořte jej z aplikace FidMe vybráním položky Data Protection a stisknutím tlačítka Extract my data.</string>
|
||||
<string name="importFidme">Import z FidMe</string>
|
||||
<string name="importCatimaMessage">Vyberte <i>catima.zip</i> exportovaný z aplikace Catima, který chcete importovat.
|
||||
\nVytvoříte jej z nabídky Import/Export jiné aplikace Catima tak, že v ní nejprve stisknete tlačítko Exportovat.</string>
|
||||
<string name="importCatimaMessage">Vyberte soubor exportu z aplikace Catima, který chcete importovat.\nVytvořte jej z nabídky Import/export jiné aplikace Catima klepnutím na Export.</string>
|
||||
<string name="importCatima">Import z Catima</string>
|
||||
<string name="accept">Přijmout</string>
|
||||
<string name="privacy_policy">Zásady soukromí</string>
|
||||
<string name="privacy_policy">Ochrana soukromí</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Importovat data z</string>
|
||||
<string name="points">Body</string>
|
||||
<string name="currency">Měna</string>
|
||||
<string name="balance">Zůstatek</string>
|
||||
<string name="errorReadingImage">Obrázek se nepodařilo přečíst</string>
|
||||
<string name="errorReadingImage">Nepodařilo se přečíst obrázek</string>
|
||||
<string name="noBarcodeFound">Čárový kód nenalezen</string>
|
||||
<string name="groupsList">Skupiny: <xliff:g>%s</xliff:g></string>
|
||||
<string name="addFromImage">Vybrat obrázek z galerie</string>
|
||||
<string name="addManually">Zadat čárový kód ručně</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Ukončit bez uložení\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Ukončit</string>
|
||||
<string name="failedOpeningFileManager">Nejprve si nainstalujte správce souborů.</string>
|
||||
<string name="failedOpeningFileManager">Nepodařilo se otevřít správce souborů</string>
|
||||
<string name="deleteConfirmationGroup">Smazat skupinu\?</string>
|
||||
<string name="all">Všechny</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -149,7 +145,7 @@
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> karty</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> karet</item>
|
||||
</plurals>
|
||||
<string name="noGroups">Kliknutím na tlačítko + plus přidejte skupiny pro kategorizaci.</string>
|
||||
<string name="noGroups">Klepnutím na tlačítko plus (+) přidejte skupiny pro kategorizaci</string>
|
||||
<string name="groups">Skupiny</string>
|
||||
<string name="enter_group_name">Zadejte název skupiny</string>
|
||||
<string name="exportSuccessful">Data exportována</string>
|
||||
@@ -174,7 +170,7 @@
|
||||
<string name="and_data_usage">a využití dat</string>
|
||||
<string name="credits">Zásluhy</string>
|
||||
<string name="on_github">na GitHubu</string>
|
||||
<string name="source_repository">Úložiště zdrojů</string>
|
||||
<string name="source_repository">Zdrojový repozitář</string>
|
||||
<string name="license">Licence</string>
|
||||
<string name="help_translate_this_app">Pomozte s překladem této aplikace</string>
|
||||
<string name="report_error">Nahlásit chybu</string>
|
||||
@@ -188,7 +184,7 @@
|
||||
<string name="group_name_is_empty">Název skupiny nesmí být prázdný</string>
|
||||
<string name="group_updated">Skupina aktualizována</string>
|
||||
<string name="editGroup">Úprava skupiny: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noGiftCardsGroup">Zatím nemáte žádné věrnostní karty. Jakmile nějaké přidáte, můžete je zde přiřadit do skupiny.</string>
|
||||
<string name="noGiftCardsGroup">Vytvořte si karty a poté je zde přiřaďte do skupiny</string>
|
||||
<string name="shortcutSelectCard">Vybrat kartu</string>
|
||||
<string name="translate_platform">na Weblate</string>
|
||||
<string name="showMoreInfo">Zobrazit podrobnosti</string>
|
||||
@@ -201,17 +197,12 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Čistě černé pozadí pro tmavý motiv</string>
|
||||
<string name="include_if_asking_support">Pokud chcete požádat o podporu, uveďte následující informace:</string>
|
||||
<string name="settings_follow_system_orientation">Podle orientace systému</string>
|
||||
<string name="settings_portrait_orientation">Na výšku</string>
|
||||
<string name="settings_lock_on_opening_orientation">Ponechat orientaci jako při otevření karty</string>
|
||||
<string name="archive">Archivovat</string>
|
||||
<string name="unarchive">Vrátit z archivu</string>
|
||||
<string name="unarchived">Karta vrácena z archivu</string>
|
||||
<string name="settings_card_orientation">Orientace obrazovky</string>
|
||||
<string name="settings_landscape_orientation">Na šířku</string>
|
||||
<string name="duplicateCard">Duplikovat</string>
|
||||
<string name="archived">Karta archivována</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nepodařilo se najít podporovanou aplikaci galerie</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nepodařilo se najít podporovaný nástroj pro výběr obrázků</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> karta (<xliff:g id="archivedCount">%2$d</xliff:g> archivovaná)</item>
|
||||
<item quantity="few"><xliff:g>%1$d</xliff:g> karty (<xliff:g id="archivedCount">%2$d</xliff:g> archivované)</item>
|
||||
@@ -223,7 +214,7 @@
|
||||
<string name="welcome">Vítejte v Catima</string>
|
||||
<string name="barcodeLongPressMessage">V aplikaci pro galerii mohou být otevírány pouze obrázky</string>
|
||||
<string name="failedToRetrieveImageFile">Nepodařilo se získat soubor obrázku</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nelze získat přístup k fotoaparátu</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nepodařilo se získat přístup k fotoaparátu</string>
|
||||
<string name="importCards">Importovat karty</string>
|
||||
<string name="updateBalance">Aktualizovat zůstatek</string>
|
||||
<string name="currentBalanceSentence">Současný zůstatek: <xliff:g>%s</xliff:g></string>
|
||||
@@ -241,8 +232,8 @@
|
||||
<string name="switchToFrontImage">Přepnout na přední obrázek</string>
|
||||
<string name="switchToBackImage">Přepnout na zadní obrázek</string>
|
||||
<string name="switchToBarcode">Přepnout na čárový kód</string>
|
||||
<string name="openFrontImageInGalleryApp">Otevřít přední obrázek v galerii</string>
|
||||
<string name="openBackImageInGalleryApp">Otevřít zadní obrázek v galerii</string>
|
||||
<string name="openFrontImageInGalleryApp">Otevřít přední obrázek v aplikaci prohlížeče obrázků</string>
|
||||
<string name="openBackImageInGalleryApp">Otevřít zadní obrázek v aplikaci prohlížeče obrázků</string>
|
||||
<string name="setBarcodeHeight">Nastavit výšku čárového kódu</string>
|
||||
<string name="donate">Přispět</string>
|
||||
<string name="icon_header_click_text">Dlouhým stisknutím miniaturu upravíte</string>
|
||||
@@ -275,18 +266,17 @@
|
||||
<string name="addWithoutBarcode">Přidat kartu bez čárového kódu</string>
|
||||
<string name="field_must_not_be_empty">Položka nesmí být prázdná</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Vždy otáčet (ignoruje nastavení systému)</string>
|
||||
<string name="continue_">Pokračovat</string>
|
||||
<string name="add_manually_warning_title">Doporučuje se skenování</string>
|
||||
<string name="add_manually_warning_message">V některých obchodech se hodnota čárového kódu liší od čísla napsaného na kartě. Z tohoto důvodu nemusí ruční zadání čárového kódu vždy fungovat. Důrazně doporučujeme místo toho naskenovat čárový kód pomocí fotoaparátu. Chcete přesto pokračovat?</string>
|
||||
<string name="add_manually_warning_message">U některých karet se hodnota čárového kódu liší od čísla napsaného na kartě. Z tohoto důvodu nemusí ruční zadání čárového kódu vždy fungovat. Doporučujeme místo toho naskenovat čárový kód pomocí fotoaparátu. Chcete přesto pokračovat?</string>
|
||||
<string name="spend">Utratit</string>
|
||||
<string name="receive">Obdržet</string>
|
||||
<string name="amountParsingFailed">Neplatné množství</string>
|
||||
<string name="addFromPdfFile">Vybrat soubor PDF</string>
|
||||
<string name="errorReadingFile">Soubor nelze přečíst</string>
|
||||
<string name="errorReadingFile">Soubor se nepodařilo přečíst</string>
|
||||
<string name="pageWithNumber">Stránka <xliff:g>%d</xliff:g></string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Který z nalezených čárových kódů chcete použít?</string>
|
||||
<string name="failedLaunchingFileManager">Nelze nalézt podporovaný správce souborů</string>
|
||||
<string name="failedLaunchingFileManager">Nepodařilo se najít podporovaného správce souborů</string>
|
||||
<string name="noCameraFoundGuideText">Zdá se, že vaše zařízení nemá fotoaparát. Pokud ano, zkuste zařízení restartovat. V opačném případě použijte tlačítko Další možnosti a přidejte čárový kód jiným způsobem.</string>
|
||||
<string name="importCancelled">Import zrušen</string>
|
||||
<string name="exportCancelled">Export zrušen</string>
|
||||
@@ -294,7 +284,7 @@
|
||||
<string name="useFrontImage">Použít přední obrázek</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Pomocí tlačítek hlasitosti můžete změnit, která karta se zobrazí</string>
|
||||
<string name="settings_use_volume_keys_navigation">Přepínat karty pomocí tlačítek hlasitosti</string>
|
||||
<string name="generic_error_please_retry">Je nám líto, něco se pokazilo, zkuste to prosím znovu...</string>
|
||||
<string name="generic_error_please_retry">Došlo k chybě</string>
|
||||
<string name="settings_column_count_portrait">Sloupce v režimu na výšku</string>
|
||||
<string name="settings_automatic_column_count">Automatický</string>
|
||||
<string name="addFromPkpass">Vyberte soubor Passbook (.pkpass / .pkpasses)</string>
|
||||
@@ -314,5 +304,11 @@
|
||||
<string name="card_list_widget_name">Seznam karet</string>
|
||||
<string name="card_list_widget_empty">Karty přidané do aplikace Catima se zobrazí zde. Pokud máte karty, ujistěte se, že nejsou všechny archivovány.</string>
|
||||
<string name="cardWithNumber">Karta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Karta <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Neotáčejte prosím zařízení, protože tím zrušíte akci</string>
|
||||
<string name="acra_catima_has_crashed">Omlouváme se, aplikace <xliff:g id="app_name">%s</xliff:g> havarovala. Pomozte nám prosím s opravou tohoto problému odesláním hlášení o chybě.</string>
|
||||
<string name="acra_explain_crash">Pokud je to možné, přidejte prosím další podrobnosti o tom, co jste tu dělali:</string>
|
||||
<string name="acra_crash_email_subject">Hlášení o pádu <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Ptát se na odesílání hlášení o pádech</string>
|
||||
<string name="pref_enable_acra_summary">Pokud je povoleno, budete při pádu aplikace dotázáni na jeho nahlášení. Hlášení nejsou nikdy odesílána automaticky.</string>
|
||||
</resources>
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
<string name="scanCardBarcode">Scan stregkode</string>
|
||||
<string name="addCardTitle">Tilføj kort</string>
|
||||
<string name="editCardTitle">Rediger kort</string>
|
||||
<string name="sendLabel">Afsend…</string>
|
||||
<string name="share">Aktie</string>
|
||||
<string name="sendLabel">Send…</string>
|
||||
<string name="share">Del</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="deleteConfirmation">Slete dette kort permanent\?</string>
|
||||
<string name="deleteConfirmation">Slet dette kort permanent?</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Streichen <xliff:g>%d</xliff:g> kort</item>
|
||||
<item quantity="other">Streichen <xliff:g>%d</xliff:g> korts</item>
|
||||
<item quantity="one">Slet <xliff:g>%d</xliff:g> kort</item>
|
||||
<item quantity="other">Slet <xliff:g>%d</xliff:g> korts</item>
|
||||
</plurals>
|
||||
<string name="deleteTitle">Karte streichen</string>
|
||||
<string name="deleteTitle">Slet kort</string>
|
||||
<string name="confirm">Bekræft</string>
|
||||
<string name="delete">Slet</string>
|
||||
<string name="edit">Rediger</string>
|
||||
@@ -34,7 +34,7 @@
|
||||
<string name="action_search">Søg</string>
|
||||
<string name="importExport">Import/eksport</string>
|
||||
<string name="exportName">Eksport</string>
|
||||
<string name="importExportHelp">Sikkerhedskopiering af dit data, giver dig mulighed for at flytte dem til en anden enhed.</string>
|
||||
<string name="importExportHelp">Sikkerhedskopiering af dine data, giver dig mulighed for at flytte dem til en anden enhed.</string>
|
||||
<string name="importSuccessfulTitle">Importeret</string>
|
||||
<string name="importFailedTitle">Import mislykkedes</string>
|
||||
<string name="importFailed">Kunne ikke udføre importering</string>
|
||||
@@ -54,12 +54,12 @@
|
||||
\ncopyright © 2016-2020 Branden Archer.</string>
|
||||
<string name="about">Om</string>
|
||||
<string name="noCardsMessage">Tilføj først et kort</string>
|
||||
<string name="cardShortcut">Kort genvej</string>
|
||||
<string name="cardShortcut">Genvej til kort</string>
|
||||
<string name="importOptionFilesystemButton">Fra filsystemet</string>
|
||||
<string name="importOptionFilesystemExplanation">Vælg en bestemt fil fra filsystemet.</string>
|
||||
<string name="importOptionFilesystemTitle">Import fra filsystem</string>
|
||||
<string name="exportOptionExplanation">Dataene skrives til en placering efter eget valg.</string>
|
||||
<string name="failedParsingImportUriError">Kunne ikke analysere import-URI\'en</string>
|
||||
<string name="failedParsingImportUriError">Kunne ikke importere URI\'en</string>
|
||||
<string name="noCardExistsError">Kunne ikke finde det kort</string>
|
||||
<string name="deleteConfirmationGroup">Slet gruppe\?</string>
|
||||
<string name="all">Alle</string>
|
||||
@@ -79,16 +79,16 @@
|
||||
<string name="moveDown">Bevæger sig nedad</string>
|
||||
<string name="leaveWithoutSaveTitle">Afslut</string>
|
||||
<string name="addManually">Indtast stregkoden manuelt</string>
|
||||
<string name="noGiftCardsGroup">Opret kort og tildel dem gupper her.</string>
|
||||
<string name="noGiftCardsGroup">Opret kort og tildel dem grupper her.</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Slet dette <xliff:g>%d</xliff:g> kort permanent\?</item>
|
||||
<item quantity="other">Slet disse <xliff:g>%d</xliff:g> kort permanent\?</item>
|
||||
</plurals>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="cameraPermissionRequired">Behov for kamera adgang krævet for denne funktion…</string>
|
||||
<string name="storageReadPermissionRequired">Behov for lager adgang krævet for denne funktion…</string>
|
||||
<string name="cameraPermissionRequired">Behov for kamera adgang er krævet for denne funktion…</string>
|
||||
<string name="storageReadPermissionRequired">Behov for lager adgang er krævet for denne funktion…</string>
|
||||
<string name="permissionReadCardsLabel">Læs Catima Kort</string>
|
||||
<string name="permissionReadCardsDescription">læs dine Catima kort og alle deres detaljer, også noter og billeder</string>
|
||||
<string name="permissionReadCardsDescription">læs dit Catima kort og alle kortets detaljer, også noter og billeder</string>
|
||||
<string name="cameraPermissionDeniedTitle">Kunne ikke få adgang til kamera</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">For at scanne stregkoder, har Catima behov for at få adgang til dit kamera. Klik her for at ændre dine tilladelser i indstillinger.</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os og hjælpere</string>
|
||||
@@ -100,10 +100,6 @@
|
||||
<string name="group_name_already_in_use">Gruppenavn allerede i brug</string>
|
||||
<string name="editGroup">Redigerer Gruppe: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importFidme">Importer fra FidMe</string>
|
||||
<string name="settings_card_orientation">Skærm orientation</string>
|
||||
<string name="settings_follow_system_orientation">Følg system</string>
|
||||
<string name="settings_portrait_orientation">Portræt</string>
|
||||
<string name="settings_landscape_orientation">Landskab</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deaktiver låseskærm når et kort er åbent</string>
|
||||
<string name="groupsList">Grupper: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Udløber: <xliff:g>%s</xliff:g></string>
|
||||
@@ -133,10 +129,8 @@
|
||||
<string name="setBarcodeId">Vælg stregkode værdi</string>
|
||||
<string name="sameAsCardId">Samme som ID</string>
|
||||
<string name="settings_system_theme">System</string>
|
||||
<string name="settings_lock_on_opening_orientation">Lås til orientation når kort åbnes</string>
|
||||
<string name="settings_keep_screen_on_summary">Deaktiver skærm tids slukning når et kort er åbent</string>
|
||||
<string name="group_edit">Rediger gruppe</string>
|
||||
<string name="settings_follow_sensor_orientation">Altid roter (ignorer system indstillinger)</string>
|
||||
<string name="chooseImportType">Importer data fra</string>
|
||||
<string name="importVoucherVault">Importer fra Voucher Vault</string>
|
||||
<string name="settings_use_volume_keys_navigation">Skift kort ved brug af lydstyrke knapperne</string>
|
||||
@@ -150,4 +144,4 @@
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> point</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> point</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
</resources>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Suche</string>
|
||||
<string name="action_add">Hinzufügen</string>
|
||||
<string name="noGiftCards">Füge eine Karte mit + hinzu oder importiere welche über das ⋮ Menü.</string>
|
||||
<string name="noGiftCards">Füge eine Karte mit + hinzu oder importiere welche über das ⋮ Menü</string>
|
||||
<string name="noMatchingGiftCards">Keine Ergebnisse. Versuche, deine Suche zu ändern.</string>
|
||||
<string name="storeName">Name</string>
|
||||
<string name="note">Notiz</string>
|
||||
@@ -24,7 +24,7 @@
|
||||
<string name="noCardExistsError">Konnte die Karte nicht finden</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
<string name="exportName">Export</string>
|
||||
<string name="importExportHelp">Wenn du deine Daten sicherst, kannst du sie auf ein anderes Gerät übertragen.</string>
|
||||
<string name="importExportHelp">Wenn du deine Daten sicherst, kannst du sie auf ein anderes Gerät übertragen</string>
|
||||
<string name="importSuccessfulTitle">Importiert</string>
|
||||
<string name="importFailedTitle">Import fehlgeschlagen</string>
|
||||
<string name="importFailed">Import konnte nicht durchgeführt werden</string>
|
||||
@@ -34,7 +34,7 @@
|
||||
<string name="importing">Importiere…</string>
|
||||
<string name="exporting">Exportiere…</string>
|
||||
<string name="importOptionFilesystemTitle">Aus Dateisystem importieren</string>
|
||||
<string name="importOptionFilesystemExplanation">Wähle eine bestimmte Datei aus dem Dateisystem aus.</string>
|
||||
<string name="importOptionFilesystemExplanation">Wähle eine bestimmte Datei aus dem Dateisystem aus</string>
|
||||
<string name="importOptionFilesystemButton">vom Dateisystem</string>
|
||||
<string name="about">Über</string>
|
||||
<string name="app_license">Freie Software, lizensiert unter der GPLv3+</string>
|
||||
@@ -53,20 +53,20 @@
|
||||
<string name="settings_theme">Farbschema</string>
|
||||
<string name="app_copyright_old">Basierend auf Loyalty Card Keychain
|
||||
\nCopyright © 2016-2020 Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Die Daten werden an einen Ort deiner Wahl geschrieben.</string>
|
||||
<string name="exportOptionExplanation">Die Daten werden an einen Ort deiner Wahl geschrieben</string>
|
||||
<string name="failedParsingImportUriError">Die Import-URI konnte nicht verarbeitet werden</string>
|
||||
<string name="share">Teilen</string>
|
||||
<string name="barcodeType">Barcodetyp</string>
|
||||
<string name="starImage">Favoritenstern</string>
|
||||
<string name="deleteConfirmationGroup">Gruppe löschen?</string>
|
||||
<string name="all">Alle</string>
|
||||
<string name="noGroups">Klicke auf das Pluszeichen +, um eine Gruppe hinzuzufügen.</string>
|
||||
<string name="noGroups">Klicke auf das Pluszeichen +, um eine Gruppe hinzuzufügen</string>
|
||||
<string name="noGroupCards">Diese Gruppe ist leer</string>
|
||||
<string name="groups">Gruppen</string>
|
||||
<string name="enter_group_name">Gruppennamen eingeben</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Beenden ohne zu speichern\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Beenden</string>
|
||||
<string name="failedOpeningFileManager">Installiere zuerst einen Dateimanager.</string>
|
||||
<string name="failedOpeningFileManager">Dateimanager konnte nicht geöffnet werden</string>
|
||||
<string name="noBarcode">Kein Barcode</string>
|
||||
<string name="addManually">Barcode manuell eingeben</string>
|
||||
<string name="moveDown">Nach unten verschieben</string>
|
||||
@@ -94,14 +94,13 @@
|
||||
<string name="settings_keep_screen_on">Bildschirm aktiv lassen</string>
|
||||
<string name="accept">Annehmen</string>
|
||||
<string name="privacy_policy">Datenschutzrichtlinie</string>
|
||||
<string name="importVoucherVaultMessage">Wähle deinen <i>vouchervault.json</i>-Export aus Voucher Vault zum Importieren aus. \nErstelle ihn, indem du zuerst auf Export in Voucher Vault drückst.</string>
|
||||
<string name="importVoucherVaultMessage">Wähle deinen Export aus „Voucher Vault“ zum Importieren aus.\nErstelle ihn, indem du Export in Voucher Vault drückst.</string>
|
||||
<string name="importVoucherVault">Aus Voucher Vault importieren</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Wählen du deinen <i>LoyaltyCardKeychain.csv</i>-Export aus Loyalty Card Keychain zum Importieren aus.
|
||||
\nErstelle ihn über das Menü Import/Export in Loyalty Card Keychain, indem du dort zuerst auf Export drückst.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Wähle deinen Export vom „Loyalty Card Keychain“ zum Importieren aus.\nErstelle ihn über das Import/Export Menü in Loyalty Card Keychain, indem du dort auf Export drückst.</string>
|
||||
<string name="importLoyaltyCardKeychain">Aus Loyalty Card Keychain importieren</string>
|
||||
<string name="importFidmeMessage">Wähle deinen <i>fidme-export-request-xxxxxx.zip</i>-Export aus FidMe zum Importieren aus und wähle anschließend die Barcodetypen manuell aus. \nOder erstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann zuerst auf Meine Daten extrahieren drückst.</string>
|
||||
<string name="importFidmeMessage">Wähle deinen „FidMe-Export“ zum Importieren und anschließend manuell die Barcodetypen aus.\nErstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann auf Meine Daten extrahieren drückst.</string>
|
||||
<string name="importFidme">Aus FidMe importieren</string>
|
||||
<string name="importCatimaMessage">Wähle deinen „<i>catima.zip</i>-Export“ von Catima zum Importieren aus.\nErstelle ihn zuerst aus dem Import/Export-Menü einer anderen Catima-Anwendung, indem du dort Export drückst.</string>
|
||||
<string name="importCatimaMessage">Wähle deinen „Catima-Export“ zum Importieren aus.\nErstelle diesen durch das Drücken auf Export im Import/Export-Menü in einer anderen Catima-Anwendung.</string>
|
||||
<string name="importCatima">Aus Catima importieren</string>
|
||||
<string name="setBarcodeId">Barcodewert festlegen</string>
|
||||
<string name="sameAsCardId">Entspricht Kartennummer</string>
|
||||
@@ -110,9 +109,9 @@
|
||||
<string name="noBarcodeFound">Keinen Barcode erkannt</string>
|
||||
<string name="addFromImage">Bild aus der Galerie wählen</string>
|
||||
<string name="unsupportedBarcodeType">Dieser Barcodetyp kann noch nicht angezeigt werden. Wir hoffen das Format in einer zukünftigen Version zu unterstützen.</string>
|
||||
<string name="wrongValueForBarcodeType">Der Wert ist für den gewählten Barcodetyp leider nicht gültig</string>
|
||||
<string name="app_resources">Freie Ressourcen von Drittanbietern: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Freie Bibliotheken von Drittanbietern: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="wrongValueForBarcodeType">Der Wert ist ungültig für den gewählten Barcodetyp</string>
|
||||
<string name="app_resources">Ressourcen von Drittanbietern: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotheken von Drittanbietern: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Ich möchte diese Karten mit dir teilen</string>
|
||||
<string name="no">Nein</string>
|
||||
<string name="yes">Ja</string>
|
||||
@@ -125,10 +124,10 @@
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="frontImageDescription">Vorderseite</string>
|
||||
<string name="backImageDescription">Rückseite</string>
|
||||
<string name="passwordRequired">Bitte gib das Passwort ein</string>
|
||||
<string name="passwordRequired">Gib das Passwort ein</string>
|
||||
<string name="turn_flashlight_off">Blitzlicht ausschalten</string>
|
||||
<string name="turn_flashlight_on">Blitzlicht einschalten</string>
|
||||
<string name="failedGeneratingShareURL">URL konnte nicht erstellt werden. Bitte melde das an uns.</string>
|
||||
<string name="failedGeneratingShareURL">Teilbare URL konnte nicht erstellt werden</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> ausgewählt</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> ausgewählt</item>
|
||||
@@ -177,9 +176,9 @@
|
||||
<string name="group_name_already_in_use">Der Gruppenname wird bereits verwendet</string>
|
||||
<string name="group_name_is_empty">Gruppenname darf nicht leer sein</string>
|
||||
<string name="group_updated">Gruppe aktualisiert</string>
|
||||
<string name="editGroup">Gruppe wird bearbeitet: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Gruppe bearbeiten: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_edit">Gruppe bearbeiten</string>
|
||||
<string name="noGiftCardsGroup">Erstelle einige Karten und ordne sie dann hier der Gruppe zu.</string>
|
||||
<string name="noGiftCardsGroup">Erstelle einige Karten und ordne sie dann hier der Gruppe zu</string>
|
||||
<string name="setIcon">Vorschaubild festlegen</string>
|
||||
<string name="selectColor">Farbe auswählen</string>
|
||||
<string name="translate_platform">auf Weblate</string>
|
||||
@@ -193,21 +192,16 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Komplett schwarzer Hintergrund im dunklen Design</string>
|
||||
<string name="include_if_asking_support">Wenn Du Unterstützung haben möchtest, gib bitte folgende Informationen an:</string>
|
||||
<string name="settings_follow_system_orientation">System folgen</string>
|
||||
<string name="settings_landscape_orientation">Querformat</string>
|
||||
<string name="settings_portrait_orientation">Hochformat</string>
|
||||
<string name="duplicateCard">Duplizieren</string>
|
||||
<string name="unarchive">Aus dem Archiv wiederherstellen</string>
|
||||
<string name="settings_card_orientation">Bildschirm-Ausrichtung</string>
|
||||
<string name="unarchived">Karte aus dem Archiv wiederhergestellt</string>
|
||||
<string name="archive">Archivieren</string>
|
||||
<string name="archived">Karte archiviert</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kartenausrichtung nach dem Öffnen beibehalten</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> Karte (<xliff:g id="archivedCount">%2$d</xliff:g> archiviert)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> Karten (<xliff:g id="archivedCount">%2$d</xliff:g> archiviert)</item>
|
||||
</plurals>
|
||||
<string name="failedLaunchingPhotoPicker">Es konnte keine unterstützte Galerie-App gefunden werden</string>
|
||||
<string name="failedLaunchingPhotoPicker">Keine unterstützte App zur Bildauswahl gefunden</string>
|
||||
<string name="previousCard">Vorherige</string>
|
||||
<string name="nextCard">Nächste</string>
|
||||
<string name="failedToOpenUrl">Bitte installiere zuerst einen Webbrowser</string>
|
||||
@@ -215,7 +209,7 @@
|
||||
<string name="barcodeLongPressMessage">In der Galerie können nur Bilder geöffnet werden</string>
|
||||
<string name="failedToRetrieveImageFile">Bilddatei konnte nicht abgerufen werden</string>
|
||||
<string name="updateBalanceTitle">Wie viel hast du ausgegeben oder erhalten?</string>
|
||||
<string name="cameraPermissionDeniedTitle">Kein Zugriff auf die Kamera möglich</string>
|
||||
<string name="cameraPermissionDeniedTitle">Kein Zugriff auf die Kamera</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Um Barcodes zu scannen, benötigt Catima Zugriff auf deine Kamera. Tippe hier, um deine Berechtigungseinstellungen zu ändern.</string>
|
||||
<string name="updateBalanceHint">Betrag eingeben</string>
|
||||
<string name="importCards">Karten importieren</string>
|
||||
@@ -230,8 +224,8 @@
|
||||
<string name="anyDate">Beliebiges Datum</string>
|
||||
<string name="icon_header_click_text">Zum Bearbeiten des Vorschaubildes lang drücken</string>
|
||||
<string name="switchToBarcode">Zum Barcode wechseln</string>
|
||||
<string name="openFrontImageInGalleryApp">Vorderseite in Galerie öffnen</string>
|
||||
<string name="openBackImageInGalleryApp">Rückseite in Galerie öffnen</string>
|
||||
<string name="openFrontImageInGalleryApp">Vorderseite in Bildbetrachter öffnen</string>
|
||||
<string name="openBackImageInGalleryApp">Rückseite in Bildbetrachter öffnen</string>
|
||||
<string name="height">Höhe</string>
|
||||
<string name="switchToFrontImage">Zur Vorderseite wechseln</string>
|
||||
<string name="switchToBackImage">Zur Rückseite wechseln</string>
|
||||
@@ -266,10 +260,9 @@
|
||||
<string name="field_must_not_be_empty">Feld darf nicht leer sein</string>
|
||||
<string name="manually_enter_barcode_instructions">Trage die Kartenummer oder Text deiner Karte ein und drücke auf den Barcode, der wie der auf deiner Karte aussieht.</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Immer drehen (ignoriert Systemeinstellungen)</string>
|
||||
<string name="continue_">Fortfahren</string>
|
||||
<string name="add_manually_warning_title">Scannen empfohlen</string>
|
||||
<string name="add_manually_warning_message">In einigen Geschäften weicht der Wert des Barcodes von dem auf der Karte angegebenen Wert ab. Aus diesem Grund funktioniert die manuelle Eingabe des Barcodes in einigen Fällen nicht. Es wird dringend empfohlen, den Barcode mit einer Kamera zu scannen. Möchtest du dennoch fortfahren?</string>
|
||||
<string name="add_manually_warning_message">In einigen Geschäften weicht der Wert des Barcodes von dem auf der Karte angegebenen Wert ab. Aus diesem Grund funktioniert die manuelle Eingabe des Barcodes in einigen Fällen nicht. Es wird empfohlen, stattdessen den Barcode mit deiner Kamera zu scannen. Möchtest du dennoch fortfahren?</string>
|
||||
<string name="spend">Zahlen</string>
|
||||
<string name="receive">Erhalten</string>
|
||||
<string name="amountParsingFailed">Ungültiger Betrag</string>
|
||||
@@ -296,7 +289,7 @@
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="generic_error_please_retry">Entschuldigung, da ist etwas schief gelaufen, versuchen Sie es noch einmal ...</string>
|
||||
<string name="generic_error_please_retry">Ein Fehler ist aufgetreten</string>
|
||||
<string name="unsupportedFile">Diese Datei wird nicht unterstützt</string>
|
||||
<string name="addFromPkpass">Eine Passbook-Datei (.pkpass / .pkpasses) auswählen</string>
|
||||
<string name="sort_by_valid_from">Gültig ab</string>
|
||||
@@ -304,6 +297,12 @@
|
||||
<string name="setBarcodeWidth">Barcodebreite einstellen</string>
|
||||
<string name="card_list_widget_empty">Nachdem du einige Treuekarten in Catima hinzugefügt hast, werden sie hier angezeigt. Wenn du Karten hast, stelle sicher, dass diese nicht alle archiviert sind.</string>
|
||||
<string name="card_list_widget_name">Kartenliste</string>
|
||||
<string name="cardWithNumberAndLocale">Karte <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Karte <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="cardWithNumber">Karte <xliff:g>%d</xliff:g></string>
|
||||
<string name="pref_enable_acra_summary">Wenn aktiviert, wirst du bei einem Absturz gebeten diesen zu melden. Absturzberichte werden niemals automatisch gesendet.</string>
|
||||
<string name="pref_enable_acra">Bitte um die Übermittlung von Absturzberichten</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> Absturzbericht</string>
|
||||
<string name="acra_explain_crash">Wenn möglich, bitte übermittle mehr Details zu dem, was du hier getan hast:</string>
|
||||
<string name="acra_catima_has_crashed">Es tut uns leid, aber <xliff:g id="app_name">%s</xliff:g> ist abgestürzt. Bitte hilf uns diesen Fehler zu beheben und übermittle uns einen Absturzbericht.</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Bitte drehe nicht das Gerät, weil sonst die Aktion abbricht</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Προσθήκη</string>
|
||||
<string name="noGiftCards">Κάντε κλικ στο + κουμπί για να προσθέσετε μία κάρτα ή προσθέστε από το ⋮ μενού.</string>
|
||||
<string name="noGiftCards">Κάντε κλικ στο + κουμπί για να προσθέσετε μία κάρτα ή προσθέστε από το ⋮ μενού</string>
|
||||
<string name="storeName">Όνομα</string>
|
||||
<string name="note">Σημείωση</string>
|
||||
<string name="cardId">Κωδικός κάρτας</string>
|
||||
@@ -12,15 +12,15 @@
|
||||
<string name="confirm">Επιβεβαίωση</string>
|
||||
<string name="ok">Εντάξει</string>
|
||||
<string name="sendLabel">Αποστολή…</string>
|
||||
<string name="editCardTitle">Επεξεργασία Κάρτας</string>
|
||||
<string name="addCardTitle">Προσθήκη Κάρτας</string>
|
||||
<string name="scanCardBarcode">Σαρώστε τον γραμμωτό κώδικα</string>
|
||||
<string name="cardShortcut">Συντόμευση Κάρτας</string>
|
||||
<string name="editCardTitle">Επεξεργασία κάρτας</string>
|
||||
<string name="addCardTitle">Προσθήκη κάρτας</string>
|
||||
<string name="scanCardBarcode">Σάρωση γραμμωτού κώδικα</string>
|
||||
<string name="cardShortcut">Συντόμευση κάρτας</string>
|
||||
<string name="noCardsMessage">Προσθέστε μία κάρτα πρώτα</string>
|
||||
<string name="noCardExistsError">Δεν ήταν δυνατό να εντοπιστεί η κάρτα</string>
|
||||
<string name="importExport">Εισαγωγή/Εξαγωγή</string>
|
||||
<string name="exportName">Εξαγωγή</string>
|
||||
<string name="importExportHelp">Τα αντίγραφα ασφαλείας σας επιτρέπουν να τα εισάγετε σε άλλη συσκευή.</string>
|
||||
<string name="importExportHelp">Τα αντίγραφα ασφαλείας σας επιτρέπουν να τα εισάγετε σε άλλη συσκευή</string>
|
||||
<string name="importSuccessfulTitle">Εισήχθησαν</string>
|
||||
<string name="importFailedTitle">Εισαγωγή ανεπιτυχής</string>
|
||||
<string name="importFailed">Δεν ήταν δυνατή η εισαγωγή</string>
|
||||
@@ -30,7 +30,7 @@
|
||||
<string name="importing">Γίνεται εισαγωγή του…</string>
|
||||
<string name="exporting">Γίνεται εξαγωγή του…</string>
|
||||
<string name="importOptionFilesystemTitle">Εισαγωγή από το σύστημα αρχείων</string>
|
||||
<string name="importOptionFilesystemExplanation">Επιλέξτε ένα συγκεκριμένο αρχείο από το σύστημα αρχείων.</string>
|
||||
<string name="importOptionFilesystemExplanation">Επιλέξτε ένα συγκεκριμένο αρχείο από το σύστημα αρχείων</string>
|
||||
<string name="importOptionFilesystemButton">Από το σύστημα αρχείων</string>
|
||||
<string name="about">Σχετικά</string>
|
||||
<string name="app_license">Άδεια χρήσης υπό GPLv3+</string>
|
||||
@@ -50,7 +50,7 @@
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> επιλέγχθηκε</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> επιλέγχθηκαν</item>
|
||||
</plurals>
|
||||
<string name="noGiftCardsGroup">Δημιούργησε κάρτες και βάλτες σε αυτή την ομάδα.</string>
|
||||
<string name="noGiftCardsGroup">Δημιούργησε κάρτες και βάλτες σε αυτή την ομάδα</string>
|
||||
<string name="addManually">Εισαγωγή γραμμωτού κώδικα με μη αυτόματο τρόπο</string>
|
||||
<string name="never">Ποτέ</string>
|
||||
<string name="share">Κοινοποίηση</string>
|
||||
@@ -58,7 +58,7 @@
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> πόντος</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> πόντοι</item>
|
||||
</plurals>
|
||||
<string name="exportOptionExplanation">Τα δεδομένα θα μεταφερθούν σε τοποθεσία της επιλογής σας.</string>
|
||||
<string name="exportOptionExplanation">Τα δεδομένα θα μεταφερθούν σε τοποθεσία της επιλογής σας</string>
|
||||
<string name="settings_theme">Θέμα</string>
|
||||
<string name="groupsList">Ομάδες: <xliff:g>%s</xliff:g></string>
|
||||
<string name="barcodeId">Τιμή γραμμωτού κώδικα</string>
|
||||
@@ -81,14 +81,13 @@
|
||||
<string name="source_repository">Αποθήκη κώδικα</string>
|
||||
<string name="on_github">στο GitHub</string>
|
||||
<string name="on_google_play">στο Google Play</string>
|
||||
<string name="report_error">Αναφορά Σφάλματος</string>
|
||||
<string name="report_error">Αναφορά σφάλματος</string>
|
||||
<string name="starred">Αγαπημένα</string>
|
||||
<string name="translate_platform">στο Weblate</string>
|
||||
<string name="importLoyaltyCardKeychain">Εισαγωγή από Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Επιλέξτε την <i>LoyaltyCardKeychain.csv</i> εξαγωγή από το Loyalty Card Keychain για εισαγωγή.
|
||||
\nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής στο Loyalty Card Keychain επιλέγοντας Εξαγωγή.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Επιλέξτε την εξαγωγή σας από το Loyalty Card Keychain για εισαγωγή. \nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής στο Loyalty Card Keychain επιλέγοντας Εξαγωγή.</string>
|
||||
<string name="importFidme">Εισαγωγή από FidMe</string>
|
||||
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα μετέπειτα.\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων πρώτα.</string>
|
||||
<string name="importFidmeMessage">Επιλέξτε την εξαγωγή σας από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα.\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων.</string>
|
||||
<string name="setBarcodeId">Επιλέξτε τιμή γραμμωτού κώδικα</string>
|
||||
<string name="wrongValueForBarcodeType">Η τιμή δεν είναι έγκυρη για τον επιλεγμένο γραμμωτό κώδικα</string>
|
||||
<string name="setBackImage">Επιλογή οπίσθιας εικόνας</string>
|
||||
@@ -106,7 +105,7 @@
|
||||
<item quantity="one">Διαγραφή <xliff:g>%d</xliff:g> κάρτας</item>
|
||||
<item quantity="other">Διαγραφή <xliff:g>%d</xliff:g> καρτών</item>
|
||||
</plurals>
|
||||
<string name="errorReadingImage">Δεν ήταν δυνατό να διαβαστεί η εικόνα</string>
|
||||
<string name="errorReadingImage">Δεν ήταν δυνατή η ανάγνωση της εικόνας</string>
|
||||
<string name="currency">Νόμισμα</string>
|
||||
<string name="privacy_policy">Πολιτική απορρήτου</string>
|
||||
<string name="chooseImportType">Εισαγωγή δεδομένων από</string>
|
||||
@@ -115,29 +114,27 @@
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> κάρτα ( <xliff:g id="archivedCount">%2$d</xliff:g> αρχειοθετήθηκε)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> κάρτες ( <xliff:g id="archivedCount">%2$d</xliff:g> αρχειοθετήθηκαν)</item>
|
||||
</plurals>
|
||||
<string name="importCatimaMessage">Επιλέξτε την <i>catima.zip</i> εξαγωγή από το Catima για εισαγωγή
|
||||
\nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής μιας άλλης εφαρμογής Catima κάνοντας εξαγωγή εκεί πρώτα.</string>
|
||||
<string name="importCatimaMessage">Επιλέξτε την εξαγωγή σας από το Catima για εισαγωγή.\nΔημιουργήστε την από το μενού Εισαγωγή/Εξαγωγή μιας άλλης εφαρμογής Catima πατώντας Εξαγωγή.</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Θέλω να μοιραστώ μερικές κάρτες μαζί σου</string>
|
||||
<string name="editGroup">Επεξεργασία Ομάδας: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Επεξεργασία ομάδας: <xliff:g>%s</xliff:g></string>
|
||||
<string name="setFrontImage">Επιλογή εμπρόσθιας εικόνας</string>
|
||||
<string name="importVoucherVaultMessage">Επιλέξτε την <i>vouchervault.json</i> εξαγωγή από το Voucher Vault για εισαγωγή.
|
||||
\nΔημιουργήστε το επιλέγοντας Εξαγωγή στο Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Επιλέξτε την εξαγωγή σας από το Voucher Vault για εισαγωγή. \nΔημιουργήστε το επιλέγοντας Εξαγωγή στο Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Ο τύπος γραμμωτού κώδικα δεν μπορεί να εμφανιστεί ακόμα. Μπορεί να υποστηρίζεται σε μια μελλοντική έκδοση της εφαρμογής.</string>
|
||||
<string name="frontImageDescription">Εμπρόσθια</string>
|
||||
<string name="photos">Φωτογραφίες</string>
|
||||
<string name="backImageDescription">Οπίσθια</string>
|
||||
<string name="updateBarcodeQuestionTitle">Ενημέρωση τιμής γραμμωτού κώδικα;</string>
|
||||
<string name="passwordRequired">Παρακαλώ εισάγετε τον κωδικό</string>
|
||||
<string name="sort_by_most_recently_used">Χρήση</string>
|
||||
<string name="passwordRequired">Εισάγετε τον κωδικό</string>
|
||||
<string name="sort_by_most_recently_used">Πρόσφατα χρησιμοποιημένα</string>
|
||||
<string name="shortcutSelectCard">Επιλέξτε μία κάρτα</string>
|
||||
<string name="barcodeImageDescriptionWithType">Εικόνα <xliff:g>%s</xliff:g> γραμμωτού κώδικα</string>
|
||||
<string name="app_libraries">Ελεύθερες βιβλιοθήκες τρίτων: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Βιβλιοθήκες τρίτων: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="license">Άδεια</string>
|
||||
<string name="include_if_asking_support">Αν θέλετε να ζητήσετε υποστήριξη, συμπεριλάβετε τις ακόλουθες πληροφορίες:</string>
|
||||
<string name="importSuccessful">Δεδομένα εισήχθησαν</string>
|
||||
<string name="moveUp">Προχώρα πάνω</string>
|
||||
<string name="barcodeType">Τύπος γραμμωτού κώδικα</string>
|
||||
<string name="app_resources">Ελεύθερες πηγές τρίτων: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Πηγές τρίτων: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectColor">Επιλογή χρώματος</string>
|
||||
<string name="setIcon">Ορισμός εικονιδίου</string>
|
||||
<string name="settings_sky_blue_theme">Γαλάζιο</string>
|
||||
@@ -151,7 +148,7 @@
|
||||
<string name="points">Πόντοι</string>
|
||||
<string name="exportSuccessful">Δεδομένα εξήχθησαν</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Αποτροπή κλειδώματος οθόνης</string>
|
||||
<string name="failedLaunchingPhotoPicker">Δεν βρέθηκε υποστηριζόμενη εφαρμογή συλλογής</string>
|
||||
<string name="failedLaunchingPhotoPicker">Δεν βρέθηκε υποστηριζόμενος επιλογέας εικόνων</string>
|
||||
<string name="noBarcode">Χωρίς γραμμωτό κώδικα</string>
|
||||
<string name="starImage">Αγαπημένο αστέρι</string>
|
||||
<string name="balanceSentence">Υπόλοιπο: <xliff:g>%s</xliff:g></string>
|
||||
@@ -162,20 +159,15 @@
|
||||
</plurals>
|
||||
<string name="app_copyright_old">Βασισμένο στο Loyalty Card Keychain
|
||||
\nπνευματικά δικαιώματα © 2016-2020 Branden Archer</string>
|
||||
<string name="settings_follow_system_orientation">Ακολούθηση συστήματος</string>
|
||||
<string name="settings_card_orientation">Προσανατολισμός οθόνης</string>
|
||||
<string name="settings_portrait_orientation">Πορτραίτο</string>
|
||||
<string name="settings_landscape_orientation">Οριζόντια</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Πνευματικά δικαιώματα © 2019-<xliff:g>%d</xliff:g> Sylvia van Os</string>
|
||||
<string name="settings_lock_on_opening_orientation">Κλείδωμα τρέχοντος προσανατολισμού όταν ανοίγει μία κάρτα</string>
|
||||
<string name="intent_import_card_from_url_share_text">Θέλω να μοιραστώ μία κάρτα μαζί σου</string>
|
||||
<string name="enter_group_name">Εισάγετε όνομα ομάδας</string>
|
||||
<string name="groups">Ομάδες</string>
|
||||
<string name="noGroups">Κάντε κλικ στο + κουμπί ώστε να προσθέσετε ομάδες για κατηγοριοποίηση.</string>
|
||||
<string name="noGroups">Κάντε κλικ στο + κουμπί ώστε να προσθέσετε ομάδες για κατηγοριοποίηση</string>
|
||||
<string name="group_name_already_in_use">Αυτό το όνομα υπάρχει ήδη</string>
|
||||
<string name="group_updated">Η ομάδα ενημερώθηκε</string>
|
||||
<string name="all">Όλες</string>
|
||||
<string name="failedOpeningFileManager">Εγκαταστήστε έναν διαχειριστή αρχείων πρώτα.</string>
|
||||
<string name="failedOpeningFileManager">Αποτυχία εκκίνησης διαχειριστή αρχείων</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Έξοδος χωρίς αποθήκευση;</string>
|
||||
<string name="expiryStateSentenceExpired">Έληξε: <xliff:g>%s</xliff:g></string>
|
||||
<string name="card">Κάρτα</string>
|
||||
@@ -189,7 +181,7 @@
|
||||
<string name="sameAsCardId">Όπως ο κωδικός</string>
|
||||
<string name="exportPassword">Προσθέστε έναν κωδικό για προστασία της εξαγωγής (προαιρετικά)</string>
|
||||
<string name="exportPasswordHint">Εισαγωγή κωδικού</string>
|
||||
<string name="failedGeneratingShareURL">Δεν ήταν δυνατή η δημιουργία κοινοποιούμενου URL. Παρακαλώ αναφέρετε το.</string>
|
||||
<string name="failedGeneratingShareURL">Δεν ήταν δυνατή η δημιουργία κοινοποιούμενου URL</string>
|
||||
<string name="turn_flashlight_on">Ενεργοποίηση φακού</string>
|
||||
<string name="turn_flashlight_off">Απενεργοποίηση φακού</string>
|
||||
<string name="settings_locale">Γλώσσα</string>
|
||||
@@ -242,7 +234,6 @@
|
||||
<string name="icon_header_click_text">Πατήστε παρατεταμένα για επεξεργασία του εικονιδίου</string>
|
||||
<string name="openFrontImageInGalleryApp">Ανοίξτε την εμπρόσθια εικόνα στη συλλογή εικόνων</string>
|
||||
<string name="storageReadPermissionRequired">Δικαίωμα ανάγνωσης του χώρου αποθήκευσης απαραίτητο για αυτήν την ενέργεια…</string>
|
||||
<string name="settings_follow_sensor_orientation">Πάντα σε περιστροφή (αγνοεί τις ρυθμίσεις του συστήματος)</string>
|
||||
<string name="validFromDate">Ισχύει από</string>
|
||||
<string name="anyDate">Οποιαδήποτε ημερομηνία</string>
|
||||
<string name="chooseValidFromDate">Επιλέξτε έγκυρη ημερομηνία από</string>
|
||||
@@ -253,7 +244,7 @@
|
||||
<string name="continue_">Συνέχεια</string>
|
||||
<string name="settings_category_title_privacy">Απόρρητο</string>
|
||||
<string name="addFromPdfFile">Επιλογή αρχείου PDF</string>
|
||||
<string name="add_manually_warning_message">Για ορισμένα καταστήματα, ο γραμμωτός κώδικας διαφέρει από τον αριθμό που αναγράφεται πάνω στην κάρτα. Εξαιτίας αυτού, η εισαγωγή γραμμωτού κώδικα χειροκίνητα ενδέχεται να μην λειτουργεί πάντα. Προτείνεται να σκανάρετε τον γραμμωτό κώδικα με χρήση της κάμερας. Επιθυμείτε να συνεχίσετε ;</string>
|
||||
<string name="add_manually_warning_message">Για ορισμένες κάρτες, ο γραμμωτός κώδικας διαφέρει από τον αριθμό που αναγράφεται πάνω στην κάρτα. Εξαιτίας αυτού, η εισαγωγή γραμμωτού κώδικα χειροκίνητα ενδέχεται να μην λειτουργεί πάντα. Προτείνεται να σαρώσετε τον γραμμωτό κώδικα με χρήση της κάμερας. Επιθυμείτε να συνεχίσετε;</string>
|
||||
<string name="amountParsingFailed">Μη έγκυρο ποσό</string>
|
||||
<string name="show_balance">Προβολή υπολοίπου</string>
|
||||
<string name="action_display_options">Επιλογές εμφάνισης</string>
|
||||
@@ -298,14 +289,20 @@
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Λυπούμαστε, κάτι πήγε στραβά, δοκιμάστε ξανά...</string>
|
||||
<string name="generic_error_please_retry">Συνέβη ένα σφάλμα</string>
|
||||
<string name="unsupportedFile">Το αρχείο δεν υποστηρίζεται</string>
|
||||
<string name="addFromPkpass">Επιλέξτε αρχείο Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="sort_by_valid_from">Έναρξη ισχύος</string>
|
||||
<string name="sort_by_valid_from">Έγκυρα από</string>
|
||||
<string name="setBarcodeWidth">Ορισμός πλάτους γραμμωτού κώδικα</string>
|
||||
<string name="width">Πλάτος</string>
|
||||
<string name="card_list_widget_empty">Αφού προσθέσετε μερικές κάρτες επιβράβευσης στο Catima, θα εμφανιστούν εδώ. Εάν έχετε κάρτες, βεβαιωθείτε ότι δεν είναι όλες αρχειοθετημένες.</string>
|
||||
<string name="card_list_widget_name">Λίστα καρτών</string>
|
||||
<string name="cardWithNumber">Κάρτα <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Κάρτα <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Κάρτα <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Μην περιστρέφετε τη συσκευή, καθώς αυτό θα ακυρώσει την ενέργεια</string>
|
||||
<string name="acra_catima_has_crashed">Λυπούμαστε, αλλά το <xliff:g id="app_name">%s</xliff:g> παρουσίασε σφάλμα. Βοηθήστε μας να διορθώσουμε αυτό το πρόβλημα, στέλνοντάς μας μια αναφορά σφάλματος.</string>
|
||||
<string name="acra_explain_crash">Αν είναι δυνατόν, προσθέστε περισσότερες λεπτομέρειες σχετικά με το τι κάνατε εδώ:</string>
|
||||
<string name="acra_crash_email_subject">Αναφορά σφάλματος <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Ερώτηση για αποστολή αναφορών σφαλμάτων</string>
|
||||
<string name="pref_enable_acra_summary">Όταν είναι ενεργοποιημένη, θα σας ζητηθεί να αναφέρετε ένα σφάλμα όταν συμβεί. Οι αναφορές σφάλματος δεν αποστέλλονται ποτέ αυτόματα.</string>
|
||||
</resources>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="intent_import_card_from_url_share_text">Mi deziras dividi karto kun vi</string>
|
||||
<string name="exportSuccessful">Datumoj eksportitaj</string>
|
||||
<string name="noGroupCards">Ĉi tiu grupo estas malplena</string>
|
||||
<string name="noGiftCards">Klavu la \"+\" butonon por aldoni karton, aŭ importu el la menuo \" ⋮\".</string>
|
||||
<string name="noGiftCards">Klavu la \"+\" butonon por aldoni karton, aŭ importu el la menuo \" ⋮\"</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> elektita</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> elektitaj</item>
|
||||
@@ -213,10 +213,6 @@
|
||||
<string name="cameraPermissionDeniedTitle">Fotilo neatingebla</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Por skani strikodojn Catima bezonas atingorajton al via fotilo. Klaku ĉi tie por ŝanĝi viajn permesajn agordojn.</string>
|
||||
<string name="app_copyright_short">Kopirajto © Sylvia van Os kaj kontribuantoj</string>
|
||||
<string name="settings_card_orientation">Orientiĝo de strikodo</string>
|
||||
<string name="settings_follow_system_orientation">Laŭ la sistemo</string>
|
||||
<string name="settings_portrait_orientation">Vertikala</string>
|
||||
<string name="settings_landscape_orientation">Horizontala</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Bezonata por ke iuj skaniloj funkciu</string>
|
||||
<string name="unsupportedBarcodeType">Ne eblas montri ĉi tiun strikodspecon. Ĝi eble estos subtenata en posta versio de la apo.</string>
|
||||
<string name="importVoucherVaultMessage">Elektu la <i>vouchervault.json</i> eksporton de Voucher Vault kiun vi volas importi.
|
||||
@@ -254,8 +250,6 @@
|
||||
<string name="pageWithNumber">Paĝo <xliff:g>%d</xliff:g></string>
|
||||
<string name="settings_system_locale">Sistemo</string>
|
||||
<string name="app_resources">Liberaj triaj risurcoj: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_follow_sensor_orientation">Ĉiam turni (ignori la agordojn de la sistemo)</string>
|
||||
<string name="settings_lock_on_opening_orientation">Fiksi al la orientiĝo uzata dum malfermado de la karto</string>
|
||||
<string name="importCatimaMessage">Elektu la <i>catima.zip</i> eksporton kiun vi volas importi.
|
||||
\nKreu ĝin unue en la importi/eksporti menuo en alia Catima apo elektante \'eksporti\' tie.</string>
|
||||
<string name="importFidme">Importi el FidMe</string>
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
<string name="exportFailed">No se pudo exportar</string>
|
||||
<string name="noBarcode">Sin código de barra</string>
|
||||
<string name="edit">Editar</string>
|
||||
<string name="noGiftCards">Pulsá el botón + para agregar una tarjeta de regalo, o importá una desde el menú.</string>
|
||||
<string name="noGiftCardsGroup">Crea tarjetas de regalo, y asignales un grupo.</string>
|
||||
<string name="noGiftCards">Pulsá el botón + para agregar una tarjeta de regalo, o importá una desde el menú</string>
|
||||
<string name="noGiftCardsGroup">Crea tarjetas de regalo, y asignales un grupo</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="unstar">Borrar de favoritos</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Crear una copia de seguridad de sus datos, permite moverlos hacia otro dispositivo.</string>
|
||||
<string name="importExportHelp">Crear una copia de seguridad de sus datos, permite moverlos hacia otro dispositivo</string>
|
||||
<string name="importing">Importando…</string>
|
||||
<string name="exporting">Exportando…</string>
|
||||
<string name="save">Guardar</string>
|
||||
@@ -44,12 +44,12 @@
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Borrar <xliff:g>%d</xliff:g> tajeta</item>
|
||||
<item quantity="many">Borrar <xliff:g>%d</xliff:g> tarjetas</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">¿Borrar esta<xliff:g>%d</xliff:g> tarjeta de forma permanente\?</item>
|
||||
<item quantity="many">Borrar estas <xliff:g>%d</xliff:g> tarjetas de forma permanente\?</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="failedOpeningFileManager">Primero instale un administrador de archivos.</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quiero compartirte algunas tarjetas</string>
|
||||
@@ -58,7 +58,6 @@
|
||||
<string name="about_title_fmt">Acerca de <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="editBarcode">Editar código de barras</string>
|
||||
<string name="removeImage">Remover imágen</string>
|
||||
<string name="settings_portrait_orientation">Vertical</string>
|
||||
<string name="takePhoto">Tomar una foto</string>
|
||||
<string name="cameraPermissionDeniedTitle">No se pudo acceder a la cámara</string>
|
||||
<string name="wrongValueForBarcodeType">El valor no es válido para el tipo de código de barras seleccionado</string>
|
||||
@@ -68,7 +67,6 @@
|
||||
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="backImageDescription">Imágen dorsal</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para escanear códigos de barra, Catima necesitará acceso a la cámara. Presione aquí para cambiar la configuración de sus permisos.</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloquear a la orientación utilizada al abrir la tarjeta</string>
|
||||
<string name="app_loyalty_card_keychain">Cartera para Tarjetas de Fidelización</string>
|
||||
<string name="importOptionFilesystemTitle">Importar desde su sistema de archivos</string>
|
||||
<string name="leaveWithoutSaveTitle">Salir</string>
|
||||
@@ -80,11 +78,10 @@
|
||||
<string name="settings_dark_theme">Oscuro</string>
|
||||
<string name="importFidme">Importar desde FidMe</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deshabilita el bloqueo de pantalla mientras se ve una tarjeta</string>
|
||||
<string name="exportOptionExplanation">Los datos serán escritos a una ubicación de tu elección.</string>
|
||||
<string name="exportOptionExplanation">Los datos serán escritos a una ubicación de tu elección</string>
|
||||
<string name="app_copyright_old">Basado en Loyalty Card Keychain
|
||||
\ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="importVoucherVaultMessage">Seleccione su <i>vouchervault.json</i> exportado desde Voucher Vault para importarlo.
|
||||
\nPrimero créelo presionando la opción Exportar en Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Seleccione su exportado desde Voucher Vault para importarlo.\nCréelo presionando la opción Exportar en Voucher Vault.</string>
|
||||
<string name="chooseImportType">Importar datos desde</string>
|
||||
<string name="frontImageDescription">Imágen frontal</string>
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
@@ -102,11 +99,10 @@
|
||||
<string name="settings_keep_screen_on">Mantener la pantalla encendida</string>
|
||||
<string name="setBarcodeId">Establecer valor del código de barras</string>
|
||||
<string name="importCatima">Importar desde Catima</string>
|
||||
<string name="settings_follow_system_orientation">Seguir el sistema</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quiero compartirte una tarjeta</string>
|
||||
<string name="addFromImage">Seleccione una imágen desde la galería</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os y colaboradores</string>
|
||||
<string name="importOptionFilesystemExplanation">Elija un archivo desde su sistema de archivos.</string>
|
||||
<string name="importOptionFilesystemExplanation">Elija un archivo desde su sistema de archivos</string>
|
||||
<string name="exportSuccessful">Datos exportados</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Las aplicaciones aún tendrán que pedir permiso para obtener acceso</string>
|
||||
<string name="editGroup">Edición de grupo: <xliff:g>%s</xliff:g></string>
|
||||
@@ -115,7 +111,6 @@
|
||||
<string name="about">Acerca de</string>
|
||||
<string name="sameAsCardId">Igual que el código</string>
|
||||
<string name="importOptionFilesystemButton">Desde el sistema de archivos</string>
|
||||
<string name="settings_landscape_orientation">Horizontal</string>
|
||||
<string name="privacy_policy">Política de Privacidad</string>
|
||||
<string name="enter_group_name">Ingrese el nombre del grupo</string>
|
||||
<string name="addManually">Ingresar el código de barras manualmente</string>
|
||||
@@ -128,8 +123,7 @@
|
||||
<string name="balance">Balance</string>
|
||||
<string name="cameraPermissionRequired">Se necesita permiso para acceder a la cámara para realizar esta acción…</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permitir que otras aplicaciones accedan a mis datos</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Seleccione su <i>LoyaltyCardKeychain.csv</i> exportado desde Loyalty Card Keychain para importarlo.
|
||||
\nPrimero créelo desde el menu Importar/Exportar de Loyalty Card Keychain al presionar la opción Exportar.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Seleccione su exportado desde Loyalty Card Keychain para importarlo.\nCréelo desde el menu Importar/Exportar de Loyalty Card Keychain al presionar la opción Exportar.</string>
|
||||
<string name="settings_light_theme">Claro</string>
|
||||
<string name="moveDown">Mover hacia abajo</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar desde Loyalty Card Keychain</string>
|
||||
@@ -147,30 +141,27 @@
|
||||
<string name="settings">Configuración</string>
|
||||
<string name="selectBarcodeTitle">Seleccione el código de barras</string>
|
||||
<string name="importSuccessful">Datos importados</string>
|
||||
<string name="settings_card_orientation">Orientación del código de barras</string>
|
||||
<string name="app_libraries">Librerías externas libres: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos externos libres: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Librerías externas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos externos: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="accept">Aceptar</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> tarjeta</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> tarjetas</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> seleccionado</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> seleccionados</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="importCatimaMessage">Seleccione su <i>catima.zip</i> exportado desde Catima para importarlo.
|
||||
\nPrimero créelo desde el menu para Importar/Exportar de otra aplicación de Catima presionando la opción Exportar.</string>
|
||||
<string name="importCatimaMessage">Seleccione su exportado desde Catima para importarlo.\nCréelo desde el menu para Importar/Exportar de otra aplicación de Catima presionando la opción Exportar.</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punto</item>
|
||||
<item quantity="many"><xliff:g>%s</xliff:g> puntos</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="importFidmeMessage">Seleccione su <i>fidme-export-request-xxxxxx.zip</i> exportado de FidMe para importarlo, y a continuación seleccione manualmente los tipos de código de barras.
|
||||
\nPrimero créelo desde su perfil de FidMe al elegir la opción Protección de Datos y presionando Extraer mis datos.</string>
|
||||
<string name="importFidmeMessage">Seleccione su exportado de FidMe para importarlo, y a continuación seleccione manualmente los tipos de código de barras.\nCréelo desde su perfil de FidMe al elegir la opción Protección de Datos y presionando Extraer mis datos.</string>
|
||||
<string name="updateBarcodeQuestionTitle">¿Actualizar el valor del código de barras\?</string>
|
||||
<string name="settings_keep_screen_on_summary">Deshabilita el tiempo de espera de la pantalla mientras se ve una tarjeta</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
@@ -201,17 +192,18 @@
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
<string name="app_contributors">Hecho posible por: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="barcodeLongPressMessage">Solo se puede abrir imágenes en la aplicación de galería</string>
|
||||
<string name="settings_follow_sensor_orientation">Siempre rotar (ignora configuración del sistema)</string>
|
||||
<string name="yes">Si</string>
|
||||
<string name="no">No</string>
|
||||
<string name="passwordRequired">Por favor ingresa la contraseña</string>
|
||||
<string name="failedGeneratingShareURL">No se pudo generar URL compartible. Por favor reporte esto.</string>
|
||||
<string name="passwordRequired">Ingresa la contraseña</string>
|
||||
<string name="failedGeneratingShareURL">No se pudo generar URL compartible</string>
|
||||
<string name="sort_by_name">Nombre</string>
|
||||
<string name="sort_by">Ordenar por</string>
|
||||
<string name="reverse">en orden inverso</string>
|
||||
<string name="sort_by_most_recently_used">Más Recientemente Usado</string>
|
||||
<string name="sort_by_most_recently_used">Más recientemente usado</string>
|
||||
<string name="settings_use_volume_keys_navigation">Cambiar tarjetas usando los botones de volumen</string>
|
||||
<string name="sort_by_valid_from">Válido Desde</string>
|
||||
<string name="sort_by_expiry">Vencimiento</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Usá los botones de volumen para cambiar la tarjeta que se muestra</string>
|
||||
<string name="cardWithNumberAndLocale">Tarjeta <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="cardWithNumber">Tarjeta <xliff:g>%d</xliff:g></string>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Añadir</string>
|
||||
<string name="noGiftCards">Haz clic en el botón + para añadir una tarjeta, o importa desde el menú ⋮.</string>
|
||||
<string name="noGiftCards">Haz clic en el botón + para añadir una tarjeta, o importa desde el menú ⋮</string>
|
||||
<string name="storeName">Nombre</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="cardId">ID de tarjeta</string>
|
||||
@@ -20,7 +20,7 @@
|
||||
<string name="noCardExistsError">No se ha podido encontrar esa tarjeta</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Respaldar tus datos permite trasladarlos a otro dispositivo.</string>
|
||||
<string name="importExportHelp">Respaldar tus datos permite trasladarlos a otro dispositivo</string>
|
||||
<string name="importSuccessfulTitle">Importado</string>
|
||||
<string name="importFailedTitle">Falló la importación</string>
|
||||
<string name="importFailed">No se ha podido realizar la importación</string>
|
||||
@@ -30,7 +30,7 @@
|
||||
<string name="importing">Importando…</string>
|
||||
<string name="exporting">Exportando…</string>
|
||||
<string name="importOptionFilesystemTitle">Importar desde el sistema de archivos</string>
|
||||
<string name="importOptionFilesystemExplanation">Elegir un archivo concreto del sistema de archivos.</string>
|
||||
<string name="importOptionFilesystemExplanation">Elegir un archivo concreto del sistema de archivos</string>
|
||||
<string name="importOptionFilesystemButton">Desde el sistema de archivos</string>
|
||||
<string name="about">Información</string>
|
||||
<string name="app_license">Programa libre con «copyleft», disponible en virtud de la licencia GPLv3+</string>
|
||||
@@ -47,13 +47,13 @@
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="app_copyright_old">Basado en Loyalty Card Keychain
|
||||
\nderechos de autor © 2016-2020 de Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Los datos se guardarán en la ubicación que elija.</string>
|
||||
<string name="exportOptionExplanation">Los datos se guardarán en la ubicación que elija</string>
|
||||
<string name="failedParsingImportUriError">No se pudo procesar el URI de importación</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="barcodeType">Tipo de código de barras</string>
|
||||
<string name="noMatchingGiftCards">Sin resultados. Intente cambiar su búsqueda.</string>
|
||||
<string name="action_search">Buscar</string>
|
||||
<string name="noGroups">Pulse en el botón + para añadir grupos de categorización.</string>
|
||||
<string name="noGroups">Pulse en el botón + para añadir grupos de categorización</string>
|
||||
<string name="starImage">Estrella favorita</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="selectBarcodeTitle">Seleccionar el código de barras</string>
|
||||
@@ -67,7 +67,7 @@
|
||||
<string name="leaveWithoutSaveTitle">Salir</string>
|
||||
<string name="moveDown">Bajar</string>
|
||||
<string name="moveUp">Subir</string>
|
||||
<string name="failedOpeningFileManager">Instale un gestor de archivos primero.</string>
|
||||
<string name="failedOpeningFileManager">No se puedo abrir un gestor de archivos</string>
|
||||
<string name="deleteConfirmationGroup">¿Quiere eliminar el grupo\?</string>
|
||||
<string name="all">Todo</string>
|
||||
<string name="star">Añadir a favoritos</string>
|
||||
@@ -86,18 +86,14 @@
|
||||
<string name="expiryStateSentenceExpired">Expirado: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Expira: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Derechos de autor © 2019-<xliff:g>%d</xliff:g> Sylvia van Os y colaboradores</string>
|
||||
<string name="app_resources">Recursos de terceros libres: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas de terceros libres: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="importCatimaMessage">Seleccione su <i>catima.zip</i> exportado desde Catima para importarlo.
|
||||
\nCréalo primero desde el menú Importar/Exportar de otra app de Catima al presionar Exportar desde allí.</string>
|
||||
<string name="importFidmeMessage">Seleccione su <i>fidme-export-request-xxxxxx.zip</i> exportado desde FidMe para importar, y luego escoja los tipos de códigos de barras manualmente.
|
||||
\nCréalo primero desde tu perfil de FidMe eligiendo Protección de datos y pulsa Extraer mis datos.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Seleccione su <i>LoyaltyCardKeychain.csv</i> exportado desde Loyalty Card Keychain para importarlo.
|
||||
\nCréalo primero desde el menú Importar/Exportar en Loyalty Card Keychain pulsando Exportar desde allí.</string>
|
||||
<string name="importVoucherVaultMessage">Seleccione su <i>vouchervault.json</i> exportado desde Voucher Vault para importarlo.
|
||||
\nCréalo pulsando primero Exportar en Voucher Vault.</string>
|
||||
<string name="failedGeneratingShareURL">No se ha podido generar una URL compartible. Por favor, informe de ello.</string>
|
||||
<string name="passwordRequired">Por favor, introduzca la contraseña</string>
|
||||
<string name="app_resources">Recursos de terceros: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas de terceros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="importCatimaMessage">Seleccione su exportado desde Catima para importarlo.\nCréalo primero desde el menú Importar/Exportar de otra app de Catima al presionar Exportar desde allí.</string>
|
||||
<string name="importFidmeMessage">Seleccione su exportado desde FidMe para importar, y luego escoja los tipos de códigos de barras manualmente.\nCréalo desde tu perfil de FidMe eligiendo Protección de datos y pulsa Extraer mis datos.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Seleccione su exportado desde Loyalty Card Keychain para importarlo.\nCréalo desde el menú Importar/Exportar en Loyalty Card Keychain pulsando Exportar desde allí.</string>
|
||||
<string name="importVoucherVaultMessage">Seleccione su exportado desde Voucher Vault para importarlo.\nCréalo pulsando Exportar en Voucher Vault.</string>
|
||||
<string name="failedGeneratingShareURL">No se ha podido generar una URL compartible</string>
|
||||
<string name="passwordRequired">Introduzca la contraseña</string>
|
||||
<string name="updateBarcodeQuestionText">Ha cambiado el código. ¿Desea actualizar también el código de barras para usar el mismo valor\?</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quiero compartirte algunas tarjetas</string>
|
||||
<string name="setBackImage">Establecer imagen anversa</string>
|
||||
@@ -163,20 +159,15 @@
|
||||
<string name="settings_system_locale">Sistema</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="noGroupCards">Este grupo está vacío</string>
|
||||
<string name="settings_landscape_orientation">Horizontal</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punto</item>
|
||||
<item quantity="many"><xliff:g>%s</xliff:g> puntos</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> puntos</item>
|
||||
</plurals>
|
||||
<string name="barcodeImageDescriptionWithType">Imagen <xliff:g>%s</xliff:g> código de barras</string>
|
||||
<string name="settings_card_orientation">Orientación de pantalla</string>
|
||||
<string name="settings_portrait_orientation">Formato vertical</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="group_updated">Grupo actualizado</string>
|
||||
<string name="noGiftCardsGroup">Crea algunas tarjetas y luego asígnelas al grupo aquí.</string>
|
||||
<string name="settings_follow_system_orientation">Segue el sistema</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloqueo a la orientación utilizada al abrir la tarjeta</string>
|
||||
<string name="noGiftCardsGroup">Crea algunas tarjetas y luego asígnelas al grupo aquí</string>
|
||||
<string name="sort_by_most_recently_used">Lo más usado recientemente</string>
|
||||
<string name="sort_by_expiry">Caducidad</string>
|
||||
<string name="version_history">Historial de versiones</string>
|
||||
@@ -215,7 +206,7 @@
|
||||
<string name="archived">Tarjeta archivada</string>
|
||||
<string name="unarchived">Tarjeta desarchivada</string>
|
||||
<string name="exportPassword">Establezca una contraseña para proteger su exportación (opcional)</string>
|
||||
<string name="failedLaunchingPhotoPicker">No se ha encontró una aplicación de galería compatible</string>
|
||||
<string name="failedLaunchingPhotoPicker">No se encontró una aplicación de galería compatible</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> tarjeta (archivada)<xliff:g id="archivedCount">%2$d</xliff:g></item>
|
||||
<item quantity="many"><xliff:g>%1$d</xliff:g> tarjetas (archivadas)<xliff:g id="archivedCount">%2$d</xliff:g></item>
|
||||
@@ -275,7 +266,6 @@
|
||||
<string name="addWithoutBarcode">Añadir una tarjeta sin código de barras</string>
|
||||
<string name="field_must_not_be_empty">Este campo no debe estar vacío</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Girar siempre (ignora la configuración del sistema)</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="add_manually_warning_title">Se recomienda escanear</string>
|
||||
<string name="add_manually_warning_message">En algunas tiendas, el valor del código de barras difiere del número escrito en la tarjeta. Por este motivo, es posible que la introducción manual del código de barras no siempre funcione. Se recomienda encarecidamente escanear el código de barras con la cámara. ¿Aún desea continuar?</string>
|
||||
@@ -305,12 +295,20 @@
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Lo sentimos, algo salió mal, por favor inténtelo de nuevo...</string>
|
||||
<string name="generic_error_please_retry">Algo salió mal</string>
|
||||
<string name="unsupportedFile">Este archivo no es compatible</string>
|
||||
<string name="addFromPkpass">Seleccione un archivo Passbook (.pkpass)</string>
|
||||
<string name="addFromPkpass">Seleccione un archivo Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="sort_by_valid_from">Válido desde</string>
|
||||
<string name="setBarcodeWidth">Establecer el ancho del código de barras</string>
|
||||
<string name="width">Ancho</string>
|
||||
<string name="card_list_widget_name">Lista de tarjetas</string>
|
||||
<string name="card_list_widget_empty">Después de añadir algunas tarjetas de fidelidad en Catima, aparecerán aquí. Si tienes tarjetas, asegúrate de que no estén archivadas.</string>
|
||||
<string name="cardWithNumber">Tarjeta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Tarjeta <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Por favor, no rote el dispositivo, ya que esto cancelará la acción</string>
|
||||
<string name="acra_catima_has_crashed">Lo sentimos, pero <xliff:g id="app_name">%s</xliff:g> ha fallado. Por favor, ayúdenos a resolver esta incidencia enviándonos un reporte del error.</string>
|
||||
<string name="acra_explain_crash">Si es posible, por favor añada más detalles sobre lo que estaba haciendo aquí:</string>
|
||||
<string name="acra_crash_email_subject">Reporte del fallo <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Solicitar envío de reportes de fallos</string>
|
||||
<string name="pref_enable_acra_summary">Cuando está activado, se le pedirá que informe sobre un fallo cuando ocurra. Los informes de fallo nunca se envían automáticamente.</string>
|
||||
</resources>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> valitud</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> valitud</item>
|
||||
</plurals>
|
||||
<string name="noGiftCardsGroup">Lisa mõned kaardid ja siis jaga nad gruppidesse.</string>
|
||||
<string name="noGiftCardsGroup">Lisa mõned kaardid ja siis jaga nad gruppidesse</string>
|
||||
<string name="noMatchingGiftCards">Tulemusi pole. Palun proovi muuta otsingut.</string>
|
||||
<string name="storeName">Nimi</string>
|
||||
<string name="note">Märkus</string>
|
||||
@@ -32,7 +32,7 @@
|
||||
<string name="addCardTitle">Lisa kaart</string>
|
||||
<string name="scanCardBarcode">Skaneeri triipkoodi</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="noGiftCards">Kaardi lisamiseks klõpsi + pluss nuppu või impordi ⋮ikooniga menüüst.</string>
|
||||
<string name="noGiftCards">Kaardi lisamiseks klõpsi + pluss nuppu või impordi ⋮ikooniga menüüst</string>
|
||||
<string name="action_search">Otsi</string>
|
||||
<string name="unstar">Eemalda lemmikute hulgast</string>
|
||||
<string name="cancel">Katkesta</string>
|
||||
@@ -46,9 +46,6 @@
|
||||
<string name="settings_dark_theme">Tume kujundus</string>
|
||||
<string name="thumbnailDescription">Pisipilt</string>
|
||||
<string name="settings_theme">Kujundus</string>
|
||||
<string name="settings_card_orientation">Ekraanipaigutuse suund</string>
|
||||
<string name="settings_follow_sensor_orientation">Alati pööra (eira süsteemset paigutust)</string>
|
||||
<string name="settings_landscape_orientation">Rõhtvaade</string>
|
||||
<string name="settings_display_barcode_max_brightness">Tee ekraan eredamaks</string>
|
||||
<string name="app_license">Copyleft-tüüpi autoriõiguste alusel loodud avatud lähtekoodiga tarkvara, mis on avaldatud GPLv3+ all</string>
|
||||
<string name="settings_keep_screen_on">Hoia ekraan sisselülitatuna</string>
|
||||
@@ -56,10 +53,10 @@
|
||||
<string name="noCardsMessage">Esmalt lisa kaart</string>
|
||||
<string name="barcodeImageDescriptionWithType">Kaardi <xliff:g>%s</xliff:g> tiipkood</string>
|
||||
<string name="noCardExistsError">Seda kaarti ei leidu</string>
|
||||
<string name="failedParsingImportUriError">Impordi aadressi töötlemine ei õnnestunud</string>
|
||||
<string name="failedParsingImportUriError">Importimise aadressi töötlemine ei õnnestunud</string>
|
||||
<string name="importExport">Import/eksport</string>
|
||||
<string name="exportName">Ekspordi</string>
|
||||
<string name="importExportHelp">Andmete varundamine võimaldab sul neid tõsta mõnda teise seadmesse.</string>
|
||||
<string name="importExportHelp">Andmete varundamine võimaldab sul neid tõsta mõnda teise seadmesse</string>
|
||||
<string name="importSuccessfulTitle">Imporditud</string>
|
||||
<string name="importFailedTitle">Import ei õnnestunud</string>
|
||||
<string name="exportSuccessfulTitle">Eksporditud</string>
|
||||
@@ -74,26 +71,23 @@
|
||||
<string name="permissionReadCardsDescription">loe kõiki oma Catima kaarte koos nende üksikasjadega, sealhulgas märkuste ja piltidega</string>
|
||||
<string name="cameraPermissionDeniedTitle">Puudub ligipääs kaamerale</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Triipkoodide skaneerimiseks vajab Catima õigust asutada kaamerat. Õiguste andmiseks klõpsi siin.</string>
|
||||
<string name="exportOptionExplanation">Andmed salvestame sinu valitud asukohta.</string>
|
||||
<string name="exportOptionExplanation">Andmed salvestame sinu valitud asukohta</string>
|
||||
<string name="importOptionFilesystemTitle">Impordi failisüsteemist</string>
|
||||
<string name="importOptionFilesystemExplanation">Vali vajalik impordifail failisüsteemist.</string>
|
||||
<string name="importOptionFilesystemExplanation">Vali vajalik impordifail failisüsteemist</string>
|
||||
<string name="importOptionFilesystemButton">Vali failisüsteemist</string>
|
||||
<string name="about">Rakenduse teave</string>
|
||||
<string name="app_copyright_short">Autoriõigused © Sylvia van Os ja kaasautorid</string>
|
||||
<string name="about_title_fmt">Teave <xliff:g id="app_name">%s</xliff:g> kohta</string>
|
||||
<string name="debug_version_fmt">Versioon: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Kolmandate osapoolte avatud lähtekoodiga teegid: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Kolmandate osapoolte avatud lähtekoodiga materjalid: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Kolmandate osapoolte teegid: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Kolmandate osapoolte materjalid: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="starImage">Lemmikut märkiv täht</string>
|
||||
<string name="settings">Seadistused</string>
|
||||
<string name="settings_system_theme">Süsteemi kujundus</string>
|
||||
<string name="settings_follow_system_orientation">Järgi süsteemset paigutust</string>
|
||||
<string name="settings_portrait_orientation">Püstvaade</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kaardivaate avamisel lukusta paigutus</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">See on vajalik mõnede skännerite toimimiseks</string>
|
||||
<string name="expiryStateSentenceExpired">Aegus: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_allow_content_provider_read_summary">Selle valiku sisselülitamisel peavad muud rakendused lisaks küsima õigust vaadata kaartide andmeid</string>
|
||||
<string name="noGroups">Kui soovid sarnaseid kaarte omavahel liigitada siis + pluss nupuga lisa kaardigruppe.</string>
|
||||
<string name="noGroups">Kui soovid sarnaseid kaarte omavahel liigitada, siis + pluss nupuga lisa kaardigruppe</string>
|
||||
<string name="group_name_is_empty">Kaardigrupi nimi ei saa jääda tühjaks</string>
|
||||
<string name="groupsList">Grupid: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
@@ -117,10 +111,10 @@
|
||||
<string name="expiryDate">Aegumise kuupäev</string>
|
||||
<string name="never">Mitte kunagi</string>
|
||||
<string name="showMoreInfo">Näita teavet</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Importimiseks vali oma <i>LoyaltyCardKeychain.csv</i> Loyalty Card Keychaini ekspordifail. \nSellise faili saad teha rakendusest Loyalty Card Keychain valides menüüst Import/Eksport valiku Eksport.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Importimiseks vali Loyalty Card Keychaini ekspordifail. \nSellise faili saad teha rakendusest Loyalty Card Keychain valides menüüst Import/Eksport valiku Eksport.</string>
|
||||
<string name="unsupportedBarcodeType">Sellist triipkoodi tüüpi pole veel võimalik kuvada, aga mõnes hilisemas rakenduse versioonis võib see võimalik olla.</string>
|
||||
<string name="wrongValueForBarcodeType">Väärtus ei sobi selle triipkoodi tüübiga</string>
|
||||
<string name="passwordRequired">Palun sisesta salasõna</string>
|
||||
<string name="passwordRequired">Sisesta salasõna</string>
|
||||
<string name="updateBarcodeQuestionTitle">Kas uuendame triipkoodi väärtust?</string>
|
||||
<string name="yes">Jah</string>
|
||||
<string name="no">Ei</string>
|
||||
@@ -163,9 +157,9 @@
|
||||
<string name="group_updated">Kaardigrupp on uuendatud</string>
|
||||
<string name="deleteConfirmationGroup">Kas kustutame grupi?</string>
|
||||
<string name="all">Kõik</string>
|
||||
<string name="failedOpeningFileManager">Esmalt paigalda failihaldur.</string>
|
||||
<string name="failedOpeningFileManager">Failihalduri avamine ei õnnestunud</string>
|
||||
<string name="intent_import_card_from_url_share_text">Ma soovin sinuga jagada ühte oma kliendikaarti</string>
|
||||
<string name="editGroup">Muudame gruppi: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Grupp on muutmisel: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Aegub: <xliff:g>%s</xliff:g></string>
|
||||
<string name="moveBarcodeToTopOfScreen">Tõsta triipkood ekraani ülaossa</string>
|
||||
<string name="noBarcodeFound">Ühtegi triipkoodi ei leidunud</string>
|
||||
@@ -178,13 +172,13 @@
|
||||
<string name="privacy_policy">Andmekaitsepõhimõtted</string>
|
||||
<string name="accept">Nõustu</string>
|
||||
<string name="importCatima">Impordi Catima varukoopiast</string>
|
||||
<string name="importCatimaMessage">Importimiseks vali varem tehtud <i>catima.zip</i> Catima ekspordifail. \nSellise faili saad luua mõnes teises seadmes olevast Catima rakendusest Import/Eksport menüüst valikust Eksport.</string>
|
||||
<string name="importCatimaMessage">Importimiseks vali varem tehtud Catima ekspordifail. \nSellise faili saad luua mõnes teises seadmes olevast Catima rakendusest Import/Eksport menüüst valikust Eksport.</string>
|
||||
<string name="importFidme">Impordi FidMe varukoopiast</string>
|
||||
<string name="importFidmeMessage">Importimiseks vali oma <i>fidme-export-request-xxxxxx.zip</i>, mille oled FidMe rakendusest eksportinud. Peale importi määra triipkoodi tüübid käsistsi. \nSellise faili loomiseks vali oma FidMe profiilist eelistuse Andmekaitse-Paki lahti.</string>
|
||||
<string name="importFidmeMessage">Importimiseks vali fail, mille oled FidMe rakendusest eksportinud. Peale importi määra triipkoodi tüübid käsistsi. \nSellise faili loomiseks vali oma FidMe profiilist eelistuse Andmekaitse-Paki lahti.</string>
|
||||
<string name="importLoyaltyCardKeychain">Impordi rakendusest Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Importimise valikud</string>
|
||||
<string name="importVoucherVault">Impordi rakendusest Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Importimiseks vali oma <i>vouchervault.json</i> Voucher Vaulti ekspordifail. \nSellise faili saad teha rakenduses Voucher Vault menüüvalikust Eksport.</string>
|
||||
<string name="importVoucherVaultMessage">Importimiseks vali oma Voucher Vaulti ekspordifail. \nSellise faili saad teha rakenduses Voucher Vault menüüvalikust Eksport.</string>
|
||||
<string name="barcodeId">Triipkoodi väärtus</string>
|
||||
<string name="sameAsCardId">Sama, kui ID</string>
|
||||
<string name="setBarcodeId">Sisesta triipkoodi väärtus</string>
|
||||
@@ -198,7 +192,7 @@
|
||||
<string name="updateBarcodeQuestionText">Sa muutsid ID väärtust? Kas sa soovid ka triipkoodiväärtuse vastavalt uuendada?</string>
|
||||
<string name="exportPassword">Sinu eksporditavate andmete turvamiseks palun sisesta salasõna (kui soovid seda)</string>
|
||||
<string name="exportPasswordHint">Sisesta salasõna</string>
|
||||
<string name="failedGeneratingShareURL">Jagatava võrguaadressi loomine ei õnnestunud. Palun anna sellest meile teada.</string>
|
||||
<string name="failedGeneratingShareURL">Jagatava võrguaadressi loomine ei õnnestunud</string>
|
||||
<string name="turn_flashlight_on">Lülita taskulamp sisse</string>
|
||||
<string name="turn_flashlight_off">Lülita taskulamp välja</string>
|
||||
<string name="settings_locale">Keel</string>
|
||||
@@ -232,7 +226,7 @@
|
||||
<string name="unarchive">Eemalda arhiivist</string>
|
||||
<string name="archived">Kaart on arhiveeritud</string>
|
||||
<string name="unarchived">Kaart on arhiivist eemaldatud</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ei õnnestunud leida toetatud galeriirakendust</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ei õnnestunud leida toetatud pildivalijat</string>
|
||||
<string name="previousCard">Eelmine</string>
|
||||
<string name="nextCard">Järgmine</string>
|
||||
<string name="failedToOpenUrl">Esmalt paigalda veebibrauser</string>
|
||||
@@ -245,8 +239,8 @@
|
||||
<string name="switchToFrontImage">Vaata esikülje pilti</string>
|
||||
<string name="switchToBackImage">Vaata tagakülje pilti</string>
|
||||
<string name="switchToBarcode">Vaata triipkoodi</string>
|
||||
<string name="openFrontImageInGalleryApp">Ava esikülje pilt galeriirakenduses</string>
|
||||
<string name="openBackImageInGalleryApp">Ava tagakülje pilt galeriirakenduses</string>
|
||||
<string name="openFrontImageInGalleryApp">Ava esikülje pilt pildivalijas</string>
|
||||
<string name="openBackImageInGalleryApp">Ava tagakülje pilt pildivalijas</string>
|
||||
<string name="setBarcodeHeight">Määra triipkoodi kõrgus</string>
|
||||
<string name="donate">Toeta rahaliselt</string>
|
||||
<string name="icon_header_click_text">Pisipildi muutmiseks vajuta pikalt</string>
|
||||
@@ -269,7 +263,7 @@
|
||||
<string name="field_must_not_be_empty">Väli ei tohi olla tühi</string>
|
||||
<string name="manually_enter_barcode_instructions">Sisesta sinu kaardil kuvatav tunnusnumber või -tekst ja klõpsi triipkoodi, millelaadset kuvatakse kaardil.</string>
|
||||
<string name="add_manually_warning_title">Soovitame, et skaneerid triipkoodi</string>
|
||||
<string name="add_manually_warning_message">Mõnede poodide ja äride puhul triipkoodi väärtus erineb kaardile kirjutatud numbrist. Seetõttu ei pruugi triipkoodi käsitsi lisamine alati toimida. Me tungivalt soovitame, et pigem skaneerid triipkoodi kaameraga. Kas sa siiski soovid jätkata?</string>
|
||||
<string name="add_manually_warning_message">Mõnede poodide ja äride puhul triipkoodi väärtus erineb kaardile kirjutatud numbrist. Seetõttu ei pruugi triipkoodi käsitsi lisamine alati toimida. Me soovitame, et pigem skaneerid triipkoodi kaameraga. Kas sa siiski soovid jätkata?</string>
|
||||
<string name="continue_">Jätka</string>
|
||||
<string name="spend">Kuluta</string>
|
||||
<string name="receive">Võta vastu</string>
|
||||
@@ -295,7 +289,7 @@
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Vabandust, midagi läks nüüd viltu, palun proovi uuesti...</string>
|
||||
<string name="generic_error_please_retry">Tekkis viga</string>
|
||||
<string name="unsupportedFile">See fail pole toetatud</string>
|
||||
<string name="addFromPkpass">Vali Passbooki fail (.pkpass / .pkpasses)</string>
|
||||
<string name="sort_by_valid_from">Kehtib alates</string>
|
||||
@@ -304,5 +298,11 @@
|
||||
<string name="card_list_widget_name">Kaartide loend</string>
|
||||
<string name="card_list_widget_empty">Kui lisad Catimasse kliendikaarte, siis saavad nad olema nähtavad siin. Kui sul on kaardid lisatud, siis palun kontrolli, et nad kõik poleks arhiveeritud.</string>
|
||||
<string name="cardWithNumber">Kaart: <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kaart: <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Kaart: <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Palun ära pööra nutiseadet - see katkestab tegevuse</string>
|
||||
<string name="acra_catima_has_crashed">Vabandus, aga <xliff:g id="app_name">%s</xliff:g> on kokku jooksnud. Kui saadad meile veakirjelduse, siis aitad seda viga parandada.</string>
|
||||
<string name="acra_explain_crash">Kui vähegi võimalik, siis palun kirjelda, mida sa antud hetkel tegid:</string>
|
||||
<string name="acra_crash_email_subject">Kokkujooksmise aruanne: <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Küsi luba kokkujooksmiste aruannete saatmiseks</string>
|
||||
<string name="pref_enable_acra_summary">Kui eelistus on kasutusel, siis rakendus küsib sinult luba veateate saatmiseks. Seda ei tehta iialgi automaatselt.</string>
|
||||
</resources>
|
||||
|
||||
@@ -90,9 +90,6 @@
|
||||
<string name="settings_theme">تم</string>
|
||||
<string name="settings_system_theme">سیستم</string>
|
||||
<string name="settings_dark_theme">تیره</string>
|
||||
<string name="settings_card_orientation">جهت صفحه نمایش</string>
|
||||
<string name="settings_follow_sensor_orientation">همیشه قابل چرخش باشد (بدون در نظر گرفتن تنظیمات سیستم)</string>
|
||||
<string name="settings_portrait_orientation">عمودی</string>
|
||||
<string name="settings_keep_screen_on">روشن نگه داشتن صفحه نمایش</string>
|
||||
<string name="settings_keep_screen_on_summary">غیرفعال سازی مهلت صفحه نمایش هنگام مشاهده کارت</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">جلوگیری از قفل شدن صفحه</string>
|
||||
@@ -100,12 +97,10 @@
|
||||
<string name="settings_allow_content_provider_read_summary">برنامه ها باید برای گرفتن مجوز درخواست کنند</string>
|
||||
<string name="importSuccessful">داده وارد شد</string>
|
||||
<string name="thumbnailDescription">تصویر کوچک</string>
|
||||
<string name="settings_landscape_orientation">افقی</string>
|
||||
<string name="settings_light_theme">روشن</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">برای کارکرد برخی اسکنر ها ضروری است</string>
|
||||
<string name="settings_display_barcode_max_brightness">روشنایی صفحه</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">جلوگیری از قفل شدن صفحه هنگام مشاهده کارت</string>
|
||||
<string name="settings_follow_system_orientation">پیروی از سیستم</string>
|
||||
<string name="intent_import_card_from_url_share_text">میخواهم یک کارت را با تو به اشتراک بگذارم</string>
|
||||
<string name="settings_use_volume_keys_navigation">جابجایی میان کارت ها با استفاده از کلید های صدا</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">از کلید های صدا برای تغیر کارت نمایشی استفاده کنید</string>
|
||||
@@ -135,7 +130,6 @@
|
||||
<string name="importLoyaltyCardKeychain">وارد کردن از جاکلیدی کارت وفاداری</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">فایل خروجی <i>LoyaltyCardKeychain.csv</i> خود را از جاسوئیچی کارت وفاداری برای وارد کردن انتخاب کنید.\nآن را از منوی وارد/صادرکردن در جاسوئیچی کارت وفاداری با فشردن دکمه صادرکردن ابتدا ایجاد کنید.</string>
|
||||
<string name="app_resources">منابع آزاد از طرف شخص ثالث: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_lock_on_opening_orientation">قفل به جهت استفاده شده در هنگام بازکردن کارت</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> کارت</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> کارت</item>
|
||||
|
||||
@@ -197,14 +197,10 @@
|
||||
<string name="rate_this_app">Arvostele tämä sovellus</string>
|
||||
<string name="noGiftCardsGroup">Lisää kortteja ja lisää ne ryhmään täällä.</string>
|
||||
<string name="barcodeImageDescriptionWithType">Kuva <xliff:g>%s</xliff:g> viivakoodi</string>
|
||||
<string name="settings_follow_system_orientation">Seuraa järjestelmää</string>
|
||||
<string name="settings_portrait_orientation">Pysty</string>
|
||||
<string name="settings_landscape_orientation">Vaaka</string>
|
||||
<string name="unarchived">Kortti on poistettu arkistosta</string>
|
||||
<string name="unarchive">Poista arkistosta</string>
|
||||
<string name="archived">Kortti arkistoitu</string>
|
||||
<string name="failedLaunchingPhotoPicker">Tuettua galleriasovellusta ei löytynyt</string>
|
||||
<string name="settings_card_orientation">Näytön suunta</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kortti (<xliff:g id="archivedCount">%2$d</xliff:g> arkistoitu)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> korttia (<xliff:g id="archivedCount">%2$d</xliff:g> arkistoitu)</item>
|
||||
@@ -223,7 +219,6 @@
|
||||
<string name="currentBalanceSentence">Nykyinen saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Uusi saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="cameraPermissionDeniedTitle">Ei pääsyä kameraan</string>
|
||||
<string name="settings_lock_on_opening_orientation">Lukitse suunta, kun korttia avataan</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Viivakoodien lukeminen vaatii, että Catimalla on käyttöoikeus kameraan. Napauta tästä muuttaaksesi oikeuksia.</string>
|
||||
<string name="updateBalance">Päivitä saldo</string>
|
||||
<string name="cameraPermissionRequired">Tämä toiminto vaatii oikeuden käyttää kameraa…</string>
|
||||
@@ -269,7 +264,6 @@
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="balanceParsingFailed">Virheellinen saldo</string>
|
||||
<string name="view_online">Näytä verkossa</string>
|
||||
<string name="settings_follow_sensor_orientation">Kierrä aina (ohittaa järjestelmän asetukset)</string>
|
||||
<string name="continue_">Jatka</string>
|
||||
<string name="add_manually_warning_title">Skannausta suositellaan</string>
|
||||
<string name="spend">Kuluta</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Ajouter</string>
|
||||
<string name="noGiftCards">Cliquez sur le bouton + plus pour ajouter une carte, ou importez les depuis le menu ⋮.</string>
|
||||
<string name="noGiftCards">Cliquez sur le bouton + plus pour ajouter une carte, ou importez les depuis le menu ⋮</string>
|
||||
<string name="storeName">Nom</string>
|
||||
<string name="note">Notes</string>
|
||||
<string name="cardId">Numéro</string>
|
||||
@@ -18,9 +18,9 @@
|
||||
<string name="cardShortcut">Raccourci de carte</string>
|
||||
<string name="noCardsMessage">Ajoutez d’abord une carte</string>
|
||||
<string name="noCardExistsError">Impossible de trouver cette carte</string>
|
||||
<string name="importExport">Importer/Exporter</string>
|
||||
<string name="importExport">Importer/exporter</string>
|
||||
<string name="exportName">Exporter</string>
|
||||
<string name="importExportHelp">La sauvegarde de vos données permet de les déplacer sur un autre appareil.</string>
|
||||
<string name="importExportHelp">La sauvegarde de vos données permet de les déplacer sur un autre appareil</string>
|
||||
<string name="importSuccessfulTitle">Importé</string>
|
||||
<string name="importFailedTitle">Échec de l’import</string>
|
||||
<string name="importFailed">Impossible d’effectuer l’importation</string>
|
||||
@@ -30,7 +30,7 @@
|
||||
<string name="importing">Import …</string>
|
||||
<string name="exporting">Export …</string>
|
||||
<string name="importOptionFilesystemTitle">Importer depuis le système de fichiers</string>
|
||||
<string name="importOptionFilesystemExplanation">Choisissez le fichier à importer.</string>
|
||||
<string name="importOptionFilesystemExplanation">Choisissez le fichier à importer depuis le système de fichiers</string>
|
||||
<string name="importOptionFilesystemButton">Système de fichiers</string>
|
||||
<string name="about">À propos</string>
|
||||
<string name="app_license">Logiciel libre à copyleft, sous licence GPLv3+</string>
|
||||
@@ -49,7 +49,7 @@
|
||||
<string name="settings_theme">Thème</string>
|
||||
<string name="app_copyright_old">Basé sur Loyalty Card Keychain
|
||||
\ncopyright © 2016-2020 Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Les données seront exportées vers l’emplacement de votre choix.</string>
|
||||
<string name="exportOptionExplanation">Les données seront exportées vers l’emplacement de votre choix</string>
|
||||
<string name="failedParsingImportUriError">Impossible d’analyser l’URI d’importation</string>
|
||||
<string name="share">Partager</string>
|
||||
<string name="barcodeType">Type de code-barres</string>
|
||||
@@ -60,13 +60,13 @@
|
||||
<string name="starImage">Étoile favorite</string>
|
||||
<string name="deleteConfirmationGroup">Supprimer le groupe \?</string>
|
||||
<string name="all">Tous</string>
|
||||
<string name="noGroups">Cliquez sur le bouton + pour ajouter des groupes à catégoriser.</string>
|
||||
<string name="noGroups">Cliquez sur le bouton + pour ajouter des groupes à catégoriser</string>
|
||||
<string name="groups">Groupes</string>
|
||||
<string name="enter_group_name">Entrez le nom du groupe</string>
|
||||
<string name="noBarcode">Aucun code-barres</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Quitter sans enregistrer \?</string>
|
||||
<string name="leaveWithoutSaveTitle">Quitter</string>
|
||||
<string name="failedOpeningFileManager">Installez d’abord un gestionnaire de fichiers.</string>
|
||||
<string name="failedOpeningFileManager">Échec de l\'ouverture du gestionnaire de fichiers</string>
|
||||
<string name="addManually">Entrez le code-barres manuellement</string>
|
||||
<string name="moveDown">Descendre</string>
|
||||
<string name="moveUp">Monter</string>
|
||||
@@ -94,17 +94,13 @@
|
||||
<string name="expiryStateSentence">Expire le : <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Empêcher le verrouillage de l’écran</string>
|
||||
<string name="settings_keep_screen_on">Garder l’écran allumé</string>
|
||||
<string name="importVoucherVaultMessage">Sélectionnez votre exportation <i>vouchervault.json</i> de Voucher Vault à importer.
|
||||
\nCréez-la en appuyant d’abord sur Exporter dans Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Sélectionnez votre exportation de Voucher Vault à importer. \nCréez-la en appuyant sur Exporter dans Voucher Vault.</string>
|
||||
<string name="importVoucherVault">Importer depuis Voucher Vault</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Sélectionnez votre exportation <i>LoyaltyCardKeychain.csv</i> à partir de Loyalty Card Keychain pour l’importer.
|
||||
\nCréez-la à partir du menu Importer/Exporter du Loyalty Card Keychain en appuyant d’abord sur Exporter.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Sélectionnez votre exportation à partir de Loyalty Card Keychain à importer.\nCréez-la à partir du menu Importer/Exporter du Loyalty Card Keychain en appuyant sur Exporter.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importer depuis Loyalty Card Keychain</string>
|
||||
<string name="importFidmeMessage">Sélectionnez votre exportation <i>fidme-export-request-xxxxxx.zip</i> de FidMe pour l’importer, puis sélectionnez manuellement les types de codes-barres.
|
||||
\nCréez-la à partir de votre profil FidMe en choisissant Protection des données, puis en cliquant sur Extraire mes données d’abord.</string>
|
||||
<string name="importFidmeMessage">Sélectionnez votre exportation de FidMe pour l’importer, puis sélectionnez manuellement les types de codes-barres. \nCréez-la à partir de votre profil FidMe en choisissant Protection des données, puis en cliquant sur Extraire mes données.</string>
|
||||
<string name="importFidme">Importer depuis FidMe</string>
|
||||
<string name="importCatimaMessage">Sélectionnez votre exportation <i>catima.zip</i> depuis Catima à importer.
|
||||
\nCréez-la à partir du menu Importer/Exporter d’une autre application Catima en appuyant d’abord sur Exporter.</string>
|
||||
<string name="importCatimaMessage">Sélectionnez votre exportation <i>catima.zip</i> depuis Catima à importer.\nCréez-la à partir du menu Importer/Exporter d’une autre application Catima en appuyant sur Exporter.</string>
|
||||
<string name="importCatima">Importer depuis Catima</string>
|
||||
<string name="addFromImage">Sélectionner dans la galerie</string>
|
||||
<string name="errorReadingImage">Impossible de lire l’image</string>
|
||||
@@ -114,8 +110,8 @@
|
||||
<string name="barcodeId">Valeur du code-barres</string>
|
||||
<string name="unsupportedBarcodeType">Ce type de code-barres ne peut pas encore être affiché. Il sera peut-être pris en charge dans une version ultérieure de l’application.</string>
|
||||
<string name="wrongValueForBarcodeType">La valeur n’est pas valide pour le type de code-barres sélectionné</string>
|
||||
<string name="app_resources">Ressources tierces libres : <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliothèques tierces libres : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Ressources tierces : <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliothèques tierces : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Je veux partager des cartes avec vous</string>
|
||||
<string name="updateBarcodeQuestionText">Vous avez changé l’identifiant. Voulez-vous également mettre à jour le code-barres pour utiliser la même valeur \?</string>
|
||||
<string name="no">Non</string>
|
||||
@@ -128,10 +124,10 @@
|
||||
<string name="photos">Photos</string>
|
||||
<string name="backImageDescription">Image du verso</string>
|
||||
<string name="frontImageDescription">Image du recto</string>
|
||||
<string name="passwordRequired">Veuillez entrer le mot de passe</string>
|
||||
<string name="passwordRequired">Renseigner le mot de passe</string>
|
||||
<string name="turn_flashlight_off">Éteindre la lampe de poche</string>
|
||||
<string name="turn_flashlight_on">Allumer la lampe de poche</string>
|
||||
<string name="failedGeneratingShareURL">Impossible de générer une URL partageable. Veuillez signaler ceci.</string>
|
||||
<string name="failedGeneratingShareURL">Impossible de générer une URL partageable</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> sélectionnée</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> sélectionnées</item>
|
||||
@@ -182,7 +178,7 @@
|
||||
<string name="exportPassword">Définissez un mot de passe pour protéger vos exportations (facultatif)</string>
|
||||
<string name="exportPasswordHint">Entrez le mot de passe</string>
|
||||
<string name="editGroup">Modification du groupe : <xliff:g> %s </xliff:g></string>
|
||||
<string name="noGiftCardsGroup">Créez des cartes, puis affectez-les au groupe ici.</string>
|
||||
<string name="noGiftCardsGroup">Créez des cartes, puis affectez-les au groupe ici</string>
|
||||
<string name="group_edit">Modifier le groupe</string>
|
||||
<string name="group_name_already_in_use">Nom de groupe déjà utilisé</string>
|
||||
<string name="group_updated">Groupe mis à jour</string>
|
||||
@@ -201,17 +197,12 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Fond noir pour le thème sombre</string>
|
||||
<string name="include_if_asking_support">Si vous voulez demander de l\'aide, incluez les informations suivantes :</string>
|
||||
<string name="settings_card_orientation">Orientation de l\'écran</string>
|
||||
<string name="settings_follow_system_orientation">Suivre le système</string>
|
||||
<string name="settings_portrait_orientation">Portrait</string>
|
||||
<string name="settings_landscape_orientation">Paysage</string>
|
||||
<string name="settings_lock_on_opening_orientation">Garder l\'orientation utilisée pour ouvrir la carte</string>
|
||||
<string name="duplicateCard">Dupliquer</string>
|
||||
<string name="archive">Archiver</string>
|
||||
<string name="unarchive">Désarchiver</string>
|
||||
<string name="archived">Carte archivée</string>
|
||||
<string name="unarchived">Carte désarchivée</string>
|
||||
<string name="failedLaunchingPhotoPicker">Impossible de trouver une application de galerie prise en charge</string>
|
||||
<string name="failedLaunchingPhotoPicker">Impossible de trouver une application de selection d\'image prise en charge</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> carte (<xliff:g id="archivedCount">%2$d</xliff:g> archivée)</item>
|
||||
<item quantity="many"><xliff:g>%1$d</xliff:g> cartes (<xliff:g id="archivedCount">%2$d</xliff:g> archivées)</item>
|
||||
@@ -241,8 +232,8 @@
|
||||
<string name="switchToFrontImage">Passer à l\'image avant</string>
|
||||
<string name="switchToBackImage">Passer à l\'image arrière</string>
|
||||
<string name="switchToBarcode">Passer au code barre</string>
|
||||
<string name="openFrontImageInGalleryApp">Ouvrir l\'image avant dans l\'application galerie</string>
|
||||
<string name="openBackImageInGalleryApp">Ouvrir l\'image arrière dans l\'application galerie</string>
|
||||
<string name="openFrontImageInGalleryApp">Ouvrir l\'image du recto dans l\'application de visualisation des images</string>
|
||||
<string name="openBackImageInGalleryApp">Ouvrir l\'image du verso dans l\'application de visualisation des images</string>
|
||||
<string name="setBarcodeHeight">Définir la hauteur du code-barres</string>
|
||||
<string name="donate">Faire un don</string>
|
||||
<string name="icon_header_click_text">Appuyez longuement pour modifier la vignette</string>
|
||||
@@ -275,10 +266,9 @@
|
||||
<string name="addWithoutBarcode">Ajouter une carte sans code-barres</string>
|
||||
<string name="field_must_not_be_empty">Le champ ne peut pas être vide</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Toujours pivoter (ignore les paramètres du système)</string>
|
||||
<string name="add_manually_warning_title">Scan recommandé</string>
|
||||
<string name="continue_">Continuer</string>
|
||||
<string name="add_manually_warning_message">Pour certains magasins, la valeur du code-barres diffère du numéro inscrit sur la carte. Pour cette raison, la saisie manuelle d’un code-barres peut ne pas toujours fonctionner. Il est fortement recommandé de scanner le code-barres avec votre appareil photo. Voulez-vous toujours continuer ?</string>
|
||||
<string name="add_manually_warning_message">Pour certaines cartes, la valeur du code-barres diffère du numéro inscrit sur la carte. Pour cette raison, la saisie manuelle d’un code-barres peut ne pas toujours fonctionner. Il est recommandé de scanner le code-barres avec votre appareil photo. Voulez-vous toujours continuer ?</string>
|
||||
<string name="spend">Dépenser</string>
|
||||
<string name="receive">Reçevoir</string>
|
||||
<string name="amountParsingFailed">Montant Invalide</string>
|
||||
@@ -307,12 +297,18 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPkpass">Sélectionner un fichier Cartes / Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Ce fichier n\'est pas supporté</string>
|
||||
<string name="generic_error_please_retry">Désolé, un problème est survenu, veuillez réessayer...</string>
|
||||
<string name="generic_error_please_retry">Une erreur est survenue</string>
|
||||
<string name="sort_by_valid_from">Valide à partir du</string>
|
||||
<string name="width">Largeur</string>
|
||||
<string name="setBarcodeWidth">Définir la largeur du code-barres</string>
|
||||
<string name="card_list_widget_name">Liste des cartes</string>
|
||||
<string name="card_list_widget_empty">Après avoir ajouter des cartes de fidélité dans Catima, elles apparaîtront ici. Si vous avez des cartes, assurez-vous qu\'elles ne soient pas archivées.</string>
|
||||
<string name="cardWithNumber">Carte <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Carte <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Carte <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Merci de ne pas tourner l\'écran, car cela annulera l\'action</string>
|
||||
<string name="acra_catima_has_crashed">Nous sommes désolé, <xliff:g id="app_name">%s</xliff:g> a planté. Merci de nous aider à corriger ce souci en nous envoyant un rapport d\'erreur.</string>
|
||||
<string name="acra_explain_crash">Si possible, merci d\'ajouter plus de détails sur ce que vous étiez en train de faire :</string>
|
||||
<string name="acra_crash_email_subject">Rapport de plantage de <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Demander pour envoyer des rapports de plantage</string>
|
||||
<string name="pref_enable_acra_summary">Quand activé, il vous sera demandé d\'envoyer un rapport de plantage en cas de plantage. Les rapports de plantage ne sont jamais envoyés automatiquement.</string>
|
||||
</resources>
|
||||
|
||||
3
app/src/main/res/values-fy/strings.xml
Normal file
3
app/src/main/res/values-fy/strings.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
@@ -2,8 +2,8 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="action_add">Engadir</string>
|
||||
<string name="noGiftCards">Preme no botón + para engadir unha tarxeta ou desde o menú ⋮.</string>
|
||||
<string name="noGiftCardsGroup">Crear tarxetas e despois engádeas aquí ao grupo.</string>
|
||||
<string name="noGiftCards">Preme no botón + para engadir unha tarxeta ou desde o menú ⋮</string>
|
||||
<string name="noGiftCardsGroup">Crea tarxetas e despois engádeas aquí ao grupo</string>
|
||||
<string name="noMatchingGiftCards">Sen resultados. Intenta cambiar a busca.</string>
|
||||
<string name="storeName">Nome</string>
|
||||
<string name="barcodeType">Tipo de código de barras</string>
|
||||
@@ -22,16 +22,16 @@
|
||||
<string name="ok">OK</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="sendLabel">Enviar…</string>
|
||||
<string name="editCardTitle">Editar Tarxeta</string>
|
||||
<string name="addCardTitle">Engadir Tarxeta</string>
|
||||
<string name="scanCardBarcode">Escanear Código de Barras</string>
|
||||
<string name="cardShortcut">Atallo á Tarxeta</string>
|
||||
<string name="editCardTitle">Editar tarxeta</string>
|
||||
<string name="addCardTitle">Engadir tarxeta</string>
|
||||
<string name="scanCardBarcode">Escanear código de barras</string>
|
||||
<string name="cardShortcut">Atallo á tarxeta</string>
|
||||
<string name="noCardsMessage">Primeiro engade a tarxeta</string>
|
||||
<string name="barcodeImageDescriptionWithType">Imaxe do código de barras de <xliff:g>%s</xliff:g></string>
|
||||
<string name="failedParsingImportUriError">Non se puido procesar o URI de importación</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Facendo copia de apoio dos datos podes movelos a outro dispositivo.</string>
|
||||
<string name="importExportHelp">Ao facer copia de apoio dos datos podes movelos a outro dispositivo</string>
|
||||
<string name="importSuccessfulTitle">Importados</string>
|
||||
<string name="importFailedTitle">Fallou a importación</string>
|
||||
<string name="exportSuccessfulTitle">Exportado</string>
|
||||
@@ -42,11 +42,11 @@
|
||||
<string name="exporting">Exportando…</string>
|
||||
<string name="storageReadPermissionRequired">O preciso o permiso de lectura para realizar esta acción…</string>
|
||||
<string name="cameraPermissionRequired">O preciso o acceso á cámara para realizar esta acción…</string>
|
||||
<string name="permissionReadCardsLabel">Ler Tarxetas Catima</string>
|
||||
<string name="permissionReadCardsLabel">Ler tarxetas Catima</string>
|
||||
<string name="permissionReadCardsDescription">ler as tarxetas Catima e os seus detalles, incluíndo notas e imaxes</string>
|
||||
<string name="cameraPermissionDeniedTitle">Non puido acceder á cámara</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Catima precisa acceso á cámara para escanear códigos de barras. Toca aquí para cambiar os axustes do permiso.</string>
|
||||
<string name="exportOptionExplanation">Os datos vanse escribir na localización que elixas.</string>
|
||||
<string name="exportOptionExplanation">Os datos vanse escribir na localización que elixas</string>
|
||||
<string name="importOptionFilesystemTitle">Importar desde o sistema de ficheiros</string>
|
||||
<string name="about">Sobre</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os e colaboradoras</string>
|
||||
@@ -55,15 +55,11 @@
|
||||
<string name="app_license">Software Libre con Copyleft, licenza GPLv3+</string>
|
||||
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas libres alleas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos alleos libres: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Elixir Código de barras</string>
|
||||
<string name="app_libraries">Bibliotecas alleas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos alleos: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Elixir código de barras</string>
|
||||
<string name="settings">Axustes</string>
|
||||
<string name="settings_theme">Decorado</string>
|
||||
<string name="settings_follow_sensor_orientation">Rotar sempre (ignora o axuste do sistema)</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisaxe</string>
|
||||
<string name="settings_lock_on_opening_orientation">Fixar a orientación ao abrir a tarxeta</string>
|
||||
<string name="settings_display_barcode_max_brightness">Brillo da pantalla</string>
|
||||
<string name="settings_keep_screen_on_summary">Evita que se apague a pantalla cando se ve unha tarxeta</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Evitar bloqueo da pantalla</string>
|
||||
@@ -78,7 +74,7 @@
|
||||
<string name="enter_group_name">Escribe o nome do grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
<string name="group_edit">Editar Grupo</string>
|
||||
<string name="noGroups">Preme no botón + para engadir grupos por categorías.</string>
|
||||
<string name="noGroups">Preme no botón + para engadir grupos por categorías</string>
|
||||
<string name="noGroupCards">O grupo está baleiro</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> tarxeta</item>
|
||||
@@ -93,7 +89,7 @@
|
||||
<string name="addManually">Escribir manualmente o código</string>
|
||||
<string name="addFromImage">Elixe unha imaxe desde a galería</string>
|
||||
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editando o Grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editando o grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Caducidade: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Caducou: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
@@ -115,16 +111,16 @@
|
||||
<string name="balanceParsingFailed">Saldo non válido</string>
|
||||
<string name="chooseImportType">Importar datos desde</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy">Política de Privacidade</string>
|
||||
<string name="privacy_policy">Directiva de privacidade</string>
|
||||
<string name="accept">Aceptar</string>
|
||||
<string name="importCatima">Importar desde Catima</string>
|
||||
<string name="importCatimaMessage">Selecciona o ficheiro de exportación <i>catima.zip</i> para importalo.\nCréao no menú Importar/Exportar noutra app Catima premendo en Exportar.</string>
|
||||
<string name="importCatimaMessage">Selecciona o ficheiro de exportación para importalo.\nCréao no menú Importar/Exportar noutra app Catima premendo en Exportar.</string>
|
||||
<string name="importFidme">Importar desde FidMe</string>
|
||||
<string name="importFidmeMessage">Elixe o ficheiro exportado <i>fidme-export-request-xxxxxx.zip</i> desde FidMe, e despois elixe manualmente o tipo de código de barras.\nCréao no teu perfil FidMe en Protección de Datos e despois premendo en Extraer os meus datos.</string>
|
||||
<string name="importFidmeMessage">Elixe o ficheiro exportado desde FidMe, e despois elixe manualmente o tipo de código de barras.\nCréao no teu perfil FidMe en Protección de Datos e despois premendo en Extraer os meus datos.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar desde Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Elixe o ficheiro de exportación <i>LoyaltyCardKeychain.csv</i> desde Loyalty Card Keychain \nCréao no menú Importar/Exportar en Loyalty Card Keychain premendo en Exportar.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Elixe o ficheiro de exportación desde Loyalty Card Keychain \nCréao no menú Importar/Exportar en Loyalty Card Keychain premendo en Exportar.</string>
|
||||
<string name="importVoucherVault">Importar desde Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecciona o ficheiro de exportación <i>vouchervault.json</i> desde Voucher Vault. \nCréao premendo en Exportar en Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Selecciona o ficheiro de exportación desde Voucher Vault.\nCréao premendo en Exportar en Voucher Vault.</string>
|
||||
<string name="barcodeId">Valor do código de barras</string>
|
||||
<string name="sameAsCardId">Igual que o ID</string>
|
||||
<string name="setBarcodeId">Establecer valor do código de barras</string>
|
||||
@@ -142,7 +138,7 @@
|
||||
<string name="updateBarcodeQuestionText">Cambiaches o ID. Queres cambiar tamén o código de barras para que use o mesmo valor?</string>
|
||||
<string name="yes">Si</string>
|
||||
<string name="no">Non</string>
|
||||
<string name="failedGeneratingShareURL">Non se puido crear un URL para compartir. Informa sobre o fallo.</string>
|
||||
<string name="failedGeneratingShareURL">Non se puido crear un URL para compartir</string>
|
||||
<string name="turn_flashlight_on">Acender o flash</string>
|
||||
<string name="turn_flashlight_off">Apagar o flash</string>
|
||||
<string name="settings_oled_dark">Fondo en negro puro para o decorado escuro</string>
|
||||
@@ -206,8 +202,8 @@
|
||||
<string name="height">Altura</string>
|
||||
<string name="switchToFrontImage">Cambiar á imaxe frontal</string>
|
||||
<string name="switchToBackImage">Cambiar á imaxe posterior</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imaxe frontal na app de galería</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imaxe posterior na app de galería</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imaxe frontal no visor de imaxes</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imaxe posterior no visor de imaxes</string>
|
||||
<string name="setBarcodeHeight">Establecer altura do código de barras</string>
|
||||
<string name="icon_header_click_text">Pulsación longa para editar a miniatura</string>
|
||||
<string name="show_name_below_image_thumbnail">Mostrar nome debaixo da miniatura</string>
|
||||
@@ -232,7 +228,7 @@
|
||||
<string name="field_must_not_be_empty">O campo non pode quedar baleiro</string>
|
||||
<string name="manually_enter_barcode_instructions">Escribe o número ID ou texto na túa tarxeta e preme no código de barras que se pareza ao da túa tarxeta.</string>
|
||||
<string name="add_manually_warning_title">Recomendamos escanear</string>
|
||||
<string name="add_manually_warning_message">Nalgunhas tendas o código de barras é diferente ao número escrito na tarxeta. Debido a isto escribir o código de barras manualmente non sempre funciona. Recomendamos que escanees o código de barras coa cámara. Queres continuar igualmente?</string>
|
||||
<string name="add_manually_warning_message">Nalgunhas tarxetas o código de barras é diferente ao número escrito na tarxeta. Debido a isto escribir o código de barras manualmente non sempre funciona. Recomendamos que escanees o código de barras coa cámara. Queres continuar igualmente?</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Recibir</string>
|
||||
@@ -261,26 +257,24 @@
|
||||
<string name="noCardExistsError">Non atopamos esa tarxeta</string>
|
||||
<string name="settings_light_theme">Claro</string>
|
||||
<string name="importOptionFilesystemButton">Desde sistema de ficheiros</string>
|
||||
<string name="importOptionFilesystemExplanation">Elixe un ficheiro concreto no sistema de ficheiros.</string>
|
||||
<string name="importOptionFilesystemExplanation">Elixe un ficheiro concreto no sistema de ficheiros</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Estrela de favorita</string>
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_follow_system_orientation">Seguir ao sistema</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Preciso para que algúns escáneres funcionen</string>
|
||||
<string name="settings_keep_screen_on">Manter pantalla acendida</string>
|
||||
<string name="settings_dark_theme">Escuro</string>
|
||||
<string name="settings_card_orientation">Orientación da pantalla</string>
|
||||
<string name="group_updated">Grupo actualizado</string>
|
||||
<string name="all">Todo</string>
|
||||
<string name="deleteConfirmationGroup">Eliminar grupo?</string>
|
||||
<string name="failedOpeningFileManager">Primeiro instala un xestor de ficheiros.</string>
|
||||
<string name="failedOpeningFileManager">Non puido abrir un xestor de ficheiros</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
<string name="passwordRequired">Escribe o contrasinal</string>
|
||||
<string name="exportPassword">Establece un contrasinal para protexer a exportación (optativo)</string>
|
||||
<string name="exportPasswordHint">Escribe o contrasinal</string>
|
||||
<string name="setIcon">Establecer miniatura</string>
|
||||
<string name="failedLaunchingPhotoPicker">Non se atopa unha app de galería compatible</string>
|
||||
<string name="failedLaunchingPhotoPicker">Non se atopa un selector de imaxes compatible</string>
|
||||
<string name="importCards">Importar tarxetas</string>
|
||||
<string name="validFromDate">Válida desde</string>
|
||||
<string name="switchToBarcode">Cambiar ao código de barras</string>
|
||||
@@ -296,12 +290,18 @@
|
||||
<string name="errorReadingFile">Non se puido ler o ficheiro</string>
|
||||
<string name="unsupportedFile">Este ficheiro non é compatible</string>
|
||||
<string name="addFromPkpass">Selecciona un ficheiro Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="generic_error_please_retry">Sentímolo, pero algo fallou, inténtao outra vez…</string>
|
||||
<string name="generic_error_please_retry">Houbo un fallo</string>
|
||||
<string name="sort_by_valid_from">Válido desde</string>
|
||||
<string name="width">Anchura</string>
|
||||
<string name="setBarcodeWidth">Establecer anchura do código de barras</string>
|
||||
<string name="card_list_widget_name">Lista de tarxetas</string>
|
||||
<string name="card_list_widget_empty">Aquí aparecerán as tarxetas fidelidade cando as engadas a Catima. Se tes tarxetas mira que non estean arquivadas.</string>
|
||||
<string name="cardWithNumber">Tarxeta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Tarxeta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Tarxeta <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Por favor non rotes o dispositivo, porque isto cancelará a acción</string>
|
||||
<string name="acra_catima_has_crashed">Lamentámolo, pero <xliff:g id="app_name">%s</xliff:g> fallou. Axúdanos a resolver a incidencia enviando un informe co erro.</string>
|
||||
<string name="acra_explain_crash">Se é posible engade algún detalle máis como o que estabas a facer:</string>
|
||||
<string name="acra_crash_email_subject">Informe do fallo de <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Solicitar informar sobre os fallos</string>
|
||||
<string name="pref_enable_acra_summary">Se está activo, váiseche pedir informar sobre os fallos cando acontezan. Os informes nunca se envían automaticamente.</string>
|
||||
</resources>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<string name="importSuccessfulTitle">आयात हुआ</string>
|
||||
<string name="importFailed">आयात नहीं हो सका</string>
|
||||
<string name="action_search">खोज</string>
|
||||
<string name="noGiftCardsGroup">कुछ कार्ड बनाएँ, और फिर उन्हें यहाँ समूह करें।</string>
|
||||
<string name="noGiftCardsGroup">कुछ कार्ड बनाएँ, और फिर उन्हें यहाँ समूह करें</string>
|
||||
<string name="noMatchingGiftCards">कोई परिणाम नहीं। अपनी खोज बदलने का प्रयास करें।</string>
|
||||
<string name="deleteTitle">कार्ड हटाएं</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
@@ -33,8 +33,8 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> इन कार्डों को हटाएं</item>
|
||||
</plurals>
|
||||
<string name="importFailedTitle">आयात विफल</string>
|
||||
<string name="exportOptionExplanation">डाटा आपके पसंद के स्थान पर लिखा जाएगा।</string>
|
||||
<string name="importOptionFilesystemExplanation">फाईल सिस्टम से एक विशिष्ट फाईल चुनें।</string>
|
||||
<string name="exportOptionExplanation">डाटा आपके पसंद के स्थान पर लिखा जाएगा</string>
|
||||
<string name="importOptionFilesystemExplanation">फाईल सिस्टम से एक विशिष्ट फाईल चुनें</string>
|
||||
<string name="app_copyright_old">लोयलटी कार्ड कीचैंन पर आधारित\nकॉपीराइट © 2016–2020 ब्रांडन आर्चर</string>
|
||||
<string name="action_add">जोड़ें</string>
|
||||
<string name="edit">संपादित करें</string>
|
||||
@@ -53,10 +53,6 @@
|
||||
<string name="settings_dark_theme">गाढ़ा (काला)</string>
|
||||
<string name="settings">सेटिंग्स</string>
|
||||
<string name="settings_system_theme">सिस्टम</string>
|
||||
<string name="settings_card_orientation">स्क्रीन अभिमुखता</string>
|
||||
<string name="settings_landscape_orientation">क्षैतिज (लैंडस्केप)</string>
|
||||
<string name="settings_follow_system_orientation">सिस्टम का पालन करें</string>
|
||||
<string name="settings_portrait_orientation">लंबवत (पोट्रैट)</string>
|
||||
<string name="settings_display_barcode_max_brightness">स्क्रीन की चमक बढ़ाएं</string>
|
||||
<string name="settings_keep_screen_on">स्क्रीन को चालू रखें</string>
|
||||
<string name="cameraPermissionDeniedTitle">कैमरे की अनुमति नहीं मिली</string>
|
||||
@@ -66,15 +62,14 @@
|
||||
<string name="noBarcode">बारकोड नहीं है</string>
|
||||
<string name="scanCardBarcode">बारकोड स्कैन करें</string>
|
||||
<string name="cardShortcut">कार्ड का सरल उपाय (शॉर्टकट)</string>
|
||||
<string name="noGiftCards">कार्ड जोड़ने के लिए + प्लस बटन पर क्लिक करें, या ⋮ मेनू से आयात करें।</string>
|
||||
<string name="importExportHelp">आपके डाटा को बैकअप करना उसे दूसरे डिवाइस में भेजना संभव कर देता है।</string>
|
||||
<string name="noGiftCards">कार्ड जोड़ने के लिए + प्लस बटन पर क्लिक करें, या ⋮ मेनू से आयात करें</string>
|
||||
<string name="importExportHelp">आपके डाटा को बैकअप करना उसे दूसरे डिवाइस में भेजना संभव कर देता है</string>
|
||||
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g> का बारकोड</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">स्क्रीन को लॉक होने से रोकें</string>
|
||||
<string name="settings_lock_on_opening_orientation">कार्ड खोलते समय प्रयुक्त अभिमुख अवस्था को प्रतिबंधित करें</string>
|
||||
<string name="intent_import_card_from_url_share_text">मैं तुम्हें एक कार्ड भेजना चाहता हूँ</string>
|
||||
<string name="selectBarcodeTitle">बारकोड चुनें</string>
|
||||
<string name="thumbnailDescription">छोटा चित्र</string>
|
||||
<string name="noGroups">+ दबा कर समूहों को वर्गीकरण के लिए चुनें।</string>
|
||||
<string name="noGroups">+ दबा कर समूहों को वर्गीकरण के लिए चुनें</string>
|
||||
<string name="sameAsCardId">आई डी से निरंतर</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">में तुम्हें कुछ कार्ड्स भेजना चाहता हूँ</string>
|
||||
<string name="importSuccessful">डाटा आयात किया गया</string>
|
||||
@@ -106,7 +101,7 @@
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> पॉइंट</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> पॉइंट्स</item>
|
||||
</plurals>
|
||||
<string name="importCatimaMessage">आयात करने के लिए, <i>catima.zip</i> फाइल को चुने जो की Catima से निर्यात किया गया था. \nदूसरे Catima ऍप के आयात/निर्यात मेनू से निर्यात बटन दबाकर, पहले catima.zip फाइल को बनाये।</string>
|
||||
<string name="importCatimaMessage">आयात करने के लिए Catima से अपना निर्यात चुनें।\nइसे किसी अन्य Catima ऐप के आयात/निर्यात मेनू से \"निर्यात\" दबाकर बनाएँ।</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> चयनितहुए</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> चयनित किए गए</item>
|
||||
@@ -118,19 +113,19 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> कार्डो</item>
|
||||
</plurals>
|
||||
<string name="group_updated">समूह अपडेट किया गया</string>
|
||||
<string name="failedOpeningFileManager">पहले एक फाइल मैनेजर इनस्टॉल करें.</string>
|
||||
<string name="failedOpeningFileManager">फ़ाइल मैनेजर खोलने में विफल</string>
|
||||
<string name="leaveWithoutSaveConfirmation">बिना सुरक्षित (सेव)किये छोड़े?</string>
|
||||
<string name="addManually">बारकोड को मैन्युअल रूप से दर्ज करें</string>
|
||||
<string name="editGroup">समूह संपादन: <xliff:g>%s</xliff:g></string>
|
||||
<string name="points">पॉइंट्स</string>
|
||||
<string name="chooseImportType">यहाँ से डेटा का आयात करें</string>
|
||||
<string name="privacy_policy">निजता नीति</string>
|
||||
<string name="privacy_policy">गोपनीयता नीति</string>
|
||||
<string name="importCatima">कैटिमा से आयात करें</string>
|
||||
<string name="app_license">कॉपीलेफ्ट लिबर सॉफ्टवेयर, GPLv3+ लाइसेंस प्राप्त</string>
|
||||
<string name="about_title_fmt"><xliff:g id="app_name">%s</xliff:g> के बारे में</string>
|
||||
<string name="debug_version_fmt">संस्करण: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="cameraPermissionRequired">इस क्रिया के लिए कैमरा की अनुमति चाहिए…</string>
|
||||
<string name="permissionReadCardsLabel">केटीमा कार्ड्स पढ़ें</string>
|
||||
<string name="permissionReadCardsLabel">कैटीमा कार्ड्स पढ़ें</string>
|
||||
<string name="storageReadPermissionRequired">इस क्रिया के लिए स्टोरेज पढ़ने की अनुमति आवश्यक है…</string>
|
||||
<string name="permissionReadCardsDescription">अपने केटीमा कार्ड और सभी विवरण, सहित नोट्स और छवियों को पढ़ें</string>
|
||||
<string name="balanceParsingFailed">अमान्य शेष राशि</string>
|
||||
@@ -154,8 +149,8 @@
|
||||
<string name="balanceSentence">शेष राशि: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">कार्ड देखते समय स्क्रीन का लॉक हो जाना बंद करें</string>
|
||||
<string name="expiryStateSentenceExpired">समय अवधि समाप्त: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_libraries">लिब्रे तृतीय-पक्ष लाइब्रेरी: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">लिब्रे तृतीय-पक्ष संसाधन: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">तृतीय-पक्ष लाइब्रेरी: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">तृतीय-पक्ष संसाधन: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_keep_screen_on_summary">कार्ड देखते समय स्क्रीन टाइमआउट बंद करें</string>
|
||||
<string name="removeImage">छवि हटाएं</string>
|
||||
<string name="setBackImage">पीछे की छवि सेट करें</string>
|
||||
@@ -188,7 +183,7 @@
|
||||
<string name="settings_catima_theme">कैटिमा</string>
|
||||
<string name="options">विकल्प</string>
|
||||
<string name="settings_magenta_theme">मैजेंटा</string>
|
||||
<string name="failedGeneratingShareURL">साझा करने योग्य URL जनरेट नहीं किया जा सकता. कृपया इसकी रिपोर्ट करें।</string>
|
||||
<string name="failedGeneratingShareURL">साझा करने योग्य URL जनरेट नहीं किया जा सकता. कृपया इसकी रिपोर्ट करें</string>
|
||||
<string name="sort_by_most_recently_used">सबसे हाल ही में उपयोग किया गया</string>
|
||||
<string name="settings_theme_color">थीम का रंग</string>
|
||||
<string name="settings_sky_blue_theme">आसमानी नीला (हल्का नीला)</string>
|
||||
@@ -214,9 +209,8 @@
|
||||
<string name="app_contributors">इनके द्वारा संभव बनाया गया: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">क्रमबद्ध करें</string>
|
||||
<string name="show_note">नोट दिखाएँ</string>
|
||||
<string name="settings_follow_sensor_orientation">हमेशा घुमाएँ (सिस्टम सेटिंग्स को अनदेखा करें)</string>
|
||||
<string name="importFidmeMessage">आयात करने के लिए FidMe से अपना <i>fidme-export-request-xxxxxx.zip</i> निर्यात चुनें, और बाद में मैन्युअल रूप से बारकोड प्रकार चुनें।\nडेटा सुरक्षा चुनकर और फिर पहले मेरा डेटा निकालें दबाकर इसे अपनी FidMe प्रोफ़ाइल से बनाएं।</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">आयात करने के लिए लॉयल्टी कार्ड कीचेन से अपना <i>LoyaltyCardKeychen.csv</i> निर्यात चुनें।\nपहले वहां एक्सपोर्ट दबाकर लॉयल्टी कार्ड कीचेन में आयात/निर्यात मेनू से इसे बनाएं।</string>
|
||||
<string name="importFidmeMessage">आयात करने के लिए FidMe से अपना निर्यात चुनें, और उसके बाद मैन्युअल रूप से बारकोड प्रकार चुनें।\nडेटा सुरक्षा चुनकर और फिर मेरा डेटा निकालें दबाकर इसे अपनी FidMe प्रोफ़ाइल से बनाएँ।</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">आयात करने के लिए Loyalty Card Keychain से अपना निर्यात चुनें।\nइसे लॉयल्टी कार्ड कीचेन में आयात/निर्यात मेनू से निर्यात बटन दबाकर बनाएँ।</string>
|
||||
<string name="updateBarcodeQuestionText">आपने आईडी बदल दी. क्या आप समान मान का उपयोग करने के लिए बारकोड को भी अपडेट करना चाहते हैं?</string>
|
||||
<string name="exportPassword">अपने निर्यात की सुरक्षा के लिए एक पासवर्ड सेट करें (वैकल्पिक)</string>
|
||||
<string name="turn_flashlight_off">टॉर्च बंद करें</string>
|
||||
@@ -224,7 +218,7 @@
|
||||
<string name="showMoreInfo">जानकारी दिखाएँ</string>
|
||||
<string name="updateBalance">शेष राशि अद्यतन (अपडेट) करें</string>
|
||||
<string name="failedToRetrieveImageFile">छवि फ़ाइल पुनः प्राप्त करने में विफल</string>
|
||||
<string name="version_history">संस्करण इतिहास</string>
|
||||
<string name="version_history">वर्जन तिहास</string>
|
||||
<string name="archive">पुरालेख/संग्रहित (Archive)</string>
|
||||
<string name="archived">कार्ड संग्रहीत (Archived)</string>
|
||||
<string name="barcodeLongPressMessage">गैलरी ऐप में केवल छवियां ही खोली जा सकती हैं</string>
|
||||
@@ -244,10 +238,10 @@
|
||||
<string name="manually_enter_barcode_instructions">अपने कार्ड पर आईडी नंबर या टेक्स्ट दर्ज करें और अपने कार्ड पर मौजूद बारकोड की तरह दिखने वाले बारकोड को दबाएं।</string>
|
||||
<string name="welcome">कैटिमा में आपका स्वागत है</string>
|
||||
<string name="previousCard">पिछला</string>
|
||||
<string name="failedLaunchingPhotoPicker">कोई समर्थित गैलरी ऐप नहीं मिल सका</string>
|
||||
<string name="failedLaunchingPhotoPicker">समर्थित छवि चयनकर्ता नहीं मिल सका</string>
|
||||
<string name="reverse">...उल्टे क्रम में</string>
|
||||
<string name="height">ऊँचाई</string>
|
||||
<string name="importVoucherVaultMessage">आयात करने के लिए वाउचर वॉल्ट से अपना <i>vouchervault.json</i> निर्यात चुनें।\nसबसे पहले वाउचर वॉल्ट में एक्सपोर्ट दबाकर इसे बनाएं।</string>
|
||||
<string name="importVoucherVaultMessage">आयात करने के लिए वाउचर वॉल्ट से अपना निर्यात चुनें।\nवाउचर वॉल्ट में एक्सपोर्ट दबाकर इसे बनाएं।</string>
|
||||
<string name="turn_flashlight_on">टॉर्च चालू करें</string>
|
||||
<string name="sort_by_name">नाम</string>
|
||||
<string name="credits">आभार</string>
|
||||
@@ -260,8 +254,8 @@
|
||||
<string name="switchToFrontImage">सामने वाली छवि पर स्विच करें</string>
|
||||
<string name="switchToBackImage">पिछली छवि पर स्विच करें</string>
|
||||
<string name="switchToBarcode">बारकोड पर स्विच करें</string>
|
||||
<string name="openFrontImageInGalleryApp">गैलरी ऐप में सामने वाली छवि खोलें</string>
|
||||
<string name="openBackImageInGalleryApp">गैलरी ऐप में पिछली छवि खोलें</string>
|
||||
<string name="openFrontImageInGalleryApp">इमेज दर्शक सामने वाली इमेज खोलें</string>
|
||||
<string name="openBackImageInGalleryApp">पिछली इमेज खोलें</string>
|
||||
<string name="setBarcodeHeight">बारकोड ऊंचाई सेट करें</string>
|
||||
<string name="icon_header_click_text">छोटी छवि (थंबनेल) संपादित करने के लिए देर तक दबाएँ</string>
|
||||
<string name="enter_card_id">अपने कार्ड पर आईडी नंबर या टेक्स्ट दर्ज करें</string>
|
||||
@@ -275,7 +269,7 @@
|
||||
<string name="pageWithNumber">पेज <xliff:g>%d</xliff:g></string>
|
||||
<string name="addFromPdfFile">एक PDF फाइल चुनें</string>
|
||||
<string name="errorReadingFile">फाइल को पढ़ा नहीं जा सका</string>
|
||||
<string name="failedLaunchingFileManager">समर्थित फाइल प्रबंधक नहीं मिल सका</string>
|
||||
<string name="failedLaunchingFileManager">समर्थित फाइल मैनेजर नहीं मिल सका</string>
|
||||
<string name="noCameraFoundGuideText">ऐसा लगता है कि आपके डिवाइस में कैमरा नहीं है। अगर है, तो डिवाइस को रीबूट करने का प्रयास करें। अन्यथा, किसी अन्य तरीके से बारकोड जोड़ने के लिए नीचे दिए गए अधिक विकल्प बटन का उपयोग करें।</string>
|
||||
<string name="importCancelled">आयात रद्द</string>
|
||||
<string name="exportCancelled">निर्यात रद्द</string>
|
||||
@@ -283,11 +277,11 @@
|
||||
<string name="useBackImage">पीछे की छवि का उपयोग करें</string>
|
||||
<string name="width">चौड़ाई</string>
|
||||
<string name="setBarcodeWidth">बारकोड की चौड़ाई सेट करें</string>
|
||||
<string name="generic_error_please_retry">क्षमा करें, कुछ ग़लत हो गया, कृपया पुनः प्रयास करें..।</string>
|
||||
<string name="generic_error_please_retry">क्षमा करें, कुछ ग़लत हो गया</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">कौन सा कार्ड प्रदर्शित किया जाए, यह बदलने के लिए वॉल्यूम बटन का उपयोग करें</string>
|
||||
<string name="sort_by_valid_from">मान्य तिथि के अनुसार</string>
|
||||
<string name="settings_use_volume_keys_navigation">वॉल्यूम से कार्ड बदलें</string>
|
||||
<string name="addFromPkpass">पासबुक फ़ाइल चुनें (.pkpass)</string>
|
||||
<string name="addFromPkpass">पासबुक फ़ाइल चुनें (.pkpass/.pkpasses)</string>
|
||||
<string name="unsupportedFile">यह फ़ाइल समर्थित नहीं है</string>
|
||||
<string name="settings_category_title_cards_overview">कार्ड अवलोकन</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
@@ -302,4 +296,6 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="card_list_widget_name">कार्ड सूची</string>
|
||||
<string name="card_list_widget_empty">कैटिमा में कुछ लॉयल्टी कार्ड जोड़ने के बाद, वे यहाँ दिखाई देंगे। अगर आपके पास कार्ड हैं, तो सुनिश्चित करें कि वे सभी संग्रहित न हों।</string>
|
||||
<string name="cardWithNumber">कार्ड <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">कार्ड <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
</resources>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<string name="sendLabel">Pošalji …</string>
|
||||
<string name="editCardTitle">Uredi karticu</string>
|
||||
<string name="addCardTitle">Dodaj karticu</string>
|
||||
<string name="scanCardBarcode">Snimi crtični kod kartice</string>
|
||||
<string name="scanCardBarcode">Snimi crtični kod</string>
|
||||
<string name="cardShortcut">Prečac kartice</string>
|
||||
<string name="noCardsMessage">Najprije dodaj karticu</string>
|
||||
<string name="noBarcode">Nema crtičnog koda</string>
|
||||
@@ -24,21 +24,21 @@
|
||||
<string name="cardId">ID kartice</string>
|
||||
<string name="barcodeType">Vrsta crtičnog koda</string>
|
||||
<string name="cancel">Odustani</string>
|
||||
<string name="noGiftCards">Pritisni gumb + plus za dodavanje kartice ili uvezi putem izbornika ⋮.</string>
|
||||
<string name="noGiftCards">Pritisni gumb + plus za dodavanje kartice ili uvezi putem izbornika ⋮</string>
|
||||
<string name="noCardExistsError">Nije bilo moguće pronaći tu karticu</string>
|
||||
<string name="failedParsingImportUriError">Nije bilo moguće obraditi URI uvoza</string>
|
||||
<string name="importExport">Uvoz/Izvoz</string>
|
||||
<string name="importExport">Uvoz/izvoz</string>
|
||||
<string name="exportName">Izvoz</string>
|
||||
<string name="importExportHelp">Spremanje sigurnosnih kopija tvojih podataka omogućuje premještanje podataka na jedan drugi uređaj.</string>
|
||||
<string name="importExportHelp">Spremanje sigurnosnih kopija tvojih podataka omogućuje premještanje podataka na jedan drugi uređaj</string>
|
||||
<string name="importSuccessfulTitle">Uvezeno</string>
|
||||
<string name="importFailedTitle">Neuspio uvoz</string>
|
||||
<string name="importFailed">Nije bilo moguće izvršiti uvoz</string>
|
||||
<string name="exportSuccessfulTitle">Izvezeno</string>
|
||||
<string name="about">Informacije</string>
|
||||
<string name="exportOptionExplanation">Podaci će se zapisati u željeno mjesto.</string>
|
||||
<string name="exportOptionExplanation">Podaci će se zapisati na mjesto po tvom izboru</string>
|
||||
<string name="exportFailedTitle">Neuspio izvoz</string>
|
||||
<string name="exporting">Izvoz …</string>
|
||||
<string name="importOptionFilesystemExplanation">Odaberi određenu datoteku iz datotečnog sustava.</string>
|
||||
<string name="importOptionFilesystemExplanation">Odaberi određenu datoteku iz datotečnog sustava</string>
|
||||
<string name="settings">Postavke</string>
|
||||
<string name="settings_dark_theme">Tamna</string>
|
||||
<string name="exportFailed">Nije bilo moguće izvršiti izvoz</string>
|
||||
@@ -60,16 +60,16 @@
|
||||
<string name="importSuccessful">Podaci su uvezeni</string>
|
||||
<string name="enter_group_name">Upiši ime grupe</string>
|
||||
<string name="groups">Grupe</string>
|
||||
<string name="noGroups">Pritisni gumb + plus za dodavanje grupe za kategoriziranje.</string>
|
||||
<string name="noGroups">Pritisni gumb + plus za dodavanje grupe za kategoriziranje</string>
|
||||
<string name="noGroupCards">Ova je grupa prazna</string>
|
||||
<string name="addFromImage">Odaberi sliku iz galerije</string>
|
||||
<string name="deleteConfirmationGroup">Izbrisati grupu\?</string>
|
||||
<string name="failedOpeningFileManager">Najprije instaliraj upravljač datoteka.</string>
|
||||
<string name="failedOpeningFileManager">Neuspjelo otvaranje upravljača datoteka</string>
|
||||
<string name="moveUp">Pomakni prema gore</string>
|
||||
<string name="leaveWithoutSaveTitle">Zatvori aplikaciju</string>
|
||||
<string name="card">Kartica</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Zatvoriti aplikaciju bez spremanja\?</string>
|
||||
<string name="noGiftCardsGroup">Stvori neke kartice, a zatim ih ovdje dodijeli grupi.</string>
|
||||
<string name="noGiftCardsGroup">Stvori neke kartice, a zatim ih ovdje dodijeli grupi</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> kartica</item>
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> kartice</item>
|
||||
@@ -83,8 +83,7 @@
|
||||
<string name="accept">Prihvati</string>
|
||||
<string name="importCatima">Uvezi iz Catima</string>
|
||||
<string name="importFidme">Uvezi iz FidMe</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi tvoju iz LoyaltyCardKeychain izvezenu <i>LoyaltyCardKeychain.csv</i> datoteku koju želiš uvesti.
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” u aplikaciji Loyalty Card Keychain i tamo pritisni „Izvoz”.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi tvoj izvoz iz LoyaltyCardKeychain za uvoz. \nStvori je putem izbornika „Uvoz/Izvoz” u aplikaciji Loyalty Card Keychain pritiskom na „Izvoz”.</string>
|
||||
<string name="updateBarcodeQuestionText">Promijenio/la si ID. Želiš li također aktualizirati crtični kod da koristi istu vrijednost\?</string>
|
||||
<string name="importCards">Uvezi kartice</string>
|
||||
<string name="selectColor">Odaberi boju</string>
|
||||
@@ -97,7 +96,7 @@
|
||||
<string name="frontImageDescription">Prednja slika</string>
|
||||
<string name="exportPasswordHint">Upiši lozinku</string>
|
||||
<string name="turn_flashlight_on">Uključi bljeskalicu</string>
|
||||
<string name="failedGeneratingShareURL">Nije bilo moguće generirati URL za dijeljenje. Prijavi ovaj problem.</string>
|
||||
<string name="failedGeneratingShareURL">Nije bilo moguće generirati URL za dijeljenje</string>
|
||||
<string name="turn_flashlight_off">Isključi bljeskalicu</string>
|
||||
<string name="settings_locale">Jezik</string>
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
@@ -118,27 +117,24 @@
|
||||
<string name="archive">Arhiviraj</string>
|
||||
<string name="archived">Kartica je arhivirana</string>
|
||||
<string name="unarchived">Kartica je uklonjena iz arhive</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nije bilo moguće pronaći podržanu aplikaciju galerije</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nije bilo moguće pronaći podržani birač slika</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nije bilo moguće pristupiti kameri</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Za snimanje crtičnih kodova Catima treba pristup tvojoj kameri. Dodirni ovdje za mijenjanje postavki dozvola.</string>
|
||||
<string name="app_libraries">Slobodne biblioteke trećih strana: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Biblioteke trećih strana: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Odaberi crtični kod</string>
|
||||
<string name="settings_portrait_orientation">Uspravno</string>
|
||||
<string name="settings_lock_on_opening_orientation">Odredi orijentaciju koja se koristi prilikom otvaranja kartice</string>
|
||||
<string name="group_edit">Uredi grupu</string>
|
||||
<string name="group_name_already_in_use">Ime grupe se već koristi</string>
|
||||
<string name="noBarcodeFound">Nijedan crtični kod nije pronađen</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="chooseImportType">Uvezi podatke iz</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="importCatimaMessage">Odaberi tvoju iz Catima izvezenu <i>catima.zip</i> datoteku koju želiš uvesti.
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” jedne druge Catima aplikacije pritiskom na „Izvoz”.</string>
|
||||
<string name="importCatimaMessage">Odaberi tvoj izvoz iz Catima za uvoz. \nStvori je putem izbornika „Uvoz/Izvoz” jedne druge Catima aplikacije pritiskom na „Izvoz”.</string>
|
||||
<string name="height">Visina</string>
|
||||
<string name="switchToFrontImage">Prebaci na prednju sliku</string>
|
||||
<string name="switchToBackImage">Prebaci na stražnju sliku</string>
|
||||
<string name="switchToBarcode">Prebaci na crtični kod</string>
|
||||
<string name="openFrontImageInGalleryApp">Otvori prednju sliku u aplikaciji galerije</string>
|
||||
<string name="openBackImageInGalleryApp">Otvori stražnju sliku u aplikaciji galerije</string>
|
||||
<string name="openFrontImageInGalleryApp">Otvori prednju sliku u aplikaciji prikazivača slika</string>
|
||||
<string name="openBackImageInGalleryApp">Otvori stražnju sliku u aplikaciji prikazivača slika</string>
|
||||
<string name="setBarcodeHeight">Postavi visinu crtičnog koda</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> odabrana</item>
|
||||
@@ -163,13 +159,9 @@
|
||||
<string name="storageReadPermissionRequired">Za ovu radnju je potrebna dozvola za čitanje spremljenih podataka …</string>
|
||||
<string name="cameraPermissionRequired">Za ovu radnju je potrebna dozvola za pristup kameri …</string>
|
||||
<string name="app_license">Copylefted libre softver, GPLv3+ licenca</string>
|
||||
<string name="settings_card_orientation">Orijentacija ekrana</string>
|
||||
<string name="settings_follow_system_orientation">Slijedi sustav</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importFidmeMessage">Odaberi tvoju iz FidMe izvezenu <i>idme-export-request-xxxxxx.zip</i> datoteku koju želiš uvesti i ručno odaberi vste crtičnog koda nakon toga.
|
||||
\nStvori je putem tvog FidMe profila biranjem „Zaštita podataka” a zatim pritisni „Dekomprimiraj moje podatke”.</string>
|
||||
<string name="importVoucherVaultMessage">Odaberi tvoju iz Voucher Vault izvezenu <i>vouchervault.json</i> datoteku koju želiš uvesti.
|
||||
\nStvori je u aplikaciji Voucher Vault i tamo pritisni „Izvoz”.</string>
|
||||
<string name="importFidmeMessage">Odaberi tvoj izvoz iz FidMe za uvoz i ručno odaberi vste crtičnog koda nakon toga. \nStvori ga putem tvog FidMe profila biranjem „Zaštita podataka” a zatim pritisni „Dekomprimiraj moje podatke”.</string>
|
||||
<string name="importVoucherVaultMessage">Odaberi tvoj izvoz iz Voucher Vault za uvoz. \nStvori ga u aplikaciji Voucher Vault pritiskom na „Izvoz”.</string>
|
||||
<string name="settings_pink_theme">Ružičasta</string>
|
||||
<string name="settings_blue_theme">Plava</string>
|
||||
<string name="failedToRetrieveImageFile">Neuspjelo dohvaćanje slikovne datoteke</string>
|
||||
@@ -200,8 +192,7 @@
|
||||
</plurals>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Autorska prava © 2019. – <xliff:g>%d.</xliff:g> Sylvia van Os i doprinositelji</string>
|
||||
<string name="debug_version_fmt">Verzija: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_resources">Slobodni resursi trećih strana: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_landscape_orientation">Ležeće</string>
|
||||
<string name="app_resources">Resursi trećih strana: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="group_name_is_empty">Ime grupe ne smije biti prazno</string>
|
||||
<string name="group_updated">Grupa je aktualizirana</string>
|
||||
<string name="all">Sve</string>
|
||||
@@ -210,7 +201,7 @@
|
||||
<string name="expiryStateSentenceExpired">Istekla: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseExpiryDate">Odaberi datum isteka</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Premjesti crtični kod na vrh ekrana</string>
|
||||
<string name="errorReadingImage">Nije bilo moguće učitati sliku</string>
|
||||
<string name="errorReadingImage">Nije bilo moguće čitati sliku</string>
|
||||
<string name="currency">Valuta</string>
|
||||
<string name="points">Bodovi</string>
|
||||
<string name="privacy_policy">Politika privatnosti</string>
|
||||
@@ -237,7 +228,7 @@
|
||||
<string name="app_contributors">Doprinositelji: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="showMoreInfo">Prikaži informacije</string>
|
||||
<string name="sort_by_name">Ime</string>
|
||||
<string name="sort_by_most_recently_used">Nedavno korišteno</string>
|
||||
<string name="sort_by_most_recently_used">Zadnje korišteno</string>
|
||||
<string name="reverse">… u obrnutom redoslijedu</string>
|
||||
<string name="shortcutSelectCard">Odaberi karticu</string>
|
||||
<string name="previousCard">Prethodna</string>
|
||||
@@ -275,12 +266,11 @@
|
||||
<string name="settings_category_title_privacy">Privatnost</string>
|
||||
<string name="settings_keep_screen_on_summary">Deaktivira isključivanje ekrana tijekom prikaza kartice</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Uvijek okreni (zanemaruje postavke sustava)</string>
|
||||
<string name="continue_">Nastavi</string>
|
||||
<string name="add_manually_warning_message">Za neke trgovine se vrijednost crtičnog koda razlikuje od broja na kartici. Zbog toga ručno upisivanje crtičnog koda možda neće uvijek funkcionirati. Preporučuje se snimanje crtičnog koda pomoću kamere. Želiš li svejedno nastaviti?</string>
|
||||
<string name="add_manually_warning_message">Za neke kartice se vrijednost crtičnog koda razlikuje od broja na kartici. Zbog toga ručno upisivanje crtičnog koda možda neće uvijek funkcionirati. Preporučuje se snimanje crtičnog koda pomoću kamere. Želiš li svejedno nastaviti?</string>
|
||||
<string name="add_manually_warning_title">Preporučuje se snimanje</string>
|
||||
<string name="addFromPdfFile">Odaberi PDF datoteku</string>
|
||||
<string name="errorReadingFile">Nije bilo moguće pročitati datoteku</string>
|
||||
<string name="errorReadingFile">Nije bilo moguće čitati datoteku</string>
|
||||
<string name="failedLaunchingFileManager">Nije bilo moguće pronaći podržani upravljač datoteka</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Koji od pronađenih crtičnih kodova želiš koristiti?</string>
|
||||
<string name="pageWithNumber">Stranica <xliff:g>%d</xliff:g></string>
|
||||
@@ -304,14 +294,21 @@
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Žao nam je, nešto nije u redu, pokušaj ponovo …</string>
|
||||
<string name="generic_error_please_retry">Dogodila se greška</string>
|
||||
<string name="addFromPkpass">Odaberi jednu Passbook datoteku (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Ova datoteka nije podržana</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Pomoću gumba za glasnoću promijeni koja se kartica prikazuje</string>
|
||||
<string name="settings_use_volume_keys_navigation">Mijenjaj kartice pomoću gumba za glasnoću</string>
|
||||
<string name="width">Širina</string>
|
||||
<string name="card_list_widget_name">Popis kartica</string>
|
||||
<string name="setBarcodeWidth">Postavi širinu barkoda</string>
|
||||
<string name="setBarcodeWidth">Postavi širinu crtičnog koda</string>
|
||||
<string name="cardWithNumber">Kartica <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kartica <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Kartica <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="card_list_widget_empty">Nakon što dodaš neke kartice vjernosti u Catima, one će se pojaviti ovdje. Ako već imaš kartice, provjeri da nisu sve arhivirane.</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Ne okreći uređaj jer će to prekinuti radnju</string>
|
||||
<string name="acra_catima_has_crashed">Žao nam je, ali aplikacija <xliff:g id="app_name">%s</xliff:g> je prekinula rad. Pomogni riješiti ovaj problem slanjem izvještaja o grešci.</string>
|
||||
<string name="acra_explain_crash">Po mogućnosti dodaj više detalja o tvojim radnjama:</string>
|
||||
<string name="acra_crash_email_subject">Izvještaj o prekidu rada aplikacije <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Pitaj da li poslati izvještaj o prekidu rada aplikacije</string>
|
||||
<string name="pref_enable_acra_summary">Kada je uključeno, zamolit ćemo te da prijaviš prekid rada aplikacije kada se dogodi. Izvještaji o prekidu rada se nikada ne šalju automatski.</string>
|
||||
</resources>
|
||||
|
||||
@@ -194,7 +194,6 @@
|
||||
\nLétrehozhatja az Importálás/exportálás menüből az Exportálást megnyomva egy másik Catima alkalmazásban.</string>
|
||||
<string name="importFidmeMessage">Válassza ki a FidMeből exportált <i>fidme-export-request-xxxxxx.zip</i> fájl majd importálja be, és utána válassza a kézi vonalkódbeírást.
|
||||
\nEzt hozza létre a FidMe-profiljában az Adatvédelem rész választásával, majd a Saját adatok kinyerése megnyomásával.</string>
|
||||
<string name="settings_card_orientation">Képernyő tájolása</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kártya (<xliff:g id="archivedCount">%2$d</xliff:g> archiválva)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kártya (<xliff:g id="archivedCount">%2$d</xliff:g> archiválva)</item>
|
||||
@@ -203,10 +202,6 @@
|
||||
<string name="failedLaunchingPhotoPicker">Nem található támogatott galéria alkalmazás</string>
|
||||
<string name="previousCard">Előző</string>
|
||||
<string name="nextCard">Következő</string>
|
||||
<string name="settings_portrait_orientation">Álló</string>
|
||||
<string name="settings_follow_system_orientation">Rendszer követése</string>
|
||||
<string name="settings_lock_on_opening_orientation">A használt tájolás zárolása a kártya megnyitásakor</string>
|
||||
<string name="settings_landscape_orientation">Fekvő</string>
|
||||
<string name="settings_oled_dark">Teljesen fekete háttér a sötét témánál</string>
|
||||
<string name="include_if_asking_support">Ha támogatás akar kérni, ossza meg az alábbi információkat:</string>
|
||||
<string name="archive">Archiválás</string>
|
||||
@@ -269,7 +264,6 @@
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os és közreműködők</string>
|
||||
<string name="show_archived_cards">Archivált kártyák megjelenítése</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Mindig forgassa (figyelmen kívül hagyja a rendszerbeállításokat)</string>
|
||||
<string name="amountParsingFailed">Hibás érték</string>
|
||||
<string name="add_manually_warning_title">Szkennelés ajánlott</string>
|
||||
<string name="add_manually_warning_message">Egyes boltoknál a kártyán levő számsor különbözik a vonalkódtól. Emiatt a manuális szám beírás nem minden esetben fog működni. Erősen ajánlott inkább a vonalkód szkennelése kamerával. Biztosan folytatja?</string>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<string name="removeImage">Hapus gambar</string>
|
||||
<string name="setBackImage">Atur gambar bagian belakang</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Saya ingin berbagi kartu dengan Anda</string>
|
||||
<string name="noGiftCards">Tap tanda tombol plus ( + ) untuk menambahkan kartu, atau mengimpor nya melalui menu ( ⋮ ).</string>
|
||||
<string name="noGiftCards">Tap tanda tombol plus ( + ) untuk menambahkan kartu, atau mengimpor nya melalui menu ( ⋮ )</string>
|
||||
<string name="noMatchingGiftCards">Tidak menemukan apapun. Cobalah untuk mengubah pencarian anda.</string>
|
||||
<string name="noBarcode">Bukan barcode</string>
|
||||
<string name="confirm">Konfirmasi</string>
|
||||
@@ -176,7 +176,7 @@
|
||||
</plurals>
|
||||
<string name="editGroup">Menyunting Grup: <xliff:g>%s</xliff:g></string>
|
||||
<string name="selectColor">Pilih warna</string>
|
||||
<string name="noGiftCardsGroup">Buat beberapa kartu, kemudian masukkan mereka ke grup di sini.</string>
|
||||
<string name="noGiftCardsGroup">Buat beberapa kartu, kemudian masukkan mereka ke grup di sini</string>
|
||||
<string name="group_name_already_in_use">Nama grup telah dipakai</string>
|
||||
<string name="setIcon">Atur thumbnail</string>
|
||||
<string name="settings_oled_dark">Latar belakang gelap gulita untuk tema gelap</string>
|
||||
@@ -192,11 +192,6 @@
|
||||
<string name="failedLaunchingPhotoPicker">Tidak dapat menemukan aplikasi galeri yang didukung</string>
|
||||
<string name="previousCard">Sebelumnya</string>
|
||||
<string name="nextCard">Berikutnya</string>
|
||||
<string name="settings_card_orientation">Orientasi layar</string>
|
||||
<string name="settings_follow_system_orientation">Ikuti sistem</string>
|
||||
<string name="settings_portrait_orientation">Potret</string>
|
||||
<string name="settings_landscape_orientation">Lanskap</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kunci ke orientasi yang digunakan saat membuka kartu</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> poin</item>
|
||||
</plurals>
|
||||
@@ -263,7 +258,6 @@
|
||||
<string name="addWithoutBarcode">Tambah kartu tanpa barcode</string>
|
||||
<string name="field_must_not_be_empty">Isian tidak boleh kosong</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Selalu rotasi (abaikan pengaturan sistem)</string>
|
||||
<string name="add_manually_warning_title">Pemindaian sangat dianjurkan</string>
|
||||
<string name="continue_">Lanjut</string>
|
||||
<string name="failedLaunchingFileManager">Tidak dapat menemukan pengelola file yang didukung</string>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Cerca</string>
|
||||
<string name="action_add">Aggiungi</string>
|
||||
<string name="noGiftCards">Premi il pulsante + per aggiungere una carta oppure importala dal menù ⋮.</string>
|
||||
<string name="noGiftCards">Premi il pulsante + per aggiungere una carta oppure importala dal menù ⋮</string>
|
||||
<string name="noMatchingGiftCards">Nessun risultato. Prova a cambiare la tua ricerca.</string>
|
||||
<string name="storeName">Nome</string>
|
||||
<string name="note">Note</string>
|
||||
@@ -183,7 +183,7 @@
|
||||
<string name="report_error">Segnala un errore</string>
|
||||
<string name="editGroup">Modifica del gruppo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_name_is_empty">Il nome del gruppo non deve essere vuoto</string>
|
||||
<string name="noGiftCardsGroup">Crea alcune carte e poi assegnale al gruppo qui.</string>
|
||||
<string name="noGiftCardsGroup">Crea alcune carte e poi assegnale al gruppo qui</string>
|
||||
<string name="group_edit">Modifica il gruppo</string>
|
||||
<string name="group_name_already_in_use">Il nome del gruppo è già in uso</string>
|
||||
<string name="group_updated">Gruppo aggiornato</string>
|
||||
@@ -201,16 +201,11 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Sfondo nero puro per il tema scuro</string>
|
||||
<string name="include_if_asking_support">Se vuoi richiedere supporto, includi le seguenti informazioni:</string>
|
||||
<string name="settings_card_orientation">Orientamento dello schermo</string>
|
||||
<string name="settings_follow_system_orientation">Segui il sistema</string>
|
||||
<string name="duplicateCard">Duplica</string>
|
||||
<string name="archive">Archivia</string>
|
||||
<string name="unarchive">Disarchivia</string>
|
||||
<string name="unarchived">Carta non archiviata</string>
|
||||
<string name="archived">Carta archiviata</string>
|
||||
<string name="settings_portrait_orientation">Verticale</string>
|
||||
<string name="settings_landscape_orientation">Orizzontale</string>
|
||||
<string name="settings_lock_on_opening_orientation">Blocca sull\'orientamento utilizzato all\'apertura della carta</string>
|
||||
<string name="failedLaunchingPhotoPicker">Impossibile trovare un\'app galleria supportata</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> carta (<xliff:g id="archivedCount">%2$d</xliff:g> archiviata)</item>
|
||||
@@ -275,7 +270,6 @@
|
||||
<string name="addWithoutBarcode">Aggiungere una carta senza codice a barre</string>
|
||||
<string name="field_must_not_be_empty">Il campo non deve essere vuoto</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Ruota sempre (ignora le impostazioni di sistema)</string>
|
||||
<string name="add_manually_warning_title">Consigliata scansione</string>
|
||||
<string name="continue_">Successivo</string>
|
||||
<string name="add_manually_warning_message">In alcuni negozi, il valore del codice a barre differisce dal numero scritto sulla carta. Per questo motivo, l\'inserimento manuale del codice a barre potrebbe non funzionare sempre. Si consiglia di scansionare il codice a barre con la fotocamera. Vuoi continuare lo stesso?</string>
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="wrongValueForBarcodeType">選択したバーコード形式ではこの番号は使用できません</string>
|
||||
<string name="unsupportedBarcodeType">このバーコード形式は表示できません。将来のアップデートにより対応するかもしれません。</string>
|
||||
<string name="setBarcodeId">バーコード番号を設定</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">インポートするにはLoyalty Card Keychainでエクスポートした <i>LoyaltyCardKeychain.csv</i>ファイルを選択してください。
|
||||
\nファイルがない場合、 Loyalty Card Keychainアプリからファイルをエクスポートしてください。</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Loyalty Card Keychainからエクスポートしたデータを選択してインポートしてください。\nデータはLoyalty Card Keychainのインポート/エクスポートメニューからエクスポートを押して作成してください。</string>
|
||||
<string name="importLoyaltyCardKeychain">Loyalty Card Keychainからインポート</string>
|
||||
<string name="importFidmeMessage">インポートするにはFindMeでエクスポートした <i>fidme-export-request-xxxxxx.zip</i>ファイルを選択してください。そのあと手動でバーコード形式を選択してください。
|
||||
\nファイルがない場合、FidMeでファイルを作成してください。</string>
|
||||
<string name="importFidmeMessage">FidMeからエクスポートしたデータを選択してインポートしたうえで、手動でバーコードの種類を選択してください。\nFidMeプロフィールから作成するには データ保護 を選択して データを抽出 を押してください。</string>
|
||||
<string name="importFidme">FidMeからインポート</string>
|
||||
<string name="importCatimaMessage">インポートするにはCatimaでエクスポートした<i>Catima.zip</i>ファイルを選択してください。
|
||||
\nファイルがない場合、他のCatimaアプリでファイルをエクスポートしてください。</string>
|
||||
<string name="importCatimaMessage">インポートするにはCatimaからエクスポートしたファイルを選択してください。\nファイルは別なCatimaアプリのインポート/エクスポートメニューからエクスポートを押して作成できます。</string>
|
||||
<string name="importCatima">Catimaからインポート</string>
|
||||
<string name="accept">承認</string>
|
||||
<string name="privacy_policy">プライバシーポリシー</string>
|
||||
@@ -40,10 +37,10 @@
|
||||
</plurals>
|
||||
<string name="moveDown">下に移動</string>
|
||||
<string name="moveUp">上に移動</string>
|
||||
<string name="failedOpeningFileManager">ファイルマネージャーをインストールしてください。</string>
|
||||
<string name="failedOpeningFileManager">ファイルマネージャーを開けません</string>
|
||||
<string name="deleteConfirmationGroup">グループを削除しますか?</string>
|
||||
<string name="all">すべて</string>
|
||||
<string name="noGroups">+ボタンを押してグループを追加してください。</string>
|
||||
<string name="noGroups">+ ボタンを押してグループを追加してください</string>
|
||||
<string name="groups">グループ</string>
|
||||
<string name="enter_group_name">グループ名を入力</string>
|
||||
<string name="exportSuccessful">データがエクスポートされました</string>
|
||||
@@ -59,17 +56,17 @@
|
||||
<string name="settings">設定</string>
|
||||
<string name="starImage">お気に入りのスター</string>
|
||||
<string name="thumbnailDescription">サムネイル</string>
|
||||
<string name="selectBarcodeTitle">バーコード選択</string>
|
||||
<string name="app_libraries">Libre third-party libraries: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">バーコードを選択</string>
|
||||
<string name="app_libraries">サードパーティーのライブラリ: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">バージョン: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt"><xliff:g id="app_name">%s</xliff:g> について</string>
|
||||
<string name="app_license">Copylefted libre software, licensed GPLv3+</string>
|
||||
<string name="app_resources">Libre third-party resources: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_license">GPLv3+ライセンスによる、コピーレフトされた自由ソフトウェア</string>
|
||||
<string name="app_resources">サードパーティーのリソース: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="about">このアプリについて</string>
|
||||
<string name="importOptionFilesystemButton">ファイルを選択</string>
|
||||
<string name="importOptionFilesystemExplanation">ストレージからファイルを選択してください。</string>
|
||||
<string name="importOptionFilesystemExplanation">ストレージからファイルを選択してください</string>
|
||||
<string name="importOptionFilesystemTitle">ストレージからインポート</string>
|
||||
<string name="exportOptionExplanation">選択した場所にデータを出力します。</string>
|
||||
<string name="exportOptionExplanation">選択した場所にデータを出力します</string>
|
||||
<string name="exporting">エクスポート中…</string>
|
||||
<string name="importing">インポート中…</string>
|
||||
<string name="exportFailed">カードをエクスポートできませんでした</string>
|
||||
@@ -77,13 +74,12 @@
|
||||
<string name="exportSuccessfulTitle">エクスポートしました</string>
|
||||
<string name="sameAsCardId">カード番号に合わせる</string>
|
||||
<string name="barcodeId">バーコード番号</string>
|
||||
<string name="importVoucherVaultMessage">Voucher Vaultでエクスポートした <i>vouchervault.json</i>ファイルを選択してください。
|
||||
\nファイルがない場合、Voucher Vaultでファイルをエクスポートしてください。</string>
|
||||
<string name="importVoucherVaultMessage">Voucher Vaultでエクスポートしてからインポートしてください。\nエクスポートはVoucher Vaultでエクスポートを押して作成してください。</string>
|
||||
<string name="importVoucherVault">Voucher Vaultからインポート</string>
|
||||
<string name="importFailed">カードをインポートできません</string>
|
||||
<string name="importFailedTitle">インポートに失敗しました</string>
|
||||
<string name="importSuccessfulTitle">インポートしました</string>
|
||||
<string name="importExportHelp">データをバックアップすると、他のデバイスにカードを移すことができます。</string>
|
||||
<string name="importExportHelp">データをバックアップする事で他のデバイスにカードを移行できます</string>
|
||||
<string name="exportName">エクスポート</string>
|
||||
<string name="importExport">インポート/エクスポート</string>
|
||||
<string name="failedParsingImportUriError">インポートURIを解析できません</string>
|
||||
@@ -91,8 +87,8 @@
|
||||
<string name="noCardsMessage">カードを追加</string>
|
||||
<string name="cardShortcut">カードのショートカット</string>
|
||||
<string name="scanCardBarcode">バーコードをスキャン</string>
|
||||
<string name="addCardTitle">カードの追加</string>
|
||||
<string name="editCardTitle">カードの編集</string>
|
||||
<string name="addCardTitle">カードを追加</string>
|
||||
<string name="editCardTitle">カードを編集</string>
|
||||
<string name="sendLabel">送信先を選択…</string>
|
||||
<string name="share">共有</string>
|
||||
<string name="ok">確定</string>
|
||||
@@ -109,14 +105,14 @@
|
||||
<string name="note">メモ</string>
|
||||
<string name="storeName">名前</string>
|
||||
<string name="noMatchingGiftCards">該当なし</string>
|
||||
<string name="noGiftCards">+ボタンからカードを新規追加、⋮メニューからカードをインポートすることができます。</string>
|
||||
<string name="noGiftCards">+ ボタンからカードを新規追加、⋮ メニューからカードをインポート出来ます</string>
|
||||
<string name="action_add">追加</string>
|
||||
<string name="action_search">検索</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">カードを共有しましょう</string>
|
||||
<string name="turn_flashlight_off">ライトをオフにする</string>
|
||||
<string name="turn_flashlight_on">ライトをオンにする</string>
|
||||
<string name="failedGeneratingShareURL">共有URLの生成を生成できませんでした。バグを報告してください。</string>
|
||||
<string name="passwordRequired">パスワードを入力してください</string>
|
||||
<string name="failedGeneratingShareURL">共有可能なURLを作成できませんでした</string>
|
||||
<string name="passwordRequired">パスワードを入力</string>
|
||||
<string name="no">いいえ</string>
|
||||
<string name="yes">はい</string>
|
||||
<string name="updateBarcodeQuestionText">カード番号を変更しました。バーコード番号も同じ値に変更しますか?</string>
|
||||
@@ -155,7 +151,7 @@
|
||||
<string name="noGroupCards">このグループにはカードがありません</string>
|
||||
<string name="sort_by">並び替え</string>
|
||||
<string name="sort_by_expiry">期限</string>
|
||||
<string name="sort_by_most_recently_used">最近使用したカード</string>
|
||||
<string name="sort_by_most_recently_used">最近使ったカード</string>
|
||||
<string name="sort_by_name">名前</string>
|
||||
<string name="sort">並び替え</string>
|
||||
<string name="rate_this_app">このアプリを評価する</string>
|
||||
@@ -168,7 +164,7 @@
|
||||
<string name="help_translate_this_app">翻訳を手伝う</string>
|
||||
<string name="license">ライセンス</string>
|
||||
<string name="on_google_play">Google Play</string>
|
||||
<string name="report_error">問題を報告する</string>
|
||||
<string name="report_error">問題を報告</string>
|
||||
<string name="reverse">逆順</string>
|
||||
<string name="and_data_usage">データの扱いなど</string>
|
||||
<string name="group_updated">グループを更新しました</string>
|
||||
@@ -186,16 +182,11 @@
|
||||
<string name="chooseValidFromDate">有効期限を選択</string>
|
||||
<string name="anyDate">無期限</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_card_orientation">画面の向き</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">仕事をするためにいくつかのスキャナーが必要</string>
|
||||
<string name="settings_follow_system_orientation">システムに従う</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">一部のスキャナを動かすのに必要です</string>
|
||||
<string name="storageReadPermissionRequired">このアクションのためにストレージの読み取り権限を許可…</string>
|
||||
<string name="cameraPermissionDeniedTitle">カメラへアクセスできません</string>
|
||||
<string name="settings_follow_sensor_orientation">自動回転 (システムを無視)</string>
|
||||
<string name="cameraPermissionRequired">このアクションのためにカメラへのアクセス権限の許可…</string>
|
||||
<string name="settings_landscape_orientation">横</string>
|
||||
<string name="settings_portrait_orientation">縦</string>
|
||||
<string name="noGiftCardsGroup">いくつかのカードを作って、それらをこのグループにアサインします。</string>
|
||||
<string name="noGiftCardsGroup">幾つかカードを作り、それらをこのグループに紐づけます</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">バーコードをスキャンするためには、Catimaはカメラへのアクセスを必要とします。ここをタップして権限設定の変更をお願いします。</string>
|
||||
<string name="importCards">カードをインポート</string>
|
||||
<string name="show_balance">残高を表示</string>
|
||||
@@ -206,7 +197,7 @@
|
||||
<string name="welcome">Catimaへようこそ</string>
|
||||
<string name="show_name_below_image_thumbnail">画像サムネイルの下に名前を表示</string>
|
||||
<string name="settings_keep_screen_on_summary">画面の自動消灯を無効化します</string>
|
||||
<string name="settings_category_title_cards">カード</string>
|
||||
<string name="settings_category_title_cards">カードビュー</string>
|
||||
<string name="settings_category_title_general">一般</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">画面のロックを無効化します</string>
|
||||
<string name="action_display_options">表示の設定</string>
|
||||
@@ -219,7 +210,6 @@
|
||||
<string name="failedToOpenUrl">ブラウザーをインストールしてください</string>
|
||||
<string name="previousCard">前へ</string>
|
||||
<string name="nextCard">次へ</string>
|
||||
<string name="settings_lock_on_opening_orientation">カードを開いた時の向きに固定</string>
|
||||
<string name="settings_oled_dark">ダークテーマで黒い背景を使用する</string>
|
||||
<string name="settings_oled_dark_summary">有機ELディスプレイでの電池の使用量を削減します</string>
|
||||
<string name="action_more_options">オプション</string>
|
||||
@@ -240,4 +230,72 @@
|
||||
<string name="permissionReadCardsDescription">Catimaカードと、ノートや画像を含むすべての詳細を読み取る</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">ボリュームボタンを使ってどのカードを表示するかを変更する</string>
|
||||
<string name="unsupportedFile">このファイルはサポートされていません</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">著作権 © 2019–<xliff:g>%d</xliff:g> Sylvia van Os と貢献者一同</string>
|
||||
<string name="app_copyright_short">著作権 © Sylvia van Os と貢献者一同</string>
|
||||
<string name="app_copyright_old">Loyalty Card Keychain が基になりました\n著作権 © 2016–2020 Branden Archer</string>
|
||||
<string name="settings_allow_content_provider_read_summary">アプリは継続したアクセス許可を要求します</string>
|
||||
<string name="settings_use_volume_keys_navigation">音量ボタンでカードを切り替え</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> ポイント</item>
|
||||
</plurals>
|
||||
<string name="balanceParsingFailed">残高が無効です</string>
|
||||
<string name="showMoreInfo">情報を確認</string>
|
||||
<string name="updateBalance">残高を更新</string>
|
||||
<string name="failedToRetrieveImageFile">画像ファイルを取得できませんでした</string>
|
||||
<string name="barcodeLongPressMessage">ギャラリーアプリは画像のみ開けます</string>
|
||||
<string name="sort_by_valid_from">有効期限</string>
|
||||
<string name="starred">スター付き</string>
|
||||
<string name="include_if_asking_support">サポートを依頼する場合、以下の情報を含めて下さい:</string>
|
||||
<string name="failedLaunchingPhotoPicker">サポートされている画像ピッカーが見つかりませんでした</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> のカード (<xliff:g id="archivedCount">%2$d</xliff:g> アーカイブ済み)</item>
|
||||
</plurals>
|
||||
<string name="updateBalanceTitle">どれくらい収入・支出がありましたか?</string>
|
||||
<string name="updateBalanceHint">金額を入力</string>
|
||||
<string name="currentBalanceSentence">現在の残高: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">新規残高: <xliff:g>%s</xliff:g></string>
|
||||
<string name="validFromSentence">有効期限: <xliff:g>%s</xliff:g></string>
|
||||
<string name="height">高さ</string>
|
||||
<string name="switchToFrontImage">前面画像へ切り替え</string>
|
||||
<string name="switchToBackImage">背面画像へ切り替え</string>
|
||||
<string name="switchToBarcode">バーコードへ切り替え</string>
|
||||
<string name="openFrontImageInGalleryApp">前面画像を画像ビューワーアプリで開く</string>
|
||||
<string name="openBackImageInGalleryApp">背面画像を画像ビューワーアプリで開く</string>
|
||||
<string name="setBarcodeHeight">バーコードの高さを設定</string>
|
||||
<string name="icon_header_click_text">サムネイルを長押しして編集</string>
|
||||
<string name="settings_category_title_cards_overview">カードの概要</string>
|
||||
<string name="settings_column_count_portrait">縦向きモードの列</string>
|
||||
<string name="settings_column_count_landscape">横向きモードの列</string>
|
||||
<string name="settings_automatic_column_count">自動</string>
|
||||
<string name="view_online">オンラインで閲覧</string>
|
||||
<string name="enter_card_id">カード記載のID番号かテキストを入力してください</string>
|
||||
<string name="card_id_must_not_be_empty">カードIDは空っぽに出来ません</string>
|
||||
<string name="field_must_not_be_empty">この欄は入力必須です</string>
|
||||
<string name="manually_enter_barcode_instructions">カードに記載のID番号かテキストを入力してからカード上のバーコードかそれに類似のものを押してください。</string>
|
||||
<string name="add_manually_warning_title">スキャンするのをお勧めします</string>
|
||||
<string name="add_manually_warning_message">一部のカードでは、バーコードの値がカード券面記載の番号と異なります。そのために、バーコードを手動入力しても正しく機能しない場合があります。代わりにカメラでバーコードをスキャンすることをお勧めしています。それでも続けますか?</string>
|
||||
<string name="spend">支出</string>
|
||||
<string name="receive">収入</string>
|
||||
<string name="amountParsingFailed">無効な金額です</string>
|
||||
<string name="errorReadingFile">ファイルを読み取れませんでした</string>
|
||||
<string name="failedLaunchingFileManager">サポートされているファイルマネージャーが見つかりませんでした</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">発見できたバーコードのどれを使いますか?</string>
|
||||
<string name="pageWithNumber"><xliff:g>%d</xliff:g> ページ</string>
|
||||
<string name="noCameraFoundGuideText">お使いのデバイスにカメラが搭載されていないようです。搭載されている場合には、デバイスを再起動してみてください。搭載されていなければ、下にあるその他のオプションボタンから別の方法でバーコードを追加してください。</string>
|
||||
<string name="useFrontImage">前面画像を利用</string>
|
||||
<string name="useBackImage">背面画像を利用</string>
|
||||
<string name="addFromPkpass">Passbook 形式のファイルを選択 (.pkpass / .pkpasses)</string>
|
||||
<string name="generic_error_please_retry">エラーが発生しました</string>
|
||||
<string name="width">幅</string>
|
||||
<string name="card_list_widget_name">カード一覧</string>
|
||||
<string name="setBarcodeWidth">バーコードの幅を設定</string>
|
||||
<string name="card_list_widget_empty">Catimaで幾つかポイントカードを追加すると、ここに表示されます。カードをお持ちの場合、全てアーカイブがされていないことをご確認ください。</string>
|
||||
<string name="cardWithNumber">カード <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">カード <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">動作がキャンセルされるため、デバイスを回転させないようにしてください</string>
|
||||
<string name="acra_catima_has_crashed">申し訳ありません、<xliff:g id="app_name">%s</xliff:g> がクラッシュしました。エラーレポートを送信し問題解決にご協力ください。</string>
|
||||
<string name="acra_explain_crash">できれば、何をしようとしてそうなったのか、より詳細な情報を追加ねがいます:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> クラッシュレポート</string>
|
||||
<string name="pref_enable_acra">クラッシュレポートを送信する</string>
|
||||
<string name="pref_enable_acra_summary">有効にすると、クラッシュ発生時に報告するかを確認されます。クラッシュレポートが自動送信されることはありません。</string>
|
||||
</resources>
|
||||
|
||||
@@ -205,7 +205,6 @@
|
||||
<string name="app_copyright_old">Loyalty Card Keychain 기반
|
||||
\n저작권 © 2016–2020 Branden Archer</string>
|
||||
<string name="app_resources">자유 타사 리소스: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_lock_on_opening_orientation">카드를 열 때 사용되는 방향으로 고정</string>
|
||||
<string name="editGroup">그룹 편집: <xliff:g>%s</xliff:g></string>
|
||||
<string name="frontImageDescription">전면 사진</string>
|
||||
<string name="backImageDescription">후면 사진</string>
|
||||
@@ -213,10 +212,6 @@
|
||||
<string name="importCards">카드 가져오기</string>
|
||||
<string name="updateBalanceTitle">지출하거나 수령한 금액은 얼마입니까?</string>
|
||||
<string name="newBalanceSentence">새 잔액: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_card_orientation">화면 방향</string>
|
||||
<string name="settings_follow_system_orientation">기기 설정 따르기</string>
|
||||
<string name="settings_portrait_orientation">세로</string>
|
||||
<string name="settings_landscape_orientation">가로</string>
|
||||
<string name="noGroupCards">이 그룹은 비어 있습니다</string>
|
||||
<string name="app_loyalty_card_keychain">로열티 카드 키체인</string>
|
||||
<string name="privacy_policy">개인 정보 정책</string>
|
||||
@@ -264,7 +259,6 @@
|
||||
<string name="addWithoutBarcode">바코드가 없는 카드 추가</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="add_manually_warning_title">스캔을 권장합니다</string>
|
||||
<string name="settings_follow_sensor_orientation">항상 회전 (시스템 설정 무시)</string>
|
||||
<string name="continue_">계속</string>
|
||||
<string name="addFromPdfFile">PDF 파일 선택</string>
|
||||
<string name="errorReadingFile">파일을 읽을 수 없습니다</string>
|
||||
|
||||
@@ -190,7 +190,6 @@
|
||||
<string name="noGiftCardsGroup">Sukurkite keletą kortelių ir priskirkite jas grupei čia.</string>
|
||||
<string name="setIcon">Nustatyti piktogramą</string>
|
||||
<string name="selectColor">Pasirinkti spalvą</string>
|
||||
<string name="settings_card_orientation">Ekrano orientacija</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nepavyko rasti palaikomos galerijos programėlės</string>
|
||||
<string name="previousCard">Ankstesnė</string>
|
||||
<string name="nextCard">Kita</string>
|
||||
@@ -220,10 +219,6 @@
|
||||
<string name="welcome">Sveiki užėję į Catima</string>
|
||||
<string name="showMoreInfo">Rodyti informaciją</string>
|
||||
<string name="settings_oled_dark">Visiškai juodas fonas tamsiajai temai</string>
|
||||
<string name="settings_follow_system_orientation">Sekti sistemą</string>
|
||||
<string name="settings_portrait_orientation">Portretas</string>
|
||||
<string name="settings_landscape_orientation">Gulsčias</string>
|
||||
<string name="settings_lock_on_opening_orientation">Užfiksuoti padėtį, kuri naudojama atidarant kortelę</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nepavyko pasiekti kameros</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Skanuoti brūkšniniams kodams Catima reikės gauti leidimo naudotis jūsų kamera. Spustelkite čia norėdami pakeisti leidimų nustatymus.</string>
|
||||
<plurals name="balancePoints">
|
||||
@@ -246,7 +241,6 @@
|
||||
<string name="switchToFrontImage">Perjungti į priekinį vaizdą</string>
|
||||
<string name="openFrontImageInGalleryApp">Atidarykite priekinį vaizdą galerijos programėlėje</string>
|
||||
<string name="donate">Aukoti</string>
|
||||
<string name="settings_follow_sensor_orientation">Visada sukti (nekreipiant dėmesio į sistemos nustatymus)</string>
|
||||
<string name="settings_keep_screen_on_summary">Išjungti ekrano užmigdymą kol peržiūrite kortelę</string>
|
||||
<string name="manually_enter_barcode_instructions">Įveskite ID numerį arba tekstą ant jūsų kortelės ir paspauskite brūkšninį kodą, kuris atrodo kaip ant jūsų kortelės.</string>
|
||||
<string name="addWithoutBarcode">Pridėti kortelę be brūkšninio kodo</string>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Meklēt</string>
|
||||
<string name="action_add">Pievienot</string>
|
||||
<string name="noGiftCards">Klikšķināt pogu \"+\", lai pievienotu karti, vai ievietot no ⋮izvēlnes.</string>
|
||||
<string name="noGiftCards">Klikšķināt pogu \"+\", lai pievienotu karti, vai ievietot no ⋮izvēlnes</string>
|
||||
<string name="noMatchingGiftCards">Nekas netika atrasts. Jāmēģina mainīt savu vaicājumu.</string>
|
||||
<string name="storeName">Nosaukums</string>
|
||||
<string name="note">Piezīme</string>
|
||||
@@ -29,14 +29,14 @@
|
||||
<string name="deleteConfirmation">Neatgriezeniski dzēst šo karti\?</string>
|
||||
<string name="ok">Labi</string>
|
||||
<string name="addCardTitle">Pievienot karti</string>
|
||||
<string name="scanCardBarcode">Skenēt svītrkodu</string>
|
||||
<string name="scanCardBarcode">Nolasīt svītrkodu</string>
|
||||
<string name="cardShortcut">Kartes saīsne</string>
|
||||
<string name="noCardsMessage">Vispirms jāpievieno karte</string>
|
||||
<string name="noCardExistsError">Nevarēja atrast karti</string>
|
||||
<string name="failedParsingImportUriError">Nevarēja apstrādāt ievietošanas URI</string>
|
||||
<string name="importExport">Ievietot/izgūt</string>
|
||||
<string name="exportName">Izgūt</string>
|
||||
<string name="importExportHelp">Datu rezerves kopijas izveidošana ļauj tos pārnest uz citu ierīci.</string>
|
||||
<string name="importExportHelp">Datu rezerves kopijas izveidošana ļauj tos pārnest uz citu ierīci</string>
|
||||
<string name="importSuccessfulTitle">Ievietots</string>
|
||||
<string name="importFailedTitle">Ievietošana neizdevās</string>
|
||||
<string name="importFailed">Nevarēja veikt ievietošanu</string>
|
||||
@@ -45,9 +45,9 @@
|
||||
<string name="exportFailed">Nevarēja veikt izguvi</string>
|
||||
<string name="importing">Ievieto…</string>
|
||||
<string name="exporting">Izgūst…</string>
|
||||
<string name="exportOptionExplanation">Dati tiks saglabāti izvēlētajā atrašanās vietā.</string>
|
||||
<string name="exportOptionExplanation">Dati tiks saglabāti izvēlētajā atrašanās vietā</string>
|
||||
<string name="importOptionFilesystemTitle">Ievietot no datņu sistēmas</string>
|
||||
<string name="importOptionFilesystemExplanation">Izvēlēties noteiktu datni datņu sistēmā.</string>
|
||||
<string name="importOptionFilesystemExplanation">Izvēlēties noteiktu datni datņu sistēmā</string>
|
||||
<string name="importOptionFilesystemButton">No datņu sistēmas</string>
|
||||
<string name="about">Par</string>
|
||||
<string name="app_license">Copyleft brīva un atvērta programmatūra, licencēta GPLv3+</string>
|
||||
@@ -65,11 +65,11 @@
|
||||
<string name="intent_import_card_from_url_share_text">Es vēlos ar Tevi kopīgot karti</string>
|
||||
<string name="importSuccessful">Dati ievietoti</string>
|
||||
<string name="exportSuccessful">Dati izgūti</string>
|
||||
<string name="noGroups">Klikšķināt pogu \"+\", lai pievienotu kopas karšu apkopošanai.</string>
|
||||
<string name="noGroups">Klikšķināt pogu \"+\", lai pievienotu kopas karšu apkopošanai</string>
|
||||
<string name="noGroupCards">Šī kopa ir tukša</string>
|
||||
<string name="all">Visas</string>
|
||||
<string name="deleteConfirmationGroup">Izdzēst kopu?</string>
|
||||
<string name="failedOpeningFileManager">Vispirms jāuzstāda datņu pārvaldnieks.</string>
|
||||
<string name="failedOpeningFileManager">Neizdevās atvērt datņu pārvaldnieku</string>
|
||||
<string name="moveUp">Pārvietot uz augšu</string>
|
||||
<string name="moveDown">Pārvietot uz leju</string>
|
||||
<string name="leaveWithoutSaveTitle">Iziet</string>
|
||||
@@ -112,13 +112,13 @@
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> punkti</item>
|
||||
</plurals>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="importCatimaMessage">Jāatlasa sava <i>catima.zip</i> izguves datne no Catima, lai ievietotu. \nTo var izveidot citā ierīcē esošas Catima lietotnes sadaļā \"Ievietot/izgūt\" spiežot \"Izgūt\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Jāatlasa sava <i>LoyaltyCardKeychain.csv</i> izguves datne no Loyalty Card Keychain, lai ievietotu. \nTo var izveidot Loyalty Card Keychain sadaļā \"Import/Export\" spiežot \"Export\".</string>
|
||||
<string name="importCatimaMessage">Jāatlasa sava izguves datne no Catima, lai ievietotu. \nTo var izveidot citā ierīcē esošas Catima lietotnes sadaļā \"Ievietot/izgūt\" spiežot \"Izgūt\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Jāatlasa sava izguves datne no Loyalty Card Keychain, lai ievietotu. \nTo var izveidot Loyalty Card Keychain sadaļā \"Import/Export\" spiežot \"Export\".</string>
|
||||
<string name="removeImage">Noņemt attēlu</string>
|
||||
<string name="exportPasswordHint">Ievadīt paroli</string>
|
||||
<string name="on_github">GitHub</string>
|
||||
<string name="settings_locale">Valoda</string>
|
||||
<string name="failedGeneratingShareURL">Nevarēja izveidot kopīgojamu URL. Lūgums ziņot par šo.</string>
|
||||
<string name="failedGeneratingShareURL">Nevarēja izveidot kopīgojamu URL</string>
|
||||
<string name="turn_flashlight_off">Izslēgt zibspuldzi</string>
|
||||
<string name="app_contributors">To padarīja iespējamu: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="version_history">Versiju vēsture</string>
|
||||
@@ -126,9 +126,9 @@
|
||||
<string name="help_translate_this_app">Palīdzi tulkot šo lietotni</string>
|
||||
<string name="and_data_usage">un datu lietojums</string>
|
||||
<string name="license">Licence</string>
|
||||
<string name="source_repository">Pirmkods</string>
|
||||
<string name="source_repository">Pirmkoda glabātava</string>
|
||||
<string name="rate_this_app">Novērtēt šo lietotni</string>
|
||||
<string name="noGiftCardsGroup">Izveido kādas kartes, tad šeit pievieno tās kopai.</string>
|
||||
<string name="noGiftCardsGroup">Izveido kādas kartes, tad šeit pievieno tās kopai</string>
|
||||
<string name="options">Parametri</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="zero"><xliff:g>%d</xliff:g> kartes</item>
|
||||
@@ -155,13 +155,8 @@
|
||||
<string name="app_copyright_old">Balstīta uz Loyalty Card Keychain
|
||||
\nautortiesības © 2016–2020 Branden Archer</string>
|
||||
<string name="debug_version_fmt">Versija: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Brīvas trešo pušu programmatūras bibliotēkas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Brīvi trešo pušu resursi: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_card_orientation">Ekrāna novietojums</string>
|
||||
<string name="settings_follow_system_orientation">Izmantot sistēmas</string>
|
||||
<string name="settings_portrait_orientation">Stateniski</string>
|
||||
<string name="settings_landscape_orientation">Līmeniski</string>
|
||||
<string name="settings_lock_on_opening_orientation">Izmantot novietojumu, kāds bija kartes atvēršanas brīdī</string>
|
||||
<string name="app_libraries">Trešo pušu bibliotēkas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Trešo pušu avoti: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="enter_group_name">Ievadīt kopas nosaukumu</string>
|
||||
<string name="groups">Kopas</string>
|
||||
<string name="group_edit">Labot kopu</string>
|
||||
@@ -175,23 +170,23 @@
|
||||
<string name="editBarcode">Labot svītrkodu</string>
|
||||
<string name="importCatima">Ievietot no Catima</string>
|
||||
<string name="importFidme">Ievietot no FidMe</string>
|
||||
<string name="importFidmeMessage">Jāatlasa sava <i>fidme-export-request-xxxxxx.zip</i> izguves datne no FidMe, lai ievietotu, un pēc tam pašrocīgi jāatlasa svītrkodu veidi. \nTo var izveidot savā FidMe profila sadaļā \"Data Protection\" spiežot \"Extract my data\".</string>
|
||||
<string name="importFidmeMessage">Jāatlasa sava izguves datne no FidMe, lai ievietotu, un pēc tam pašrocīgi jāatlasa svītrkodu veidi. \nTo var izveidot savā FidMe profila sadaļā \"Data Protection\" spiežot \"Extract my data\".</string>
|
||||
<string name="importLoyaltyCardKeychain">Ievietot no Loyalty Card Keychain</string>
|
||||
<string name="importVoucherVault">Ievietot no Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Jāatlasa sava <i>vouchervaldt.json</i> izguves datne no Voucher Vault, lai ievietotu. \nTo var izveidot spiežot \"Export\" Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Jāatlasa sava izguves datne no Voucher Vault, lai ievietotu. \nTo var izveidot Voucher Vault spiežot \"Export\".</string>
|
||||
<string name="barcodeId">Svītrkoda vērtība</string>
|
||||
<string name="sameAsCardId">Tāpat kā numurs</string>
|
||||
<string name="setBarcodeId">Ievadīt svītrkoda vērtību</string>
|
||||
<string name="unsupportedBarcodeType">Šo svītrkoda veidu pagaidām nav iespējams attēlot. Tas nākotnē varbūt tiks atbalstīts jaunākā lietotnes versijā.</string>
|
||||
<string name="wrongValueForBarcodeType">Šī vērtība nav derīga atlasītajam svītrkoda veidam</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Vēlos ar Tevi kopīgot dažas kartes</string>
|
||||
<string name="frontImageDescription">Priekšas attēls</string>
|
||||
<string name="frontImageDescription">Priekšpuses attēls</string>
|
||||
<string name="backImageDescription">Aizmugures attēls</string>
|
||||
<string name="photos">Foto</string>
|
||||
<string name="setFrontImage">Iestatīt priekšas attēlu</string>
|
||||
<string name="setFrontImage">Iestatīt priekšpuses attēlu</string>
|
||||
<string name="setBackImage">Iestatīt aizmugures attēlu</string>
|
||||
<string name="takePhoto">Fotografēt</string>
|
||||
<string name="passwordRequired">Lūgums ievadīt paroli</string>
|
||||
<string name="passwordRequired">Jāievada parole</string>
|
||||
<string name="exportPassword">Iestatīt paroli, lai aizsargātu savu izguves datni (pēc izvēles)</string>
|
||||
<string name="turn_flashlight_on">Ieslēgt zibspuldzi</string>
|
||||
<string name="settings_oled_dark">Tīri melns fons tumšajam izskatam</string>
|
||||
@@ -205,7 +200,7 @@
|
||||
<string name="unarchive">Atarhivēt</string>
|
||||
<string name="archived">Karte arhivēta</string>
|
||||
<string name="unarchived">Karte atarhivēta</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nevarēja atrast atbalstītu galerijas lietotni</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nevarēja atrast atbalstītu attēlu atlasītāju</string>
|
||||
<string name="previousCard">Iepriekšējā</string>
|
||||
<string name="nextCard">Nākamā</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
@@ -229,16 +224,16 @@
|
||||
<string name="icon_header_click_text">Ilgi piespiest, lai labotu sīktēlu</string>
|
||||
<string name="anyDate">Jebkurš datums</string>
|
||||
<string name="height">Augstums</string>
|
||||
<string name="openBackImageInGalleryApp">Atvērt aizmugures attēlu galerijas lietotnē</string>
|
||||
<string name="openBackImageInGalleryApp">Atvērt aizmugures attēlu attēlu skatītāja lietotnē</string>
|
||||
<string name="donate">Ziedot</string>
|
||||
<string name="field_must_not_be_empty">Lauks nedrīkst būt tukšs</string>
|
||||
<string name="card_id_must_not_be_empty">Kartes identifikators nedrīkst būt tukšs</string>
|
||||
<string name="add_a_card_in_a_different_way">Pievienot karti citā veidā</string>
|
||||
<string name="add_manually_warning_message">Dažiem veikaliem svītrkoda vērtība atšķiras no numura, kas ir rakstīts uz kartes. Šī iemesla dēļ pašrocīgi ievadīts svītrkods ne vienmēr var darboties. Ir ļoti ieteicams nolasīt svītrkodu ar kameru. Vai joprojām turpināt?</string>
|
||||
<string name="add_manually_warning_message">Dažām kartēm svītrkoda vērtība atšķiras no numura, kas ir rakstīts uz tās. Šī iemesla dēļ pašrocīgi ievadīts svītrkods ne vienmēr var darboties. Ir ieteicams nolasīt svītrkodu ar kameru. Vai joprojām turpināt?</string>
|
||||
<string name="noCameraFoundGuideText">Šķiet, ka ierīcei nav kameras. Ja tā tomēr ir, jāmēģina pārsāknēt ierīci. Pretējā gadījumā jāizmanto zemāk esošā poga \"Vairāk iespēju\", lai pievienot svītrkodu citā veidā.</string>
|
||||
<string name="settings_allow_content_provider_read_title">Ļaut citām lietotnēm piekļūt maniem datiem</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Lietotnēm joprojām būs jāpieprasa atļauja, lai nodrošinātu piekļuvi</string>
|
||||
<string name="openFrontImageInGalleryApp">Atvērt priekšas attēlu galerijas lietotnē</string>
|
||||
<string name="openFrontImageInGalleryApp">Atvērt priekšpuses attēlu attēlu skatītāja lietotnē</string>
|
||||
<string name="show_note">Rādīt piezīmi</string>
|
||||
<string name="show_balance">Rādīt atlikumu</string>
|
||||
<string name="settings_category_title_privacy">Privātums</string>
|
||||
@@ -273,15 +268,14 @@
|
||||
<string name="spend">Tērēt</string>
|
||||
<string name="receive">Saņemt</string>
|
||||
<string name="amountParsingFailed">Nederīga summa</string>
|
||||
<string name="settings_follow_sensor_orientation">Vienmēr pagriezt (neņem vērā sistēmas iestatījumus)</string>
|
||||
<string name="validFromDate">Derīga no</string>
|
||||
<string name="setBarcodeHeight">Iestatīt svītrkoda augstumu</string>
|
||||
<string name="switchToFrontImage">Pārslēgties uz priekšas attēlu</string>
|
||||
<string name="switchToFrontImage">Pārslēgties uz priekšpuses attēlu</string>
|
||||
<string name="show_validity">Rādīt derīgumu</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_keep_screen_on_summary">Atspējo ekrāna noildzi kartes skatīšanas laikā</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Atspējo ekrāna aizslēgšanu kartes skatīšanas laikā</string>
|
||||
<string name="useFrontImage">Izmantot priekšas attēlu</string>
|
||||
<string name="useFrontImage">Izmantot priekšpuses attēlu</string>
|
||||
<string name="useBackImage">Izmantot aizmugures attēlu</string>
|
||||
<string name="settings_use_volume_keys_navigation">Pārslēgt kartes ar skaļuma pogām</string>
|
||||
<string name="balanceParsingFailed">Nederīgs atlikums</string>
|
||||
@@ -303,12 +297,18 @@
|
||||
<string name="settings_column_count_landscape">Kolonnas līmeniskā novietojumā</string>
|
||||
<string name="unsupportedFile">Šī datne netiek atbalstīta</string>
|
||||
<string name="addFromPkpass">Atlasīt Passbook datni (.pkpass/.pkpasses)</string>
|
||||
<string name="generic_error_please_retry">Atvainojamies, kaut kas nogāja greizi. Lūgums mēģināt vēlreiz...</string>
|
||||
<string name="generic_error_please_retry">Atgadījās kļūda</string>
|
||||
<string name="sort_by_valid_from">Derīga no</string>
|
||||
<string name="setBarcodeWidth">Iestatīt svītrkoda platumu</string>
|
||||
<string name="width">Platums</string>
|
||||
<string name="card_list_widget_name">Karšu saraksts</string>
|
||||
<string name="card_list_widget_empty">Pēc klienta karšu pievienošanas Catima tās parādīsies šeit. Ja Tev ir kartes, jāpārliecinās, ka tās visas nav arhivētas.</string>
|
||||
<string name="cardWithNumber">Karte <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karte <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Karte <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Lūgums nepagriezt ierīci, jo tas atcels darbību</string>
|
||||
<string name="acra_catima_has_crashed">Mēs atvainojamies, bet <xliff:g id="app_name">%s</xliff:g> avarēja. Lūgums palīdzēt mums novērst šo nepilnību, nosūtot mums ziņojumu par kļūdu.</string>
|
||||
<string name="acra_explain_crash">Ja iespējams, lūgums pievienot vairāk informācijas, par to, ko darīji:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> avārijas ziņojums</string>
|
||||
<string name="pref_enable_acra">Vaicāt, lai nosūtītu ziņojumus par avārijām</string>
|
||||
<string name="pref_enable_acra_summary">Kad iespējots, tiks vaicāts ziņot par avāriju, kad tā notiek. Ziņojumi par avārijām nekad netiks automātiski nosūtīti.</string>
|
||||
</resources>
|
||||
|
||||
@@ -75,20 +75,14 @@
|
||||
<string name="selectBarcodeTitle">बारकोड निवडा</string>
|
||||
<string name="app_libraries">Libre third-party libraries: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Libre third-party resources: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_portrait_orientation">पोट्रेट</string>
|
||||
<string name="settings_dark_theme">गडद</string>
|
||||
<string name="settings_system_theme">प्रणाली</string>
|
||||
<string name="starImage">आवड</string>
|
||||
<string name="settings_follow_system_orientation">सिस्टिम अनुसरण</string>
|
||||
<string name="settings_landscape_orientation">आडवे</string>
|
||||
<string name="settings_theme">थीम</string>
|
||||
<string name="settings_light_theme">उजळ</string>
|
||||
<string name="settings">सेटिंग्ज</string>
|
||||
<string name="settings_card_orientation">स्क्रीन ओरिएंटेशन</string>
|
||||
<string name="thumbnailDescription">लघुप्रतिमा</string>
|
||||
<string name="settings_keep_screen_on_summary">कार्ड पाहताना स्क्रीन टाइमआउट बंद करते</string>
|
||||
<string name="settings_follow_sensor_orientation">नेहमी फिरवा (सिस्टम सेटिंग्ज दुर्लक्षित करेल)</string>
|
||||
<string name="settings_lock_on_opening_orientation">कार्ड उघडताना वापरला जाणारा लॉक टू ओरिएंटेशन</string>
|
||||
<string name="settings_display_barcode_max_brightness">स्क्रीन उजळवा</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">काही स्कॅनर्सना काम करण्यासाठी आवश्यक</string>
|
||||
<string name="settings_keep_screen_on">स्क्रीन चालू ठेवा</string>
|
||||
|
||||
@@ -197,16 +197,11 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Svart bakgrunn for mørk drakt</string>
|
||||
<string name="include_if_asking_support">Inkluder følgende info hvis du vil ha hjelp:</string>
|
||||
<string name="settings_card_orientation">Skjermorientering</string>
|
||||
<string name="settings_landscape_orientation">Liggende</string>
|
||||
<string name="settings_lock_on_opening_orientation">Lås til sideretning brukt ved åpning av kort</string>
|
||||
<string name="duplicateCard">Dupliser</string>
|
||||
<string name="archive">Arkiver</string>
|
||||
<string name="unarchive">Opphev arkivering</string>
|
||||
<string name="archived">Kort arkivert</string>
|
||||
<string name="unarchived">Kort flyttet tilbake fra arkiv</string>
|
||||
<string name="settings_follow_system_orientation">Følg systemet</string>
|
||||
<string name="settings_portrait_orientation">Stående</string>
|
||||
<string name="failedLaunchingPhotoPicker">Fant ikke noe støttet galleriprogram</string>
|
||||
<string name="previousCard">Forrige</string>
|
||||
<string name="nextCard">Neste</string>
|
||||
@@ -274,7 +269,6 @@
|
||||
<string name="amountParsingFailed">Ugyldig beløp</string>
|
||||
<string name="spend">Utgifter</string>
|
||||
<string name="receive">Motta</string>
|
||||
<string name="settings_follow_sensor_orientation">Alltid roter (ignorerer systeminnstilling)</string>
|
||||
<string name="add_manually_warning_message">I noen butikker er strekkoden forskjellig fra nummeret på kortet. Som følge av dette kan det hende at å skrive inn strekkoden ikke virker. Det anbefales å skanne strekkoden med kameraet istedenfor. Vil du fortsette?</string>
|
||||
<string name="pageWithNumber">Side <xliff:g>%d</xliff:g></string>
|
||||
<string name="addFromPdfFile">Velg en PDF-fil</string>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Zoeken</string>
|
||||
<string name="action_add">Toevoegen</string>
|
||||
<string name="noGiftCards">Druk op de plusknop (‘+’) om een kaart toe te voegen of importeer kaarten via het ⋮-menu.</string>
|
||||
<string name="noMatchingGiftCards">Geen zoekresultaten - probeer een andere zoekopdracht.</string>
|
||||
<string name="noGiftCards">Druk op de + plusknop om een kaart toe te voegen of importeer kaarten via het ⋮-menu</string>
|
||||
<string name="noMatchingGiftCards">Geen zoekresultaten – probeer een andere zoekopdracht.</string>
|
||||
<string name="storeName">Naam</string>
|
||||
<string name="note">Aantekening</string>
|
||||
<string name="note">Notitie</string>
|
||||
<string name="cardId">Kaartnummer</string>
|
||||
<string name="barcodeType">Soort barcode</string>
|
||||
<string name="cancel">Annuleren</string>
|
||||
@@ -23,9 +23,9 @@
|
||||
<string name="noCardsMessage">Voeg eerst een kaart toe</string>
|
||||
<string name="noCardExistsError">De kaart is niet aangetroffen</string>
|
||||
<string name="failedParsingImportUriError">Kan de import-uri niet verwerken</string>
|
||||
<string name="importExport">Importeren/Exporteren</string>
|
||||
<string name="importExport">Importeren/exporteren</string>
|
||||
<string name="exportName">Exporteren</string>
|
||||
<string name="importExportHelp">Met een reservekopie van je gegevens kun je ze overzetten naar een ander apparaat.</string>
|
||||
<string name="importExportHelp">Met een reservekopie van je gegevens kun je ze overzetten naar een ander apparaat</string>
|
||||
<string name="importSuccessfulTitle">Importeren voltooid</string>
|
||||
<string name="importFailedTitle">Importeren mislukt</string>
|
||||
<string name="importFailed">Het importeren is mislukt</string>
|
||||
@@ -34,9 +34,9 @@
|
||||
<string name="exportFailed">Het exporteren is mislukt</string>
|
||||
<string name="importing">Bezig met importeren…</string>
|
||||
<string name="exporting">Bezig met exporteren…</string>
|
||||
<string name="exportOptionExplanation">De gegevens worden weggeschreven op een locatie naar keuze.</string>
|
||||
<string name="exportOptionExplanation">De gegevens worden weggeschreven op een locatie naar keuze</string>
|
||||
<string name="importOptionFilesystemTitle">Importeren uit bestandssysteem</string>
|
||||
<string name="importOptionFilesystemExplanation">Kies een specifiek bestand van het bestandssysteem.</string>
|
||||
<string name="importOptionFilesystemExplanation">Kies een specifiek bestand van het bestandssysteem</string>
|
||||
<string name="importOptionFilesystemButton">Van bestandssysteem</string>
|
||||
<string name="about">Over</string>
|
||||
<string name="app_license">Vrije software, uitgebracht onder de GPLv3+-licentie</string>
|
||||
@@ -54,7 +54,7 @@
|
||||
<string name="all">Alles</string>
|
||||
<string name="importSuccessful">De gegevens zijn geïmporteerd</string>
|
||||
<string name="deleteConfirmationGroup">Groep verwijderen\?</string>
|
||||
<string name="noGroups">Druk op de plusknop (‘+’) om een groep toe te voegen.</string>
|
||||
<string name="noGroups">Druk op de plusknop (‘+’) om een groep toe te voegen</string>
|
||||
<string name="exportSuccessful">De gegevens zijn geëxporteerd</string>
|
||||
<string name="groups">Groepen</string>
|
||||
<string name="enter_group_name">Voer een groepsnaam in</string>
|
||||
@@ -68,7 +68,7 @@
|
||||
<string name="leaveWithoutSaveTitle">Afsluiten</string>
|
||||
<string name="moveDown">Omlaag verplaatsen</string>
|
||||
<string name="moveUp">Omhoog verplaatsen</string>
|
||||
<string name="failedOpeningFileManager">Installeer een bestandsbeheerder.</string>
|
||||
<string name="failedOpeningFileManager">Kon geen bestandsbeheerder openen</string>
|
||||
<string name="noBarcode">Geen barcode</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> kaart</item>
|
||||
@@ -93,16 +93,12 @@
|
||||
<string name="settings_keep_screen_on">Scherm niet uitschakelen</string>
|
||||
<string name="privacy_policy">Privacybeleid</string>
|
||||
<string name="accept">Accepteren</string>
|
||||
<string name="importVoucherVaultMessage">Kies het te importeren <i>vouchervault.json</i>-exportbestand.
|
||||
\nGa naar het exportmenu van Voucher Vault om een exportbestand samen te stellen.</string>
|
||||
<string name="importVoucherVaultMessage">Kies het te importeren exportbestand. \nGa naar het exportmenu van Voucher Vault om een exportbestand samen te stellen.</string>
|
||||
<string name="importVoucherVault">Importeren uit Voucher Vault</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Kies het te importeren genaamd <i>LoyaltyCardKeychain.csv</i>-exportbestand.
|
||||
\nGa naar het import-/exportmenu van Klantenkaartkluis om een exportbestand samen te stellen.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Kies het te importeren exportbestand. \nGa naar het import-/exportmenu van Klantenkaartkluis om een exportbestand samen te stellen.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importeren uit Klantenkaartkluis</string>
|
||||
<string name="importFidmeMessage">Kies het te importeren <i>fidme-export-request-xxxxxx.zip</i>-exportbestand en kies nadien de juiste barcodes.
|
||||
\nGa naar je FidMe-profiel en druk op ‘Gegevensbescherming’ om een exportbestand samen te stellen.</string>
|
||||
<string name="importCatimaMessage">Kies het te importeren <i>Catima.zip</i>-exportbestand.
|
||||
\nGa naar het import-/exportmenu van Catima op een ander apparaat om een exportbestand samen te stellen.</string>
|
||||
<string name="importFidmeMessage">Kies het te importeren exportbestand en kies nadien de juiste barcodes. \nGa naar je FidMe-profiel en druk op ‘Gegevensbescherming’ om een exportbestand samen te stellen.</string>
|
||||
<string name="importCatimaMessage">Kies het te importeren exportbestand. \nGa naar het import-/exportmenu van Catima op een ander apparaat om een exportbestand samen te stellen.</string>
|
||||
<string name="importFidme">Importeren uit FidMe</string>
|
||||
<string name="importCatima">Importeren uit Catima</string>
|
||||
<string name="errorReadingImage">De afbeelding kan niet worden uitgelezen</string>
|
||||
@@ -113,8 +109,8 @@
|
||||
<string name="barcodeId">Barcodewaarde</string>
|
||||
<string name="unsupportedBarcodeType">Dit type barcode kan nog niet worden getoond - we hopen hiervoor in een nieuwere versie ondersteuning toe te voegen.</string>
|
||||
<string name="wrongValueForBarcodeType">Deze waarde komt niet overeen met het gekozen barcodetype</string>
|
||||
<string name="app_resources">Vrije externe bronnen: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Vrije externe bibliotheken: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Externe bronnen: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Externe bibliotheken: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Auteursrecht © 2019–<xliff:g>%d</xliff:g> Sylvia van Os en bijdragers</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Ik wil kaarten met je delen</string>
|
||||
<string name="no">Nee</string>
|
||||
@@ -129,7 +125,7 @@
|
||||
<string name="backImageDescription">Achterzijde van kaart</string>
|
||||
<string name="frontImageDescription">Voorzijde van kaart</string>
|
||||
<string name="passwordRequired">Voer het wachtwoord in</string>
|
||||
<string name="failedGeneratingShareURL">De te delen link kan niet worden gegenereerd. Meld deze fout.</string>
|
||||
<string name="failedGeneratingShareURL">De te delen link kan niet worden gegenereerd</string>
|
||||
<string name="turn_flashlight_off">Zaklamp uitzetten</string>
|
||||
<string name="turn_flashlight_on">Zaklamp aanzetten</string>
|
||||
<plurals name="selectedCardCount">
|
||||
@@ -182,7 +178,7 @@
|
||||
<string name="group_updated">De groep is bijgewerkt</string>
|
||||
<string name="group_name_is_empty">Voer een groepsnaam in</string>
|
||||
<string name="editGroup">Groep bewerken: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noGiftCardsGroup">Voeg kaarten toe om ze hier te kunnen groeperen.</string>
|
||||
<string name="noGiftCardsGroup">Voeg kaarten toe om ze hier te kunnen groeperen</string>
|
||||
<string name="group_edit">Groep bewerken</string>
|
||||
<string name="setIcon">Miniatuur instellen</string>
|
||||
<string name="selectColor">Kies een kleur</string>
|
||||
@@ -197,17 +193,12 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Zwarte achtergrond gebruiken bij donker thema</string>
|
||||
<string name="include_if_asking_support">Als je ondersteuning wilt, voorzie je verzoek dan van de volgende informatie:</string>
|
||||
<string name="settings_card_orientation">Barcode-oriëntatie</string>
|
||||
<string name="settings_follow_system_orientation">Systeeminstellingen volgen</string>
|
||||
<string name="settings_portrait_orientation">Verticaal</string>
|
||||
<string name="settings_lock_on_opening_orientation">Oriëntatie vergrendelen na openen van kaart</string>
|
||||
<string name="duplicateCard">Klonen</string>
|
||||
<string name="archive">Archiveren</string>
|
||||
<string name="unarchive">Dearchiveren</string>
|
||||
<string name="archived">De kaart is gearchiveerd</string>
|
||||
<string name="unarchived">De kaart is gedearchiveerd</string>
|
||||
<string name="settings_landscape_orientation">Horizontaal</string>
|
||||
<string name="failedLaunchingPhotoPicker">Er is geen ondersteunde galerij-app aangetroffen</string>
|
||||
<string name="failedLaunchingPhotoPicker">Er is geen ondersteunde afbeeldingkiezer aangetroffen</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kaart (<xliff:g id="archivedCount">%2$d</xliff:g> gearchiveerd)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kaarten (<xliff:g id="archivedCount">%2$d</xliff:g> gearchiveerd)</item>
|
||||
@@ -237,8 +228,8 @@
|
||||
<string name="switchToFrontImage">Voorzijde tonen</string>
|
||||
<string name="switchToBackImage">Achterzijde tonen</string>
|
||||
<string name="switchToBarcode">Barcode tonen</string>
|
||||
<string name="openFrontImageInGalleryApp">Voorzijde openen in galerij-app</string>
|
||||
<string name="openBackImageInGalleryApp">Achterzijde openen in galerij-app</string>
|
||||
<string name="openFrontImageInGalleryApp">Voorzijde openen in afbeeldingsweergave-app</string>
|
||||
<string name="openBackImageInGalleryApp">Achterzijde openen in afbeeldingsweergave-app</string>
|
||||
<string name="donate">Doneren</string>
|
||||
<string name="icon_header_click_text">Houd lang ingedrukt om miniatuur te bewerken</string>
|
||||
<string name="show_balance">Saldo tonen</string>
|
||||
@@ -269,9 +260,8 @@
|
||||
<string name="addWithoutBarcode">Kaart zonder barcode toevoegen</string>
|
||||
<string name="field_must_not_be_empty">Dit veld is vereist</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Altijd draaien (negeert systeeminstellingen)</string>
|
||||
<string name="add_manually_warning_title">Scannen wordt aangeraden</string>
|
||||
<string name="add_manually_warning_message">Bij sommige winkels wijkt de barcodewaarde af van het nummer op de kaart. Hierdoor werkt het handmatig invoeren van een barcode niet altijd. Het wordt sterk aangeraden om in plaats daarvan de barcode met je camera te scannen. Wilt u nog steeds doorgaan?</string>
|
||||
<string name="add_manually_warning_message">Bij sommige kaarten wijkt de barcodewaarde af van het nummer op de kaart. Hierdoor werkt het handmatig invoeren van een barcode niet altijd. Het wordt aangeraden om in plaats daarvan de barcode met je camera te scannen. Wilt u nog steeds doorgaan?</string>
|
||||
<string name="continue_">Ga door</string>
|
||||
<string name="spend">Geef uit</string>
|
||||
<string name="receive">Ontvang</string>
|
||||
@@ -299,12 +289,20 @@
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPkpass">Kies een Passbook bestand (.pkpass)</string>
|
||||
<string name="addFromPkpass">Kies een Passbook bestand (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Dit bestand wordt niet ondersteund</string>
|
||||
<string name="generic_error_please_retry">Sorry, er ging iets mis. Probeer het opnieuw.</string>
|
||||
<string name="generic_error_please_retry">Er is een fout opgetreden</string>
|
||||
<string name="sort_by_valid_from">Op geldig vanaf</string>
|
||||
<string name="width">Breedte</string>
|
||||
<string name="setBarcodeWidth">Stel Barcodebreedte in</string>
|
||||
<string name="setBarcodeWidth">Stel barcodebreedte in</string>
|
||||
<string name="card_list_widget_name">Kaartenlijst</string>
|
||||
<string name="card_list_widget_empty">Zodra er kaarten in Catima toegevoegd zijn worden deze hier getoond. Heb je al kaarten? Controleer dan of deze niet gearchiveerd zijn.</string>
|
||||
<string name="cardWithNumber">Kaart <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kaart <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Draai niet je telefoon, dit annuleert de actie</string>
|
||||
<string name="acra_catima_has_crashed">Sorry, <xliff:g id="app_name">%s</xliff:g> is gecrasht. Je kunt ons helpen dit op te lossen door een foutrapport te sturen.</string>
|
||||
<string name="acra_explain_crash">Voeg als het kan wat meer details toe over wat je aan het doen was:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> foutrapport</string>
|
||||
<string name="pref_enable_acra">Vraag om foutrapporten te versturen</string>
|
||||
<string name="pref_enable_acra_summary">Als dit aanstaat, zal je gevraagd worden om foutrapporten te sturen als de app crasht. Dit zal nooit automatisch gebeuren.</string>
|
||||
</resources>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Szukaj</string>
|
||||
<string name="action_add">Dodaj</string>
|
||||
<string name="noGiftCards">Kliknij przycisk + plus, aby dodać kartę lub zaimportuj z ⋮ menu.</string>
|
||||
<string name="noGiftCards">Kliknij przycisk + plus, aby dodać kartę lub zaimportuj z ⋮ menu</string>
|
||||
<string name="noMatchingGiftCards">Brak wyników. Spróbuj zmienić treść zapytania.</string>
|
||||
<string name="storeName">Nazwa</string>
|
||||
<string name="note">Notatka</string>
|
||||
@@ -20,11 +20,11 @@
|
||||
<string name="scanCardBarcode">Zeskanuj kod kreskowy</string>
|
||||
<string name="cardShortcut">Skrót karty</string>
|
||||
<string name="noCardsMessage">Najpierw dodaj kartę</string>
|
||||
<string name="noCardExistsError">Nie można znaleźć tej karty lojalnościowej</string>
|
||||
<string name="failedParsingImportUriError">Nie można przeanalizować identyfikatora importu URI</string>
|
||||
<string name="noCardExistsError">Nie można znaleźć tej karty</string>
|
||||
<string name="failedParsingImportUriError">Nie można przeanalizować identyfikatora importu URL</string>
|
||||
<string name="importExport">Importuj/Eksportuj</string>
|
||||
<string name="exportName">Eksportuj</string>
|
||||
<string name="importExportHelp">Kopie zapasowe umożliwiają przeniesienie kart na inne urządzenie.</string>
|
||||
<string name="importExportHelp">Kopie zapasowe umożliwiają przeniesienie danych na inne urządzenie.</string>
|
||||
<string name="importSuccessfulTitle">Zaimportowano</string>
|
||||
<string name="importFailedTitle">Importowanie nie powiodło się</string>
|
||||
<string name="importFailed">Nie udało się zaimportować</string>
|
||||
@@ -34,7 +34,7 @@
|
||||
<string name="importing">Importowanie…</string>
|
||||
<string name="exporting">Eksportowanie…</string>
|
||||
<string name="importOptionFilesystemTitle">Importuj z systemu plików</string>
|
||||
<string name="importOptionFilesystemExplanation">Wybierz określony plik z systemu plików.</string>
|
||||
<string name="importOptionFilesystemExplanation">Wybierz określony plik z systemu plików</string>
|
||||
<string name="importOptionFilesystemButton">Z systemu plików</string>
|
||||
<string name="about">O aplikacji</string>
|
||||
<string name="app_license">Wolne oprogramowanie typu copyleft, na licencji GPLv3+</string>
|
||||
@@ -59,7 +59,7 @@
|
||||
<string name="starImage">Gwiazdka ulubionych</string>
|
||||
<string name="app_copyright_old">Na podstawie Loyalty Card Keychain
|
||||
\nWszelkie prawa zastrzeżone © 2016–2020 Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Dane zostaną zapisane w wybranym przez Ciebie miejscu.</string>
|
||||
<string name="exportOptionExplanation">Dane zostaną zapisane w wybranym przez ciebie miejscu.</string>
|
||||
<string name="unstar">Usuń z ulubionych</string>
|
||||
<string name="star">Dodaj do ulubionych</string>
|
||||
<string name="noBarcode">Brak kodu kreskowego</string>
|
||||
@@ -136,7 +136,7 @@
|
||||
<string name="leaveWithoutSaveTitle">Wyjdź</string>
|
||||
<string name="moveDown">Przesuń w dół</string>
|
||||
<string name="moveUp">Przesuń w górę</string>
|
||||
<string name="failedOpeningFileManager">Najpierw zainstaluj menadżera plików.</string>
|
||||
<string name="failedOpeningFileManager">Nie można otworzyć menadżera plików.</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> karta</item>
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> karty</item>
|
||||
@@ -174,8 +174,8 @@
|
||||
<string name="sort_by">Sortuj według</string>
|
||||
<string name="credits">Podziękowania</string>
|
||||
<string name="help_translate_this_app">Pomóż przetłumaczyć tę aplikację</string>
|
||||
<string name="source_repository">Repozytorium Źródłowe</string>
|
||||
<string name="report_error">Zgłoś Błąd</string>
|
||||
<string name="source_repository">Repozytorium źródłowe</string>
|
||||
<string name="report_error">Zgłoś błąd</string>
|
||||
<string name="setIcon">Ustaw miniaturę</string>
|
||||
<string name="on_github">na GitHub\'ie</string>
|
||||
<string name="selectColor">Wybierz kolor</string>
|
||||
@@ -184,7 +184,7 @@
|
||||
<string name="rate_this_app">Oceń tę aplikację</string>
|
||||
<string name="license">Licencja</string>
|
||||
<string name="on_google_play">w Google Play</string>
|
||||
<string name="noGiftCardsGroup">Utwórz karty i przypisz je do grup w tym miejscu.</string>
|
||||
<string name="noGiftCardsGroup">Utwórz karty i przypisz je do grup w tym miejscu</string>
|
||||
<string name="reverse">...w odwrotnej kolejności</string>
|
||||
<string name="translate_platform">na Weblate</string>
|
||||
<string name="sort">Sortuj</string>
|
||||
@@ -206,18 +206,13 @@
|
||||
</plurals>
|
||||
<string name="include_if_asking_support">Jeśli chcesz poprosić o pomoc, podaj następujące informacje:</string>
|
||||
<string name="settings_oled_dark">Całkowicie czarne tło dla ciemnego motywu</string>
|
||||
<string name="settings_card_orientation">Orientacja ekranu</string>
|
||||
<string name="settings_follow_system_orientation">Śledź orientację systemową</string>
|
||||
<string name="duplicateCard">Duplikuj</string>
|
||||
<string name="starred">Oznaczone gwiazdką</string>
|
||||
<string name="settings_landscape_orientation">Poziomowy</string>
|
||||
<string name="settings_lock_on_opening_orientation">Blokuj do ustawionej orientacji przy otwieraniu karty</string>
|
||||
<string name="settings_portrait_orientation">Portretowy</string>
|
||||
<string name="archive">Archiwum</string>
|
||||
<string name="unarchive">Cofnij archiwizację</string>
|
||||
<string name="archived">Karta zarchiwizowana</string>
|
||||
<string name="unarchived">Karta niezarchiwizowana</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nie można odnaleźć aplikacji galeria</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nie można odnaleźć obsługiwanej galerii.</string>
|
||||
<string name="previousCard">Poprzedni</string>
|
||||
<string name="nextCard">Następny</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
@@ -235,7 +230,7 @@
|
||||
<string name="updateBalanceTitle">Ile wydałeś lub otrzymałeś?</string>
|
||||
<string name="updateBalanceHint">Wpisz sumę</string>
|
||||
<string name="updateBalance">Zaktualizuj balans</string>
|
||||
<string name="cameraPermissionDeniedTitle">Odmówiono dostępu do kamery</string>
|
||||
<string name="cameraPermissionDeniedTitle">Brak dostępu do kamery</string>
|
||||
<string name="newBalanceSentence">Nowe saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importCards">Importuj karty</string>
|
||||
<string name="storageReadPermissionRequired">Pozwolenie na odczytanie pamięci masowej potrzebne do wykonania tej czynności…</string>
|
||||
@@ -248,10 +243,10 @@
|
||||
<string name="switchToFrontImage">Przełącz na obraz z przodu</string>
|
||||
<string name="switchToBackImage">Przełącz na obraz z tyłu</string>
|
||||
<string name="switchToBarcode">Przełącz na kod kreskowy</string>
|
||||
<string name="openFrontImageInGalleryApp">Otwórz obraz z przodu w aplikacji galeria</string>
|
||||
<string name="openFrontImageInGalleryApp">Otwórz obraz z przodu w galerii</string>
|
||||
<string name="setBarcodeHeight">Ustaw wysokość kodu kreskowego</string>
|
||||
<string name="donate">Darowizna</string>
|
||||
<string name="openBackImageInGalleryApp">Otwórz obraz z powrotem w aplikacji galerii</string>
|
||||
<string name="openBackImageInGalleryApp">Otwórz obraz z powrotem w galerii</string>
|
||||
<string name="icon_header_click_text">Przytrzymaj, aby edytować miniaturę</string>
|
||||
<string name="show_name_below_image_thumbnail">Pokaż nazwę pod miniaturką zdjęcia</string>
|
||||
<string name="show_balance">Pokaż balans</string>
|
||||
@@ -281,7 +276,6 @@
|
||||
<string name="addWithoutBarcode">Dodaj kartę bez kodu kreskowego</string>
|
||||
<string name="field_must_not_be_empty">Pole nie może być puste</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Zawsze obracaj (ignoruje ustawienia systemowe)</string>
|
||||
<string name="continue_">Kontynuuj</string>
|
||||
<string name="addFromPdfFile">Wybierz plik PDF</string>
|
||||
<string name="errorReadingFile">Nie można odczytać pliku</string>
|
||||
@@ -321,4 +315,9 @@
|
||||
<string name="card_list_widget_name">Lista kart</string>
|
||||
<string name="cardWithNumber">Karta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Proszę nie obracać urządzenia, gdyż anuluje to obecne zadanie</string>
|
||||
<string name="acra_explain_crash">Jeśli możliwe, dodaj więcej szczegółów na temat co robiłeś/aś tutaj:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> raport błędu</string>
|
||||
<string name="pref_enable_acra">Zapytaj o wysłanie raportu błędu</string>
|
||||
<string name="pref_enable_acra_summary">Kiedy zaznaczone, będziesz proszony/a o zgłoszenie raportu błędu, gdyby zaistniał. Raporty błędu nigdy nie są wysyłane automatycznie.</string>
|
||||
</resources>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="action_search">Pesquisar</string>
|
||||
<string name="action_add">Adicionar</string>
|
||||
<string name="noGiftCards">Clique no botão \"+\" para adicionar um cartão ou importar a partir do menu \"⋮\".</string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e, em seguida, atribua-os ao grupo aqui.</string>
|
||||
<string name="noGiftCards">Clique no botão \"+\" para adicionar um cartão ou importar a partir do menu \"⋮\"</string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e, em seguida, atribua-os ao grupo aqui</string>
|
||||
<string name="noMatchingGiftCards">Nenhum resultado. Tente alterar sua pesquisa.</string>
|
||||
<string name="storeName">Nome</string>
|
||||
<string name="note">Nota</string>
|
||||
@@ -53,7 +53,7 @@
|
||||
<string name="noCardExistsError">Não foi possível encontrar esse cartão</string>
|
||||
<string name="failedParsingImportUriError">Não foi possível analisar o URI de importação</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Fazer backup de seus dados permite movê-los para outro dispositivo.</string>
|
||||
<string name="importExportHelp">Fazer backup de seus dados permite movê-los para outro dispositivo</string>
|
||||
<string name="importSuccessfulTitle">Importado</string>
|
||||
<string name="importFailedTitle">Falha na importação</string>
|
||||
<string name="importFailed">Não foi possível importar</string>
|
||||
@@ -64,8 +64,8 @@
|
||||
<string name="permissionReadCardsLabel">Ler cartões Catima</string>
|
||||
<string name="permissionReadCardsDescription">ler seus cartões Catima e todos os seus detalhes, incluindo notas e imagens</string>
|
||||
<string name="cameraPermissionDeniedTitle">Não foi possível acessar a câmera</string>
|
||||
<string name="exportOptionExplanation">Os dados serão gravados em um local de sua escolha.</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um arquivo específico nos seus arquivos.</string>
|
||||
<string name="exportOptionExplanation">Os dados serão gravados em um local de sua escolha</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um arquivo específico nos seus arquivos</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> ponto</item>
|
||||
<item quantity="many"><xliff:g>%s</xliff:g> pontos</item>
|
||||
@@ -77,13 +77,9 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> cartões</item>
|
||||
</plurals>
|
||||
<string name="noCameraFoundGuideText">Seu dispositivo parece não ter uma câmera. Se tiver, tente reiniciar o dispositivo. Caso contrário, tente usar o botão \"Mais opções\" abaixo para adicionar um código de barras manualmente.</string>
|
||||
<string name="settings_follow_system_orientation">Padrão do sistema</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloquear para orientação usada ao abrir o cartão</string>
|
||||
<string name="importCatimaMessage">Selecionar arquivo <i>catima.zip</i>, exportado do Catima, para importação.
|
||||
\nPrimeiro, crie-o pelo menu Importar/Exportar em outro aplicativo Catima clicando em Exportar.</string>
|
||||
<string name="importCatimaMessage">Selecione o arquivo exportado do Catima para importação. \nFaça isso a partir do menu \"Importar/Exportar\" em outro aplicativo Catima tocando em Exportar.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar do Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecionar arquivo <i>LoyaltyCardKeychain.csv</i>, exportado do Loyalty Card Keychain, para importação.
|
||||
\nPrimeiro, crie-o pelo menu Importar/Exportar no Loyalty Card Keychain clicando em Exportar.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione o arquivo exportado do Loyalty Card Keychain, para importação. \nFaça isso a partir do menu \"Importar/Exportar\" no Loyalty Card Keychain tocando em Exportar.</string>
|
||||
<string name="setBarcodeId">Definir valor do código de barras</string>
|
||||
<string name="importVoucherVault">Importar de Cofre de Vouchers</string>
|
||||
<string name="barcodeId">Valor no código de barras</string>
|
||||
@@ -100,10 +96,10 @@
|
||||
<string name="takePhoto">Tirar uma foto</string>
|
||||
<string name="updateBarcodeQuestionTitle">Atualizar valor do código de barras?</string>
|
||||
<string name="exportPasswordHint">Insira sua senha</string>
|
||||
<string name="passwordRequired">Por favor, insira a senha</string>
|
||||
<string name="passwordRequired">Insira a senha</string>
|
||||
<string name="exportPassword">Defina uma senha para proteger o arquivo exportado (opcional)</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="add_manually_warning_message">Em algumas lojas, o valor do código de barras é diferente do número escrito no cartão. Por esse motivo, inserir um código de barras manualmente pode nem sempre funcionar. É altamente recomendável digitalizar o código de barras com a câmera. Você ainda deseja continuar?</string>
|
||||
<string name="add_manually_warning_message">Em alguns cartões, o valor do código de barras difere do número escrito no cartão. Por isso, inserir o código de barras manualmente pode não funcionar. Recomenda-se escanear o código de barras com a câmera. Deseja continuar?</string>
|
||||
<string name="about">Sobre</string>
|
||||
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versão: <xliff:g id="version">%s</xliff:g></string>
|
||||
@@ -116,12 +112,12 @@
|
||||
<string name="importOptionFilesystemButton">A partir do Sistema de Arquivos</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Item favorito</string>
|
||||
<string name="app_libraries">Bibliotecas open source de terceiros : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos open source de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas de terceiros : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="updateBarcodeQuestionText">Você mudou o ID. Também quer atualizar o código de barras para usar o mesmo valor?</string>
|
||||
<string name="yes">Sim</string>
|
||||
<string name="no">Não</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar uma URL compartilhável. Por favor, reporte isto.</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar uma URL compartilhável</string>
|
||||
<string name="turn_flashlight_on">Ligar lanterna</string>
|
||||
<string name="turn_flashlight_off">Desligar lanterna</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
@@ -154,7 +150,7 @@
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archived">Cartão arquivado</string>
|
||||
<string name="unarchived">Cartão desarquivado</string>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi possível encontrar um aplicativo de galeria compatível</string>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi possível encontrar um seletor de imagens compatível</string>
|
||||
<string name="failedToOpenUrl">Instale um navegador primeiro</string>
|
||||
<string name="welcome">Bem-vindo(a) ao Catima</string>
|
||||
<string name="importCards">Importar cartões</string>
|
||||
@@ -162,8 +158,8 @@
|
||||
<string name="switchToBarcode">Mudar para código de barras</string>
|
||||
<string name="switchToFrontImage">Mudar para imagem frontal</string>
|
||||
<string name="switchToBackImage">Mudar para imagem traseira</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imagem frontal no aplicativo da galeria</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imagem traseira no aplicativo da galeria</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imagem frontal no visualizador de imagens</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imagem traseira no visualizador de imagens</string>
|
||||
<string name="setBarcodeHeight">Definir altura do código de barras</string>
|
||||
<string name="donate">Doar</string>
|
||||
<string name="icon_header_click_text">Pressione e segure para editar a miniatura</string>
|
||||
@@ -188,7 +184,7 @@
|
||||
<string name="sort_by_expiry">Expiração</string>
|
||||
<string name="credits">Créditos</string>
|
||||
<string name="license">Licença</string>
|
||||
<string name="source_repository">Repositório de Origem</string>
|
||||
<string name="source_repository">Repositório de origem</string>
|
||||
<string name="on_github">no GitHub</string>
|
||||
<string name="translate_platform">no Weblate</string>
|
||||
<string name="help_translate_this_app">Ajude a traduzir este aplicativo</string>
|
||||
@@ -223,15 +219,11 @@
|
||||
<string name="settings_display_barcode_max_brightness_summary">Necessário para alguns scanners funcionarem</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="settings_follow_sensor_orientation">Sempre girar (ignora as configurações do sistema)</string>
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="settings_light_theme">Claro</string>
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_dark_theme">Escuro</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barras para o topo da tela</string>
|
||||
<string name="settings_card_orientation">Orientação da tela</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
<string name="settings_keep_screen_on_summary">Desativa o tempo limite de tela enquanto estiver vendo um cartão</string>
|
||||
<string name="importSuccessful">Dados importados</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desativa bloqueio de tela enquanto estiver vendo um cartão</string>
|
||||
@@ -242,10 +234,10 @@
|
||||
<string name="settings_allow_content_provider_read_summary">Aplicativos ainda precisarão pedir permissão para ter acesso concedido</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="exportSuccessful">Dados exportados</string>
|
||||
<string name="noGroups">Clique no botão \"+\" para adicionar grupos a serem categorizados.</string>
|
||||
<string name="noGroups">Clique no botão \"+\" para adicionar grupos a serem categorizados</string>
|
||||
<string name="group_name_already_in_use">Nome do grupo já em uso</string>
|
||||
<string name="deleteConfirmationGroup">Excluir grupo?</string>
|
||||
<string name="failedOpeningFileManager">Instale um gerenciador de arquivos primeiro.</string>
|
||||
<string name="failedOpeningFileManager">Falha ao abrir o gerenciador de arquivos</string>
|
||||
<string name="enter_group_name">Inserir nome do grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
<string name="noGroupCards">Este grupo está vazio</string>
|
||||
@@ -277,10 +269,8 @@
|
||||
<string name="balanceParsingFailed">Saldo inválido</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
<string name="importFidme">Importar de FidMe</string>
|
||||
<string name="importFidmeMessage">Selecione o arquivo <i>fidme-export-request-xxxxxx.zip</i>, exportado de FidMe, para importação e em seguida selecione o tipo de código de barras manualmente.
|
||||
\nCrie-o pelo seu perfil no FidMe escolhendo \'Proteção de Dados\' (Data Protection) e então clicando em \"Extrair meus dados\".</string>
|
||||
<string name="importVoucherVaultMessage">Selecionar arquivo<i>vouchervault.json</i>, exportado de Voucher Vault, para importação.
|
||||
\nPrimeiro, crie-o pressionando em Exportar no Voucher Vault.</string>
|
||||
<string name="importFidmeMessage">Selecione o arquivo exportado do FidMe para importação e em seguida selecione o tipo de código de barras manualmente. \nCrie-o pelo seu perfil no FidMe escolhendo \"Proteção de Dados\" (Data Protection) e então tocando em \"Extrair meus dados\".</string>
|
||||
<string name="importVoucherVaultMessage">Selecione o arquivo exportado de Voucher Vault, para importação. \nFaça isso tocando em Exportar no Voucher Vault.</string>
|
||||
<string name="enter_card_id">Insira o ID ou texto escrito no seu cartão</string>
|
||||
<string name="manually_enter_barcode_instructions">Insira o ID ou texto escrito no seu cartão e clique no código de barras que se parece com o do seu cartão.</string>
|
||||
<string name="app_license">Software livre com copyleft, licenciado sob a licença GPLv3+</string>
|
||||
@@ -307,12 +297,18 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="unsupportedFile">Este arquivo não é suportado</string>
|
||||
<string name="addFromPkpass">Selecionar um arquivo do gerenciador de senhas (.pkpass / .pkpasses)</string>
|
||||
<string name="generic_error_please_retry">Desculpe, alguma coisa deu errado, por favor tente novamente...</string>
|
||||
<string name="generic_error_please_retry">Algo deu errado</string>
|
||||
<string name="sort_by_valid_from">Válido a partir de</string>
|
||||
<string name="width">Largura</string>
|
||||
<string name="setBarcodeWidth">Definir largura do código de barras</string>
|
||||
<string name="card_list_widget_name">Lista de cartões</string>
|
||||
<string name="card_list_widget_empty">Depois que você adicionar alguns cartões de fidelidade no Catima, eles aparecerão aqui. Se você tiver cartões, verifique se eles não estão todos arquivados.</string>
|
||||
<string name="cardWithNumber">Cartão <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Não gire o dispositivo, pois isso cancelará a ação</string>
|
||||
<string name="acra_catima_has_crashed">Lamentamos, mas o <xliff:g id="app_name">%s</xliff:g> travou. Ajude-nos a corrigir esse problema enviando um relatório de erro.</string>
|
||||
<string name="acra_explain_crash">Se possível, acrescente mais detalhes sobre o que você estava fazendo aqui:</string>
|
||||
<string name="acra_crash_email_subject">Relatório de falha em <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Solicitar o envio de relatórios de falhas</string>
|
||||
<string name="pref_enable_acra_summary">Quando ativado, você será solicitado a relatar uma falha quando isto ocorrer. Os relatórios de falhas nunca são enviados automaticamente.</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Adicionar</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um ficheiro específico a partir do sistema de ficheiros.</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um ficheiro específico do sistema de ficheiros</string>
|
||||
<string name="action_search">Pesquisa</string>
|
||||
<string name="star">Adicionar aos favoritos</string>
|
||||
<string name="noMatchingGiftCards">Sem resultados. Tente alterar a sua pesquisa.</string>
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="edit">Editar</string>
|
||||
<string name="noGiftCards">Clique no botão + para adicionar um cartão ou importe-o no menu ⋮.</string>
|
||||
<string name="noGiftCards">Clique no botão + para adicionar um cartão ou importe-o no menu ⋮</string>
|
||||
<string name="noBarcode">Sem código de barras</string>
|
||||
<string name="unstar">Retirar dos favoritos</string>
|
||||
<string name="importOptionFilesystemButton">Do sistema de ficheiros</string>
|
||||
@@ -36,10 +36,10 @@
|
||||
<string name="noCardsMessage">Adicione um cartão primeiro</string>
|
||||
<string name="noCardExistsError">Não foi possível encontrar esse cartão</string>
|
||||
<string name="failedParsingImportUriError">Não foi possível analisar o URI de importação</string>
|
||||
<string name="importExport">Importar / Exportar</string>
|
||||
<string name="importExport">Importar/exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importSuccessful">Dados importados</string>
|
||||
<string name="noGroups">Clique no botão + para adicionar grupos para categorização.</string>
|
||||
<string name="noGroups">Clique no botão + para adicionar grupos para a categorização</string>
|
||||
<string name="noGroupCards">Este grupo está vazio</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quero partilhar um cartão</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar o ecrã</string>
|
||||
@@ -58,11 +58,11 @@
|
||||
<string name="selectBarcodeTitle">Selecionar código de barras</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Favorito</string>
|
||||
<string name="failedOpeningFileManager">Instalar primeiro um gestor de ficheiros.</string>
|
||||
<string name="failedOpeningFileManager">Falha ao abrir o gestor de ficheiros</string>
|
||||
<string name="moveUp">Subir</string>
|
||||
<string name="moveDown">Descer</string>
|
||||
<string name="leaveWithoutSaveTitle">Sair</string>
|
||||
<string name="importExportHelp">A cópia de segurança dos seus dados permite-lhe movê-los para outro dispositivo.</string>
|
||||
<string name="importExportHelp">A cópia de segurança dos seus dados permite-lhe movê-los para outro dispositivo</string>
|
||||
<string name="importSuccessfulTitle">Importado</string>
|
||||
<string name="importFailedTitle">A importação falhou</string>
|
||||
<string name="importFailed">Não foi possível importar</string>
|
||||
@@ -76,18 +76,17 @@
|
||||
<string name="chooseImportType">Importar dados de</string>
|
||||
<string name="card">Cartão</string>
|
||||
<string name="expiryStateSentence">Expiram: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos livres de terceiros: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas livres de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos de terceiros: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="takePhoto">Tirar uma fotografia</string>
|
||||
<string name="yes">Sim</string>
|
||||
<string name="exportPassword">Defina uma palavra-passe para proteger a exportação (opcional)</string>
|
||||
<string name="exportPasswordHint">Digite a palavra-passe</string>
|
||||
<string name="setBarcodeId">Definir o valor do código de barras</string>
|
||||
<string name="sameAsCardId">Igual ao identificador</string>
|
||||
<string name="importFidmeMessage">Selecione a exportação <i>fidme-export-request-xxxxxx.zip</i> do FidMe para importar e depois selecione os tipos de código de barras manualmente.
|
||||
\nPrimeiro crie a exportação no seu perfil do FidMe escolhendo a opção \"Proteção de dados\" e em seguida pressionando \"Extrair os meus dados\".</string>
|
||||
<string name="importFidmeMessage">Selecione o seu ficheiro exportado do FidMe a importae e depois selecione manualmente os tipos de código de barras. \nCrie-o no seu perfil do FidMe a escolher a opção \"Proteção de dados\" e depois pressionar \"Extrair os meus dados\".</string>
|
||||
<string name="barcodeId">Valor do código de barras</string>
|
||||
<string name="wrongValueForBarcodeType">O valor não é válido para o tipo de código de barras selecionado</string>
|
||||
<string name="wrongValueForBarcodeType">O valor é inválido para o tipo de código de barras selecionado</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quero partilhar alguns cartões</string>
|
||||
<string name="removeImage">Remover imagem</string>
|
||||
<string name="backImageDescription">Imagem de trás</string>
|
||||
@@ -130,19 +129,16 @@
|
||||
<string name="privacy_policy">Política de privacidade</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
<string name="importCatima">Importar do Catima</string>
|
||||
<string name="importCatimaMessage">Selecione a exportação <i>catima.zip</i> do Catima a importar.
|
||||
\nPrimeiro crie a exportação no menu \"Importar / exportar\" de outra aplicação Catima pressionando \"Exportar\" nesse menu.</string>
|
||||
<string name="importCatimaMessage">Selecione a exportação <i>catima.zip</i> do Catima a importar. \nPrimeiro crie a exportação no menu \"Importar / exportar\" de outra aplicação Catima pressionando \"Exportar\" nesse menu.</string>
|
||||
<string name="importFidme">Importar do FidMe</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar do Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione a exportação <i>LoyaltyCardKeychain.csv</i> do Loyalty Card Keychain para importar.
|
||||
\nPrimeiro crie a exportação no menu \"Importar / exportar\" no Loyalty Card Keychain pressionando \"Exportar\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione a exportação do Loyalty Card Keychain a importar. \nCrie a exportação no menu \"Importar/exportar\" no Loyalty Card Keychain a pressionar \"Exportar\".</string>
|
||||
<string name="importVoucherVault">Importar do Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecione a exportação <i>vouchervault.json</i> do Voucher Vault para importar.
|
||||
\nCrie-a primeiro pressionando a opção \"Exportar\" no Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Selecione a exportação do Voucher Vault a importar. \nCrie-a a pressionar a opção Exportar no Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras ainda não pode ser mostrado. Pode vir a ser suportado numa versão posterior da aplicação.</string>
|
||||
<string name="setFrontImage">Definir imagem frontal</string>
|
||||
<string name="setBackImage">Definir imagem de trás</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar um URL partilhável. Por favor reporte isto aos programadores.</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar um URL partilhável</string>
|
||||
<string name="turn_flashlight_on">Ligar lanterna</string>
|
||||
<string name="turn_flashlight_off">Desligar lanterna</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
@@ -156,7 +152,7 @@
|
||||
<string name="app_contributors">Tornado possível por: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">Ordenar</string>
|
||||
<string name="sort_by_name">Nome</string>
|
||||
<string name="sort_by_most_recently_used">Mais usados recentemente</string>
|
||||
<string name="sort_by_most_recently_used">Mais recentemente utilizado</string>
|
||||
<string name="sort_by_expiry">Validade</string>
|
||||
<string name="reverse">…na ordem inversa</string>
|
||||
<string name="sort_by">Ordenar por</string>
|
||||
@@ -169,7 +165,7 @@
|
||||
<string name="and_data_usage">e utilização de dados</string>
|
||||
<string name="rate_this_app">Avalie esta aplicação</string>
|
||||
<string name="on_google_play">no Google Play</string>
|
||||
<string name="exportOptionExplanation">Os dados serão guardados num local à sua escolha.</string>
|
||||
<string name="exportOptionExplanation">Os dados serão guardados num local à sua escolha</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Eliminar <xliff:g>%d</xliff:g> cartão</item>
|
||||
<item quantity="many">Eliminar <xliff:g>%d</xliff:g> cartões</item>
|
||||
@@ -187,7 +183,7 @@
|
||||
<string name="group_name_is_empty">O nome do grupo não pode ser vazio</string>
|
||||
<string name="group_updated">Grupo atualizado</string>
|
||||
<string name="editGroup">A editar grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e atribua-os depois ao grupo aqui.</string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e atribua-os depois ao grupo aqui</string>
|
||||
<string name="selectColor">Selecionar cor</string>
|
||||
<string name="setIcon">Definir miniatura</string>
|
||||
<string name="shortcutSelectCard">Selecione um cartão</string>
|
||||
@@ -204,11 +200,6 @@
|
||||
<string name="include_if_asking_support">Se quiser pedir ajuda, inclua as seguintes informações:</string>
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archive">Arquivar</string>
|
||||
<string name="settings_card_orientation">Orientação do ecrã</string>
|
||||
<string name="settings_follow_system_orientation">Definido no sistema</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloqueio da orientação usada ao abrir o cartão</string>
|
||||
<string name="unarchive">Desarquivar</string>
|
||||
<string name="archived">Cartão arquivado</string>
|
||||
<string name="unarchived">Cartão desarquivado</string>
|
||||
@@ -217,7 +208,7 @@
|
||||
<item quantity="many"><xliff:g>%1$d</xliff:g> cartões (<xliff:g id="archivedCount">%2$d</xliff:g> arquivados)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> cartões (<xliff:g id="archivedCount">%2$d</xliff:g> arquivados)</item>
|
||||
</plurals>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi encontrada nenhuma aplicação de galeria de imagens</string>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi possível encontrar um seletor de imagens compatível</string>
|
||||
<string name="nextCard">Próximo</string>
|
||||
<string name="previousCard">Anterior</string>
|
||||
<string name="failedToOpenUrl">Instale primeiro um navegador de Internet</string>
|
||||
@@ -242,13 +233,13 @@
|
||||
<string name="height">Altura</string>
|
||||
<string name="switchToBackImage">Mudar para a imagem de trás</string>
|
||||
<string name="switchToBarcode">Mudar para o código de barras</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir a imagem frontal na aplicação da galeria</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir a imagem traseira na aplicação da galeria</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imagem frontal na app visualizadora de imagens</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imagem traseira na app visualizadora de imagens</string>
|
||||
<string name="setBarcodeHeight">Definir altura do código de barras</string>
|
||||
<string name="donate">Doar</string>
|
||||
<string name="show_validity">Mostrar validade</string>
|
||||
<string name="show_balance">Mostrar saldo</string>
|
||||
<string name="permissionReadCardsLabel">Ler Cartões Catima</string>
|
||||
<string name="permissionReadCardsLabel">Ler cartões Catima</string>
|
||||
<string name="permissionReadCardsDescription">leia seus cartões do Catima e todos os seus detalhes, incluindo notas e imagens</string>
|
||||
<string name="show_note">Mostrar nota</string>
|
||||
<string name="show_name_below_image_thumbnail">Mostrar nome abaixo da miniatura do ícone</string>
|
||||
@@ -277,16 +268,15 @@
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="add_manually_warning_title">Recomenda-se a digitalização</string>
|
||||
<string name="add_manually_warning_message">Em algumas lojas, o valor do código de barras é diferente do número escrito no cartão. Por este motivo, a introdução manual de um código de barras pode nem sempre funcionar. Recomenda-se vivamente que, em vez disso, digitalize o código de barras com a sua câmara. Ainda quer continuar?</string>
|
||||
<string name="add_manually_warning_message">Em alguns cartões, o valor do código de barras é diferente do número escrito no cartão. Por este motivo, a introdução manual de um código de barras pode nem sempre funcionar. Recomenda-se que, em vez disso, digitalizar o código de barras com a sua câmara. Ainda quer continuar?</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Receber</string>
|
||||
<string name="amountParsingFailed">Montante inválido</string>
|
||||
<string name="settings_follow_sensor_orientation">Rodar sempre (ignora as definições do sistema)</string>
|
||||
<string name="addFromPdfFile">Selecionar um ficheiro PDF</string>
|
||||
<string name="errorReadingFile">Não foi possível ler o ficheiro</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Qual dos códigos de barras encontrados pretende utilizar?</string>
|
||||
<string name="pageWithNumber">Página <xliff:g>%d</xliff:g></string>
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gestor de ficheiros suportado</string>
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gestor de ficheiros apoiado</string>
|
||||
<string name="noCameraFoundGuideText">O seu dispositivo não parece ter uma câmara. Se tiver, tente reiniciar o dispositivo. Caso contrário, utilize o botão \"Mais opções\" abaixo para adicionar um código de barras de outra maneira.</string>
|
||||
<string name="importCancelled">Importação cancelada</string>
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
@@ -307,12 +297,18 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPkpass">Selecionar um ficheiro Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Este ficheiro não é suportado</string>
|
||||
<string name="generic_error_please_retry">Lamento, ocorreu um erro, tente novamente...</string>
|
||||
<string name="generic_error_please_retry">Ocorreu um erro</string>
|
||||
<string name="sort_by_valid_from">Válido a partir de</string>
|
||||
<string name="width">Largura</string>
|
||||
<string name="setBarcodeWidth">Definir a largura do código de barras</string>
|
||||
<string name="card_list_widget_name">Lista de cartões</string>
|
||||
<string name="card_list_widget_empty">Após adicionar cartões de fidelidade em Catima, eles aparecerão aqui. Se tem cartões, certifique-se de que não estão todos arquivados.</string>
|
||||
<string name="cardWithNumber">Cartão <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Não gire o dispositivo, pois cancelará a ação</string>
|
||||
<string name="acra_catima_has_crashed">Lamentamos, mas o <xliff:g id="app_name">%s</xliff:g> travou. Ajude-nos a corrigir este problema a enviar um relatório de erro.</string>
|
||||
<string name="acra_explain_crash">Se possível, acrescente detalhes sobre o que fazia aqui:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> relatório de travamento</string>
|
||||
<string name="pref_enable_acra">Solicitar o envio de relatórios de falhas</string>
|
||||
<string name="pref_enable_acra_summary">Quando ativado, relatar uma falha será solicitado quando isto ocorrer. Os relatórios de falhas nunca são enviados automaticamente.</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,38 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Pesquisa</string>
|
||||
<string name="action_search">Pesquisar</string>
|
||||
<string name="action_add">Adicionar</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> selecionado</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> selecionados</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> selecionados</item>
|
||||
</plurals>
|
||||
<string name="noGiftCards">Clique no botão + para adicionar um cartão ou importe-o no menu ⋮.</string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e atribua-os depois ao grupo aqui.</string>
|
||||
<string name="noMatchingGiftCards">Sem resultados. Tente alterar a sua pesquisa.</string>
|
||||
<string name="noGiftCards">Clique no botão \"+\" para adicionar um cartão ou importar a partir do menu \"⋮\"</string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e, em seguida, atribua-os ao grupo aqui</string>
|
||||
<string name="noMatchingGiftCards">Nenhum resultado. Tente alterar sua pesquisa.</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="addCardTitle">Adicionar cartão</string>
|
||||
<string name="noCardExistsError">Não foi possível encontrar esse cartão</string>
|
||||
<string name="importFailed">Não foi possível importar</string>
|
||||
<string name="exportSuccessfulTitle">Exportado</string>
|
||||
<string name="exportFailedTitle">A exportação falhou</string>
|
||||
<string name="exportFailedTitle">Falha na exportação</string>
|
||||
<string name="exportFailed">Não foi possível exportar</string>
|
||||
<string name="cameraPermissionDeniedTitle">Não foi possível aceder à câmara</string>
|
||||
<string name="importOptionFilesystemButton">Do sistema de ficheiros</string>
|
||||
<string name="cameraPermissionDeniedTitle">Não foi possível acessar a câmera</string>
|
||||
<string name="importOptionFilesystemButton">A partir do Sistema de Arquivos</string>
|
||||
<string name="about">Sobre</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar o ecrã</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar a tela</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Necessário para alguns scanners funcionarem</string>
|
||||
<string name="groups">Grupos</string>
|
||||
<string name="group_updated">Grupo atualizado</string>
|
||||
<string name="all">Todos</string>
|
||||
<string name="deleteConfirmationGroup">Eliminar o grupo?</string>
|
||||
<string name="deleteConfirmationGroup">Excluir grupo?</string>
|
||||
<string name="card">Cartão</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="app_loyalty_card_keychain">Chaveiro de cartão de fidelidade</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="yes">Sim</string>
|
||||
<string name="no">Não</string>
|
||||
<string name="settings_category_title_cards">Vista de cartão</string>
|
||||
<string name="settings_category_title_cards">Visualização do cartão</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
@@ -41,9 +40,9 @@
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="storeName">Nome</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="cardId">Identificador do cartão</string>
|
||||
<string name="cardId">ID do cartão</string>
|
||||
<string name="barcodeType">Tipo de código de barras</string>
|
||||
<string name="noBarcode">Sem código de barras</string>
|
||||
<string name="noBarcode">Nenhum código de barras</string>
|
||||
<string name="star">Adicionar aos favoritos</string>
|
||||
<string name="unstar">Remover dos favoritos</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
@@ -53,94 +52,89 @@
|
||||
<string name="confirm">Confirmar</string>
|
||||
<string name="deleteTitle">Excluir cartão</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Eliminar <xliff:g>%d</xliff:g> cartão</item>
|
||||
<item quantity="many">Eliminar <xliff:g>%d</xliff:g> cartões</item>
|
||||
<item quantity="other">Eliminar <xliff:g>%d</xliff:g> cartões</item>
|
||||
<item quantity="one">Excluir <xliff:g>%d</xliff:g> cartão</item>
|
||||
<item quantity="many">Excluir <xliff:g>%d</xliff:g> cartões</item>
|
||||
<item quantity="other">Excluir <xliff:g>%d</xliff:g> cartões</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">Eliminar este cartão permanentemente?</string>
|
||||
<string name="deleteConfirmation">Excluir esse cartão permanentemente?</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Eliminar o cartão <xliff:g>%d</xliff:g> permanentemente?</item>
|
||||
<item quantity="many">Eliminar os cartões <xliff:g>%d</xliff:g> permanentemente?</item>
|
||||
<item quantity="other">Eliminar os cartões <xliff:g>%d</xliff:g> permanentemente?</item>
|
||||
<item quantity="one">Excluir <xliff:g>%d</xliff:g> cartão permanentemente?</item>
|
||||
<item quantity="many">Excluir <xliff:g>%d</xliff:g> cartões permanentemente?</item>
|
||||
<item quantity="other">Excluir <xliff:g>%d</xliff:g> cartões permanentemente?</item>
|
||||
</plurals>
|
||||
<string name="ok">OK</string>
|
||||
<string name="share">Compartilhar</string>
|
||||
<string name="sendLabel">Enviar…</string>
|
||||
<string name="editCardTitle">Editar cartão</string>
|
||||
<string name="scanCardBarcode">Digitalizar código de barras</string>
|
||||
<string name="cardShortcut">Atalho do cartão</string>
|
||||
<string name="scanCardBarcode">Ler código de barras</string>
|
||||
<string name="cardShortcut">Atalho de cartões</string>
|
||||
<string name="noCardsMessage">Adicione um cartão primeiro</string>
|
||||
<string name="barcodeImageDescriptionWithType">Imagem do código de barras <xliff:g>%s</xliff:g></string>
|
||||
<string name="barcodeImageDescriptionWithType">Imagem <xliff:g>%s</xliff:g> do código de barras</string>
|
||||
<string name="failedParsingImportUriError">Não foi possível analisar o URI de importação</string>
|
||||
<string name="importExport">Importar / Exportar</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">A cópia de segurança dos seus dados permite-lhe movê-los para outro dispositivo.</string>
|
||||
<string name="importExportHelp">Fazer backup de seus dados permite movê-los para outro dispositivo</string>
|
||||
<string name="importSuccessfulTitle">Importado</string>
|
||||
<string name="importFailedTitle">A importação falhou</string>
|
||||
<string name="importing">A importar…</string>
|
||||
<string name="exporting">A exportar…</string>
|
||||
<string name="storageReadPermissionRequired">É necessária a permissão para ler o armazenamento para esta ação…</string>
|
||||
<string name="cameraPermissionRequired">É necessária a permissão para aceder à câmara para esta ação…</string>
|
||||
<string name="permissionReadCardsLabel">Ler Cartões Catima</string>
|
||||
<string name="permissionReadCardsDescription">leia os seus cartões do Catima e todos os seus pormenores, incluindo notas e imagens</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para digitalizar códigos de barras, o Catima tem de aceder à câmara. Clique aqui para mudar as configurações de permissão.</string>
|
||||
<string name="exportOptionExplanation">Os dados serão guardados num local à sua escolha.</string>
|
||||
<string name="importOptionFilesystemTitle">Importar do sistema de ficheiros</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um ficheiro específico a partir do sistema de ficheiros.</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019-<xliff:g>%d</xliff:g> Sylvia van Os e contribuidores</string>
|
||||
<string name="importFailedTitle">Falha na importação</string>
|
||||
<string name="importing">Importando…</string>
|
||||
<string name="exporting">Exportando…</string>
|
||||
<string name="storageReadPermissionRequired">Permissão para ler o armazenamento é necessário para esta ação…</string>
|
||||
<string name="cameraPermissionRequired">Permissão para acessar a câmera é necessária para esta ação…</string>
|
||||
<string name="permissionReadCardsLabel">Ler cartões Catima</string>
|
||||
<string name="permissionReadCardsDescription">ler seus cartões Catima e todos os seus detalhes, incluindo notas e imagens</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para ler códigos de barras, Catima precisará de acesso à sua câmera. Toque aqui para alterar suas configurações de permissão.</string>
|
||||
<string name="exportOptionExplanation">Os dados serão gravados em um local de sua escolha</string>
|
||||
<string name="importOptionFilesystemTitle">Importar dos seus arquivos</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um arquivo específico nos seus arquivos</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os e contribuidores</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os e contribuidores</string>
|
||||
<string name="app_copyright_old">Baseado no Loyalty Card Keychain \ndireitos de autor © 2016–2020 Branden Archer</string>
|
||||
<string name="app_license">Software livre de partilha sob a mesma licença e segundo a licença GPLv3+</string>
|
||||
<string name="about_title_fmt">Sobre o <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="app_copyright_old">Baseado no Loyalty Card Keychain \ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="app_license">Software livre com copyleft, licenciado sob a licença GPLv3+</string>
|
||||
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versão: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas livres de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas de terceiros : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Selecionar código de barras</string>
|
||||
<string name="app_resources">Recursos livres de terceiros: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Favorito</string>
|
||||
<string name="starImage">Item favorito</string>
|
||||
<string name="settings">Configurações</string>
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_light_theme">Claro</string>
|
||||
<string name="settings_dark_theme">Escuro</string>
|
||||
<string name="settings_card_orientation">Orientação do ecrã</string>
|
||||
<string name="settings_follow_system_orientation">Definido no sistema</string>
|
||||
<string name="settings_follow_sensor_orientation">Rodar sempre (ignora as definições do sistema)</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
<string name="settings_keep_screen_on">Manter ecrã ligado</string>
|
||||
<string name="settings_keep_screen_on_summary">Desativa o tempo limite do ecrã ao visualizar um cartão</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloqueio da orientação usada ao abrir o cartão</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Desativar bloqueio do ecrã</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desativa o bloqueio de ecrã ao visualizar um cartão</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permitir que outras apps acessem os meus dados</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Apps ainda terão que solicitar permissão para receber acesso</string>
|
||||
<string name="settings_use_volume_keys_navigation">Mudar de cartão usando os botões de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilize os botões de volume para alterar o cartão que é apresentado</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quero partilhar um cartão</string>
|
||||
<string name="settings_keep_screen_on">Manter tela ligada</string>
|
||||
<string name="settings_keep_screen_on_summary">Desativa o tempo limite de tela enquanto estiver vendo um cartão</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Previnir bloqueio de tela</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desativa bloqueio de tela enquanto estiver vendo um cartão</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permitir que outros aplicativos acessem meus dados</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Aplicativos ainda precisarão pedir permissão para ter acesso concedido</string>
|
||||
<string name="settings_use_volume_keys_navigation">Trocar de cartão usando botões de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Use os botões de volume para alterar qual cartão é exibido</string>
|
||||
<string name="intent_import_card_from_url_share_text">Eu quero compartilhar um cartão com você</string>
|
||||
<string name="importSuccessful">Dados importados</string>
|
||||
<string name="exportSuccessful">Dados exportados</string>
|
||||
<string name="enter_group_name">Introduza o nome do grupo</string>
|
||||
<string name="enter_group_name">Inserir nome do grupo</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="noGroups">Clique no botão + para adicionar grupos para categorização.</string>
|
||||
<string name="noGroups">Clique no botão \"+\" para adicionar grupos a serem categorizados</string>
|
||||
<string name="noGroupCards">Este grupo está vazio</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> cartão</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> cartões</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> cartões</item>
|
||||
</plurals>
|
||||
<string name="group_name_already_in_use">O nome do grupo já está a ser usado</string>
|
||||
<string name="group_name_is_empty">O nome do grupo não pode ser vazio</string>
|
||||
<string name="failedOpeningFileManager">Instalar primeiro um gestor de ficheiros.</string>
|
||||
<string name="moveUp">Subir</string>
|
||||
<string name="moveDown">Descer</string>
|
||||
<string name="group_name_already_in_use">Nome do grupo já em uso</string>
|
||||
<string name="group_name_is_empty">O nome do grupo não pode estar vazio</string>
|
||||
<string name="failedOpeningFileManager">Falha ao abrir o gerenciador de arquivos</string>
|
||||
<string name="moveUp">Mover para cima</string>
|
||||
<string name="moveDown">Mover para baixo</string>
|
||||
<string name="leaveWithoutSaveTitle">Sair</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Sair sem guardar?</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Sair sem salvar?</string>
|
||||
<string name="addManually">Insira o código de barras manualmente</string>
|
||||
<string name="addFromImage">Selecione uma imagem da galeria</string>
|
||||
<string name="addFromImage">Selecionar uma imagem da galeria</string>
|
||||
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">A editar grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Expiram: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expirados: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editando grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Expira: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expirado: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> ponto</item>
|
||||
@@ -148,50 +142,50 @@
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> pontos</item>
|
||||
</plurals>
|
||||
<string name="editBarcode">Editar código de barras</string>
|
||||
<string name="expiryDate">Data de validade</string>
|
||||
<string name="expiryDate">Data de expiração</string>
|
||||
<string name="never">Nunca</string>
|
||||
<string name="chooseExpiryDate">Escolher validade</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barras para o topo do ecrã</string>
|
||||
<string name="noBarcodeFound">Não foi encontrado nenhum código de barras</string>
|
||||
<string name="chooseExpiryDate">Escolher data de expiração</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barras para o topo da tela</string>
|
||||
<string name="noBarcodeFound">Nenhum código de barras foi encontrado</string>
|
||||
<string name="errorReadingImage">Não foi possível ler a imagem</string>
|
||||
<string name="currency">Moeda</string>
|
||||
<string name="points">Pontos</string>
|
||||
<string name="balanceParsingFailed">Saldo inválido</string>
|
||||
<string name="chooseImportType">Importar dados de</string>
|
||||
<string name="privacy_policy">Política de privacidade</string>
|
||||
<string name="privacy_policy">Política de Privacidade</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
<string name="importCatima">Importar do Catima</string>
|
||||
<string name="importCatimaMessage">Selecione a exportação <i>catima.zip</i> do Catima a importar. \nPrimeiro crie a exportação no menu \"Importar / exportar\" de outra aplicação Catima pressionando \"Exportar\" nesse menu.</string>
|
||||
<string name="importFidme">Importar do FidMe</string>
|
||||
<string name="importFidmeMessage">Selecione a exportação <i>fidme-export-request-xxxxxx.zip</i> do FidMe para importar e depois selecione os tipos de código de barras manualmente. \nPrimeiro crie a exportação no seu perfil do FidMe escolhendo a opção \"Proteção de dados\" e em seguida pressionando \"Extrair os meus dados\".</string>
|
||||
<string name="importCatimaMessage">Selecione o arquivo exportado do Catima para importação. \nFaça isso a partir do menu \"Importar/Exportar\" em outro aplicativo Catima tocando em Exportar.</string>
|
||||
<string name="importFidme">Importar de FidMe</string>
|
||||
<string name="importFidmeMessage">Selecione o arquivo exportado do FidMe para importação e em seguida selecione o tipo de código de barras manualmente. \nCrie-o pelo seu perfil no FidMe escolhendo \"Proteção de Dados\" (Data Protection) e então tocando em \"Extrair meus dados\".</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar do Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione a exportação <i>LoyaltyCardKeychain.csv</i> do Loyalty Card Keychain para importar. \nPrimeiro crie a exportação no menu \"Importar / exportar\" no Loyalty Card Keychain pressionando \"Exportar\".</string>
|
||||
<string name="importVoucherVault">Importar do Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecione a exportação <i>vouchervault.json</i> do Voucher Vault para importar. \nCrie-a primeiro pressionando a opção \"Exportar\" no Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras ainda não pode ser mostrado. Pode vir a ser suportado numa versão posterior da aplicação.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione o arquivo exportado do Loyalty Card Keychain, para importação. \nFaça isso a partir do menu \"Importar/Exportar\" no Loyalty Card Keychain tocando em Exportar.</string>
|
||||
<string name="importVoucherVault">Importar de Cofre de Vouchers</string>
|
||||
<string name="importVoucherVaultMessage">Selecione o arquivo exportado de Voucher Vault, para importação. \nFaça isso tocando em Exportar no Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras não pode ser exibido. É possível que seja trazido em uma versão futura do aplicativo.</string>
|
||||
<string name="wrongValueForBarcodeType">O valor não é válido para o tipo de código de barras selecionado</string>
|
||||
<string name="barcodeId">Valor do código de barras</string>
|
||||
<string name="sameAsCardId">Igual ao identificador</string>
|
||||
<string name="setBarcodeId">Definir o valor do código de barras</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quero partilhar alguns cartões</string>
|
||||
<string name="barcodeId">Valor no código de barras</string>
|
||||
<string name="sameAsCardId">Igual ao ID</string>
|
||||
<string name="setBarcodeId">Definir valor do código de barras</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quero compartilhar alguns cartões com você</string>
|
||||
<string name="frontImageDescription">Imagem frontal</string>
|
||||
<string name="backImageDescription">Imagem de trás</string>
|
||||
<string name="photos">Fotografias</string>
|
||||
<string name="backImageDescription">Imagem traseira</string>
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="setFrontImage">Definir imagem frontal</string>
|
||||
<string name="setBackImage">Definir imagem de trás</string>
|
||||
<string name="setBackImage">Definir imagem traseira</string>
|
||||
<string name="removeImage">Remover imagem</string>
|
||||
<string name="takePhoto">Tirar uma fotografia</string>
|
||||
<string name="updateBarcodeQuestionTitle">Atualizar o valor do código de barras?</string>
|
||||
<string name="updateBarcodeQuestionText">Alterou o identificador. Também quer atualizar o código de barras para usar o mesmo valor?</string>
|
||||
<string name="passwordRequired">Introduza a palavra-passe</string>
|
||||
<string name="exportPassword">Defina uma palavra-passe para proteger a exportação (opcional)</string>
|
||||
<string name="exportPasswordHint">Digite a palavra-passe</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar um URL partilhável. Por favor reporte isto aos programadores.</string>
|
||||
<string name="takePhoto">Tirar uma foto</string>
|
||||
<string name="updateBarcodeQuestionTitle">Atualizar valor do código de barras?</string>
|
||||
<string name="updateBarcodeQuestionText">Você mudou o ID. Também quer atualizar o código de barras para usar o mesmo valor?</string>
|
||||
<string name="passwordRequired">Insira a senha</string>
|
||||
<string name="exportPassword">Defina uma senha para proteger o arquivo exportado (opcional)</string>
|
||||
<string name="exportPasswordHint">Insira sua senha</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar uma URL compartilhável</string>
|
||||
<string name="turn_flashlight_on">Ligar lanterna</string>
|
||||
<string name="turn_flashlight_off">Desligar lanterna</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="settings_oled_dark">Fundo preto puro para tema negro</string>
|
||||
<string name="settings_oled_dark_summary">Reduz a utilização da pilha em ecrãs OLED</string>
|
||||
<string name="settings_oled_dark">Preto puro como cor de fundo para o tema escuro</string>
|
||||
<string name="settings_oled_dark_summary">Reduz o uso da bateria em telas OLED</string>
|
||||
<string name="settings_system_locale">Sistema</string>
|
||||
<string name="selectColor">Selecionar cor</string>
|
||||
<string name="setIcon">Definir miniatura</string>
|
||||
@@ -201,42 +195,42 @@
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
<string name="settings_violet_theme">Violeta</string>
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
<string name="settings_sky_blue_theme">Azul céu</string>
|
||||
<string name="settings_sky_blue_theme">Azul celeste</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="settings_brown_theme">Castanho</string>
|
||||
<string name="app_contributors">Tornado possível por: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="settings_brown_theme">Marrom</string>
|
||||
<string name="app_contributors">Só foi possível graças a: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">Ordenar</string>
|
||||
<string name="showMoreInfo">Mostrar informação</string>
|
||||
<string name="showMoreInfo">Mostrar informações</string>
|
||||
<string name="updateBalance">Atualizar saldo</string>
|
||||
<string name="failedToRetrieveImageFile">Falha ao recuperar o ficheiro de imagem</string>
|
||||
<string name="barcodeLongPressMessage">Só podem ser abertas imagens na aplicação da galeria</string>
|
||||
<string name="failedToRetrieveImageFile">Falha ao recuperar o arquivo de imagem</string>
|
||||
<string name="barcodeLongPressMessage">Apenas imagens podem ser abertas na galeria</string>
|
||||
<string name="sort_by_name">Nome</string>
|
||||
<string name="sort_by_most_recently_used">Mais usados recentemente</string>
|
||||
<string name="sort_by_most_recently_used">Usado mais recentemente</string>
|
||||
<string name="sort_by_valid_from">Válido a partir de</string>
|
||||
<string name="sort_by_expiry">Validade</string>
|
||||
<string name="reverse">…na ordem inversa</string>
|
||||
<string name="sort_by_expiry">Expiração</string>
|
||||
<string name="reverse">...em ordem inversa</string>
|
||||
<string name="sort_by">Ordenar por</string>
|
||||
<string name="version_history">Histórico de versões</string>
|
||||
<string name="version_history">Histórico de Atualização</string>
|
||||
<string name="credits">Créditos</string>
|
||||
<string name="help_translate_this_app">Ajude a traduzir esta aplicação</string>
|
||||
<string name="help_translate_this_app">Ajude a traduzir este aplicativo</string>
|
||||
<string name="license">Licença</string>
|
||||
<string name="source_repository">Repositório do código-fonte</string>
|
||||
<string name="source_repository">Repositório de origem</string>
|
||||
<string name="on_github">no GitHub</string>
|
||||
<string name="and_data_usage">e utilização de dados</string>
|
||||
<string name="rate_this_app">Avalie esta aplicação</string>
|
||||
<string name="on_google_play">no Google Play</string>
|
||||
<string name="report_error">Reportar erro</string>
|
||||
<string name="and_data_usage">e uso de dados</string>
|
||||
<string name="rate_this_app">Avalie este aplicativo</string>
|
||||
<string name="on_google_play">na Google Play</string>
|
||||
<string name="report_error">Informar erro</string>
|
||||
<string name="translate_platform">no Weblate</string>
|
||||
<string name="shortcutSelectCard">Selecione um cartão</string>
|
||||
<string name="options">Opções</string>
|
||||
<string name="starred">Estrela</string>
|
||||
<string name="include_if_asking_support">Se quiser pedir ajuda, inclua as seguintes informações:</string>
|
||||
<string name="starred">Favoritos</string>
|
||||
<string name="include_if_asking_support">Se você gostaria de solicitar suporte, inclua as seguintes informações:</string>
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archive">Arquivar</string>
|
||||
<string name="unarchive">Desarquivar</string>
|
||||
<string name="archived">Cartão arquivado</string>
|
||||
<string name="unarchived">Cartão desarquivado</string>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi encontrada nenhuma aplicação de galeria de imagens</string>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi possível encontrar um seletor de imagens compatível</string>
|
||||
<string name="previousCard">Anterior</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> cartão (<xliff:g id="archivedCount">%2$d</xliff:g> arquivado)</item>
|
||||
@@ -244,70 +238,76 @@
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> cartões (<xliff:g id="archivedCount">%2$d</xliff:g> arquivados)</item>
|
||||
</plurals>
|
||||
<string name="nextCard">Próximo</string>
|
||||
<string name="failedToOpenUrl">Instale primeiro um navegador de Internet</string>
|
||||
<string name="welcome">Bem-vindo ao Catima</string>
|
||||
<string name="updateBalanceTitle">Quanto gastou ou recebeu?</string>
|
||||
<string name="failedToOpenUrl">Instale um navegador primeiro</string>
|
||||
<string name="welcome">Bem-vindo(a) ao Catima</string>
|
||||
<string name="updateBalanceTitle">Quanto você gastou ou recebeu?</string>
|
||||
<string name="importCards">Importar cartões</string>
|
||||
<string name="updateBalanceHint">Introduza o valor</string>
|
||||
<string name="updateBalanceHint">Inserir quantidade</string>
|
||||
<string name="currentBalanceSentence">Saldo atual: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Novo saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="validFromDate">Válido desde</string>
|
||||
<string name="validFromDate">Válido a partir de</string>
|
||||
<string name="anyDate">Qualquer data</string>
|
||||
<string name="chooseValidFromDate">Escolha uma data desde válida</string>
|
||||
<string name="validFromSentence">Válido desde: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseValidFromDate">Escolha uma data válida a partir de</string>
|
||||
<string name="validFromSentence">Válido a partir de: <xliff:g>%s</xliff:g></string>
|
||||
<string name="height">Altura</string>
|
||||
<string name="switchToFrontImage">Mudar para imagem frontal</string>
|
||||
<string name="switchToBackImage">Mudar para a imagem de trás</string>
|
||||
<string name="switchToBarcode">Mudar para o código de barras</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir a imagem frontal na aplicação da galeria</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir a imagem traseira na aplicação da galeria</string>
|
||||
<string name="switchToBackImage">Mudar para imagem traseira</string>
|
||||
<string name="switchToBarcode">Mudar para código de barras</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imagem frontal no visualizador de imagens</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imagem traseira no visualizador de imagens</string>
|
||||
<string name="setBarcodeHeight">Definir altura do código de barras</string>
|
||||
<string name="donate">Doar</string>
|
||||
<string name="icon_header_click_text">Pressione e segure para editar o icone</string>
|
||||
<string name="show_name_below_image_thumbnail">Mostrar nome abaixo da miniatura do ícone</string>
|
||||
<string name="icon_header_click_text">Pressione e segure para editar a miniatura</string>
|
||||
<string name="show_name_below_image_thumbnail">Mostrar nome abaixo da miniatura</string>
|
||||
<string name="show_note">Mostrar nota</string>
|
||||
<string name="show_balance">Mostrar saldo</string>
|
||||
<string name="show_validity">Mostrar validade</string>
|
||||
<string name="settings_category_title_cards_overview">Resumo dos cartões</string>
|
||||
<string name="settings_column_count_portrait">Colunas no modo vertical</string>
|
||||
<string name="settings_column_count_landscape">Colunas no modo horizontal</string>
|
||||
<string name="settings_column_count_portrait">Colunas em modo retrato</string>
|
||||
<string name="settings_column_count_landscape">Colunas em modo paisagem</string>
|
||||
<string name="settings_automatic_column_count">Automático</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_category_title_general">Geral</string>
|
||||
<string name="settings_category_title_privacy">Privacidade</string>
|
||||
<string name="action_display_options">Opções de visualização</string>
|
||||
<string name="action_display_options">Configurações de exibição</string>
|
||||
<string name="show_archived_cards">Mostrar cartões arquivados</string>
|
||||
<string name="view_online">Ver online</string>
|
||||
<string name="action_more_options">Mais opções</string>
|
||||
<string name="addWithoutBarcode">Adicione um cartão sem código de barras</string>
|
||||
<string name="enter_card_id">Digite o número ID ou o texto no seu cartão</string>
|
||||
<string name="addWithoutBarcode">Adicionar cartão sem código de barras</string>
|
||||
<string name="enter_card_id">Insira o ID ou texto escrito no seu cartão</string>
|
||||
<string name="card_id_must_not_be_empty">O ID do cartão não pode estar vazio</string>
|
||||
<string name="add_a_card_in_a_different_way">Adicione um cartão de uma forma diferente</string>
|
||||
<string name="add_a_card_in_a_different_way">Adicionar cartão de outra forma</string>
|
||||
<string name="field_must_not_be_empty">O campo não pode estar vazio</string>
|
||||
<string name="manually_enter_barcode_instructions">Digite o número ID ou o texto no seu cartão e pressione o código de barras que se parece com o que está no seu cartão.</string>
|
||||
<string name="add_manually_warning_title">Recomenda-se a digitalização</string>
|
||||
<string name="add_manually_warning_message">Em algumas lojas, o valor do código de barras é diferente do número escrito no cartão. Por este motivo, a introdução manual de um código de barras pode nem sempre funcionar. Recomenda-se vivamente que, em vez disso, digitalize o código de barras com a sua câmara. Ainda quer continuar?</string>
|
||||
<string name="manually_enter_barcode_instructions">Insira o ID ou texto escrito no seu cartão e clique no código de barras que se parece com o do seu cartão.</string>
|
||||
<string name="add_manually_warning_title">A digitalização é recomendada</string>
|
||||
<string name="add_manually_warning_message">Em alguns cartões, o valor do código de barras difere do número escrito no cartão. Por isso, inserir o código de barras manualmente pode não funcionar. Recomenda-se escanear o código de barras com a câmera. Deseja continuar?</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Receber</string>
|
||||
<string name="amountParsingFailed">Montante inválido</string>
|
||||
<string name="addFromPdfFile">Selecionar um ficheiro PDF</string>
|
||||
<string name="errorReadingFile">Não foi possível ler o ficheiro</string>
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gestor de ficheiros suportado</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Qual dos códigos de barras encontrados pretende utilizar?</string>
|
||||
<string name="amountParsingFailed">Quantidade inválida</string>
|
||||
<string name="addFromPdfFile">Selecionar arquivo PDF</string>
|
||||
<string name="errorReadingFile">Não foi possível fazer a leitura do arquivo</string>
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gerenciador de arquivos compatível</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Qual dos códigos de barras encontrados você quer usar?</string>
|
||||
<string name="pageWithNumber">Página <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">O seu dispositivo não parece ter uma câmara. Se tiver, tente reiniciar o dispositivo. Caso contrário, utilize o botão \"Mais opções\" abaixo para adicionar um código de barras de outra maneira.</string>
|
||||
<string name="noCameraFoundGuideText">Seu dispositivo parece não ter uma câmera. Se tiver, tente reiniciar o dispositivo. Caso contrário, tente usar o botão \"Mais opções\" abaixo para adicionar um código de barras manualmente.</string>
|
||||
<string name="importCancelled">Importação cancelada</string>
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
<string name="useFrontImage">Utilizar imagem frontal</string>
|
||||
<string name="useBackImage">Utilizar imagem do verso</string>
|
||||
<string name="addFromPkpass">Selecionar um ficheiro Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Este ficheiro não é suportado</string>
|
||||
<string name="generic_error_please_retry">Lamento, ocorreu um erro, tente novamente...</string>
|
||||
<string name="setBarcodeWidth">Definir Largura do Código de Barra</string>
|
||||
<string name="useFrontImage">Usar imagem frontal</string>
|
||||
<string name="useBackImage">Usar imagem traseira</string>
|
||||
<string name="addFromPkpass">Selecionar um arquivo do gerenciador de senhas (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Este arquivo não é suportado</string>
|
||||
<string name="generic_error_please_retry">Algo deu errado</string>
|
||||
<string name="setBarcodeWidth">Definir largura do código de barras</string>
|
||||
<string name="width">Largura</string>
|
||||
<string name="card_list_widget_name">Lista de cartões</string>
|
||||
<string name="card_list_widget_empty">Após adicionar cartões de fidelidade em Catima, eles aparecerão aqui. Se tem cartões, certifique-se de que não estão todos arquivados.</string>
|
||||
<string name="card_list_widget_empty">Depois que você adicionar alguns cartões de fidelidade no Catima, eles aparecerão aqui. Se você tiver cartões, verifique se eles não estão todos arquivados.</string>
|
||||
<string name="cardWithNumber">Cartão <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Por favor, não gire o dispositivo, pois cancelará a ação</string>
|
||||
<string name="acra_catima_has_crashed">Lamentamos, mas o <xliff:g id="app_name">%s</xliff:g> travou. Ajude-nos a corrigir este problema a enviar um relatório de erro.</string>
|
||||
<string name="acra_explain_crash">Se possível, acrescente detalhes sobre o que fazia aqui:</string>
|
||||
<string name="acra_crash_email_subject">Relatório de falha em <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Solicitar o envio de relatórios de falhas</string>
|
||||
<string name="pref_enable_acra_summary">Quando ativado, relatar uma falha será solicitado quando isto ocorrer. Os relatórios de falhas nunca são enviados automaticamente.</string>
|
||||
</resources>
|
||||
|
||||
@@ -105,7 +105,6 @@
|
||||
<string name="help_translate_this_app">Ajutați la traducerea aplicației</string>
|
||||
<string name="sort_by_expiry">Expirare</string>
|
||||
<string name="add_a_card_in_a_different_way">Adăugați un card într-o altă modalitate</string>
|
||||
<string name="settings_portrait_orientation">Portret</string>
|
||||
<string name="takePhoto">Faceți o poză</string>
|
||||
<string name="validFromDate">Valid de la data de</string>
|
||||
<string name="cameraPermissionDeniedTitle">Camera nu a putut fi accesată</string>
|
||||
@@ -118,7 +117,6 @@
|
||||
<string name="backImageDescription">Imagine din spate</string>
|
||||
<string name="view_online">Vizualizați online</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Pentru a scana codurile de bare, Catima necesită acces la cameră. Apăsați aici pentru a schimba setările permisiunilor dvs.</string>
|
||||
<string name="settings_lock_on_opening_orientation">Blocați orientația folosită când deschideți cardul</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="turn_flashlight_on">Porniți lanterna</string>
|
||||
<string name="height">Înălțime</string>
|
||||
@@ -173,7 +171,6 @@
|
||||
<string name="show_note">Afișați notița</string>
|
||||
<string name="report_error">Raportați o eroare</string>
|
||||
<string name="switchToBackImage">Comutați către imaginea din spate</string>
|
||||
<string name="settings_follow_system_orientation">Urmează setările sistemului</string>
|
||||
<string name="reverse">...în ordine inversă</string>
|
||||
<string name="settings_brown_theme">Maro</string>
|
||||
<string name="app_contributors">Făcut posibil de: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
@@ -200,7 +197,6 @@
|
||||
<string name="failedGeneratingShareURL">Nu s-a putut genera un URL partajabil. Vă rugăm să raportați aceasta eroare.</string>
|
||||
<string name="selectColor">Selectați o culoare</string>
|
||||
<string name="setBarcodeHeight">Setați înălțimea codului de bare</string>
|
||||
<string name="settings_landscape_orientation">Orizontal</string>
|
||||
<string name="privacy_policy">Politica de Confidențialitate</string>
|
||||
<string name="openBackImageInGalleryApp">Deschideți imaginea din spate în aplicația galerie</string>
|
||||
<string name="settings_system_locale">Sistem</string>
|
||||
@@ -238,7 +234,6 @@
|
||||
<string name="settings_violet_theme">Mov</string>
|
||||
<string name="include_if_asking_support">Dacă doriți să cereți ajutor, includeți informațiile următoare:</string>
|
||||
<string name="show_archived_cards">Afișați cardurile arhivate</string>
|
||||
<string name="settings_card_orientation">Orientare ecran</string>
|
||||
<string name="app_libraries">Listă de biblioteci libere de la terți: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="updateBalanceTitle">Cât de mult ați cheltuit sau primit?</string>
|
||||
<string name="settings_blue_theme">Albastru</string>
|
||||
@@ -271,7 +266,6 @@
|
||||
<string name="settings_keep_screen_on_summary">Dezactivează temporizatorul de ecran când vizualizați un card</string>
|
||||
<string name="rate_this_app">Acordați o recenzie acestei aplicații</string>
|
||||
<string name="credits">Contribuitori</string>
|
||||
<string name="settings_follow_sensor_orientation">Rotește întotdeauna (ignora setările de sistem)</string>
|
||||
<string name="continue_">Continua</string>
|
||||
<string name="add_manually_warning_title">Se recomandă scanarea</string>
|
||||
<string name="add_manually_warning_message">Pentru unele magazine, valoarea codului de bare diferă de numărul scris pe card. Din acest motiv, este posibil ca introducerea manuală a unui cod de bare să nu funcționeze întotdeauna. În schimb, este recomandat să scanați codul de bare cu camera dvs. Mai vrei să continui?</string>
|
||||
@@ -307,4 +301,5 @@
|
||||
<string name="generic_error_please_retry">Scuze, ceva nu a funționat. Încearcă din nou ...</string>
|
||||
<string name="width">Lățime</string>
|
||||
<string name="setBarcodeWidth">Setează Lățimea Codului de Bare</string>
|
||||
<string name="card_list_widget_name">Listă de carduri</string>
|
||||
</resources>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Поиск</string>
|
||||
<string name="action_add">Добавить</string>
|
||||
<string name="noGiftCards">Нажмите кнопку \"+\" для добавления карты или используйте меню \"⋮\" для импортирования.</string>
|
||||
<string name="noGiftCards">Нажмите кнопку \"+\" для добавления карты или используйте меню \"⋮\" для импортирования</string>
|
||||
<string name="noMatchingGiftCards">Ничего не найдено. Попробуйте изменить поисковый запрос.</string>
|
||||
<string name="storeName">Название</string>
|
||||
<string name="note">Примечание</string>
|
||||
@@ -23,9 +23,9 @@
|
||||
<string name="noCardsMessage">Сначала добавьте карту</string>
|
||||
<string name="noCardExistsError">Карта не найдена</string>
|
||||
<string name="failedParsingImportUriError">Невозможно разобрать импортируемый URI</string>
|
||||
<string name="importExport">Импорт/Экспорт</string>
|
||||
<string name="importExport">Импорт/экспорт</string>
|
||||
<string name="exportName">Экспорт</string>
|
||||
<string name="importExportHelp">Резервное копирование данных позволяет перенести их на другое устройство.</string>
|
||||
<string name="importExportHelp">Резервное копирование данных позволяет перенести их на другое устройство</string>
|
||||
<string name="importSuccessfulTitle">Импортировано</string>
|
||||
<string name="importFailedTitle">Импорт не выполнен</string>
|
||||
<string name="importFailed">Невозможно выполнить импорт</string>
|
||||
@@ -34,9 +34,9 @@
|
||||
<string name="exportFailed">Невозможно выполнить экспорт</string>
|
||||
<string name="importing">Импорт…</string>
|
||||
<string name="exporting">Экспорт…</string>
|
||||
<string name="exportOptionExplanation">Данные будут сохранены в выбранное место.</string>
|
||||
<string name="exportOptionExplanation">Данные будут сохранены в выбранное место</string>
|
||||
<string name="importOptionFilesystemTitle">Импорт из файла</string>
|
||||
<string name="importOptionFilesystemExplanation">Выберете файл в файловой системе.</string>
|
||||
<string name="importOptionFilesystemExplanation">Выберете файл в файловой системе</string>
|
||||
<string name="importOptionFilesystemButton">Выбрать файл</string>
|
||||
<string name="about">О приложении</string>
|
||||
<string name="app_license">Авторское лево свободного программного обеспечения, лицензия GPLv3+</string>
|
||||
@@ -53,7 +53,7 @@
|
||||
<string name="intent_import_card_from_url_share_text">Я хочу поделиться с вами картой</string>
|
||||
<string name="exportSuccessful">Данные успешно экспортированы</string>
|
||||
<string name="all">Все</string>
|
||||
<string name="noGroups">Нажмите кнопку \"+\", чтобы добавить группы для распределения записей.</string>
|
||||
<string name="noGroups">Нажмите кнопку \"+\", чтобы добавить группы для распределения записей</string>
|
||||
<string name="groups">Группы</string>
|
||||
<string name="enter_group_name">Введите название группы</string>
|
||||
<string name="importSuccessful">Данные успешно импортированы</string>
|
||||
@@ -66,7 +66,7 @@
|
||||
<string name="deleteConfirmationGroup">Удалить группу\?</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Выйти без сохранения\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Выход</string>
|
||||
<string name="failedOpeningFileManager">Требуется файловый менеджер.</string>
|
||||
<string name="failedOpeningFileManager">Требуется файловый менеджер</string>
|
||||
<string name="balanceSentence">Баланс: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Срок действия истёк: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Срок действия истекает: <xliff:g>%s</xliff:g></string>
|
||||
@@ -95,16 +95,12 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> карт</item>
|
||||
</plurals>
|
||||
<string name="accept">Принять</string>
|
||||
<string name="importVoucherVaultMessage">Выберите для импортирования файл <i>vouchervault.json</i>.
|
||||
\nФайл можно создать в приложении Voucher Vault, нажав кнопку \"Экспорт\".</string>
|
||||
<string name="importVoucherVaultMessage">Выберите для импортирования файл, экспортированный из Voucher Vault. \nФайл можно создать в приложении Voucher Vault, нажав кнопку \"Экспорт\".</string>
|
||||
<string name="importVoucherVault">Импорт из Voucher Vault</string>
|
||||
<string name="importFidmeMessage">Выберите для импортирования файл <i>fidme-export-request-xxxxxx.zip</i>, а затем вручную укажите типы штрих-кодов.
|
||||
\nФайл можно создать в приложении FidMe, перейдя в свой профиль, выбрав функцию \"Защита данных\", и затем нажав кнопку \"Извлечь мои данные\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Выберите для импортирования файл <i>LoyaltyCardKeychain.csv</i>.
|
||||
\nФайл можно создать в приложении Loyalty Card Keychain, перейдя в меню \"Импорт/Экспорт\" и нажав кнопку \"Экспорт\".</string>
|
||||
<string name="importFidmeMessage">Выберите для импортирования файл, экспортированный из FidMe, а затем вручную укажите типы штрих-кодов. \nФайл можно создать в приложении FidMe, перейдя в свой профиль, выбрав функцию \"Защита данных\", и затем нажав кнопку \"Извлечь мои данные\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Выберите для импортирования файл, экспортированный из Loyalty Card Keychain. \nФайл можно создать в приложении Loyalty Card Keychain, перейдя в меню \"Импорт/Экспорт\" и нажав кнопку \"Экспорт\".</string>
|
||||
<string name="importLoyaltyCardKeychain">Импорт из Loyalty Card Keychain</string>
|
||||
<string name="importCatimaMessage">Выберите для импортирования файл <i>Catima.zip</i>.
|
||||
\nФайл можно создать в другой копии Catima, перейдя в меню \"Импорт/Экспорт\" и нажав кнопку \"Экспорт\".</string>
|
||||
<string name="importCatimaMessage">Выберите для импортирования файл, экспортированный из Catima. \nФайл можно создать в другой копии Catima, перейдя в меню \"Импорт/экспорт\" и нажав кнопку \"Экспорт\".</string>
|
||||
<string name="importFidme">Импорт из FidMe</string>
|
||||
<string name="importCatima">Импорт из Catima</string>
|
||||
<string name="errorReadingImage">Невозможно считать изображение</string>
|
||||
@@ -115,8 +111,8 @@
|
||||
<string name="barcodeId">Значение штрих-кода</string>
|
||||
<string name="unsupportedBarcodeType">В настоящее время данный тип штрих-кодов не отображается. Его поддержка может быть добавлена в следующих версиях приложения.</string>
|
||||
<string name="wrongValueForBarcodeType">Недопустимое значение для выбранного типа штрих-кода</string>
|
||||
<string name="app_resources">Свободные сторонние ресурсы: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Свободные сторонние библиотеки: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Сторонние ресурсы: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Сторонние библиотеки: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Авторские права © 2019–<xliff:g>%d</xliff:g> Sylvia van Os и помощники</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Поделиться картами</string>
|
||||
<string name="updateBarcodeQuestionText">Вы изменили номер. Обновить также значение штрих-кода, чтобы использовалось одинаковое значение\?</string>
|
||||
@@ -131,7 +127,7 @@
|
||||
<string name="frontImageDescription">Лицевая сторона</string>
|
||||
<string name="photos">Фото</string>
|
||||
<string name="passwordRequired">Введите пароль</string>
|
||||
<string name="failedGeneratingShareURL">Невозможно создать URL для обмена. Пожалуйста, сообщите об этом.</string>
|
||||
<string name="failedGeneratingShareURL">Невозможно создать URL для обмена</string>
|
||||
<string name="turn_flashlight_off">Отключить вспышку</string>
|
||||
<string name="turn_flashlight_on">Включить вспышку</string>
|
||||
<plurals name="selectedCardCount">
|
||||
@@ -191,7 +187,7 @@
|
||||
<string name="editGroup">Редактирование группы: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_edit">Изменить группу</string>
|
||||
<string name="group_name_already_in_use">Такое название группы уже существует</string>
|
||||
<string name="noGiftCardsGroup">Создайте несколько карт, а затем распределите их по группам здесь.</string>
|
||||
<string name="noGiftCardsGroup">Создайте несколько карт, а затем распределите их по группам здесь</string>
|
||||
<string name="setIcon">Выбор миниатюры</string>
|
||||
<string name="selectColor">Выбрать цвет</string>
|
||||
<string name="translate_platform">на Weblate</string>
|
||||
@@ -207,17 +203,12 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Чёрный фон для тёмной темы</string>
|
||||
<string name="include_if_asking_support">Если вы хотите запросить поддержку, укажите следующую информацию:</string>
|
||||
<string name="settings_portrait_orientation">Портретная</string>
|
||||
<string name="settings_landscape_orientation">Альбомная</string>
|
||||
<string name="settings_lock_on_opening_orientation">Фиксировать ориентацию при открытии карты</string>
|
||||
<string name="archive">Архивировать</string>
|
||||
<string name="unarchive">Разархивировать</string>
|
||||
<string name="settings_follow_system_orientation">Как в системе</string>
|
||||
<string name="duplicateCard">Дублировать</string>
|
||||
<string name="settings_card_orientation">Ориентация экрана</string>
|
||||
<string name="archived">Карта архивирована</string>
|
||||
<string name="unarchived">Карта разархивирована</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не найдено поддерживаемое приложение галереи</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не найдено приложение для выбора изображений</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> карта (<xliff:g id="archivedCount">%2$d</xliff:g> архивирована)</item>
|
||||
<item quantity="few"><xliff:g>%1$d</xliff:g> карты (<xliff:g id="archivedCount">%2$d</xliff:g> архивированы)</item>
|
||||
@@ -249,8 +240,8 @@
|
||||
<string name="switchToBarcode">Переключить на штрих-код</string>
|
||||
<string name="switchToFrontImage">Переключить на лицевую сторону</string>
|
||||
<string name="switchToBackImage">Переключить на заднюю сторону</string>
|
||||
<string name="openFrontImageInGalleryApp">Открыть лицевое изображение в приложении галереи</string>
|
||||
<string name="openBackImageInGalleryApp">Открыть заднее изображение в приложении галереи</string>
|
||||
<string name="openFrontImageInGalleryApp">Открыть лицевое изображение в приложении просмотра изображений</string>
|
||||
<string name="openBackImageInGalleryApp">Открыть заднее изображение в приложении просмотра изображений</string>
|
||||
<string name="donate">Пожертвовать</string>
|
||||
<string name="icon_header_click_text">Долгое нажатие для редактирования</string>
|
||||
<string name="show_note">Показывать примечание</string>
|
||||
@@ -281,10 +272,9 @@
|
||||
<string name="addWithoutBarcode">Добавить карту без штрих-кода</string>
|
||||
<string name="field_must_not_be_empty">Поле не может быть пустым</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Всегда поворачивать (игнорировать системные настройки)</string>
|
||||
<string name="add_manually_warning_title">Рекомендуется сканирование</string>
|
||||
<string name="continue_">Продолжить</string>
|
||||
<string name="add_manually_warning_message">В некоторых магазинах значение штрих-кода отличается от написанного на карте номера, из-за чего введение штрих-кода вручную не всегда работает. Вместо этого настоятельно рекомендуется отсканировать штрих-код камерой. Продолжить?</string>
|
||||
<string name="add_manually_warning_message">В некоторых картах значение штрих-кода отличается от написанного на карте номера, из-за чего введение штрих-кода вручную не всегда работает. Вместо этого рекомендуется отсканировать штрих-код камерой. Продолжить?</string>
|
||||
<string name="spend">Потрачено</string>
|
||||
<string name="receive">Получено</string>
|
||||
<string name="amountParsingFailed">Недопустимая сумма</string>
|
||||
@@ -313,12 +303,18 @@
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="unsupportedFile">Данный файл не поддерживается</string>
|
||||
<string name="addFromPkpass">Выбрать файл Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="generic_error_please_retry">Извините, что-то пошло не так, попробуйте ещё раз…</string>
|
||||
<string name="generic_error_please_retry">Произошла ошибка</string>
|
||||
<string name="sort_by_valid_from">Начало действия</string>
|
||||
<string name="width">Ширина</string>
|
||||
<string name="setBarcodeWidth">Указать ширину штрих-кода</string>
|
||||
<string name="card_list_widget_name">Список карт</string>
|
||||
<string name="card_list_widget_empty">После добавления карт лояльности в Catima, они появятся здесь. Если у вас есть карты, убедитесь, что они не архивированы.</string>
|
||||
<string name="cardWithNumber">Карта <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Карта <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Карта <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Не поворачивайте устройство, так как это отменит действие</string>
|
||||
<string name="acra_catima_has_crashed">К сожалению, в <xliff:g id="app_name">%s</xliff:g> произошёл сбой. Помогите исправить проблему, отправив нам отчёт об ошибке.</string>
|
||||
<string name="acra_explain_crash">Если возможно, добавьте больше информации о том, что произошло:</string>
|
||||
<string name="acra_crash_email_subject">Отчёт об ошибке в <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Запрашивать отправку отчётов об ошибках</string>
|
||||
<string name="pref_enable_acra_summary">Если включено, то в случае сбоя вам будет предложено отправить отчёт о нём. Отчёты никогда не отправляются автоматически.</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Pridať</string>
|
||||
<string name="noGiftCards">Ak chcete pridať kartu, kliknite na tlačidlo + plus alebo ju importujte z ⋮ ponuky.</string>
|
||||
<string name="noGiftCards">Ak chcete pridať kartu, kliknite na tlačidlo + plus alebo ju importujte z ⋮ ponuky</string>
|
||||
<string name="storeName">Názov</string>
|
||||
<string name="note">Poznámka</string>
|
||||
<string name="cardId">ID karty</string>
|
||||
@@ -15,7 +15,7 @@
|
||||
<string name="editCardTitle">Upraviť kartu</string>
|
||||
<string name="addCardTitle">Pridať kartu</string>
|
||||
<string name="scanCardBarcode">Skenovať čiarový kód</string>
|
||||
<string name="cardShortcut">Skratka</string>
|
||||
<string name="cardShortcut">Skratka karty</string>
|
||||
<string name="noCardsMessage">Najprv pridajte kartu</string>
|
||||
<string name="noCardExistsError">Nepodarilo sa nájsť túto kartu</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
@@ -180,11 +180,9 @@
|
||||
<string name="updateBarcodeQuestionText">Zmenili ste ID. Chcete aktualizovať aj čiarový kód, aby používal rovnakú hodnotu\?</string>
|
||||
<string name="no">Nie</string>
|
||||
<string name="passwordRequired">Zadajte prosím heslo</string>
|
||||
<string name="noGiftCardsGroup">Zatiaľ nemáte žiadne vernostné karty. Keď nejaké pridáte, môžete ich priradiť ku skupine tu.</string>
|
||||
<string name="noGiftCardsGroup">Zatiaľ nemáte žiadne vernostné karty. Keď nejaké pridáte, môžete ich priradiť ku skupine tu</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Na skenovanie čiarových kódov potrebuje Catima prístup k fotoaparátu. Ťuknite sem a zmeňte nastavenia oprávnení.</string>
|
||||
<string name="importCards">Importovať karty</string>
|
||||
<string name="settings_card_orientation">Orientácia obrazovky</string>
|
||||
<string name="settings_lock_on_opening_orientation">Zamknúť na orientáciu použitú pri otváraní karty</string>
|
||||
<string name="app_loyalty_card_keychain">Kľúčenka vernostných kariet</string>
|
||||
<string name="settings_oled_dark">Čisto čierne pozadie pre tmavú tému</string>
|
||||
<string name="failedToRetrieveImageFile">Nepodarilo sa získať súbor obrázku</string>
|
||||
@@ -227,9 +225,6 @@
|
||||
<string name="barcodeLongPressMessage">V aplikácii galéria je možné otvoriť iba obrázky</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nepodarilo sa získať prístup k fotoaparátu</string>
|
||||
<string name="storageReadPermissionRequired">Pre túto akciu je potrebné oprávnenie na čítanie úložiska…</string>
|
||||
<string name="settings_follow_system_orientation">Podľa systému</string>
|
||||
<string name="settings_portrait_orientation">Na výšku</string>
|
||||
<string name="settings_landscape_orientation">Na šírku</string>
|
||||
<string name="importFidmeMessage">Vyberte svoj <i>fidme-export-request-xxxxxx.zip</i> export zo služby FidMe pre import a potom vyberte typy čiarových kódov ručne.
|
||||
\nVytvorte ho z profilu FidMe tak, že najprv vyberiete položku Ochrana údajov a potom stlačíte tlačidlo Extrahovať moje údaje.</string>
|
||||
<string name="currentBalanceSentence">Aktuálny zostatok: <xliff:g>%s</xliff:g></string>
|
||||
@@ -275,7 +270,6 @@
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os a prispievatelia</string>
|
||||
<string name="show_archived_cards">Zobraziť archivované karty</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Vždy otočiť (ignoruje nastavenie systému)</string>
|
||||
<string name="continue_">Pokračovať</string>
|
||||
<string name="spend">Utratené</string>
|
||||
<string name="receive">Prijaté</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Dodaj</string>
|
||||
<string name="noGiftCards">Pritisni gumb + za dodajanje nove kartice ali gumb ⋮ v meniju za uvoz.</string>
|
||||
<string name="noGiftCards">Pritisni gumb + za dodajanje nove kartice ali gumb ⋮ v meniju za uvoz</string>
|
||||
<string name="storeName">Ime</string>
|
||||
<string name="note">Opomba</string>
|
||||
<string name="cardId">Št. kartice</string>
|
||||
@@ -18,9 +18,9 @@
|
||||
<string name="cardShortcut">Bližnjica do kartice</string>
|
||||
<string name="noCardsMessage">Najprej dodaj kartico</string>
|
||||
<string name="noCardExistsError">Te kartice ni bilo mogoče najti</string>
|
||||
<string name="importExport">Uvozi/Izvozi</string>
|
||||
<string name="importExport">Uvozi/izvozi</string>
|
||||
<string name="exportName">Izvozi</string>
|
||||
<string name="importExportHelp">Varnostna kopija podatkovne baze omogoča prenos na drugo napravo.</string>
|
||||
<string name="importExportHelp">Varnostna kopija podatkovne baze omogoča prenos na drugo napravo</string>
|
||||
<string name="importSuccessfulTitle">Uvoz je bil uspešen</string>
|
||||
<string name="importFailedTitle">Uvoz ni uspel</string>
|
||||
<string name="importFailed">Napaka pri uvozu</string>
|
||||
@@ -30,7 +30,7 @@
|
||||
<string name="importing">Uvažanje …</string>
|
||||
<string name="exporting">Izvažanje …</string>
|
||||
<string name="importOptionFilesystemTitle">Uvozi iz datotečnega sistema</string>
|
||||
<string name="importOptionFilesystemExplanation">Izberi specifično datoteko iz datotečnega sistema.</string>
|
||||
<string name="importOptionFilesystemExplanation">Izberi specifično datoteko iz datotečnega sistema</string>
|
||||
<string name="importOptionFilesystemButton">Iz datotečnega sistema</string>
|
||||
<string name="about">Več o aplikaciji</string>
|
||||
<string name="app_license">Prosta programska oprema s copyleftom, licenca GPL3+</string>
|
||||
@@ -49,11 +49,11 @@
|
||||
<string name="leaveWithoutSaveTitle">Izhod</string>
|
||||
<string name="moveDown">Premikanje navzdol</string>
|
||||
<string name="moveUp">Premik navzgor</string>
|
||||
<string name="failedOpeningFileManager">Najprej namesti upravitelja datotek.</string>
|
||||
<string name="failedOpeningFileManager">Ni mogoče odpreti upravitelja datotek</string>
|
||||
<string name="deleteConfirmationGroup">Brisanje skupine\?</string>
|
||||
<string name="all">Vse</string>
|
||||
<string name="noGroupCards">Ta skupina je prazna</string>
|
||||
<string name="noGroups">Pritisni gumb +, če želiš dodati skupine za kategorizacijo.</string>
|
||||
<string name="noGroups">Pritisni gumb +, če želiš dodati skupine za kategorizacijo</string>
|
||||
<string name="groups">Skupine</string>
|
||||
<string name="enter_group_name">Vnesi ime skupine</string>
|
||||
<string name="exportSuccessful">Podatkovna baza izvožena</string>
|
||||
@@ -67,7 +67,7 @@
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="starImage">Zvezdica za priljubljene</string>
|
||||
<string name="app_copyright_old">Na podlagi aplikacije Loyalty Card Keychain \navtorske pravice © 2016-2020 Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Podatki bodo zapisani na izbrano mesto.</string>
|
||||
<string name="exportOptionExplanation">Podatki bodo zapisani na izbrano mesto</string>
|
||||
<string name="failedParsingImportUriError">Ni bilo mogoče razčleniti URI uvoza</string>
|
||||
<string name="share">Deli</string>
|
||||
<string name="unstar">Odstrani iz priljubljenih</string>
|
||||
@@ -159,11 +159,6 @@
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> izbrane</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> izbranih</item>
|
||||
</plurals>
|
||||
<string name="settings_card_orientation">Orientacija zaslona</string>
|
||||
<string name="settings_follow_system_orientation">Sledi sistemu</string>
|
||||
<string name="settings_portrait_orientation">Pokončno</string>
|
||||
<string name="settings_landscape_orientation">Ležeče</string>
|
||||
<string name="settings_lock_on_opening_orientation">Ohrani usmerjenost uporabljeno pri odpiranju kartice</string>
|
||||
<string name="setIcon">Nastavi sličico</string>
|
||||
<string name="showMoreInfo">Prikaži informacije</string>
|
||||
<string name="updateBalance">Posodobi stanje</string>
|
||||
@@ -176,7 +171,7 @@
|
||||
<string name="unarchive">Odpakiraj arhiv</string>
|
||||
<string name="archived">Kartica arhivirana</string>
|
||||
<string name="unarchived">Kartica ni arhivirana</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ni mogoče najti podprte aplikacije za gledanje slik</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ni mogoče najti podprte aplikacije za slike</string>
|
||||
<string name="previousCard">Prejšnja</string>
|
||||
<string name="nextCard">Naslednja</string>
|
||||
<string name="updateBalanceTitle">Koliko si porabil ali prejel?</string>
|
||||
@@ -185,18 +180,18 @@
|
||||
<string name="group_name_is_empty">Ime skupine ne sme biti prazno</string>
|
||||
<string name="group_updated">Skupina posodobljena</string>
|
||||
<string name="groupsList">Skupine: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_libraries">Proste knjižnice tretjih oseb: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Prosti viri tretjih oseb: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Knjižnice tretjih oseb: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Viri tretjih oseb: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Poteče: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Poteklo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryDate">Datum poteka veljavnosti</string>
|
||||
<string name="chooseExpiryDate">Izberi datum poteka veljavnosti</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Premakni črtno kodo na vrh zaslona</string>
|
||||
<string name="importCatimaMessage">Izberi svoj obstoječ Catima <i>catima.zip</i> izvoz podatkov za uvoz v aplikacijo. \nNajprej izvozi podatke v meniju \"Uvozi/Izvozi\" v drugi aplikaciji Catima s pritiskom na Izvozi.</string>
|
||||
<string name="importVoucherVaultMessage">Izberi svoj <i>vouchervault.json</i> Voucher Vault izvoz podatkov za uvoz. \nIzvoz podatkov dobiš s pritiskom na gumb »Export« v Voucher Vault first.</string>
|
||||
<string name="importCatimaMessage">Izberi svoj obstoječ izvoz podatkov za uvoz v aplikacijo. \nNajprej izvozi podatke v meniju Uvozi/izvozi v drugi aplikaciji Catima s pritiskom na Izvozi.</string>
|
||||
<string name="importVoucherVaultMessage">Izberi svoj Voucher Vault izvoz podatkov za uvoz. \nIzvoz podatkov dobiš s pritiskom na gumb »Export« v Voucher Vault.</string>
|
||||
<string name="failedToOpenUrl">Prvo namesti spletni brskalnik</string>
|
||||
<string name="welcome">Pozdravljen v Catimi</string>
|
||||
<string name="noGiftCardsGroup">Ustvari kartice in jih dodeli tej skupini.</string>
|
||||
<string name="noGiftCardsGroup">Ustvari kartice in jih dodeli tej skupini</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Izbriši <xliff:g>%d</xliff:g> kartico</item>
|
||||
<item quantity="two">Izbriši <xliff:g>%d</xliff:g> kartici</item>
|
||||
@@ -218,9 +213,9 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kartic</item>
|
||||
</plurals>
|
||||
<string name="editGroup">Urejanje skupine: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importFidmeMessage">Izberi svoj <i>fidme-export-request-xxxxxx.zip</i> FidMe izvoz podatkov za uvoz in naknadno ročno izberi tipe črtnih kod. \nFidMe izvoz podatkov naredi v svojem FidMe profilu z izbiro »Data Protection« in nato s pritiskom na gumb »Extract my data first«.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Izberi svoj <i>LoyaltyCardKeychain.csv</i> Kartice zvestobe izvoz podatkov za uvoz. \nKartice zvestobe izvoz podatkov naredi s pritiskom na gumb »Import/Export« v meniju s pritiskom najprej na gumb »Export«.</string>
|
||||
<string name="failedGeneratingShareURL">URL-ja za skupno rabo ni bilo mogoče ustvariti. Prosim prijavi napako.</string>
|
||||
<string name="importFidmeMessage">Izberi svoj izvoz iz FindMe za uvoz in naknadno ročno izberi tipe črtnih kod. \nFidMe izvoz podatkov naredi v svojem FidMe profilu z izbiro »Data Protection« in nato s pritiskom na gumb »Extract my data«.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Izberi svoj izvoz iz Kartice zvestobe za uvoz. \nKartice zvestobe izvoz podatkov naredi s pritiskom na gumb »Uvoz/izvoz« v meniju s pritiskom na gumb »Export«.</string>
|
||||
<string name="failedGeneratingShareURL">URL-ja za skupno rabo ni bilo mogoče ustvariti</string>
|
||||
<string name="settings_oled_dark">Čisto črno ozadje za temno temo</string>
|
||||
<string name="selectColor">Izberi barvo</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
@@ -244,7 +239,6 @@
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Avtorske pravice © 2019–<xliff:g>%d</xliff:g> Sylvia van Os in drugi sodelujoči</string>
|
||||
<string name="permissionReadCardsLabel">Preberi kartice Catima</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Vedno obrni (prezri sistemske nastavitve)</string>
|
||||
<string name="settings_keep_screen_on_summary">Med ogledom kartice ohrani vključen zaslon</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Med ogledom kartice onemogoči zaklepanje zaslona</string>
|
||||
<string name="settings_allow_content_provider_read_title">Dovoli drugim aplikacijam dostop do mojih podatkov</string>
|
||||
@@ -282,7 +276,7 @@
|
||||
<string name="field_must_not_be_empty">Polje ne sme biti prazno</string>
|
||||
<string name="manually_enter_barcode_instructions">Vnesi identifikacijsko številko ali besedilo na kartici in pritisni črtno kodo, ki je podobna tisti na kartici.</string>
|
||||
<string name="add_manually_warning_title">Priporočljivo je skeniranje</string>
|
||||
<string name="add_manually_warning_message">V nekaterih trgovinah se vrednost črtne kode razlikuje od številke, napisane na kartici. Zaradi tega ročno vnašanje črtne kode morda ne bo vedno delovalo. Priporočamo, da črtno kodo raje skeniraš s kamero. Želiš nadaljevati?</string>
|
||||
<string name="add_manually_warning_message">V nekatere kartice se vrednost črtne kode razlikuje od številke, napisane na kartici. Zaradi tega ročno vnašanje črtne kode morda ne bo vedno delovalo. Priporočamo, da črtno kodo raje skeniraš s kamero. Želiš nadaljevati?</string>
|
||||
<string name="continue_">Nadaljuj</string>
|
||||
<string name="spend">Porabi</string>
|
||||
<string name="receive">Prejmi</string>
|
||||
@@ -302,16 +296,24 @@
|
||||
<string name="switchToFrontImage">Preklopi na prednjo sliko</string>
|
||||
<string name="switchToBackImage">Preklopi na zadnjo sliko</string>
|
||||
<string name="switchToBarcode">Preklopi na črtno kodo</string>
|
||||
<string name="openFrontImageInGalleryApp">Odpri sprednjo sliko v galeriji</string>
|
||||
<string name="openBackImageInGalleryApp">Odpri zadnjo sliko v galeriji</string>
|
||||
<string name="openFrontImageInGalleryApp">Odpri sprednjo sliko v aplikaciji za slike</string>
|
||||
<string name="openBackImageInGalleryApp">Odpri zadnjo sliko v aplikaciji za slike</string>
|
||||
<string name="setBarcodeHeight">Nastavi višino črtne kode</string>
|
||||
<string name="useFrontImage">Uporabi prednjo sliko</string>
|
||||
<string name="useBackImage">Uporabi zadnjo sliko</string>
|
||||
<string name="addFromPkpass">Izberi Passbook datoteko (.pkpass)</string>
|
||||
<string name="addFromPkpass">Izberi Passbook datoteko (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">Ta datoteka ni podprta</string>
|
||||
<string name="generic_error_please_retry">Žal se je pojavila napaka, poskusi znova …</string>
|
||||
<string name="generic_error_please_retry">Prišlo je do napake</string>
|
||||
<string name="width">Širina</string>
|
||||
<string name="card_list_widget_name">Seznam kartic</string>
|
||||
<string name="setBarcodeWidth">Nastavi širino črtne kode</string>
|
||||
<string name="card_list_widget_empty">Ko v Catimi dodaš nekaj kartic zvestobe, se bodo te prikazale tukaj. Če imaš kartice, se prepričaj, da niso vse arhivirane.</string>
|
||||
<string name="cardWithNumber">Kartica <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kartica <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Naprave ne obračaj, saj bo to prekinilo postopek</string>
|
||||
<string name="acra_catima_has_crashed">Žal nam je, vendar se je aplikacija <xliff:g id="app_name">%s</xliff:g> sesula. Pomagaj nam odpraviti to težavo tako, da nam pošlješ poročilo o napaki.</string>
|
||||
<string name="acra_explain_crash">Če je mogoče, dodaj več podrobnosti o tem, kaj si tukaj počel/a:</string>
|
||||
<string name="acra_crash_email_subject">Poročilo o sesutju aplikacije <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Prosi za pošiljanje poročila o sesutju</string>
|
||||
<string name="pref_enable_acra_summary">Ko je ta možnost omogočena, boš ob pojavu sesutja pozvan, da prijaviš napako. Poročilo o sesutju se nikoli ne pošilja samodejno.</string>
|
||||
</resources>
|
||||
|
||||
@@ -57,15 +57,9 @@
|
||||
<string name="settings_system_theme">Sistem</string>
|
||||
<string name="settings_light_theme">Svetla</string>
|
||||
<string name="settings_dark_theme">Tamna</string>
|
||||
<string name="settings_follow_system_orientation">Kao sistem</string>
|
||||
<string name="settings_follow_sensor_orientation">Uvek rotiraj (ignoriše sistemska podešavanja)</string>
|
||||
<string name="settings_portrait_orientation">Uspravno</string>
|
||||
<string name="settings_landscape_orientation">Položeno</string>
|
||||
<string name="settings_lock_on_opening_orientation">Zaključavanje orijentacije koja se koristi prilikom otvaranja kartice</string>
|
||||
<string name="settings_display_barcode_max_brightness">Osvetli ekran</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Neophodno za rad nekih čitača</string>
|
||||
<string name="selectBarcodeTitle">Odaberi bar-kod</string>
|
||||
<string name="settings_card_orientation">Orijentacija ekrana</string>
|
||||
<string name="thumbnailDescription">Naslovna fotografija</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Spreči zaključavanje ekrana</string>
|
||||
<string name="settings_allow_content_provider_read_title">Dozvoli drugim aplikacijama da pristupe mojim podacima</string>
|
||||
|
||||
@@ -2,23 +2,20 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="settings_display_barcode_max_brightness">Gör skärmen ljusare</string>
|
||||
<string name="settings_keep_screen_on">Håll skärmen påslagen</string>
|
||||
<string name="importFidmeMessage">Välj den exporterade <i>fidme-export-request-xxxxxx.zip</i> från FidMe som du vill importera och välj streckkodstyper manuellt efteråt.
|
||||
\nSkapa den från din FidMe-profil först genom att välja \"Data Protection\" och sen trycka på \"Extract my data\".</string>
|
||||
<string name="importFidmeMessage">Välj den exporterade från FidMe som du vill importera och välj streckkodstyper manuellt efteråt.\nSkapa den från din FidMe-profil genom att välja \"Data Protection\" och sen trycka på \"Extract my data\".</string>
|
||||
<string name="intent_import_card_from_url_share_text">Jag vill dela ett kort med dig</string>
|
||||
<string name="noGroups">Klicka på plus(+)-knappen för att lägga till kategorigrupper.</string>
|
||||
<string name="noGroups">Klicka på plus(+)-knappen för att lägga till kategorigrupper</string>
|
||||
<string name="groupsList">Grupper: <xliff:g>%s</xliff:g></string>
|
||||
<string name="errorReadingImage">Kunde inte läsa bilden</string>
|
||||
<string name="currency">Valuta</string>
|
||||
<string name="failedGeneratingShareURL">Kunde inte skapa en delningsbar URL. Var snäll och rapportera detta.</string>
|
||||
<string name="failedGeneratingShareURL">Kunde inte skapa en delningsbar URL</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> valt</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> valda</item>
|
||||
</plurals>
|
||||
<string name="app_loyalty_card_keychain">Nyckelring för bonuskort</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Välj den exporterade <i>LoyaltyCardKeychain.csv</i> från Loyalty Card Keychain som du vill importera.
|
||||
\nSkapa den från Import/Export-menyn i Loyalty Card Keychain först genom att trycka på Exportera.</string>
|
||||
<string name="importVoucherVaultMessage">Välj den exporterade <i>vouchervault.json</i> från Voucher Vault som du vill importera.
|
||||
\nSkapa den först genom att trycka på Exportera i Voucher Vault.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Välj den exporterade från Loyalty Card Keychain som du vill importera.\nSkapa den från Import/Export-menyn i Loyalty Card Keychain genom att trycka på Exportera.</string>
|
||||
<string name="importVoucherVaultMessage">Välj den exporterade från Voucher Vault som du vill importera. \nSkapa den genom att trycka på Exportera i Voucher Vault.</string>
|
||||
<string name="enter_group_name">Ange gruppnamn</string>
|
||||
<string name="groups">Grupper</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -47,7 +44,7 @@
|
||||
<string name="importLoyaltyCardKeychain">Importera från Loyalty Card Keychain</string>
|
||||
<string name="importVoucherVault">Importera från Voucher Vault</string>
|
||||
<string name="barcodeId">Streckkodsvärde</string>
|
||||
<string name="passwordRequired">Var snäll och ange lösenordet</string>
|
||||
<string name="passwordRequired">Ange lösenordet</string>
|
||||
<string name="no">Nej</string>
|
||||
<string name="yes">Ja</string>
|
||||
<string name="updateBarcodeQuestionText">Du ändrade ID:t. Vill du uppdatera streckkoden så att den också använder samma värde\?</string>
|
||||
@@ -78,7 +75,7 @@
|
||||
\ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="about">Om</string>
|
||||
<string name="importOptionFilesystemButton">Från filsystemet</string>
|
||||
<string name="importOptionFilesystemExplanation">Välj en specifik fil från filsystemet.</string>
|
||||
<string name="importOptionFilesystemExplanation">Välj en specifik fil från filsystemet</string>
|
||||
<string name="importOptionFilesystemTitle">Importera från filsystem</string>
|
||||
<string name="exporting">Exporterar…</string>
|
||||
<string name="importing">Importerar…</string>
|
||||
@@ -86,7 +83,7 @@
|
||||
<string name="importFailed">Kunde inte genomföra import</string>
|
||||
<string name="importSuccessfulTitle">Importen lyckades</string>
|
||||
<string name="importFailedTitle">Importen misslyckades</string>
|
||||
<string name="importExportHelp">Säkerhetskopiering av din data möjliggör förflyttning av den till en annan enhet.</string>
|
||||
<string name="importExportHelp">Säkerhetskopiering av din data möjliggör förflyttning av den till en annan enhet</string>
|
||||
<string name="importExport">Importera/Exportera</string>
|
||||
<string name="noCardExistsError">Kunde inte hitta det kortet</string>
|
||||
<string name="noCardsMessage">Lägg till ett kort först</string>
|
||||
@@ -118,10 +115,10 @@
|
||||
<string name="cardId">Kort-ID</string>
|
||||
<string name="storeName">Namn</string>
|
||||
<string name="noMatchingGiftCards">Inget resultat. Försök justera din sökning.</string>
|
||||
<string name="noGiftCards">Klicka på plus(+)-knappen för att lägga till ett kort, eller importera från ⋮-menyn.</string>
|
||||
<string name="noGiftCards">Klicka på plus(+)-knappen för att lägga till ett kort, eller importera från ⋮-menyn</string>
|
||||
<string name="action_add">Lägg till</string>
|
||||
<string name="action_search">Sök</string>
|
||||
<string name="exportOptionExplanation">Datan kommer att sparas till en plats som du väljer.</string>
|
||||
<string name="exportOptionExplanation">Datan kommer att sparas till en plats som du väljer</string>
|
||||
<string name="exportName">Exportera</string>
|
||||
<string name="exportFailedTitle">Exporten misslyckades</string>
|
||||
<string name="exportSuccessfulTitle">Exporten lyckades</string>
|
||||
@@ -133,13 +130,12 @@
|
||||
<string name="expiryDate">Förfallodatum</string>
|
||||
<string name="starImage">Favoritstjärna</string>
|
||||
<string name="app_license">Copyleftad fri programvara, under GPLv3+-licens</string>
|
||||
<string name="app_resources">Fria tredjepartsresurser: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Fria tredjepartsbibliotek: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Tredjepartsresurser: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Tredjepartsbibliotek: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Förhindra skärmlåsning</string>
|
||||
<string name="importCatimaMessage">Välj den exporterade <i>catima.zip</i> från Catima som du vill importera.
|
||||
\nSkapa den från Import/Export-menyn i en annan Catima-app genom att trycka på Exportera där först.</string>
|
||||
<string name="importCatimaMessage">Välj den exporterade från Catima som du vill importera.\nSkapa den från Import/Export-menyn i en annan Catima-app genom att trycka på Exportera.</string>
|
||||
<string name="expiryStateSentence">Giltigt till: <xliff:g>%s</xliff:g></string>
|
||||
<string name="exportSuccessful">Data exporterad</string>
|
||||
<string name="importSuccessful">Data importerad</string>
|
||||
@@ -178,13 +174,13 @@
|
||||
<string name="group_updated">Gruppen har uppdaterats</string>
|
||||
<string name="group_edit">Redigera grupp</string>
|
||||
<string name="group_name_already_in_use">Gruppnamnet är redan upptaget</string>
|
||||
<string name="group_name_is_empty">Gruppnamn måste anges</string>
|
||||
<string name="group_name_is_empty">Gruppnamnet får inte vara tomt</string>
|
||||
<string name="editGroup">Redigerar grupp: <xliff:g>%s</xliff:g></string>
|
||||
<string name="selectColor">Välj färg</string>
|
||||
<string name="setIcon">Ställ in miniatyr</string>
|
||||
<string name="credits">Bidragsgivare</string>
|
||||
<string name="source_repository">Källkodslager</string>
|
||||
<string name="noGiftCardsGroup">Skapa några kort och placera dem sedan i den här gruppen.</string>
|
||||
<string name="noGiftCardsGroup">Skapa några kort och placera dem sedan i den här gruppen</string>
|
||||
<string name="translate_platform">på Weblate</string>
|
||||
<string name="shortcutSelectCard">Välj ett kort</string>
|
||||
<string name="showMoreInfo">Visa info</string>
|
||||
@@ -197,13 +193,8 @@
|
||||
<string name="include_if_asking_support">Om du vill be om hjälp, inkludera då följande information:</string>
|
||||
<string name="settings_oled_dark">Helsvart bakgrund för mörkt tema</string>
|
||||
<string name="failedLaunchingPhotoPicker">Kunde inte hitta kompatibelt bildprogram</string>
|
||||
<string name="settings_card_orientation">Streckkodsriktning</string>
|
||||
<string name="settings_portrait_orientation">Porträtt</string>
|
||||
<string name="settings_landscape_orientation">Landskap</string>
|
||||
<string name="settings_lock_on_opening_orientation">Lås aktuell riktning när kort öppnas</string>
|
||||
<string name="unarchive">Ta tillbaks från arkiv</string>
|
||||
<string name="archived">Kort arkiverat</string>
|
||||
<string name="settings_follow_system_orientation">Spårsystem</string>
|
||||
<string name="duplicateCard">Kopiera</string>
|
||||
<string name="unarchived">Kort återläst från arkiv</string>
|
||||
<string name="nextCard">Nästa</string>
|
||||
@@ -228,7 +219,7 @@
|
||||
<string name="updateBalance">Uppdatera balans</string>
|
||||
<string name="failedToRetrieveImageFile">Misslyckades att hämta bildfil</string>
|
||||
<string name="barcodeLongPressMessage">Endast bilder kan öppnas i galleri app</string>
|
||||
<string name="updateBalanceTitle">Hur mycket spenderade du?</string>
|
||||
<string name="updateBalanceTitle">Hur mycket spenderade du eller fick du?</string>
|
||||
<string name="updateBalanceHint">Ange summa</string>
|
||||
<string name="newBalanceSentence">Ny balans: <xliff:g>%s</xliff:g></string>
|
||||
<string name="openFrontImageInGalleryApp">Öppna bilden på framsidan i galleri-appen</string>
|
||||
@@ -269,7 +260,6 @@
|
||||
<string name="addWithoutBarcode">Lägg till kort utan streckkod</string>
|
||||
<string name="field_must_not_be_empty">Obligatoriskt fält</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Rotera automatiskt (ignorerar systeminställningar)</string>
|
||||
<string name="continue_">Fortsätt</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
@@ -294,12 +284,16 @@
|
||||
<string name="settings_column_count_portrait">Kolumner i porträttläge</string>
|
||||
<string name="settings_column_count_landscape">Kolumner i landskapsläge</string>
|
||||
<string name="pageWithNumber">Sida <xliff:g>%d</xliff:g></string>
|
||||
<string name="useFrontImage">Använd bilden på framsidan</string>
|
||||
<string name="useBackImage">Använd bilden på baksidan</string>
|
||||
<string name="useFrontImage">Använd den främre bilden</string>
|
||||
<string name="useBackImage">Använd bakgrundsbild</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Vilka av de hittade streckkoderna vill du använda?</string>
|
||||
<string name="card_list_widget_name">Kortlista</string>
|
||||
<string name="width">Bredd</string>
|
||||
<string name="sort_by_valid_from">Giltigt från</string>
|
||||
<string name="unsupportedFile">Den här filen stöds inte</string>
|
||||
<string name="addFromPkpass">Välj en Passbook-fil (.pkpass)</string>
|
||||
<string name="addFromPkpass">Välj en Passbook-fil (.pkpass / .pkpasses)</string>
|
||||
<string name="settings_category_title_cards_overview">Kortöversikt</string>
|
||||
<string name="generic_error_please_retry">Ett fel uppstod</string>
|
||||
<string name="cardWithNumber">Kort <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kort <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
</resources>
|
||||
|
||||
@@ -111,14 +111,8 @@
|
||||
<string name="settings_system_theme">மண்டலம்</string>
|
||||
<string name="settings_light_theme">ஒளி</string>
|
||||
<string name="settings_dark_theme">இருண்ட</string>
|
||||
<string name="settings_card_orientation">திரை நோக்குநிலை</string>
|
||||
<string name="settings_follow_system_orientation">அமைப்பைப் பின்தொடரவும்</string>
|
||||
<string name="settings_keep_screen_on">திரையை தொடர்ந்து வைத்திருங்கள்</string>
|
||||
<string name="settings_follow_sensor_orientation">எப்போதும் சுழற்றுங்கள் (கணினி அமைப்புகளை புறக்கணிக்கிறது)</string>
|
||||
<string name="settings_keep_screen_on_summary">ஒரு அட்டையைப் பார்க்கும்போது திரை நேரத்தை முடக்குகிறது</string>
|
||||
<string name="settings_portrait_orientation">உருவப்படம்</string>
|
||||
<string name="settings_landscape_orientation">நிலப்பரப்பு</string>
|
||||
<string name="settings_lock_on_opening_orientation">அட்டையைத் திறக்கும்போது பயன்படுத்தப்படும் நோக்குநிலைக்கு பூட்டு</string>
|
||||
<string name="settings_display_barcode_max_brightness">திரை ஒளி</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">சில ச்கேனர்கள் வேலை செய்ய தேவை</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">திரை பூட்டைத் தடுக்கவும்</string>
|
||||
@@ -302,4 +296,12 @@
|
||||
<string name="width">அகலம்</string>
|
||||
<string name="card_list_widget_name">அட்டை பட்டியல்</string>
|
||||
<string name="card_list_widget_empty">கேட்டிமாவில் நீங்கள் விசுவாச அட்டைகளை சேர்த்த பிறகு, அவை இங்கு தோன்றும். அட்டைகள் காப்பகப்படுத்த படவில்லை என உறுதி செய்க.</string>
|
||||
<string name="cardWithNumber">அட்டை<xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">அட்டை<xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">தயவுசெய்து சாதனத்தை சுழற்றாதீர்கள், இது செயலை ரத்து செய்யும்.</string>
|
||||
<string name="acra_catima_has_crashed">மன்னிக்கவும், <xliff:g id="app_name">%s</xliff:g> செயலி செயலிழந்துள்ளது. தயவுசெய்து பிழை அறிக்கையை அனுப்பி, இந்த பிரச்சினையை சரிசெய்ய எங்களுக்கு உதவுங்கள்.</string>
|
||||
<string name="acra_explain_crash">சாத்தியமானால், நீங்கள் இங்கே என்ன செய்தீர்கள் என்பதைப் பற்றிய மேலும் விவரங்களைச் சேர்க்கவும்:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> செயலிழப்பு அறிக்கை</string>
|
||||
<string name="pref_enable_acra">செயலிழப்பு அறிக்கைகளை அனுப்ப வேண்டுமா</string>
|
||||
<string name="pref_enable_acra_summary">இது இயக்கப்பட்டால், செயலி செயலிழக்கும் போது அதைப் பற்றிய அறிக்கையை அனுப்பும்படி உங்களிடம் கேட்கப்படும். செயலிழப்பு அறிக்கைகள் ஒருபோதும் தானாக அனுப்பப்படமாட்டாது.</string>
|
||||
</resources>
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
<string name="settings_locale">Dil</string>
|
||||
<string name="turn_flashlight_off">El fenerini kapat</string>
|
||||
<string name="turn_flashlight_on">El fenerini aç</string>
|
||||
<string name="failedGeneratingShareURL">Paylaşılabilir URL oluşturulamadı. Lütfen bunu bildirin.</string>
|
||||
<string name="passwordRequired">Lütfen parolayı girin</string>
|
||||
<string name="failedGeneratingShareURL">Paylaşılabilir URL oluşturulamadı</string>
|
||||
<string name="passwordRequired">Parolayı girin</string>
|
||||
<string name="no">Hayır</string>
|
||||
<string name="yes">Evet</string>
|
||||
<string name="updateBarcodeQuestionText">Numarayı değiştirdiniz. Aynı değeri kullanmak için barkodu da güncellemek ister misiniz\?</string>
|
||||
@@ -33,20 +33,16 @@
|
||||
<string name="setBarcodeId">Barkod değerini ayarla</string>
|
||||
<string name="sameAsCardId">Numarayla aynı</string>
|
||||
<string name="barcodeId">Barkod değeri</string>
|
||||
<string name="importVoucherVaultMessage">İçe aktarmak için Voucher Vault\'tan dışa aktardığınız <i>vouchervault.json</i> dosyasını seçin.
|
||||
\nÖnce Voucher Vault\'ta \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importVoucherVaultMessage">İçe aktarmak için Voucher Vault\'tan dışa aktardığınız dosyayı seçin.\nVoucher Vault\'ta \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importVoucherVault">Voucher Vault\'tan içe aktar</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">İçe aktarmak için Loyalty Card Keychain\'den dışa aktardığınız <i>LoyaltyCardKeychain.csv</i> dosyasını seçin.
|
||||
\nLoyalty Card Keychain uygulamasının İçe/Dışa aktar menüsündeki \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">İçe aktarmak için Loyalty Card Keychain\'den dışa aktardığınız dosyayı seçin.\nLoyalty Card Keychain uygulamasının İçe/Dışa aktar menüsündeki \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importLoyaltyCardKeychain">Loyalty Card Keychain\'den içe aktar</string>
|
||||
<string name="importFidmeMessage">FidMe\'den içe aktarmak için dışa aktardığınız <i>fidme-export-request-xxxxxx.zip</i> dosyasını seçin ve ardından barkod türlerini elle seçin.
|
||||
\nFidMe profilinizden Veri Koruma seçeneğini seçip ardından \"Verilerimi çıkar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importFidmeMessage">FidMe\'den içe aktarmak için dışa aktardığınız dosyayı seçin ve ardından barkod türlerini elle seçin.\nFidMe profilinizden Veri Koruma seçeneğini seçip ardından \"Verilerimi çıkar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importFidme">FidMe\'den içe aktar</string>
|
||||
<string name="importCatimaMessage">İçe aktarmak için Catima\'dan dışa aktardığınız <i>catima.zip</i> dosyasını seçin.
|
||||
\nBaşka bir Catima uygulamasının İçe/Dışa aktar menüsündeki \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importCatimaMessage">İçe aktarmak için Catima\'dan dışa aktardığınız dosyayı seçin. \nBaşka bir Catima uygulamasının İçe/dışa aktar menüsündeki dışa aktar düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importCatima">Catima\'dan içe aktar</string>
|
||||
<string name="accept">Kabul et</string>
|
||||
<string name="privacy_policy">Gizlilik Politikası</string>
|
||||
<string name="privacy_policy">Gizlilik politikası</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Verileri şuradan içe aktar</string>
|
||||
<string name="points">Puan</string>
|
||||
@@ -70,7 +66,7 @@
|
||||
<string name="leaveWithoutSaveTitle">Çıkış</string>
|
||||
<string name="moveDown">Aşağı git</string>
|
||||
<string name="moveUp">Yukarı git</string>
|
||||
<string name="failedOpeningFileManager">Önce bir dosya yöneticisi kurun.</string>
|
||||
<string name="failedOpeningFileManager">Dosya yöneticisi açılamadı</string>
|
||||
<string name="deleteConfirmationGroup">Grup silinsin mi\?</string>
|
||||
<string name="all">Tümü</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -78,7 +74,7 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kart</item>
|
||||
</plurals>
|
||||
<string name="noGroupCards">Bu grup boş</string>
|
||||
<string name="noGroups">Kategorilere ayırmak üzere gruplar eklemek için + artı düğmesine tıklayın.</string>
|
||||
<string name="noGroups">Kategorilere ayırmak üzere gruplar eklemek için + artı düğmesine tıklayın</string>
|
||||
<string name="groups">Gruplar</string>
|
||||
<string name="enter_group_name">Grup adını girin</string>
|
||||
<string name="exportSuccessful">Veriler dışa aktarıldı</string>
|
||||
@@ -94,9 +90,9 @@
|
||||
<string name="settings">Ayarlar</string>
|
||||
<string name="starImage">Sık kullanılan yıldız</string>
|
||||
<string name="thumbnailDescription">Küçük resim</string>
|
||||
<string name="selectBarcodeTitle">Barkod Seç</string>
|
||||
<string name="app_resources">Özgür üçüncü taraf kaynakları: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Özgür üçüncü taraf kütüphaneleri: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Barkod seç</string>
|
||||
<string name="app_resources">Üçüncü taraf kaynakları: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Üçüncü taraf kütüphaneler: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Sürüm: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt"><xliff:g id="app_name">%s</xliff:g> hakkında</string>
|
||||
<string name="app_license">GPLv3+ altında lisanslanan copyleft özgür yazılım</string>
|
||||
@@ -105,9 +101,9 @@
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Telif Hakkı © 2019–<xliff:g>%d</xliff:g> Sylvia van Os ve katkıda bulunanlar</string>
|
||||
<string name="about">Hakkında</string>
|
||||
<string name="importOptionFilesystemButton">Dosya sisteminden</string>
|
||||
<string name="importOptionFilesystemExplanation">Dosya sisteminden belirli bir dosya seçin.</string>
|
||||
<string name="importOptionFilesystemExplanation">Dosya sisteminden belirli bir dosya seçin</string>
|
||||
<string name="importOptionFilesystemTitle">Dosya sisteminden içe aktar</string>
|
||||
<string name="exportOptionExplanation">Veriler seçtiğiniz bir konuma yazılacak.</string>
|
||||
<string name="exportOptionExplanation">Veriler seçtiğiniz bir konuma yazılacak</string>
|
||||
<string name="exporting">Dışa aktarılıyor…</string>
|
||||
<string name="importing">İçe aktarılıyor…</string>
|
||||
<string name="exportFailed">Dışa aktarma gerçekleştirilemedi</string>
|
||||
@@ -116,18 +112,18 @@
|
||||
<string name="importFailed">İçe aktarma gerçekleştirilemedi</string>
|
||||
<string name="importFailedTitle">İçe aktarılamadı</string>
|
||||
<string name="importSuccessfulTitle">İçe aktarıldı</string>
|
||||
<string name="importExportHelp">Verilerinizi yedeklemek, onları başka bir aygıta taşımanıza olanak tanır.</string>
|
||||
<string name="importExportHelp">Verilerinizi yedeklemek, onları başka bir aygıta taşımanıza olanak tanır</string>
|
||||
<string name="exportName">Dışa aktar</string>
|
||||
<string name="importExport">İçe/Dışa aktar</string>
|
||||
<string name="importExport">İçe/dışa aktar</string>
|
||||
<string name="failedParsingImportUriError">İçe aktarma URI\'si ayrıştırılamadı</string>
|
||||
<string name="noCardExistsError">Bu kart bulunamadı</string>
|
||||
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g> barkod görüntüsü</string>
|
||||
<string name="cardId">Kart numarası</string>
|
||||
<string name="noCardsMessage">Önce bir kart ekleyin</string>
|
||||
<string name="cardShortcut">Kart Kısayolu</string>
|
||||
<string name="scanCardBarcode">Barkod Tara</string>
|
||||
<string name="addCardTitle">Kart Ekle</string>
|
||||
<string name="editCardTitle">Kartı Düzenle</string>
|
||||
<string name="cardShortcut">Kart kısayolu</string>
|
||||
<string name="scanCardBarcode">Barkod tara</string>
|
||||
<string name="addCardTitle">Kart ekle</string>
|
||||
<string name="editCardTitle">Kartı düzenle</string>
|
||||
<string name="sendLabel">Gönder…</string>
|
||||
<string name="share">Paylaş</string>
|
||||
<string name="ok">Tamam</string>
|
||||
@@ -153,7 +149,7 @@
|
||||
<string name="note">Not</string>
|
||||
<string name="storeName">Ad</string>
|
||||
<string name="noMatchingGiftCards">Sonuç yok. Aramanızı değiştirmeyi deneyin.</string>
|
||||
<string name="noGiftCards">Bir kart eklemek için + artı düğmesine tıklayın veya ⋮ menüsünden içe aktarın.</string>
|
||||
<string name="noGiftCards">Kart eklemek için + artı düğmesine tıklayın veya ⋮ menüsünden içe aktarın</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> seçildi</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> seçildi</item>
|
||||
@@ -163,24 +159,24 @@
|
||||
<string name="sort_by">Sıralama ölçütü</string>
|
||||
<string name="reverse">…ters sırada</string>
|
||||
<string name="sort_by_expiry">Son kullanma tarihi</string>
|
||||
<string name="sort_by_most_recently_used">En Son Kullanılan</string>
|
||||
<string name="sort_by_most_recently_used">En son kullanılan</string>
|
||||
<string name="sort_by_name">Ad</string>
|
||||
<string name="sort">Sırala</string>
|
||||
<string name="report_error">Hata Bildir</string>
|
||||
<string name="report_error">Hata bildir</string>
|
||||
<string name="on_google_play">Google Play\'de</string>
|
||||
<string name="rate_this_app">Bu uygulamayı değerlendir</string>
|
||||
<string name="and_data_usage">ve veri kullanımı</string>
|
||||
<string name="on_github">GitHub\'da</string>
|
||||
<string name="source_repository">Kaynak Deposu</string>
|
||||
<string name="source_repository">Kaynak deposu</string>
|
||||
<string name="license">Lisans</string>
|
||||
<string name="help_translate_this_app">Bu uygulamayı çevirmeye yardımcı olun</string>
|
||||
<string name="credits">Emeği Geçenler</string>
|
||||
<string name="version_history">Sürüm Geçmişi</string>
|
||||
<string name="version_history">Sürüm geçmişi</string>
|
||||
<string name="exportPassword">Dışa aktarmanızı korumak için bir parola belirleyin (isteğe bağlı)</string>
|
||||
<string name="exportPasswordHint">Parola girin</string>
|
||||
<string name="noGiftCardsGroup">Birkaç kart oluşturun ve ardından onları burada gruba atayın.</string>
|
||||
<string name="noGiftCardsGroup">Bazı kartlar oluşturun ve ardından bunları buradaki gruba atayın</string>
|
||||
<string name="group_name_already_in_use">Grup adı zaten kullanılıyor</string>
|
||||
<string name="editGroup">Grup Düzenleniyor: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Grup düzenleniyor: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_edit">Grubu Düzenle</string>
|
||||
<string name="group_name_is_empty">Grup adı boş olamaz</string>
|
||||
<string name="group_updated">Grup güncellendi</string>
|
||||
@@ -197,17 +193,12 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Koyu tema için saf siyah arka plan</string>
|
||||
<string name="include_if_asking_support">Destek talep etmek istiyorsanız, aşağıdaki bilgileri ekleyin:</string>
|
||||
<string name="settings_follow_system_orientation">Sistemi takip et</string>
|
||||
<string name="settings_portrait_orientation">Dikey</string>
|
||||
<string name="settings_landscape_orientation">Yatay</string>
|
||||
<string name="duplicateCard">Çoğalt</string>
|
||||
<string name="unarchive">Arşivden çıkar</string>
|
||||
<string name="archived">Kart arşivlendi</string>
|
||||
<string name="settings_card_orientation">Ekran yönü</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kartı açarken kullanılan yönü kilitle</string>
|
||||
<string name="unarchived">Kart arşivden çıkarıldı</string>
|
||||
<string name="archive">Arşivle</string>
|
||||
<string name="failedLaunchingPhotoPicker">Desteklenen bir galeri uygulaması bulunamadı</string>
|
||||
<string name="failedLaunchingPhotoPicker">Desteklenen bir resim seçici bulunamadı</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kart (<xliff:g id="archivedCount">%2$d</xliff:g> tane arşivlendi)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kart (<xliff:g id="archivedCount">%2$d</xliff:g> tane arşivlendi)</item>
|
||||
@@ -238,8 +229,8 @@
|
||||
<string name="donate">Bağış yap</string>
|
||||
<string name="switchToFrontImage">Ön resme geç</string>
|
||||
<string name="setBarcodeHeight">Barkod yüksekliğini ayarla</string>
|
||||
<string name="openFrontImageInGalleryApp">Ön resmi galeri uygulamasında aç</string>
|
||||
<string name="openBackImageInGalleryApp">Arka resmi galeri uygulamasında aç</string>
|
||||
<string name="openFrontImageInGalleryApp">Ön resmi resim görüntüleyici uygulamasında aç</string>
|
||||
<string name="openBackImageInGalleryApp">Arka resmi resim görüntüleyici uygulamasında aç</string>
|
||||
<string name="icon_header_click_text">Küçük resmi düzenlemek için uzun basın</string>
|
||||
<string name="show_name_below_image_thumbnail">Küçük resmin altında adı göster</string>
|
||||
<string name="show_note">Notu göster</string>
|
||||
@@ -269,10 +260,9 @@
|
||||
<string name="addWithoutBarcode">Barkodsuz bir kart ekle</string>
|
||||
<string name="field_must_not_be_empty">Alan boş olamaz</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Her zaman döndür (sistem ayarlarını yok sayar)</string>
|
||||
<string name="continue_">Devam et</string>
|
||||
<string name="add_manually_warning_title">Tarama yapılması tavsiye edilir</string>
|
||||
<string name="add_manually_warning_message">Bazı mağazalarda barkod değeri kartta yazan sayıdan farklıdır. Bu nedenle, bir barkodu elle girmek her zaman işe yaramayabilir. Bunun yerine barkodu kameranızla taramanız şiddetle tavsiye edilir. Yine de devam etmek istiyor musunuz?</string>
|
||||
<string name="add_manually_warning_message">Bazı kartta barkod değeri kartta yazan sayıdan farklıdır. Bu nedenle, bir barkodu elle girmek her zaman işe yaramayabilir. Bunun yerine barkodu kameranızla taramanız tavsiye edilir. Yine de devam etmek istiyor musunuz?</string>
|
||||
<string name="spend">Harca</string>
|
||||
<string name="receive">Al</string>
|
||||
<string name="amountParsingFailed">Geçersiz miktar</string>
|
||||
@@ -300,13 +290,19 @@
|
||||
<string name="settings_automatic_column_count">Otomatik</string>
|
||||
<string name="settings_column_count_portrait">Portre modundaki sutunlar</string>
|
||||
<string name="unsupportedFile">Bu dosya desteklenmiyor</string>
|
||||
<string name="generic_error_please_retry">Üzgünüz, bir şeyler ters gitti, lütfen tekrar deneyin...</string>
|
||||
<string name="generic_error_please_retry">Bir hata oluştu</string>
|
||||
<string name="addFromPkpass">Bir Passbook dosyası seçin (.pkpass)</string>
|
||||
<string name="sort_by_valid_from">İtibaren Geçerli</string>
|
||||
<string name="sort_by_valid_from">İtibaren geçerli</string>
|
||||
<string name="width">Genişlik</string>
|
||||
<string name="setBarcodeWidth">Barkod Genişliğini Ayarla</string>
|
||||
<string name="setBarcodeWidth">Barkod genişliğini ayarla</string>
|
||||
<string name="card_list_widget_name">Kart listesi</string>
|
||||
<string name="card_list_widget_empty">Catima\'ya sadakat kartları eklediğinizde, burada gözükecekler. Eğer kartlarınız varsa, arşivlemediğinizden emin olun.</string>
|
||||
<string name="cardWithNumber">Kart <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kart <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Kart <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Lütfen cihazı döndürme, bu işlemi iptal edecektir</string>
|
||||
<string name="acra_catima_has_crashed">Üzgünüz, fakat <xliff:g id="app_name">%s</xliff:g> çöktü. Lütfen bunu çözmemize yardım etmek için bize bir hata raporu gönderin.</string>
|
||||
<string name="acra_explain_crash">Mümkünse lütfen ne yaptığınızla ilgili daha fazla detay ekleyin:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> çökme raporu</string>
|
||||
<string name="pref_enable_acra_summary">Etkinleştirildiğinde, bir çökmeyi şikayet etmeniz istenecektir. Çökme raporları hiç bir zaman otomatik olarak gönderilmez.</string>
|
||||
<string name="pref_enable_acra">Çökme bildirimlerini göndermeyi iste</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="noGiftCards">Натисніть кнопку +, щоб додати картку, або ⋮ для імпорту з меню.</string>
|
||||
<string name="noGiftCards">Натисніть кнопку + плюс, щоб додати картку, або імпортуйте її з меню ⋮</string>
|
||||
<string name="settings_display_barcode_max_brightness">Збільшити яскравість екрана</string>
|
||||
<string name="selectBarcodeTitle">Оберіть штрих-код</string>
|
||||
<string name="scanCardBarcode">Відсканувати штрих-код</string>
|
||||
<string name="selectBarcodeTitle">Виберіть штрих-код</string>
|
||||
<string name="scanCardBarcode">Скануйте штрих-код</string>
|
||||
<string name="noBarcode">Без штрих-коду</string>
|
||||
<string name="barcodeType">Тип штрих-коду</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -16,21 +16,17 @@
|
||||
<string name="yes">Так</string>
|
||||
<string name="updateBarcodeQuestionText">Ви змінили ID. Чи ви бажаєте оновити штрих-код для використання цього ж значення\?</string>
|
||||
<string name="updateBarcodeQuestionTitle">Оновити значення штрих-коду\?</string>
|
||||
<string name="wrongValueForBarcodeType">Значення не дійсне для обраного типу штрих-коду</string>
|
||||
<string name="wrongValueForBarcodeType">Значення недійсне для вибраного типу штрих-коду</string>
|
||||
<string name="unsupportedBarcodeType">Цей тип штрих-коду поки що не відображається. Підтримку може бути додано в подальших версіях застосунку.</string>
|
||||
<string name="setBarcodeId">Встановіть значення штрих-коду</string>
|
||||
<string name="sameAsCardId">Таке ж як ID</string>
|
||||
<string name="barcodeId">Значення штрих-коду</string>
|
||||
<string name="importVoucherVaultMessage">Оберіть Voucher Vault експорт-файл названий <i>vouchervault.json</i> для імпортування.
|
||||
\nСтворіть його натиснувши \"Експорт\" у Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Виберіть експорт зі Сховища ваучерів для імпорту.\nСтворіть його, натиснувши «Експорт» у Сховищі ваучерів.</string>
|
||||
<string name="importVoucherVault">Імпорт з Voucher Vault</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Знайдіть файл названий <i>LoyaltyCardKeychain.csv</i> для імпортування.
|
||||
\nСтворіть його у меню імпорту/експорту Loyalty Card Keychain натиснувши \"Експорт\".</string>
|
||||
<string name="importCatimaMessage">Оберіть експорт-файл названий <i>catima.zip</i> для імпортування.
|
||||
\nСтворіть його з меню імпорту/експорту у іншій Catima, натиснувши \"Експорт\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Виберіть експорт із брелока картки лояльності для імпорту.\nСтворіть його з меню «Імпорт/Експорт» у брелоку картки лояльності, натиснувши «Експорт».</string>
|
||||
<string name="importCatimaMessage">Виберіть експорт із Catima для імпорту.\nСтворіть його з меню Імпорт/експорт іншого застосунку Catima, натиснувши «Експорт».</string>
|
||||
<string name="importLoyaltyCardKeychain">Імпорт з Loyalty Card Keychain</string>
|
||||
<string name="importFidmeMessage">Оберіть FidMe експорт-файл названий <i>fidme-export-request-xxxxxx.zip</i> для імпортування і оберіть типи штрих-кодів.
|
||||
\nСтворіть його у вашому FidMe профілі обравши \"Захист даних -> Витяг даних\".</string>
|
||||
<string name="importFidmeMessage">Виберіть експорт із FidMe для імпорту та після цього вручну виберіть типи штрих-кодів.\nСтворіть його зі свого профілю FidMe, вибравши «Захист даних» та натиснувши «Витягти мої дані».</string>
|
||||
<string name="importFidme">Імпорт з FidMe</string>
|
||||
<string name="importCatima">Імпорт з Catima</string>
|
||||
<string name="accept">Прийняти</string>
|
||||
@@ -40,7 +36,7 @@
|
||||
<string name="points">Бали</string>
|
||||
<string name="currency">Валюта</string>
|
||||
<string name="balance">Баланс</string>
|
||||
<string name="errorReadingImage">Неможливо прочитати зображення</string>
|
||||
<string name="errorReadingImage">Не вдалося прочитати зображення</string>
|
||||
<string name="noBarcodeFound">Жодного штрих-коду не знайдено</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Посунути штрих-код наверх екрану</string>
|
||||
<string name="chooseExpiryDate">Оберіть дату</string>
|
||||
@@ -58,10 +54,10 @@
|
||||
<string name="leaveWithoutSaveTitle">Вихід</string>
|
||||
<string name="moveDown">Посунути донизу</string>
|
||||
<string name="moveUp">Посунути вгору</string>
|
||||
<string name="failedOpeningFileManager">Спочатку встановіть файловий менеджер.</string>
|
||||
<string name="failedOpeningFileManager">Не вдалося відкрити файловий менеджер</string>
|
||||
<string name="deleteConfirmationGroup">Видалити групу\?</string>
|
||||
<string name="all">Усі</string>
|
||||
<string name="noGroups">Натисніть +, щоб додати групи для категоризації.</string>
|
||||
<string name="noGroups">Натисніть кнопку «+» з плюсом, щоб додати групи для категоризації</string>
|
||||
<string name="groups">Групи</string>
|
||||
<string name="enter_group_name">Введіть ім\'я групи</string>
|
||||
<string name="exportSuccessful">Дані експортовано</string>
|
||||
@@ -77,8 +73,8 @@
|
||||
<string name="starImage">Улюблена зірка</string>
|
||||
<string name="thumbnailDescription">Ескіз</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Я хочу поділитися з тобою деякими картками</string>
|
||||
<string name="app_resources">Вільні ресурси третіх сторін: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Вільні бібліотеки третіх сторін: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Сторонні ресурси: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">Бібліотеки сторонніх розробників: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Версія: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt">Про <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="app_license">Вільне копілефт програмне забезпечення, ліцензоване GPLv3+</string>
|
||||
@@ -87,9 +83,9 @@
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Авторські права © 2019–<xliff:g>%d</xliff:g> Sylvia van Os та співавтори</string>
|
||||
<string name="about">Про застосунок</string>
|
||||
<string name="importOptionFilesystemButton">Обрати файл</string>
|
||||
<string name="importOptionFilesystemExplanation">Оберіть потрібний файл у провіднику.</string>
|
||||
<string name="importOptionFilesystemExplanation">Оберіть потрібний файл у провіднику</string>
|
||||
<string name="importOptionFilesystemTitle">Імпорт з файлу</string>
|
||||
<string name="exportOptionExplanation">Дані будуть записані у вибране вами місце.</string>
|
||||
<string name="exportOptionExplanation">Дані будуть записані у вибране вами місце</string>
|
||||
<string name="exporting">Експорт…</string>
|
||||
<string name="importing">Імпорт…</string>
|
||||
<string name="exportFailed">Не вдалося здійснити експорт</string>
|
||||
@@ -98,13 +94,13 @@
|
||||
<string name="importFailed">Не вдалося здійснити імпорт</string>
|
||||
<string name="importFailedTitle">Помилка імпорту</string>
|
||||
<string name="importSuccessfulTitle">Імпортовано</string>
|
||||
<string name="importExportHelp">Резервне копіювання даних дозволяє перенести їх на інший пристрій.</string>
|
||||
<string name="importExportHelp">Резервне копіювання даних дозволяє перенести їх на інший пристрій</string>
|
||||
<string name="exportName">Експорт</string>
|
||||
<string name="importExport">Імпорт/Експорт</string>
|
||||
<string name="failedParsingImportUriError">Не вдалося розібрати URI імпорту</string>
|
||||
<string name="importExport">Імпорт/експорт</string>
|
||||
<string name="failedParsingImportUriError">Не вдалося проаналізувати URI імпорту</string>
|
||||
<string name="noCardExistsError">Не вдалося знайти цю картку</string>
|
||||
<string name="noCardsMessage">Спочатку додайте картку</string>
|
||||
<string name="cardShortcut">Ярлик картки</string>
|
||||
<string name="cardShortcut">Скорочення картки</string>
|
||||
<string name="addCardTitle">Додати картку</string>
|
||||
<string name="editCardTitle">Редагувати картку</string>
|
||||
<string name="sendLabel">Відправити…</string>
|
||||
@@ -125,8 +121,8 @@
|
||||
<string name="action_search">Пошук</string>
|
||||
<string name="turn_flashlight_off">Вимкнути спалах</string>
|
||||
<string name="turn_flashlight_on">Увімкнути спалах</string>
|
||||
<string name="failedGeneratingShareURL">Збій створення URL обміну. Будь ласка повідомте про це.</string>
|
||||
<string name="passwordRequired">Будь ласка введіть пароль</string>
|
||||
<string name="failedGeneratingShareURL">Не вдалося створити URL-адресу для спільного використання</string>
|
||||
<string name="passwordRequired">Введіть пароль</string>
|
||||
<string name="takePhoto">Зробити світлину</string>
|
||||
<string name="removeImage">Видалити зображення</string>
|
||||
<string name="setBackImage">Встановити зображення тильної сторони</string>
|
||||
@@ -171,13 +167,13 @@
|
||||
<string name="sort_by">Сортувати за</string>
|
||||
<string name="reverse">… у зворотному порядку</string>
|
||||
<string name="sort_by_expiry">Термін дії</string>
|
||||
<string name="sort_by_most_recently_used">Часто використовувані</string>
|
||||
<string name="sort_by_most_recently_used">Останній використаний</string>
|
||||
<string name="sort_by_name">Назва</string>
|
||||
<string name="sort">Сортувати</string>
|
||||
<string name="version_history">Історія версій</string>
|
||||
<string name="help_translate_this_app">Допомогти з перекладом застосунку</string>
|
||||
<string name="license">Ліцензія</string>
|
||||
<string name="source_repository">Початковий код</string>
|
||||
<string name="source_repository">Репозиторій вихідного коду</string>
|
||||
<string name="on_github">на GitHub</string>
|
||||
<string name="and_data_usage">та використання даних</string>
|
||||
<string name="credits">Подяки</string>
|
||||
@@ -188,10 +184,10 @@
|
||||
<string name="exportPasswordHint">Введіть пароль</string>
|
||||
<string name="group_name_is_empty">Назва групи не повинна бути порожньою</string>
|
||||
<string name="group_updated">Групу оновлено</string>
|
||||
<string name="editGroup">Редагування групи: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Група редагування: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_edit">Змінити групу</string>
|
||||
<string name="group_name_already_in_use">Група з такою назвою вже існує</string>
|
||||
<string name="noGiftCardsGroup">Створіть кілька карток та призначте їх до групи тут.</string>
|
||||
<string name="noGiftCardsGroup">Створіть кілька карток, а потім розподіліть їх між групами тут</string>
|
||||
<string name="selectColor">Вибір кольору</string>
|
||||
<string name="setIcon">Вибір мініатюри</string>
|
||||
<string name="translate_platform">на Weblate</string>
|
||||
@@ -208,13 +204,8 @@
|
||||
</plurals>
|
||||
<string name="include_if_asking_support">Якщо ви хочете отримати техпідтримку, додайте цю інформацію:</string>
|
||||
<string name="unarchive">Розархівувати</string>
|
||||
<string name="settings_card_orientation">Орієнтація екрана</string>
|
||||
<string name="settings_follow_system_orientation">Як у системі</string>
|
||||
<string name="duplicateCard">Дублювати</string>
|
||||
<string name="archive">Архівувати</string>
|
||||
<string name="settings_portrait_orientation">Вертикальна</string>
|
||||
<string name="settings_landscape_orientation">Горизонтальна</string>
|
||||
<string name="settings_lock_on_opening_orientation">Фіксація орієнтації під час відкриття картки</string>
|
||||
<string name="archived">Картка архівована</string>
|
||||
<string name="unarchived">Картка розархівована</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
@@ -223,7 +214,7 @@
|
||||
<item quantity="many"><xliff:g>%1$d</xliff:g> карток (<xliff:g id="archivedCount">%2$d</xliff:g> архівовано)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> карток (<xliff:g id="archivedCount">%2$d</xliff:g> архівовано)</item>
|
||||
</plurals>
|
||||
<string name="failedLaunchingPhotoPicker">Підтримуваний застосунок галереї не знайдено</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не вдалося знайти підтримуваний засіб вибору зображень</string>
|
||||
<string name="previousCard">Попередня</string>
|
||||
<string name="nextCard">Наступна</string>
|
||||
<string name="failedToOpenUrl">Спочатку встановіть браузер</string>
|
||||
@@ -247,8 +238,8 @@
|
||||
<string name="switchToFrontImage">Перемкнутися на лицьову сторону</string>
|
||||
<string name="switchToBackImage">Перемкнутися на зворотню сторону</string>
|
||||
<string name="switchToBarcode">Перемкнутися на штрих-код</string>
|
||||
<string name="openFrontImageInGalleryApp">Відкрити зображення лицьової сторони у застосунку галереї</string>
|
||||
<string name="openBackImageInGalleryApp">Відкрити зображення тильної сторони у застосунку галереї</string>
|
||||
<string name="openFrontImageInGalleryApp">Відкрити зображення спереду в програмі для перегляду зображень</string>
|
||||
<string name="openBackImageInGalleryApp">Відкрити зображення ззаду у програмі для перегляду зображень</string>
|
||||
<string name="setBarcodeHeight">Встановити висоту штрих-коду</string>
|
||||
<string name="height">Висота</string>
|
||||
<string name="donate">Пожертвувати</string>
|
||||
@@ -257,7 +248,7 @@
|
||||
<string name="show_note">Показати примітку</string>
|
||||
<string name="show_validity">Показати термін дії</string>
|
||||
<string name="show_balance">Показати баланс</string>
|
||||
<string name="permissionReadCardsLabel">Читати картки Catima</string>
|
||||
<string name="permissionReadCardsLabel">Читайте картки Catima</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Застосунки все ще муситимуть запитувати дозвіл на отримання доступу</string>
|
||||
<string name="permissionReadCardsDescription">читайте ваші картки Catima та всю інформацію на них, включно з примітками та зображеннями</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Необхідно для роботи деяких сканерів</string>
|
||||
@@ -281,8 +272,7 @@
|
||||
<string name="addWithoutBarcode">Додати картку без штрих-коду</string>
|
||||
<string name="field_must_not_be_empty">Поле вводу не повинно бути порожнім</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Завжди обертати (ігнорувати системні налаштування)</string>
|
||||
<string name="add_manually_warning_message">У деяких магазинах значення штрихкоду відрізняється від номера, записаного на картці. Через це введення штрихкоду вручну може не завжди спрацювати. Наполегливо рекомендуємо відсканувати штрихкод за допомогою камери. Ви все ще хочете продовжити?</string>
|
||||
<string name="add_manually_warning_message">Для деяких карток значення штрих-коду відрізняється від номера, вказаного на картці. Через це введення штрих-коду вручну не завжди може працювати. Рекомендується замість цього відсканувати штрих-код за допомогою камери. Ви все одно хочете продовжити?</string>
|
||||
<string name="continue_">Продовжити</string>
|
||||
<string name="add_manually_warning_title">Рекомендується відсканувати</string>
|
||||
<string name="failedLaunchingFileManager">Не вдалося знайти підтримуваний файловий менеджер</string>
|
||||
@@ -312,13 +302,19 @@
|
||||
<string name="settings_column_count_landscape">Стовпці в ландшафтному режимі</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="unsupportedFile">Цей файл не підтримується</string>
|
||||
<string name="generic_error_please_retry">Вибачте, щось пішло не так, спробуйте ще раз...</string>
|
||||
<string name="generic_error_please_retry">Сталася помилка</string>
|
||||
<string name="addFromPkpass">Виберіть файл Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="sort_by_valid_from">Діє з</string>
|
||||
<string name="sort_by_valid_from">Дійсний з</string>
|
||||
<string name="width">Ширина</string>
|
||||
<string name="setBarcodeWidth">Встановити ширину штрих-коду</string>
|
||||
<string name="card_list_widget_name">Список карток</string>
|
||||
<string name="card_list_widget_empty">Після того, як ви додасте кілька карток лояльності в Catima, вони з’являться тут. Якщо у вас є картки, переконайтеся, що вони не всі заархівовані.</string>
|
||||
<string name="cardWithNumber">Картка <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Картка <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Картка <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Будь ласка, не повертайте пристрій, оскільки це скасує дію</string>
|
||||
<string name="acra_catima_has_crashed">Вибачте, але <xliff:g id="app_name">%s</xliff:g> аварійно завершив роботу. Будь ласка, допоможіть нам вирішити цю проблему, надіславши нам звіт про помилку.</string>
|
||||
<string name="acra_explain_crash">Якщо можливо, додайте, будь ласка, більше деталей про те, що ви тут робили:</string>
|
||||
<string name="acra_crash_email_subject">Звіт про збій <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="pref_enable_acra">Запит на надсилання звітів про збої</string>
|
||||
<string name="pref_enable_acra_summary">Якщо цю функцію ввімкнено, вам буде запропоновано повідомити про збій, коли він станеться. Звіти про збої ніколи не надсилаються автоматично.</string>
|
||||
</resources>
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
<string name="help_translate_this_app">Giúp dịch ứng dụng này</string>
|
||||
<string name="sort_by_expiry">Ngày hết hạn</string>
|
||||
<string name="add_a_card_in_a_different_way">Thêm thẻ theo cách khác</string>
|
||||
<string name="settings_portrait_orientation">Dọc</string>
|
||||
<string name="takePhoto">Chụp ảnh</string>
|
||||
<string name="storeName">Tên</string>
|
||||
<string name="validFromDate">Có hiệu lực từ</string>
|
||||
@@ -34,7 +33,6 @@
|
||||
<string name="backImageDescription">Ảnh mặt sau</string>
|
||||
<string name="view_online">Xem online</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Để quét mã vạch, Catima sẽ cần truy cập vào camera của bạn. Nhấn vào đây để thay đổi cài đặt việc cấp quyền.</string>
|
||||
<string name="settings_lock_on_opening_orientation">Cố định hướng hiện thị màng hình khi đang mở thẻ</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="turn_flashlight_on">Mở đèn pin</string>
|
||||
<string name="importOptionFilesystemTitle">Nhập dữ liệu từ hệ thống</string>
|
||||
@@ -112,7 +110,6 @@
|
||||
<string name="show_note">Hiện ghi chú</string>
|
||||
<string name="report_error">Báo Lỗi</string>
|
||||
<string name="passwordRequired">Xin mời nhập mật khẩu</string>
|
||||
<string name="settings_follow_system_orientation">Hệ thống theo dõi</string>
|
||||
<string name="intent_import_card_from_url_share_text">Tôi muốn chia sẻ thẻ với bạn</string>
|
||||
<string name="star">Đánh dấu ưa thích</string>
|
||||
<string name="addFromImage">Chọn ảnh từ thư viện ảnh</string>
|
||||
@@ -148,7 +145,6 @@
|
||||
<string name="failedGeneratingShareURL">Không tạo được URL chia sẻ. Xin hãy báo cáo sự cố này.</string>
|
||||
<string name="selectColor">Chọn màu</string>
|
||||
<string name="setBarcodeHeight">Đặt chiều cao cho mã vạch</string>
|
||||
<string name="settings_landscape_orientation">Ngang</string>
|
||||
<string name="privacy_policy">Chính Sách Quyền Riêng Tư</string>
|
||||
<string name="enter_group_name">Nhập tên nhóm</string>
|
||||
<string name="addCardTitle">Thêm Thẻ</string>
|
||||
@@ -214,7 +210,6 @@
|
||||
<string name="show_archived_cards">Hiện thẻ lưu trữ</string>
|
||||
<string name="selectBarcodeTitle">Chọn Mã Vạch</string>
|
||||
<string name="importSuccessful">Nhập dữ liệu xong</string>
|
||||
<string name="settings_card_orientation">Hướng màn hình</string>
|
||||
<string name="app_libraries">Thư viện mở từ bên thứ 3: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="updateBalanceTitle">Bạn đã chi tiêu hoặc nhận được bao nhiêu?</string>
|
||||
<string name="editCardTitle">Sửa Thẻ</string>
|
||||
@@ -263,7 +258,6 @@
|
||||
<string name="failedToRetrieveImageFile">Không thể truy xuất tệp hình ảnh</string>
|
||||
<string name="app_contributors">Được thực hiện bởi: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="app_license">Phần mềm miễn phí có bản quyền theo giấy phép GPLv3+</string>
|
||||
<string name="settings_follow_sensor_orientation">Luôn xoay (bỏ qua thiết đặt hệ thống)</string>
|
||||
<string name="continue_">Tiếp tục</string>
|
||||
<string name="add_manually_warning_title">Nên quét</string>
|
||||
<string name="spend">Tiêu</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> 卡片</item>
|
||||
</plurals>
|
||||
<string name="app_libraries">第三方自由程序库:<xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">第三方程序库:<xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">版本:<xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt">关于 <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="card">卡片</string>
|
||||
@@ -18,17 +18,13 @@
|
||||
<string name="setBarcodeId">设置条形码值</string>
|
||||
<string name="sameAsCardId">与卡号相同</string>
|
||||
<string name="barcodeId">条形码值</string>
|
||||
<string name="importVoucherVaultMessage">选择 Voucher Vault 导出文件 <i>vouchervault.json</i> 进行导入。
|
||||
\n先在 Voucher Vault 中按下“导出”来创建此文件。</string>
|
||||
<string name="importVoucherVaultMessage">选择 Voucher Vault 导出文件进行导入。 \n先在 Voucher Vault 中按下“导出”来创建此文件。</string>
|
||||
<string name="importVoucherVault">从 Voucher Vault 导入</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">选择 Loyalty Card Keychain 导出文件 <i>LoyaltyCardKeychain.csv</i>来导入。
|
||||
\n先在 Loyalty Card Keychain 的 “导入/导出” 菜单中按“导出”。</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">选择 Loyalty Card Keychain 导出文件来导入。 \n先在 Loyalty Card Keychain 的 “导入/导出” 菜单中按“导出”。</string>
|
||||
<string name="importLoyaltyCardKeychain">从 Loyalty Card Keychain 导入</string>
|
||||
<string name="importFidmeMessage">选择 Fidme 导出文件 <i>fidme-export-request-xxxxxx.zip</i>进行导入,之后再手动选择条码类型。
|
||||
\n创建 Fidme 配置的导出文件,方法是选择“数据保护”,然后按“提取我的数据”。</string>
|
||||
<string name="importFidmeMessage">选择 Fidme 导出文件进行导入,之后再手动选择条码类型。 \n创建 Fidme 配置的导出文件,方法是选择“数据保护”,然后按“提取我的数据”。</string>
|
||||
<string name="importFidme">从 FidMe 导入</string>
|
||||
<string name="importCatimaMessage">选择 Catima 导出文件 <i>Catima.zip</i>来导入。
|
||||
\n先按另一个 Catima 应用程序导入/导出菜单中“导出”创建文件。</string>
|
||||
<string name="importCatimaMessage">选择 Catima 导出文件来导入。 \n先按另一个 Catima 应用的导入/导出菜单中“导出”来创建文件。</string>
|
||||
<string name="importCatima">从 Catima 导入</string>
|
||||
<string name="accept">接受</string>
|
||||
<string name="privacy_policy">隐私政策</string>
|
||||
@@ -52,10 +48,10 @@
|
||||
<string name="leaveWithoutSaveTitle">退出</string>
|
||||
<string name="moveDown">向下移</string>
|
||||
<string name="moveUp">向上移</string>
|
||||
<string name="failedOpeningFileManager">请先安装文件管理器。</string>
|
||||
<string name="failedOpeningFileManager">打开文件管理器失败了</string>
|
||||
<string name="deleteConfirmationGroup">删除群组?</string>
|
||||
<string name="all">全部</string>
|
||||
<string name="noGroups">单击 “+ ” 按钮添加分组进行分类。</string>
|
||||
<string name="noGroups">单击 “+ ” 按钮添加分组进行分类</string>
|
||||
<string name="enter_group_name">输入组名</string>
|
||||
<string name="groups">组</string>
|
||||
<string name="exportSuccessful">已导出数据</string>
|
||||
@@ -70,14 +66,14 @@
|
||||
<string name="settings">设置</string>
|
||||
<string name="thumbnailDescription">缩略图</string>
|
||||
<string name="selectBarcodeTitle">选择条码</string>
|
||||
<string name="app_resources">第三方自由资源:<xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_resources">第三方资源:<xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_license">本软件为自由软件,使用 GPLv3+ 许可证</string>
|
||||
<string name="app_copyright_old">基于 Loyalty Card Keychain
|
||||
\nCopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="about">关于</string>
|
||||
<string name="importOptionFilesystemExplanation">请从文件系统选择文件。</string>
|
||||
<string name="importOptionFilesystemExplanation">请从文件系统选择文件</string>
|
||||
<string name="importOptionFilesystemTitle">从文件系统导入</string>
|
||||
<string name="exportOptionExplanation">导出的数据将储存至你选择的位置。</string>
|
||||
<string name="exportOptionExplanation">导出的数据将储存至你选择的位置</string>
|
||||
<string name="cameraPermissionDeniedTitle">无法访问相机</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Catima 需要访问您的相机来扫描条形码,轻触这里以更改您的权限设置。</string>
|
||||
<string name="exporting">导出中……</string>
|
||||
@@ -88,7 +84,7 @@
|
||||
<string name="importFailed">无法导入卡片</string>
|
||||
<string name="importFailedTitle">导入失败</string>
|
||||
<string name="importSuccessfulTitle">导入成功</string>
|
||||
<string name="importExportHelp">备份你的数据以允许将其移动到另一个设备上。</string>
|
||||
<string name="importExportHelp">备份你的数据以允许将其移动到另一个设备上</string>
|
||||
<string name="exportName">导出</string>
|
||||
<string name="importExport">导入/导出</string>
|
||||
<string name="failedParsingImportUriError">无法解析导入 URI</string>
|
||||
@@ -113,7 +109,7 @@
|
||||
<string name="note">备注</string>
|
||||
<string name="storeName">名称</string>
|
||||
<string name="noMatchingGiftCards">没有结果。试试其他关键字。</string>
|
||||
<string name="noGiftCards">点击“+”加号按钮来添加卡片,或者从 ⋮ 菜单导入。</string>
|
||||
<string name="noGiftCards">点击“+”加号按钮来添加卡片,或者从 ⋮ 菜单导入</string>
|
||||
<string name="action_add">添加</string>
|
||||
<string name="action_search">搜索</string>
|
||||
<string name="deleteConfirmation">确定要永久删除此卡?</string>
|
||||
@@ -130,7 +126,7 @@
|
||||
</plurals>
|
||||
<string name="turn_flashlight_off">关上手电筒</string>
|
||||
<string name="turn_flashlight_on">开启手电筒</string>
|
||||
<string name="failedGeneratingShareURL">无法生成可分享的URL。请向开发者报告。</string>
|
||||
<string name="failedGeneratingShareURL">无法生成可分享的URL</string>
|
||||
<string name="passwordRequired">请输入密码</string>
|
||||
<string name="no">否</string>
|
||||
<string name="yes">是</string>
|
||||
@@ -143,7 +139,7 @@
|
||||
<string name="photos">照片</string>
|
||||
<string name="backImageDescription">背面图像</string>
|
||||
<string name="frontImageDescription">正面图像</string>
|
||||
<string name="noGiftCardsGroup">创建一些卡片并分配到这个卡组中。</string>
|
||||
<string name="noGiftCardsGroup">创建一些卡片并分配到这个卡组中</string>
|
||||
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g>型条码图像</string>
|
||||
<string name="group_edit">编辑组</string>
|
||||
<plurals name="balancePoints">
|
||||
@@ -190,14 +186,9 @@
|
||||
<string name="settings_violet_theme">紫色</string>
|
||||
<string name="app_contributors">因他们而存在: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="and_data_usage">和数据使用方法</string>
|
||||
<string name="failedLaunchingPhotoPicker">找不到支持的图库应用</string>
|
||||
<string name="failedLaunchingPhotoPicker">找不到支持的图片选择应用</string>
|
||||
<string name="previousCard">前一张</string>
|
||||
<string name="nextCard">下一张</string>
|
||||
<string name="settings_card_orientation">屏幕</string>
|
||||
<string name="settings_landscape_orientation">横向</string>
|
||||
<string name="settings_follow_system_orientation">跟随系统</string>
|
||||
<string name="settings_lock_on_opening_orientation">使用上次打开卡片时的朝向</string>
|
||||
<string name="settings_portrait_orientation">竖向</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> 张卡 (<xliff:g id="archivedCount">%2$d</xliff:g> 张已归档)</item>
|
||||
</plurals>
|
||||
@@ -229,8 +220,8 @@
|
||||
<string name="switchToFrontImage">选择正面图像</string>
|
||||
<string name="switchToBackImage">选择背面图像</string>
|
||||
<string name="switchToBarcode">选择条形码</string>
|
||||
<string name="openFrontImageInGalleryApp">使用图库软件打开正面图像</string>
|
||||
<string name="openBackImageInGalleryApp">使用图库软件打开背面图像</string>
|
||||
<string name="openFrontImageInGalleryApp">使用图片查看软件打开正面图像</string>
|
||||
<string name="openBackImageInGalleryApp">使用图片查看软件打开背面图像</string>
|
||||
<string name="setBarcodeHeight">设置条形码高度</string>
|
||||
<string name="donate">捐赠</string>
|
||||
<string name="icon_header_click_text">长按可编辑缩略图</string>
|
||||
@@ -263,10 +254,9 @@
|
||||
<string name="addWithoutBarcode">不使用条形码添加卡片</string>
|
||||
<string name="field_must_not_be_empty">字段不能为空</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">始终旋转(忽略系统设置)</string>
|
||||
<string name="add_manually_warning_title">建议扫描</string>
|
||||
<string name="continue_">继续</string>
|
||||
<string name="add_manually_warning_message">某些商店卡片的二维码值和刻在卡上的数字并不一样。由于这个原因,手动输入二维码可能并不总是有用。这种情况下,强烈建议你用相机扫描二维码。你仍要继续吗?</string>
|
||||
<string name="add_manually_warning_message">某些卡片的二维码值和刻在卡上的数字并不一样。由于这个原因,手动输入二维码可能并不总是有用。这种情况下,建议你用相机扫描二维码。你仍要继续吗?</string>
|
||||
<string name="receive">接收</string>
|
||||
<string name="amountParsingFailed">无效金额</string>
|
||||
<string name="spend">支出</string>
|
||||
@@ -295,12 +285,18 @@
|
||||
<string name="settings_column_count_landscape">横屏模式下的列数</string>
|
||||
<string name="addFromPkpass">选择 Passbook 文件(.pkpass/.pkpasses)</string>
|
||||
<string name="unsupportedFile">此文件不受支持</string>
|
||||
<string name="generic_error_please_retry">抱歉,某个东西出错了,请再试…</string>
|
||||
<string name="generic_error_please_retry">出错了</string>
|
||||
<string name="sort_by_valid_from">有效期开始日</string>
|
||||
<string name="width">宽度</string>
|
||||
<string name="setBarcodeWidth">设置条码宽度</string>
|
||||
<string name="card_list_widget_name">卡片列表</string>
|
||||
<string name="card_list_widget_empty">在 Catima 中添加了一些会员卡后,它们会出现在这里。如果你有卡片,确保不是所有都已归档。</string>
|
||||
<string name="cardWithNumber">卡<xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">卡 <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">卡 <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">请不要旋转设备,这样做会取消操作</string>
|
||||
<string name="acra_catima_has_crashed">抱歉,但 <xliff:g id="app_name">%s</xliff:g>崩溃了。请发送错误报告帮助修复这个问题。</string>
|
||||
<string name="acra_explain_crash">如有可能,请添加崩溃发生时你在进行什么操作的更多细节:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> 崩溃报告</string>
|
||||
<string name="pref_enable_acra">请求发送崩溃报告</string>
|
||||
<string name="pref_enable_acra_summary">开启后,会在发生崩溃时请求报告崩溃。应用永远不会自动发送崩溃报告。</string>
|
||||
</resources>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="action_search">搜尋</string>
|
||||
<string name="action_add">新增</string>
|
||||
<string name="noGiftCards">點選 + 按鈕以新增卡片,或從 ⋮ 選單中匯入。</string>
|
||||
<string name="noGiftCards">點選 + 按鈕以新增卡片,或從 ⋮ 選單中匯入</string>
|
||||
<string name="noMatchingGiftCards">找不到相關結果。試試其他關鍵字。</string>
|
||||
<string name="storeName">名稱</string>
|
||||
<string name="note">註記</string>
|
||||
@@ -40,7 +40,7 @@
|
||||
<string name="deleteConfirmationGroup">刪除此群組?</string>
|
||||
<string name="deleteTitle">刪除卡片</string>
|
||||
<string name="editBarcode">編輯條碼</string>
|
||||
<string name="editCardTitle">編輯圖片</string>
|
||||
<string name="editCardTitle">編輯卡片</string>
|
||||
<string name="enter_group_name">輸入群組名稱</string>
|
||||
<string name="errorReadingImage">無法讀取此圖片</string>
|
||||
<string name="expiryDate">逾期日期</string>
|
||||
@@ -50,12 +50,12 @@
|
||||
<string name="exportFailedTitle">匯出失敗</string>
|
||||
<string name="exporting">匯出中…</string>
|
||||
<string name="exportName">匯出</string>
|
||||
<string name="exportOptionExplanation">資料將寫至您所選的位置。</string>
|
||||
<string name="exportOptionExplanation">資料將寫至您所選的位置</string>
|
||||
<string name="exportPassword">透過密碼保護您的匯出檔(選用)</string>
|
||||
<string name="exportPasswordHint">輸入密碼</string>
|
||||
<string name="exportSuccessful">已匯出資料</string>
|
||||
<string name="exportSuccessfulTitle">已匯出</string>
|
||||
<string name="failedOpeningFileManager">請先安裝檔案管理員。</string>
|
||||
<string name="failedOpeningFileManager">無法開啟檔案管理員</string>
|
||||
<string name="failedParsingImportUriError">無法讀取匯入 URI</string>
|
||||
<string name="frontImageDescription">正面圖片</string>
|
||||
<string name="groups">群組</string>
|
||||
@@ -143,36 +143,33 @@
|
||||
<string name="ok">OK</string>
|
||||
<string name="sendLabel">送出…</string>
|
||||
<string name="scanCardBarcode">掃描條碼</string>
|
||||
<string name="importExportHelp">備份您的資料以將其轉移至其他裝置中。</string>
|
||||
<string name="importExportHelp">備份您的資料以將其轉移至其他裝置中</string>
|
||||
<string name="importOptionFilesystemTitle">自檔案系統中匯入</string>
|
||||
<string name="importOptionFilesystemExplanation">自檔案系統中選取檔案。</string>
|
||||
<string name="importOptionFilesystemExplanation">自檔案系統中選取檔案</string>
|
||||
<string name="importOptionFilesystemButton">自檔案系統</string>
|
||||
<string name="app_copyright_fmt">著作權所有 © 2019–<xliff:g>%d</xliff:g> Sylvia van Os 與其他貢獻者</string>
|
||||
<string name="importVoucherVault">自 Voucher Vault 中匯入</string>
|
||||
<string name="importVoucherVaultMessage">選取您自 Voucher Vault 匯出的 <i>vouchervault.json</i> 檔案以進行匯入。
|
||||
\n請您先透過 Voucher Vault 進行匯出。</string>
|
||||
<string name="importVoucherVaultMessage">請選取您從 Voucher Vault 匯出的檔案以進行匯入。\n您可以在 Voucher Vault 中按下「匯出」來建立此檔案。</string>
|
||||
<string name="importLoyaltyCardKeychain">自 Loyalty Card Keychain 中匯入</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">選取您自 Loyalty Card Keychain <i>LoyaltyCardKeychain.csv</i> 檔案以進行匯入。
|
||||
\n請您先透過 Loyalty Card Keychain 的匯入/匯出選單進行匯出。</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">請選取您從 Loyalty Card Keychain 匯出的檔案以進行匯入。\n您可以在 Loyalty Card Keychain 的「匯入/匯出」選單中按下「匯出」來建立此檔案。</string>
|
||||
<string name="importFidme">自 FidMe 匯入</string>
|
||||
<string name="importFidmeMessage">選取您自 FidMe 匯出的<i>fidme-export-request-xxxxxx.zip</i> 檔案以進行匯入,並手動選擇條碼種類。
|
||||
\n請您先透過您的 FidMe 個人檔案選取『Data Protection』,並選擇『Extract my data』。</string>
|
||||
<string name="importFidmeMessage">請選取您從 FidMe 匯出的檔案以進行匯入,並在之後手動選擇條碼類型。\n您可以在 FidMe 的個人檔案中選擇「Data Protection」,然後按下「Extract my data」來建立此檔案。</string>
|
||||
<string name="importCatima">自卡提碼匯入</string>
|
||||
<string name="importCatimaMessage">選取您自卡提碼匯出的 <i>catima.zip</i> 檔案以進行匯入。 \n您可透過其他裝置的卡提碼程式中的匯入/匯出選單進行匯出。</string>
|
||||
<string name="importCatimaMessage">請選取您從 Catima 匯出檔案以進行匯入。\n您可以在另一台裝置的 Catima 應用程式中,透過「匯入/匯出」選單按下「匯出」來建立此檔案。</string>
|
||||
<string name="points">點</string>
|
||||
<string name="app_libraries">第三方自由函式庫:<xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">第三方自由資源:<xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_libraries">第三方程式庫:<xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">第三方資源:<xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">選擇條碼</string>
|
||||
<string name="noGroups">請點選 + 加號按鈕新增群組。</string>
|
||||
<string name="noGroups">請點選 + 加號按鈕新增群組</string>
|
||||
<string name="moveBarcodeToTopOfScreen">將條碼移至螢幕上方</string>
|
||||
<string name="app_loyalty_card_keychain">萬用卡片錢包</string>
|
||||
<string name="unsupportedBarcodeType">尚支援此條碼種類,但未來版本的應用程式可能會支援此條碼種類。</string>
|
||||
<string name="wrongValueForBarcodeType">條碼內容不適用於此條碼種類</string>
|
||||
<string name="backImageDescription">背面圖片</string>
|
||||
<string name="updateBarcodeQuestionText">您已更新了 ID,是否要更新條碼內容以匹配此 ID?</string>
|
||||
<string name="failedGeneratingShareURL">無法建立可分享的 URL,請回報此錯誤。</string>
|
||||
<string name="failedGeneratingShareURL">無法建立可分享的 URL</string>
|
||||
<string name="starImage">收藏標示</string>
|
||||
<string name="noGiftCardsGroup">建立一些卡片,然後將它們分配到這個群組中。</string>
|
||||
<string name="noGiftCardsGroup">建立一些卡片,然後將它們分配到這個群組中</string>
|
||||
<string name="showMoreInfo">顯示資訊</string>
|
||||
<string name="shortcutSelectCard">選擇卡片</string>
|
||||
<string name="starred">已收藏</string>
|
||||
@@ -190,7 +187,6 @@
|
||||
<string name="translate_platform">於 Weblate</string>
|
||||
<string name="options">選項</string>
|
||||
<string name="include_if_asking_support">如果您想請求協助,請附上以下訊息:</string>
|
||||
<string name="settings_card_orientation">螢幕方向</string>
|
||||
<string name="failedToRetrieveImageFile">無法擷取圖片檔案</string>
|
||||
<string name="barcodeLongPressMessage">圖庫應用程式僅可開啟圖片</string>
|
||||
<string name="duplicateCard">重複</string>
|
||||
@@ -201,15 +197,11 @@
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> 張卡片 (<xliff:g id="archivedCount">%2$d</xliff:g> 張已封存)</item>
|
||||
</plurals>
|
||||
<string name="settings_portrait_orientation">直向</string>
|
||||
<string name="settings_follow_system_orientation">跟隨系統</string>
|
||||
<string name="settings_landscape_orientation">橫向</string>
|
||||
<string name="failedToOpenUrl">先安裝網頁瀏覽器</string>
|
||||
<string name="failedLaunchingPhotoPicker">無法找到支援的圖庫應用程式</string>
|
||||
<string name="failedLaunchingPhotoPicker">無法找到支援的圖片選取器</string>
|
||||
<string name="previousCard">上一張</string>
|
||||
<string name="nextCard">下一張</string>
|
||||
<string name="welcome">歡迎使用卡提碼</string>
|
||||
<string name="settings_lock_on_opening_orientation">開啟卡片時鎖定的方向</string>
|
||||
<string name="importCards">導入卡片</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">卡提碼需要鏡頭使用權才能夠掃描條碼, 點擊這裏更變你的權限設定。</string>
|
||||
<string name="validFromDate">生效</string>
|
||||
@@ -225,7 +217,7 @@
|
||||
<string name="currentBalanceSentence">餘額:<xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">新的餘額:<xliff:g>%s</xliff:g></string>
|
||||
<string name="switchToBarcode">選擇條碼</string>
|
||||
<string name="openFrontImageInGalleryApp">以圖庫軟件開啟正面圖片</string>
|
||||
<string name="openFrontImageInGalleryApp">在圖片檢視應用程式中開啟正面圖片</string>
|
||||
<string name="show_note">顯示備註</string>
|
||||
<string name="show_balance">顯示餘額</string>
|
||||
<string name="show_validity">顯示有效性</string>
|
||||
@@ -234,7 +226,7 @@
|
||||
<string name="height">高</string>
|
||||
<string name="donate">捐款</string>
|
||||
<string name="icon_header_click_text">長按以編輯縮圖</string>
|
||||
<string name="openBackImageInGalleryApp">以圖庫軟體開啟背面圖片</string>
|
||||
<string name="openBackImageInGalleryApp">在圖片檢視應用程式中開啟背面圖片</string>
|
||||
<string name="show_name_below_image_thumbnail">在縮圖下方顯示名稱</string>
|
||||
<string name="setBarcodeHeight">設定條碼高度</string>
|
||||
<string name="app_copyright_short">著作權所有© Sylvia van Os與其他貢獻者</string>
|
||||
@@ -261,7 +253,6 @@
|
||||
<string name="enter_card_id">輸入卡片上的 ID 或文字</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">一些條碼掃描器需要此設定方能運作</string>
|
||||
<string name="field_must_not_be_empty">欄位不能為空</string>
|
||||
<string name="settings_follow_sensor_orientation">始終旋轉(忽略系統設定)</string>
|
||||
<string name="add_manually_warning_title">建議掃描</string>
|
||||
<string name="failedLaunchingFileManager">找不到支援的檔案管理器</string>
|
||||
<string name="addFromPdfFile">選擇一個 PDF 檔案</string>
|
||||
@@ -271,7 +262,7 @@
|
||||
<string name="continue_">繼續</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">你想要使用哪個找到的條碼?</string>
|
||||
<string name="pageWithNumber">第 <xliff:g>%d</xliff:g> 頁</string>
|
||||
<string name="add_manually_warning_message">對於某些商店,條碼值與卡片上寫的數字並不相同。因此,手動輸入條碼可能並不總是有效。強烈建議使用相機掃描條碼。你還想繼續嗎?</string>
|
||||
<string name="add_manually_warning_message">有些卡片上的條碼數值與卡面上印的號碼可能不同,因此手動輸入條碼可能無法正常運作。建議您改用相機掃描條碼。您仍要繼續嗎?</string>
|
||||
<string name="spend">花費</string>
|
||||
<string name="noCameraFoundGuideText">您的裝置似乎沒有相機鏡頭。如果實際上有相機鏡頭,請嘗試重新啟動此裝置,否則請點選下方的「更多」按鈕,以其它方式新增條碼。</string>
|
||||
<string name="exportCancelled">已取消匯出</string>
|
||||
@@ -291,12 +282,20 @@
|
||||
<string name="settings_category_title_cards_overview">卡片概覽</string>
|
||||
<string name="settings_column_count_portrait">縱向模式下的列數</string>
|
||||
<string name="settings_column_count_landscape">横向模式下的列數</string>
|
||||
<string name="addFromPkpass">選擇 Passbook 檔案 (.pkpass)</string>
|
||||
<string name="addFromPkpass">選擇 Passbook 檔案 (.pkpass / .pkpasses)</string>
|
||||
<string name="unsupportedFile">不支援此檔案</string>
|
||||
<string name="generic_error_please_retry">抱歉,似乎出了點錯誤,請您再試一次...</string>
|
||||
<string name="generic_error_please_retry">發生錯誤</string>
|
||||
<string name="sort_by_valid_from">有效期限開始日</string>
|
||||
<string name="card_list_widget_empty">加入卡提碼的卡片會在這顯示。若您已加入卡片,請確認卡片是否被歸檔。</string>
|
||||
<string name="width">寬</string>
|
||||
<string name="card_list_widget_name">卡片清單</string>
|
||||
<string name="setBarcodeWidth">設定條碼寬度</string>
|
||||
<string name="cardWithNumber">卡片 <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">卡片 <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">請勿旋轉裝置,否則此操作將被取消</string>
|
||||
<string name="acra_catima_has_crashed">很抱歉,<xliff:g id="app_name">%s</xliff:g> 已發生當機。請協助我們修正此問題,並傳送錯誤報告給我們。</string>
|
||||
<string name="acra_explain_crash">如果可以的話,請在此提供您當時的操作詳細資訊:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> 當機報告</string>
|
||||
<string name="pref_enable_acra">詢問是否傳送當機報告</string>
|
||||
<string name="pref_enable_acra_summary">啟用後,當發生當機時系統會詢問您是否要回報。當機報告絕不會自動傳送。</string>
|
||||
</resources>
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
-->
|
||||
<string-array name="locale_values">
|
||||
<item />
|
||||
<!-- <item>af</item> -->
|
||||
<item>ar</item>
|
||||
<!-- <item>ast</item> -->
|
||||
<item>be</item>
|
||||
@@ -121,6 +122,7 @@
|
||||
<item>fi</item>
|
||||
<!-- <item>fil</item> -->
|
||||
<item>fr</item>
|
||||
<!-- <item>fy</item> -->
|
||||
<item>gl</item>
|
||||
<item>he-rIL</item>
|
||||
<item>hi</item>
|
||||
@@ -161,22 +163,6 @@
|
||||
<item>zh-rTW</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="card_orientation_values">
|
||||
<item>@string/settings_key_follow_system_orientation</item>
|
||||
<item>@string/settings_key_follow_sensor_orientation</item>
|
||||
<item>@string/settings_key_lock_on_opening_orientation</item>
|
||||
<item>@string/settings_key_portrait_orientation</item>
|
||||
<item>@string/settings_key_landscape_orientation</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="card_orientation_values_strings">
|
||||
<item>@string/settings_follow_system_orientation</item>
|
||||
<item>@string/settings_follow_sensor_orientation</item>
|
||||
<item>@string/settings_lock_on_opening_orientation</item>
|
||||
<item>@string/settings_portrait_orientation</item>
|
||||
<item>@string/settings_landscape_orientation</item>
|
||||
</string-array>
|
||||
|
||||
<array name="letter_tile_colors">
|
||||
<item>#f16364</item>
|
||||
<item>#f58559</item>
|
||||
|
||||
@@ -92,18 +92,6 @@
|
||||
<string name="settings_key_light_theme" translatable="false">light</string>
|
||||
<string name="settings_dark_theme">Dark</string>
|
||||
<string name="settings_key_dark_theme" translatable="false">dark</string>
|
||||
<string name="settings_card_orientation">Screen orientation</string>
|
||||
<string name="settings_key_card_orientation" translatable="false">pref_card_orientation</string>
|
||||
<string name="settings_follow_system_orientation">Follow system</string>
|
||||
<string name="settings_key_follow_system_orientation" translatable="false">follow_system</string>
|
||||
<string name="settings_follow_sensor_orientation">Always rotate (ignores system settings)</string>
|
||||
<string name="settings_key_follow_sensor_orientation" translatable="false">follow_sensor</string>
|
||||
<string name="settings_portrait_orientation">Portrait</string>
|
||||
<string name="settings_key_portrait_orientation" translatable="false">portrait</string>
|
||||
<string name="settings_landscape_orientation">Landscape</string>
|
||||
<string name="settings_key_landscape_orientation" translatable="false">landscape</string>
|
||||
<string name="settings_lock_on_opening_orientation">Lock to orientation used when opening the card</string>
|
||||
<string name="settings_key_lock_on_opening_orientation" translatable="false">lock_on_opening</string>
|
||||
<string name="settings_key_max_font_size_scale" translatable="false">pref_max_font_size_scale</string>
|
||||
<string name="settings_display_barcode_max_brightness">Brighten screen</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Necessary for some scanners to work</string>
|
||||
@@ -363,5 +351,11 @@
|
||||
<string name="setBarcodeWidth">Set barcode width</string>
|
||||
<string name="card_list_widget_empty">After you add some loyalty cards in Catima, they will appear here. If you have cards, make sure they are not all archived.</string>
|
||||
<string name="cardWithNumber">Card <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Card <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumberAndLocale">Card <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
|
||||
<string name="pleaseDoNotRotateTheDevice">Please do not rotate the device, as this will cancel the action</string>
|
||||
<string name="acra_catima_has_crashed">We\'re sorry, but <xliff:g id="app_name">%s</xliff:g> has crashed. Please help us fix this issue by sending us an error report.</string>
|
||||
<string name="acra_explain_crash">If possible, please add more details on what you were doing here:</string>
|
||||
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> crash report</string>
|
||||
<string name="pref_enable_acra">Ask to send crash reports</string>
|
||||
<string name="pref_enable_acra_summary">When enabled, you will be asked to report a crash when it happens. Crash reports are never sent automatically.</string>
|
||||
</resources>
|
||||
|
||||
@@ -44,6 +44,15 @@
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:widgetLayout="@layout/preference_material_switch"
|
||||
android:defaultValue="true"
|
||||
android:key="acra.enable"
|
||||
android:title="@string/pref_enable_acra"
|
||||
android:summary="@string/pref_enable_acra_summary"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false"/>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
@@ -93,16 +102,6 @@
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="@string/settings_key_follow_system_orientation"
|
||||
android:entries="@array/card_orientation_values_strings"
|
||||
android:entryValues="@array/card_orientation_values"
|
||||
android:key="@string/settings_key_card_orientation"
|
||||
android:title="@string/settings_card_orientation"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:widgetLayout="@layout/preference_material_switch"
|
||||
android:defaultValue="true"
|
||||
@@ -134,7 +133,6 @@
|
||||
android:title="@string/settings_allow_content_provider_read_title"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.view.View;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class ImportExportActivityTest {
|
||||
private void registerIntentHandler(String handler) {
|
||||
// Add something that will 'handle' the given intent type
|
||||
PackageManager packageManager = RuntimeEnvironment.application.getPackageManager();
|
||||
|
||||
ResolveInfo info = new ResolveInfo();
|
||||
info.isDefault = true;
|
||||
|
||||
ApplicationInfo applicationInfo = new ApplicationInfo();
|
||||
applicationInfo.packageName = "does.not.matter";
|
||||
info.activityInfo = new ActivityInfo();
|
||||
info.activityInfo.applicationInfo = applicationInfo;
|
||||
info.activityInfo.name = "DoesNotMatter";
|
||||
info.activityInfo.exported = true;
|
||||
|
||||
Intent intent = new Intent(handler);
|
||||
|
||||
if (handler.equals(Intent.ACTION_GET_CONTENT)) {
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.setType("*/*");
|
||||
}
|
||||
|
||||
shadowOf(packageManager).addResolveInfoForIntent(intent, info);
|
||||
}
|
||||
|
||||
private void checkVisibility(Activity activity, int state, int divider, int title, int message, int button) {
|
||||
View dividerView = activity.findViewById(divider);
|
||||
View titleView = activity.findViewById(title);
|
||||
View messageView = activity.findViewById(message);
|
||||
View buttonView = activity.findViewById(button);
|
||||
|
||||
assertEquals(state, dividerView.getVisibility());
|
||||
assertEquals(state, titleView.getVisibility());
|
||||
assertEquals(state, messageView.getVisibility());
|
||||
assertEquals(state, buttonView.getVisibility());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllOptionsAvailable() {
|
||||
registerIntentHandler(Intent.ACTION_PICK);
|
||||
registerIntentHandler(Intent.ACTION_GET_CONTENT);
|
||||
|
||||
Activity activity = Robolectric.setupActivity(ImportExportActivity.class);
|
||||
|
||||
checkVisibility(activity, View.VISIBLE, R.id.dividerImportFilesystem,
|
||||
R.id.importOptionFilesystemTitle, R.id.importOptionFilesystemExplanation,
|
||||
R.id.importOptionFilesystemButton);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user