Compare commits

...

87 Commits

Author SHA1 Message Date
Sylvia van Os
36e7ea5b20 Release Catima 2.21.2 2023-01-27 18:36:24 +01:00
Sylvia van Os
85d53ae3c7 Merge pull request #1194 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-27 18:07:26 +01:00
Sylvia van Os
e9b6b5682e Translated using Weblate (Dutch)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2023-01-27 18:01:46 +01:00
SC
0abc583d10 Translated using Weblate (Portuguese)
Currently translated at 100.0% (115 of 115 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2023-01-27 17:56:35 +01:00
SC
8c91d30b4c Translated using Weblate (Portuguese)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt/
2023-01-27 17:56:31 +01:00
Oğuz Ersen
76e8715ab2 Translated using Weblate (Turkish)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2023-01-27 17:56:31 +01:00
Quentin PAGÈS
f5f2edca75 Translated using Weblate (Occitan)
Currently translated at 0.8% (1 of 115 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/oc/
2023-01-27 17:56:31 +01:00
109247019824
e648e22ecc Translated using Weblate (Bulgarian)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2023-01-27 17:56:31 +01:00
HudobniVolk
02b020e9e5 Translated using Weblate (Slovenian)
Currently translated at 21.7% (25 of 115 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sl/
2023-01-27 17:56:31 +01:00
Slávek Banko
e7dc3cd511 Translated using Weblate (Czech)
Currently translated at 100.0% (115 of 115 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2023-01-27 17:56:30 +01:00
Michael Moroni
eb3ac53e46 Translated using Weblate (Italian)
Currently translated at 56.5% (65 of 115 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2023-01-27 17:56:26 +01:00
Dan
dd683b4a8c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-01-27 17:56:24 +01:00
solokot
e90ba5d2db Translated using Weblate (Russian)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2023-01-27 17:56:24 +01:00
Heimen Stoffels
07cff7eac4 Translated using Weblate (Dutch)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2023-01-27 17:56:24 +01:00
Michael Moroni
3eea18fc82 Translated using Weblate (Italian)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2023-01-27 17:56:23 +01:00
gallegonovato
5d3ceb6d49 Translated using Weblate (Spanish)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2023-01-27 17:56:23 +01:00
Slávek Banko
3dc7a25d88 Translated using Weblate (Czech)
Currently translated at 100.0% (275 of 275 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2023-01-27 17:56:23 +01:00
Sylvia van Os
95e02d1646 Merge pull request #1191 from CatimaLoyalty/dependabot/gradle/net.lingala.zip4j-zip4j-2.11.3
Bump zip4j from 2.11.2 to 2.11.3
2023-01-26 19:15:58 +01:00
Sylvia van Os
81ecf8ba92 Merge pull request #1193 from CatimaLoyalty/security/gradle_wrapper_verification
Add Gradle wrapper verification
2023-01-26 19:10:13 +01:00
Sylvia van Os
bf0e1a2e77 Add Gradle wrapper verification 2023-01-26 19:02:04 +01:00
Sylvia van Os
4d1c9244fd Merge pull request #1192 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-26 18:48:57 +01:00
HudobniVolk
1f1e523100 Translated using Weblate (Slovenian)
Currently translated at 20.1% (23 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sl/
2023-01-26 17:55:06 +01:00
HudobniVolk
cb32cf9e52 Translated using Weblate (Slovenian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2023-01-26 17:55:06 +01:00
dependabot[bot]
af812d8cda Bump zip4j from 2.11.2 to 2.11.3
Bumps [zip4j](https://github.com/srikanth-lingala/zip4j) from 2.11.2 to 2.11.3.
- [Release notes](https://github.com/srikanth-lingala/zip4j/releases)
- [Commits](https://github.com/srikanth-lingala/zip4j/compare/v2.11.2...v2.11.3)

---
updated-dependencies:
- dependency-name: net.lingala.zip4j:zip4j
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-26 02:03:45 +00:00
Sylvia van Os
c8a7addc52 Merge pull request #1190 from CatimaLoyalty/create-pull-request/patch-1674683901
Update Fastlane changelogs
2023-01-25 22:58:43 +01:00
TheLastProject
3e64d7c5ad Update Fastlane changelogs 2023-01-25 21:58:21 +00:00
Sylvia van Os
277462a939 Update CHANGELOG 2023-01-25 22:58:03 +01:00
Sylvia van Os
24623d5c58 Merge pull request #1189 from CatimaLoyalty/sdk/33
Update targetSdk to 33
2023-01-25 22:57:34 +01:00
Sylvia van Os
4b25b7ad39 Update targetSdk to 33 2023-01-25 19:59:08 +01:00
Sylvia van Os
4016d5499b Merge pull request #1188 from CatimaLoyalty/sdk/32
Update targetSdk to 32
2023-01-25 19:40:53 +01:00
Sylvia van Os
d8b96a8c5f Update targetSdk to 32 2023-01-25 19:36:09 +01:00
Sylvia van Os
614753303f Fix crash when permissionRequestResult gets cancelled 2023-01-25 18:30:47 +01:00
Sylvia van Os
50a344b97f Merge branch 'main' of github.com:TheLastProject/loyalty-card-locker 2023-01-25 18:23:54 +01:00
Sylvia van Os
2cd6da6ffc Fix crash on invalid import URI 2023-01-25 18:13:58 +01:00
Sylvia van Os
c03fba133f Merge pull request #1187 from CatimaLoyalty/create-pull-request/patch-1674662809
Update Fastlane changelogs
2023-01-25 17:32:55 +01:00
TheLastProject
f3cba588f6 Update Fastlane changelogs 2023-01-25 16:06:48 +00:00
Sylvia van Os
ad364ad0ac Merge branch 'main' of github.com:TheLastProject/loyalty-card-locker 2023-01-25 17:06:19 +01:00
Sylvia van Os
f4cff85d93 Document permission change 2023-01-25 17:06:08 +01:00
Sylvia van Os
cbc86ff131 Merge pull request #1185 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-24 23:31:38 +01:00
Sylvia van Os
5f733474a9 Merge pull request #1186 from CatimaLoyalty/fix/permissionRefactor
Refactor permission code
2023-01-24 23:28:38 +01:00
Sylvia van Os
89a13cecf5 Create extra result function to work around onPermissionResult not existing on Android 5 2023-01-24 23:14:57 +01:00
Sylvia van Os
fd2400eaf5 Refactor permission code
- Remove write permission (was never needed)
- Only use read permission for Android 5 and 6
- Simplify logic by mocking a valid permission result if permission
  already granted
2023-01-24 20:44:17 +01:00
Sylvia van Os
9598f2f4ff Translated using Weblate (Slovenian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2023-01-24 07:53:22 +01:00
IllusiveMan196
acca53787c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2023-01-23 02:12:44 +01:00
HudobniVolk
060e360344 Translated using Weblate (Slovenian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2023-01-23 02:12:44 +01:00
Sylvia van Os
9ef014e05c Fix main rename breaking github scripts 2023-01-22 13:12:25 +01:00
Sylvia van Os
4cb27d3bd5 Merge pull request #1182 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-20 17:00:24 +01:00
stone wow
95e21cc112 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2023-01-20 16:09:32 +01:00
Sylvia van Os
d5f915a290 Merge pull request #1181 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-18 22:03:04 +01:00
HudobniVolk
42e89bb5cc Translated using Weblate (Slovenian)
Currently translated at 19.2% (22 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sl/
2023-01-18 21:51:11 +01:00
Sylvia van Os
048fb48300 Fix reproducible build script 2023-01-16 20:32:42 +01:00
Sylvia van Os
b1c82dbae0 Merge pull request #1159 from CatimaLoyalty/feature/rb
Add script to build reproducibly
2023-01-16 19:48:56 +01:00
Sylvia van Os
ea8c6f96f7 Merge pull request #1180 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-16 19:05:26 +01:00
HudobniVolk
201ec78694 Translated using Weblate (Slovenian)
Currently translated at 7.0% (8 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sl/
2023-01-16 18:53:07 +01:00
Dan
05a03455c1 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-01-16 18:53:07 +01:00
HudobniVolk
63f4cbb8ca Translated using Weblate (Slovenian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2023-01-16 18:53:07 +01:00
Sylvia van Os
a444607476 Merge pull request #1178 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-14 23:58:58 +01:00
Giovanni Donisi
89102ad0bf Translated using Weblate (Italian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2023-01-14 23:12:40 +01:00
Sylvia van Os
d2623b8690 Merge pull request #1177 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-13 23:08:03 +01:00
Jiri Grönroos
80ddd48184 Translated using Weblate (Finnish)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2023-01-13 18:50:22 +01:00
Sylvia van Os
410a619a70 Merge pull request #1175 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-08 12:04:45 +01:00
Jiri Grönroos
1771f42860 Translated using Weblate (Finnish)
Currently translated at 95.9% (263 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2023-01-08 11:51:01 +01:00
Sylvia van Os
1e7af7ab4e Merge pull request #1174 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-01-06 13:59:27 +01:00
Piotr Strebski
f4c5af04e3 Translated using Weblate (Polish)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2023-01-06 13:51:24 +01:00
Sylvia van Os
5bcd2cdc32 Merge pull request #1171 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.9.2
Bump robolectric from 4.9.1 to 4.9.2
2022-12-28 06:48:50 +00:00
dependabot[bot]
c69a5ae4d2 Bump robolectric from 4.9.1 to 4.9.2
Bumps [robolectric](https://github.com/robolectric/robolectric) from 4.9.1 to 4.9.2.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.9.1...robolectric-4.9.2)

---
updated-dependencies:
- dependency-name: org.robolectric:robolectric
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-28 02:04:26 +00:00
Sylvia van Os
6bd750a60b Add script to build reproducibly 2022-12-22 22:57:55 +01:00
Sylvia van Os
8d77cc3565 Merge pull request #1169 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.9.1
Bump robolectric from 4.9 to 4.9.1
2022-12-21 12:25:35 +00:00
Sylvia van Os
7a99e0056d Merge pull request #1170 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-20 22:14:48 +00:00
Shailendra Maurya
03e07bc48d Translated using Weblate (Hindi)
Currently translated at 61.6% (169 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2022-12-20 22:43:29 +01:00
dependabot[bot]
460d6c2b71 Bump robolectric from 4.9 to 4.9.1
Bumps [robolectric](https://github.com/robolectric/robolectric) from 4.9 to 4.9.1.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.9...robolectric-4.9.1)

---
updated-dependencies:
- dependency-name: org.robolectric:robolectric
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-20 02:04:38 +00:00
Sylvia van Os
9f946094db Merge pull request #1168 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-18 21:06:09 +00:00
wmilan 17
4e92f82176 Translated using Weblate (Hungarian)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2022-12-18 21:48:04 +01:00
Sylvia van Os
7b905ac120 Translated using Weblate (English)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/en/
2022-12-17 11:46:57 +01:00
Tomasz Cukier
55c5ec929c Translated using Weblate (English)
Currently translated at 100.0% (274 of 274 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/en/
2022-12-17 11:46:57 +01:00
Sylvia van Os
5441231f03 Merge pull request #1165 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-14 22:55:09 +01:00
ssantos
1818d24bc0 Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2022-12-14 22:50:15 +01:00
Sylvia van Os
ca88c070c3 Merge pull request #1163 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-13 23:19:14 +01:00
gallegonovato
1be387c4ec Translated using Weblate (Spanish)
Currently translated at 11.4% (13 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2022-12-13 20:50:09 +01:00
Sylvia van Os
fa3a956d69 Merge pull request #1162 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-12 17:07:13 +01:00
gallegonovato
8fd244e3a3 Translated using Weblate (Spanish)
Currently translated at 8.7% (10 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2022-12-12 15:51:47 +01:00
Sylvia van Os
a0e2fe11dd Merge pull request #1160 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-11 15:50:06 +01:00
gallegonovato
893f34e72a Translated using Weblate (Spanish)
Currently translated at 7.0% (8 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2022-12-11 14:49:57 +01:00
Sylvia van Os
cf13a9fc60 Merge pull request #1158 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2022-12-09 22:00:23 +01:00
IllusiveMan196
c6e6d96313 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2022-12-09 21:50:03 +01:00
Sylvia van Os
20ed9cac88 Update Google Play badge
See https://github.com/cvzi/play
2022-12-06 19:34:51 +01:00
Sylvia van Os
ae6bd937a9 Move to main 2022-12-06 19:33:04 +01:00
92 changed files with 681 additions and 249 deletions

View File

@@ -3,12 +3,12 @@ name: Android CI
on:
push:
branches:
- master
- main
- staging
- trying
pull_request:
branches:
- master
- main
jobs:
build:

View File

@@ -1,8 +1,8 @@
name: Compress Images on Push to Master
name: Compress Images on Push to Main
on:
push:
branches:
- master
- main
paths:
- '**.jpg'
- '**.jpeg'

View File

@@ -2,7 +2,7 @@ name: Convert CHANGELOG to Fastlane
on:
push:
branches:
- master
- main
jobs:
convert_changelog_to_fastlane:

View File

@@ -6,7 +6,7 @@ on:
jobs:
contributors_to_file:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/main'
name: Write contributors to file
steps:
- name: Checkout repo

View File

@@ -0,0 +1,10 @@
name: "Validate Gradle Wrapper"
on: [push, pull_request]
jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1

View File

@@ -1,5 +1,10 @@
# Changelog
## v2.21.2 - 117
- Remove unnecessary permissions
- Target Android 13
## v2.21.1 - 116
- Fix quick spend dialog not allowing , separator

View File

@@ -100,5 +100,5 @@ your real name, saying:
Finally, you will need to submit your patches so that they can be reviewed
and potentially merged into the main Catima repository. The preferred
way to do this is to submit a Pull Request to the Catima project.
Changes need to apply cleanly onto the master branch and pass all
Changes need to apply cleanly onto the main branch and pass all
unit tests and produce no errors during static analysis.

View File

@@ -13,14 +13,14 @@ spotbugs {
}
android {
compileSdk 31
compileSdk 33
defaultConfig {
applicationId "me.hackerchick.catima"
minSdk 21
targetSdk 31
versionCode 116
versionName "2.21.1"
targetSdk 33
versionCode 117
versionName "2.21.2"
vectorDrawables.useSupportLibrary true
multiDexEnabled true
@@ -102,7 +102,7 @@ dependencies {
implementation 'org.apache.commons:commons-csv:1.9.0'
implementation 'com.jaredrummler:colorpicker:1.1.0'
implementation 'com.github.invissvenska:NumberPickerPreference:1.0.4'
implementation 'net.lingala.zip4j:zip4j:2.11.2'
implementation 'net.lingala.zip4j:zip4j:2.11.3'
// SpotBugs
implementation 'io.wcm.tooling.spotbugs:io.wcm.tooling.spotbugs.annotations:1.0.0'
@@ -110,7 +110,7 @@ dependencies {
// Testing
testImplementation 'androidx.test:core:1.4.0'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.robolectric:robolectric:4.9'
testImplementation 'org.robolectric:robolectric:4.9.2'
}
tasks.withType(SpotBugsTask) {

View File

@@ -6,8 +6,7 @@
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="23" />
<uses-feature
android:name="android.hardware.camera"

View File

@@ -34,7 +34,7 @@ public class AboutActivity extends CatimaAppCompatActivity {
binding.versionHistory.setTag("https://catima.app/changelog/");
binding.translate.setTag("https://hosted.weblate.org/engage/catima/");
binding.license.setTag("https://github.com/CatimaLoyalty/Android/blob/master/LICENSE");
binding.license.setTag("https://github.com/CatimaLoyalty/Android/blob/main/LICENSE");
binding.repo.setTag("https://github.com/CatimaLoyalty/Android/");
binding.privacy.setTag("https://catima.app/privacy-policy/");
binding.reportError.setTag("https://github.com/CatimaLoyalty/Android/issues");

View File

@@ -6,6 +6,7 @@ import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
@@ -49,4 +50,7 @@ public class CatimaAppCompatActivity extends AppCompatActivity {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
public void onMockedRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
}
}

View File

@@ -43,8 +43,6 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
private ImportExportActivityBinding binding;
private static final String TAG = "Catima";
private static final int PERMISSIONS_EXTERNAL_STORAGE = 1;
private ImportExportTask importExporter;
private String importAlertTitle;
@@ -68,19 +66,6 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
setSupportActionBar(toolbar);
enableToolbarBackButton();
// If the application does not have permissions to external
// storage, ask for it now
if (ContextCompat.checkSelfPermission(ImportExportActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(ImportExportActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(ImportExportActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSIONS_EXTERNAL_STORAGE);
}
Intent fileIntent = getIntent();
if (fileIntent != null && fileIntent.getType() != null) {
chooseImportType(false, fileIntent.getData());
@@ -312,30 +297,6 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
mTasks.executeTask(TaskHandler.TYPE.EXPORT, importExporter);
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSIONS_EXTERNAL_STORAGE) {
// If request is cancelled, the result arrays are empty.
boolean success = grantResults.length > 0;
for (int grant : grantResults) {
if (grant != PackageManager.PERMISSION_GRANTED) {
success = false;
}
}
if (!success) {
// External storage permission rejected, inform user that
// import/export is prevented
Toast.makeText(getApplicationContext(), R.string.noExternalStoragePermissionError,
Toast.LENGTH_LONG).show();
}
}
}
@Override
protected void onDestroy() {
mTasks.flushTaskList(TaskHandler.TYPE.IMPORT, true, false, false);

View File

@@ -117,7 +117,7 @@ public class ImportURIHelper {
}
return new LoyaltyCard(-1, store, note, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, 0, Utils.getUnixTime(), 100,0);
} catch (NullPointerException | NumberFormatException | UnsupportedEncodingException ex) {
} catch (NullPointerException | NumberFormatException | UnsupportedEncodingException | ArrayIndexOutOfBoundsException ex) {
throw new InvalidObjectException("Not a valid import URI");
}
}

View File

@@ -111,6 +111,9 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
private static final int PERMISSION_REQUEST_CAMERA_IMAGE_FRONT = 100;
private static final int PERMISSION_REQUEST_CAMERA_IMAGE_BACK = 101;
private static final int PERMISSION_REQUEST_CAMERA_IMAGE_ICON = 102;
private static final int PERMISSION_REQUEST_STORAGE_IMAGE_FRONT = 103;
private static final int PERMISSION_REQUEST_STORAGE_IMAGE_BACK = 104;
private static final int PERMISSION_REQUEST_STORAGE_IMAGE_ICON = 105;
public static final String BUNDLE_ID = "id";
public static final String BUNDLE_DUPLICATE_ID = "duplicateId";
@@ -981,14 +984,59 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (requestCode == PERMISSION_REQUEST_CAMERA_IMAGE_FRONT) {
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;
Integer failureReason = null;
if (requestCode == PERMISSION_REQUEST_CAMERA_IMAGE_FRONT) {
if (granted) {
takePhotoForCard(Utils.CARD_IMAGE_FROM_CAMERA_FRONT);
} else if (requestCode == PERMISSION_REQUEST_CAMERA_IMAGE_BACK) {
takePhotoForCard(Utils.CARD_IMAGE_FROM_CAMERA_BACK);
} else if (requestCode == PERMISSION_REQUEST_CAMERA_IMAGE_ICON) {
takePhotoForCard(Utils.CARD_IMAGE_FROM_CAMERA_ICON);
return;
}
failureReason = R.string.cameraPermissionRequired;
} else if (requestCode == PERMISSION_REQUEST_CAMERA_IMAGE_BACK) {
if (granted) {
takePhotoForCard(Utils.CARD_IMAGE_FROM_CAMERA_BACK);
return;
}
failureReason = R.string.cameraPermissionRequired;
} else if (requestCode == PERMISSION_REQUEST_CAMERA_IMAGE_ICON) {
if (granted) {
takePhotoForCard(Utils.CARD_IMAGE_FROM_CAMERA_ICON);
return;
}
failureReason = R.string.cameraPermissionRequired;
} else if (requestCode == PERMISSION_REQUEST_STORAGE_IMAGE_FRONT) {
if (granted) {
selectImageFromGallery(Utils.CARD_IMAGE_FROM_FILE_FRONT);
return;
}
failureReason = R.string.storageReadPermissionRequired;
} else if (requestCode == PERMISSION_REQUEST_STORAGE_IMAGE_BACK) {
if (granted) {
selectImageFromGallery(Utils.CARD_IMAGE_FROM_FILE_BACK);
return;
}
failureReason = R.string.storageReadPermissionRequired;
} else if (requestCode == PERMISSION_REQUEST_STORAGE_IMAGE_ICON) {
if (granted) {
selectImageFromGallery(Utils.CARD_IMAGE_FROM_FILE_ICON);
return;
}
failureReason = R.string.storageReadPermissionRequired;
}
if (failureReason != null) {
Toast.makeText(this, failureReason, Toast.LENGTH_LONG).show();
}
}
@@ -1060,6 +1108,24 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
mPhotoTakerLauncher.launch(photoURI);
}
private void selectImageFromGallery(int type) {
mRequestedImage = type;
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentIntent.setType("image/*");
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(R.string.addFromImage));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { contentIntent });
try {
mPhotoPickerLauncher.launch(chooserIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), R.string.failedLaunchingPhotoPicker, Toast.LENGTH_LONG).show();
Log.e(TAG, "No activity found to handle intent", e);
}
}
class EditCardIdAndBarcode implements View.OnClickListener {
@Override
public void onClick(View v) {
@@ -1141,63 +1207,38 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
}
cardOptions.put(getString(R.string.takePhoto), () -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int permissionRequestType;
int permissionRequestType;
if (v.getId() == R.id.frontImageHolder) {
permissionRequestType = PERMISSION_REQUEST_CAMERA_IMAGE_FRONT;
} else if (v.getId() == R.id.backImageHolder) {
permissionRequestType = PERMISSION_REQUEST_CAMERA_IMAGE_BACK;
} else if (v.getId() == R.id.thumbnail) {
permissionRequestType = PERMISSION_REQUEST_CAMERA_IMAGE_ICON;
} else {
throw new IllegalArgumentException("Unknown ID type " + v.getId());
}
requestPermissions(new String[]{Manifest.permission.CAMERA}, permissionRequestType);
} else {
int cardImageType;
if (v.getId() == R.id.frontImageHolder) {
cardImageType = Utils.CARD_IMAGE_FROM_CAMERA_FRONT;
} else if (v.getId() == R.id.backImageHolder) {
cardImageType = Utils.CARD_IMAGE_FROM_CAMERA_BACK;
} else if (v.getId() == R.id.thumbnail) {
cardImageType = Utils.CARD_IMAGE_FROM_CAMERA_ICON;
} else {
throw new IllegalArgumentException("Unknown ID type " + v.getId());
}
takePhotoForCard(cardImageType);
}
return null;
});
cardOptions.put(getString(R.string.addFromImage), () -> {
if (v.getId() == R.id.frontImageHolder) {
mRequestedImage = Utils.CARD_IMAGE_FROM_FILE_FRONT;
permissionRequestType = PERMISSION_REQUEST_CAMERA_IMAGE_FRONT;
} else if (v.getId() == R.id.backImageHolder) {
mRequestedImage = Utils.CARD_IMAGE_FROM_FILE_BACK;
permissionRequestType = PERMISSION_REQUEST_CAMERA_IMAGE_BACK;
} else if (v.getId() == R.id.thumbnail) {
mRequestedImage = Utils.CARD_IMAGE_FROM_FILE_ICON;
permissionRequestType = PERMISSION_REQUEST_CAMERA_IMAGE_ICON;
} else {
throw new IllegalArgumentException("Unknown ID type " + v.getId());
}
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentIntent.setType("image/*");
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(R.string.addFromImage));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { contentIntent });
PermissionUtils.requestCameraPermission(LoyaltyCardEditActivity.this, permissionRequestType);
try {
mPhotoPickerLauncher.launch(chooserIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), R.string.failedLaunchingPhotoPicker, Toast.LENGTH_LONG).show();
Log.e(TAG, "No activity found to handle intent", e);
return null;
});
cardOptions.put(getString(R.string.addFromImage), () -> {
int permissionRequestType;
if (v.getId() == R.id.frontImageHolder) {
permissionRequestType = PERMISSION_REQUEST_STORAGE_IMAGE_FRONT;
} else if (v.getId() == R.id.backImageHolder) {
permissionRequestType = PERMISSION_REQUEST_STORAGE_IMAGE_BACK;
} else if (v.getId() == R.id.thumbnail) {
permissionRequestType = PERMISSION_REQUEST_STORAGE_IMAGE_ICON;
} else {
throw new IllegalArgumentException("Unknown ID type " + v.getId());
}
PermissionUtils.requestStorageReadPermission(LoyaltyCardEditActivity.this, permissionRequestType);
return null;
});

View File

@@ -0,0 +1,94 @@
package protect.card_locker;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Build;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class PermissionUtils {
/**
* Check if storage read permission is needed.
*
* This is only necessary on Android 6.0 (Marshmallow) and below. See
* https://github.com/CatimaLoyalty/Android/issues/979 for more info.
*
* @param activity
* @return
*/
private static boolean needsStorageReadPermission(Activity activity) {
// Testing showed this permission wasn't needed for anything Catima did past Marshmallow
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return false;
}
return ContextCompat.checkSelfPermission(activity, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED;
}
/**
* Check if camera permission is needed.
*
* @param activity
* @return
*/
public static boolean needsCameraPermission(Activity activity) {
// Android only introduced the runtime permission system in Marshmallow (Android 6.0)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return false;
}
return ContextCompat.checkSelfPermission(activity, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED;
}
/**
* Call onRequestPermissionsResult after storage read permission was granted.
* Mocks a successful grant if a grant is not necessary.
*
* @param activity
* @param requestCode
*/
public static void requestStorageReadPermission(CatimaAppCompatActivity activity, int requestCode) {
String[] permissions = new String[]{ android.Manifest.permission.READ_EXTERNAL_STORAGE };
int[] mockedResults = new int[]{ PackageManager.PERMISSION_GRANTED };
if (needsStorageReadPermission(activity)) {
ActivityCompat.requestPermissions(activity, permissions, requestCode);
} else {
// FIXME: This points to onMockedRequestPermissionResult instead of to
// onRequestPermissionResult because onRequestPermissionResult was only introduced in
// Android 6.0 (SDK 23) and we and to support Android 5.0 (SDK 21) too.
//
// When minSdk becomes 23, this should point to onRequestPermissionResult directly and
// the activity input variable should be changed from CatimaAppCompatActivity to
// Activity.
activity.onMockedRequestPermissionsResult(requestCode, permissions, mockedResults);
}
}
/**
* Call onRequestPermissionsResult after camera permission was granted.
* Mocks a successful grant if a grant is not necessary.
*
* @param activity
* @param requestCode
*/
public static void requestCameraPermission(CatimaAppCompatActivity activity, int requestCode) {
String[] permissions = new String[]{ Manifest.permission.CAMERA };
int[] mockedResults = new int[]{ PackageManager.PERMISSION_GRANTED };
if (needsCameraPermission(activity)) {
ActivityCompat.requestPermissions(activity, permissions, requestCode);
} else {
// FIXME: This points to onMockedRequestPermissionResult instead of to
// onRequestPermissionResult because onRequestPermissionResult was only introduced in
// Android 6.0 (SDK 23) and we and to support Android 5.0 (SDK 21) too.
//
// When minSdk becomes 23, this should point to onRequestPermissionResult directly and
// the activity input variable should be changed from CatimaAppCompatActivity to
// Activity.
activity.onMockedRequestPermissionsResult(requestCode, permissions, mockedResults);
}
}
}

View File

@@ -53,6 +53,8 @@ public class ScanActivity extends CatimaAppCompatActivity {
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 CaptureManager capture;
private DecoratedBarcodeView barcodeScannerView;
@@ -226,6 +228,10 @@ public class ScanActivity extends CatimaAppCompatActivity {
}
public void addFromImage(View view) {
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_IMAGE);
}
private void addFromImageAfterPermission() {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
@@ -275,9 +281,21 @@ public class ScanActivity extends CatimaAppCompatActivity {
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CaptureManager.getCameraPermissionReqCode())
showCameraPermissionMissingText(grantResults[0] != PackageManager.PERMISSION_GRANTED);
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()) {
showCameraPermissionMissingText(!granted);
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
if (granted) {
addFromImageAfterPermission();
} else {
Toast.makeText(this, R.string.storageReadPermissionRequired, Toast.LENGTH_LONG).show();
}
}
}
}

View File

@@ -39,7 +39,6 @@
<string name="exportSuccessfulTitle">متصدر</string>
<string name="exportFailedTitle">فشل التصدير</string>
<string name="exportFailed">لا يمكن عمل التصدير</string>
<string name="noExternalStoragePermissionError">امنح التخزين الخارجي اذن لاستيراد وتصدير البيانات</string>
<string name="exportOptionExplanation">ستتم كتابة البيانات في الموقع الذي تختاره.</string>
<string name="importOptionFilesystemButton">من نظام الملفات</string>
<string name="importOptionApplicationTitle">استخدم تطبيقًا آخر</string>

View File

@@ -34,7 +34,6 @@
<string name="setFrontImage">Снимка на предната страна</string>
<string name="photos">Снимки</string>
<string name="importOptionApplicationExplanation">Изберете файл на друго приложение.</string>
<string name="noExternalStoragePermissionError">Разрешете достъп до хранилището, за да работи внасянето и изнасянето</string>
<string name="noCardExistsError">Картата не е намерена</string>
<string name="updateBarcodeQuestionText">Идентификаторът е променен. Желаете ли с неговата стойност да бъде променен и щрихкодът\?</string>
<string name="updateBarcodeQuestionTitle">Обновяване на щрихкода\?</string>
@@ -263,4 +262,6 @@
<string name="currentBalanceSentence">Текущ баланс: <xliff:g>%s</xliff:g></string>
<string name="updateBalance">Обновяване на баланса</string>
<string name="importCards">Внасяне на карти</string>
<string name="storageReadPermissionRequired">За това действие е необходимо разрешение за четене на хранилището…</string>
<string name="cameraPermissionRequired">За това действие е необходимо разрешение за достъп до камерата…</string>
</resources>

View File

@@ -29,7 +29,6 @@
<string name="exportFailed">Export nelze provést</string>
<string name="importing">Importuji…</string>
<string name="exporting">Exportuji…</string>
<string name="noExternalStoragePermissionError">Udělit oprávnění přístupu k externímu úložišti pro import nebo export dat</string>
<string name="importOptionFilesystemTitle">Import ze souborového systému</string>
<string name="importOptionFilesystemExplanation">Vyberte konkrétní soubor v úložišti.</string>
<string name="importOptionFilesystemButton">Ze souborového systému</string>
@@ -270,4 +269,6 @@
<string name="updateBalanceTitle">Kolik jste utratil\?</string>
<string name="updateBalanceHint">Zadejte výši</string>
<string name="newBalanceSentence">Nový zůstatek: <xliff:g>%s</xliff:g></string>
<string name="storageReadPermissionRequired">Pro tuto akci je potřeba oprávnění ke čtení úložiště…</string>
<string name="cameraPermissionRequired">Pro tuto akci je potřeba oprávnění k přístupu k fotoaparátu…</string>
</resources>

View File

@@ -67,7 +67,6 @@
<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="noExternalStoragePermissionError">Giv først tilladelse til ekstern lagring til at importere eller eksportere kort</string>
<string name="failedParsingImportUriError">Kunne ikke analysere import-URI\'en</string>
<string name="noCardExistsError">Kunne ikke finde kort</string>
<string name="noCardIdError">Der er ikke angivet noget kort-ID</string>

View File

@@ -36,7 +36,6 @@
<string name="exportFailed">Export konnte nicht durchgeführt werden</string>
<string name="importing">Importiere…</string>
<string name="exporting">Exportiere…</string>
<string name="noExternalStoragePermissionError">Berechtigung für den externen Speicher zum Importieren oder Exportieren von Daten erteilen</string>
<string name="importOptionFilesystemTitle">Importiere aus dem Dateisystem</string>
<string name="importOptionFilesystemExplanation">Wähle eine Datei vom Dateisystem aus.</string>
<string name="importOptionFilesystemButton">Wähle vom Dateisystem</string>

View File

@@ -32,7 +32,6 @@
<string name="exportFailed">Δεν ήταν δυνατή η εξαγωγή</string>
<string name="importing">Γίνεται εισαγωγή του…</string>
<string name="exporting">Γίνεται εξαγωγή του…</string>
<string name="noExternalStoragePermissionError">Εγκρίνετε την άδεια εξωτερικής αποθήκευσης για να εισάγετε ή εξάγετε δεδομένα</string>
<string name="importOptionFilesystemTitle">Εισαγωγή από το σύστημα αρχείων</string>
<string name="importOptionFilesystemExplanation">Επιλέξτε ένα συγκεκριμένο αρχείο από το σύστημα αρχείων.</string>
<string name="importOptionFilesystemButton">Από το σύστημα αρχείων</string>

View File

@@ -63,7 +63,6 @@
<string name="importOptionApplicationTitle">Uzi alian app</string>
<string name="importOptionFilesystemExplanation">Elektu specifa dosiero de la dosiersistemo.</string>
<string name="exportOptionExplanation">La datumoj estos skribita al loko de via elekto.</string>
<string name="noExternalStoragePermissionError">Grant ekstera stokado permeso de importado aŭ eksportado kartoj unua</string>
<string name="exportFailed">Ne povis eksporti kartoj</string>
<string name="importFailed">Ne povis importi kartoj</string>
<string name="importExportHelp">Subtenanta supre vian kartoj permesas vin movi ilin al alia aparato.</string>

View File

@@ -32,7 +32,6 @@
<string name="exportFailed">No se han podido exportar</string>
<string name="importing">Importando…</string>
<string name="exporting">Exportando…</string>
<string name="noExternalStoragePermissionError">Otorgar permiso de almacenamiento para importar o exportar datos</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="importOptionFilesystemButton">Desde el sistema de archivos</string>
@@ -270,4 +269,6 @@
<string name="cameraPermissionDeniedTitle">No se pudo acceder a la cámara</string>
<string name="updateBalance">Actualizar el balance</string>
<string name="importCards">Importar tarjetas</string>
<string name="storageReadPermissionRequired">Se necesita permiso para leer el almacenamiento para esta acción…</string>
<string name="cameraPermissionRequired">Se necesita permiso para acceder a la cámara para esta acción…</string>
</resources>

View File

@@ -1,10 +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="noExternalStoragePermissionError">Salli käyttöoikeus ulkoisen tallennustilan käyttöön voidaksesi tuoda tai viedä tietoja</string>
<string name="no">Ei</string>
<string name="yes">Kyllä</string>
<string name="updateBarcodeQuestionText">Vaihdoit ID-tunnuksen. Haluatko päivittää myös viivakoodin käyttämään samaa arvoa\?</string>
<string name="updateBarcodeQuestionTitle">Päivitä viivakoodin arvo\?</string>
<string name="updateBarcodeQuestionTitle">Päivitetäänkö viivakoodin arvo\?</string>
<string name="intent_import_card_from_url_share_multiple_text">Haluan jakaa joitain kortteja kanssasi</string>
<string name="copy_to_clipboard_multiple_toast">ID-tunnukset kopioitu leikepöydälle</string>
<string name="wrongValueForBarcodeType">Arvo ei ole kelvollinen valitulle viivakoodityypille</string>
@@ -14,15 +13,15 @@
<string name="barcodeId">Viivakoodin arvo</string>
<string name="importVoucherVaultMessage">Valitse tuotava <i>vouchervault.json</i>-vienti Voucher Vaultista.
\nLuo se painamalla ensin Vie Voucher Vaultissa.</string>
<string name="importVoucherVault">Tuo Voucher Vault varmuuskopiotiedostosta</string>
<string name="importVoucherVault">Tuo Voucher Vault -varmuuskopiotiedostosta</string>
<string name="importLoyaltyCardKeychainMessage">Valitse tuotava <i>LoyaltyCardKeychain.csv</i>-vientitiedostosi Loyalty Card Keychainista.
\nTai luo se Loyalty Card Keychainin Import/Export-valikosta painamalla ensin Export (Vie).</string>
<string name="importLoyaltyCardKeychain">Tuo Loyalty Card Keychain varmuuskopiotiedostosta</string>
<string name="importFidmeMessage">Valitse tuotava <i>fidme-export-request-xxxxxxxx.zip</i>-vientitiedostosi FidMe:stä ja valitse viivakoodityypit manuaalisesti sen jälkeen.
\nLuo se FidMe-profiilistasi valitsemalla Tietosuoja ja painamalla ensin Extract my data.</string>
<string name="importFidme">Tuo FidMe varmuuskopiotiedostosta</string>
<string name="importFidme">Tuo FidMe-varmuuskopiotiedostosta</string>
<string name="importCatimaMessage">Valitse tuotava <i>catima.zip</i>-vientitiedostosi Catimasta.
\nLuo se Catima-sovelluksen Tuo/Vie-valikosta painamalla siellä ensin Vie.</string>
\nLuo se Catima-sovelluksen Tuo/vie-valikosta painamalla siellä ensin Vie.</string>
<string name="importCatima">Tuo Catima varmuuskopiotiedostosta</string>
<string name="accept">Hyväksy</string>
<string name="privacy_policy_popup_text">Tietosuojaseloste (joidenkin sovelluskauppojen vaatimus):
@@ -51,18 +50,18 @@
<string name="groupsList">Ryhmät: <xliff:g>%s</xliff:g></string>
<string name="addFromImage">Valitse kuva galleriasta</string>
<string name="addManually">Anna ID-tunnus manuaalisesti</string>
<string name="leaveWithoutSaveConfirmation">Poistu tallentamatta\?</string>
<string name="leaveWithoutSaveConfirmation">Poistutaanko tallentamatta\?</string>
<string name="leaveWithoutSaveTitle">Poistu</string>
<string name="moveDown">Siirrä alaspäin</string>
<string name="moveUp">Siirrä ylöspäin</string>
<string name="failedOpeningFileManager">Asenna ensin tiedostonhallintaohjelma.</string>
<string name="deleteConfirmationGroup">Poista ryhmä\?</string>
<string name="deleteConfirmationGroup">Poistetaanko ryhmä\?</string>
<string name="all">Kaikki</string>
<plurals name="groupCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> kortti</item>
<item quantity="other"><xliff:g>%d</xliff:g> kortit</item>
<item quantity="other"><xliff:g>%d</xliff:g> korttia</item>
</plurals>
<string name="noGroups">Napsauta + plus-painiketta lisätäksesi ryhmät luokittelua varten.</string>
<string name="noGroups">Napsauta plus-painiketta (+) lisätäksesi ryhmät luokittelua varten.</string>
<string name="groups">Ryhmät</string>
<string name="enter_group_name">Anna ryhmän nimi</string>
<string name="exportSuccessful">Tiedot viety</string>
@@ -78,18 +77,18 @@
<string name="settings_theme">Teema</string>
<string name="settings_category_title_ui">Käyttöliittymä</string>
<string name="settings">Asetukset</string>
<string name="starImage">Suosikki tähti</string>
<string name="starImage">Suosikkitähti</string>
<string name="thumbnailDescription">Pienoiskuva</string>
<string name="copy_to_clipboard_toast">ID-tunnus kopioitu leikepöydälle</string>
<string name="enterBarcodeInstructions">Syötä ID-tunnus ja valitse sen viivakoodityyppi, tai valitse \"Ei viivakoodia\".</string>
<string name="selectBarcodeTitle">Valitse viivakoodi</string>
<string name="app_resources">Vapaat kolmannen osapuolen resurssit: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="app_libraries">Kolmannen osapuolen Libre-kirjastot: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_libraries">Vapaat kolmannen osapuolen kirjastot: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_revision_fmt">Muutostiedot: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="debug_version_fmt">Versio: <xliff:g id="version">%s</xliff:g></string>
<string name="about_title_fmt">Tietoja <xliff:g id="app_name">%s</xliff:g></string>
<string name="app_license">Copyleft (käyttäjänoikeus) - vapaa ohjelmisto, lisenssi GPLv3+</string>
<string name="app_copyright_old">Perustuu Loyalty Card Keychain sovellukseen
<string name="app_copyright_old">Perustuu Loyalty Card Keychain -sovellukseen
\ntekijänoikeus © 20162020 Branden Archer</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Tekijänoikeus © 2019<xliff:g>%d</xliff:g> Sylvia van Os</string>
<string name="about">Tietoja</string>
@@ -110,7 +109,7 @@
<string name="importSuccessfulTitle">Tuonti valmis</string>
<string name="importExportHelp">Tietojesi varmuuskopiointi mahdollistaa niiden siirtämisen toiseen laitteeseen.</string>
<string name="exportName">Vie</string>
<string name="importExport">Tuo/Vie</string>
<string name="importExport">Tuo/vie</string>
<string name="failedParsingImportUriError">Tuonnin URI: n jäsentäminen epäonnistui</string>
<string name="noCardExistsError">Tätä korttia ei löytynyt</string>
<string name="noCardIdError">ID-tunnusta ei annettu</string>
@@ -139,7 +138,7 @@
<string name="note">Lisätieto</string>
<string name="storeName">Nimi</string>
<string name="noMatchingGiftCards">Ei hakutuloksia, kokeile toisella hakutermillä.</string>
<string name="noGiftCards">Lisää kortti napsauttamalla + plus-painiketta, tai mene ⋮ valikkoon tuodaksesi varmuuskopiosta.</string>
<string name="noGiftCards">Lisää kortti napsauttamalla plus-painiketta (+), tai mene ⋮-valikkoon tuodaksesi.</string>
<string name="action_add">Lisää</string>
<string name="action_search">Hae</string>
<string name="takePhoto">Ota valokuva</string>
@@ -149,32 +148,32 @@
<string name="photos">Valokuvat</string>
<string name="backImageDescription">Takakuva</string>
<string name="frontImageDescription">Etukuva</string>
<string name="deleteConfirmation">Poista tämä kortti\?</string>
<string name="deleteConfirmation">Poistetaanko tämä kortti\?</string>
<string name="deleteTitle">Poista kortti</string>
<plurals name="deleteCardsConfirmation">
<item quantity="one">Poista tämä <xliff:g>%d</xliff:g> kortti pysyvästi\?</item>
<item quantity="other">Poista tämä <xliff:g>%d</xliff:g> kortit pysyvästi\?</item>
<item quantity="one">Poistetaanko tämä <xliff:g>%d</xliff:g> kortti pysyvästi\?</item>
<item quantity="other">Poistetaanko nämä <xliff:g>%d</xliff:g> korttia pysyvästi\?</item>
</plurals>
<plurals name="deleteCardsTitle">
<item quantity="one">Poista <xliff:g>%d</xliff:g>kortti</item>
<item quantity="other">Poista <xliff:g>%d</xliff:g>kortit</item>
<item quantity="other">Poista <xliff:g>%d</xliff:g>korttia</item>
</plurals>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> valittu</item>
<item quantity="other"><xliff:g>%d</xliff:g> valitut</item>
<item quantity="other"><xliff:g>%d</xliff:g> valittu</item>
</plurals>
<string name="importStocard">Tuo Stocardista</string>
<string name="importStocardMessage">Valitse tuotava <i>***-sync.zip</i>-vienti Stocardista.
\nHanki se lähettämällä sähköpostia osoitteeseen support@stocardapp.com ja pyytämällä tietojesi vientiä.</string>
<string name="passwordRequired">Ole hyvä ja syötä salasana</string>
<string name="failedGeneratingShareURL">Ei pystynyt luomaan jaettavaa URL-osoitetta. Ilmoita tästä.</string>
<string name="turn_flashlight_on">Sytytä taskulamppu</string>
<string name="failedGeneratingShareURL">Jaettavaa URL-osoitetta ei voitu luoda. Ilmoita tästä.</string>
<string name="turn_flashlight_on">ytä taskulamppua</string>
<string name="turn_flashlight_off">Sammuta salamavalo</string>
<string name="app_contributors">Mahdollistanut: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="settings_brown_theme">Ruskea</string>
<string name="settings_grey_theme">Harmaa</string>
<string name="settings_green_theme">Vihreä</string>
<string name="settings_sky_blue_theme">Taivaan sininen</string>
<string name="settings_sky_blue_theme">Taivaansininen</string>
<string name="settings_blue_theme">Siniset</string>
<string name="settings_violet_theme">Violetti</string>
<string name="settings_magenta_theme">Magenta</string>
@@ -195,7 +194,7 @@
</plurals>
<string name="settings_oled_dark">Musta tausta tummalle teemalle</string>
<string name="setIcon">Aseta kuvake</string>
<string name="swipeToSwitchImages">Vaihda kuvia pyyhkäisemällä tai painamalla pitkään</string>
<string name="swipeToSwitchImages">Vaihda kuvia pyyhkäisemällä, paina kuvaa pitkään avataksesi galleriasovelluksessa</string>
<string name="sort_by_name">Nimi</string>
<string name="sort_by_most_recently_used">Viimeksi käytetyt</string>
<string name="sort_by_expiry">Viimeinen voimassaoloaika</string>
@@ -227,10 +226,10 @@
<string name="selectColor">Valitse väri</string>
<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">Image <xliff:g>%s</xliff:g> viivakoodi</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">Muotokuva</string>
<string name="settings_landscape_orientation">Maisema</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="noUnarchivedCardsMessage">Arkistoimattomia kortteja ei ole olemassa</string>
<string name="unarchive">Poista arkistosta</string>
@@ -242,7 +241,7 @@
<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>
</plurals>
<string name="duplicateCard">Duplikaatti</string>
<string name="duplicateCard">Kaksoiskappale</string>
<string name="previousCard">Edellinen</string>
<string name="nextCard">Seuraava</string>
<string name="failedToOpenUrl">Asenna ensin verkkoselain</string>
@@ -251,4 +250,16 @@
<item quantity="one">Näytä arkisto (<xliff:g>%1$d</xliff:g> kortti)</item>
<item quantity="other">Näytä arkisto (<xliff:g>%1$d</xliff:g> korttia)</item>
</plurals>
<string name="updateBalanceTitle">Kuinka paljon kulutit\?</string>
<string name="updateBalanceHint">Syötä summa</string>
<string name="barcodeLongPressMessage">Vain kuvia on mahdollista avata galleriasovelluksessa</string>
<string name="archive">Arkistoi</string>
<string name="importCards">Tuo kortteja</string>
<string name="failedToRetrieveImageFile">Kuvatiedoston noutaminen epäonnistui</string>
<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>
</resources>

View File

@@ -32,7 +32,6 @@
<string name="exportFailed">Impossible deffectuer lexportation</string>
<string name="importing">Import …</string>
<string name="exporting">Export …</string>
<string name="noExternalStoragePermissionError">Accorder au stockage externe lautorisation dimporter ou dexporter des données</string>
<string name="importOptionFilesystemTitle">Importer depuis le système de fichiers</string>
<string name="importOptionFilesystemExplanation">Choisissez le fichier à importer.</string>
<string name="importOptionFilesystemButton">Système de fichiers</string>

View File

@@ -1,5 +1,5 @@
<?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="storeName">नाम</string>
<string name="note">नोट</string>
<string name="cardId">कार्ड आईडी</string>
@@ -114,4 +114,40 @@
<string name="balance">संतुलन</string>
<string name="currency">मुद्रा</string>
<string name="accept">स्वीकार</string>
<string name="exportSuccessful">डेटा निर्यात किया गया</string>
<string name="groupsList">समूह: <xliff:g>%s</xliff:g></string>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> अंक</item>
<item quantity="other"><xliff:g>%s</xliff:g> अंक</item>
</plurals>
<string name="privacy_policy_popup_text">निजता नीति नोटिस (कुछ ऐप स्टोर के लिए आवश्यक):
\n
\nकोई भी डेटा एकत्र नहीं किया जाता है, जिसकी पुष्टि कोई भी कर सकता है क्योंकि हमारा ऐप मुफ्त सॉफ्टवेयर है।</string>
<string name="importCatimaMessage">आयात करने के लिए, <i>catima.zip</i> फाइल को चुने जो की Catima से निर्यात किया गया था.
\nदूसरे Catima ऍप के आयात/निर्यात मेनू से निर्यात बटन दबाकर, पहले catima.zip फाइल को बनाये.</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> चयनित</item>
<item quantity="other"><xliff:g>%d</xliff:g> चयनित.</item>
</plurals>
<string name="groups">समूहों</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">कॉपीराइट © 2019<xliff:g>%d</xliff:g> Sylvia van Os</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="group_updated">समूह अपडेट किया गया</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="parsingBalanceFailed"><xliff:g>%s</xliff:g> एक वैध शेष राशि नहीं है.</string>
<string name="chooseImportType">यहाँ से डेटा का आयात करें</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="app_revision_fmt"><xliff:g id="app_revision_url">%s</xliff:g> संशोधन के बारे में</string>
<string name="copy_to_clipboard_toast">आई डी क्लिपबोर्ड पर कॉपी किया गया</string>
</resources>

View File

@@ -44,7 +44,6 @@
<string name="exportOptionExplanation">Podaci će biti zabilježeni na odabranom mjestu.</string>
<string name="exportFailedTitle">Izvoz nije uspio</string>
<string name="exporting">Opskrba…</string>
<string name="noExternalStoragePermissionError">Najprije odobrite dopuštenje za vanjsku pohranu za uvoz ili izvoz kartica</string>
<string name="importOptionFilesystemExplanation">Odaberite određenu datoteku iz datotečnog sustava.</string>
<string name="importOptionApplicationTitle">Koristite drugu aplikaciju</string>
<string name="settings">Postavke</string>

View File

@@ -1,11 +1,11 @@
<?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">Nyomja meg a + jelet a kártya hozzáadásához, vagy importáljon a ⋮ menüvel.</string>
<string name="noGiftCards">Kattintson a + plusz gombra egy kártya hozzáadásához, vagy importáljon a ⋮ menül.</string>
<string name="action_add">Hozzáadás</string>
<string name="action_search">Keresés</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> kiválasztva</item>
<item quantity="other"><xliff:g>%d</xliff:g> kiválasztva</item>
<item quantity="one"><xliff:g>%d</xliff:g> kiválasztott</item>
<item quantity="other"><xliff:g>%d</xliff:g> kiválasztottak</item>
</plurals>
<string name="noCardsMessage">Először adjon hozzá egy kártyát</string>
<string name="noGiftCardsGroup">Hozzon létre kártyákat, és rendelje hozzá a megfelelő csoporthoz.</string>
@@ -24,8 +24,8 @@
<string name="delete">Törlés</string>
<string name="confirm">Alkalmaz</string>
<plurals name="deleteCardsTitle">
<item quantity="one"><xliff:g>%d</xliff:g> törlése</item>
<item quantity="other"><xliff:g>%d</xliff:g> törlése</item>
<item quantity="one">Törölje az <xliff:g>%d</xliff:g> kártyát</item>
<item quantity="other">Törölje az <xliff:g>%d</xliff:g> kártyákat</item>
</plurals>
<string name="deleteConfirmation">Véglegesen törli a kártyát\?</string>
<string name="ok">Rendben</string>
@@ -81,7 +81,6 @@
<string name="exportFailed">Exportálás sikertelen</string>
<string name="importing">Importálás…</string>
<string name="exporting">Exportálás…</string>
<string name="noExternalStoragePermissionError">Külső háttértárhoz való hozzáférés engedélyezése adat import vagy export miatt</string>
<string name="exportOptionExplanation">Az adatokat a kiválasztott helyre fogjuk menteni.</string>
<string name="importOptionFilesystemTitle">Importálás fájlrendszerből</string>
<string name="importOptionFilesystemButton">A fájlrendszerből</string>
@@ -137,7 +136,7 @@
<string name="currency">Valuta</string>
<string name="points">Pontok</string>
<string name="parsingBalanceFailed">A <xliff:g>%s</xliff:g> nem tűnik valós egyenlegnek.</string>
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
<string name="app_loyalty_card_keychain">Hűségkártya kulcstartó</string>
<string name="privacy_policy">Adatvédelmi Szabályzat</string>
<string name="accept">Elfogad</string>
<string name="importCatima">Importálás Catimából</string>
@@ -179,7 +178,7 @@
<string name="app_contributors">Lehetővé tette: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="showMoreInfo">Infó mutatása</string>
<string name="hideMoreInfo">Infó elrejtése</string>
<string name="swipeToSwitchImages">Húzza oldalra vagy tartsa nyomva a kép megváltoztatásáért</string>
<string name="swipeToSwitchImages">Csúsztassa ujját a képek váltásához, tartsa lenyomva a kép megnyitásához a Galéria alkalmazásban</string>
<string name="sort_by_balance">Egyenleg</string>
<string name="reverse">...fordított sorrendben</string>
<string name="sort_by">Rendezés mint</string>
@@ -200,7 +199,7 @@
</plurals>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> pont</item>
<item quantity="other"><xliff:g>%s</xliff:g> pont</item>
<item quantity="other"><xliff:g>%s</xliff:g> pontok</item>
</plurals>
<string name="chooseImportType">Adat importálása innen</string>
<string name="thumbnailDescription">Előkép</string>
@@ -247,4 +246,20 @@
<string name="archived">Kártya archiválása</string>
<string name="archiveList">Archivál</string>
<string name="duplicateCard">Másolat</string>
<string name="currentBalanceSentence">Jelenlegi egyenleg: <xliff:g>%s</xliff:g></string>
<string name="updateBalanceHint">Adja meg az összeget</string>
<string name="importCards">Kártyák importálása</string>
<string name="updateBalanceTitle">Mennyit költöttél\?</string>
<string name="newBalanceSentence">Új egyenleg: <xliff:g>%s</xliff:g></string>
<string name="cameraPermissionDeniedTitle">Nem sikerült hozzáférni a kamerához</string>
<string name="failedToRetrieveImageFile">Nem sikerült lekérni a képfájlt</string>
<string name="barcodeLongPressMessage">Csak képek nyithatók meg a galéria alkalmazásban</string>
<string name="unarchived">Archiválatlan kártya</string>
<string name="welcome">Üdvözöljük Catimában</string>
<plurals name="viewArchivedCardsWithCount">
<item quantity="one">Archívum megtekintése (<xliff:g>%1$d</xliff:g> kártya)</item>
<item quantity="other">Archívum megtekintése (<xliff:g>%1$d</xliff:g> kártyák)</item>
</plurals>
<string name="updateBalance">Egyenleg frissítése</string>
<string name="noCameraPermissionDirectToSystemSetting">A vonalkódok beolvasásához a Catimának hozzá kell férnie a kamerához. Koppintson ide az engedélybeállítások módosításához.</string>
</resources>

View File

@@ -96,7 +96,6 @@
<string name="exportFailed">Tidak dapat mengekspor</string>
<string name="importing">Sedang mengimpor…</string>
<string name="exporting">Sedang mengekspor…</string>
<string name="noExternalStoragePermissionError">Berikan izin penyimpanan eksternal untuk mengimpor atau mengekspor data</string>
<string name="exportOptionExplanation">Data akan ditulis ke lokasi pilihan Anda.</string>
<string name="importOptionFilesystemTitle">Impor dari pengelola file bawaan</string>
<string name="importOptionFilesystemExplanation">Pilih file dari pengelola file bawaan.</string>

View File

@@ -33,7 +33,6 @@
<string name="importExportHelp">Stuðningur upp spil gerir þér kleift að færa þá til annar tæki.</string>
<string name="importSuccessfulTitle">Flutt</string>
<string name="importFailedTitle">Innflutningur mistókst</string>
<string name="noExternalStoragePermissionError">Grant ytri geymslu leyfi til að flytja eða flytja spil fyrstu</string>
<string name="exportOptionExplanation">Gögnum verður skrifað á stað af eigin vali.</string>
<string name="importOptionFilesystemTitle">Innflutningur frá möppuna</string>
<string name="importOptionFilesystemExplanation">Velja ákveðna skrá frá möppuna.</string>

View File

@@ -37,7 +37,6 @@
<string name="exportFailed">Impossibile eseguire l\'esportazione</string>
<string name="importing">Importazione in corso…</string>
<string name="exporting">Esportazione in corso…</string>
<string name="noExternalStoragePermissionError">Concedi il permesso di archiviazione esterna per importare o esportare dati</string>
<string name="importOptionFilesystemTitle">Importa dall\'archivio</string>
<string name="importOptionFilesystemExplanation">Scegli un file dall\'archivio.</string>
<string name="importOptionFilesystemButton">Dall\'archivio</string>
@@ -270,4 +269,6 @@
<string name="currentBalanceSentence">Bilancio attuale: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">Nuovo bilancio: <xliff:g>%s</xliff:g></string>
<string name="importCards">Importa carte</string>
<string name="storageReadPermissionRequired">Per questa azione è necessario il permesso per accedere alla memoria del dispositivo…</string>
<string name="cameraPermissionRequired">Per questa azione è necessario il permesso ad accedere alla fotocamera…</string>
</resources>

View File

@@ -87,7 +87,6 @@
<string name="importOptionFilesystemExplanation">ストレージからファイルを選択してください。</string>
<string name="importOptionFilesystemTitle">ストレージからインポート</string>
<string name="exportOptionExplanation">選択した場所にデータを出力します。</string>
<string name="noExternalStoragePermissionError">データをインポート/エクスポートするために外部ストレージへのアクセスを許可してください</string>
<string name="exporting">エクスポート中…</string>
<string name="importing">インポート中…</string>
<string name="exportFailed">カードをエクスポートできませんでした</string>

View File

@@ -23,7 +23,6 @@
<string name="exportFailed">Nepavyko eksportuoti</string>
<string name="importing">Importuoja…</string>
<string name="exporting">Eksportuoja…</string>
<string name="noExternalStoragePermissionError">Pirmiausia suteikite išorinės saugyklos leidimą, kad galėtumėte importuoti arba eksportuoti korteles</string>
<string name="about">Apie</string>
<string name="app_license">Copylefted laisvoji programinė įranga, licencijuota GPLv3+</string>
<string name="about_title_fmt">Apie <xliff:g id="app_name">%s</xliff:g></string>

View File

@@ -48,7 +48,6 @@
<string name="exportFailed">Kartes neizdevās eksportēt</string>
<string name="importing">Importē…</string>
<string name="exporting">Eksportē…</string>
<string name="noExternalStoragePermissionError">Piešķiriet ārējai atmiņai atļauju vispirms importēt vai eksportēt kartes</string>
<string name="exportOptionExplanation">Dati tiks saglabāti Jūsu izvēlētajā vietā.</string>
<string name="importOptionFilesystemTitle">Imports no failu sistēmas</string>
<string name="importOptionFilesystemExplanation">Izvēlieties konkrētu failu no failu sistēmas.</string>

View File

@@ -33,7 +33,6 @@
<string name="exportFailed">Kunne ikke utføre eksport</string>
<string name="importing">Importerer…</string>
<string name="exporting">Exporterer…</string>
<string name="noExternalStoragePermissionError">Innvilg lagringstilgang til eksternlager for å importere eller eksportere data</string>
<string name="exportOptionExplanation">Data skrives dit du ønsker det.</string>
<string name="importOptionFilesystemTitle">Importer fra filsystem</string>
<string name="importOptionFilesystemExplanation">Velg spesifikk fil fra filsystemet.</string>

View File

@@ -38,7 +38,6 @@
<string name="exportFailed">Het exporteren is mislukt</string>
<string name="importing">Bezig met importeren…</string>
<string name="exporting">Bezig met exporteren…</string>
<string name="noExternalStoragePermissionError">Verleen het recht externe opslag om gegevens te kunnen im- of exporteren</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>
@@ -263,4 +262,6 @@
<string name="updateBalanceHint">Voer een bedrag in</string>
<string name="newBalanceSentence">Nieuw saldo: <xliff:g>%s</xliff:g></string>
<string name="importCards">Kaarten importeren</string>
<string name="storageReadPermissionRequired">Toestemming om de opslag uit te lezen benodigd voor deze actie…</string>
<string name="cameraPermissionRequired">Toestemming om de camera te openen benodigd voor deze actie…</string>
</resources>

View File

@@ -37,7 +37,6 @@
<string name="exportFailed">Nie udało się wyeksportować</string>
<string name="importing">Importowanie…</string>
<string name="exporting">Eksportowanie…</string>
<string name="noExternalStoragePermissionError">Przyznaj uprawnienia pamięci zewnętrznej, aby importować lub eksportować dane</string>
<string name="importOptionFilesystemTitle">Importuj 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>

View File

@@ -72,7 +72,6 @@
<string name="moveUp">Subir</string>
<string name="moveDown">Descer</string>
<string name="leaveWithoutSaveTitle">Sair</string>
<string name="noExternalStoragePermissionError">Conceda primeiro a autorização de acesso ao armazenamento externo para importar ou exportar dados</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>
@@ -270,4 +269,6 @@
<string name="updateBalance">Atualizar saldo</string>
<string name="updateBalanceTitle">Quanto gastou\?</string>
<string name="updateBalanceHint">Introduza o valor</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>
</resources>

View File

@@ -38,7 +38,6 @@
<string name="exportFailed">Nu s-a putut exporta carduri</string>
<string name="importing">Importul…</string>
<string name="exporting">Exportul…</string>
<string name="noExternalStoragePermissionError">Acordați mai întâi permisiunea de stocare externă pentru a importa sau exporta carduri</string>
<string name="exportOptionExplanation">Datele vor fi scrise într-o locație aleasă de dumneavoastră.</string>
<string name="importOptionFilesystemTitle">Import din sistemul de fișiere</string>
<string name="importOptionApplicationTitle">Utilizați o altă aplicație</string>

View File

@@ -38,7 +38,6 @@
<string name="exportFailed">Невозможно выполнить экспорт</string>
<string name="importing">Импорт…</string>
<string name="exporting">Экспорт…</string>
<string name="noExternalStoragePermissionError">Импорт или экспорт данных невозможен без разрешения на доступ к хранилищу</string>
<string name="exportOptionExplanation">Данные будут записаны в выбранное место.</string>
<string name="importOptionFilesystemTitle">Импорт из файловой системы</string>
<string name="importOptionFilesystemExplanation">Выберете файл на файловой системе.</string>
@@ -277,4 +276,6 @@
<string name="updateBalanceHint">Введите сумму</string>
<string name="updateBalanceTitle">Какое изменение\?</string>
<string name="importCards">Импорт карт</string>
<string name="storageReadPermissionRequired">Для этого действия необходимо разрешение на чтение хранилища…</string>
<string name="cameraPermissionRequired">Для этого действия необходимо разрешение на доступ к камере…</string>
</resources>

View File

@@ -32,7 +32,6 @@
<string name="exportFailed">Zlyhal export</string>
<string name="importing">Importujem…</string>
<string name="exporting">Exportujem…</string>
<string name="noExternalStoragePermissionError">Nie je možné importovať a exportovať karty bez prístupu k externému úložisku</string>
<string name="importOptionFilesystemTitle">Import zo súborového systému</string>
<string name="importOptionFilesystemExplanation">Vyberte súbor zo súborového systému.</string>
<string name="importOptionFilesystemButton">Zo súborového systému</string>

View File

@@ -1,8 +1,8 @@
<?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="action_add">Dodaj</string>
<string name="noGiftCards">Trenutno nimate shranjene nobene kartice zvestobe. Kliknite \"+\" (plus) na vrhu, da jih dodate.\n\n Aplikacija Kartice zvestobe Vam omogoča, da imate kartice zvestobe shranjene na Vašem telefonu in vedno v dosegu roke.</string>
<string name="storeName">Shrani</string>
<string name="noGiftCards">Pritisnite gumb + za dodajanje nove kartice ali gumb⋮v meniju za uvoz baze kartic iz datoteke.</string>
<string name="storeName">Ime</string>
<string name="note">Zabeležka</string>
<string name="cardId">Št. kartice</string>
<string name="cancel">Prekliči</string>
@@ -18,35 +18,34 @@
<string name="scanCardBarcode">Skeniraj črtno kodo</string>
<string name="cardShortcut">Bližnjica do kartice</string>
<string name="noCardsMessage">Najprej dodajte kartico</string>
<string name="noStoreError">Ime trgovine ni bilo vnešeno</string>
<string name="noCardIdError">Številka kartice ni bila vnešena</string>
<string name="noCardExistsError">Te kartice zvestobe ni bilo moč najti</string>
<string name="noStoreError">Ime ni bilo vnešeno</string>
<string name="noCardIdError">ID številka kartice ni bila vnešena</string>
<string name="noCardExistsError">Te kartice zvestobe ni bilo mogoče najti</string>
<string name="importExport">Uvozi/izvozi</string>
<string name="exportName">Izvozi</string>
<string name="importExportHelp">Varnostna kopija omogoča varen prenos kartic na druge naprave.</string>
<string name="importExportHelp">Varnostna kopija podatkovne baze kartic zvestobe omogoča prenos baze kartic tudi 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>
<string name="importFailed">Napaka pri uvozu baze</string>
<string name="exportSuccessfulTitle">Izvoz je uspel</string>
<string name="exportFailedTitle">Izvoz ni uspel</string>
<string name="exportFailed">Napaka pri izvozu</string>
<string name="exportFailed">Napaka pri izvozu baze</string>
<string name="importing">Uvažanje…</string>
<string name="exporting">Izvažanje…</string>
<string name="noExternalStoragePermissionError">Izvažanje in uvažanje je nemogoče brez omogočenega dostopa do zunanje shrambe</string>
<string name="importOptionFilesystemTitle">Uvozi iz datotečnega sistema</string>
<string name="importOptionFilesystemExplanation">Izberite specifično datoteko iz datotečnega sistema.</string>
<string name="importOptionFilesystemButton">Iz datotečnega sistema</string>
<string name="importOptionApplicationTitle">Uporabi zunanjo aplikacijo</string>
<string name="importOptionApplicationTitle">Uporabi drugo aplikacijo</string>
<string name="importOptionApplicationExplanation">Uporabi zunanjo aplikacijo, kot npr. Dropbox, Google Drive ali ostale upravljalnike datotek, za odpiranje datoteke.</string>
<string name="importOptionApplicationButton">Uporabi zunanjo aplikacijo</string>
<string name="importOptionApplicationButton">Uporabi drugo aplikacijo</string>
<string name="about">Več o aplikaciji</string>
<string name="app_license">Licencirano s skladu z GPLv3.</string>
<string name="app_license">Odprtokodna programska oprema, licencirana skladno s GPL3+</string>
<string name="about_title_fmt">Več o <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">Verzija: <xliff:g id="version">%s</xliff:g></string>
<string name="app_revision_fmt">Informacije o popravkih: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="selectBarcodeTitle">Izberite črtno kodo</string>
<string name="copy_to_clipboard_toast">Številka kartice je bila kopirana v odložišče</string>
<string name="thumbnailDescription">Ikona kartice</string>
<string name="copy_to_clipboard_toast">ID številka je kopirana v odložišče</string>
<string name="thumbnailDescription">Sličica</string>
<string name="settings">Nastavitve</string>
<string name="settings_category_title_ui">Uporabniški vmesnik</string>
<string name="settings_display_barcode_max_brightness">Povečaj osvetljenost prikaza črtne kode</string>
@@ -54,7 +53,7 @@
<string name="deleteConfirmation">Prosim potrdite, če želite izbrisati to kartico\?</string>
<string name="card">Kartica</string>
<string name="addFromImage">Izberite sliko iz galerije</string>
<string name="addManually">Ročno vnesite št. kartice</string>
<string name="addManually">Ročno vnesite ID kartice</string>
<string name="leaveWithoutSaveConfirmation">Zapustite brez shranjevanja\?</string>
<string name="leaveWithoutSaveTitle">Izhod</string>
<string name="moveDown">Premikanje navzdol</string>
@@ -62,33 +61,34 @@
<string name="failedOpeningFileManager">Najprej namestite upravitelja datotek.</string>
<string name="deleteConfirmationGroup">Brisanje skupine\?</string>
<string name="all">Vse</string>
<string name="noGroupCards">Ta skupina ne vsebuje kartic</string>
<string name="noGroups">Kliknite gumb + plus, če želite najprej dodati skupine za kategorizacijo.</string>
<string name="noGroupCards">Ta skupina je prazna</string>
<string name="noGroups">Pritisnite gumb \"+\", če želite dodati skupine za kategorizacijo.</string>
<string name="groups">Skupine</string>
<string name="enter_group_name">Vnesite ime skupine</string>
<string name="exportSuccessful">Izvoženi podatki o karticah</string>
<string name="importSuccessful">Uvoženi podatki o karticah</string>
<string name="exportSuccessful">Podatkovna baza izvožena</string>
<string name="importSuccessful">Podatkovna baza uvožena</string>
<string name="intent_import_card_from_url_share_text">Z vami želim deliti kartico</string>
<string name="settings_disable_lockscreen_while_viewing_card">Preprečitev zaklepanja zaslona</string>
<string name="settings_disable_lockscreen_while_viewing_card">Prepreči zaklepanje zaslona</string>
<string name="settings_keep_screen_on">Ohranite zaslon vklopljen</string>
<string name="enterBarcodeInstructions">Vnesite ID kartice in spodaj izberite vrsto črtne kode ali \"Ta kartica nima črtne kode\".</string>
<string name="enterBarcodeInstructions">Vnesite ID kartice in spodaj izberite vrsto črtne kode ali izbiro \"Ta kartica nima črtne kode\".</string>
<string name="settings_max_font_size_scale">Največja velikost pisave</string>
<string name="settings_dark_theme">Temno</string>
<string name="settings_light_theme">Svetlo</string>
<string name="settings_system_theme">Sistem</string>
<string name="settings_theme">Tema</string>
<string name="starImage">Zvezdica za priljubljene</string>
<string name="app_copyright_old">Na podlagi aplikacije Loyalty Card Keychain copyright © 2016-2020 Branden Archer.</string>
<string name="app_copyright_old">Bazira na podlagi aplikacije Loyalty Card Keychain
\ncopyright © 2016-2020 Branden Archer</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="card_ids_copied">Kopirana kartica ID(s)</string>
<string name="card_ids_copied">Kopirana ID številka kartice</string>
<string name="share">Delite</string>
<string name="unstar">Odstrani iz priljubljenih</string>
<string name="star">Dodaj med priljubljene</string>
<string name="noBarcode">Brez črtne kode</string>
<string name="barcodeNoBarcode">Ta kartica nima črtne kode</string>
<string name="barcodeNoBarcode">Ni črtne kode</string>
<string name="barcodeType">Vrsta črtne kode</string>
<string name="noMatchingGiftCards">Ničesar nisem našel. Poskusite spremeniti iskanje.</string>
<string name="noMatchingGiftCards">Brez rezultata iskanja. Poskusite spremeniti iskalni niz.</string>
<string name="action_search">Iskanje</string>
<string name="exportPasswordHint">Vnesite geslo</string>
<string name="exportPassword">Izberite geslo za zaščito izvoza (neobvezno)</string>
@@ -105,10 +105,10 @@
<string name="settings_theme_color">Barva teme</string>
<string name="settings_system_locale">Sistem</string>
<string name="settings_locale">Jezik</string>
<string name="barcodeImageDescriptionWithType">Slika črtne kode tipa <xliff:g>%s</xliff:g></string>
<string name="swipeToSwitchImages">Povlecite ali dolgo pritisnite da zamenjate slike</string>
<string name="barcodeImageDescriptionWithType">Slika <xliff:g>%s</xliff:g> črtna koda</string>
<string name="swipeToSwitchImages">Povlecite za zamenjavo slike ali dolgo pritisnite, da odprete sliko v aplikaciji za gledanje slik</string>
<string name="sort_by">Razvrsti po</string>
<string name="reverse">Obratno</string>
<string name="reverse">...v obratnem vrstnem redu</string>
<string name="sort_by_balance">Stanje</string>
<string name="sort_by_expiry">Potek</string>
<string name="sort_by_most_recently_used">Nazadnje uporabljene</string>
@@ -127,7 +127,7 @@
<string name="errorReadingImage">Slike ni bilo mogoče prebrati</string>
<string name="noBarcodeFound">Črtna koda ni bila najdena</string>
<string name="balanceSentence">Stanje: <xliff:g>%s</xliff:g></string>
<string name="chooseImportType">Uvoz iz?</string>
<string name="chooseImportType">Uvozi podatke iz</string>
<string name="importCatima">Izvoz iz aplikacije Catima</string>
<string name="importStocard">Izvoz iz aplikacije Stocard</string>
<string name="importVoucherVault">Izvoz iz aplikacije Voucher Vault</string>
@@ -138,23 +138,142 @@
<string name="accept">Sprejmi</string>
<string name="importLoyaltyCardKeychain">Uvoz iz aplikacije Loyalty Card Keychain</string>
<string name="barcodeId">Vsebina črtne kode</string>
<string name="sameAsCardId">Enaka kot številka kartice</string>
<string name="sameAsCardId">Enaka kot ID kartice</string>
<string name="setBarcodeId">Nastavi vsebino črtne kode</string>
<string name="wrongValueForBarcodeType">Ta vrednost ni veljavna pri izbranem tipu čtne kode</string>
<string name="takePhoto">Naredi fotografijo</string>
<string name="intent_import_card_from_url_share_multiple_text">Z vami želim deliti kartice zvestobe</string>
<string name="copy_to_clipboard_multiple_toast">Številke kartic kopirane v odložišče</string>
<string name="copy_to_clipboard_multiple_toast">ID številke kartic so kopirane v odložišče</string>
<string name="importFidme">Uvoz iz aplikacije FidMe</string>
<string name="no">Ne</string>
<string name="yes">Da</string>
<string name="frontImageDescription">Slika sprednje strani</string>
<string name="backImageDescription">Slika zadnje strani</string>
<string name="frontImageDescription">Prednja stran</string>
<string name="backImageDescription">Zadnja stran</string>
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g> ni veljavno stanje.</string>
<string name="setBackImage">Nastavi sliko sprednje strani</string>
<string name="setFrontImage">Nastavi sliko sprednje strani</string>
<string name="photos">Fotografije</string>
<string name="updateBarcodeQuestionText">Spremenili ste številko kartice. Želite posodobiti tudi črtno kodo na enako vrednost?</string>
<string name="updateBarcodeQuestionText">Spremenili ste ID kartice. Želite posodobiti tudi črtno kodo na enako vrednost\?</string>
<string name="updateBarcodeQuestionTitle">Posodobi črtno kodo?</string>
<string name="removeImage">Odstrani sliko</string>
<string name="unsupportedBarcodeType">Te vrste črtne kode aplikacija ne more prikazati. Morda bo to možno v prihodnosti.</string>
<string name="shortcutSelectCard">Izberite kartico</string>
<string name="starred">Priljubljene</string>
<string name="set_scale">Nastavi velikost</string>
<string name="include_if_asking_support">Ob zahtevani pomoči podpore je potrebno vključiti naslednje informacije:</string>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> točka</item>
<item quantity="two"><xliff:g>%s</xliff:g> točki</item>
<item quantity="few"><xliff:g>%s</xliff:g> točke</item>
<item quantity="other"><xliff:g>%s</xliff:g> točk</item>
</plurals>
<string name="barcode">Črtna koda</string>
<string name="editBarcode">Uredi črtno kodo</string>
<string name="group_edit">Uredi skupino</string>
<string name="never">Nikoli</string>
<string name="importCards">Uvozite kartice</string>
<string name="currentBalanceSentence">Trenutno stanje: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">Novo stanje: <xliff:g>%s</xliff:g></string>
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> izbrana</item>
<item quantity="two"><xliff:g>%d</xliff:g> izbrani</item>
<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 črtne kode</string>
<string name="settings_follow_system_orientation">Sledi sistemu</string>
<string name="settings_portrait_orientation">Podoba</string>
<string name="settings_landscape_orientation">Pokrajina</string>
<string name="settings_lock_on_opening_orientation">Ohrani usmerjenost uporabljeno pri odpiranju kartice</string>
<string name="setIcon">Nastavite ikono</string>
<string name="showMoreInfo">Prikaži informacije</string>
<string name="hideMoreInfo">Skrij informacije</string>
<string name="updateBalance">Posodobi stanje</string>
<string name="failedToRetrieveImageFile">Slikovne datoteke ni bilo mogoče pridobiti</string>
<string name="credits">Zasluge</string>
<string name="action_show_details">Prikaži podrobnosti</string>
<string name="translate_platform">na Weblate-u</string>
<string name="options">Možnosti</string>
<string name="duplicateCard">Podvoji</string>
<string name="archive">Arhiviraj</string>
<string name="unarchive">Odpakiraj arhiv</string>
<string name="archived">Karta arhivirana</string>
<string name="unarchived">Kartica ni arhivirana</string>
<string name="archiveList">Arhiv</string>
<string name="noUnarchivedCardsMessage">Ne obstajajo ne arhivirane kartice</string>
<string name="failedLaunchingPhotoPicker">Ni mogoče najti podprte aplikacije za gledanje slik</string>
<string name="previousCard">Prejšnje</string>
<string name="nextCard">Naslednje</string>
<string name="updateBalanceTitle">Koliko ste porabili\?</string>
<string name="updateBalanceHint">Vpišite vrednost</string>
<string name="group_name_already_in_use">Ime skupine je že uporabljeno</string>
<string name="group_name_is_empty">Ime skupine ne more biti prazno polje</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="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="moveBarcodeToCenterOfScreen">Postavi črtno kodo na sredino 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 izbiro izvozi.</string>
<string name="importStocardMessage">Izberi svoj <i>***-sync.zip</i> Stocard izvoz podatkov za uvoz.
\nIzvoz podatkov dobiš s pošiljanjem elektronske pošte na support@stocardapp.com, kjer povprašaš za izvoz svojih podatkov.</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="failedToOpenUrl">Prvo namestite spletni brskalnik</string>
<string name="welcome">Pozdravljeni v Catimi</string>
<string name="noGiftCardsGroup">Kreiraj kartice in jim dodeli skupino tukaj.</string>
<string name="privacy_policy_popup_text">Obvestilo o politiki zasebnosti (nekatere trgovine aplikacij to zahtevajo):
\n
\nPODATKI SE NE ZBIRAJO, kar se lahko preveri v programski kodi, saj je aplikacija prosta programska oprema.</string>
<plurals name="deleteCardsTitle">
<item quantity="one">Izbriši <xliff:g>%d</xliff:g> kartico zvestobe</item>
<item quantity="two">Izbriši <xliff:g>%d</xliff:g> kartici zvestobe</item>
<item quantity="few">Izbriši <xliff:g>%d</xliff:g> kartice zvestobe</item>
<item quantity="other">Izbriši <xliff:g>%d</xliff:g> kartic zvestobe</item>
</plurals>
<plurals name="deleteCardsConfirmation">
<item quantity="one">Izbriši to <xliff:g>%d</xliff:g> kartico zvestobe dokončno\?</item>
<item quantity="two">Izbriši ti dve <xliff:g>%d</xliff:g> kartici zvestobe dokončno\?</item>
<item quantity="few">Izbriši te <xliff:g>%d</xliff:g> kartice zvestobe dokončno\?</item>
<item quantity="other">Izbriši teh <xliff:g>%d</xliff:g> kartic zvestobe dokončno\?</item>
</plurals>
<string name="cameraPermissionDeniedTitle">Ni bilo mogoče dostopati do kamere</string>
<string name="noCameraPermissionDirectToSystemSetting">Catima potrebuje dostop do vaše kamere za skeniranje črtnih kod. Pritisnite tukaj in spremenite nastavitve dovoljenj.</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019<xliff:g>%d</xliff:g> Sylvia van Os</string>
<plurals name="groupCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> kartica</item>
<item quantity="two"><xliff:g>%d</xliff:g> kartici</item>
<item quantity="few"><xliff:g>%d</xliff:g> kartice</item>
<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> Loyalty Card Keychain izvoz podatkov za uvoz.
\nLoyalty Card Keychain 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 prijavite napako.</string>
<string name="settings_oled_dark">Čisto črno ozadje za temno temo</string>
<string name="selectColor">Izberite barvo</string>
<string name="settings_catima_theme">Catima</string>
<string name="app_contributors">Omogočeno od: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="barcodeLongPressMessage">V aplikaciji za gledanje slik lahko odpremo samo slike</string>
<string name="action_hide_details">Skrij podrobnosti</string>
<plurals name="groupCardCountWithArchived">
<item quantity="one"><xliff:g>%1$d</xliff:g> kartica (<xliff:g id="archivedCount">%2$d</xliff:g> arhivirana)</item>
<item quantity="two"><xliff:g>%1$d</xliff:g> kartici (<xliff:g id="archivedCount">%2$d</xliff:g> arhivirani)</item>
<item quantity="few"><xliff:g>%1$d</xliff:g> kartice (<xliff:g id="archivedCount">%2$d</xliff:g> arhivirane)</item>
<item quantity="other"><xliff:g>%1$d</xliff:g> kartic (<xliff:g id="archivedCount">%2$d</xliff:g> arhiviranih)</item>
</plurals>
<plurals name="viewArchivedCardsWithCount">
<item quantity="one">Poglej arhiv (<xliff:g>%1$d</xliff:g> kartice)</item>
<item quantity="two">Poglej arhiv (<xliff:g>%1$d</xliff:g> kartic)</item>
<item quantity="few">Poglej arhiv (<xliff:g>%1$d</xliff:g> kartic)</item>
<item quantity="other">Poglej arhiv (<xliff:g>%1$d</xliff:g> kartic)</item>
</plurals>
</resources>

View File

@@ -171,7 +171,6 @@
<string name="note">Anteckning</string>
<string name="settings_system_locale">System</string>
<string name="settings_locale">Språk</string>
<string name="noExternalStoragePermissionError">Bevilja tillstånd för extern lagring för att kunna importera eller exportera data</string>
<string name="app_contributors">Möjliggjordes av: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="settings_brown_theme">Brunt</string>
<string name="settings_grey_theme">Grått</string>

View File

@@ -128,7 +128,6 @@
<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="noExternalStoragePermissionError">Verileri içeri veya dışarı aktarmak için harici depolama izni verin</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>
@@ -263,4 +262,6 @@
<string name="cameraPermissionDeniedTitle">Kameraya erişilemedi</string>
<string name="updateBalance">Bakiyeyi güncelle</string>
<string name="importCards">Kartları içe aktar</string>
<string name="storageReadPermissionRequired">Bu eylem için depolama alanını okuma izni gerekiyor…</string>
<string name="cameraPermissionRequired">Bu eylem için kameraya erişim izni gerekiyor…</string>
</resources>

View File

@@ -2,7 +2,7 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
<string name="privacy_policy_popup_text">Політика конфіденційності (вимагається деякими магазинами):
\n
\nЖОДНОЇ ІНФОРМАЦІЇ НЕ ЗБИРАЄТЬСЯ, що може підтвердити будь-хто, адже наша програма це вільне програмне забезпечення.</string>
\nЖОДНОЇ ІНФОРМАЦІЇ НЕ ЗБИРАЄТЬСЯ, що може підтвердити будь-хто, адже наш застосунок це вільне програмне забезпечення.</string>
<string name="noGiftCards">Натисніть кнопку +, щоб додати картку, або ⋮ для імпорту з меню.</string>
<string name="settings_display_barcode_max_brightness">Яскравіший штрих-код</string>
<string name="enterBarcodeInstructions">Введіть ID та оберіть тип штрих-коду чи \"Не має штрих-коду\".</string>
@@ -22,7 +22,7 @@
<string name="updateBarcodeQuestionText">Ви змінили ID. Чи ви бажаєте оновити штрих-код для використання цього ж значення\?</string>
<string name="updateBarcodeQuestionTitle">Оновити значення штрих-коду\?</string>
<string name="wrongValueForBarcodeType">Значення не дійсне для обраного типу штрих-коду</string>
<string name="unsupportedBarcodeType">Цей тип штрих-коду поки що не відображається. Підтримку може бути додано в подальших версіях програми.</string>
<string name="unsupportedBarcodeType">Цей тип штрих-коду поки що не відображається. Підтримку може бути додано в подальших версіях застосунку.</string>
<string name="setBarcodeId">Встановіть значення штрих-коду</string>
<string name="sameAsCardId">Таке ж як ID</string>
<string name="barcodeId">Значення штрих-коду</string>
@@ -99,14 +99,13 @@
\nавторські права © 20162020 Branden Archer</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Авторські права © 2019<xliff:g>%d</xliff:g> Sylvia van Os</string>
<string name="about">Про програму</string>
<string name="importOptionApplicationButton">Вибір програми</string>
<string name="importOptionApplicationExplanation">Використайте іншу програму чи ваш улюблений файл-менеджер для відкриття файлу.</string>
<string name="importOptionApplicationTitle">З іншої програми</string>
<string name="importOptionApplicationButton">Використовувати інший застосунок</string>
<string name="importOptionApplicationExplanation">Використайте інший застосунок чи ваш улюблений файл-менеджер для відкриття файлу.</string>
<string name="importOptionApplicationTitle">З іншого застосунку</string>
<string name="importOptionFilesystemButton">Обрати файл</string>
<string name="importOptionFilesystemExplanation">Оберіть файл у провіднику.</string>
<string name="importOptionFilesystemTitle">Імпорт з файлу</string>
<string name="exportOptionExplanation">Дані буде записано до локації обраної вами.</string>
<string name="noExternalStoragePermissionError">Надайте дозвіл на доступ до пам\'яті пристрою для імпорту/експорту даних</string>
<string name="exporting">Експортуємо…</string>
<string name="importing">Імпортуємо…</string>
<string name="exportFailed">Неможливо здійснити експорт</string>
@@ -160,7 +159,7 @@
<string name="importStocard">Імпорт із Stocard</string>
<plurals name="selectedCardCount">
<item quantity="one">Обрано: <xliff:g>%d</xliff:g></item>
<item quantity="few">Обрано: <xliff:g>%d</xliff:g></item>
<item quantity="few">Обрані: <xliff:g>%d</xliff:g></item>
<item quantity="many">Обрано: <xliff:g>%d</xliff:g></item>
<item quantity="other">Обрано: <xliff:g>%d</xliff:g></item>
</plurals>
@@ -202,13 +201,13 @@
<string name="sort_by_name">Назва</string>
<string name="sort">Сортувати</string>
<string name="version_history">Історія версій</string>
<string name="help_translate_this_app">Допомогти з перекладом програми</string>
<string name="help_translate_this_app">Допомогти з перекладом застосунку</string>
<string name="license">Ліцензія</string>
<string name="source_repository">Початковий код</string>
<string name="on_github">на GitHub</string>
<string name="and_data_usage">та використання даних</string>
<string name="credits">Подяки</string>
<string name="rate_this_app">Оцінити програму</string>
<string name="rate_this_app">Оцінити застосунок</string>
<string name="on_google_play">у Google Play</string>
<string name="report_error">Повідомити про помилку</string>
<string name="exportPassword">Встановіть пароль для захисту експорту (необов\'язково)</string>
@@ -256,7 +255,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>
<plurals name="viewArchivedCardsWithCount">
@@ -277,4 +276,6 @@
<string name="cameraPermissionDeniedTitle">Не вдалося отримати доступ до камери</string>
<string name="noCameraPermissionDirectToSystemSetting">Для сканування штрих-кодів програмі Catima потрібен доступ до вашої камери. Натисніть тут, щоб змінити дозволи.</string>
<string name="updateBalance">Оновити баланс</string>
<string name="storageReadPermissionRequired">Дозвіл на читання сховища, необхідний для цієї дії…</string>
<string name="cameraPermissionRequired">Дозвіл на доступ до камери, необхідний для цієї дії…</string>
</resources>

View File

@@ -40,7 +40,7 @@
\n
\n本应用没有收集任何数据任何人都可以查阅源码来确认因为本软件是自由软件。</string>
<string name="privacy_policy">隐私政策</string>
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
<string name="app_loyalty_card_keychain">会员卡卡包</string>
<string name="chooseImportType">数据导入源</string>
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g>似乎不是有效的余额。</string>
<string name="points">积分</string>
@@ -94,7 +94,6 @@
<string name="importOptionFilesystemExplanation">请从文件系统选择文件.</string>
<string name="importOptionFilesystemTitle">从文件系统导入</string>
<string name="exportOptionExplanation">导出的数据将储存至你选择的位置.</string>
<string name="noExternalStoragePermissionError">在导入导出前需要获得外部储存权限</string>
<string name="cameraPermissionDeniedTitle">无法访问相机</string>
<string name="noCameraPermissionDirectToSystemSetting">Catima需要访问您的相机来扫描条形码. 轻触这里以更改您的权限设置。</string>
<string name="exporting">导出中…</string>

View File

@@ -161,7 +161,6 @@
<string name="scanCardBarcode">掃描條碼</string>
<string name="noStoreError">尚未輸入卡片名稱</string>
<string name="importExportHelp">備份您的資料以將其轉移至其他裝置中。</string>
<string name="noExternalStoragePermissionError">在匯入及匯出資料前,請先允許外部儲存裝置存取權限</string>
<string name="importOptionFilesystemTitle">自檔案系統中匯入</string>
<string name="importOptionFilesystemExplanation">自檔案系統中選取檔案。</string>
<string name="importOptionFilesystemButton">自檔案系統</string>

View File

@@ -65,7 +65,8 @@
<string name="exportFailed">Could not perform export</string>
<string name="importing">Importing…</string>
<string name="exporting">Exporting…</string>
<string name="noExternalStoragePermissionError">Grant external storage permission to import or export data</string>
<string name="storageReadPermissionRequired">Permission to read storage needed for this action…</string>
<string name="cameraPermissionRequired">Permission to access camera needed for this action…</string>
<string name="cameraPermissionDeniedTitle">Could not access the camera</string>
<string name="noCameraPermissionDirectToSystemSetting">To scan barcodes, Catima will need access to your camera. Tap here to change your permission settings.</string>
<string name="exportOptionExplanation">The data will be written to a location of your choice.</string>

51
build.sh Executable file
View File

@@ -0,0 +1,51 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
### build.sh
### Builds Catima the same way F-Droid does for reproducible builds
if [ -z "${ANDROID_SDK_ROOT:-}" ]; then
echo "ANDROID_SDK_ROOT is not set, setting to $HOME/Android/Sdk";
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
fi
if [ -z "${JAVA_HOME:-}" ]; then
echo "JAVA_HOME is not set, setting to Java 11 (like F-Droid)"
if [ -f "/etc/debian_version" ]; then
echo "Debian-based distro, Java 11 is /usr/lib/jvm/java-11-openjdk-amd64"
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
else
echo "Not Debian-based, assuming Fedora and setting Java 11 as /usr/lib/jvm/java-11-openjdk"
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
fi
fi
echo "Starting build"
./gradlew clean assembleRelease
echo "Build finished (unsigned)"
echo "Your build is at app/build/outputs/apk/release/app-release-unsigned.apk"
if [ -z "${KEYSTORE:-}" ]; then
echo "KEYSTORE not set, skipping signing..."
else
if [ -z "${KEYSTORE_ALIAS:-}" ]; then
echo "KEYSTORE_ALIAS is not set, setting to catima"
KEYSTORE_ALIAS=catima
fi
apksigner_version="$(ls -1 "$HOME/Android/Sdk/build-tools/" | tail -n 1)"
cp app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/app-release.apk
"$HOME/Android/Sdk/build-tools/$apksigner_version/apksigner" sign -v --ks "$KEYSTORE" --ks-key-alias "$KEYSTORE_ALIAS" app/build/outputs/apk/release/app-release.apk
echo "Build finished (signed)"
echo "Your build is at app/build/outputs/apk/release/app-release.apk"
fi
pushd app/build/outputs/apk/release/
sha256sum -- *.apk > SHA256SUMS
popd
echo "SHA256SUMS generated"
echo "Your SHA256SUMS is at app/build/outputs/apk/release/SHA256SUMS"

View File

@@ -5,7 +5,7 @@ Copylefted libre software (GPLv3+) card management app.
[![GitHub Version](https://img.shields.io/github/v/release/TheLastProject/Catima.svg?logo=github&label=GitHub)](https://github.com/TheLastProject/Catima/releases)
[![F-Droid Version](https://img.shields.io/f-droid/v/me.hackerchick.catima.svg?logo=f-droid&label=F-Droid)](https://f-droid.org/packages/me.hackerchick.catima/)
[![IzzyOnDroid Version](https://img.shields.io/endpoint?url=https://apt.izzysoft.de/fdroid/api/v1/shield/me.hackerchick.catima)](https://apt.izzysoft.de/fdroid/index/apk/me.hackerchick.catima)
[![Google Play Store Version](https://img.shields.io/endpoint?color=blue&logo=google-play&url=https%3A%2F%2Fplayshields.herokuapp.com%2Fplay%3Fi%3Dme.hackerchick.catima%26l%3DGoogle%2520Play%26m%3D%24version)](https://play.google.com/store/apps/details?id=me.hackerchick.catima)
[![Google Play Store Version](https://img.shields.io/endpoint?color=blue&logo=google-play&url=https%3A%2F%2Fplay.cuzi.workers.dev%2Fplay%3Fi%3Dme.hackerchick.catima%26l%3DGoogle%2520Play%26m%3D%24version)](https://play.google.com/store/apps/details?id=me.hackerchick.catima)
![Android CI](https://github.com/TheLastProject/Catima/workflows/Android%20CI/badge.svg)
[![Translation status](https://hosted.weblate.org/widgets/catima/-/svg-badge.svg)](https://hosted.weblate.org/engage/catima/)
@@ -18,7 +18,7 @@ Copylefted libre software (GPLv3+) card management app.
<a href="https://play.google.com/store/apps/details?id=me.hackerchick.catima" target="_blank">
<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="90"/></a>
![Logo](https://github.com/TheLastProject/Catima/raw/master/app/src/main/ic_launcher-playstore.png)
![Logo](https://github.com/TheLastProject/Catima/raw/main/app/src/main/ic_launcher-playstore.png)
*Logo by [Rose (TangentFoxy)](http://github.com/TangentFoxy)*
@@ -42,14 +42,14 @@ Supported barcodes:
# Screenshots
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-01.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-01.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-02.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-02.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-03.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-03.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-04.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-04.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-05.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-05.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-06.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-06.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-07.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-07.png)
[<img src="https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-08.png" width=250>](https://github.com/TheLastProject/Catima/raw/master/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-08.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-01.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-01.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-02.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-02.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-03.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-03.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-04.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-04.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-05.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-05.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-06.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-06.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-07.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-07.png)
[<img src="https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-08.png" width=250>](https://github.com/TheLastProject/Catima/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot-08.png)
# Moving data from other apps
@@ -58,17 +58,16 @@ For FidMe you need to select the barcode type for each entry afterwards.
# Building
Use the Gradle wrapper scripts provided in the top level directory of the project.
To compile the app and run all unit tests:
Building can either be done through Android Studio (not reproducible!) or the build.sh script in this repository (reproducibly with Java 11, same way F-Droid builds it). This script can also sign the build.
Linux|GNU, Unix-like, macOS:
Build without signing:
```
./gradlew build
./build.sh
```
Windows:
Build with signing:
```
./gradlew.bat build
KEYSTORE=/path/to/keystore KEYSTORE_ALIAS=catima ./build.sh
```
# Translating

View File

@@ -0,0 +1,2 @@
- Odstranění nepotřebných oprávnění
- Cíl Android 13

View File

@@ -0,0 +1,2 @@
- Remove unnecessary permissions
- Target Android 13

View File

@@ -0,0 +1,3 @@
- Corregir cropper no utilizar el color del tema
- Corregir problemas menores de tematización
- Añadir tema oscuro negro puro para pantallas OLED

View File

@@ -0,0 +1,2 @@
- Varias correcciones menores
- Corrección del fallo al utilizar la traducción al noruego

View File

@@ -0,0 +1,2 @@
- Corrección de la selección manual de idioma que no se aplica en todas partes
- Corregir el bloqueo en la vista de edición en la configuración regional sin región

View File

@@ -0,0 +1,2 @@
- Guardar el estado de ampliación de los detalles de las tarjetas
- Correcciones menores de la interfaz de usuario

View File

@@ -0,0 +1,2 @@
- Fijar el bloque gris que aparece en el valor no válido para el código de barras
- Corrección de la importación de Stocard

View File

@@ -0,0 +1 @@
- Corregir algunas secuencias de caracteres que se muestran como un solo carácter

View File

@@ -0,0 +1 @@
- Correcciones a la importación de Stocard

View File

@@ -0,0 +1,5 @@
- Agregada la función para duplicar los mapas
- No permitir elegir la fecha del vencimiento antes de 1970 (nunca funcionó de todos modos)
- Agregado el soporte para archivar los mapas
- Mover eliminar de editar a ver
- Eliminar del ícono de bloqueo de rotación a favor de una nueva configuración de bloqueo de rotación

View File

@@ -1 +1,4 @@
- Premendo a lungo l'immagine si apre nella galleria
- Applicazione dello stile Material ai dialoghi
- Supporto alla creazione delle carte condividendo un'immagine con Catima
- Aggiunta di un bottone rapido alla schermata della carta

View File

@@ -0,0 +1 @@
Catima — Lo pòrtacartas

View File

@@ -0,0 +1,2 @@
- Corrigir caixa de diálogo de gastos rápidos não permitir o separador ,
- Suporte a carregar imagem do gestor de ficheiros

View File

@@ -0,0 +1,2 @@
- Remover permissões desnecessárias
- Versão Android 13

View File

@@ -0,0 +1,2 @@
- Skrijte, iščite, razširite in razvrstite ikone, dokler ne ostane vsaj ena kartica
- Različni popravki tematike

View File

@@ -0,0 +1,3 @@
- Popravki obrezovalnika zaradi neupoštevanja barve teme
- Odpravite manjše težave s temami
- Dodajanje temne teme v čisto črni barvi za zaslone OLED

View File

@@ -0,0 +1,2 @@
- Različni manjši popravki
- Popravki sesutja pri uporabi norveškega prevoda

View File

@@ -0,0 +1,2 @@
- Popravek pri ročni izbiri jezika - ta izbira se ne uveljavlja povsod
- Popravek sesutja v pogledu urejanja na lokalnem brezpodročnem okolju

View File

@@ -0,0 +1,2 @@
- Shrani podrobnosti razširitvenega stanja kartice
- Manjši popravki uporabniškega vmesnika

View File

@@ -0,0 +1,2 @@
- Popravek pojave sivega bloka na neveljavni vrednosti črtne kode
- Popravki uvoza podatkov Stocard

View File

@@ -0,0 +1 @@
- Popravek nekaterih zaporedij znakov, ki se prikažejo kot en sam znak

View File

@@ -0,0 +1 @@
- Popravki uvoza iz datoteke Stocard

View File

@@ -0,0 +1,5 @@
- Dodana funkcija podvajanja kartic
- Ne dovoli izbire poteka pred letom 1970 (itak niso nikoli delovale)
- Dodana podpora za arhiviranje kartic
- Premakni "brisanje iz urejanja" v pogled
- Odstranite ikono zaklepanja vrtenja v korist nove nastavitve zaklepanja vrtenja

View File

@@ -0,0 +1 @@
- Popravki prikaza nepravilne barve besedila na gumbu "Brez črtne kode"

View File

@@ -0,0 +1 @@
- Možnost nastavitve boljše vidnosti za glavo po meri

View File

@@ -0,0 +1 @@
- Preprečitev sesutja po vrtenju zaslona ob prvem zagonu uvoda čarovnika.

View File

@@ -0,0 +1,3 @@
- Italijanski prevod
- Podpora za vse vrste črtnih kod 1D. (Prvotno so bile podprte samo 1D črtne kode izdelkov)
- Dodano dovoljenje za uporabo kamere, ki je sprva manjkalo.

View File

@@ -0,0 +1 @@
- Odprava napake zrušitve med namestitvijo na nekaterih različicah Androida (najverjetneje Android 5 in starejše). (pull #184 (https://github.com/brarcher/loyalty-card-locker/pull/184))

View File

@@ -0,0 +1,2 @@
- Izboljšana postavitev seznama krtic. (pull #188 (https://github.com/brarcher/loyalty-card-locker/pull/188))
- Izboljšana postavitev pri ogledu kartice. (pull #190 (https://github.com/brarcher/loyalty-card-locker/pull/190))

View File

@@ -0,0 +1 @@
- Spremembe v pogledu "Ogled kartice" pri prikazu opombe. Prikaz ID-ja kartice sedaj zaseda več vrstic. Prikazano je tudi ime trgovine. (pull #197 (https://github.com/brarcher/loyalty-card-locker/pull/197))

View File

@@ -0,0 +1 @@
- Popravek napake prosojnosti ozadja spodnjega lista

View File

@@ -0,0 +1,3 @@
- Samodejno izostri besedilno polje pri ustvarjanju ali urejanju skupine
- Popravek zamegljenih ikon (SVG se naj uporablja vsepovsod)
- Kamera se sedaj vedno odpre vendar je dodan gumb za ročno skeniranje v pogled kamere

View File

@@ -0,0 +1 @@
- Popravek gumba za urejanje oziroma več informacij na spodnjem listu risbe preko ID-ja črtne kode

View File

@@ -0,0 +1,4 @@
- Podpora novemu izvozu PDF417 iz Vaucher Vault
- Podpora za kopiranje več črtnih kod hkrati
- Podpora za deljenje več kartic zvestobe naenkrat
- Zahteva za posodobitev vrednosti črtne kode, če se ID kartice spremeni

View File

@@ -0,0 +1,4 @@
- Večkratni pritisk na gumb za shranjevanje zdaj ne ustvari več vnosov
- Zmanjšanje glave kartice pri skrivanju podrobnosti za še več kartic
- Prestrukturiran zaslon za urejanje
- Izboljšan kontrast zvezdnih ikon v glavnem pogledu

View File

@@ -0,0 +1 @@
- Različni popravki napak TalkBack

View File

@@ -0,0 +1 @@
- Material, ki ga preoblikujete

View File

@@ -0,0 +1 @@
Uporabno za vaše črtne kode, članstva, programe zvestobe, kupone in vstopnice.

View File

@@ -0,0 +1 @@
Catima — kartice zvestobe

View File

@@ -0,0 +1,2 @@
- Виправлено баг коли вікно швидких витрат не дозволяло , як роздільник
- Підтримка завантаження зображення з файлового менеджера

View File

@@ -1,12 +1,11 @@
- КРИТИЧНІ ЗМІНИ формату резервної копії та поширення за допомогою URL.
- Підтримка:
UPC-E
Фотографій аверсу та реверсу для кожної картки
Імпорту захищених паролем zip-файлів
Імпорту зі Stocard (бета)
Нового формату експорту Voucher Vault
- Виправлено:
Зайві пробіли в нотатках з імпорту Fidme
Верхній край панелі екрану перегляду даних картки
Перекривання плаваючих кнопок інтерфейсом Android 4
- Керування ліхтариком під час сканування
- ЗМІНА формату резервної копії https://github.com/TheLastProject/Catima/wiki/Export-format
- ЗМІНА формату поширення за URL https://github.com/TheLastProject/Catima/wiki/Card-sharing-URL-format
- Контроль ліхтаря при скануванні
- UPC-E
- Підтримка фото обох сторін картки
- Імпорт zip-файлів з паролем
- Імпорт зі Stocard (бета)
- Нотатки Fidme без подвійних пробілів
- Підтримка нового формату експорту Voucher Vault
- Плаваючі кнопки працюють на Android 4
- Полагодили верхню панель перегляду карт