mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-24 15:47:53 -05:00
Compare commits
693 Commits
v2.28.0
...
create-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3b02d775c | ||
|
|
a83b01b0f4 | ||
|
|
4be1d76869 | ||
|
|
15a6924894 | ||
|
|
fdeef6504c | ||
|
|
00ce3466fd | ||
|
|
ee3013499d | ||
|
|
0f966d036b | ||
|
|
2c09e625fb | ||
|
|
8908796b44 | ||
|
|
a01fd67565 | ||
|
|
07fe173487 | ||
|
|
e9e63e66a5 | ||
|
|
6cbfb6dd48 | ||
|
|
e1f4c0a1ca | ||
|
|
5a6b912037 | ||
|
|
996324829d | ||
|
|
e6e556f9af | ||
|
|
0318b99aa7 | ||
|
|
bb79ba3ca5 | ||
|
|
57679fdc40 | ||
|
|
01c80d1f8b | ||
|
|
76d69219f8 | ||
|
|
1b0761a36d | ||
|
|
b519507600 | ||
|
|
cdb7077b91 | ||
|
|
55639e3cf2 | ||
|
|
088ee5dc34 | ||
|
|
20d8374edc | ||
|
|
265b90251d | ||
|
|
49d833eee7 | ||
|
|
98f4e0dd7f | ||
|
|
4ec1a947bc | ||
|
|
dfe825ebec | ||
|
|
4f24e0a2dc | ||
|
|
ed57ab52c8 | ||
|
|
0d3c3c5e35 | ||
|
|
333acb7911 | ||
|
|
056b363b7b | ||
|
|
693e89c635 | ||
|
|
d95a7f7982 | ||
|
|
2f72fee1aa | ||
|
|
59ffa6c357 | ||
|
|
1eea1b4402 | ||
|
|
c936d0df49 | ||
|
|
41dd6b2b69 | ||
|
|
524ef19991 | ||
|
|
3312f7db8c | ||
|
|
49ea6e39cf | ||
|
|
4c15ddc35c | ||
|
|
1a7c8f088d | ||
|
|
1d6af0c540 | ||
|
|
261130aa6f | ||
|
|
98526fcd0b | ||
|
|
64d1e70d33 | ||
|
|
71473f3804 | ||
|
|
f360ee172f | ||
|
|
4940f32fbf | ||
|
|
b025af8d07 | ||
|
|
6418ab7cbe | ||
|
|
30edf0efcf | ||
|
|
37b02b13fa | ||
|
|
05453e92ea | ||
|
|
4c3b830788 | ||
|
|
0c706f2e5b | ||
|
|
5ebe02fb89 | ||
|
|
3b8bf99e79 | ||
|
|
916c3d4db8 | ||
|
|
b1e89424dc | ||
|
|
9d2af821d1 | ||
|
|
e9eee27932 | ||
|
|
4d23dce932 | ||
|
|
7277097d59 | ||
|
|
d6bc1f407b | ||
|
|
f002c83cbd | ||
|
|
afcd63805b | ||
|
|
f5cca4f3fb | ||
|
|
ad2048a72c | ||
|
|
e1ceb8b6af | ||
|
|
a3ce7ba3ad | ||
|
|
41f3845f63 | ||
|
|
86434d3919 | ||
|
|
75efd9a733 | ||
|
|
f5b691d68b | ||
|
|
e9bf7bb547 | ||
|
|
c6b726eb63 | ||
|
|
42638e3df6 | ||
|
|
33a3c7645e | ||
|
|
86a0a8d19a | ||
|
|
a1da4a7ef3 | ||
|
|
ecfb7bb188 | ||
|
|
bf2047e1d6 | ||
|
|
09dc0e4c15 | ||
|
|
eed5bcda30 | ||
|
|
d35c9887f6 | ||
|
|
7eb98c9d4b | ||
|
|
bc0d89573e | ||
|
|
67c8fc7dbd | ||
|
|
d472948201 | ||
|
|
3d44f6000d | ||
|
|
9b2d001c3c | ||
|
|
74ae9ee040 | ||
|
|
d1e455f038 | ||
|
|
7d49fa98e7 | ||
|
|
db59441d11 | ||
|
|
5da8afeb7d | ||
|
|
7575d7f271 | ||
|
|
7830502987 | ||
|
|
a3decdf9ad | ||
|
|
051ece8358 | ||
|
|
92da7fc877 | ||
|
|
727d9ce781 | ||
|
|
94cee771bd | ||
|
|
73db115f02 | ||
|
|
c8aab06d77 | ||
|
|
be80003860 | ||
|
|
639c024e7e | ||
|
|
8dc1e9f6b5 | ||
|
|
a2a4d9ac16 | ||
|
|
60de179f74 | ||
|
|
518f384b99 | ||
|
|
a83598676b | ||
|
|
59ddfe1d05 | ||
|
|
d6def93b4e | ||
|
|
65d95f4616 | ||
|
|
b858f5dc01 | ||
|
|
648dbe7031 | ||
|
|
7b57c73d2a | ||
|
|
9c2ec91100 | ||
|
|
c5769d5a81 | ||
|
|
d3d5f62801 | ||
|
|
bf8146d509 | ||
|
|
fad5e7e238 | ||
|
|
af79b22f71 | ||
|
|
a31afef298 | ||
|
|
6096876894 | ||
|
|
0fe3d79103 | ||
|
|
8b0ae9d61a | ||
|
|
4489b46200 | ||
|
|
1240e8e353 | ||
|
|
74fa400237 | ||
|
|
cc7fe900d2 | ||
|
|
aab416e62b | ||
|
|
d924c292bc | ||
|
|
a251fbfcc6 | ||
|
|
5bea05ee15 | ||
|
|
21c7eee893 | ||
|
|
c9a5e12352 | ||
|
|
956140c6db | ||
|
|
fde0b3e412 | ||
|
|
2e8ba7a185 | ||
|
|
cc27988681 | ||
|
|
590af0c276 | ||
|
|
32fe6b2f77 | ||
|
|
9f5607016d | ||
|
|
2e6ecdf02d | ||
|
|
ef6cb69fb0 | ||
|
|
71504af6b2 | ||
|
|
a3ca084444 | ||
|
|
35082be6cd | ||
|
|
934ddb1bfe | ||
|
|
5d0a1d8fb2 | ||
|
|
1c8c492400 | ||
|
|
186db1d419 | ||
|
|
b596628f81 | ||
|
|
74aad20d6b | ||
|
|
e7a50901ea | ||
|
|
b7fa0dc70c | ||
|
|
c19dc78f3e | ||
|
|
c7639f0a02 | ||
|
|
ad984b2ec4 | ||
|
|
baa0378fa2 | ||
|
|
9f422dc5ac | ||
|
|
3ab28d8270 | ||
|
|
f63950ff3c | ||
|
|
b4dd713dab | ||
|
|
80e4701d41 | ||
|
|
7c7a05f1f8 | ||
|
|
6e57d4711a | ||
|
|
626c4c956e | ||
|
|
522ae07942 | ||
|
|
e5b7f723d2 | ||
|
|
1c8830f59c | ||
|
|
ad25cf9c9e | ||
|
|
c4c63e5ddc | ||
|
|
443c858700 | ||
|
|
c19b80f991 | ||
|
|
f3ee88b43c | ||
|
|
1ac6ee6c59 | ||
|
|
3f4da811ca | ||
|
|
598a9dd2da | ||
|
|
7a7a81d5c4 | ||
|
|
2730d157d8 | ||
|
|
55519e487d | ||
|
|
55fb14b6df | ||
|
|
6b8fdd9c5c | ||
|
|
94b15220ea | ||
|
|
bbb3be736e | ||
|
|
0355dc6cf3 | ||
|
|
287918372a | ||
|
|
6597ec1b6e | ||
|
|
3184db27d1 | ||
|
|
99434e69a7 | ||
|
|
cb0997a0b1 | ||
|
|
6fa2c71bd3 | ||
|
|
2f66317190 | ||
|
|
c718d27a4c | ||
|
|
cadb92c4ef | ||
|
|
16d66f6c90 | ||
|
|
5c157888af | ||
|
|
a556899881 | ||
|
|
3ed6ad8b11 | ||
|
|
a06887e663 | ||
|
|
ef9757df75 | ||
|
|
03811f1f39 | ||
|
|
c1801ae450 | ||
|
|
24ee045dcf | ||
|
|
06c0ddf6ae | ||
|
|
e22a7c3063 | ||
|
|
b91dcc8e27 | ||
|
|
496ba82835 | ||
|
|
410518e677 | ||
|
|
7cafebab7d | ||
|
|
429e22cc5e | ||
|
|
1edc17fb7e | ||
|
|
dd3cf771bd | ||
|
|
eebb5e5cd4 | ||
|
|
46fc2aab55 | ||
|
|
b765560fff | ||
|
|
6a3dd841b0 | ||
|
|
1b899a40a5 | ||
|
|
a05769c42d | ||
|
|
2c2ff2d1d2 | ||
|
|
045363f138 | ||
|
|
6860e1deb0 | ||
|
|
469ed374ad | ||
|
|
d952f194be | ||
|
|
ccbf4afd44 | ||
|
|
2b1a950204 | ||
|
|
e930ee8efd | ||
|
|
d469e50985 | ||
|
|
39ba630479 | ||
|
|
074f84818d | ||
|
|
dd645a761d | ||
|
|
a12125e26d | ||
|
|
67e82c5d8f | ||
|
|
52b30cf988 | ||
|
|
ccfdc5f3b5 | ||
|
|
339d002529 | ||
|
|
5afe0bdc59 | ||
|
|
59d3a74206 | ||
|
|
58d3d29fbe | ||
|
|
c340544886 | ||
|
|
c137e6178a | ||
|
|
98f1fd42f6 | ||
|
|
f344a3b125 | ||
|
|
24bdffdce8 | ||
|
|
853f4aabfc | ||
|
|
439cd870e5 | ||
|
|
ab47a769ea | ||
|
|
b73b6584c2 | ||
|
|
06f4fb29b4 | ||
|
|
3d19acd434 | ||
|
|
40dd882857 | ||
|
|
029f49078e | ||
|
|
d5f19877f2 | ||
|
|
9679b0746b | ||
|
|
55209cbca5 | ||
|
|
63d7ea9b06 | ||
|
|
1062d9a302 | ||
|
|
30b2243d1e | ||
|
|
9f755c2939 | ||
|
|
375f6d9117 | ||
|
|
1e3b6f197d | ||
|
|
9cf21f9d75 | ||
|
|
033168cc8d | ||
|
|
e698240a91 | ||
|
|
83df2a3262 | ||
|
|
9dce540451 | ||
|
|
b8f683a335 | ||
|
|
9781d9bbd9 | ||
|
|
43f81c5368 | ||
|
|
c702d1523c | ||
|
|
4def250361 | ||
|
|
c34455db3c | ||
|
|
e252d80de9 | ||
|
|
60cf1dbf23 | ||
|
|
5839a6b2c5 | ||
|
|
c0da6a3176 | ||
|
|
85d5316d1f | ||
|
|
cb9493eb6e | ||
|
|
cfb473df8c | ||
|
|
2ff395f5ef | ||
|
|
73fa270fce | ||
|
|
552d49ea7b | ||
|
|
f1f6dea5e7 | ||
|
|
a677b004b3 | ||
|
|
fd34f59ff9 | ||
|
|
0c09707744 | ||
|
|
142da5b0b6 | ||
|
|
80b72c1984 | ||
|
|
e9f87684af | ||
|
|
5fb2f546b0 | ||
|
|
c234444026 | ||
|
|
eda9dfaa10 | ||
|
|
4f13827ae0 | ||
|
|
47b076b41d | ||
|
|
1e40241219 | ||
|
|
796f4c918d | ||
|
|
ae6ce7f443 | ||
|
|
95189ce5ce | ||
|
|
8de78406d5 | ||
|
|
ea253313d5 | ||
|
|
c3413c4340 | ||
|
|
d22e6ca984 | ||
|
|
9b8ab86219 | ||
|
|
8a9c603725 | ||
|
|
8f4da1b601 | ||
|
|
ce917be59d | ||
|
|
1b1d8788df | ||
|
|
c126bff23c | ||
|
|
64355e0ddc | ||
|
|
510b7a0e56 | ||
|
|
12da47d34a | ||
|
|
3dca6c1db2 | ||
|
|
29aec92a7a | ||
|
|
c373c1f9dd | ||
|
|
cba7c77fa2 | ||
|
|
80e3db0b2d | ||
|
|
4452336aa0 | ||
|
|
d0710a16b6 | ||
|
|
38f603cc0d | ||
|
|
5a6652c864 | ||
|
|
59ed3e3fba | ||
|
|
870720ad4b | ||
|
|
7d7d5280c5 | ||
|
|
a93ee4bbff | ||
|
|
d9b719103a | ||
|
|
c65f488536 | ||
|
|
3c11817edb | ||
|
|
8a5dac9c24 | ||
|
|
968729fbe6 | ||
|
|
8a8d5c65f2 | ||
|
|
80e05a0392 | ||
|
|
2374e998ee | ||
|
|
48b6b83fba | ||
|
|
6eac516d01 | ||
|
|
f1d42ccc77 | ||
|
|
68ebf3243f | ||
|
|
f8a93ed5f2 | ||
|
|
ce14cd0447 | ||
|
|
ee5ac2785d | ||
|
|
1c68bfea8d | ||
|
|
a097264983 | ||
|
|
19d5c1144e | ||
|
|
c123dd5d42 | ||
|
|
3fe0fec801 | ||
|
|
245ff6ade9 | ||
|
|
353cf1daad | ||
|
|
2e5dbd5cc1 | ||
|
|
7d6ce95998 | ||
|
|
dca9816fbe | ||
|
|
a5eee0a3b1 | ||
|
|
5d0b890de9 | ||
|
|
7c6492965f | ||
|
|
5f5280e2a6 | ||
|
|
220d6cb993 | ||
|
|
5f33807560 | ||
|
|
6d64a900f0 | ||
|
|
3550c2a9f7 | ||
|
|
0bdda70761 | ||
|
|
01debf1a09 | ||
|
|
76df487661 | ||
|
|
73a129b430 | ||
|
|
71afba8ab9 | ||
|
|
c0b01fca35 | ||
|
|
7158de8b81 | ||
|
|
c1afefb712 | ||
|
|
d924029a5a | ||
|
|
f5d104fa68 | ||
|
|
1c0c1c6efc | ||
|
|
4d4e449150 | ||
|
|
900f92cbd6 | ||
|
|
48aab74737 | ||
|
|
427aa039d6 | ||
|
|
91909e2ce3 | ||
|
|
967f20edc7 | ||
|
|
61d2e9545e | ||
|
|
b1ea40abeb | ||
|
|
b898be199c | ||
|
|
e82b61ed7e | ||
|
|
31aef55343 | ||
|
|
3da7797ecc | ||
|
|
b677a34942 | ||
|
|
8275a0da69 | ||
|
|
cc86506868 | ||
|
|
83ee75dc55 | ||
|
|
a8d92c1e69 | ||
|
|
ccf98f9b32 | ||
|
|
6c17498481 | ||
|
|
ce9794f72f | ||
|
|
a48ddeef7f | ||
|
|
864298cee8 | ||
|
|
63b48685a6 | ||
|
|
37d4c2c552 | ||
|
|
0515f7876b | ||
|
|
9e801f0f1c | ||
|
|
c7a8d6ddae | ||
|
|
0f828b5663 | ||
|
|
3f28a69d7d | ||
|
|
8980d92263 | ||
|
|
dd7512cc62 | ||
|
|
3005f7d845 | ||
|
|
cbbd90a884 | ||
|
|
883803d348 | ||
|
|
56b73ef7e2 | ||
|
|
b1c98d33e5 | ||
|
|
4a4feea1be | ||
|
|
ea015b531a | ||
|
|
5b8c40dd8a | ||
|
|
4859499179 | ||
|
|
0e6cdbbb6b | ||
|
|
cc8c8ead2e | ||
|
|
2b6a4ef466 | ||
|
|
a3b9d78463 | ||
|
|
7873d21644 | ||
|
|
2ad1b08de2 | ||
|
|
4fae252d0a | ||
|
|
f89179da21 | ||
|
|
b4e63f89ce | ||
|
|
ff872edc4b | ||
|
|
013258d421 | ||
|
|
15575e4189 | ||
|
|
3c051cde95 | ||
|
|
5d2a173e22 | ||
|
|
a2032ab730 | ||
|
|
9e4d8b846c | ||
|
|
7e8dd2dc2e | ||
|
|
b73d0f1836 | ||
|
|
b478e54ec0 | ||
|
|
cf8c6b8c24 | ||
|
|
d64294284a | ||
|
|
098468e6bd | ||
|
|
cebc87a197 | ||
|
|
0d3ceb0e61 | ||
|
|
e017b07337 | ||
|
|
c4ec81f22b | ||
|
|
c597df056d | ||
|
|
5517b418ac | ||
|
|
81e7642bb8 | ||
|
|
17718d5349 | ||
|
|
f5ef97fa30 | ||
|
|
30c6657148 | ||
|
|
2b173dc7f6 | ||
|
|
cd48a28b5a | ||
|
|
b7ad5f1f42 | ||
|
|
9bf6795328 | ||
|
|
4364189b3e | ||
|
|
40676a365f | ||
|
|
97314a0436 | ||
|
|
d1b93018e3 | ||
|
|
a6b7b227f7 | ||
|
|
1c6a5454b8 | ||
|
|
06745becd7 | ||
|
|
c172a12956 | ||
|
|
c6f18fb7b2 | ||
|
|
dc3fabbbb9 | ||
|
|
905402ebab | ||
|
|
fbed0d7857 | ||
|
|
cc74395297 | ||
|
|
560c55d5db | ||
|
|
a45c972a38 | ||
|
|
51c1af5ad9 | ||
|
|
d537164799 | ||
|
|
012910268b | ||
|
|
74d9068925 | ||
|
|
5d68f558a1 | ||
|
|
2164c1a51a | ||
|
|
5f180fc289 | ||
|
|
5be44d9bd2 | ||
|
|
54c9857072 | ||
|
|
c48ac797f6 | ||
|
|
9180d22629 | ||
|
|
aa0274534c | ||
|
|
c97b37f279 | ||
|
|
14c12533a7 | ||
|
|
39f50bad30 | ||
|
|
014061d0a4 | ||
|
|
76c498a7f9 | ||
|
|
fa9229c687 | ||
|
|
182e7ef9a6 | ||
|
|
08e6600880 | ||
|
|
edeb95aee0 | ||
|
|
4b1d1f4541 | ||
|
|
801d3fa8cd | ||
|
|
d15a46fc6f | ||
|
|
7f46a267b6 | ||
|
|
195cb8d5ee | ||
|
|
7454a965bc | ||
|
|
9ef988c259 | ||
|
|
7a2ff0995f | ||
|
|
9b65d3926b | ||
|
|
06b3536079 | ||
|
|
315396fd42 | ||
|
|
b90c43f667 | ||
|
|
6d97a29e9c | ||
|
|
7f0e2acab9 | ||
|
|
be35886c92 | ||
|
|
73ad9c5365 | ||
|
|
818751ffad | ||
|
|
d5856e7974 | ||
|
|
2caf3d42f4 | ||
|
|
e766743baa | ||
|
|
facb23f0a5 | ||
|
|
a2dff0e6bf | ||
|
|
60c53ec1d1 | ||
|
|
e3c903f773 | ||
|
|
955764aa18 | ||
|
|
ed22aa844f | ||
|
|
6b8fc50021 | ||
|
|
1aed5c36b1 | ||
|
|
4690f53be7 | ||
|
|
29a22926aa | ||
|
|
a4da8144c3 | ||
|
|
84bfa304c4 | ||
|
|
72749015dd | ||
|
|
ae5d656a64 | ||
|
|
d8f2cde9de | ||
|
|
935a4ae46e | ||
|
|
ffecec9cba | ||
|
|
734845eff0 | ||
|
|
bd6b18eea2 | ||
|
|
6473bfe84e | ||
|
|
66fff2d3d9 | ||
|
|
ef1b470f0a | ||
|
|
b087d49530 | ||
|
|
cd46cd3f8d | ||
|
|
c44133942a | ||
|
|
24e40f41a5 | ||
|
|
43b90587a5 | ||
|
|
f5b2516492 | ||
|
|
5bec40eb59 | ||
|
|
6b1cccfdf8 | ||
|
|
ddf28d7542 | ||
|
|
9cf69a3128 | ||
|
|
8dc62def08 | ||
|
|
ac8b898ccc | ||
|
|
97e675e476 | ||
|
|
4b488ce1f7 | ||
|
|
7f5fe8831a | ||
|
|
f7ff63301b | ||
|
|
9bb1602370 | ||
|
|
40da1d2e16 | ||
|
|
8dd61d026c | ||
|
|
4d0464f729 | ||
|
|
e0f1410c8b | ||
|
|
2bf7698961 | ||
|
|
0654a2baef | ||
|
|
0e785b2ccf | ||
|
|
46088a48f9 | ||
|
|
82acaef96f | ||
|
|
8556f4d586 | ||
|
|
e8308b1069 | ||
|
|
6516d18cc2 | ||
|
|
6dd0105908 | ||
|
|
3e27b931b5 | ||
|
|
73046e56e5 | ||
|
|
84c350af90 | ||
|
|
30bd8d810f | ||
|
|
d67b17c58a | ||
|
|
5033fbba50 | ||
|
|
5e752ecfb4 | ||
|
|
e976bf3ef6 | ||
|
|
24ae8d3c4c | ||
|
|
26fb9482aa | ||
|
|
1a3019b94f | ||
|
|
67136b708f | ||
|
|
07990cea6f | ||
|
|
a92895f96e | ||
|
|
861df94e69 | ||
|
|
5efd18dac7 | ||
|
|
77fcc8cd7e | ||
|
|
b5e53eb076 | ||
|
|
39fe0a17b8 | ||
|
|
524278a94c | ||
|
|
8d3f36d62c | ||
|
|
459b318fdf | ||
|
|
68e7930835 | ||
|
|
947b3f79be | ||
|
|
8070e5564b | ||
|
|
443a67581e | ||
|
|
60aaff9f38 | ||
|
|
0464e3dbfe | ||
|
|
6f892e5174 | ||
|
|
187cbb7d67 | ||
|
|
b114b6da81 | ||
|
|
1228d55fcb | ||
|
|
b5c17c9776 | ||
|
|
27ee52b5c0 | ||
|
|
ccbbd2555a | ||
|
|
d78b7b2fee | ||
|
|
047639a36e | ||
|
|
86b5007ba5 | ||
|
|
4879aab701 | ||
|
|
da49b651b8 | ||
|
|
c2e9c0eebc | ||
|
|
9ed6bc921d | ||
|
|
d78ecf17e2 | ||
|
|
8aeddf1141 | ||
|
|
31924276d3 | ||
|
|
3321b11e2a | ||
|
|
920379c5af | ||
|
|
598a4345f0 | ||
|
|
ff8013ed44 | ||
|
|
20b69b4286 | ||
|
|
60165bad5c | ||
|
|
149f7ff106 | ||
|
|
ac699a1c76 | ||
|
|
a43c480e0c | ||
|
|
6eda7791c6 | ||
|
|
7dc0bf027a | ||
|
|
c218518805 | ||
|
|
0505c51ee8 | ||
|
|
f29da33bcf | ||
|
|
5f8e3069b3 | ||
|
|
8d7abddace | ||
|
|
39fe61f57e | ||
|
|
176f7a0cc8 | ||
|
|
e9ec9889d4 | ||
|
|
0a161bdf55 | ||
|
|
e817f190b6 | ||
|
|
f88a96cd4f | ||
|
|
7cf47935e0 | ||
|
|
f2844003e8 | ||
|
|
9702fd6ce5 | ||
|
|
577c3f2990 | ||
|
|
bf9216168b | ||
|
|
95dc2f1235 | ||
|
|
84503253d2 | ||
|
|
5fd48c6707 | ||
|
|
335668c03a | ||
|
|
cba4b6856c | ||
|
|
c345c6cdd1 | ||
|
|
a1e214e657 | ||
|
|
ff1654b3f7 | ||
|
|
12e24abdd6 | ||
|
|
33a9d7fbcf | ||
|
|
bdff59e628 | ||
|
|
c1ef5c346a | ||
|
|
a573db1be9 | ||
|
|
84e3e37a44 | ||
|
|
f5724dfca0 | ||
|
|
f848710afa | ||
|
|
1e0dc4f541 | ||
|
|
470bbf4261 | ||
|
|
8519e12aa7 | ||
|
|
026bfaf7a9 | ||
|
|
4d4e76960f | ||
|
|
3637c37cca | ||
|
|
a5ed6caa5a | ||
|
|
1429abd94d | ||
|
|
0e873b9ea5 | ||
|
|
cbc8886241 | ||
|
|
6c7bfb4c50 | ||
|
|
6ed5e52890 | ||
|
|
bc1bd88d75 | ||
|
|
09e1201086 | ||
|
|
df829a4956 | ||
|
|
46dc163e06 | ||
|
|
e70b2bdbbd | ||
|
|
c1f8e930bb | ||
|
|
c8dd1d8509 | ||
|
|
e50adc39c5 | ||
|
|
09948b6a21 | ||
|
|
f50e80d24d | ||
|
|
777512aad7 | ||
|
|
423fd272d4 | ||
|
|
969256f130 | ||
|
|
702d4af8d9 | ||
|
|
02696c1328 | ||
|
|
dcffdf3329 | ||
|
|
4110b5ab48 | ||
|
|
dea96069b0 | ||
|
|
04c5cb08f1 | ||
|
|
b37f8943c7 | ||
|
|
54d4f8b70b | ||
|
|
658cc43f86 | ||
|
|
958abe5ed7 | ||
|
|
fa99c2ef7c | ||
|
|
2b38f474fd | ||
|
|
5643814e65 | ||
|
|
59b588b797 | ||
|
|
757321930d |
22
.github/workflows/android.yml
vendored
22
.github/workflows/android.yml
vendored
@@ -28,11 +28,14 @@ env:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
api-level: [ 21, 34 ]
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Fail on bad translations
|
||||
run: if grep -ri "<xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
|
||||
- uses: gradle/wrapper-validation-action@v2
|
||||
- uses: gradle/actions/wrapper-validation@v4
|
||||
- name: set up OpenJDK 17
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -44,11 +47,22 @@ jobs:
|
||||
run: ./gradlew lintRelease
|
||||
- name: Run unit tests
|
||||
run: timeout 5m ./gradlew testReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew testReleaseUnitTest; }
|
||||
- name: Enable KVM
|
||||
run: |
|
||||
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger --name-match=kvm
|
||||
- name: Run instrumented tests
|
||||
uses: ReactiveCircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86_64
|
||||
script: ./gradlew connectedCheck
|
||||
- name: SpotBugs
|
||||
run: ./gradlew spotbugsRelease
|
||||
- name: Archive test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4.3.1
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
with:
|
||||
name: test-results
|
||||
name: test-results-api${{ matrix.api-level }}
|
||||
path: app/build/reports
|
||||
|
||||
6
.github/workflows/changelog-to-fastlane.yml
vendored
6
.github/workflows/changelog-to-fastlane.yml
vendored
@@ -27,15 +27,15 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
id: checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5.0.0
|
||||
uses: actions/setup-python@v5.3.0
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Run converter script
|
||||
run: python .scripts/changelog_to_fastlane.py
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.0.1
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update Fastlane changelogs"
|
||||
commit-message: "Update Fastlane changelogs"
|
||||
|
||||
4
.github/workflows/contributors-to-file.yml
vendored
4
.github/workflows/contributors-to-file.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
id: checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Update contributors
|
||||
id: update_contributors
|
||||
uses: TheLastProject/contributors-to-file-action@v3.2.0
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
file_in_repo: app/src/main/res/raw/contributors.txt
|
||||
min_commit_count: 5
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.0.1
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update contributors"
|
||||
commit-message: "Update contributors"
|
||||
|
||||
@@ -6,6 +6,7 @@ on:
|
||||
- main
|
||||
paths:
|
||||
- 'fastlane/**/title.txt'
|
||||
- '.scripts/generate_feature_graphic/**'
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
@@ -24,7 +25,7 @@ jobs:
|
||||
generate-feature-graphic:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Install requirements
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -38,7 +39,7 @@ jobs:
|
||||
- name: Generate featureGraphic.png for each language
|
||||
run: .scripts/generate_feature_graphic/generate_feature_graphic.sh
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.0.1
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update feature graphic"
|
||||
commit-message: "Update feature graphic"
|
||||
|
||||
8
.github/workflows/gradle-update.yml
vendored
8
.github/workflows/gradle-update.yml
vendored
@@ -21,12 +21,12 @@ jobs:
|
||||
gradle-update:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: obfusk/gradle-update-action@v2.0.0
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- uses: obfusk/gradle-update-action@v3.0.0
|
||||
id: gradle-update
|
||||
- uses: gradle/wrapper-validation-action@v2
|
||||
- uses: gradle/actions/wrapper-validation@v4
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.0.1
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
|
||||
commit-message: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
|
||||
|
||||
4
.github/workflows/update-locales.yml
vendored
4
.github/workflows/update-locales.yml
vendored
@@ -25,13 +25,13 @@ jobs:
|
||||
update-locales:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Add new locales
|
||||
run: .scripts/new-locales.py
|
||||
- name: Update locales
|
||||
run: .scripts/locales.py
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.0.1
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update locales"
|
||||
commit-message: "Update locales"
|
||||
|
||||
@@ -4,6 +4,11 @@ set -euo pipefail
|
||||
script_location="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
for lang in "$script_location/../../fastlane/metadata/android/"*; do
|
||||
# Skip languages without title.txt
|
||||
if [ ! -f "$lang/title.txt" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
pushd "$lang"
|
||||
# Place temporary copy for editing if needed
|
||||
cp "$script_location/featureGraphic.svg" featureGraphic.svg
|
||||
@@ -34,8 +39,8 @@ for lang in "$script_location/../../fastlane/metadata/android/"*; do
|
||||
bg|el-GR|ru-RU|uk) sed -i "s/Lexend Deca/Noto Serif/" featureGraphic.svg ;;
|
||||
hi-IN) sed -i -e "s/Yesteryear/Noto Serif Devanagari/" -e "s/Lexend Deca/Noto Serif Devanagari/" featureGraphic.svg ;;
|
||||
ja-JP) sed -i "s/Lexend Deca/Noto Serif CJK JP/" featureGraphic.svg ;;
|
||||
kn-IN) sed -i -e 's/font-size="150"/font-size="100"/' -e "s/Yesteryear/Noto Serif Kannada/" featureGraphic.svg ;;
|
||||
ko) sed -i "s/Lexend Deca/Noto Serif CJK KR/" featureGraphic.svg ;;
|
||||
kn-IN) sed -i -e 's/font-size="150"/font-size="100"/' -e 's/y="285.511"/y="235.511"/' featureGraphic.svg ;;
|
||||
zh-CN) sed -i "s/Lexend Deca/Noto Serif CJK SC/" featureGraphic.svg ;;
|
||||
zh-TW) sed -i "s/Lexend Deca/Noto Serif CJK TC/" featureGraphic.svg ;;
|
||||
*) ;;
|
||||
|
||||
@@ -24,7 +24,7 @@ sed = [
|
||||
]
|
||||
subprocess.run(sed, check=True)
|
||||
|
||||
with open("app/src/main/res/xml/locales_config.xml", "w") as fh:
|
||||
with open("app/src/main/res/xml/locales_config.xml", "w", encoding="utf-8") as fh:
|
||||
fh.write('<?xml version="1.0" encoding="utf-8"?>\n')
|
||||
fh.write('<locale-config xmlns:android="http://schemas.android.com/apk/res/android">\n')
|
||||
fh.write(' <locale android:name="en-US" />\n')
|
||||
|
||||
@@ -19,15 +19,27 @@ REPLACE_CODES = {
|
||||
STATS_URL = "https://hosted.weblate.org/api/components/catima/catima/statistics/"
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def get_weblate_langs() -> List[Tuple[str, int]]:
|
||||
r = requests.get(STATS_URL, timeout=5)
|
||||
r.raise_for_status()
|
||||
url = STATS_URL
|
||||
results = []
|
||||
for lang in r.json()["results"]:
|
||||
if lang["code"] != "en":
|
||||
code = REPLACE_CODES.get(lang["code"], lang["code"]).replace("_", "-r")
|
||||
results.append((code, round(lang["translated_percent"])))
|
||||
return sorted(results)
|
||||
for _ in range(16): # avoid endless loops just in case
|
||||
r = requests.get(url, timeout=5)
|
||||
r.raise_for_status()
|
||||
data = r.json()
|
||||
for lang in data["results"]:
|
||||
if lang["code"] != "en":
|
||||
code = REPLACE_CODES.get(lang["code"], lang["code"]).replace("_", "-r")
|
||||
results.append((code, round(lang["translated_percent"])))
|
||||
url = data["next"]
|
||||
if not url:
|
||||
return sorted(results)
|
||||
if not url.split("?")[0] == STATS_URL:
|
||||
raise Error(f"Unexpected next URL: {url}")
|
||||
raise Error("Too many pages")
|
||||
|
||||
|
||||
def get_dir_langs() -> List[str]:
|
||||
@@ -42,7 +54,7 @@ def get_dir_langs() -> List[str]:
|
||||
def get_xml_langs() -> List[Tuple[str, bool]]:
|
||||
results = []
|
||||
in_section = False
|
||||
with open("app/src/main/res/values/settings.xml") as fh:
|
||||
with open("app/src/main/res/values/settings.xml", encoding="utf-8") as fh:
|
||||
for line in fh:
|
||||
if not in_section and 'name="locale_values"' in line:
|
||||
in_section = True
|
||||
@@ -59,7 +71,7 @@ def get_xml_langs() -> List[Tuple[str, bool]]:
|
||||
def update_xml_langs(langs: List[Tuple[str, bool]]) -> None:
|
||||
lines: List[str] = []
|
||||
in_section = False
|
||||
with open("app/src/main/res/values/settings.xml") as fh:
|
||||
with open("app/src/main/res/values/settings.xml", encoding="utf-8") as fh:
|
||||
for line in fh:
|
||||
if not in_section and 'name="locale_values"' in line:
|
||||
in_section = True
|
||||
@@ -70,7 +82,7 @@ def update_xml_langs(langs: List[Tuple[str, bool]]) -> None:
|
||||
else:
|
||||
continue
|
||||
lines.append(line)
|
||||
with open("app/src/main/res/values/settings.xml", "w") as fh:
|
||||
with open("app/src/main/res/values/settings.xml", "w", encoding="utf-8") as fh:
|
||||
for line in lines:
|
||||
fh.write(line)
|
||||
|
||||
|
||||
38
CHANGELOG.md
38
CHANGELOG.md
@@ -1,5 +1,43 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased - 140
|
||||
|
||||
- Fix text wrapping on add dialog
|
||||
|
||||
## v2.32.0 - 139 (2024-10-28)
|
||||
|
||||
- Option to navigate cards using the volume buttons
|
||||
- Fix Stocard import
|
||||
- Fix "Import cancelled" message appearing after successful import
|
||||
|
||||
## v2.31.1 - 138 (2024-08-24)
|
||||
|
||||
- Fix back gesture on main screen dismissing keyboard and search on Android 13+
|
||||
|
||||
## v2.31.0 - 137 (2024-07-26)
|
||||
|
||||
- Allow long store names in preview to split over multiple lines
|
||||
- Option to use front of back image in thumbnail menu
|
||||
- Minor import/export fixes
|
||||
- Minor UI fixes
|
||||
|
||||
## v2.30.0 - 136 (2024-06-18)
|
||||
|
||||
- Support for creating a card when sharing plain text
|
||||
- Display image type instead of barcode below images
|
||||
- Fix possible crash when trying to import a backup from the Nextcloud app
|
||||
- Improved support for devices without camera
|
||||
|
||||
## v2.29.1 - 135 (2024-05-19)
|
||||
|
||||
- Various fixes and improvements to balance handling
|
||||
|
||||
## v2.29.0 - 134 (2024-04-19)
|
||||
|
||||
- Support for scanning PDF files for barcodes
|
||||
- Support for image files with multiple barcodes
|
||||
- Minor UI fixes
|
||||
|
||||
## v2.28.0 - 133 (2024-03-08)
|
||||
|
||||
- Target Android 14
|
||||
|
||||
77
Gemfile.lock
77
Gemfile.lock
@@ -1,29 +1,32 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.6)
|
||||
CFPropertyList (3.0.7)
|
||||
base64
|
||||
nkf
|
||||
rexml
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
artifactory (3.0.15)
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.884.0)
|
||||
aws-sdk-core (3.191.0)
|
||||
aws-partitions (1.958.0)
|
||||
aws-sdk-core (3.201.3)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.8)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.77.0)
|
||||
aws-sdk-core (~> 3, >= 3.191.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.143.0)
|
||||
aws-sdk-core (~> 3, >= 3.191.0)
|
||||
aws-sdk-kms (1.88.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.156.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.8)
|
||||
aws-sigv4 (1.8.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.9.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
claide (1.1.0)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
@@ -35,7 +38,7 @@ GEM
|
||||
domain_name (0.6.20240107)
|
||||
dotenv (2.8.1)
|
||||
emoji_regex (3.2.3)
|
||||
excon (0.109.0)
|
||||
excon (0.111.0)
|
||||
faraday (1.10.3)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
@@ -57,22 +60,22 @@ GEM
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.4)
|
||||
multipart-post (~> 2)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http (1.0.2)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.3.0)
|
||||
fastlane (2.219.0)
|
||||
fastimage (2.3.1)
|
||||
fastlane (2.222.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
aws-sdk-s3 (~> 1.0)
|
||||
babosa (>= 1.0.3, < 2.0.0)
|
||||
bundler (>= 1.12.0, < 3.0.0)
|
||||
colored
|
||||
colored (~> 1.2)
|
||||
commander (~> 4.6)
|
||||
dotenv (>= 2.1.1, < 3.0.0)
|
||||
emoji_regex (>= 0.1, < 4.0)
|
||||
@@ -93,10 +96,10 @@ GEM
|
||||
mini_magick (>= 4.9.4, < 5.0.0)
|
||||
multipart-post (>= 2.0.0, < 3.0.0)
|
||||
naturally (~> 2.2)
|
||||
optparse (>= 0.1.1)
|
||||
optparse (>= 0.1.1, < 1.0.0)
|
||||
plist (>= 3.1.0, < 4.0.0)
|
||||
rubyzip (>= 2.0.0, < 3.0.0)
|
||||
security (= 0.1.3)
|
||||
security (= 0.1.5)
|
||||
simctl (~> 1.6.3)
|
||||
terminal-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-table (~> 3)
|
||||
@@ -105,7 +108,7 @@ GEM
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.54.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
@@ -123,12 +126,12 @@ GEM
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.31.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.6.1)
|
||||
google-cloud-core (1.7.0)
|
||||
google-cloud-env (>= 1.0, < 3.a)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.3.1)
|
||||
google-cloud-errors (1.4.0)
|
||||
google-cloud-storage (1.47.0)
|
||||
addressable (~> 2.8)
|
||||
digest-crc (~> 0.4)
|
||||
@@ -144,34 +147,37 @@ GEM
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.5)
|
||||
http-cookie (1.0.6)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.6.2)
|
||||
json (2.7.1)
|
||||
jwt (2.7.1)
|
||||
mini_magick (4.12.0)
|
||||
json (2.7.2)
|
||||
jwt (2.8.2)
|
||||
base64
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.3.0)
|
||||
multipart-post (2.4.1)
|
||||
nanaimo (0.3.0)
|
||||
naturally (2.2.1)
|
||||
optparse (0.4.0)
|
||||
nkf (0.2.0)
|
||||
optparse (0.5.0)
|
||||
os (1.1.4)
|
||||
plist (3.7.1)
|
||||
public_suffix (5.0.4)
|
||||
rake (13.1.0)
|
||||
public_suffix (6.0.1)
|
||||
rake (13.2.1)
|
||||
representable (3.2.0)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.6)
|
||||
rexml (3.2.9)
|
||||
strscan
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
security (0.1.3)
|
||||
signet (0.18.0)
|
||||
security (0.1.5)
|
||||
signet (0.19.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.5, < 3.a)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
@@ -179,6 +185,7 @@ GEM
|
||||
simctl (1.6.10)
|
||||
CFPropertyList
|
||||
naturally
|
||||
strscan (3.1.0)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
@@ -209,4 +216,4 @@ DEPENDENCIES
|
||||
fastlane
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.26
|
||||
2.5.11
|
||||
|
||||
@@ -21,13 +21,15 @@ android {
|
||||
applicationId = "me.hackerchick.catima"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 133
|
||||
versionName = "2.28.0"
|
||||
versionCode = 139
|
||||
versionName = "2.32.0"
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
multiDexEnabled = true
|
||||
|
||||
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "fi", "fr", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
|
||||
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -87,14 +89,14 @@ android {
|
||||
dependencies {
|
||||
|
||||
// AndroidX
|
||||
implementation("androidx.appcompat:appcompat:1.6.1")
|
||||
implementation("androidx.appcompat:appcompat:1.7.0")
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
||||
implementation("androidx.exifinterface:exifinterface:1.3.7")
|
||||
implementation("androidx.palette:palette:1.0.0")
|
||||
implementation("androidx.preference:preference:1.2.1")
|
||||
implementation("com.google.android.material:material:1.11.0")
|
||||
implementation("com.github.yalantis:ucrop:2.2.8")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
|
||||
implementation("com.google.android.material:material:1.12.0")
|
||||
implementation("com.github.yalantis:ucrop:2.2.9")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.2")
|
||||
|
||||
// Splash Screen
|
||||
implementation("androidx.core:core-splashscreen:1.0.1")
|
||||
@@ -110,9 +112,18 @@ dependencies {
|
||||
implementation("io.wcm.tooling.spotbugs:io.wcm.tooling.spotbugs.annotations:1.0.0")
|
||||
|
||||
// Testing
|
||||
testImplementation("androidx.test:core:1.5.0")
|
||||
testImplementation("junit:junit:4.13.2")
|
||||
testImplementation("org.robolectric:robolectric:4.11.1")
|
||||
val androidXTestVersion = "1.6.1"
|
||||
val junitVersion = "4.13.2"
|
||||
testImplementation("androidx.test:core:$androidXTestVersion")
|
||||
testImplementation("junit:junit:$junitVersion")
|
||||
testImplementation("org.robolectric:robolectric:4.13")
|
||||
|
||||
androidTestImplementation("androidx.test:core:$androidXTestVersion")
|
||||
androidTestImplementation("junit:junit:$junitVersion")
|
||||
androidTestImplementation("androidx.test.ext:junit:1.2.1")
|
||||
androidTestImplementation("androidx.test:runner:$androidXTestVersion")
|
||||
androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
|
||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
|
||||
}
|
||||
|
||||
tasks.withType<SpotBugsTask>().configureEach {
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import static androidx.test.espresso.Espresso.onView;
|
||||
import static androidx.test.espresso.action.ViewActions.click;
|
||||
import static androidx.test.espresso.action.ViewActions.typeText;
|
||||
import static androidx.test.espresso.assertion.ViewAssertions.matches;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withChild;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withText;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.test.core.app.ActivityScenario;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
import androidx.test.uiautomator.UiDevice;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class MainActivitySearchViewTest {
|
||||
|
||||
@Test
|
||||
public void whenSearchViewIsExpandedAndBackIsPressedThenMenuItemShouldNotBeCollapsed() {
|
||||
String query = "random arbitrary text";
|
||||
try (ActivityScenario<MainActivity> mainActivityScenario = ActivityScenario.launch(MainActivity.class)) {
|
||||
mainActivityScenario.onActivity(this::makeSearchMenuItemVisible);
|
||||
onView(withId(R.id.action_search)).perform(click());
|
||||
onView(withId(androidx.appcompat.R.id.search_src_text)).perform(typeText(query));
|
||||
|
||||
pressBack();
|
||||
|
||||
onView(withId(androidx.appcompat.R.id.search_src_text)).check(matches(withText(query)));
|
||||
mainActivityScenario.onActivity(activity -> assertEquals(query, activity.mFilter));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenSearchViewIsExpandedThenItShouldOnlyBeCollapsedWhenBackIsPressedTwice() {
|
||||
try (ActivityScenario<MainActivity> mainActivityScenario = ActivityScenario.launch(MainActivity.class)) {
|
||||
mainActivityScenario.onActivity(this::makeSearchMenuItemVisible);
|
||||
onView(withId(R.id.action_search)).perform(click());
|
||||
|
||||
pressBack();
|
||||
|
||||
onView(withId(androidx.appcompat.R.id.search_src_text)).check(matches(isDisplayed()));
|
||||
|
||||
pressBack();
|
||||
|
||||
onView(withId(android.R.id.content)).check(matches(is(not(withChild(withId(androidx.appcompat.R.id.search_src_text))))));
|
||||
}
|
||||
}
|
||||
|
||||
private void makeSearchMenuItemVisible(MainActivity activity) {
|
||||
Toolbar toolbar = activity.findViewById(R.id.toolbar);
|
||||
toolbar.getMenu().findItem(R.id.action_search).setVisible(true);
|
||||
}
|
||||
|
||||
private void pressBack() {
|
||||
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).pressBack();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">تصحيح Catima</string>
|
||||
</resources>
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">Αποσφαλμάτωση Catima</string>
|
||||
</resources>
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">Catima Debug</string>
|
||||
</resources>
|
||||
4
app/src/debug/res/values-et/strings.xml
Normal file
4
app/src/debug/res/values-et/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Catima Debug</string>
|
||||
</resources>
|
||||
4
app/src/debug/res/values-pt-rBR/strings.xml
Normal file
4
app/src/debug/res/values-pt-rBR/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Depuração do Catima</string>
|
||||
</resources>
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">Catima Debug</string>
|
||||
</resources>
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">Catima 除錯版</string>
|
||||
</resources>
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera"
|
||||
android:required="true" />
|
||||
android:required="false" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera.autofocus"
|
||||
android:required="false" />
|
||||
@@ -43,7 +43,9 @@
|
||||
<action android:name="android.intent.action.SEND" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:mimeType="text/plain" />
|
||||
<data android:mimeType="image/*" />
|
||||
<data android:mimeType="application/pdf" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
@@ -181,7 +183,8 @@
|
||||
android:resource="@xml/file_provider_paths" />
|
||||
</provider>
|
||||
<service android:name=".CardsOnPowerScreenService" android:label="@string/app_name"
|
||||
android:permission="android.permission.BIND_CONTROLS" android:exported="true">
|
||||
android:permission="android.permission.BIND_CONTROLS" android:exported="true"
|
||||
tools:targetApi="r">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.controls.ControlsProviderService" />
|
||||
</intent-filter>
|
||||
|
||||
@@ -71,7 +71,7 @@ public class BarcodeSelectorActivity extends CatimaAppCompatActivity implements
|
||||
});
|
||||
|
||||
final Bundle b = getIntent().getExtras();
|
||||
final String initialCardId = b != null ? b.getString("initialCardId") : null;
|
||||
final String initialCardId = b != null ? b.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID) : null;
|
||||
|
||||
if (initialCardId != null) {
|
||||
cardId.setText(initialCardId);
|
||||
|
||||
@@ -1,15 +1,23 @@
|
||||
package protect.card_locker;
|
||||
|
||||
public class BarcodeValues {
|
||||
private final String mFormat;
|
||||
private final String mContent;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
public BarcodeValues(String format, String content) {
|
||||
public class BarcodeValues {
|
||||
@Nullable
|
||||
private final CatimaBarcode mFormat;
|
||||
private final String mContent;
|
||||
private String mNote;
|
||||
|
||||
public BarcodeValues(@Nullable CatimaBarcode format, String content) {
|
||||
mFormat = format;
|
||||
mContent = content;
|
||||
}
|
||||
|
||||
public String format() {
|
||||
public void setNote(String note) {
|
||||
mNote = note;
|
||||
}
|
||||
|
||||
public @Nullable CatimaBarcode format() {
|
||||
return mFormat;
|
||||
}
|
||||
|
||||
@@ -17,7 +25,5 @@ public class BarcodeValues {
|
||||
return mContent;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return mFormat == null && mContent == null;
|
||||
}
|
||||
}
|
||||
public String note() { return mNote; }
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package protect.card_locker;
|
||||
|
||||
public interface BarcodeValuesListDisambiguatorCallback {
|
||||
void onUserChoseBarcode(BarcodeValues barcodeValues);
|
||||
void onUserDismissedSelector();
|
||||
}
|
||||
@@ -61,7 +61,7 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
|
||||
private void onClickAction(int position) {
|
||||
Cursor selected = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All);
|
||||
selected.moveToPosition(position);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(selected);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(selected);
|
||||
|
||||
Log.d(TAG, "Creating shortcut for card " + loyaltyCard.store + "," + loyaltyCard.id);
|
||||
|
||||
|
||||
@@ -42,10 +42,10 @@ public class CardsOnPowerScreenService extends ControlsProviderService {
|
||||
Cursor loyaltyCardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.Unarchived);
|
||||
return subscriber -> {
|
||||
while (loyaltyCardCursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(loyaltyCardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(loyaltyCardCursor);
|
||||
Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("id", card.id);
|
||||
.putExtra(LoyaltyCardViewActivity.BUNDLE_ID, card.id);
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), card.id, openIntent, PendingIntent.FLAG_IMMUTABLE);
|
||||
subscriber.onNext(
|
||||
new Control.StatelessBuilder(PREFIX + card.id, pendingIntent)
|
||||
@@ -73,7 +73,7 @@ public class CardsOnPowerScreenService extends ControlsProviderService {
|
||||
if (card != null) {
|
||||
Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("id", card.id);
|
||||
.putExtra(LoyaltyCardViewActivity.BUNDLE_ID, card.id);
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), card.id, openIntent, PendingIntent.FLAG_IMMUTABLE);
|
||||
control = new Control.StatefulBuilder(controlId, pendingIntent)
|
||||
.setTitle(card.store)
|
||||
@@ -129,7 +129,7 @@ public class CardsOnPowerScreenService extends ControlsProviderService {
|
||||
consumer.accept(ControlAction.RESPONSE_OK);
|
||||
Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("id", controlIdToCardId(controlId));
|
||||
.putExtra(LoyaltyCardViewActivity.BUNDLE_ID, controlIdToCardId(controlId));
|
||||
startActivity(openIntent);
|
||||
|
||||
closePowerScreenOnAndroid11();
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -45,15 +47,15 @@ public class CatimaBarcode {
|
||||
mBarcodeFormat = barcodeFormat;
|
||||
}
|
||||
|
||||
public static CatimaBarcode fromBarcode(BarcodeFormat barcodeFormat) {
|
||||
public static CatimaBarcode fromBarcode(@NonNull BarcodeFormat barcodeFormat) {
|
||||
return new CatimaBarcode(barcodeFormat);
|
||||
}
|
||||
|
||||
public static CatimaBarcode fromName(String name) {
|
||||
public static CatimaBarcode fromName(@NonNull String name) {
|
||||
return new CatimaBarcode(BarcodeFormat.valueOf(name));
|
||||
}
|
||||
|
||||
public static CatimaBarcode fromPrettyName(String prettyName) {
|
||||
public static CatimaBarcode fromPrettyName(@NonNull String prettyName) {
|
||||
try {
|
||||
return new CatimaBarcode(barcodeFormats.get(barcodePrettyNames.indexOf(prettyName)));
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
|
||||
@@ -4,22 +4,24 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.core.util.Consumer;
|
||||
|
||||
import com.journeyapps.barcodescanner.CaptureManager;
|
||||
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
|
||||
|
||||
public class CatimaCaptureManager extends CaptureManager {
|
||||
private final Context mContext;
|
||||
private final Consumer<String> mErrorCallback;
|
||||
|
||||
public CatimaCaptureManager(Activity activity, DecoratedBarcodeView barcodeView) {
|
||||
public CatimaCaptureManager(Activity activity, DecoratedBarcodeView barcodeView, Consumer<String> errorCallback) {
|
||||
super(activity, barcodeView);
|
||||
|
||||
mContext = activity.getApplicationContext();
|
||||
mErrorCallback = errorCallback;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void displayFrameworkBugMessageAndExit(String message) {
|
||||
// We don't want to exit, as we also have a enter from card image and add manually button here
|
||||
// So we show a toast instead
|
||||
Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
|
||||
// So, instead, we call our error callback
|
||||
mErrorCallback.accept(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ public class DBHelper extends SQLiteOpenHelper {
|
||||
Set<String> files = new HashSet<>();
|
||||
Cursor cardCursor = getLoyaltyCardCursor(database);
|
||||
while (cardCursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor);
|
||||
for (ImageLocationType imageLocationType : ImageLocationType.values()) {
|
||||
String name = Utils.getCardImageFileName(card.id, imageLocationType);
|
||||
if (Utils.retrieveCardImageAsFile(context, name).exists()) {
|
||||
@@ -542,7 +542,7 @@ public class DBHelper extends SQLiteOpenHelper {
|
||||
|
||||
if (data.getCount() == 1) {
|
||||
data.moveToFirst();
|
||||
card = LoyaltyCard.toLoyaltyCard(data);
|
||||
card = LoyaltyCard.fromCursor(data);
|
||||
}
|
||||
|
||||
data.close();
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.text.InputType;
|
||||
import android.util.Log;
|
||||
import android.view.MenuItem;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -80,15 +81,21 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
Log.e(TAG, "Activity returned NULL uri");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
OutputStream writer = getContentResolver().openOutputStream(uri);
|
||||
Log.e(TAG, "Starting file export with: " + result.toString());
|
||||
startExport(writer, uri, exportPassword.toCharArray(), true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to export file: " + result.toString(), e);
|
||||
onExportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, result.toString()), uri);
|
||||
}
|
||||
|
||||
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
|
||||
// FIXME: This is still suboptimal, because showing that the export started is delayed until the network request finishes
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
OutputStream writer = getContentResolver().openOutputStream(uri);
|
||||
Log.d(TAG, "Starting file export with: " + result);
|
||||
startExport(writer, uri, exportPassword.toCharArray(), true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to export file: " + result, e);
|
||||
onExportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, result.toString()), uri);
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
});
|
||||
fileOpenLauncher = registerForActivityResult(new ActivityResultContracts.GetContent(), result -> {
|
||||
if (result == null) {
|
||||
@@ -157,17 +164,28 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
// Check that there is an app that data can be imported from
|
||||
Button importApplication = binding.importOptionApplicationButton;
|
||||
importApplication.setOnClickListener(v -> chooseImportType(true, null));
|
||||
|
||||
// FIXME: The importer/exporter is currently quite broken
|
||||
// To prevent the screen from turning off during import/export and some devices killing Catima as it's no longer foregrounded, force the screen to stay on here
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
|
||||
private void openFileForImport(Uri uri, char[] password) {
|
||||
try {
|
||||
InputStream reader = getContentResolver().openInputStream(uri);
|
||||
Log.e(TAG, "Starting file import with: " + uri.toString());
|
||||
startImport(reader, uri, importDataFormat, password, true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to import file: " + uri.toString(), e);
|
||||
onImportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, e.toString()), uri, importDataFormat);
|
||||
}
|
||||
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
|
||||
// FIXME: This is still suboptimal, because showing that the import started is delayed until the network request finishes
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
InputStream reader = getContentResolver().openInputStream(uri);
|
||||
Log.d(TAG, "Starting file import with: " + uri);
|
||||
startImport(reader, uri, importDataFormat, password, true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to import file: " + uri, e);
|
||||
onImportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, e.toString()), uri, importDataFormat);
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
|
||||
private void chooseImportType(boolean choosePicker,
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -90,16 +91,16 @@ public class ImportExportTask implements CompatCallable<ImportExportResult> {
|
||||
progress = new ProgressDialog(activity);
|
||||
progress.setTitle(doImport ? R.string.importing : R.string.exporting);
|
||||
|
||||
progress.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
ImportExportTask.this.stop();
|
||||
}
|
||||
});
|
||||
progress.setOnCancelListener(dialog -> cancel());
|
||||
progress.setOnDismissListener(dialog -> cancel());
|
||||
|
||||
progress.show();
|
||||
}
|
||||
|
||||
private void cancel() {
|
||||
ImportExportTask.this.stop();
|
||||
}
|
||||
|
||||
protected ImportExportResult doInBackground(Void... nothing) {
|
||||
final SQLiteDatabase database = new DBHelper(activity).getWritableDatabase();
|
||||
ImportExportResult result;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
@@ -10,76 +11,207 @@ import androidx.annotation.Nullable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
public class LoyaltyCard implements Parcelable {
|
||||
public final int id;
|
||||
public final String store;
|
||||
public final String note;
|
||||
public int id;
|
||||
public String store;
|
||||
public String note;
|
||||
@Nullable
|
||||
public final Date validFrom;
|
||||
public Date validFrom;
|
||||
@Nullable
|
||||
public final Date expiry;
|
||||
public final BigDecimal balance;
|
||||
public Date expiry;
|
||||
public BigDecimal balance;
|
||||
@Nullable
|
||||
public final Currency balanceType;
|
||||
public final String cardId;
|
||||
public Currency balanceType;
|
||||
public String cardId;
|
||||
@Nullable
|
||||
public final String barcodeId;
|
||||
public String barcodeId;
|
||||
@Nullable
|
||||
public final CatimaBarcode barcodeType;
|
||||
public CatimaBarcode barcodeType;
|
||||
@Nullable
|
||||
public final Integer headerColor;
|
||||
public final int starStatus;
|
||||
public final int archiveStatus;
|
||||
public final long lastUsed;
|
||||
public Integer headerColor;
|
||||
public int starStatus;
|
||||
public long lastUsed;
|
||||
public int zoomLevel;
|
||||
public int archiveStatus;
|
||||
|
||||
public static final String BUNDLE_LOYALTY_CARD_ID = "loyaltyCardId";
|
||||
public static final String BUNDLE_LOYALTY_CARD_STORE = "loyaltyCardStore";
|
||||
public static final String BUNDLE_LOYALTY_CARD_NOTE = "loyaltyCardNote";
|
||||
public static final String BUNDLE_LOYALTY_CARD_VALID_FROM = "loyaltyCardValidFrom";
|
||||
public static final String BUNDLE_LOYALTY_CARD_EXPIRY = "loyaltyCardExpiry";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BALANCE = "loyaltyCardBalance";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BALANCE_TYPE = "loyaltyCardBalanceType";
|
||||
public static final String BUNDLE_LOYALTY_CARD_CARD_ID = "loyaltyCardCardId";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BARCODE_ID = "loyaltyCardBarcodeId";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BARCODE_TYPE = "loyaltyCardBarcodeType";
|
||||
public static final String BUNDLE_LOYALTY_CARD_HEADER_COLOR = "loyaltyCardHeaderColor";
|
||||
public static final String BUNDLE_LOYALTY_CARD_STAR_STATUS = "loyaltyCardStarStatus";
|
||||
public static final String BUNDLE_LOYALTY_CARD_LAST_USED = "loyaltyCardLastUsed";
|
||||
public static final String BUNDLE_LOYALTY_CARD_ZOOM_LEVEL = "loyaltyCardZoomLevel";
|
||||
public static final String BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS = "loyaltyCardArchiveStatus";
|
||||
|
||||
/**
|
||||
* Create a loyalty card object with default values
|
||||
*/
|
||||
public LoyaltyCard() {
|
||||
setId(-1);
|
||||
setStore("");
|
||||
setNote("");
|
||||
setValidFrom(null);
|
||||
setExpiry(null);
|
||||
setBalance(new BigDecimal("0"));
|
||||
setBalanceType(null);
|
||||
setCardId("");
|
||||
setBarcodeId(null);
|
||||
setBarcodeType(null);
|
||||
setHeaderColor(null);
|
||||
setStarStatus(0);
|
||||
setLastUsed(Utils.getUnixTime());
|
||||
setZoomLevel(100);
|
||||
setArchiveStatus(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new loyalty card
|
||||
*
|
||||
* @param id
|
||||
* @param store
|
||||
* @param note
|
||||
* @param validFrom
|
||||
* @param expiry
|
||||
* @param balance
|
||||
* @param balanceType
|
||||
* @param cardId
|
||||
* @param barcodeId
|
||||
* @param barcodeType
|
||||
* @param headerColor
|
||||
* @param starStatus
|
||||
* @param lastUsed
|
||||
* @param zoomLevel
|
||||
* @param archiveStatus
|
||||
*/
|
||||
public LoyaltyCard(final int id, final String store, final String note, @Nullable final Date validFrom,
|
||||
@Nullable final Date expiry, final BigDecimal balance, @Nullable final Currency balanceType,
|
||||
final String cardId, @Nullable final String barcodeId, @Nullable final CatimaBarcode barcodeType,
|
||||
@Nullable final Integer headerColor, final int starStatus,
|
||||
final long lastUsed, final int zoomLevel, final int archiveStatus) {
|
||||
setId(id);
|
||||
setStore(store);
|
||||
setNote(note);
|
||||
setValidFrom(validFrom);
|
||||
setExpiry(expiry);
|
||||
setBalance(balance);
|
||||
setBalanceType(balanceType);
|
||||
setCardId(cardId);
|
||||
setBarcodeId(barcodeId);
|
||||
setBarcodeType(barcodeType);
|
||||
setHeaderColor(headerColor);
|
||||
setStarStatus(starStatus);
|
||||
setLastUsed(lastUsed);
|
||||
setZoomLevel(zoomLevel);
|
||||
setArchiveStatus(archiveStatus);
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void setStore(@NonNull String store) {
|
||||
this.store = store;
|
||||
}
|
||||
|
||||
public void setNote(@NonNull String note) {
|
||||
this.note = note;
|
||||
}
|
||||
|
||||
public void setValidFrom(@Nullable Date validFrom) {
|
||||
this.validFrom = validFrom;
|
||||
}
|
||||
|
||||
public void setExpiry(@Nullable Date expiry) {
|
||||
this.expiry = expiry;
|
||||
}
|
||||
|
||||
public void setBalance(@NonNull BigDecimal balance) {
|
||||
this.balance = balance;
|
||||
}
|
||||
|
||||
public void setBalanceType(@Nullable Currency balanceType) {
|
||||
this.balanceType = balanceType;
|
||||
}
|
||||
|
||||
public void setCardId(@NonNull String cardId) {
|
||||
this.cardId = cardId;
|
||||
}
|
||||
|
||||
public void setBarcodeId(@Nullable String barcodeId) {
|
||||
this.barcodeId = barcodeId;
|
||||
}
|
||||
|
||||
public void setBarcodeType(@Nullable CatimaBarcode barcodeType) {
|
||||
this.barcodeType = barcodeType;
|
||||
}
|
||||
|
||||
public void setHeaderColor(@Nullable Integer headerColor) {
|
||||
this.headerColor = headerColor;
|
||||
}
|
||||
|
||||
public void setStarStatus(int starStatus) {
|
||||
if (starStatus != 0 && starStatus != 1) {
|
||||
throw new IllegalArgumentException("starStatus must be 0 or 1");
|
||||
}
|
||||
|
||||
this.starStatus = starStatus;
|
||||
}
|
||||
|
||||
public void setLastUsed(long lastUsed) {
|
||||
this.lastUsed = lastUsed;
|
||||
}
|
||||
|
||||
public void setZoomLevel(int zoomLevel) {
|
||||
if (zoomLevel < 0 || zoomLevel > 100) {
|
||||
throw new IllegalArgumentException("zoomLevel must be in range 0-100");
|
||||
}
|
||||
|
||||
this.zoomLevel = zoomLevel;
|
||||
}
|
||||
|
||||
public void setArchiveStatus(int archiveStatus) {
|
||||
if (archiveStatus != 0 && archiveStatus != 1) {
|
||||
throw new IllegalArgumentException("archiveStatus must be 0 or 1");
|
||||
}
|
||||
|
||||
this.archiveStatus = archiveStatus;
|
||||
}
|
||||
|
||||
protected LoyaltyCard(Parcel in) {
|
||||
id = in.readInt();
|
||||
store = in.readString();
|
||||
note = in.readString();
|
||||
setId(in.readInt());
|
||||
setStore(Objects.requireNonNull(in.readString()));
|
||||
setNote(Objects.requireNonNull(in.readString()));
|
||||
long tmpValidFrom = in.readLong();
|
||||
validFrom = tmpValidFrom != -1 ? new Date(tmpValidFrom) : null;
|
||||
setValidFrom(tmpValidFrom > 0 ? new Date(tmpValidFrom) : null);
|
||||
long tmpExpiry = in.readLong();
|
||||
expiry = tmpExpiry != -1 ? new Date(tmpExpiry) : null;
|
||||
balance = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
balanceType = (Currency) in.readValue(Currency.class.getClassLoader());
|
||||
cardId = in.readString();
|
||||
barcodeId = in.readString();
|
||||
setExpiry(tmpExpiry > 0 ? new Date(tmpExpiry) : null);
|
||||
setBalance((BigDecimal) in.readValue(BigDecimal.class.getClassLoader()));
|
||||
setBalanceType((Currency) in.readValue(Currency.class.getClassLoader()));
|
||||
setCardId(Objects.requireNonNull(in.readString()));
|
||||
setBarcodeId(in.readString());
|
||||
String tmpBarcodeType = in.readString();
|
||||
barcodeType = !tmpBarcodeType.isEmpty() ? CatimaBarcode.fromName(tmpBarcodeType) : null;
|
||||
setBarcodeType((tmpBarcodeType != null && !tmpBarcodeType.isEmpty()) ? CatimaBarcode.fromName(tmpBarcodeType) : null);
|
||||
int tmpHeaderColor = in.readInt();
|
||||
headerColor = tmpHeaderColor != -1 ? tmpHeaderColor : null;
|
||||
starStatus = in.readInt();
|
||||
lastUsed = in.readLong();
|
||||
zoomLevel = in.readInt();
|
||||
archiveStatus = in.readInt();
|
||||
setHeaderColor(tmpHeaderColor != -1 ? tmpHeaderColor : null);
|
||||
setStarStatus(in.readInt());
|
||||
setLastUsed(in.readLong());
|
||||
setZoomLevel(in.readInt());
|
||||
setArchiveStatus(in.readInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
public void writeToParcel(Parcel parcel, int flags) {
|
||||
parcel.writeInt(id);
|
||||
parcel.writeString(store);
|
||||
parcel.writeString(note);
|
||||
@@ -97,51 +229,171 @@ public class LoyaltyCard implements Parcelable {
|
||||
parcel.writeInt(archiveStatus);
|
||||
}
|
||||
|
||||
public static LoyaltyCard toLoyaltyCard(Cursor cursor) {
|
||||
public static LoyaltyCard fromBundle(Bundle bundle, boolean requireFull) {
|
||||
// Grab default card
|
||||
LoyaltyCard loyaltyCard = new LoyaltyCard();
|
||||
|
||||
// Update from bundle
|
||||
loyaltyCard.updateFromBundle(bundle, requireFull);
|
||||
|
||||
// Return updated version
|
||||
return loyaltyCard;
|
||||
}
|
||||
|
||||
public void updateFromBundle(Bundle bundle, boolean requireFull) {
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_ID)) {
|
||||
setId(bundle.getInt(BUNDLE_LOYALTY_CARD_ID));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_ID);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_STORE)) {
|
||||
setStore(Objects.requireNonNull(bundle.getString(BUNDLE_LOYALTY_CARD_STORE)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_STORE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_NOTE)) {
|
||||
setNote(Objects.requireNonNull(bundle.getString(BUNDLE_LOYALTY_CARD_NOTE)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_NOTE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_VALID_FROM)) {
|
||||
long tmpValidFrom = bundle.getLong(BUNDLE_LOYALTY_CARD_VALID_FROM);
|
||||
setValidFrom(tmpValidFrom > 0 ? new Date(tmpValidFrom) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_VALID_FROM);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_EXPIRY)) {
|
||||
long tmpExpiry = bundle.getLong(BUNDLE_LOYALTY_CARD_EXPIRY);
|
||||
setExpiry(tmpExpiry > 0 ? new Date(tmpExpiry) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_EXPIRY);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BALANCE)) {
|
||||
setBalance(new BigDecimal(bundle.getString(BUNDLE_LOYALTY_CARD_BALANCE)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BALANCE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BALANCE_TYPE)) {
|
||||
String tmpBalanceType = bundle.getString(BUNDLE_LOYALTY_CARD_BALANCE_TYPE);
|
||||
setBalanceType(tmpBalanceType != null ? Currency.getInstance(tmpBalanceType) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BALANCE_TYPE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_CARD_ID)) {
|
||||
setCardId(Objects.requireNonNull(bundle.getString(BUNDLE_LOYALTY_CARD_CARD_ID)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_CARD_ID);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BARCODE_ID)) {
|
||||
setBarcodeId(bundle.getString(BUNDLE_LOYALTY_CARD_BARCODE_ID));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BARCODE_ID);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BARCODE_TYPE)) {
|
||||
String tmpBarcodeType = bundle.getString(BUNDLE_LOYALTY_CARD_BARCODE_TYPE);
|
||||
setBarcodeType(tmpBarcodeType != null ? CatimaBarcode.fromName(tmpBarcodeType) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BARCODE_TYPE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_HEADER_COLOR)) {
|
||||
int tmpHeaderColor = bundle.getInt(BUNDLE_LOYALTY_CARD_HEADER_COLOR);
|
||||
setHeaderColor(tmpHeaderColor != -1 ? tmpHeaderColor : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_HEADER_COLOR);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_STAR_STATUS)) {
|
||||
setStarStatus(bundle.getInt(BUNDLE_LOYALTY_CARD_STAR_STATUS));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_STAR_STATUS);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_LAST_USED)) {
|
||||
setLastUsed(bundle.getLong(BUNDLE_LOYALTY_CARD_LAST_USED));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_LAST_USED);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_ZOOM_LEVEL)) {
|
||||
setZoomLevel(bundle.getInt(BUNDLE_LOYALTY_CARD_ZOOM_LEVEL));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_ZOOM_LEVEL);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS)) {
|
||||
setArchiveStatus(bundle.getInt(BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS);
|
||||
}
|
||||
}
|
||||
|
||||
public Bundle toBundle() {
|
||||
Bundle bundle = new Bundle();
|
||||
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_ID, id);
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_STORE, store);
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_NOTE, note);
|
||||
if (validFrom != null) {
|
||||
bundle.putLong(BUNDLE_LOYALTY_CARD_VALID_FROM, validFrom.getTime());
|
||||
}
|
||||
if (expiry != null) {
|
||||
bundle.putLong(BUNDLE_LOYALTY_CARD_EXPIRY, expiry.getTime());
|
||||
}
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BALANCE, balance.toString());
|
||||
if (balanceType != null) {
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BALANCE_TYPE, balanceType.toString());
|
||||
}
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_CARD_ID, cardId);
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BARCODE_ID, barcodeId);
|
||||
if (barcodeType != null) {
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BARCODE_TYPE, barcodeType.name());
|
||||
}
|
||||
if (headerColor != null) {
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_HEADER_COLOR, headerColor);
|
||||
}
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_STAR_STATUS, starStatus);
|
||||
bundle.putLong(BUNDLE_LOYALTY_CARD_LAST_USED, lastUsed);
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_ZOOM_LEVEL, zoomLevel);
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS, archiveStatus);
|
||||
|
||||
return bundle;
|
||||
}
|
||||
|
||||
public static LoyaltyCard fromCursor(Cursor cursor) {
|
||||
// id
|
||||
int id = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ID));
|
||||
// store
|
||||
String store = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE));
|
||||
// note
|
||||
String note = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE));
|
||||
// validFrom
|
||||
long validFromLong = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.VALID_FROM));
|
||||
Date validFrom = validFromLong > 0 ? new Date(validFromLong) : null;
|
||||
// expiry
|
||||
long expiryLong = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.EXPIRY));
|
||||
Date expiry = expiryLong > 0 ? new Date(expiryLong) : null;
|
||||
// balance
|
||||
BigDecimal balance = new BigDecimal(cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE)));
|
||||
String cardId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID));
|
||||
String barcodeId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_ID));
|
||||
int starred = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS));
|
||||
long lastUsed = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.LAST_USED));
|
||||
int zoomLevel = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ZOOM_LEVEL));
|
||||
int archived = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ARCHIVE_STATUS));
|
||||
|
||||
int barcodeTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE);
|
||||
// balanceType
|
||||
int balanceTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE);
|
||||
Currency balanceType = !cursor.isNull(balanceTypeColumn) ? Currency.getInstance(cursor.getString(balanceTypeColumn)) : null;
|
||||
// cardId
|
||||
String cardId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID));
|
||||
// barcodeId
|
||||
int barcodeIdColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_ID);
|
||||
String barcodeId = !cursor.isNull(barcodeIdColumn) ? cursor.getString(barcodeIdColumn) : null;
|
||||
// barcodeType
|
||||
int barcodeTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE);
|
||||
CatimaBarcode barcodeType = !cursor.isNull(barcodeTypeColumn) ? CatimaBarcode.fromName(cursor.getString(barcodeTypeColumn)) : null;
|
||||
// headerColor
|
||||
int headerColorColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.HEADER_COLOR);
|
||||
Integer headerColor = !cursor.isNull(headerColorColumn) ? cursor.getInt(headerColorColumn) : null;
|
||||
// starStatus
|
||||
int starStatus = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS));
|
||||
// lastUsed
|
||||
long lastUsed = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.LAST_USED));
|
||||
// zoomLevel
|
||||
int zoomLevel = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ZOOM_LEVEL));
|
||||
// archiveStatus
|
||||
int archiveStatus = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ARCHIVE_STATUS));
|
||||
|
||||
CatimaBarcode barcodeType = null;
|
||||
Currency balanceType = null;
|
||||
Date validFrom = null;
|
||||
Date expiry = null;
|
||||
Integer headerColor = null;
|
||||
|
||||
if (cursor.isNull(barcodeTypeColumn) == false) {
|
||||
barcodeType = CatimaBarcode.fromName(cursor.getString(barcodeTypeColumn));
|
||||
}
|
||||
|
||||
if (cursor.isNull(balanceTypeColumn) == false) {
|
||||
balanceType = Currency.getInstance(cursor.getString(balanceTypeColumn));
|
||||
}
|
||||
|
||||
if (validFromLong > 0) {
|
||||
validFrom = new Date(validFromLong);
|
||||
}
|
||||
|
||||
if (expiryLong > 0) {
|
||||
expiry = new Date(expiryLong);
|
||||
}
|
||||
|
||||
if (cursor.isNull(headerColorColumn) == false) {
|
||||
headerColor = cursor.getInt(headerColorColumn);
|
||||
}
|
||||
|
||||
return new LoyaltyCard(id, store, note, validFrom, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starred, lastUsed, zoomLevel, archived);
|
||||
return new LoyaltyCard(id, store, note, validFrom, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starStatus, lastUsed, zoomLevel, archiveStatus);
|
||||
}
|
||||
|
||||
public static boolean isDuplicate(final LoyaltyCard a, final LoyaltyCard b) {
|
||||
@@ -164,7 +416,7 @@ public class LoyaltyCard implements Parcelable {
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
@@ -79,7 +79,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
|
||||
public LoyaltyCard getCard(int position) {
|
||||
mCursor.moveToPosition(position);
|
||||
return LoyaltyCard.toLoyaltyCard(mCursor);
|
||||
return LoyaltyCard.fromCursor(mCursor);
|
||||
}
|
||||
|
||||
public void onBindViewHolder(LoyaltyCardListItemViewHolder inputHolder, Cursor inputCursor) {
|
||||
@@ -87,7 +87,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
boolean showDivider = false;
|
||||
inputHolder.mDivider.setVisibility(View.GONE);
|
||||
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(inputCursor);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(inputCursor);
|
||||
Bitmap icon = Utils.retrieveCardImage(mContext, loyaltyCard.id, ImageLocationType.icon);
|
||||
|
||||
if (mLoyaltyCardListDisplayOptions.showingNameBelowThumbnail() && icon != null) {
|
||||
@@ -192,7 +192,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
int i;
|
||||
for (i = 0; i < mSelectedItems.size(); i++) {
|
||||
mCursor.moveToPosition(mSelectedItems.keyAt(i));
|
||||
result.add(LoyaltyCard.toLoyaltyCard(mCursor));
|
||||
result.add(LoyaltyCard.fromCursor(mCursor));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -127,9 +127,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public static final String BUNDLE_DUPLICATE_ID = "duplicateId";
|
||||
public static final String BUNDLE_UPDATE = "update";
|
||||
public static final String BUNDLE_OPEN_SET_ICON_MENU = "openSetIconMenu";
|
||||
public static final String BUNDLE_CARDID = "cardId";
|
||||
public static final String BUNDLE_BARCODEID = "barcodeId";
|
||||
public static final String BUNDLE_BARCODETYPE = "barcodeType";
|
||||
public static final String BUNDLE_ADDGROUP = "addGroup";
|
||||
|
||||
TabLayout tabs;
|
||||
@@ -162,15 +159,11 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
boolean updateLoyaltyCard;
|
||||
boolean duplicateFromLoyaltyCardId;
|
||||
boolean openSetIconMenu;
|
||||
String cardId;
|
||||
String barcodeId;
|
||||
String barcodeType;
|
||||
String addGroup;
|
||||
|
||||
Uri importLoyaltyCardUri = null;
|
||||
|
||||
SQLiteDatabase mDatabase;
|
||||
ImportURIHelper importUriHelper;
|
||||
|
||||
boolean hasChanged = false;
|
||||
String tempStoredOldBarcodeValue = null;
|
||||
@@ -183,7 +176,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
HashMap<String, Currency> currencies = new HashMap<>();
|
||||
HashMap<String, String> currencySymbols = new HashMap<>();
|
||||
|
||||
LoyaltyCard tempLoyaltyCard;
|
||||
LoyaltyCard tempLoyaltyCard = new LoyaltyCard();
|
||||
LoyaltyCardField tempLoyaltyCardField;
|
||||
|
||||
ActivityResultLauncher<Uri> mPhotoTakerLauncher;
|
||||
@@ -215,53 +208,112 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
super.attachBaseContext(base);
|
||||
}
|
||||
|
||||
private static LoyaltyCard updateTempState(LoyaltyCard loyaltyCard, LoyaltyCardField fieldName, Object value) {
|
||||
return new LoyaltyCard(
|
||||
(int) (fieldName == LoyaltyCardField.id ? value : loyaltyCard.id),
|
||||
(String) (fieldName == LoyaltyCardField.store ? value : loyaltyCard.store),
|
||||
(String) (fieldName == LoyaltyCardField.note ? value : loyaltyCard.note),
|
||||
(Date) (fieldName == LoyaltyCardField.validFrom ? value : loyaltyCard.validFrom),
|
||||
(Date) (fieldName == LoyaltyCardField.expiry ? value : loyaltyCard.expiry),
|
||||
(BigDecimal) (fieldName == LoyaltyCardField.balance ? value : loyaltyCard.balance),
|
||||
(Currency) (fieldName == LoyaltyCardField.balanceType ? value : loyaltyCard.balanceType),
|
||||
(String) (fieldName == LoyaltyCardField.cardId ? value : loyaltyCard.cardId),
|
||||
(String) (fieldName == LoyaltyCardField.barcodeId ? value : loyaltyCard.barcodeId),
|
||||
(CatimaBarcode) (fieldName == LoyaltyCardField.barcodeType ? value : loyaltyCard.barcodeType),
|
||||
(Integer) (fieldName == LoyaltyCardField.headerColor ? value : loyaltyCard.headerColor),
|
||||
(int) (fieldName == LoyaltyCardField.starStatus ? value : loyaltyCard.starStatus),
|
||||
0, // Unimportant, always set to null in doSave so the DB updates it to the current timestamp
|
||||
100, // Unimportant, not updated in doSave, defaults to 100 for new cards
|
||||
(int) (fieldName == LoyaltyCardField.archiveStatus ? value : loyaltyCard.archiveStatus)
|
||||
);
|
||||
}
|
||||
|
||||
protected void updateTempState(LoyaltyCardField fieldName, Object value) {
|
||||
tempLoyaltyCard = updateTempState(tempLoyaltyCard, fieldName, value);
|
||||
|
||||
if (initDone && (fieldName == LoyaltyCardField.cardId || fieldName == LoyaltyCardField.barcodeId || fieldName == LoyaltyCardField.barcodeType)) {
|
||||
generateBarcode();
|
||||
}
|
||||
protected void setLoyaltyCardStore(@NonNull String store) {
|
||||
tempLoyaltyCard.setStore(store);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
protected void setLoyaltyCardNote(@NonNull String note) {
|
||||
tempLoyaltyCard.setNote(note);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardValidFrom(@Nullable Date validFrom) {
|
||||
tempLoyaltyCard.setValidFrom(validFrom);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardExpiry(@Nullable Date expiry) {
|
||||
tempLoyaltyCard.setExpiry(expiry);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBalance(@NonNull BigDecimal balance) {
|
||||
tempLoyaltyCard.setBalance(balance);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBalanceType(@Nullable Currency balanceType) {
|
||||
tempLoyaltyCard.setBalanceType(balanceType);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardCardId(@NonNull String cardId) {
|
||||
tempLoyaltyCard.setCardId(cardId);
|
||||
|
||||
generateBarcode();
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBarcodeId(@Nullable String barcodeId) {
|
||||
tempLoyaltyCard.setBarcodeId(barcodeId);
|
||||
|
||||
generateBarcode();
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBarcodeType(@Nullable CatimaBarcode barcodeType) {
|
||||
tempLoyaltyCard.setBarcodeType(barcodeType);
|
||||
|
||||
generateBarcode();
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardHeaderColor(@Nullable Integer headerColor) {
|
||||
tempLoyaltyCard.setHeaderColor(headerColor);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
/* Extract intent fields and return if code should keep running */
|
||||
private boolean extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
|
||||
addGroup = b != null ? b.getString(BUNDLE_ADDGROUP) : null;
|
||||
openSetIconMenu = b != null && b.getBoolean(BUNDLE_OPEN_SET_ICON_MENU, false);
|
||||
|
||||
loyaltyCardId = b != null ? b.getInt(BUNDLE_ID) : 0;
|
||||
updateLoyaltyCard = b != null && b.getBoolean(BUNDLE_UPDATE, false);
|
||||
duplicateFromLoyaltyCardId = b != null && b.getBoolean(BUNDLE_DUPLICATE_ID, false);
|
||||
|
||||
openSetIconMenu = b != null && b.getBoolean(BUNDLE_OPEN_SET_ICON_MENU, false);
|
||||
|
||||
cardId = b != null ? b.getString(BUNDLE_CARDID) : null;
|
||||
barcodeId = b != null ? b.getString(BUNDLE_BARCODEID) : null;
|
||||
barcodeType = b != null ? b.getString(BUNDLE_BARCODETYPE) : null;
|
||||
addGroup = b != null ? b.getString(BUNDLE_ADDGROUP) : null;
|
||||
|
||||
importLoyaltyCardUri = intent.getData();
|
||||
|
||||
// If we have to import a loyalty card, do so
|
||||
if (updateLoyaltyCard || duplicateFromLoyaltyCardId) {
|
||||
tempLoyaltyCard = DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId);
|
||||
if (tempLoyaltyCard == null) {
|
||||
Log.w(TAG, "Could not lookup loyalty card " + loyaltyCardId);
|
||||
Toast.makeText(this, R.string.noCardExistsError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return false;
|
||||
}
|
||||
} else if (importLoyaltyCardUri != null) {
|
||||
try {
|
||||
tempLoyaltyCard = new ImportURIHelper(this).parse(importLoyaltyCardUri);
|
||||
} catch (InvalidObjectException ex) {
|
||||
Toast.makeText(this, R.string.failedParsingImportUriError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// If the intent contains any loyalty card fields, override those fields in our current temp card
|
||||
if (b != null) {
|
||||
tempLoyaltyCard.updateFromBundle(b, false);
|
||||
}
|
||||
|
||||
Log.d(TAG, "Edit activity: id=" + loyaltyCardId
|
||||
+ ", updateLoyaltyCard=" + updateLoyaltyCard);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -333,9 +385,9 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
mDatabase = new DBHelper(this).getWritableDatabase();
|
||||
|
||||
extractIntentFields(getIntent());
|
||||
|
||||
importUriHelper = new ImportURIHelper(this);
|
||||
if (!extractIntentFields(getIntent())) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Currency currency : Currency.getAvailableCurrencies()) {
|
||||
currencies.put(currency.getSymbol(), currency);
|
||||
@@ -370,7 +422,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
String storeName = s.toString().trim();
|
||||
updateTempState(LoyaltyCardField.store, storeName);
|
||||
setLoyaltyCardStore(storeName);
|
||||
generateIcon(storeName);
|
||||
|
||||
if (storeName.length() == 0) {
|
||||
@@ -384,7 +436,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
noteFieldEdit.addTextChangedListener(new SimpleTextWatcher() {
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
updateTempState(LoyaltyCardField.note, s.toString());
|
||||
setLoyaltyCardNote(s.toString());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -397,7 +449,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
balanceField.setOnFocusChangeListener((v, hasFocus) -> {
|
||||
if (!hasFocus && !onResuming && !onRestoring) {
|
||||
if (balanceField.getText().toString().isEmpty()) {
|
||||
updateTempState(LoyaltyCardField.balance, BigDecimal.valueOf(0));
|
||||
setLoyaltyCardBalance(BigDecimal.valueOf(0));
|
||||
}
|
||||
|
||||
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, tempLoyaltyCard.balanceType));
|
||||
@@ -410,7 +462,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
if (onResuming || onRestoring) return;
|
||||
try {
|
||||
BigDecimal balance = Utils.parseBalance(s.toString(), tempLoyaltyCard.balanceType);
|
||||
updateTempState(LoyaltyCardField.balance, balance);
|
||||
setLoyaltyCardBalance(balance);
|
||||
balanceField.setError(null);
|
||||
validBalance = true;
|
||||
} catch (ParseException e) {
|
||||
@@ -432,7 +484,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
currency = currencies.get(s.toString());
|
||||
}
|
||||
|
||||
updateTempState(LoyaltyCardField.balanceType, currency);
|
||||
setLoyaltyCardBalanceType(currency);
|
||||
|
||||
if (tempLoyaltyCard.balance != null && !onResuming && !onRestoring) {
|
||||
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, currency));
|
||||
@@ -491,7 +543,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
updateTempState(LoyaltyCardField.cardId, s.toString());
|
||||
setLoyaltyCardCardId(s.toString());
|
||||
|
||||
if (s.length() == 0) {
|
||||
cardIdFieldView.setError(getString(R.string.field_must_not_be_empty));
|
||||
@@ -516,7 +568,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
// request to update it to match the card id (if changed)
|
||||
tempStoredOldBarcodeValue = null;
|
||||
|
||||
updateTempState(LoyaltyCardField.barcodeId, null);
|
||||
setLoyaltyCardBarcodeId(null);
|
||||
} else if (s.toString().equals(getString(R.string.setBarcodeId))) {
|
||||
if (!lastValue.toString().equals(getString(R.string.setBarcodeId))) {
|
||||
barcodeIdField.setText(lastValue);
|
||||
@@ -554,7 +606,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
||||
input.requestFocus();
|
||||
} else {
|
||||
updateTempState(LoyaltyCardField.barcodeId, s.toString());
|
||||
setLoyaltyCardBarcodeId(s.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -573,12 +625,12 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (!s.toString().isEmpty()) {
|
||||
if (s.toString().equals(getString(R.string.noBarcode))) {
|
||||
updateTempState(LoyaltyCardField.barcodeType, null);
|
||||
setLoyaltyCardBarcodeType(null);
|
||||
} else {
|
||||
try {
|
||||
CatimaBarcode barcodeFormat = CatimaBarcode.fromPrettyName(s.toString());
|
||||
|
||||
updateTempState(LoyaltyCardField.barcodeType, barcodeFormat);
|
||||
setLoyaltyCardBarcodeType(barcodeFormat);
|
||||
|
||||
if (!barcodeFormat.isSupported()) {
|
||||
Toast.makeText(LoyaltyCardEditActivity.this, getString(R.string.unsupportedBarcodeType), Toast.LENGTH_LONG).show();
|
||||
@@ -646,11 +698,22 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
Log.d("barcode card id editor", "barcode and card id editor picker returned without an intent");
|
||||
return;
|
||||
}
|
||||
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, getApplicationContext());
|
||||
|
||||
cardId = barcodeValues.content();
|
||||
barcodeType = barcodeValues.format();
|
||||
barcodeId = "";
|
||||
List<BarcodeValues> barcodeValuesList = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, getApplicationContext());
|
||||
|
||||
Utils.makeUserChooseBarcodeFromList(this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
|
||||
setLoyaltyCardCardId(barcodeValues.content());
|
||||
setLoyaltyCardBarcodeType(barcodeValues.format());
|
||||
setLoyaltyCardBarcodeId("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserDismissedSelector() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -670,16 +733,17 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
if (bitmap != null) {
|
||||
if (requestedFrontImage()) {
|
||||
mFrontImageRemoved = false;
|
||||
mFrontImageUnsaved = true;
|
||||
setCardImage(cardImageFront, Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_BIG), true);
|
||||
} else if (requestedBackImage()) {
|
||||
mBackImageRemoved = false;
|
||||
mBackImageUnsaved = true;
|
||||
setCardImage(cardImageBack, Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_BIG), true);
|
||||
} else {
|
||||
mIconRemoved = false;
|
||||
mIconUnsaved = true;
|
||||
setCardImage(thumbnail, Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_SMALL), false);
|
||||
thumbnail.setBackgroundColor(Color.TRANSPARENT);
|
||||
setColorFromIcon();
|
||||
setThumbnailImage(Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_SMALL));
|
||||
}
|
||||
Log.d("cropper", "mRequestedImage: " + mRequestedImage);
|
||||
mCropperFinishedType = mRequestedImage;
|
||||
@@ -784,30 +848,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
onResuming = true;
|
||||
|
||||
if (tempLoyaltyCard == null) {
|
||||
if (updateLoyaltyCard || duplicateFromLoyaltyCardId) {
|
||||
tempLoyaltyCard = DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId);
|
||||
if (tempLoyaltyCard == null) {
|
||||
Log.w(TAG, "Could not lookup loyalty card " + loyaltyCardId);
|
||||
Toast.makeText(this, R.string.noCardExistsError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
} else if (importLoyaltyCardUri != null) {
|
||||
try {
|
||||
tempLoyaltyCard = importUriHelper.parse(importLoyaltyCardUri);
|
||||
} catch (InvalidObjectException ex) {
|
||||
Toast.makeText(this, R.string.failedParsingImportUriError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// New card, use default values
|
||||
tempLoyaltyCard = new LoyaltyCard(-1, "", "", null, null, new BigDecimal("0"), null, "", null, null, null, 0, Utils.getUnixTime(), 100,0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!initDone) {
|
||||
if (updateLoyaltyCard) {
|
||||
setTitle(R.string.editCardTitle);
|
||||
@@ -823,7 +863,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
setCardImage(cardImageBack, Utils.retrieveCardImage(this, tempLoyaltyCard.id, ImageLocationType.back), true);
|
||||
}
|
||||
if (!mIconUnsaved && !croppedIcon() && !mIconRemoved) {
|
||||
setCardImage(thumbnail, Utils.retrieveCardImage(this, tempLoyaltyCard.id, ImageLocationType.icon), false);
|
||||
setThumbnailImage(Utils.retrieveCardImage(this, tempLoyaltyCard.id, ImageLocationType.icon));
|
||||
}
|
||||
} else {
|
||||
setTitle(R.string.addCardTitle);
|
||||
@@ -836,7 +876,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
setCardImage(cardImageBack, Utils.loadTempImage(this, TEMP_UNSAVED_BACK_IMAGE_NAME), true);
|
||||
}
|
||||
if (mIconUnsaved && !croppedIcon()) {
|
||||
setCardImage(thumbnail, Utils.loadTempImage(this, TEMP_UNSAVED_ICON_NAME), false);
|
||||
setThumbnailImage(Utils.loadTempImage(this, TEMP_UNSAVED_ICON_NAME));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -856,7 +896,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
// which can cause issues when switching locale because it parses the balance and e.g. the decimal separator may have changed.
|
||||
formatBalanceCurrencyField(tempLoyaltyCard.balanceType);
|
||||
BigDecimal balance = tempLoyaltyCard.balance == null ? new BigDecimal("0") : tempLoyaltyCard.balance;
|
||||
tempLoyaltyCard = updateTempState(tempLoyaltyCard, LoyaltyCardField.balance, balance);
|
||||
setLoyaltyCardBalance(balance);
|
||||
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, tempLoyaltyCard.balanceType));
|
||||
validBalance = true;
|
||||
Log.d(TAG, "Setting balance to " + balance);
|
||||
@@ -903,35 +943,30 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
if (tempLoyaltyCard.headerColor == null) {
|
||||
// If name is set, pick colour relevant for name. Otherwise pick randomly
|
||||
updateTempState(LoyaltyCardField.headerColor, tempLoyaltyCard.store.isEmpty() ? Utils.getRandomHeaderColor(this) : Utils.getHeaderColor(this, tempLoyaltyCard));
|
||||
setLoyaltyCardHeaderColor(tempLoyaltyCard.store.isEmpty() ? Utils.getRandomHeaderColor(this) : Utils.getHeaderColor(this, tempLoyaltyCard));
|
||||
}
|
||||
|
||||
// Update from intent
|
||||
if (barcodeType != null) {
|
||||
// Fix up some fields
|
||||
if (tempLoyaltyCard.barcodeType != null) {
|
||||
try {
|
||||
barcodeTypeField.setText(CatimaBarcode.fromName(barcodeType).prettyName());
|
||||
barcodeTypeField.setText(tempLoyaltyCard.barcodeType.prettyName());
|
||||
} catch (IllegalArgumentException e) {
|
||||
barcodeTypeField.setText(getString(R.string.noBarcode));
|
||||
}
|
||||
}
|
||||
|
||||
if (cardId != null) {
|
||||
cardIdFieldView.setText(cardId);
|
||||
if (tempLoyaltyCard.cardId != null) {
|
||||
cardIdFieldView.setText(tempLoyaltyCard.cardId);
|
||||
}
|
||||
|
||||
if (barcodeId != null) {
|
||||
if (!barcodeId.isEmpty()) {
|
||||
barcodeIdField.setText(barcodeId);
|
||||
if (tempLoyaltyCard.barcodeId != null) {
|
||||
if (!tempLoyaltyCard.barcodeId.isEmpty()) {
|
||||
barcodeIdField.setText(tempLoyaltyCard.barcodeId);
|
||||
} else {
|
||||
barcodeIdField.setText(getString(R.string.sameAsCardId));
|
||||
}
|
||||
}
|
||||
|
||||
// Empty intent values
|
||||
barcodeType = null;
|
||||
cardId = null;
|
||||
barcodeId = null;
|
||||
|
||||
// Initialization has finished
|
||||
if (!initDone) {
|
||||
initDone = true;
|
||||
@@ -952,9 +987,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
generateIcon(storeFieldEdit.getText().toString().trim());
|
||||
|
||||
// It can't be null because we set it in updateTempState but SpotBugs insists it can be
|
||||
// NP_NULL_ON_SOME_PATH: Possible null pointer dereference and
|
||||
// NP_NULL_PARAM_DEREF: Method call passes null for non-null parameter
|
||||
Integer headerColor = tempLoyaltyCard.headerColor;
|
||||
if (headerColor != null) {
|
||||
thumbnail.setOnClickListener(new ChooseCardImage());
|
||||
@@ -978,7 +1010,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
if (icon != null && (icon instanceof Bitmap)) {
|
||||
int headerColor = Utils.getHeaderColorFromImage((Bitmap) icon, Utils.getHeaderColor(this, tempLoyaltyCard));
|
||||
|
||||
updateTempState(LoyaltyCardField.headerColor, headerColor);
|
||||
setLoyaltyCardHeaderColor(headerColor);
|
||||
|
||||
thumbnailEditIcon.setBackgroundColor(Utils.needsDarkForeground(headerColor) ? Color.BLACK : Color.WHITE);
|
||||
thumbnailEditIcon.setColorFilter(Utils.needsDarkForeground(headerColor) ? Color.WHITE : Color.BLACK);
|
||||
@@ -987,6 +1019,22 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
}
|
||||
}
|
||||
|
||||
protected void setThumbnailImage(@Nullable Bitmap bitmap) {
|
||||
setCardImage(thumbnail, bitmap, false);
|
||||
|
||||
if (bitmap == null) {
|
||||
generateIcon(storeFieldEdit.getText().toString().trim());
|
||||
} else {
|
||||
thumbnail.setBackgroundColor(Color.TRANSPARENT);
|
||||
setColorFromIcon();
|
||||
}
|
||||
|
||||
if (tempLoyaltyCard.headerColor != null) {
|
||||
thumbnailEditIcon.setBackgroundColor(Utils.needsDarkForeground(tempLoyaltyCard.headerColor) ? Color.BLACK : Color.WHITE);
|
||||
thumbnailEditIcon.setColorFilter(Utils.needsDarkForeground(tempLoyaltyCard.headerColor) ? Color.WHITE : Color.BLACK);
|
||||
}
|
||||
}
|
||||
|
||||
protected void setCardImage(ImageView imageView, Bitmap bitmap, boolean applyFallback) {
|
||||
imageView.setTag(bitmap);
|
||||
|
||||
@@ -1010,7 +1058,16 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (s.toString().equals(getString(defaultOptionStringId))) {
|
||||
dateField.setTag(null);
|
||||
updateTempState(loyaltyCardField, null);
|
||||
switch (loyaltyCardField) {
|
||||
case validFrom:
|
||||
setLoyaltyCardValidFrom(null);
|
||||
break;
|
||||
case expiry:
|
||||
setLoyaltyCardExpiry(null);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Unexpected field: " + loyaltyCardField);
|
||||
}
|
||||
} else if (s.toString().equals(getString(chooseDateOptionStringId))) {
|
||||
if (!lastValue.toString().equals(getString(chooseDateOptionStringId))) {
|
||||
dateField.setText(lastValue);
|
||||
@@ -1227,7 +1284,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public void onClick(View v) {
|
||||
Intent i = new Intent(getApplicationContext(), ScanActivity.class);
|
||||
final Bundle b = new Bundle();
|
||||
b.putString(LoyaltyCardEditActivity.BUNDLE_CARDID, cardIdFieldView.getText().toString());
|
||||
b.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, cardIdFieldView.getText().toString());
|
||||
i.putExtras(b);
|
||||
mCardIdAndBarCodeEditorLauncher.launch(i);
|
||||
}
|
||||
@@ -1314,6 +1371,28 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
return null;
|
||||
});
|
||||
|
||||
if (v.getId() == R.id.thumbnail) {
|
||||
if (cardImageFront.getTag() instanceof Bitmap) {
|
||||
cardOptions.put(getString(R.string.useFrontImage), () -> {
|
||||
mIconRemoved = false;
|
||||
mIconUnsaved = true;
|
||||
setThumbnailImage(Utils.resizeBitmap((Bitmap) cardImageFront.getTag(), Utils.BITMAP_SIZE_SMALL));
|
||||
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
if (cardImageBack.getTag() instanceof Bitmap) {
|
||||
cardOptions.put(getString(R.string.useBackImage), () -> {
|
||||
mIconRemoved = false;
|
||||
mIconUnsaved = true;
|
||||
setThumbnailImage(Utils.resizeBitmap((Bitmap) cardImageBack.getTag(), Utils.BITMAP_SIZE_SMALL));
|
||||
|
||||
return null;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
int titleResource;
|
||||
|
||||
if (v.getId() == R.id.frontImageHolder) {
|
||||
@@ -1354,17 +1433,13 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
// We don't need to set or check the dialogId since it's only used for that single dialog
|
||||
@Override
|
||||
public void onColorSelected(int dialogId, int color) {
|
||||
// Save new colour
|
||||
setLoyaltyCardHeaderColor(color);
|
||||
|
||||
// Unset image if set
|
||||
setCardImage(thumbnail, null, false);
|
||||
mIconRemoved = true;
|
||||
mIconUnsaved = false;
|
||||
|
||||
updateTempState(LoyaltyCardField.headerColor, color);
|
||||
|
||||
thumbnailEditIcon.setBackgroundColor(Utils.needsDarkForeground(color) ? Color.BLACK : Color.WHITE);
|
||||
thumbnailEditIcon.setColorFilter(Utils.needsDarkForeground(color) ? Color.WHITE : Color.BLACK);
|
||||
|
||||
generateIcon(storeFieldEdit.getText().toString().trim());
|
||||
setThumbnailImage(null);
|
||||
}
|
||||
|
||||
// ColorPickerDialogListener callback
|
||||
@@ -1450,11 +1525,11 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
switch (tempLoyaltyCardField) {
|
||||
case validFrom:
|
||||
formatDateField(LoyaltyCardEditActivity.this, validFromField, newDate);
|
||||
updateTempState(LoyaltyCardField.validFrom, newDate);
|
||||
setLoyaltyCardValidFrom(newDate);
|
||||
break;
|
||||
case expiry:
|
||||
formatDateField(LoyaltyCardEditActivity.this, expiryField, newDate);
|
||||
updateTempState(LoyaltyCardField.expiry, newDate);
|
||||
setLoyaltyCardExpiry(newDate);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Unexpected field: " + tempLoyaltyCardField);
|
||||
@@ -1548,8 +1623,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Log.i(TAG, "Set " + loyaltyCardId + " to " + cardId + " (update: " + updateLoyaltyCard + ")");
|
||||
|
||||
DBHelper.setLoyaltyCardGroups(mDatabase, loyaltyCardId, selectedGroups);
|
||||
|
||||
ShortcutHelper.updateShortcuts(this, DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId));
|
||||
@@ -1647,10 +1720,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
}
|
||||
|
||||
private void generateBarcode() {
|
||||
if (tempLoyaltyCard == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.BARCODE, true, false, false);
|
||||
|
||||
String cardIdString = tempLoyaltyCard.barcodeId != null ? tempLoyaltyCard.barcodeId : tempLoyaltyCard.cardId;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.ColorStateList;
|
||||
@@ -20,6 +19,7 @@ import android.text.method.DigitsKeyListener;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.util.Linkify;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
@@ -29,7 +29,6 @@ import android.view.Window;
|
||||
import android.view.WindowInsets;
|
||||
import android.view.WindowInsetsController;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
@@ -61,7 +60,6 @@ import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
@@ -100,9 +98,35 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
static final String STATE_IMAGEINDEX = "imageIndex";
|
||||
static final String STATE_FULLSCREEN = "isFullscreen";
|
||||
|
||||
static final String BUNDLE_ID = "id";
|
||||
static final String BUNDLE_CARDLIST = "cardList";
|
||||
static final String BUNDLE_TRANSITION_RIGHT = "transition_right";
|
||||
|
||||
final private TaskHandler mTasks = new TaskHandler();
|
||||
Runnable barcodeImageGenerationFinishedCallback;
|
||||
|
||||
private long initTime = System.currentTimeMillis();
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (settings.useVolumeKeysForNavigation()) {
|
||||
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
|
||||
// Navigate to the previous card
|
||||
if (initTime < (System.currentTimeMillis() - 1000)) {
|
||||
prevNextCard(false);
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
|
||||
// Navigate to the next card
|
||||
if (initTime < (System.currentTimeMillis() - 1000)) {
|
||||
prevNextCard(true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
public void onMainImageTap() {
|
||||
// If we're in fullscreen, leave fullscreen
|
||||
if (isFullscreen) {
|
||||
@@ -184,8 +208,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
loyaltyCardId = b != null ? b.getInt("id") : 0;
|
||||
cardList = b != null ? b.getIntegerArrayList("cardList") : null;
|
||||
loyaltyCardId = b != null ? b.getInt(BUNDLE_ID) : 0;
|
||||
cardList = b != null ? b.getIntegerArrayList(BUNDLE_CARDLIST) : null;
|
||||
Log.d(TAG, "View activity: id=" + loyaltyCardId);
|
||||
}
|
||||
|
||||
@@ -211,7 +235,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
return;
|
||||
}
|
||||
|
||||
int transitionRight = incomingIntentExtras.getInt("transition_right", -1);
|
||||
int transitionRight = incomingIntentExtras.getInt(BUNDLE_TRANSITION_RIGHT, -1);
|
||||
if (transitionRight == 1) {
|
||||
// right side transition
|
||||
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
|
||||
@@ -444,7 +468,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
layout.addView(currentTextview);
|
||||
|
||||
final TextInputEditText input = new TextInputEditText(this);
|
||||
input.setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||
input.setKeyListener(DigitsKeyListener.getInstance("0123456789,."));
|
||||
input.setHint(R.string.updateBalanceHint);
|
||||
|
||||
@@ -575,8 +599,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
// Restart activity with new card id and index
|
||||
Intent intent = getIntent();
|
||||
Bundle b = intent.getExtras();
|
||||
b.putInt("id", loyaltyCardId);
|
||||
b.putInt("transition_right", transitionRight ? 1 : 0);
|
||||
b.putInt(BUNDLE_ID, loyaltyCardId);
|
||||
b.putInt(BUNDLE_TRANSITION_RIGHT, transitionRight ? 1 : 0);
|
||||
intent.putExtras(b);
|
||||
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
@@ -654,10 +678,15 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
cardIdString = loyaltyCard.cardId;
|
||||
barcodeIdString = loyaltyCard.barcodeId;
|
||||
|
||||
binding.cardIdView.setText(loyaltyCard.cardId);
|
||||
binding.mainImageDescription.setText(loyaltyCard.cardId);
|
||||
|
||||
// Display full text on click in case it doesn't fit in a single line
|
||||
binding.cardIdView.setOnClickListener(v -> {
|
||||
binding.mainImageDescription.setOnClickListener(v -> {
|
||||
if (mainImageIndex != 0) {
|
||||
// Don't show cardId dialog, we're displaying something else
|
||||
return;
|
||||
}
|
||||
|
||||
TextView cardIdView = new TextView(LoyaltyCardViewActivity.this);
|
||||
cardIdView.setText(loyaltyCard.cardId);
|
||||
cardIdView.setTextIsSelectable(true);
|
||||
@@ -736,6 +765,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
DBHelper.updateLoyaltyCardLastUsed(database, loyaltyCard.id);
|
||||
|
||||
invalidateOptionsMenu();
|
||||
|
||||
ShortcutHelper.updateShortcuts(this, loyaltyCard);
|
||||
}
|
||||
|
||||
private void setStateBasedOnImageTypes() {
|
||||
@@ -835,6 +866,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
DBHelper.updateLoyaltyCardArchiveStatus(database, loyaltyCardId, 1);
|
||||
Toast.makeText(LoyaltyCardViewActivity.this, R.string.archived, Toast.LENGTH_LONG).show();
|
||||
|
||||
ShortcutHelper.removeShortcut(LoyaltyCardViewActivity.this, loyaltyCardId);
|
||||
|
||||
// Re-init loyaltyCard with new data from DB
|
||||
onResume();
|
||||
invalidateOptionsMenu();
|
||||
@@ -926,7 +959,9 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
if (imageTypes.isEmpty()) {
|
||||
barcodeRenderTarget.setVisibility(View.GONE);
|
||||
binding.mainCardView.setCardBackgroundColor(Color.TRANSPARENT);
|
||||
binding.cardIdView.setTextColor(MaterialColors.getColor(binding.cardIdView, com.google.android.material.R.attr.colorOnSurfaceVariant));
|
||||
binding.mainImageDescription.setTextColor(MaterialColors.getColor(binding.mainImageDescription, com.google.android.material.R.attr.colorOnSurfaceVariant));
|
||||
|
||||
binding.mainImageDescription.setText(loyaltyCard.cardId);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -935,7 +970,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
if (wantedImageType == ImageType.BARCODE) {
|
||||
barcodeRenderTarget.setBackgroundColor(Color.WHITE);
|
||||
binding.mainCardView.setCardBackgroundColor(Color.WHITE);
|
||||
binding.cardIdView.setTextColor(getResources().getColor(R.color.md_theme_light_onSurfaceVariant));
|
||||
binding.mainImageDescription.setTextColor(getResources().getColor(R.color.md_theme_light_onSurfaceVariant));
|
||||
|
||||
if (waitForResize) {
|
||||
redrawBarcodeAfterResize(!isFullscreen);
|
||||
@@ -943,18 +978,23 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
drawBarcode(!isFullscreen);
|
||||
}
|
||||
|
||||
binding.mainImageDescription.setText(loyaltyCard.cardId);
|
||||
barcodeRenderTarget.setContentDescription(getString(R.string.barcodeImageDescriptionWithType, format.prettyName()));
|
||||
} else if (wantedImageType == ImageType.IMAGE_FRONT) {
|
||||
barcodeRenderTarget.setImageBitmap(frontImageBitmap);
|
||||
barcodeRenderTarget.setBackgroundColor(Color.TRANSPARENT);
|
||||
binding.mainCardView.setCardBackgroundColor(Color.TRANSPARENT);
|
||||
binding.cardIdView.setTextColor(MaterialColors.getColor(binding.cardIdView, com.google.android.material.R.attr.colorOnSurfaceVariant));
|
||||
binding.mainImageDescription.setTextColor(MaterialColors.getColor(binding.mainImageDescription, com.google.android.material.R.attr.colorOnSurfaceVariant));
|
||||
|
||||
binding.mainImageDescription.setText(getString(R.string.frontImageDescription));
|
||||
barcodeRenderTarget.setContentDescription(getString(R.string.frontImageDescription));
|
||||
} else if (wantedImageType == ImageType.IMAGE_BACK) {
|
||||
barcodeRenderTarget.setImageBitmap(backImageBitmap);
|
||||
barcodeRenderTarget.setBackgroundColor(Color.TRANSPARENT);
|
||||
binding.mainCardView.setCardBackgroundColor(Color.TRANSPARENT);
|
||||
binding.cardIdView.setTextColor(MaterialColors.getColor(binding.cardIdView, com.google.android.material.R.attr.colorOnSurfaceVariant));
|
||||
binding.mainImageDescription.setTextColor(MaterialColors.getColor(binding.mainImageDescription, com.google.android.material.R.attr.colorOnSurfaceVariant));
|
||||
|
||||
binding.mainImageDescription.setText(getString(R.string.backImageDescription));
|
||||
barcodeRenderTarget.setContentDescription(getString(R.string.backImageDescription));
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unknown image type: " + wantedImageType);
|
||||
|
||||
@@ -7,8 +7,7 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.database.CursorIndexOutOfBoundsException;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
@@ -23,6 +22,7 @@ import android.widget.Toast;
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.view.ActionMode;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
@@ -33,10 +33,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
@@ -150,6 +150,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
for (LoyaltyCard loyaltyCard : mAdapter.getSelectedItems()) {
|
||||
Log.d(TAG, "Archiving card: " + loyaltyCard.id);
|
||||
DBHelper.updateLoyaltyCardArchiveStatus(mDatabase, loyaltyCard.id, 1);
|
||||
ShortcutHelper.removeShortcut(MainActivity.this, loyaltyCard.id);
|
||||
updateLoyaltyCardList(false);
|
||||
inputMode.finish();
|
||||
invalidateOptionsMenu();
|
||||
@@ -194,10 +195,12 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle inputSavedInstanceState) {
|
||||
extractIntentFields(getIntent());
|
||||
SplashScreen.installSplashScreen(this);
|
||||
super.onCreate(inputSavedInstanceState);
|
||||
|
||||
// We should extract the share intent after we called the super.onCreate as it may need to spawn a dialog window and the app needs to be initialized to not crash
|
||||
extractIntentFields(getIntent());
|
||||
|
||||
binding = MainActivityBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
setSupportActionBar(binding.toolbar);
|
||||
@@ -249,37 +252,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
mGroup = null;
|
||||
updateLoyaltyCardList(true);
|
||||
|
||||
/*
|
||||
* This was added for Huawei, but Huawei is just too much of a fucking pain.
|
||||
* Just leaving this commented out if needed for the future idk
|
||||
* https://twitter.com/SylvieLorxu/status/1379437902741012483
|
||||
*
|
||||
|
||||
// Show privacy policy on first run
|
||||
SharedPreferences privacyPolicyShownPref = getApplicationContext().getSharedPreferences(
|
||||
getString(R.string.sharedpreference_privacy_policy_shown),
|
||||
Context.MODE_PRIVATE);
|
||||
|
||||
|
||||
if (privacyPolicyShownPref.getInt(getString(R.string.sharedpreference_privacy_policy_shown), 0) == 0) {
|
||||
SharedPreferences.Editor privacyPolicyShownPrefEditor = privacyPolicyShownPref.edit();
|
||||
privacyPolicyShownPrefEditor.putInt(getString(R.string.sharedpreference_privacy_policy_shown), 1);
|
||||
privacyPolicyShownPrefEditor.apply();
|
||||
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle(R.string.privacy_policy)
|
||||
.setMessage(R.string.privacy_policy_popup_text)
|
||||
.setPositiveButton(R.string.accept, null)
|
||||
.setNegativeButton(R.string.privacy_policy, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
openPrivacyPolicy();
|
||||
}
|
||||
})
|
||||
.setIcon(android.R.drawable.ic_dialog_info)
|
||||
.show();
|
||||
}
|
||||
*/
|
||||
|
||||
mBarcodeScannerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
// Exit early if the user cancelled the scan (pressed back/home)
|
||||
if (result.getResultCode() != RESULT_OK) {
|
||||
@@ -287,11 +259,11 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
}
|
||||
|
||||
Intent intent = result.getData();
|
||||
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, this);
|
||||
List<BarcodeValues> barcodeValuesList = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, this);
|
||||
|
||||
Bundle inputBundle = intent.getExtras();
|
||||
String group = inputBundle != null ? inputBundle.getString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP) : null;
|
||||
processBarcodeValues(barcodeValues, group);
|
||||
processBarcodeValuesList(barcodeValuesList, group, false);
|
||||
});
|
||||
|
||||
mSettingsLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
@@ -446,63 +418,62 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
}
|
||||
}
|
||||
|
||||
private void processBarcodeValues(BarcodeValues barcodeValues, String group) {
|
||||
if (barcodeValues.isEmpty()) {
|
||||
private void processBarcodeValuesList(List<BarcodeValues> barcodeValuesList, String group, boolean closeAppOnNoBarcode) {
|
||||
if (barcodeValuesList.isEmpty()) {
|
||||
throw new IllegalArgumentException("barcodesValues may not be empty");
|
||||
}
|
||||
|
||||
Intent newIntent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
|
||||
Bundle newBundle = new Bundle();
|
||||
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_BARCODETYPE, barcodeValues.format());
|
||||
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_CARDID, barcodeValues.content());
|
||||
if (group != null) {
|
||||
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, group);
|
||||
}
|
||||
newIntent.putExtras(newBundle);
|
||||
startActivity(newIntent);
|
||||
Utils.makeUserChooseBarcodeFromList(MainActivity.this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
|
||||
CatimaBarcode barcodeType = barcodeValues.format();
|
||||
|
||||
Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, barcodeValues.content());
|
||||
bundle.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_BARCODE_TYPE, barcodeType != null ? barcodeType.name() : null);
|
||||
bundle.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_BARCODE_ID, null);
|
||||
if (group != null) {
|
||||
bundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, group);
|
||||
}
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserDismissedSelector() {
|
||||
if (closeAppOnNoBarcode) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onSharedIntent(Intent intent) {
|
||||
String receivedAction = intent.getAction();
|
||||
String receivedType = intent.getType();
|
||||
|
||||
// Check if an image was shared to us
|
||||
// Check if an image or file was shared to us
|
||||
if (Intent.ACTION_SEND.equals(receivedAction)) {
|
||||
if (!receivedType.startsWith("image/")) {
|
||||
List<BarcodeValues> barcodeValuesList;
|
||||
|
||||
if (receivedType.equals("text/plain")) {
|
||||
barcodeValuesList = Collections.singletonList(new BarcodeValues(null, intent.getStringExtra(Intent.EXTRA_TEXT)));
|
||||
} else if (receivedType.startsWith("image/")) {
|
||||
barcodeValuesList = Utils.retrieveBarcodesFromImage(this, intent.getParcelableExtra(Intent.EXTRA_STREAM));
|
||||
} else if (receivedType.equals("application/pdf")) {
|
||||
barcodeValuesList = Utils.retrieveBarcodesFromPdf(this, intent.getParcelableExtra(Intent.EXTRA_STREAM));
|
||||
} else {
|
||||
Log.e(TAG, "Wrong mime-type");
|
||||
return;
|
||||
}
|
||||
|
||||
BarcodeValues barcodeValues;
|
||||
Bitmap bitmap;
|
||||
|
||||
Uri data = intent.getParcelableExtra(Intent.EXTRA_STREAM);
|
||||
if (data == null) {
|
||||
Toast.makeText(this, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
|
||||
if (barcodeValuesList.isEmpty()) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
bitmap = Utils.retrieveImageFromUri(this, data);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error getting data from image file");
|
||||
e.printStackTrace();
|
||||
Toast.makeText(this, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
barcodeValues = Utils.getBarcodeFromBitmap(bitmap);
|
||||
|
||||
if (barcodeValues.isEmpty()) {
|
||||
Log.i(TAG, "No barcode found in image file");
|
||||
Toast.makeText(this, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
processBarcodeValues(barcodeValues, null);
|
||||
processBarcodeValuesList(barcodeValuesList, null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -545,7 +516,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
|
||||
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
|
||||
if (searchManager != null) {
|
||||
mSearchView = (SearchView) inputMenu.findItem(R.id.action_search).getActionView();
|
||||
MenuItem searchMenuItem = inputMenu.findItem(R.id.action_search);
|
||||
mSearchView = (SearchView) searchMenuItem.getActionView();
|
||||
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
|
||||
mSearchView.setSubmitButtonEnabled(false);
|
||||
|
||||
@@ -554,6 +526,30 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
return false;
|
||||
});
|
||||
|
||||
/*
|
||||
* On Android 13 and later, pressing Back while the search view is open hides the keyboard
|
||||
* and collapses the search view at the same time.
|
||||
* This brings back the old behavior on Android 12 and lower: pressing Back once
|
||||
* hides the keyboard, press again while keyboard is hidden to collapse the search view.
|
||||
*/
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
searchMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
|
||||
@Override
|
||||
public boolean onMenuItemActionExpand(@NonNull MenuItem item) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemActionCollapse(@NonNull MenuItem item) {
|
||||
if (mSearchView.hasFocus()) {
|
||||
mSearchView.clearFocus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
@@ -788,18 +784,16 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
Intent intent = new Intent(this, LoyaltyCardViewActivity.class);
|
||||
intent.setAction("");
|
||||
final Bundle b = new Bundle();
|
||||
b.putInt("id", loyaltyCard.id);
|
||||
b.putInt(LoyaltyCardViewActivity.BUNDLE_ID, loyaltyCard.id);
|
||||
|
||||
ArrayList<Integer> cardList = new ArrayList<>();
|
||||
for (int i = 0; i < mAdapter.getItemCount(); i++) {
|
||||
cardList.add(mAdapter.getCard(i).id);
|
||||
}
|
||||
|
||||
b.putIntegerArrayList("cardList", cardList);
|
||||
b.putIntegerArrayList(LoyaltyCardViewActivity.BUNDLE_CARDLIST, cardList);
|
||||
intent.putExtras(b);
|
||||
|
||||
ShortcutHelper.updateShortcuts(MainActivity.this, loyaltyCard);
|
||||
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class ManageGroupCursorAdapter extends LoyaltyCardCursorAdapter {
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(LoyaltyCardListItemViewHolder inputHolder, Cursor inputCursor) {
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(inputCursor);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(inputCursor);
|
||||
Boolean overlayValue = mInGroupOverlay.get(loyaltyCard.id);
|
||||
if ((overlayValue != null ? overlayValue : isLoyaltyCardInGroup(loyaltyCard.id))) {
|
||||
mAnimationItemsIndex.put(inputCursor.getPosition(), true);
|
||||
|
||||
@@ -24,6 +24,8 @@ import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.SimpleAdapter;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@@ -42,6 +44,8 @@ import com.journeyapps.barcodescanner.BarcodeResult;
|
||||
import com.journeyapps.barcodescanner.CaptureManager;
|
||||
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import protect.card_locker.databinding.CustomBarcodeScannerBinding;
|
||||
@@ -62,6 +66,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
private static final int COMPAT_SCALE_FACTOR_DIP = 320;
|
||||
|
||||
private static final int PERMISSION_SCAN_ADD_FROM_IMAGE = 100;
|
||||
private static final int PERMISSION_SCAN_ADD_FROM_PDF = 101;
|
||||
|
||||
private CaptureManager capture;
|
||||
private DecoratedBarcodeView barcodeScannerView;
|
||||
@@ -73,13 +78,15 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
private ActivityResultLauncher<Intent> manualAddLauncher;
|
||||
// can't use the pre-made contract because that launches the file manager for image type instead of gallery
|
||||
private ActivityResultLauncher<Intent> photoPickerLauncher;
|
||||
private ActivityResultLauncher<Intent> pdfPickerLauncher;
|
||||
|
||||
static final String STATE_SCANNER_ACTIVE = "scannerActive";
|
||||
private boolean mScannerActive = true;
|
||||
private boolean mHasError = false;
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
cardId = b != null ? b.getString(LoyaltyCardEditActivity.BUNDLE_CARDID) : null;
|
||||
cardId = b != null ? b.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID) : null;
|
||||
addGroup = b != null ? b.getString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP) : null;
|
||||
Log.d(TAG, "Scan activity: id=" + cardId);
|
||||
}
|
||||
@@ -99,17 +106,44 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
|
||||
manualAddLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.SELECT_BARCODE_REQUEST, result.getResultCode(), result.getData()));
|
||||
photoPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_IMAGE_FILE, result.getResultCode(), result.getData()));
|
||||
pdfPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_PDF_FILE, result.getResultCode(), result.getData()));
|
||||
customBarcodeScannerBinding.fabOtherOptions.setOnClickListener(view -> {
|
||||
setScannerActive(false);
|
||||
|
||||
ArrayList<HashMap<String, Object>> list = new ArrayList<>();
|
||||
String[] texts = new String[]{
|
||||
getString(R.string.addWithoutBarcode),
|
||||
getString(R.string.addManually),
|
||||
getString(R.string.addFromImage),
|
||||
getString(R.string.addFromPdfFile),
|
||||
};
|
||||
Object[] icons = new Object[]{
|
||||
R.drawable.baseline_block_24,
|
||||
R.drawable.ic_edit,
|
||||
R.drawable.baseline_image_24,
|
||||
R.drawable.baseline_picture_as_pdf_24,
|
||||
};
|
||||
String[] columns = new String[]{"text", "icon"};
|
||||
|
||||
for (int i = 0; i < texts.length; i++) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put(columns[0], texts[i]);
|
||||
map.put(columns[1], icons[i]);
|
||||
list.add(map);
|
||||
}
|
||||
|
||||
ListAdapter adapter = new SimpleAdapter(
|
||||
ScanActivity.this,
|
||||
list,
|
||||
R.layout.alertdialog_row_with_icon,
|
||||
columns,
|
||||
new int[]{R.id.textView, R.id.imageView}
|
||||
);
|
||||
|
||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
|
||||
builder.setTitle(getString(R.string.add_a_card_in_a_different_way));
|
||||
builder.setItems(
|
||||
new CharSequence[]{
|
||||
getString(R.string.addWithoutBarcode),
|
||||
getString(R.string.addManually),
|
||||
getString(R.string.addFromImage)
|
||||
},
|
||||
builder.setAdapter(
|
||||
adapter,
|
||||
(dialogInterface, i) -> {
|
||||
switch (i) {
|
||||
case 0:
|
||||
@@ -121,6 +155,9 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
case 2:
|
||||
addFromImage();
|
||||
break;
|
||||
case 3:
|
||||
addFromPdfFile();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown 'Add a card in a different way' dialog option");
|
||||
}
|
||||
@@ -134,7 +171,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
|
||||
// Even though we do the actual decoding with the barcodeScannerView
|
||||
// CaptureManager needs to be running to show the camera and scanning bar
|
||||
capture = new CatimaCaptureManager(this, barcodeScannerView);
|
||||
capture = new CatimaCaptureManager(this, barcodeScannerView, this::onCaptureManagerError);
|
||||
Intent captureIntent = new Intent();
|
||||
Bundle captureIntentBundle = new Bundle();
|
||||
captureIntentBundle.putBoolean(Intents.Scan.BEEP_ENABLED, false);
|
||||
@@ -171,9 +208,14 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
capture.onResume();
|
||||
}
|
||||
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
|
||||
showCameraPermissionMissingText(false);
|
||||
if (!Utils.deviceHasCamera(this)) {
|
||||
showCameraError(getString(R.string.noCameraFoundGuideText), false);
|
||||
} else if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||
showCameraPermissionMissingText();
|
||||
} else {
|
||||
hideCameraError();
|
||||
}
|
||||
|
||||
scaleScreen();
|
||||
}
|
||||
|
||||
@@ -268,14 +310,26 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
private void handleActivityResult(int requestCode, int resultCode, Intent intent) {
|
||||
super.onActivityResult(requestCode, resultCode, intent);
|
||||
|
||||
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(requestCode, resultCode, intent, this);
|
||||
List<BarcodeValues> barcodeValuesList = Utils.parseSetBarcodeActivityResult(requestCode, resultCode, intent, this);
|
||||
|
||||
if (barcodeValues.isEmpty()) {
|
||||
if (barcodeValuesList.isEmpty()) {
|
||||
setScannerActive(true);
|
||||
return;
|
||||
}
|
||||
|
||||
returnResult(barcodeValues.content(), barcodeValues.format());
|
||||
Utils.makeUserChooseBarcodeFromList(this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
|
||||
CatimaBarcode barcodeType = barcodeValues.format();
|
||||
|
||||
returnResult(barcodeValues.content(), barcodeType != null ? barcodeType.name() : null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserDismissedSelector() {
|
||||
setScannerActive(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void addWithoutBarcode() {
|
||||
@@ -315,7 +369,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
|
||||
// Buttons
|
||||
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
|
||||
returnResult(input.getText().toString(), "");
|
||||
returnResult(input.getText().toString(), null);
|
||||
});
|
||||
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
|
||||
AlertDialog dialog = builder.create();
|
||||
@@ -350,7 +404,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
|
||||
if (cardId != null) {
|
||||
final Bundle b = new Bundle();
|
||||
b.putString("initialCardId", cardId);
|
||||
b.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, cardId);
|
||||
i.putExtras(b);
|
||||
}
|
||||
manualAddLauncher.launch(i);
|
||||
@@ -364,29 +418,58 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
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);
|
||||
contentIntent.setType("image/*");
|
||||
public void addFromPdfFile() {
|
||||
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_PDF);
|
||||
}
|
||||
|
||||
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(R.string.addFromImage));
|
||||
private void addFromImageOrFileAfterPermission(String mimeType, ActivityResultLauncher<Intent> launcher, int chooserText, int errorMessage) {
|
||||
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
|
||||
photoPickerIntent.setType(mimeType);
|
||||
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
|
||||
contentIntent.setType(mimeType);
|
||||
|
||||
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(chooserText));
|
||||
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { contentIntent });
|
||||
try {
|
||||
photoPickerLauncher.launch(chooserIntent);
|
||||
launcher.launch(chooserIntent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
setScannerActive(true);
|
||||
Toast.makeText(getApplicationContext(), R.string.failedLaunchingPhotoPicker, Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_LONG).show();
|
||||
Log.e(TAG, "No activity found to handle intent", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void showCameraPermissionMissingText(boolean show) {
|
||||
customBarcodeScannerBinding.cameraPermissionDeniedLayout.cameraPermissionDeniedClickableArea.setOnClickListener(show ? v -> {
|
||||
public void onCaptureManagerError(String errorMessage) {
|
||||
if (mHasError) {
|
||||
// We're already showing an error, ignore this new error
|
||||
return;
|
||||
}
|
||||
|
||||
showCameraError(errorMessage, false);
|
||||
}
|
||||
|
||||
private void showCameraPermissionMissingText() {
|
||||
showCameraError(getString(R.string.noCameraPermissionDirectToSystemSetting), true);
|
||||
}
|
||||
|
||||
private void showCameraError(String message, boolean setOnClick) {
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorMessage.setText(message);
|
||||
|
||||
setCameraErrorState(true, setOnClick);
|
||||
}
|
||||
|
||||
private void hideCameraError() {
|
||||
setCameraErrorState(false, false);
|
||||
}
|
||||
|
||||
private void setCameraErrorState(boolean visible, boolean setOnClick) {
|
||||
mHasError = visible;
|
||||
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorClickableArea.setOnClickListener(visible && setOnClick ? v -> {
|
||||
navigateToSystemPermissionSetting();
|
||||
} : null);
|
||||
customBarcodeScannerBinding.cardInputContainer.setBackgroundColor(show ? obtainThemeAttribute(com.google.android.material.R.attr.colorSurface) : Color.TRANSPARENT);
|
||||
customBarcodeScannerBinding.cameraPermissionDeniedLayout.getRoot().setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
customBarcodeScannerBinding.cardInputContainer.setBackgroundColor(visible ? obtainThemeAttribute(com.google.android.material.R.attr.colorSurface) : Color.TRANSPARENT);
|
||||
customBarcodeScannerBinding.cameraErrorLayout.getRoot().setVisibility(visible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void scaleScreen() {
|
||||
@@ -396,8 +479,8 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
float mediumSizePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,MEDIUM_SCALE_FACTOR_DIP,getResources().getDisplayMetrics());
|
||||
boolean shouldScaleSmaller = screenHeight < mediumSizePx;
|
||||
|
||||
customBarcodeScannerBinding.cameraPermissionDeniedLayout.cameraPermissionDeniedIcon.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
|
||||
customBarcodeScannerBinding.cameraPermissionDeniedLayout.cameraPermissionDeniedTitle.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorIcon.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
|
||||
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorTitle.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
|
||||
private int obtainThemeAttribute(int attribute) {
|
||||
@@ -423,10 +506,18 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
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();
|
||||
hideCameraError();
|
||||
} else {
|
||||
showCameraPermissionMissingText();
|
||||
}
|
||||
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE || requestCode == PERMISSION_SCAN_ADD_FROM_PDF) {
|
||||
if (granted) {
|
||||
if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
|
||||
addFromImageOrFileAfterPermission("image/*", photoPickerLauncher, R.string.addFromImage, R.string.failedLaunchingPhotoPicker);
|
||||
} else {
|
||||
addFromImageOrFileAfterPermission("application/pdf", pdfPickerLauncher, R.string.addFromPdfFile, R.string.failedLaunchingFileManager);
|
||||
}
|
||||
} else {
|
||||
setScannerActive(true);
|
||||
Toast.makeText(this, R.string.storageReadPermissionRequired, Toast.LENGTH_LONG).show();
|
||||
|
||||
@@ -43,6 +43,11 @@ class ShortcutHelper {
|
||||
* used card shortcut is discarded.
|
||||
*/
|
||||
static void updateShortcuts(Context context, LoyaltyCard card) {
|
||||
if (card.archiveStatus == 1) {
|
||||
// Don't add archived card to menu
|
||||
return;
|
||||
}
|
||||
|
||||
LinkedList<ShortcutInfoCompat> list = new LinkedList<>(ShortcutManagerCompat.getDynamicShortcuts(context));
|
||||
|
||||
SQLiteDatabase database = new DBHelper(context).getReadableDatabase();
|
||||
@@ -108,18 +113,7 @@ class ShortcutHelper {
|
||||
* shortcut exists.
|
||||
*/
|
||||
static void removeShortcut(Context context, int cardId) {
|
||||
List<ShortcutInfoCompat> list = ShortcutManagerCompat.getDynamicShortcuts(context);
|
||||
|
||||
String shortcutId = Integer.toString(cardId);
|
||||
|
||||
for (int index = 0; index < list.size(); index++) {
|
||||
if (list.get(index).getId().equals(shortcutId)) {
|
||||
list.remove(index);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ShortcutManagerCompat.setDynamicShortcuts(context, list);
|
||||
ShortcutManagerCompat.removeDynamicShortcuts(context, Collections.singletonList(Integer.toString(cardId)));
|
||||
}
|
||||
|
||||
static @NotNull
|
||||
@@ -139,8 +133,7 @@ class ShortcutHelper {
|
||||
// one replace it.
|
||||
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putInt("id", loyaltyCard.id);
|
||||
bundle.putBoolean("view", true);
|
||||
bundle.putInt(LoyaltyCardViewActivity.BUNDLE_ID, loyaltyCard.id);
|
||||
intent.putExtras(bundle);
|
||||
|
||||
Bitmap iconBitmap = Utils.retrieveCardImage(context, loyaltyCard.id, ImageLocationType.icon);
|
||||
|
||||
@@ -12,8 +12,12 @@ import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ImageDecoder;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.pdf.PdfRenderer;
|
||||
import android.hardware.camera2.CameraAccessException;
|
||||
import android.hardware.camera2.CameraManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.provider.MediaStore;
|
||||
import android.text.Layout;
|
||||
import android.text.Spanned;
|
||||
@@ -35,10 +39,12 @@ import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
import androidx.core.os.LocaleListCompat;
|
||||
import androidx.core.view.WindowInsetsControllerCompat;
|
||||
import androidx.core.widget.TextViewCompat;
|
||||
import androidx.exifinterface.media.ExifInterface;
|
||||
import androidx.palette.graphics.Palette;
|
||||
|
||||
import com.google.android.material.color.DynamicColors;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.zxing.BinaryBitmap;
|
||||
import com.google.zxing.LuminanceSource;
|
||||
import com.google.zxing.MultiFormatReader;
|
||||
@@ -46,6 +52,8 @@ import com.google.zxing.NotFoundException;
|
||||
import com.google.zxing.RGBLuminanceSource;
|
||||
import com.google.zxing.Result;
|
||||
import com.google.zxing.common.HybridBinarizer;
|
||||
import com.google.zxing.multi.GenericMultipleBarcodeReader;
|
||||
import com.google.zxing.multi.MultipleBarcodeReader;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -60,10 +68,13 @@ import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
@@ -83,12 +94,13 @@ public class Utils {
|
||||
public static final int SELECT_BARCODE_REQUEST = 2;
|
||||
public static final int BARCODE_SCAN = 3;
|
||||
public static final int BARCODE_IMPORT_FROM_IMAGE_FILE = 4;
|
||||
public static final int CARD_IMAGE_FROM_CAMERA_FRONT = 5;
|
||||
public static final int CARD_IMAGE_FROM_CAMERA_BACK = 6;
|
||||
public static final int CARD_IMAGE_FROM_CAMERA_ICON = 7;
|
||||
public static final int CARD_IMAGE_FROM_FILE_FRONT = 8;
|
||||
public static final int CARD_IMAGE_FROM_FILE_BACK = 9;
|
||||
public static final int CARD_IMAGE_FROM_FILE_ICON = 10;
|
||||
public static final int BARCODE_IMPORT_FROM_PDF_FILE = 5;
|
||||
public static final int CARD_IMAGE_FROM_CAMERA_FRONT = 6;
|
||||
public static final int CARD_IMAGE_FROM_CAMERA_BACK = 7;
|
||||
public static final int CARD_IMAGE_FROM_CAMERA_ICON = 8;
|
||||
public static final int CARD_IMAGE_FROM_FILE_FRONT = 9;
|
||||
public static final int CARD_IMAGE_FROM_FILE_BACK = 10;
|
||||
public static final int CARD_IMAGE_FROM_FILE_ICON = 11;
|
||||
|
||||
public static final String CARD_IMAGE_FILENAME_REGEX = "^(card_)(\\d+)(_(?:front|back|icon)\\.png)$";
|
||||
|
||||
@@ -131,6 +143,91 @@ public class Utils {
|
||||
return ColorUtils.calculateLuminance(backgroundColor) > LUMINANCE_MIDPOINT;
|
||||
}
|
||||
|
||||
static public List<BarcodeValues> retrieveBarcodesFromImage(Context context, Uri uri) {
|
||||
Log.i(TAG, "Received image file with possible barcode");
|
||||
|
||||
if (uri == null) {
|
||||
Log.e(TAG, "Uri did not contain any data");
|
||||
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
Bitmap bitmap;
|
||||
try {
|
||||
bitmap = retrieveImageFromUri(context, uri);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error getting data from image file");
|
||||
e.printStackTrace();
|
||||
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<BarcodeValues> barcodesFromBitmap = getBarcodesFromBitmap(bitmap);
|
||||
|
||||
if (barcodesFromBitmap.isEmpty()) {
|
||||
Log.i(TAG, "No barcode found in image file");
|
||||
Toast.makeText(context, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
return barcodesFromBitmap;
|
||||
}
|
||||
|
||||
static public List<BarcodeValues> retrieveBarcodesFromPdf(Context context, Uri uri) {
|
||||
Log.i(TAG, "Received PDF file with possible barcode");
|
||||
if (uri == null) {
|
||||
Log.e(TAG, "Uri did not contain any data");
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
ParcelFileDescriptor parcelFileDescriptor = null;
|
||||
PdfRenderer renderer = null;
|
||||
List<BarcodeValues> barcodesFromPdfPages = new ArrayList<>();
|
||||
|
||||
try {
|
||||
parcelFileDescriptor = context.getContentResolver().openFileDescriptor(uri, "r");
|
||||
if (parcelFileDescriptor != null) {
|
||||
renderer = new PdfRenderer(parcelFileDescriptor);
|
||||
|
||||
// Loop over all pages to find barcodes
|
||||
Bitmap renderedPage;
|
||||
for (int i = 0; i < renderer.getPageCount(); i++) {
|
||||
PdfRenderer.Page page = renderer.openPage(i);
|
||||
renderedPage = Bitmap.createBitmap(page.getWidth(), page.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
page.render(renderedPage, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
|
||||
page.close();
|
||||
|
||||
List<BarcodeValues> barcodesFromPage = getBarcodesFromBitmap(renderedPage);
|
||||
for (BarcodeValues barcodeValues : barcodesFromPage) {
|
||||
barcodeValues.setNote(String.format(context.getString(R.string.pageWithNumber), i+1));
|
||||
barcodesFromPdfPages.add(barcodeValues);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error reading PDF file", e);
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
} finally {
|
||||
// Resource handling
|
||||
if (renderer != null) {
|
||||
renderer.close();
|
||||
}
|
||||
if (parcelFileDescriptor != null) {
|
||||
try {
|
||||
parcelFileDescriptor.close();
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error closing ParcelFileDescriptor", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (barcodesFromPdfPages.isEmpty()) {
|
||||
Log.i(TAG, "No barcode found in pdf file");
|
||||
Toast.makeText(context, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
return barcodesFromPdfPages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Barcode format and content based on the result of an activity.
|
||||
* It shows toasts to notify the end-user as needed itself and will return an empty
|
||||
@@ -142,45 +239,20 @@ public class Utils {
|
||||
* @param context
|
||||
* @return BarcodeValues
|
||||
*/
|
||||
static public BarcodeValues parseSetBarcodeActivityResult(int requestCode, int resultCode, Intent intent, Context context) {
|
||||
static public List<BarcodeValues> parseSetBarcodeActivityResult(int requestCode, int resultCode, Intent intent, Context context) {
|
||||
String contents;
|
||||
String format;
|
||||
|
||||
if (resultCode != Activity.RESULT_OK) {
|
||||
return new BarcodeValues(null, null);
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
if (requestCode == Utils.BARCODE_IMPORT_FROM_IMAGE_FILE) {
|
||||
Log.i(TAG, "Received image file with possible barcode");
|
||||
return retrieveBarcodesFromImage(context, intent.getData());
|
||||
}
|
||||
|
||||
Uri data = intent.getData();
|
||||
if (data == null) {
|
||||
Log.e(TAG, "Intent did not contain any data");
|
||||
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
|
||||
return new BarcodeValues(null, null);
|
||||
}
|
||||
|
||||
Bitmap bitmap;
|
||||
try {
|
||||
bitmap = retrieveImageFromUri(context, data);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error getting data from image file");
|
||||
e.printStackTrace();
|
||||
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
|
||||
return new BarcodeValues(null, null);
|
||||
}
|
||||
|
||||
BarcodeValues barcodeFromBitmap = getBarcodeFromBitmap(bitmap);
|
||||
|
||||
if (barcodeFromBitmap.isEmpty()) {
|
||||
Log.i(TAG, "No barcode found in image file");
|
||||
Toast.makeText(context, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
Log.i(TAG, "Read barcode id: " + barcodeFromBitmap.content());
|
||||
Log.i(TAG, "Read format: " + barcodeFromBitmap.format());
|
||||
|
||||
return barcodeFromBitmap;
|
||||
if (requestCode == Utils.BARCODE_IMPORT_FROM_PDF_FILE) {
|
||||
return retrieveBarcodesFromPdf(context, intent.getData());
|
||||
}
|
||||
|
||||
if (requestCode == Utils.BARCODE_SCAN || requestCode == Utils.SELECT_BARCODE_REQUEST) {
|
||||
@@ -196,7 +268,7 @@ public class Utils {
|
||||
Log.i(TAG, "Read barcode id: " + contents);
|
||||
Log.i(TAG, "Read format: " + format);
|
||||
|
||||
return new BarcodeValues(format, contents);
|
||||
return Collections.singletonList(new BarcodeValues(format != null ? CatimaBarcode.fromName(format) : null, contents));
|
||||
}
|
||||
|
||||
throw new UnsupportedOperationException("Unknown request code for parseSetBarcodeActivityResult");
|
||||
@@ -216,22 +288,22 @@ public class Utils {
|
||||
return MediaStore.Images.Media.getBitmap(context.getContentResolver(), data);
|
||||
}
|
||||
|
||||
static public BarcodeValues getBarcodeFromBitmap(Bitmap bitmap) {
|
||||
static public List<BarcodeValues> getBarcodesFromBitmap(Bitmap bitmap) {
|
||||
// This function is vulnerable to OOM, so we try again with a smaller bitmap is we get OOM
|
||||
for (int i = 0; i < 10; i++) {
|
||||
try {
|
||||
return Utils.getBarcodeFromBitmapReal(bitmap);
|
||||
return Utils.getBarcodesFromBitmapReal(bitmap);
|
||||
} catch (OutOfMemoryError e) {
|
||||
Log.w(TAG, "Ran OOM in getBarcodeFromBitmap! Trying again with smaller picture! Retry " + i + " of 10.");
|
||||
Log.w(TAG, "Ran OOM in getBarcodesFromBitmap! Trying again with smaller picture! Retry " + i + " of 10.");
|
||||
bitmap = Bitmap.createScaledBitmap(bitmap, (int) Math.round(0.75 * bitmap.getWidth()), (int) Math.round(0.75 * bitmap.getHeight()), false);
|
||||
}
|
||||
}
|
||||
|
||||
// Give up
|
||||
return new BarcodeValues(null, null);
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
static private BarcodeValues getBarcodeFromBitmapReal(Bitmap bitmap) {
|
||||
static private List<BarcodeValues> getBarcodesFromBitmapReal(Bitmap bitmap) {
|
||||
// In order to decode it, the Bitmap must first be converted into a pixel array...
|
||||
int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()];
|
||||
bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
|
||||
@@ -240,15 +312,63 @@ public class Utils {
|
||||
LuminanceSource source = new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray);
|
||||
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));
|
||||
|
||||
List<BarcodeValues> barcodeValuesList = new ArrayList<>();
|
||||
try {
|
||||
Result barcodeResult = new MultiFormatReader().decode(binaryBitmap);
|
||||
MultiFormatReader multiFormatReader = new MultiFormatReader();
|
||||
MultipleBarcodeReader multipleBarcodeReader = new GenericMultipleBarcodeReader(multiFormatReader);
|
||||
|
||||
return new BarcodeValues(barcodeResult.getBarcodeFormat().name(), barcodeResult.getText());
|
||||
Result[] barcodeResults = multipleBarcodeReader.decodeMultiple(binaryBitmap);
|
||||
|
||||
for (Result barcodeResult : barcodeResults) {
|
||||
Log.i(TAG, "Read barcode id: " + barcodeResult.getText());
|
||||
Log.i(TAG, "Read format: " + barcodeResult.getBarcodeFormat().name());
|
||||
|
||||
barcodeValuesList.add(new BarcodeValues(CatimaBarcode.fromBarcode(barcodeResult.getBarcodeFormat()), barcodeResult.getText()));
|
||||
}
|
||||
|
||||
return barcodeValuesList;
|
||||
} catch (NotFoundException e) {
|
||||
return new BarcodeValues(null, null);
|
||||
return barcodeValuesList;
|
||||
}
|
||||
}
|
||||
|
||||
static public void makeUserChooseBarcodeFromList(Context context, List<BarcodeValues> barcodeValuesList, BarcodeValuesListDisambiguatorCallback callback) {
|
||||
// If there is only one choice, consider it chosen
|
||||
if (barcodeValuesList.size() == 1) {
|
||||
callback.onUserChoseBarcode(barcodeValuesList.get(0));
|
||||
return;
|
||||
}
|
||||
|
||||
// Ask user to choose a barcode
|
||||
// TODO: This should contain an image of the barcode in question to help users understand the choice they're making
|
||||
CharSequence[] barcodeDescriptions = new CharSequence[barcodeValuesList.size()];
|
||||
for (int i = 0; i < barcodeValuesList.size(); i++) {
|
||||
BarcodeValues barcodeValues = barcodeValuesList.get(i);
|
||||
CatimaBarcode catimaBarcode = barcodeValues.format();
|
||||
|
||||
String barcodeContent = barcodeValues.content();
|
||||
// Shorten overly long barcodes
|
||||
if (barcodeContent.length() > 22) {
|
||||
barcodeContent = barcodeContent.substring(0, 20) + "…";
|
||||
}
|
||||
|
||||
if (barcodeValues.note() != null) {
|
||||
barcodeDescriptions[i] = String.format("%s: %s (%s)", barcodeValues.note(), catimaBarcode != null ? catimaBarcode.prettyName() : context.getString(R.string.noBarcode), barcodeContent);
|
||||
} else {
|
||||
barcodeDescriptions[i] = String.format("%s (%s)", catimaBarcode != null ? catimaBarcode.prettyName() : context.getString(R.string.noBarcode), barcodeContent);
|
||||
}
|
||||
}
|
||||
|
||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
|
||||
builder.setTitle(context.getString(R.string.multipleBarcodesFoundPleaseChooseOne));
|
||||
builder.setItems(
|
||||
barcodeDescriptions,
|
||||
(dialogInterface, i) -> callback.onUserChoseBarcode(barcodeValuesList.get(i))
|
||||
);
|
||||
builder.setOnCancelListener(dialogInterface -> callback.onUserDismissedSelector());
|
||||
builder.show();
|
||||
}
|
||||
|
||||
static public Boolean isNotYetValid(Date validFromDate) {
|
||||
// The note in `hasExpired` does not apply here, since the bug was fixed before this feature was added.
|
||||
return validFromDate.after(getStartOfToday().getTime());
|
||||
@@ -276,6 +396,7 @@ public class Utils {
|
||||
|
||||
static public String formatBalance(Context context, BigDecimal value, Currency currency) {
|
||||
NumberFormat numberFormat = NumberFormat.getInstance();
|
||||
numberFormat.setGroupingUsed(false);
|
||||
|
||||
if (currency == null) {
|
||||
numberFormat.setMaximumFractionDigits(0);
|
||||
@@ -283,6 +404,7 @@ public class Utils {
|
||||
}
|
||||
|
||||
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
|
||||
currencyFormat.setGroupingUsed(false);
|
||||
currencyFormat.setCurrency(currency);
|
||||
currencyFormat.setMinimumFractionDigits(currency.getDefaultFractionDigits());
|
||||
currencyFormat.setMaximumFractionDigits(currency.getDefaultFractionDigits());
|
||||
@@ -292,6 +414,7 @@ public class Utils {
|
||||
|
||||
static public String formatBalanceWithoutCurrencySymbol(BigDecimal value, Currency currency) {
|
||||
NumberFormat numberFormat = NumberFormat.getInstance();
|
||||
numberFormat.setGroupingUsed(false);
|
||||
|
||||
if (currency == null) {
|
||||
numberFormat.setMaximumFractionDigits(0);
|
||||
@@ -304,19 +427,72 @@ public class Utils {
|
||||
return numberFormat.format(value);
|
||||
}
|
||||
|
||||
private static final double LargestPreciseDouble = (double) (1l << 53);
|
||||
static{
|
||||
assert (LargestPreciseDouble + 1.0) == LargestPreciseDouble;
|
||||
assert (LargestPreciseDouble - 1.0) != LargestPreciseDouble;
|
||||
}
|
||||
|
||||
private static BigDecimal fromParsed(Number parsed){
|
||||
if(parsed instanceof BigDecimal)
|
||||
return (BigDecimal) parsed;
|
||||
|
||||
final double d = parsed.doubleValue();
|
||||
if(d >= LargestPreciseDouble)
|
||||
return new BigDecimal(parsed.longValue());
|
||||
return new BigDecimal(d);
|
||||
}
|
||||
|
||||
static public BigDecimal parseBalance(String value, Currency currency) throws ParseException {
|
||||
// This function expects the input string to not have any grouping (thousand separators).
|
||||
// It will refuse to work otherwise
|
||||
NumberFormat numberFormat = NumberFormat.getInstance();
|
||||
numberFormat.setGroupingUsed(false);
|
||||
|
||||
if (numberFormat instanceof DecimalFormat) {
|
||||
((DecimalFormat) numberFormat).setParseBigDecimal(true);
|
||||
}
|
||||
|
||||
if (currency == null) {
|
||||
numberFormat.setMaximumFractionDigits(0);
|
||||
} else {
|
||||
numberFormat.setMinimumFractionDigits(currency.getDefaultFractionDigits());
|
||||
numberFormat.setMaximumFractionDigits(currency.getDefaultFractionDigits());
|
||||
int fractionDigits = currency.getDefaultFractionDigits();
|
||||
|
||||
numberFormat.setMinimumFractionDigits(fractionDigits);
|
||||
numberFormat.setMaximumFractionDigits(fractionDigits);
|
||||
|
||||
if (numberFormat instanceof DecimalFormat) {
|
||||
// If the string contains both thousand separators and decimals separators, fail hard
|
||||
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) numberFormat).getDecimalFormatSymbols();
|
||||
char decimalSeparator = decimalFormatSymbols.getDecimalSeparator();
|
||||
|
||||
// Translate all non-digits to decimal separators, failing if we find more than 1.
|
||||
// We loop over the codepoints to make sure eastern arabic numerals are not mistakenly
|
||||
// treated as a separator.
|
||||
boolean separatorFound = false;
|
||||
StringBuilder translatedValue = new StringBuilder();
|
||||
for (int i = 0; i < value.length();) {
|
||||
int character = value.codePointAt(i);
|
||||
|
||||
if (Character.isDigit(character)) {
|
||||
translatedValue.append(value.charAt(i));
|
||||
} else {
|
||||
if (separatorFound) {
|
||||
throw new ParseException("Contains multiple separators", i);
|
||||
}
|
||||
|
||||
separatorFound = true;
|
||||
translatedValue.append(decimalSeparator);
|
||||
}
|
||||
|
||||
i += Character.charCount(character);
|
||||
}
|
||||
|
||||
value = translatedValue.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(TAG, numberFormat.parse(value).toString());
|
||||
|
||||
return new BigDecimal(numberFormat.parse(value).toString());
|
||||
return fromParsed(numberFormat.parse(value));
|
||||
}
|
||||
|
||||
static public byte[] bitmapToByteArray(Bitmap bitmap) {
|
||||
@@ -766,6 +942,22 @@ public class Utils {
|
||||
if (icon != null) {
|
||||
textWhenNoImage.setVisibility(View.GONE);
|
||||
} else {
|
||||
// Manually calculate how many lines will be needed
|
||||
// This is necessary because Android's auto sizing will split over lines way before reaching the minimum font size and store names split over multiple lines are harder to scan with a quick glance so we should try to prevent it
|
||||
// Because we have to write the text before we can actually know the exact laid out size (trying to delay this causes bugs where the autosize fails) we have to take some... weird shortcuts
|
||||
|
||||
// At this point textWhenNoImage.getWidth() still returns 0, so we cheat by calculating the whole width of the screen and then dividing it by the amount of columns
|
||||
int textviewWidth = Resources.getSystem().getDisplayMetrics().widthPixels / context.getResources().getInteger(R.integer.main_view_card_columns);
|
||||
|
||||
// Calculate how wide a character is and calculate how many characters fit in a line
|
||||
int characterWidth = TextViewCompat.getAutoSizeMinTextSize(textWhenNoImage);
|
||||
int maxWidthPerLine = textviewWidth - textWhenNoImage.getPaddingStart() - textWhenNoImage.getPaddingEnd();
|
||||
|
||||
// Set amount of lines based on what could fit at most
|
||||
int maxLines = ((loyaltyCard.store.length() * characterWidth) / maxWidthPerLine) + 1;
|
||||
textWhenNoImage.setMaxLines(maxLines);
|
||||
|
||||
// Actually set the text and colour
|
||||
textWhenNoImage.setVisibility(View.VISIBLE);
|
||||
textWhenNoImage.setText(loyaltyCard.store);
|
||||
textWhenNoImage.setTextColor(Utils.needsDarkForeground(headerColor) ? Color.BLACK : Color.WHITE);
|
||||
@@ -842,4 +1034,12 @@ public class Utils {
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean deviceHasCamera(Context context) {
|
||||
try {
|
||||
return ((CameraManager) context.getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length > 0;
|
||||
} catch (CameraAccessException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public class CatimaExporter implements Exporter {
|
||||
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(database);
|
||||
while (cardCursor.moveToNext()) {
|
||||
// For each card
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor);
|
||||
|
||||
// For each image
|
||||
for (ImageLocationType imageLocationType : ImageLocationType.values()) {
|
||||
@@ -142,7 +142,7 @@ public class CatimaExporter implements Exporter {
|
||||
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(database);
|
||||
|
||||
while (cardCursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor);
|
||||
|
||||
printer.printRecord(card.id,
|
||||
card.store,
|
||||
@@ -176,7 +176,7 @@ public class CatimaExporter implements Exporter {
|
||||
Cursor cardCursor2 = DBHelper.getLoyaltyCardCursor(database);
|
||||
|
||||
while (cardCursor2.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor2);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor2);
|
||||
|
||||
for (Group group : DBHelper.getLoyaltyCardGroups(database, card.id)) {
|
||||
printer.printRecord(card.id, group._id);
|
||||
|
||||
@@ -9,8 +9,9 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
|
||||
import net.lingala.zip4j.ZipFile;
|
||||
import net.lingala.zip4j.io.inputstream.ZipInputStream;
|
||||
import net.lingala.zip4j.model.LocalFileHeader;
|
||||
import net.lingala.zip4j.model.FileHeader;
|
||||
|
||||
import org.apache.commons.csv.CSVFormat;
|
||||
import org.apache.commons.csv.CSVParser;
|
||||
@@ -20,9 +21,7 @@ import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@@ -130,11 +129,9 @@ public class StocardImporter implements Importer {
|
||||
throw new FormatException("Issue parsing CSV data", e);
|
||||
}
|
||||
|
||||
InputStream input = new FileInputStream(inputFile);
|
||||
ZipInputStream zipInputStream = new ZipInputStream(input, password);
|
||||
zipData = importZIP(zipInputStream, zipData);
|
||||
zipInputStream.close();
|
||||
input.close();
|
||||
ZipFile zipFile = new ZipFile(inputFile, password);
|
||||
zipData = importZIP(zipFile, zipData);
|
||||
zipFile.close();
|
||||
|
||||
if (zipData.cards.keySet().size() == 0) {
|
||||
throw new FormatException("Couldn't find any loyalty cards in this Stocard export.");
|
||||
@@ -144,7 +141,7 @@ public class StocardImporter implements Importer {
|
||||
saveAndDeduplicate(context, database, importedData);
|
||||
}
|
||||
|
||||
public ZIPData importZIP(ZipInputStream zipInputStream, final ZIPData zipData) throws IOException, FormatException, JSONException {
|
||||
public ZIPData importZIP(ZipFile zipFile, final ZIPData zipData) throws IOException, FormatException, JSONException {
|
||||
Map<String, StocardRecord> cards = zipData.cards;
|
||||
Map<String, StocardProvider> providers = zipData.providers;
|
||||
|
||||
@@ -152,9 +149,8 @@ public class StocardImporter implements Importer {
|
||||
String[] cardBaseName = null;
|
||||
String customProviderId = "";
|
||||
String cardName = "";
|
||||
LocalFileHeader localFileHeader;
|
||||
while ((localFileHeader = zipInputStream.getNextEntry()) != null) {
|
||||
String fileName = localFileHeader.getFileName();
|
||||
for (FileHeader fileHeader : zipFile.getFileHeaders()) {
|
||||
String fileName = fileHeader.getFileName();
|
||||
String[] nameParts = fileName.split("/");
|
||||
|
||||
if (nameParts.length < 2) {
|
||||
@@ -162,6 +158,7 @@ public class StocardImporter implements Importer {
|
||||
}
|
||||
|
||||
String userId = nameParts[1];
|
||||
ZipInputStream zipInputStream = zipFile.getInputStream(fileHeader);
|
||||
|
||||
if (customProvidersBaseName == null) {
|
||||
// FIXME: can we use the points-account/statement/content.json balance info somehow?
|
||||
@@ -302,6 +299,8 @@ public class StocardImporter implements Importer {
|
||||
} else if (!fileName.endsWith("/")) {
|
||||
Log.d(TAG, "Unknown or unused file " + fileName + ", skipping...");
|
||||
}
|
||||
|
||||
zipInputStream.close();
|
||||
}
|
||||
|
||||
return new ZIPData(cards, providers);
|
||||
|
||||
@@ -91,4 +91,8 @@ public class Settings {
|
||||
public String getColor() {
|
||||
return getString(R.string.setting_key_theme_color, mContext.getResources().getString(R.string.settings_key_system_theme));
|
||||
}
|
||||
|
||||
public boolean useVolumeKeysForNavigation() {
|
||||
return getBoolean(R.string.settings_key_use_volume_keys_navigation, false);
|
||||
}
|
||||
}
|
||||
|
||||
5
app/src/main/res/drawable/baseline_block_24.xml
Normal file
5
app/src/main/res/drawable/baseline_block_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM4,12c0,-4.42 3.58,-8 8,-8 1.85,0 3.55,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4,13.85 4,12zM12,20c-1.85,0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20,10.15 20,12c0,4.42 -3.58,8 -8,8z"/>
|
||||
|
||||
</vector>
|
||||
5
app/src/main/res/drawable/baseline_image_24.xml
Normal file
5
app/src/main/res/drawable/baseline_image_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
|
||||
|
||||
</vector>
|
||||
5
app/src/main/res/drawable/baseline_picture_as_pdf_24.xml
Normal file
5
app/src/main/res/drawable/baseline_picture_as_pdf_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM11.5,9.5c0,0.83 -0.67,1.5 -1.5,1.5L9,11v2L7.5,13L7.5,7L10,7c0.83,0 1.5,0.67 1.5,1.5v1zM16.5,11.5c0,0.83 -0.67,1.5 -1.5,1.5h-2.5L12.5,7L15,7c0.83,0 1.5,0.67 1.5,1.5v3zM20.5,8.5L19,8.5v1h1.5L20.5,11L19,11v2h-1.5L17.5,7h3v1.5zM9,9.5h1v-1L9,8.5v1zM4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM14,11.5h1v-3h-1v3z"/>
|
||||
|
||||
</vector>
|
||||
@@ -1,5 +0,0 @@
|
||||
<vector android:height="24dp" android:tint="?attr/colorControlNormal"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M7.41,18.59L8.83,20 12,16.83 15.17,20l1.41,-1.41L12,14l-4.59,4.59zM16.59,5.41L15.17,4 12,7.17 8.83,4 7.41,5.41 12,10l4.59,-4.59z"/>
|
||||
</vector>
|
||||
@@ -10,7 +10,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
@@ -20,11 +21,12 @@
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ScrollView
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="?attr/actionBarSize"
|
||||
android:padding="10dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -35,14 +37,17 @@
|
||||
android:id="@+id/version_history"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/version_history_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/version_history"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -52,7 +57,8 @@
|
||||
android:id="@+id/version_history_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/version_history_main" />
|
||||
@@ -74,14 +80,17 @@
|
||||
android:id="@+id/credits"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/credits_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/credits"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -91,7 +100,8 @@
|
||||
android:id="@+id/credits_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/credits_main" />
|
||||
@@ -113,14 +123,17 @@
|
||||
android:id="@+id/translate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/translate_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/help_translate_this_app"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -130,7 +143,8 @@
|
||||
android:id="@+id/translate_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/translate_platform"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -153,14 +167,17 @@
|
||||
android:id="@+id/license"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/license_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/license"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -170,7 +187,8 @@
|
||||
android:id="@+id/license_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/app_license"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -193,14 +211,17 @@
|
||||
android:id="@+id/repo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/repo_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/source_repository"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -210,7 +231,8 @@
|
||||
android:id="@+id/repo_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/on_github"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -233,14 +255,17 @@
|
||||
android:id="@+id/privacy"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/privacy_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/privacy_policy"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -250,7 +275,8 @@
|
||||
android:id="@+id/privacy_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/and_data_usage"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -273,17 +299,21 @@
|
||||
android:id="@+id/donate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/donate_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/donate"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
@@ -303,14 +333,17 @@
|
||||
android:id="@+id/rate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp">
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rate_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/rate_this_app"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -320,7 +353,8 @@
|
||||
android:id="@+id/rate_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/on_google_play"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -340,17 +374,20 @@
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:padding="8dp"
|
||||
android:id="@+id/report_error"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:background="?android:selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/report_error_main"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/report_error"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -362,9 +399,10 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/report_error_main"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:textSize="16sp"
|
||||
android:text="@string/on_github"
|
||||
android:padding="2dp"/>
|
||||
android:text="@string/on_github" />
|
||||
|
||||
<TextView
|
||||
android:importantForAccessibility="no"
|
||||
@@ -379,5 +417,5 @@
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
@@ -31,13 +31,6 @@
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/groups"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:tabMode="scrollable" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
|
||||
32
app/src/main/res/layout/alertdialog_row_with_icon.xml
Normal file
32
app/src/main/res/layout/alertdialog_row_with_icon.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/textView"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_baseline_archive_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/imageView"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -9,20 +9,20 @@
|
||||
tools:showIn="@layout/custom_barcode_scanner">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/camera_permission_denied_clickable_area"
|
||||
android:id="@+id/camera_error_clickable_area"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/camera_permission_denied_icon"
|
||||
android:id="@+id/camera_error_icon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="84dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/camera_permission_denied" />
|
||||
android:src="@drawable/camera_error" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/camera_permission_denied_title"
|
||||
android:id="@+id/camera_error_title"
|
||||
style="@style/TextAppearance.Material3.HeadlineLarge"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -30,12 +30,12 @@
|
||||
android:text="@string/cameraPermissionDeniedTitle" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/camera_permission_denied_message"
|
||||
android:id="@+id/camera_error_message"
|
||||
style="@style/AppTheme.TextView.NoData"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="@string/noCameraPermissionDirectToSystemSetting" />
|
||||
android:text="@string/zxing_msg_camera_framework_bug" />
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -34,8 +34,8 @@
|
||||
android:padding="@dimen/activity_scanner_padding">
|
||||
|
||||
<include
|
||||
android:id="@+id/camera_permission_denied_layout"
|
||||
layout="@layout/camera_permission_failed_layout"
|
||||
android:id="@+id/camera_error_layout"
|
||||
layout="@layout/camera_error_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
@@ -17,11 +18,11 @@
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<LinearLayout android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
@@ -127,7 +128,7 @@
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/importOptionApplicationButton" />
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
@@ -6,4 +6,5 @@
|
||||
android:paddingRight="8dp"
|
||||
style="@style/Widget.MaterialComponents.Chip.Filter"
|
||||
app:checkedIconVisible="true"
|
||||
android:textAppearance="?android:attr/textAppearance" />
|
||||
android:textAppearance="?android:attr/textAppearance"
|
||||
app:checkedIconTint="?attr/colorOnBackground"/>
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
@@ -29,7 +30,8 @@
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/tabs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent">
|
||||
<com.google.android.material.tabs.TabItem
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -46,9 +48,10 @@
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ScrollView android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -473,6 +476,6 @@
|
||||
</LinearLayout>
|
||||
</TableLayout>
|
||||
</TableLayout>
|
||||
</ScrollView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
@@ -42,12 +42,8 @@
|
||||
android:layout_height="match_parent"
|
||||
android:textStyle="bold"
|
||||
app:autoSizeTextType="uniform"
|
||||
app:autoSizeMinTextSize="12sp"
|
||||
app:autoSizeMaxTextSize="100sp"
|
||||
app:autoSizeStepGranularity="2sp"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:layout_margin="20dp" />
|
||||
android:padding="20dp" />
|
||||
|
||||
<ImageView
|
||||
android:importantForAccessibility="no"
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
android:layout_weight="1"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/card_id_view"
|
||||
android:id="@+id/main_image_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/text_size_large"
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
@@ -31,6 +32,7 @@
|
||||
android:id="@+id/groups"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
app:tabMode="scrollable"
|
||||
android:visibility="gone"/>
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
|
||||
@@ -6,53 +6,62 @@ Allan Nordhøy
|
||||
Heimen Stoffels
|
||||
Oğuz Ersen
|
||||
FC (Fay) Stegerman
|
||||
StoyanDimitrov
|
||||
Katharine Chui
|
||||
SlavekB
|
||||
StoyanDimitrov
|
||||
mondstern
|
||||
IllusiveMan196
|
||||
Altonss
|
||||
Michael Moroni
|
||||
GM
|
||||
Eric
|
||||
GM
|
||||
Petr Novák
|
||||
Joel A
|
||||
laralem
|
||||
大王叫我来巡山
|
||||
Joel A
|
||||
Taco
|
||||
pfaffenrodt
|
||||
Aayush Gupta
|
||||
Scrambled777
|
||||
HudobniVolk
|
||||
Nyatsuki
|
||||
Samantaz Fox
|
||||
Jiri Grönroos
|
||||
arno-github
|
||||
Cliff Heraldo
|
||||
Sergio Paredes
|
||||
Ankit Tiwari
|
||||
Milan Šalka
|
||||
Giovanni Donisi
|
||||
Priit Jõerüüt
|
||||
Samantaz Fox
|
||||
Balázs Meskó
|
||||
mdvhimself
|
||||
Milo Ivir
|
||||
Arno-github
|
||||
Ankit Tiwari
|
||||
Sergio Paredes
|
||||
Cliff Heraldo
|
||||
Jose Delvani
|
||||
mdvhimself
|
||||
Milan Šalka
|
||||
ikanakova
|
||||
Skrripy
|
||||
huuhaa
|
||||
大王叫我来巡山
|
||||
Projjal Moitra
|
||||
Quentin PAGÈS
|
||||
ikanakova
|
||||
waffshappen
|
||||
Eryk Michalak
|
||||
Ziad OUALHADJ
|
||||
Scrambled777
|
||||
Robin Liu
|
||||
Denis Shilin
|
||||
Alexander Ivanov
|
||||
Miha Frangež
|
||||
Silvério Santos
|
||||
ngocanhtve
|
||||
Quentin PAGÈS
|
||||
Projjal Moitra
|
||||
Denis Shilin
|
||||
Robin Liu
|
||||
Ziad OUALHADJ
|
||||
しいたけ
|
||||
Alexander Ivanov
|
||||
Viet Nguyen Hoang
|
||||
Miha Frangež
|
||||
stavpup
|
||||
ehrt74
|
||||
Virginie
|
||||
Tim Trek
|
||||
Renko
|
||||
Michael Gangolf
|
||||
rudy3
|
||||
Kim Seohyun
|
||||
Govind S Nair
|
||||
Freddo espresso
|
||||
arshbeerSingh
|
||||
MisterCosta96
|
||||
|
||||
@@ -13,6 +13,7 @@ _id,name,barcodeFormat
|
||||
015cf86e-c4b6-42b5-abed-5821492b2669,Campbells,ITF
|
||||
016c8380-d433-4eb1-b7a0-df6fd9254ec6,Friendlies Pharmacy,CODE_128
|
||||
0189b6a0-3f02-418f-872e-d5e354619a45,Mencke Gartencenter,EAN_8
|
||||
01b239f4-d1db-4311-a33b-bc8bb9c71c19,McEwan,CODE_128
|
||||
01ce8326-50e8-4787-9999-e509dfed15cb,Вигода Вопак,CODE_128
|
||||
01eafcc6-ee41-447f-bbce-7a93ffb90b6c,Mario Mikke,EAN_13
|
||||
01f88e2d-3eb4-4242-a32b-1a847a28e140,Crodux,CODE_128
|
||||
@@ -31,6 +32,7 @@ _id,name,barcodeFormat
|
||||
037f2420-273c-4ffe-9dd3-af22868b1b59,Al Pentolone,EAN_13
|
||||
038516b8-3cdd-4f96-9582-97caf9dc3a47,Dier Specialist,CODE_39
|
||||
039784f4-4fef-497e-8f03-f026655394ef,террапевтика,EAN_13
|
||||
039932ff-caec-4d40-aa9a-0ed185b5cf5f,FNV,CODE_128
|
||||
03b89b04-69cd-43cf-88eb-35760f092488,Мегаполис,CODE_128
|
||||
03d62f02-8266-493b-b4fd-95d5c853b87b,мта,EAN_13
|
||||
03fd0d65-b3dd-427b-9f7c-3554fe3dc99b,Happy Sport,EAN_13
|
||||
@@ -60,6 +62,7 @@ _id,name,barcodeFormat
|
||||
0777b427-2af5-4531-81c3-f7421dde9d63,Евразия Автозапчасти,EAN_13
|
||||
078a5228-818d-4a86-8726-c71dd27a3fdc,EU COVID-19 Certificado de Vacunacion,QR_CODE
|
||||
078fdcef-2e8a-4179-befe-5959cd588a7e,Клякса,EAN_13
|
||||
07a90343-0b80-4cb4-8571-b6a2419cff6e,Maracatú,CODE_128
|
||||
07f645dc-3127-4050-94ac-41f42cacdb74,Cats & Dogs,EAN_8
|
||||
081924f1-3eff-480a-a8a9-ec08eb4b75e7,Rossetti Market,EAN_13
|
||||
0821c8d1-4556-4178-af1b-fe4d1977127d,Feedo,CODE_128
|
||||
@@ -84,11 +87,14 @@ _id,name,barcodeFormat
|
||||
09e1c670-eac2-4077-8a66-b990c3ba1ed8,Gamble & Brown Cafe,CODE_39
|
||||
09e38952-3559-4432-821a-84fdee4923f8,Стройка,EAN_13
|
||||
0a047088-f9f9-47c5-a982-b307122f09fa,IGA Rewards,EAN_13
|
||||
0a058735-ecfd-4278-ae7a-9f6917193a3d,JBs Power Centre,CODE_128
|
||||
0a124613-4513-4a4f-b89a-6c4b645e395b,BoniChoix,CODE_128
|
||||
0a6c06b6-056d-4bf2-ae78-915a8c52d464,волгорост,EAN_13
|
||||
0a7c000b-39eb-4464-bc41-03d0e1f4a20f,Life Pharmacy ,CODE_128
|
||||
0ae08429-e2a2-4fe0-840a-e940ce9fd3e5,Zebra,EAN_13
|
||||
0b2502b7-f8d7-426e-b518-4482ee6115eb,Лоза,EAN_13
|
||||
0b4c67fb-bf76-46e8-9a3b-cb0acfe47e71,Giocheria,CODE_39
|
||||
0b539afa-e6b5-42a0-8f03-50d5de9f4af0,MediaMarkt Club Karte,QR_CODE
|
||||
0b600df8-f694-49d5-b5ee-56d0b47ab1bc,reima,EAN_13
|
||||
0b82965b-29df-4c9e-ae5f-70a5d10f1d32,Fanølinjen,CODE_128
|
||||
0bb951c2-c644-4a0b-92c0-754d739a55be,ZALY,EAN_13
|
||||
@@ -128,8 +134,9 @@ _id,name,barcodeFormat
|
||||
0f650862-0a1c-4596-b2f9-30fc8d3bf8d3,Lila Bäcker,QR_CODE
|
||||
0f69ba3f-6084-49a5-b959-24277008de45,CJ Express,CODE_128
|
||||
0f936e1f-b3ac-4a34-aad7-a18bd76150f2,FOTOLAB,CODE_128
|
||||
0fafa67a-b4d2-4365-9f68-c167d43c7070,I TOURS,CODE_128
|
||||
0fce03a0-6b7b-427c-a483-26a1169e73b0,EDMINS,EAN_13
|
||||
1,Accor Le Club,QR_CODE
|
||||
1,Accor Live Limitless,QR_CODE
|
||||
10,Aeroplan,CODE_128
|
||||
100,Esprit,ITF
|
||||
1000,Chemmart Pharmacy,CODE_128
|
||||
@@ -465,6 +472,7 @@ _id,name,barcodeFormat
|
||||
13,Amavita,EAN_13
|
||||
130,GNC,UPC_A
|
||||
1300,IZOD,CODE_128
|
||||
13004ca8-9095-40c2-aa98-1fcf6410efc7,Max Shop,CODE_128
|
||||
1301,La Quinta Inns,CODE_128
|
||||
1302,Pet Supplies Plus,UPC_A
|
||||
1303,Piazza Italia,EAN_13
|
||||
@@ -501,8 +509,8 @@ _id,name,barcodeFormat
|
||||
1331,Bizzbee,QR_CODE
|
||||
1332,Blue Box,CODE_39
|
||||
1333,Brice,EAN_13
|
||||
1334,Bricoman,GS1_128
|
||||
1335,Brico Marché,GS1_128
|
||||
1334,Tecnomat,GS1_128
|
||||
1335,Bricomarché,GS1_128
|
||||
1336,Camaieu,CODE_128
|
||||
1337,Casino Supermarchés,EAN_13
|
||||
1338,Castorama,CODE_128
|
||||
@@ -680,7 +688,7 @@ _id,name,barcodeFormat
|
||||
148f7495-e6f2-40b1-80cd-99b3632cb976,Slam,ITF
|
||||
149,Höffner,ITF
|
||||
1490,Basko,EAN_13
|
||||
1491,Unes,EAN_13
|
||||
1491,Unes,CODE_128
|
||||
1492,Grande Cinema 3,EAN_13
|
||||
1493,Eurobrico,EAN_13
|
||||
1494,Isola dei Tesori,EAN_13
|
||||
@@ -966,7 +974,7 @@ _id,name,barcodeFormat
|
||||
172,Jost,ITF
|
||||
1720,Wheelup,CODE_39
|
||||
1721,BIG4,CODE_128
|
||||
1722,Besson Chaussures,EAN_13
|
||||
1722,Besson Chaussures,CODE_128
|
||||
1723,Cactus,EAN_13
|
||||
1724,Idea Bellezza,CODE_39
|
||||
1725,Uyum,CODE_128
|
||||
@@ -983,7 +991,7 @@ _id,name,barcodeFormat
|
||||
1733,Mondial Tissus,EAN_13
|
||||
1734,Furet du nord,EAN_13
|
||||
1735,Maxxess,EAN_13
|
||||
1736,Devianne,EAN_13
|
||||
1736,Des Marques et Vous,EAN_13
|
||||
1737,Colruyt,ITF
|
||||
1738,Paul,EAN_13
|
||||
1739,JouéClub,EAN_13
|
||||
@@ -1044,7 +1052,7 @@ _id,name,barcodeFormat
|
||||
179,Kastner & Öhler,EAN_13
|
||||
1790,MY SIZE,CODE_39
|
||||
1791,PetO,CODE_128
|
||||
1792,AVEVE,EAN_13
|
||||
1792,Aveve,EAN_13
|
||||
1793,BIO-Planet,ITF
|
||||
1794,Brico,EAN_13
|
||||
1795,Club,CODE_128
|
||||
@@ -1343,9 +1351,10 @@ _id,name,barcodeFormat
|
||||
1e43877a-d4f1-4bff-bdb9-cd3346082a46,Scorpion Bay,EAN_13
|
||||
1e9469a4-8388-4ca9-a463-95ee73a0d953,FAMO,EAN_13
|
||||
1e9a127a-0451-4565-9560-eaa097d3808b,Grill'd,CODE_128
|
||||
1ed46ee6-993a-4053-a016-a0d67e26b91b,Lidl SK,CODE_128
|
||||
1ed46ee6-993a-4053-a016-a0d67e26b91b,Lidl,CODE_128
|
||||
1f01c3b1-08f7-4365-a0f9-f1c9bcbdf58a,Fresco,CODE_128
|
||||
1f15d8f3-c35c-46d6-8038-4c9f91a18909,Покров,EAN_8
|
||||
1f1ec99d-c8c6-42d3-ac6a-b9658a6e0a0d,xBarvy,EAN_13
|
||||
1f661d7a-d355-4590-8d33-0d61630958cc,NDG,CODE_39
|
||||
1f6624c6-5acc-4983-ac17-31b9004232d7,Afvalpas Rijssen-Holten,QR_CODE
|
||||
1f69337f-7604-4e7a-9031-f0ab182e7cd7,Дешёвая Аптека Вита,CODE_128
|
||||
@@ -1453,7 +1462,7 @@ _id,name,barcodeFormat
|
||||
2085,Billa,EAN_13
|
||||
2086,Billa,EAN_13
|
||||
2087,BIPA,EAN_13
|
||||
2088,Penny,EAN_13
|
||||
2088,PENNY,EAN_13
|
||||
2089,Penny,EAN_13
|
||||
209,MCard,CODE_128
|
||||
2090,Shoprite,CODE_128
|
||||
@@ -1492,6 +1501,7 @@ _id,name,barcodeFormat
|
||||
2112,Lindex,CODE_128
|
||||
2113,Twilfit,CODE_128
|
||||
2114,aClass,CODE_128
|
||||
21143721-38a4-466f-b04d-a3e90cb62bad,L'angolo,CODE_128
|
||||
2115,Clas Ohlson,CODE_128
|
||||
2116,Agrimarket,CODE_128
|
||||
2117,Starkki,CODE_128
|
||||
@@ -1600,7 +1610,7 @@ _id,name,barcodeFormat
|
||||
2201,Avance,CODE_128
|
||||
2202,berca.be,EAN_13
|
||||
2203,Brantano,EAN_13
|
||||
2204,Brooklyn,EAN_13
|
||||
2204,Brooklyn nv,EAN_13
|
||||
2205,CAMELEON,CODE_128
|
||||
2206,Carmi,CODE_39
|
||||
2207,E5 mode,ITF
|
||||
@@ -1940,7 +1950,7 @@ _id,name,barcodeFormat
|
||||
2488,Proximus,CODE_128
|
||||
2489,RS Bútor,CODE_128
|
||||
248957ba-dbad-414e-86e4-009fc4e5beee,Самоцветы плюс,ITF
|
||||
249,Countdown,CODE_128
|
||||
249,Woolworths,CODE_128
|
||||
2490,SEIBU PRINCE CLUB,CODE_128
|
||||
2491,サミット,EAN_13
|
||||
2492,The PUB,CODE_128
|
||||
@@ -2024,6 +2034,7 @@ _id,name,barcodeFormat
|
||||
2557,Artex Fashion,EAN_13
|
||||
2558,Askot,CODE_128
|
||||
2559,BUTIK,EAN_8
|
||||
255d84f7-144d-4d63-b6fd-f00a8e94641f,HUK Autowelt,QR_CODE
|
||||
256,Palmers,EAN_13
|
||||
2560,Dayli,EAN_13
|
||||
2561,De Banier,CODE_128
|
||||
@@ -2440,6 +2451,7 @@ _id,name,barcodeFormat
|
||||
28a46b11-8c45-4b2a-93dd-b7325a2fe013,Dialogues,CODE_128
|
||||
28b5866e-f195-4d68-b8a0-02cdb611af4f,Да Здоров! аптека,EAN_13
|
||||
28c5ee9a-cf66-4add-b71c-70b66be85570,Agraria,EAN_13
|
||||
28cc5dc7-61b4-4c95-a5a6-e125cc4bce9b,Aventurx,CODE_128
|
||||
28d93baa-c331-4df8-a85d-65eb86199732,Solar Studio,CODE_128
|
||||
28fbdd64-8715-4cdc-8c3f-df7259b1ba65,NOHO,EAN_13
|
||||
29,Heathrow Rewards,CODE_128
|
||||
@@ -2582,6 +2594,7 @@ _id,name,barcodeFormat
|
||||
2b1eb78e-9684-4434-ba9b-41f00fc5beab,Sensation Profumerie,EAN_13
|
||||
2b29bfc0-26a7-44cb-9d21-2a0bdb467320,Vertex Hotel,ITF
|
||||
2b39b807-6375-404c-bfd7-7f3135654258,Планета Игрушек,EAN_13
|
||||
2b6062ec-39b1-4ac4-b6d6-cf19048c9f3f,Coripet,UPC_A
|
||||
2b6992d5-615a-423a-b196-ab19a418686f,Mimco,CODE_128
|
||||
2b7d84ce-c573-44ea-8989-b23a13cf389b,Азбука Красоты,EAN_13
|
||||
2bc9768c-56a2-4d7d-8f1c-0be9f208b71b,Profile,CODE_128
|
||||
@@ -2852,6 +2865,7 @@ _id,name,barcodeFormat
|
||||
3199,Navyboot,EAN_13
|
||||
31d21202-2674-4c42-9a7e-a19b01d32b63,Vegetalis,EAN_13
|
||||
31d3cf0c-7522-4035-9256-7a712cb1a8b3,Канцелярия,EAN_13
|
||||
31db4e18-fb97-43d2-b026-c41f39d2faba,Bershka,CODE_128
|
||||
31eccc6d-babd-4fee-9ae8-db9a00fc1c63,Pharmactiv,EAN_13
|
||||
31f60f6d-633f-42af-b387-e5d0b4e2f45f,SPINNS,EAN_13
|
||||
32,Bauking,EAN_13
|
||||
@@ -3092,6 +3106,7 @@ _id,name,barcodeFormat
|
||||
3399,Taxi Jetax,CODE_128
|
||||
339bb076-12fd-4e56-899f-3acb79f5da53,Hafenhotel Meereszeiten,CODE_128
|
||||
33a430e4-35c7-43e7-98e8-5ce5d039ee70,VPZ,CODE_128
|
||||
33cb4886-5d06-473a-80b7-980ca2fb27c2,Bouwcenter Nobel,EAN_13
|
||||
33d16d2d-f51e-44c3-92d8-2c3616af2d0f,Apotheke Peer Farmacia,CODE_128
|
||||
33dea27e-c7a4-4e40-8621-32da990f7d82,EU COVID-19 Vaccinationsintyg - Andra vaccination Skott,QR_CODE
|
||||
33e82e4f-5541-4be1-aa4c-0f2987cfd78f,Данди,EAN_13
|
||||
@@ -3452,6 +3467,7 @@ _id,name,barcodeFormat
|
||||
37,Bessmann,ITF
|
||||
370,Virgin Atlantic,CODE_128
|
||||
3700,Go Auto,CODE_128
|
||||
37003c25-7bc7-4dd9-8a3a-8406005d0dcf,Scouts en Gidsen Vlaanderen,CODE_128
|
||||
3701,Good Earth,CODE_128
|
||||
3702,Hachem,CODE_128
|
||||
3703,Le Magasin,CODE_128
|
||||
@@ -3949,6 +3965,7 @@ _id,name,barcodeFormat
|
||||
4083,Каляев,EAN_13
|
||||
4084,Shingle Inn,CODE_128
|
||||
4085,Golden Casket,CODE_128
|
||||
40853977-7fdb-4815-a64e-85d2c70df347,OROCAJA,CODE_39
|
||||
4086,Pet City,CODE_128
|
||||
4087,chempro,EAN_13
|
||||
4088,merlo,CODE_39
|
||||
@@ -4313,7 +4330,7 @@ _id,name,barcodeFormat
|
||||
4387,Kremer,EAN_13
|
||||
4388,Gartencenter Nickl,EAN_13
|
||||
4389,Panarottis,QR_CODE
|
||||
439,Alitalia,CODE_128
|
||||
439,Volare ITA airways.,CODE_128
|
||||
4390,Simply Asia,CODE_128
|
||||
4391,Ultraliquors,CODE_128
|
||||
4392,Cum Books,CODE_128
|
||||
@@ -4565,6 +4582,7 @@ _id,name,barcodeFormat
|
||||
4599,Мокрый Нос,EAN_13
|
||||
45b55fa2-835b-4ae5-a318-16a66b4ec85b,Євро Мікс,EAN_8
|
||||
45cbba3f-f0d2-4837-8189-16b0ff2707f5,Барс,CODE_128
|
||||
45e6b637-a991-45ce-b72d-8f4df03d9f6b,Tradition,CODE_128
|
||||
45e6f6d3-e688-40f7-86e2-73e3803c86bd,KüstenCard mini/maxi,CODE_128
|
||||
45fa81a4-657e-414c-89ed-ebf1c49c0926,G'DAY REWARDS,CODE_128
|
||||
45faf9e5-321c-44a7-b641-7acee8126349,EU COVID-19 Vaccinatiebewijs - Eerste vaccinatieschot,QR_CODE
|
||||
@@ -4772,6 +4790,7 @@ _id,name,barcodeFormat
|
||||
4773,Maximiles,CODE_128
|
||||
4774,La Compagnie des Petits,CODE_128
|
||||
4775,Totem Family,CODE_128
|
||||
477515a9-2257-4d19-af18-3dbcfeb4acd9,Omni,CODE_128
|
||||
4776,La Jardinerie,CODE_128
|
||||
4777,La Plateforme du Bâtiment,EAN_13
|
||||
4778,Animal & Co,EAN_13
|
||||
@@ -5049,6 +5068,7 @@ _id,name,barcodeFormat
|
||||
4adaa99b-282d-4abe-87c8-b16d3958f4c2,Тюменский ЦУМ,CODE_39
|
||||
4ae5d40d-45ea-4188-bce8-eb3337733466,Garden Floridea,CODE_128
|
||||
4b197111-0d79-4ac5-aecd-5dca6643e390,Евродом,EAN_13
|
||||
4b50787c-052c-48e9-8bae-b01373cef1b8,Fbo Clothing,CODE_128
|
||||
4b511f9a-5c9c-4b9f-8c71-1631cb78456a,Семейная Аптека,EAN_13
|
||||
4b8e7174-b85b-4b82-99ab-b1faee2dfb8f,Diper,EAN_13
|
||||
4ba9de66-0015-49e1-a0d1-d24c2328eaa5,Witchery,EAN_13
|
||||
@@ -5063,14 +5083,18 @@ _id,name,barcodeFormat
|
||||
4ccb26a9-3a58-487f-9bdf-5cc4b042c0b3,UNCS,CODE_128
|
||||
4cd0da27-9a71-4eb0-88f4-23919b598828,Pins,CODE_128
|
||||
4d28254f-9ec6-4262-aa28-ee0bd7620b00,Леонардо,EAN_13
|
||||
4d4102e9-115a-4695-b764-c5534e1749a8,twd,EAN_13
|
||||
4d7b0d6e-2680-4c6b-bdac-8985df7aa8a3,大昌,EAN_13
|
||||
4d8c62b4-b4c5-40b0-9117-6e5022cf7950,MilleMiglia,CODE_128
|
||||
4dab7847-f728-4c34-80ea-a464238a3756,Волна,EAN_13
|
||||
4db2f926-b58d-4821-8f85-b02d3e32fbcb,Дом посуды,EAN_13
|
||||
4dd50f0e-05a1-4a32-97c2-1e5b570d0d9b,MIA,EAN_13
|
||||
4dd586bf-d2ed-4357-898c-11b648bcb796,Детский парк,EAN_13
|
||||
4dd5aa56-2f5c-4bb5-a281-211bb4e5463e,Joylab,CODE_128
|
||||
4e090085-f5bc-4f29-abcf-bb249dd3429d, SSENSE,CODE_128
|
||||
4e1001a2-a664-4d37-8b85-a71b02f9f6dc,xFarby,EAN_13
|
||||
4e24761b-17a7-4b7d-b04a-16f54076d03b,Forum+,EAN_13
|
||||
4e6622db-6fd3-405e-a60e-7157984da5ba,KiemKracht VZW,CODE_128
|
||||
4e95cfa4-3011-41c2-ad87-0c560cbd218c,Lincolnshire Co-operative,DATA_MATRIX
|
||||
4eb5bcd8-9467-44ce-b54c-fc69521431be,Мир Обоев,CODE_128
|
||||
4ed66bc0-04ee-458b-aac7-6bb7bdd35e5c,Пивотека,CODE_39
|
||||
@@ -5300,6 +5324,7 @@ _id,name,barcodeFormat
|
||||
519,Alimerka,CODE_128
|
||||
5190,Souris Mini,CODE_128
|
||||
5191,Лакомка,EAN_13
|
||||
51917108-3469-4067-b1da-8697d60fcfa6,Kingston Frontenac Public Library,CODE_128
|
||||
5192,AlphaZoo,CODE_128
|
||||
5193,БИГАМ,EAN_8
|
||||
5194,Sebastiano,EAN_13
|
||||
@@ -5406,6 +5431,7 @@ _id,name,barcodeFormat
|
||||
55cfc40e-469f-485f-ab26-823014fd8401,Seebauer,EAN_13
|
||||
55db252f-70a8-4da7-b0c2-484c8445e750,Kreativmarkt Hamburg,EAN_13
|
||||
55e96a49-7157-43cc-aaa7-9867d37cb05f,Народная линия,EAN_13
|
||||
55eb9a72-cd1d-49f7-aec1-1f44f6207983,Lina Giorgi snc,CODE_39
|
||||
55f414b7-b1a8-46f6-97ad-7f4f0867d8a9,EU COVID-19 Rokotustodistus - Toinen rokotus laukaus,QR_CODE
|
||||
56,Brax,CODE_128
|
||||
560,Punt Roma,CODE_128
|
||||
@@ -5492,6 +5518,7 @@ _id,name,barcodeFormat
|
||||
5afc2de6-6129-43f5-9caf-be3572d65a90,Sisal,CODE_128
|
||||
5b01f59e-97db-4105-9aab-94f56099fc49,real,GS1_128
|
||||
5b1da0f0-143e-492d-83a9-ad22957a54c6,Metro Lifestyle,CODE_39
|
||||
5b502f6e-7c38-4708-ae56-04f97638692a,Баня Стил,CODE_128
|
||||
5bb5ea85-8952-474e-be53-c5ac11f7428f,Farmec,EAN_13
|
||||
5bb6dc04-3000-475f-a5d4-ba9427989809,Bimbostore Toys Center,EAN_13
|
||||
5bf3f149-2217-45aa-b61b-eec9aeedf5d2,Werdich,CODE_39
|
||||
@@ -5509,6 +5536,7 @@ _id,name,barcodeFormat
|
||||
5d3de23f-b72e-4920-9e3b-1a413979a779,CityCard,CODE_128
|
||||
5d426084-854e-493e-a10d-7ce5d34d31fe,Farmacie Comunali Firenze,CODE_128
|
||||
5d51a06c-3af4-4400-9776-e3458190be87,Parisnail,EAN_13
|
||||
5d5d4520-ee6c-45ea-b5f1-11282a0673f4,Arriva,CODE_128
|
||||
5d695da3-f47b-4da8-b5ff-ea9d0fd9486b,Belaton,CODE_128
|
||||
5d866631-9858-4393-a5cf-eba96ca066cc,Kiwisun,CODE_128
|
||||
5db03921-3703-40d3-ba27-f7d3ff5a40ba,Prodor Supermarché et Boucherie,EAN_13
|
||||
@@ -5518,6 +5546,7 @@ _id,name,barcodeFormat
|
||||
5e18e98b-ad75-426a-a4ac-a80496906906,Beauty X,EAN_13
|
||||
5e27a7ae-ad95-4cce-b383-85a4eb822eaa,Supra Baby,EAN_13
|
||||
5e402125-50f9-4de9-8769-ce4e0dc1d1a1,Romaest,CODE_128
|
||||
5e46de16-6ebf-4d17-933f-2f782df8b3fb,Prima Company,CODE_128
|
||||
5e6edac6-a458-4488-861c-f8f403f4b1e1,MABÙ,QR_CODE
|
||||
5ee2ee34-5027-4535-a55f-657c1a092d5d,Lady Sharm,CODE_128
|
||||
5f01e866-3ef8-46e4-a40a-555594849eb7,ЦУМ,CODE_128
|
||||
@@ -5532,6 +5561,7 @@ _id,name,barcodeFormat
|
||||
6,ACS,CODE_128
|
||||
60,Transgourmet,EAN_13
|
||||
600,Humanic,ITF
|
||||
60046ae3-b41c-4a08-a012-d8e921e8aab0,Multaparts,CODE_128
|
||||
600bf563-b7b2-488a-9e21-0ccc63a67b1d,LAUF!,EAN_13
|
||||
601,Beauty Alliance,CODE_128
|
||||
6014a435-c656-4bf7-bcd6-fa46ed28bac0,Окраина,EAN_13
|
||||
@@ -5554,10 +5584,12 @@ _id,name,barcodeFormat
|
||||
61,Centro,EAN_13
|
||||
610,CAA,CODE_128
|
||||
611,Calgary Co-op,EAN_13
|
||||
6110d522-b979-46ca-a313-ded4eac7db71,Telecomshop Twente,CODE_128
|
||||
612,Canada Post,CODE_128
|
||||
613,Canadian Tire,CODE_128
|
||||
614,Change Lingerie,CODE_39
|
||||
615,SCENE,CODE_128
|
||||
615a7629-0f60-4613-b41a-e1f571f5c20a,Goelia,CODE_128
|
||||
615ddf35-4934-4442-b4df-54b065184476,Сигма,EAN_13
|
||||
616,Denny's,CODE_128
|
||||
617,DeSerres,CODE_128
|
||||
@@ -5609,6 +5641,7 @@ _id,name,barcodeFormat
|
||||
639,National Car Rental,CODE_39
|
||||
63ace5b1-39bb-4486-87a8-692caab2c76b,куулклевер,QR_CODE
|
||||
63ad5b7e-ab54-45f2-9224-2da0122a21eb,Forum TC,EAN_13
|
||||
63b32bf3-2e99-4487-bc45-7b70132fe53c,Checkers,CODE_128
|
||||
63bcf094-bbc1-4caa-adfb-b6e015295f43,Парфюм Лидер,EAN_13
|
||||
63bee835-2e9d-4656-b7b6-4b9e9a024470,Арт-Квартал,EAN_13
|
||||
63c87418-cb15-4294-a872-035a03da3a62,Belleplant,EAN_13
|
||||
@@ -5644,7 +5677,7 @@ _id,name,barcodeFormat
|
||||
657d61fe-7714-4aed-a3d5-6c718c6e9c2a,EU COVID-19 Vaccinationsattest - Første vaccinationsskud,QR_CODE
|
||||
658,Thrifty Foods,CODE_128
|
||||
659,Trade Secret,UPC_A
|
||||
659c40c9-f997-44a8-b6a8-a29df616c4b2, Alfa-Tec,EAN_13
|
||||
659c40c9-f997-44a8-b6a8-a29df616c4b2,Alfa-Tec,EAN_13
|
||||
65e6e477-57a3-41c1-88b2-330a6d0cf8bd,Nobis,PDF_417
|
||||
65e848d6-edd5-401e-9b12-952a5c6fdf47,Джерела Здоров'я,CODE_39
|
||||
66,BCF,CODE_128
|
||||
@@ -5652,6 +5685,7 @@ _id,name,barcodeFormat
|
||||
661,WestJet Rewards,CODE_128
|
||||
66104d31-9ae9-440d-b316-0d07a4319af3,Farma Fedeltà,CODE_128
|
||||
662,Würzenbach Drogerie,EAN_13
|
||||
662e6cc0-3ebe-47db-badf-b31b626ea70c,The Papanui Club,QR_CODE
|
||||
66335d92-4622-4334-8384-4a6d5f61f239,Zinger,EAN_13
|
||||
664,American Eagle,ITF
|
||||
665,TJX Style+,CODE_128
|
||||
@@ -5696,6 +5730,7 @@ _id,name,barcodeFormat
|
||||
687,Thai - Royal Orchid Plus,PDF_417
|
||||
688,SportIT,EAN_13
|
||||
689,Foster Calzature,EAN_13
|
||||
68ac6315-08c6-471d-b2e0-ad42d1a091c8,100 Vetrine,UPC_A
|
||||
68c2495e-937d-4e71-a4ad-85f066df0339,Jardival,EAN_13
|
||||
68c69327-cce9-4de8-a062-b895c062ee60,Iden,EAN_13
|
||||
68d4b527-e419-4346-8078-a4ef07a04f00,Lehner Versand,CODE_128
|
||||
@@ -5729,6 +5764,7 @@ _id,name,barcodeFormat
|
||||
6a5ac3f8-04cb-4d14-884f-1231b72228e8,Топаз,EAN_13
|
||||
6a7b1bc8-eca7-4323-9080-68af9414254f,CastoPro,CODE_128
|
||||
6a85186a-bfd9-4078-a5da-db1b4e1fb526,Molders,CODE_128
|
||||
6a8a8971-821c-46ce-a638-1a8585c9dedd,Booking.com,CODE_128
|
||||
6aa89061-d0b5-46a2-9019-b1cb7146e485,Just Plastics,CODE_128
|
||||
6aa9bd9a-b099-4997-9fa1-b0a7525c6ec7,AZ Casa,EAN_13
|
||||
6ab113ff-77e9-4029-9b23-e420eda105e3,Ehrmann,CODE_39
|
||||
@@ -5767,6 +5803,7 @@ _id,name,barcodeFormat
|
||||
6faff0bd-9236-41f8-9c67-7b546c68085a,BVS,EAN_13
|
||||
6fb31971-1cf0-468e-9f85-ebf6133ad3aa,у Палыча,CODE_128
|
||||
6fb45bab-d4be-49fd-8b58-d841110eb0cb,AL 48,EAN_13
|
||||
6fb4ec1e-c6b7-4597-82a3-5c8d4d69ad4f,Rachelle Béry,CODE_128
|
||||
6fe38419-76d2-4b5c-983e-6dbed7822d62,GiorgioMare,CODE_128
|
||||
6fea059e-d9ec-4063-8ea4-cba5ac035942,L'arca di Noè,EAN_8
|
||||
6ff46a57-e3c9-457e-bfb4-aa922c4c41b4,BENZ,CODE_128
|
||||
@@ -5855,6 +5892,7 @@ _id,name,barcodeFormat
|
||||
740308f3-fda8-4b83-9d86-d13592ef30ab,Dress Code,EAN_13
|
||||
741,O'STIN,EAN_13
|
||||
74135c63-c1ab-47b8-8d99-4d9dcf602eda,VOIX INTERIORS,CODE_128
|
||||
7415ddc5-3d77-410c-a6f8-ab399518a82c,Tradition,CODE_128
|
||||
742,Reebok,CODE_128
|
||||
742069df-a468-45d5-8cf6-cc152b4aefaf,Bacher Garten-Center,EAN_13
|
||||
743,Savage,CODE_128
|
||||
@@ -5902,6 +5940,7 @@ _id,name,barcodeFormat
|
||||
764,Васаби,CODE_128
|
||||
7648aaa6-671e-4396-9e4e-759aa66c9f4f,Bouwcenter,EAN_13
|
||||
7649e44e-66e4-4af1-a913-87a40c8ae739,Office Centre,CODE_128
|
||||
764a67a4-8087-41d1-b53a-d73b8380d5cf,Handy Home,CODE_128
|
||||
765,Вестер,CODE_128
|
||||
766,Виктория,EAN_13
|
||||
767,Газпром АЗС,EAN_13
|
||||
@@ -5934,6 +5973,7 @@ _id,name,barcodeFormat
|
||||
780bd58f-acbb-493c-869d-63f7a93292f3,Schnitz,CODE_128
|
||||
781,Кофе Хауз,CODE_128
|
||||
782,Красный Куб,CODE_128
|
||||
78242148-6c07-4698-9ec1-56017dc687b6,Ideacasa Mercatone,EAN_13
|
||||
782b0597-f7e4-4509-ba4b-a9fc35d72b4d,Рада,EAN_13
|
||||
782f7353-ec4c-49a8-9aac-1f7d28f4cab2,Remix Moda,EAN_13
|
||||
783,Лукойл / Ликард,CODE_128
|
||||
@@ -5988,7 +6028,7 @@ _id,name,barcodeFormat
|
||||
7bd30784-434b-4d73-8dc1-5b5516723eda,Pascal Coste,EAN_13
|
||||
7bd61c87-b62d-439a-92e9-cc435345cb53,Infinity Fashion,CODE_39
|
||||
7c138f2e-37f9-46d4-ac65-2b20ff90a629,Nai Harn Gym,CODE_39
|
||||
7c1b39b5-b938-432e-b0be-3c196320bd37,Checkers,QR_CODE
|
||||
7c1b39b5-b938-432e-b0be-3c196320bd37,Checkers,CODE_128
|
||||
7c5a9dd0-28b0-4be1-b53f-cac4246990b4,Марафон Обувь,CODE_128
|
||||
7c60823a-e9fc-447f-811d-589bf1f95342,Пчёлка маркет,UPC_A
|
||||
7c77ce3b-02ad-436b-a4aa-62a6d5d583e3,Plainview-Old Bethpage Public Library,CODABAR
|
||||
@@ -6004,6 +6044,7 @@ _id,name,barcodeFormat
|
||||
7ce87cdb-4c6b-437f-a693-dca518f7436a,Yo-get-it,CODE_39
|
||||
7d02542c-fac0-45b5-bc90-d74240715c56,Travis Perkins,CODE_128
|
||||
7d11f040-b0a2-4109-bdf1-25711d48d451,Consorzio Infarmacia,EAN_13
|
||||
7d168ca5-9370-47bd-ac3e-bf1e1e26f1ec,RISPAWORLD,CODE_128
|
||||
7d41888d-cd7d-42ef-bf93-9aeda5ae13f6,Kepro,EAN_13
|
||||
7d4345b8-448b-4e12-a1c5-c6e031de2352,Nove25,CODE_128
|
||||
7d520d1c-611e-4e81-9937-41a9828e6b08,EU COVID-19 Vaccinatiebewijs,QR_CODE
|
||||
@@ -6014,6 +6055,7 @@ _id,name,barcodeFormat
|
||||
7da65ee3-d140-469c-b3ee-217272ac98d4,Kippie,QR_CODE
|
||||
7db0f727-13b4-48c1-8618-550155a878a2,Imperial Games,CODE_128
|
||||
7db8a067-1c33-4cd9-9706-31a2592f719a,милый дом,GS1_128
|
||||
7dd14421-2fe6-494f-889b-dd8920f61091,Mastro Tortello,QR_CODE
|
||||
7dd1b9ca-2a5b-4f3c-8c10-8bc216ff5d2f,Sokolov Jewelry,CODE_128
|
||||
7df2728d-3dc9-4724-8756-965e937674e2,Marriott Bonvoy,QR_CODE
|
||||
7e3da299-047b-4981-8ff3-e5355c7289b2,GIROPHARM ,EAN_13
|
||||
@@ -6040,6 +6082,7 @@ _id,name,barcodeFormat
|
||||
8045996b-082d-4333-b631-54dc992ebef0,Coop,EAN_13
|
||||
805,Старик Хоттабыч,CODE_128
|
||||
806,Stockmann,CODE_128
|
||||
8069f84c-3b04-4b0a-87fd-d89230547e8b,Happy Pets,QR_CODE
|
||||
807,Сток-центр,EAN_13
|
||||
8070cf0a-9721-4fe7-b010-6fdca61349fc,Epping Plaza Hotel,CODE_128
|
||||
8077e001-6db6-4796-bd82-6716ea5e116e,Palace Cinemas,CODE_39
|
||||
@@ -6061,6 +6104,7 @@ _id,name,barcodeFormat
|
||||
813f818a-e99d-49f2-af6e-653a9bcaab09,Bazar Avenue,EAN_13
|
||||
814,ФотоПлюс,CODE_128
|
||||
815,ЦентрОбувь,EAN_13
|
||||
8153abb1-248f-4af9-a7f8-dd83cdacdc7f,TEKBIR MARKET,CODE_128
|
||||
816,ЭКОНИКА,EAN_13
|
||||
8166ded7-42b6-47b8-a5dc-032954e82db7,bugatti,EAN_13
|
||||
817,Эстель Адони,EAN_13
|
||||
@@ -6071,7 +6115,7 @@ _id,name,barcodeFormat
|
||||
81c5ea7b-aa89-47f8-a22e-297207616f0b,Taurus Sports,CODE_128
|
||||
81dd0d8d-4613-400e-8cbd-b2189a88a22d,EULIVIA Apartments,CODE_128
|
||||
81e7b9b8-826c-4f9e-9c61-7568a454afa5,Industriya Krasoty,EAN_13
|
||||
82,Desigual,CODE_39
|
||||
82,Desigual,QR_CODE
|
||||
820,Air Miles,EAN_13
|
||||
820b5de7-a25a-4d30-ac74-3a70fe682bfd,Мир Электроники,CODE_128
|
||||
821,Ajax Amsterdam,CODE_128
|
||||
@@ -6135,6 +6179,7 @@ _id,name,barcodeFormat
|
||||
848,Lake Side,ITF
|
||||
848939e3-7e55-40af-a46a-a0b0b434bbcf,Планета ZOO,EAN_13
|
||||
849,Le Ballon,ITF
|
||||
8495d3db-8532-4bef-a58f-3a77479ff134,C&A,CODE_128
|
||||
84a82d8b-1d4f-4673-b1e2-b115bbe5b618,Soul Origin,CODE_128
|
||||
84faf272-0010-4f93-8aa1-154caaa11ac2,Pro-Duo Nur für Profis,EAN_8
|
||||
85,Diamond Club,CODE_128
|
||||
@@ -6194,6 +6239,7 @@ _id,name,barcodeFormat
|
||||
87737e38-8052-4fdc-a90a-3511b9157481,PETS&CO,CODE_128
|
||||
878,Jula,CODE_39
|
||||
879,KappAhl,CODE_128
|
||||
879a9dd3-45e3-4633-9376-9183fee6ab3e,Bernardi’s Marketplace,CODE_128
|
||||
87b3f071-9af7-4163-b512-679717b696ac,Caucciu,EAN_13
|
||||
87b925d1-4d9a-47e3-9e54-deaef1981b77,Impfausweis,QR_CODE
|
||||
87d141a6-cac3-4d39-9357-a6365850e57f,Coeur de frais,CODE_128
|
||||
@@ -6247,13 +6293,14 @@ _id,name,barcodeFormat
|
||||
8a0dca6e-de83-4e48-a42d-a3009da56653,Park 'N Fly,CODE_39
|
||||
8a25357e-ebc3-4ae1-b7fc-a10ff3b1abd0,Конфил,CODE_128
|
||||
8a53dffe-df27-40f0-b2ff-58e53add0b3e,La Cartissima,EAN_13
|
||||
8a59226e-9895-4924-8616-345549a56aec,Munhowen Drinx,CODE_128
|
||||
8a702666-368b-48a5-96fd-4e10aac5ae7f,Brooklyn Jeans,ITF
|
||||
8a8095fe-f449-4242-83a1-0d3055874233,Little Sparrow,CODE_128
|
||||
8a9c58f4-4db3-4aef-8cf0-d2caa0fcc4d1,EU COVID-19 Potrdilo o cepljenju,QR_CODE
|
||||
8aa58d48-ad60-4b6d-aa1d-054f94b6453b,Granola,PDF_417
|
||||
8ac5093b-8fc4-49d6-b271-dd845252b60c,Idea Verde Maschi,CODE_128
|
||||
8ad83ece-2e55-4937-80c9-04584c598439,COM,EAN_13
|
||||
8b0f2db1-ae97-4af8-8e82-c4067a4ac322,Toyota,CODE_128
|
||||
8b0f2db1-ae97-4af8-8e82-c4067a4ac322,Ma Toyota Extra,CODE_128
|
||||
8b398aea-e5bd-484d-bdf2-5030bacf9157,Thèoria Milano,CODE_128
|
||||
8b4c413c-effc-4912-9a34-6baea2972199,Karla,CODE_39
|
||||
8b653178-4f49-4f73-9091-7763e039b539,Aléa Déco,CODE_128
|
||||
@@ -6304,6 +6351,7 @@ _id,name,barcodeFormat
|
||||
903,W.KRUK,CODE_128
|
||||
904,Galeria Wileńska,UPC_A
|
||||
905,YES,EAN_13
|
||||
90574104-b485-489f-9872-3d32b7e07c59,America Today,CODE_128
|
||||
906,ZiKO Klub,EAN_13
|
||||
9062c2a3-eeb1-4797-afb6-41a0394bb481,Městská knihovna - Česká Třebová,EAN_13
|
||||
90705634-f152-487c-97eb-27e1728285ef,Миртек,EAN_13
|
||||
@@ -6332,6 +6380,7 @@ _id,name,barcodeFormat
|
||||
91915513-4447-47b0-93ae-d489f6ee3a97,Chrome,EAN_8
|
||||
92,Düsseldorf International,EAN_13
|
||||
920,Drummond Golf,CODE_39
|
||||
92063e91-526a-4327-ba87-f487bfaec724,Rue du Commerce,CODE_128
|
||||
920c9bd0-d85c-42c6-9301-fc1ddedd38c2,Idea Casa,CODE_128
|
||||
920ce49c-9728-41f1-b9e9-9f9d06f53d92,Русские Самоцветы,EAN_13
|
||||
921,NWZ,EAN_13
|
||||
@@ -6368,11 +6417,13 @@ _id,name,barcodeFormat
|
||||
935ef7c3-a93c-43e1-9abd-075bd05c3051,Форне,EAN_13
|
||||
936,Orlen - Vitay,CODE_128
|
||||
937,Wojas,EAN_13
|
||||
937cef67-4a01-42fc-9f51-0a3f3210a686,Idea Città Company,GS1_128
|
||||
938,Sizeer,CODE_128
|
||||
939,T2 Tea,CODE_128
|
||||
93a8cca4-73cd-405c-8142-359a41127416,しまむらグループ,CODE_128
|
||||
93a9836f-0984-45ee-97c6-3e6675a34b11,Ludwig Beck,QR_CODE
|
||||
93b76ad4-76f3-4132-8fe5-972f6ca5eb8a,Київфарм,EAN_13
|
||||
93bda8ac-884e-4db0-ab72-09e12f86a3d2,Naturino Family Store,CODE_39
|
||||
93c53a6b-2efb-4167-aa67-c4905f1692b1,ВелоДрайв,EAN_13
|
||||
93d1d2d1-801d-4293-a1f1-cdf314ba341a,Nilufar,EAN_13
|
||||
93d42408-df2a-42fd-a10c-9f9c725e8000,TuttintiMO,UPC_A
|
||||
@@ -6420,6 +6471,7 @@ _id,name,barcodeFormat
|
||||
962,Монро,EAN_13
|
||||
963,Jeans Symphony,EAN_13
|
||||
9630a33b-0869-4246-91db-80f928bd7b3a,Harfa Sport,EAN_13
|
||||
96394b6b-b91f-4fbd-991c-242b7189e0b0,Shoprite,CODE_128
|
||||
963a19ff-687c-434a-a960-c5e9c6d27c1c,La Cage,CODE_128
|
||||
964,Спектр,EAN_13
|
||||
964bee1b-84ac-42cb-ac20-b182e043a983,SIR,CODE_39
|
||||
@@ -6469,6 +6521,7 @@ _id,name,barcodeFormat
|
||||
989,Toys Center,EAN_13
|
||||
98959593-9b79-4d3a-98bf-fd965d99825e,ташир пицца,PDF_417
|
||||
98afc021-2350-4686-89de-03bc9bb686a4,Coeliac Australia,EAN_13
|
||||
98c597ea-20b1-4d9e-a6ae-0ed84e0f591d,Juttu,CODE_128
|
||||
98d5694e-ee5e-4f60-9a32-0ac43d66f54f,Vaprio,CODE_128
|
||||
99,Ernsting's Family,ITF
|
||||
990,Nando's,CODE_128
|
||||
@@ -6530,6 +6583,7 @@ _id,name,barcodeFormat
|
||||
9dc29233-9613-4851-8630-15b7b39222c3,Kasztelan,CODE_128
|
||||
9dc3174d-0990-4d88-a4d6-3c7a6431160d,Янтарь,EAN_13
|
||||
9dc63493-8062-498a-99be-db701dfc03a4,Farmacia,CODE_128
|
||||
9dd46ad3-336b-4af2-9cbc-4526140558ef,Kiriel,EAN_13
|
||||
9e02cf7a-da20-428d-a363-952f7a3fb25c,Kéddo,EAN_13
|
||||
9e82e20d-4da0-46c0-bb94-c2ba7b9b3d74,Индустрия красоты,EAN_13
|
||||
9ec73fed-0974-4b7c-98e0-27aba810e8e1,Spielwarentraum,CODE_128
|
||||
@@ -6541,6 +6595,7 @@ _id,name,barcodeFormat
|
||||
9fd0773f-f0ee-476c-8351-c02fb65b9360,Plus Market,EAN_13
|
||||
a00761f0-abf1-4690-a95a-b18e41c527d2,Pet and Pool,CODE_128
|
||||
a017f67b-3483-4587-97a0-2c5c4af6834e,SchuhMarke,CODE_128
|
||||
a0284158-4eaf-4891-9768-f93e1049413a,Десятка,EAN_13
|
||||
a04e9cdb-caec-4f4f-bf96-9e40fd90cb09,PharmaSave,CODE_128
|
||||
a05edd71-80dd-4e23-87cf-5df65a193281,Andre Tan,EAN_13
|
||||
a08ccd9d-76ce-4245-8582-24d2840ff7b9,Chanel,CODABAR
|
||||
@@ -6562,6 +6617,7 @@ a238f465-ff8e-4077-b5fe-a1f250ed90d9,BJ's Wholesale,UPC_A
|
||||
a2756aea-2ca4-4870-811e-100871fdb73e,Pratiko,EAN_13
|
||||
a29668f6-dd2e-4281-917e-49e28ebff6a1,Koloria,CODE_128
|
||||
a2b352d9-5d5d-4080-9f52-eb6a798aa6c6,Ferlenz,CODE_128
|
||||
a322cee9-b5c6-4384-a365-c970f335cc5c,Erdkorn,QR_CODE
|
||||
a323e0ec-2b0b-4a82-a950-11f7516f2584,OnePass,EAN_13
|
||||
a36556e0-433a-4b16-b72c-4751a386d707,EU COVID-19 Impfzertifikat - Erstimpfung,QR_CODE
|
||||
a3828047-ff01-4eb4-be10-6e4d635ca029,Leffers,ITF
|
||||
@@ -6590,6 +6646,7 @@ a6060858-7d83-4f60-8318-b80635013f45,Detershop,EAN_13
|
||||
a645973d-7e87-46ab-8c77-0380ca06ae32,Perth Zoo,CODE_39
|
||||
a65e3023-fa06-47c0-bfdc-4dc79f54c825,丁丁藥局,EAN_13
|
||||
a69154f5-16a8-4543-bb49-b7a68bb3d301,EU COVID-19 Potvrda o cijepljenju,QR_CODE
|
||||
a69d8b79-a0e7-422b-a149-64c66b23aea4,Plus More,CODE_128
|
||||
a6aa66ba-00b8-4922-b628-98cea029c9e2,Coop,EAN_13
|
||||
a6ab3df9-10bc-47df-bed4-839fe1e908be,零食物語,CODE_128
|
||||
a6b2c527-afbc-4e71-ae24-e5e5e270d474,Pappert,PDF_417
|
||||
@@ -6599,6 +6656,7 @@ a7634961-1509-4902-9b25-714ef789e926,2HB,EAN_13
|
||||
a78ee36a-3682-404f-9c83-307c1a6b421e,Moda Lina,EAN_13
|
||||
a79b9a92-9821-4824-978e-1a257abfbaff,Wormland,CODE_128
|
||||
a7b3e795-4746-45a4-9c80-d331fb051632,BonBon,EAN_13
|
||||
a7e263c3-75fd-4ac2-98ea-0e7b3e425a74,SUPEREFECTIVO,CODE_39
|
||||
a7f1c8c5-2895-4a74-98ac-9740e7c59922,Coffeelat,QR_CODE
|
||||
a8090907-7e2e-4038-8831-0c72adaa0664,US FashionStore,EAN_13
|
||||
a83b00dc-1bfd-41b6-9fee-3c7f5d33fef5,Baden,EAN_13
|
||||
@@ -6628,6 +6686,7 @@ aaa82398-d78f-46d6-bfb5-a40843e94cc8,CLEVER WEAR,EAN_13
|
||||
aabf2ea4-170c-42e4-906b-ea1253ebf580,Родные масла,EAN_13
|
||||
aac03de2-6c97-4bd9-8d72-a7bba15bea6d,La capsuleria,EAN_13
|
||||
aae4f87d-ee8c-4ff0-9cb2-88c478b7a0dc,Bonjour,EAN_13
|
||||
aae6aab3-e5fb-47c1-b6c1-c30c3f386793,Netto,CODE_128
|
||||
aaf65c10-a78e-4b18-8c79-371d5cdef871,La Provençale,CODE_39
|
||||
ab0c09c4-d1cc-40a4-8b46-f101dc376655,Trade group SMIT,CODE_128
|
||||
ab0c5857-5b3d-4ac3-8910-ec6b8c49a0dc,Three,EAN_13
|
||||
@@ -6636,6 +6695,7 @@ ab245924-7af0-4996-84a2-f19a6b6a62fa,Hollister,CODE_128
|
||||
ab37459c-4368-4684-9ffa-3ac84c69e87a,ДомДоктор,EAN_13
|
||||
ab4a36d9-9a11-4575-a6cb-1bd053c6e00f,СБА,CODE_128
|
||||
ab6de5de-ea68-47d6-87ad-884e63f63f48,EU COVID-19 Удостоверение за ваксинация - Първа ваксинация,QR_CODE
|
||||
ab73cd57-b075-425f-afe6-868e56207a42,Rewe,QR_CODE
|
||||
ab7a0e82-ad67-40fb-a85f-83cdd10fb44a,Depot,QR_CODE
|
||||
ab9d5459-25c3-4040-bff0-b7804375065f,Забіяка,CODE_128
|
||||
aba38815-1a55-456f-84b6-0321d8d34102,Андреич,EAN_13
|
||||
@@ -6676,11 +6736,13 @@ b000bec7-fe1d-4a01-8134-7e93c72fcf2c,фаэтон,EAN_13
|
||||
b00fc66a-460d-43c9-a5f1-86b0a92b125a,Дачник,CODE_128
|
||||
b0210273-794f-427b-bba1-c940a7aac7df,Helen,CODE_39
|
||||
b0382f02-57d7-4d7a-a3f1-25ea85507c64,Laser Game Evolution,CODE_128
|
||||
b059eafb-017b-49f0-9d74-62889d8ee777,City of Whitehorse,CODE_128
|
||||
b063caac-e875-4475-8ae6-09a0f979fb85,CLUB SALUTE,CODE_39
|
||||
b07244fc-81d3-492b-a9e5-a813a57eea9c,Faciba,EAN_8
|
||||
b07e5b4d-d658-4ba6-9305-d497af7a19ae,Nijhof Schoenen,ITF
|
||||
b086ef99-b8b8-45a9-80f5-33a4cb01aba8,spudshed,CODE_128
|
||||
b0973d67-75d0-45e3-9f17-0f4cb80a4824,Motozem,CODE_128
|
||||
b0cfcd52-01a5-4533-8970-6e402e52bcb0,Brikon,UPC_A
|
||||
b0e24b5a-4034-44b9-b22b-2a008d0bcde5,Eurodì,CODE_128
|
||||
b0efcdb1-872a-44f0-961a-a97ee45c7ba8,Porsche Group,QR_CODE
|
||||
b0f4291f-8d68-4071-8d10-cc212b4495cc,Iper d'Oriente,EAN_13
|
||||
@@ -6707,12 +6769,14 @@ b2ab5d25-1981-4120-be54-86ccda399861,Vitulano,UPC_A
|
||||
b2b50b52-83c6-43d3-bb13-008544e2cfa5,Turčianska knižnica,EAN_13
|
||||
b2b7d24b-fdbc-468b-be59-b189d4d5fdf9,Het Certificaat B.V.,QR_CODE
|
||||
b2c03313-9621-4233-9b61-5faa8d2c66e0,JILL STUART,EAN_13
|
||||
b2e520a4-c21a-4ba0-822b-c9ac5fe79f4d,BLUME2000,QR_CODE
|
||||
b2f90e3a-4669-4cd4-8c31-65fbb91dc26e,Advantage Pharmacy,CODE_128
|
||||
b31982e9-7c22-4e92-8210-e08eaa123727,Linberg,EAN_13
|
||||
b334927e-9574-457c-9a1f-1b7dd5928304,Farmanoi,CODE_128
|
||||
b359db35-9be6-4369-b796-04b47b4044be,Signorizza,EAN_13
|
||||
b36ae43e-8a9c-41f7-8c54-d5ae673c94f5,Bio&Co,EAN_13
|
||||
b43d0b6b-db53-44a7-b518-30cace59c222,British Garden Centres,CODE_39
|
||||
b4606b36-853e-4014-9524-fc07fa6e1d4a,Cantina Rauscedo,EAN_13
|
||||
b4663d4f-dd9f-43cc-ba0e-4ce9b0beccd2,Пивлавка,EAN_13
|
||||
b4725b6c-105f-4898-a8d5-ba426ddf9508,Yamazaki,CODE_128
|
||||
b472df21-8f40-44ff-a11f-bbe1d76d6d58,Company Shop Group,CODE_39
|
||||
@@ -6720,9 +6784,11 @@ b497667e-0c92-4db6-9579-63bbe35af881,Праздничный,QR_CODE
|
||||
b4b5583a-3d0e-458e-b800-3b43968a8421,Pirex,CODE_128
|
||||
b4c412d7-ad0b-4afd-aed8-0cf113f445ca,Аквафор,CODE_128
|
||||
b4e4e61f-8605-45b6-b672-fce67898ba4e,Schuhkay,EAN_8
|
||||
b4f37441-b068-443f-bbfb-fca23c9f5eec,Tuttigiorni,EAN_13
|
||||
b4f4c3c3-4ad3-4431-9048-1d6b0e47a649,Tezenis,CODE_128
|
||||
b52836be-a999-4bf8-ba0b-5f2b9b96a509,Youth Hostels Luxembourg,CODE_128
|
||||
b54963ea-a217-434b-b0fa-e8114fd6b999,Пинта,EAN_13
|
||||
b54ed01d-e46b-4f24-8ce9-e08f624f2ddb,IGA,CODE_128
|
||||
b5656988-55fb-46c8-91ab-24a5b8422549,Moja Starówka,CODE_128
|
||||
b5695b84-a5cf-4286-87ab-afbe9368be1f,Tulipes,CODE_39
|
||||
b5dc4188-75d6-4cf1-b7f2-b0e85a57bc9a,Boulangeries Maison Toulorge,CODE_128
|
||||
@@ -6757,6 +6823,7 @@ b9c4e2bd-88ee-4345-b0c4-3828e076637c,Pro-Duo Exclusief Professionals,EAN_8
|
||||
b9f36613-ed74-441e-abce-66d465b83594,Accademia Italiana della Cucina,CODE_39
|
||||
b9f3eacc-e6d9-43e2-93f0-a1e63221b1fe,Più Medical,CODE_128
|
||||
b9fc9d9a-da0e-4fe2-82d8-5d6672263b4b,Kačka,CODE_128
|
||||
ba063e76-f5be-4e98-a549-7040a825caf7,Trendevice,CODE_128
|
||||
ba0d23c2-0030-4b68-9bec-6daf6c0db596,Zoomarket,CODE_128
|
||||
ba119be5-7382-453c-93be-625c555aec84,Vitaminas,CODE_128
|
||||
ba5aca20-b0fd-417d-8739-ba9b347c8fff,Клиника ЛМС,CODE_128
|
||||
@@ -6822,6 +6889,7 @@ bfbe8661-ae7a-4338-bb37-fde8cd6c57a1,Хмель и Солод,EAN_13
|
||||
bfcd1bbc-3671-4a2b-99d4-8195c5246644,Metalmark,EAN_13
|
||||
bfe5aac8-ea2d-41e0-ba15-af949e5437d7,Каприз,EAN_13
|
||||
bff24292-b2e3-4322-9462-d5ecc80ce044,Halfords Motoring Club,QR_CODE
|
||||
bricoman-it,Bricoman,CODE_128
|
||||
c03f0f47-ce09-4bf1-95f8-c1d0c6f1a8ca,Coop,EAN_13
|
||||
c043ef0e-49a9-4f10-877f-974247cf0f16,IperBiobottega,EAN_13
|
||||
c0712c54-a6a6-4695-b9ba-4f5a296b66cf,Apothical,EAN_13
|
||||
@@ -6871,6 +6939,7 @@ c51b31d2-056b-41a0-9347-c4d02375df01,офисмаг,EAN_13
|
||||
c51c692c-9e90-48fb-9047-38d3bb7fec2d,Мясницкий Ряд,CODE_128
|
||||
c53f804f-29e6-4dc0-9f66-0b9b016cdade,Möbel Borst,CODE_39
|
||||
c54a0027-fd79-457e-80eb-e73e1332e3e9,Ni Hao,CODE_128
|
||||
c57001e2-db2b-4f15-8c49-29c6502a86e8,Underwood Meat Company,CODE_39
|
||||
c5846a8f-687a-4de9-a5b5-b575488ac84b,Radhe Wholesale & Retail,EAN_13
|
||||
c59fc214-7895-40fc-8f94-9d1d800b66d2,Conradt,CODE_39
|
||||
c5acc06c-0b7d-4e4d-bee3-2134e2fb3b9c,Belles Fleurs,EAN_13
|
||||
@@ -6910,6 +6979,7 @@ c9231cc7-92f2-447c-ad84-8d167c23e9cd,Zwitserse Apotheek,CODE_128
|
||||
c925f293-54ee-47ba-ba48-792945c5fa94,Смайл,UPC_A
|
||||
c9295edb-4acf-4e21-b931-d07d1b97e9be,Weingärtner Gartencenter,EAN_13
|
||||
c935a5b9-03f1-4194-8aa2-39545b376065,Alpina Intimo,CODE_39
|
||||
c94a90ff-4118-4310-bcf2-588463110b83,knihovna Rosice,CODE_128
|
||||
c964ff0f-5ac9-4976-967f-a55c7ec72e14,Mega Pet Warehouse,CODE_128
|
||||
c998f7d2-6403-46c5-ba21-270195e61cd3,MAX & Co,EAN_13
|
||||
c9d387cb-7a0f-492f-a18d-f4d559ccbade,Информат,EAN_13
|
||||
@@ -6921,10 +6991,13 @@ ca4944a1-3892-4803-8b04-b72cd996511f,Diadema,CODE_128
|
||||
ca650de4-55cc-4df6-8994-3378274bebf5,Moby Dick,CODE_128
|
||||
caa55951-513c-4dca-b0bc-3cb80d85e4f2,PANORAMICO,EAN_13
|
||||
cab2ae0e-10bc-4c58-b159-59f4e8566ca7,Hawkesbury Library Service,CODE_39
|
||||
cad853d8-b9fa-43d6-b37d-39274a571269,Harmony Beauty,EAN_8
|
||||
caddfc56-1d2a-454c-bece-1516b13fa249,Millstream,EAN_13
|
||||
cae4d233-caae-43ff-aaba-affdc99c2d98,ALTERNATURA d.o.o.,EAN_13
|
||||
cae69560-d7e6-4cb7-9ac5-95199c15f9cc,Blumenmarkt Dietrich,CODE_128
|
||||
caff4297-2ae6-4315-9329-614c8510eb7f,Вместе Выгодно,CODE_128
|
||||
cb03988e-5063-4f48-aef2-9f959f9771a2,DVV,CODE_128
|
||||
cb12d304-17dc-45ba-be1c-5602237320ce,Vero Moda,QR_CODE
|
||||
cb1f1114-d1ea-4987-badc-7194d1ab1ca8,Zahradní Centrum,CODE_128
|
||||
cb4ead90-a2f7-41ba-80eb-d4970bed83bd,A-Kaart,CODABAR
|
||||
cb7b9237-0c2d-437a-ba38-fa6decca977e,萊爾富,CODE_128
|
||||
@@ -6947,6 +7020,7 @@ cd121cb8-988c-454f-a4ac-10365bf4aa6c,Shop Santé,CODE_128
|
||||
cd26930f-c1ac-4543-a23c-0b90cfa0b1f7,36.6 Здоровье,EAN_13
|
||||
cd38f71a-1a0a-4ba7-ac1d-43974fd42e1a,Gel Market,EAN_13
|
||||
cd73cbfb-68f5-4d67-9411-310695558c6b,NKC,CODE_128
|
||||
cd840f28-f17c-44ed-9ec7-15b48aa2f0e1,Knihovna Matěje Josefa Sychry,EAN_13
|
||||
cd9d6482-a7dd-4283-a776-f0982ade57a5,Biraghi,EAN_13
|
||||
cdd777ae-6fa4-458d-b7e5-f7c18fff857a,EU COVID-19 Vaccinationsintyg,QR_CODE
|
||||
cdd87d70-3e73-48a2-a88a-5e1083e41d0a,1000 мелочей,EAN_13
|
||||
@@ -6968,7 +7042,9 @@ cf4f5874-aef4-492c-ae9c-b47cb2f14224,Jardinerie Loiseau,EAN_13
|
||||
cfce4667-ff5d-44f0-8ba7-fbc44bbf2cb5,Orange Club,CODE_128
|
||||
cfd15fb5-1bac-455b-a5f7-b808390fba06,Сакура Суши,EAN_8
|
||||
cff8ca3d-3620-4098-9b8b-e181f84f6ec8,365,CODE_128
|
||||
d0153291-afc6-4d0f-8120-74c0b321434a,SA Guild of Actors,CODE_128
|
||||
d0540b51-9716-4d59-bc2f-1582b044c029,Wedding Price Card,CODE_128
|
||||
d05b520c-091a-4a9b-84de-689484927109,Lotto Niedersachsen,DATA_MATRIX
|
||||
d0a04b4f-df54-4fcd-b410-87ea5d0986aa,EU COVID-19 Očkovací preukaz - Záber na prvé očkovanie,QR_CODE
|
||||
d0b9a6b8-f724-4fe7-8195-e810297505af,Chocolaterie Albèrt,EAN_13
|
||||
d1018675-b1b2-44bc-91b6-a985d744836f,La Sirena,EAN_13
|
||||
@@ -7004,6 +7080,7 @@ d403852e-7683-49f0-9de5-6e1ec5ac842d,Andreas,CODE_128
|
||||
d4115422-7d2e-4001-9c49-4c1353c8b88d,Secom,EAN_13
|
||||
d44c1355-2941-4393-aeb8-1a7ad7122f67,HUALI MARKET,EAN_13
|
||||
d4502068-af6b-43ab-b9a5-46dc1899e22a,Ябко,EAN_13
|
||||
d4517693-3f1c-45a6-86f2-d60ad19d04e9,U Baristu,QR_CODE
|
||||
d4934c41-3cae-40dd-bd5c-2ca88bdcf9f5,Bau-Buy,EAN_8
|
||||
d4b67cb7-cfbf-4bac-8711-2088b8592e5f,Wara,EAN_13
|
||||
d4e44512-0ac2-4d1f-8603-01cd0497416c,The co-operative,CODE_128
|
||||
@@ -7034,6 +7111,7 @@ d6eb202f-ba2f-4253-8f5d-1dce44d13bef,Канцлер,EAN_13
|
||||
d71e4888-dd0b-4aac-ae5b-937b17ee4149,FQCC,EAN_13
|
||||
d7893d3c-c704-4daa-955b-a97f061d0138,ВАБИ САБИ,CODE_128
|
||||
d78fc335-cab2-40d7-a56c-333f568b36b4,социалочка,EAN_13
|
||||
d7959c14-98b1-4187-9088-494d1a7c5f9f,Canningvale,CODE_128
|
||||
d79a1500-206d-407a-b111-724b898aa154,Sportsman's Warehouse,CODE_39
|
||||
d7a18a8f-32b5-43f5-8290-5caf4297aaf8,Halfords Colleague Discount,CODE_128
|
||||
d7b8deb4-4006-4223-9600-331458fade3d,Пиватерра,EAN_13
|
||||
@@ -7100,6 +7178,7 @@ dema-be,DEMA,EAN_13
|
||||
df2f73ec-a3c1-4169-b47e-4742bcab704d,Digizenz,QR_CODE
|
||||
df3228e8-78d0-42c7-8e45-30089e5267ea,Эдисон,EAN_13
|
||||
df53a52a-320b-41ce-8ca0-92da86fcae0c,Koutný spol,CODE_93
|
||||
df5ad302-ae2d-47db-b9c9-b5e030d3b553,ALDI,CODE_128
|
||||
df62dc4f-b31a-4615-a289-94410da0ce7b,Melkior,CODE_128
|
||||
df668825-ed7c-4f05-b74b-47ec6daa69f0,Breakers,CODE_39
|
||||
dfc5ba69-483e-46ab-8951-3afc7c6d7460,Chaussexpo,CODE_128
|
||||
@@ -7112,6 +7191,7 @@ e0491f99-5f5b-4bfa-bb1d-f7cfe688ca26,Хмельная Миля,CODE_128
|
||||
e0663514-cb9c-413a-ad94-8b83dde796f8,Hommy,EAN_13
|
||||
e0b022eb-bc2b-4553-8345-5869e4f644e2,Life 2.0,CODE_39
|
||||
e0b2fcbb-e302-4a5e-aa4b-3991fcee7831,KanclerCom,EAN_13
|
||||
e0d0863f-c345-4e3d-baf7-853414056795,Sport 2000,EAN_13
|
||||
e0db8778-d9a2-4b6c-bece-1b2c4bef11c0,Everyone Fitness,CODE_39
|
||||
e0eadec9-539e-4316-b9bd-9e29d59c1abb,Containers for change,CODE_128
|
||||
e132948b-f6a2-44cb-b0c1-d9366151a0e2, BSTRONG,CODE_128
|
||||
@@ -7146,11 +7226,13 @@ e435e3ee-a81f-40f8-86be-2def0a610ac1,Спорт-Марафон,EAN_13
|
||||
e4561f48-5c68-4c2e-88ea-7eeb531a8b41,Lubo,CODE_128
|
||||
e456ceeb-d76a-4684-9e2a-54935e77daa5,Tendenze Calzature,EAN_13
|
||||
e4dfacd9-9513-4231-b09b-51af53151edd,Дворик,EAN_13
|
||||
e4f5270b-5a69-41a3-a39e-e3e7e4460ddd,OSCARwash,QR_CODE
|
||||
e4f54b47-0238-4fd6-9109-d5ce424981c6,Фламинго,EAN_13
|
||||
e5059f27-dc93-4296-b4d5-1162b692c5ec,Северная Звезда,CODE_128
|
||||
e550a9a1-c25b-4658-a9fa-38764c584693,Mon Grand Plaisir,QR_CODE
|
||||
e55b3ee0-ac34-480c-8fd3-c63c3a6ae28c,Муниципальная Аптека,EAN_13
|
||||
e55f98ef-9258-4eb7-97fb-7e97d2aacdaa,COOK Kitchen,QR_CODE
|
||||
e5616ded-48e7-45d7-b706-a82ef5ab9667,OROCASH,CODE_39
|
||||
e569e534-de02-4cde-a15e-ee5f3e70794e,Partyland,CODE_128
|
||||
e570f1ac-a109-4473-8644-9b6daf701d8d,najlepšia lekáreň,CODE_128
|
||||
e580263e-726d-4768-a756-1cec4966dbb6,Lower Plenty Hotel,CODE_128
|
||||
@@ -7163,10 +7245,12 @@ e6b0d8c0-2e2b-4d2c-9c3d-4420ced94877,Багира,EAN_13
|
||||
e6b4a59b-4d9a-42c6-aae3-5baf468c1999,Evolution,EAN_13
|
||||
e6c68ae5-12f0-4c8b-b5ca-8f725874c704,Полушка,EAN_13
|
||||
e6e830c8-16b9-4382-9b84-93dca76ee66c,домаркет,CODE_128
|
||||
e6edbb92-d988-4bf3-87f8-e9684b5a3983,UFS Dispensaries,CODE_39
|
||||
e6ece7bc-ac39-45c6-b4f3-c225719c3a0e,Mikado,CODE_128
|
||||
e6edbb92-d988-4bf3-87f8-e9684b5a3983,UFS Healthcare,CODE_39
|
||||
e6efc01d-98bf-478e-a916-f51178a01690,Erborian,CODE_128
|
||||
e6f32c21-af1b-4da3-9c8e-36757cccde3b,Sally Beauty,CODE_128
|
||||
e6f9e7a3-2b1f-4ec7-8c99-8c5d16988f56,Iндустрiя краси,EAN_13
|
||||
e71a67d2-6898-4a05-91dd-7ae19095129f,FMBrikon,UPC_A
|
||||
e71b01e0-cdf1-4f6b-bee6-d7e2fc9b3a81,Walder Schuhe,CODE_128
|
||||
e760dd3f-aeb2-42a2-bf38-5866c061c2e9,Cash Piscines,CODE_128
|
||||
e79c474b-4ee0-4885-a9eb-7349bdc2bfc9,KIA,CODE_39
|
||||
@@ -7200,6 +7284,7 @@ eaacfd6c-54dd-4bbd-81a2-0394b7b57496,Kmart,EAN_13
|
||||
eab09679-f885-46a1-8f96-3f82ea3b9d82,Niké,ITF
|
||||
eac387cc-ae67-4874-b420-12dae0150abc,Woss,EAN_13
|
||||
eacb1c97-e7c2-4ed6-bf64-84db244fbdd5,Медтехника Ортосалон,EAN_13
|
||||
eacdf92e-6601-437d-af01-15156a3ee199,Barossa Co-op,QR_CODE
|
||||
eb01f161-6d42-4ae9-b381-2ca0be34cd6f,PiùMe,CODE_128
|
||||
eb2cfbfc-1d25-4ff7-9eb6-743a74c302c4,Клеопатра,EAN_13
|
||||
eb32c9d7-80b8-4147-942f-3b94ad7dd8fd,Brico Pro,EAN_13
|
||||
@@ -7253,6 +7338,7 @@ ef56f2fe-b4b0-4639-a0dc-db4c6bd01d06,7я,QR_CODE
|
||||
ef8b1a62-353b-44e3-bfba-b1331b6509ab,Evoluphar,CODE_128
|
||||
ef8f92d7-a5a1-441e-8e91-133b64da57e5,Anabel Arto,CODE_128
|
||||
efdfda06-b4ad-4bd6-ad00-41d6ab9aeaf8,Profi Center,CODE_128
|
||||
effbec31-0ed6-4eb3-969b-17d99d340d78, Sedici Piadina,CODE_128
|
||||
f01c0047-5952-4805-a48b-4d455d833777,ХозСити,EAN_13
|
||||
f032c0d2-9f71-47fa-9574-8970a917b63b,Brianza Biblioteche,EAN_13
|
||||
f0637a9d-47a8-44a0-8342-c409b6c55b6b,Baby,EAN_13
|
||||
@@ -7269,6 +7355,7 @@ f1843eba-2bcd-49dc-be2c-1444ff5cfd91,EU COVID-19 Očkovací Průkaz,QR_CODE
|
||||
f1df75b9-1d7a-4cba-9e9d-f4411f4ea48b,Индейкин Дом,EAN_13
|
||||
f1e508d1-b901-45ba-9ace-b98e96c8fd38,Dalbe,EAN_13
|
||||
f1f1c15f-8a75-4a18-9b01-251778c8fb45,Optika Anda,CODE_128
|
||||
f1fe28ce-0c9a-4b64-a455-c9f14c3fa2be,PME Legend,CODE_128
|
||||
f2153289-2b50-463f-91d4-37ceb62f304b,Колесо2,CODE_39
|
||||
f21a2eea-3a15-4765-8ea6-3f1ec10fdd87,EU COVID-19 Vaccinationsattest - Anden vaccination Skudt,QR_CODE
|
||||
f2292778-e0fe-4925-b939-b4716342fa44,Tread & Miller,CODE_128
|
||||
@@ -7283,8 +7370,10 @@ f2a92584-5ef8-4220-b0ca-7aa48decd2e4,Artex Ieper,EAN_13
|
||||
f2b9fa76-c78f-4d2c-821f-70678bc8d4d5,Parfümerie Becker,EAN_8
|
||||
f2c8f722-9c5f-423d-9989-deca7901aa11,Poetry,CODE_128
|
||||
f2d3f68c-7b77-4464-91d2-3162e74bea48,Neinver,EAN_13
|
||||
f2dc6f84-01cc-4e13-aec2-2ce88367a27f,Ljekarne Prima Pharme,CODE_128
|
||||
f3189d64-dd39-468b-872d-3bb70e4d416c,The Watergardens Hotel ,CODE_128
|
||||
f3287ab2-0308-42f8-92dc-3147456a4a69,НУЖНО!,EAN_13
|
||||
f359407e-234b-4fbb-af07-f3b293a51bbb,MaRinella,EAN_13
|
||||
f35a3882-27b2-417d-8093-e87f8f25509a,Первый Семейный,CODE_128
|
||||
f3852d29-47fe-4528-83cd-5ae7b31fdb0e,Kraus,PDF_417
|
||||
f3e63893-802b-4e40-9480-f3fbfda0a3e4,Аптека живика,EAN_13
|
||||
@@ -7297,6 +7386,7 @@ f49e49df-1b1c-4e19-994d-3a56c693d91c,GROSBASKET,EAN_13
|
||||
f4aefdf7-e66f-4980-a0ee-7e6f1afcc8df,Color Line,EAN_13
|
||||
f4b16522-478d-4c84-bfa5-e0825ebf4917,bonVito,PDF_417
|
||||
f4d0cac3-70a0-43dc-a204-fe5fd9ab428f,KüstenCard Flexi,CODE_128
|
||||
f4e09fa3-b712-4be5-915b-002082002246,Club VW Suisse,QR_CODE
|
||||
f5002bd9-8e95-4c11-8a7c-e3d2fae42fe3,BCAA,CODE_128
|
||||
f5356dd8-8762-4f36-8c50-f7383eccb840,Twój Market,EAN_13
|
||||
f546e937-86b4-40eb-98cb-9a348d5dccec,МаксиФлора,EAN_13
|
||||
@@ -7332,6 +7422,7 @@ f8f0bd64-d1ae-4560-9c22-0eed805f2016,Дивный Колибри,EAN_8
|
||||
f8fa2370-261e-4e19-ba9c-46cd33ead64d,Agri Sud Est,EAN_13
|
||||
f90691bf-2879-4424-b2d5-5c09ee9ff700,Кроха,CODE_128
|
||||
f915ed01-85f9-4a61-921b-0d33eaf6fd23,ЗооОптТорг.Рф,EAN_13
|
||||
f9223231-26b6-4f86-9d2e-5756488c2e74,Jack & Jones,QR_CODE
|
||||
f93e7a30-4351-47e5-b8b2-3a9546ad9bb8,BOTICINAL POWERSANTÉ,EAN_13
|
||||
f940a1b8-c04b-4541-b307-7fdc1fa8eb91,Veggie Grill,CODE_128
|
||||
f9447f67-140e-402d-9a27-e7c11cefebda,Eleganza,CODE_128
|
||||
@@ -7350,6 +7441,7 @@ fa009005-250b-4994-a6ad-8043b28634fe,No One,CODE_128
|
||||
fa11b2c7-a768-4d4b-b03d-c845df6cb341,Terra Viva,CODE_128
|
||||
fa1670c0-1713-44f0-b57d-902b278ba741,нива,EAN_13
|
||||
fa24b789-4774-41e1-8a52-216efc9de8ba,foodmaster,QR_CODE
|
||||
fa3bdecd-2216-4d2b-b39d-fb14681f62fc,Fusion Gyms,CODE_128
|
||||
fa5593eb-2f35-4a7f-8c69-1c4a726759be,Форум,EAN_13
|
||||
fa7407ee-0ddd-4727-bfc7-05c206c159d0,Toto,EAN_13
|
||||
fa7f3968-0cba-4adb-b1bb-fb2083b98b2f,Der Bäcker Eifler,QR_CODE
|
||||
@@ -7360,6 +7452,7 @@ fac3cc98-d990-4106-b17a-e8b5afe1b843,Fidenza Village,CODE_128
|
||||
fadd868f-b34b-4604-8a24-c7fbcd8ea573,Big Marlin,EAN_13
|
||||
fae896a0-9c57-4ff8-be30-195fbf137a0b,Lotteria degli Scontrini,CODE_128
|
||||
fafa23c9-5cda-4fb8-aab5-6faebc6386a8,NETTO,CODE_128
|
||||
fb340faf-4fe5-4446-b811-217d615f5514, Abbonamento Musei,QR_CODE
|
||||
fb507b68-ecf4-4397-969a-23e2427f76f2,Veritas,EAN_13
|
||||
fb5e84a1-5e9f-4fa5-ad36-c6060927c415,BIT BY BIT,CODE_128
|
||||
fb6edc61-a282-4217-9b44-ac2611b5977c,Kierrätyskeskus,CODE_128
|
||||
@@ -7400,8 +7493,10 @@ fe488a32-17aa-4b93-8e88-b2df166b30b8,BIEMAR BOIS,CODE_39
|
||||
fe54303c-8e1c-4c62-8ee6-b9485e333419,Liverpool Library,CODE_128
|
||||
fe889ad0-ea52-4069-a051-b5ceb4c4b4e7,Аптека Гермес,EAN_13
|
||||
febc239e-ed07-45ac-905d-b6048a203784,Scarpamondo,EAN_13
|
||||
fed489b7-1d23-4b3f-b20f-52c229575de0,Autowaspark Kuzee,QR_CODE
|
||||
fee32f93-2fe4-4fa1-ab62-159bdc375668,Покупочка,CODE_128
|
||||
fefcdd70-4aa8-4f78-b9e6-1dc18f9cd731,Button Blue,EAN_13
|
||||
ff50e5dc-1f3a-43a7-a55d-4a7d96b12757,Le Guidon Niortais,CODE_128
|
||||
ff92fe3e-1b38-409f-9701-ee7665fccb5e,EU COVID-19 Certificado de Vacinação - Primeira injeção,QR_CODE
|
||||
ff9fd337-4765-4ad1-90a3-62e4a78dc3ec,Нияма,QR_CODE
|
||||
ffa57152-01bd-48bc-be45-46bac303c450,Мед Сервис,CODE_128
|
||||
|
||||
|
@@ -119,7 +119,6 @@
|
||||
<string name="settings_blue_theme">أزرق</string>
|
||||
<string name="settings_sky_blue_theme">أزرق سماوي</string>
|
||||
<string name="settings_green_theme">أخضر</string>
|
||||
<string name="settings_grey_theme">رمادي</string>
|
||||
<string name="settings_brown_theme">بني</string>
|
||||
<string name="app_contributors">أصبح ممكنًا بواسطة: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">فرز</string>
|
||||
@@ -238,9 +237,6 @@
|
||||
<string name="importLoyaltyCardKeychainMessage">حدد ملفك <i>LoyaltyCardKeychain.csv</i> التصدير من Loyalty Card Keychain للاستيراد.
|
||||
\nقم بإنشائه من قائمة الاستيراد / التصدير في Loyalty Card Keychain بالضغط على تصدير هناك أولاً.</string>
|
||||
<string name="importStocard">الاستيراد من Stocard</string>
|
||||
<string name="privacy_policy_popup_text">إشعار سياسة الخصوصية (مطلوب من قبل بعض متاجر التطبيقات):
|
||||
\n
|
||||
\nلا يتم جمع أي بيانات على الإطلاق ، والتي يمكن لأي شخص تأكيدها لأن تطبيقنا هو برنامج حر.</string>
|
||||
<string name="failedGeneratingShareURL">تعذر إنشاء عنوان URL قابل للمشاركة. الرجاء الإبلاغ عن هذا.</string>
|
||||
<string name="help_translate_this_app">ساعد في ترجمة هذا التطبيق</string>
|
||||
<string name="on_google_play">على Google Play</string>
|
||||
@@ -253,21 +249,13 @@
|
||||
<string name="welcome">مرحبا بك في كاتيما</string>
|
||||
<string name="updateBalanceTitle">كم أنفقت أو استلمت؟</string>
|
||||
<string name="currentBalanceSentence">الرصيد الحالي: <xliff:g> %s </xliff:g></string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="zero">عرض الأرشيف (<xliff:g>%1$d</xliff:g> بطاقة)</item>
|
||||
<item quantity="one">عرض الأرشيف (<xliff:g>%1$d</xliff:g> بطاقة)</item>
|
||||
<item quantity="two">عرض الأرشيف (<xliff:g>%1$d</xliff:g> بطاقتين)</item>
|
||||
<item quantity="few">عرض الأرشيف (<xliff:g>%1$d</xliff:g> بطاقات)</item>
|
||||
<item quantity="many">عرض الأرشيف (<xliff:g>%1$d</xliff:g> بطاقات)</item>
|
||||
<item quantity="other">عرض الأرشيف (<xliff:g>%1$d</xliff:g> بطاقات)</item>
|
||||
</plurals>
|
||||
<string name="importCards">استيراد البطاقات</string>
|
||||
<string name="newBalanceSentence">الرصيد الجديد: <xliff:g>%s</xliff:g></string>
|
||||
<string name="cameraPermissionDeniedTitle">تعذر الوصول إلى الكاميرا</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">لمسح الباركود، ستحتاج Catima إلى الوصول إلى الكاميرا. اضغط هنا لتغيير إعدادات الأذونات.</string>
|
||||
<string name="updateBalance">تحديث الرصيد</string>
|
||||
<string name="updateBalanceHint">أدخل المبلغ</string>
|
||||
<string name="storageReadPermissionRequired">الصلاحيه للوصل للتخزين مطلوبة لهذا الاجراء</string>
|
||||
<string name="storageReadPermissionRequired">الصلاحيه للوصل للتخزين مطلوبة لهذا الاجراء…</string>
|
||||
<string name="validFromDate">عربيه</string>
|
||||
<string name="cameraPermissionRequired">إذن للوصول إلى الكاميرا اللازمة لهذا الإجراء…</string>
|
||||
<string name="anyDate">أي تاريخ</string>
|
||||
@@ -310,7 +298,7 @@
|
||||
<string name="enter_card_id">أدخل رقم الهوية أو النص الموجود على بطاقتك</string>
|
||||
<string name="addWithoutBarcode">إضافة بدون باركود</string>
|
||||
<string name="field_must_not_be_empty">يجب ألا يكون الحقل فارغا</string>
|
||||
<string name="app_name">كاتيما</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">التدوير دائمًا ( تجاهل إعدادات النظام)</string>
|
||||
<string name="add_manually_warning_title">الفحص موصى به</string>
|
||||
<string name="continue_">استمر</string>
|
||||
@@ -318,4 +306,14 @@
|
||||
<string name="receive">استلم</string>
|
||||
<string name="amountParsingFailed">كمية غير صحيحة</string>
|
||||
<string name="add_manually_warning_message">في بعض المتاجر قيمة الباركود تختلف عن الرقم الموجود على البطاقة. لهذا السبب إدخال الباركود يدوياً لن ينجح دائماً. من المستحسن فحص الباركود بكاميرا بدلا من ذالك. هل انت مُصِر على الاستكمال؟</string>
|
||||
<string name="addFromPdfFile">تحديد ملف PDF</string>
|
||||
<string name="errorReadingFile">لا يمكن قراءة الملف</string>
|
||||
<string name="failedLaunchingFileManager">لم يتم العثور على مدير ملفات مدعوم</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">اي من الـbarcodes تريد استخدامه؟</string>
|
||||
<string name="pageWithNumber">صفحة <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">يبدوا أن جهازك لا يمتلك كاميرا. إذا كان يمتلكها، أطفئ الجهاز وحاول مرة اخرى. اذا لم ينجح ذلك، أضغط على زر \"المزيد من الأختيارات\" في الأسفل لإضافة الباركود بطريقة أخرى.</string>
|
||||
<string name="importCancelled">تم الغاء الاستيراد</string>
|
||||
<string name="exportCancelled">تم الغاء الاستخراج</string>
|
||||
<string name="useFrontImage">استخدام صورة أمامية</string>
|
||||
<string name="useBackImage">استخدم صورة خلفية</string>
|
||||
</resources>
|
||||
@@ -51,9 +51,6 @@
|
||||
<string name="importFidme">Внасяне от FidMe</string>
|
||||
<string name="exportOptionExplanation">Данните ще бъдат запазени на място по ваш избор.</string>
|
||||
<string name="accept">Приемане</string>
|
||||
<string name="privacy_policy_popup_text">Политика за личните данни (необходима от някои магазини за приложения):
|
||||
\n
|
||||
\nНЕ СЕ СЪБИРАТ ИЗОБЩО НИКАКВИ ДАННИ, което може да бъде потвърдено, защото приложението е със свободен код.</string>
|
||||
<string name="privacy_policy">Политика за личните данни</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="turn_flashlight_off">Изключва светкавицата</string>
|
||||
@@ -78,7 +75,7 @@
|
||||
<string name="groups">Списъци</string>
|
||||
<string name="enter_group_name">Въведете име на списъка</string>
|
||||
<string name="intent_import_card_from_url_share_text">Искам да споделя тази карта с вас</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимална яркост при видим щрихкод</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимална яркост на екрана</string>
|
||||
<string name="settings_keep_screen_on">Без изключване на екрана</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Без заключване на екрана</string>
|
||||
<string name="settings_dark_theme">Тъмна</string>
|
||||
@@ -157,7 +154,6 @@
|
||||
</plurals>
|
||||
<string name="app_contributors">Осъществено от: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="settings_brown_theme">Кафяво</string>
|
||||
<string name="settings_grey_theme">Сиво</string>
|
||||
<string name="settings_green_theme">Зелено</string>
|
||||
<string name="settings_sky_blue_theme">Небесносиньо</string>
|
||||
<string name="settings_blue_theme">Синьо</string>
|
||||
@@ -207,7 +203,7 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Черен фон за тъмната тема</string>
|
||||
<string name="include_if_asking_support">Ако искате да потърсите поддръжка, включете следната информация:</string>
|
||||
<string name="settings_card_orientation">Завъртане на щрихкода</string>
|
||||
<string name="settings_card_orientation">Завъртане на екрана</string>
|
||||
<string name="settings_follow_system_orientation">Според системата</string>
|
||||
<string name="settings_portrait_orientation">Портрет</string>
|
||||
<string name="settings_landscape_orientation">Пейзаж</string>
|
||||
@@ -226,10 +222,6 @@
|
||||
<string name="nextCard">Следваща</string>
|
||||
<string name="failedToOpenUrl">Първо инсталирайте уеб браузър</string>
|
||||
<string name="welcome">Добре дошли при Катима</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Преглед на архива (<xliff:g>%1$d</xliff:g> карта)</item>
|
||||
<item quantity="other">Преглед на архива (<xliff:g>%1$d</xliff:g> карти)</item>
|
||||
</plurals>
|
||||
<string name="barcodeLongPressMessage">В приложението галерия могат да бъдат отваряни само изображения</string>
|
||||
<string name="failedToRetrieveImageFile">Не е възможно извличане на изображение</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">За да сканирате щрихкодове с Catima е необходим достъп до камерата. За да промените разрешението докоснете тук.</string>
|
||||
@@ -266,7 +258,7 @@
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Без заключване на екрана при преглед на карта</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Приложенията ще искат разрешение, за да получат достъп</string>
|
||||
<string name="settings_oled_dark_summary">Намалява разхода на батерия от OLED дисплеи</string>
|
||||
<string name="settings_category_title_cards">Карти</string>
|
||||
<string name="settings_category_title_cards">Изглед с карти</string>
|
||||
<string name="settings_category_title_general">Общи</string>
|
||||
<string name="settings_category_title_privacy">Поверителност</string>
|
||||
<string name="settings_keep_screen_on_summary">Спира автоматичното заключване на екрана при преглед на карти</string>
|
||||
@@ -290,4 +282,16 @@
|
||||
<string name="amountParsingFailed">Неприемлива сума</string>
|
||||
<string name="spend">Похарчено</string>
|
||||
<string name="receive">Получено</string>
|
||||
<string name="pageWithNumber">Страница <xliff:g>%d</xliff:g></string>
|
||||
<string name="addFromPdfFile">Изберете PDF</string>
|
||||
<string name="errorReadingFile">Файлът не може да бъде прочетен</string>
|
||||
<string name="failedLaunchingFileManager">Не е намерено приложение за управление на файлове</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Кой от намерените щрихкодове желаете да бъде използван?</string>
|
||||
<string name="noCameraFoundGuideText">Изглежда, устройството няма камера. Ако има опитайте да рестартирате. В противен случай използвайте бутона „Още“, за да добавите шрихкод по друг начин.</string>
|
||||
<string name="importCancelled">Внасянето е спряно</string>
|
||||
<string name="exportCancelled">Изнасянето е спряно</string>
|
||||
<string name="useFrontImage">Използване на предната страна</string>
|
||||
<string name="useBackImage">Използване на задната страна</string>
|
||||
<string name="settings_use_volume_keys_navigation">Сменяне на картите с бутоните за звука</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Бутоните за силата на звука сменят видимата карта</string>
|
||||
</resources>
|
||||
@@ -173,9 +173,6 @@
|
||||
<string name="chooseExpiryDate">মেয়াদ শেষ হওয়ার তারিখ মনোনীত করুন</string>
|
||||
<string name="moveBarcodeToTopOfScreen">বারকোডটি স্ক্রিনের উপরে উঠিয়ে দিন</string>
|
||||
<string name="errorReadingImage">ছবিটি স্ক্যান করা যাচ্ছে না</string>
|
||||
<string name="privacy_policy_popup_text">ব্যক্তিগত তথ্যের গোপনীয়তা নীতি নোটিশ (কিছু অ্যাপ স্টোরের এটি লাগে):
|
||||
\n
|
||||
\nকোন তথ্য একেবারেই সংগ্রহ করা হয় না, যা যে কেউ নিশ্চিত করতে পারবেন কারন আমাদের অ্যাপ মুক্ত সফটওয়্যার।</string>
|
||||
<string name="balance">ব্যালান্স</string>
|
||||
<string name="points">পয়েন্ট</string>
|
||||
<string name="chooseImportType">এখান থেকে তথ্য আমদানি করুন</string>
|
||||
@@ -195,10 +192,6 @@
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> cards (<xliff:g id="archivedCount">%2$d</xliff:g> archived)</item>
|
||||
</plurals>
|
||||
<string name="nextCard">পরবর্তী</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">সংরক্ষণাগার দেখুন (<xliff:g>%1$d</xliff:g> কার্ড)</item>
|
||||
<item quantity="other">সংরক্ষণাগার দেখুন (<xliff:g>%1$d</xliff:g> কার্ডগুলি)</item>
|
||||
</plurals>
|
||||
<string name="failedToOpenUrl">প্রথমে একটি ওয়েব ব্রাউজার ইন্সটল করুন</string>
|
||||
<string name="newBalanceSentence">নতুন ব্যালেন্স: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseValidFromDate">তারিখ থেকে বৈধ নির্বাচন করুন</string>
|
||||
@@ -219,7 +212,6 @@
|
||||
\nপ্রথমে ভাউচার ভল্টে এক্সপোর্ট টিপে এটি তৈরি করুন।</string>
|
||||
<string name="settings_oled_dark">অন্ধকার থিমের জন্য খাঁটি কালো পটভূমি</string>
|
||||
<string name="setIcon">আইকন সেট করুন</string>
|
||||
<string name="settings_grey_theme">ধূসর</string>
|
||||
<string name="updateBalance">ব্যালেন্স আপডেট করুন</string>
|
||||
<string name="barcodeLongPressMessage">গ্যালারি অ্যাপে শুধুমাত্র ছবি খোলা যাবে</string>
|
||||
<string name="translate_platform">Weblate-এ</string>
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<string name="about">সম্পর্কিত</string>
|
||||
<string name="card">কার্ড</string>
|
||||
<string name="yes">হ্যাঁ</string>
|
||||
<string name="settings_grey_theme">ধূসর</string>
|
||||
<string name="ok">ঠিক আছে</string>
|
||||
<string name="sendLabel">পাঠান…</string>
|
||||
<string name="sort_by_name">নাম</string>
|
||||
@@ -76,4 +75,4 @@
|
||||
<string name="exportFailedTitle">রপ্তানি ব্যর্থ</string>
|
||||
<string name="settings_card_orientation">বারকোড অভিমুখ (ওরিয়েন্টেশন)</string>
|
||||
<string name="app_name">ক্যাটিমা</string>
|
||||
</resources>
|
||||
</resources>
|
||||
@@ -2,13 +2,13 @@
|
||||
<resources>
|
||||
<string name="save">Snimi</string>
|
||||
<string name="cancel">Odustani</string>
|
||||
<string name="unstar">Ukloni sve omiljene</string>
|
||||
<string name="star">Omiljene</string>
|
||||
<string name="barcodeType">Barcode tip</string>
|
||||
<string name="note">Bilježnica</string>
|
||||
<string name="unstar">Ukloni iz omiljenih</string>
|
||||
<string name="star">Dodaj u omiljene</string>
|
||||
<string name="barcodeType">Tip barkoda</string>
|
||||
<string name="note">Zabilješka</string>
|
||||
<string name="storeName">Ime</string>
|
||||
<string name="noMatchingGiftCards">Nema rezultata. Pokušaj promijeniti pretragu.</string>
|
||||
<string name="noGiftCards">Kliknite + Plus dugme da dodate kartu ili uvozite nešto iz menija prvo.</string>
|
||||
<string name="noGiftCards">Kliknite + Plus dugme da dodate kartu ili uvezete nešto iz menija prvo.</string>
|
||||
<string name="action_add">Dodaj</string>
|
||||
<string name="all">Sve</string>
|
||||
<string name="noGroupCards">Ova grupa ne sadrži nikakve karte</string>
|
||||
@@ -104,4 +104,6 @@
|
||||
<string name="importOptionApplicationExplanation">Koristi bilo koju aplikaciju ili Vašu omiljenu aplikaciju da bi otvorili file.</string>
|
||||
<string name="importOptionApplicationButton">Koristi drugu aplikaciju</string>
|
||||
<string name="about">O</string>
|
||||
</resources>
|
||||
<string name="noBarcode">Nema barkoda</string>
|
||||
<string name="deleteTitle">Obriši karticu</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Přidat</string>
|
||||
<string name="noGiftCards">Klepněte na tlačítko Plus (+) pro přidání karty nebo naimportujete karty z nabídky (⋮).</string>
|
||||
<string name="noGiftCards">Klepněte na tlačítko plus (+) pro přidání karty nebo naimportujete karty z nabídky (⋮).</string>
|
||||
<string name="storeName">Název</string>
|
||||
<string name="note">Poznámka</string>
|
||||
<string name="cardId">ID karty</string>
|
||||
@@ -87,7 +87,6 @@
|
||||
<string name="moveDown">Přesunout dolů</string>
|
||||
<string name="moveUp">Přesunout nahoru</string>
|
||||
<string name="settings_brown_theme">Hnědá</string>
|
||||
<string name="settings_grey_theme">Šedá</string>
|
||||
<string name="settings_green_theme">Zelená</string>
|
||||
<string name="settings_sky_blue_theme">Azurová</string>
|
||||
<string name="settings_blue_theme">Modrá</string>
|
||||
@@ -135,9 +134,6 @@
|
||||
\nVytvoříte jej z nabídky Import/Export jiné aplikace Catima tak, že v ní nejprve stisknete tlačítko Exportovat.</string>
|
||||
<string name="importCatima">Import z Catima</string>
|
||||
<string name="accept">Přijmout</string>
|
||||
<string name="privacy_policy_popup_text">Oznámení o zásadách ochrany osobních údajů (vyžadováno některými obchody s aplikacemi):
|
||||
\n
|
||||
\nNejsou shromažďovány žádné údaje, což může potvrdit každý, protože naše aplikace je svobodný software.</string>
|
||||
<string name="privacy_policy">Zásady soukromí</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Importovat data z</string>
|
||||
@@ -163,7 +159,7 @@
|
||||
<string name="groups">Skupiny</string>
|
||||
<string name="enter_group_name">Zadejte název skupiny</string>
|
||||
<string name="exportSuccessful">Data exportována</string>
|
||||
<string name="settings_display_barcode_max_brightness">Vysoký jas při zobrazení čárového kódu</string>
|
||||
<string name="settings_display_barcode_max_brightness">Rozjasnit obrazovku</string>
|
||||
<string name="starImage">Hvězdička u oblíbených</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one">Vybrána <xliff:g>%d</xliff:g> karta</item>
|
||||
@@ -217,7 +213,7 @@
|
||||
<string name="archive">Archivovat</string>
|
||||
<string name="unarchive">Vrátit z archivu</string>
|
||||
<string name="unarchived">Karta vrácena z archivu</string>
|
||||
<string name="settings_card_orientation">Orientace čárového kódu</string>
|
||||
<string name="settings_card_orientation">Orientace obrazovky</string>
|
||||
<string name="settings_landscape_orientation">Na šířku</string>
|
||||
<string name="duplicateCard">Duplikovat</string>
|
||||
<string name="archived">Karta archivována</string>
|
||||
@@ -231,11 +227,6 @@
|
||||
<string name="nextCard">Následující</string>
|
||||
<string name="failedToOpenUrl">Nejprve nainstalujte webový prohlížeč</string>
|
||||
<string name="welcome">Vítejte v Catima</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Zobrazit archiv (<xliff:g>%1$d</xliff:g> karta)</item>
|
||||
<item quantity="few">Zobrazit archiv (<xliff:g>%1$d</xliff:g> karty)</item>
|
||||
<item quantity="other">Zobrazit archiv (<xliff:g>%1$d</xliff:g> karet)</item>
|
||||
</plurals>
|
||||
<string name="barcodeLongPressMessage">V aplikaci pro galerii mohou být otevírány pouze obrázky</string>
|
||||
<string name="failedToRetrieveImageFile">Nepodařilo se získat soubor obrázku</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nelze získat přístup k fotoaparátu</string>
|
||||
@@ -274,7 +265,7 @@
|
||||
<string name="settings_category_title_privacy">Soukromí</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">U některých čteček je to potřeba</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Při prohlížení karty zabránit zamčení obrazovky</string>
|
||||
<string name="settings_category_title_cards">Karty</string>
|
||||
<string name="settings_category_title_cards">Zobrazení karty</string>
|
||||
<string name="settings_category_title_general">Obecné</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os a přispěvatelé</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os a přispěvatelé</string>
|
||||
@@ -297,4 +288,16 @@
|
||||
<string name="spend">Utratit</string>
|
||||
<string name="receive">Obdržet</string>
|
||||
<string name="amountParsingFailed">Neplatné množství</string>
|
||||
<string name="addFromPdfFile">Vybrat soubor PDF</string>
|
||||
<string name="errorReadingFile">Soubor nelze přečíst</string>
|
||||
<string name="pageWithNumber">Stránka <xliff:g>%d</xliff:g></string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Který z nalezených čárových kódů chcete použít?</string>
|
||||
<string name="failedLaunchingFileManager">Nelze nalézt podporovaný správce souborů</string>
|
||||
<string name="noCameraFoundGuideText">Zdá se, že vaše zařízení nemá fotoaparát. Pokud ano, zkuste zařízení restartovat. V opačném případě použijte tlačítko Další možnosti a přidejte čárový kód jiným způsobem.</string>
|
||||
<string name="importCancelled">Import zrušen</string>
|
||||
<string name="exportCancelled">Export zrušen</string>
|
||||
<string name="useBackImage">Použijte předchozí obrázek</string>
|
||||
<string name="useFrontImage">Použijte přední obrázek</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Pomocí tlačítek hlasitosti můžete změnit, která karta se zobrazí</string>
|
||||
<string name="settings_use_volume_keys_navigation">Přepínat karty pomocí tlačítek hlasitosti</string>
|
||||
</resources>
|
||||
@@ -12,16 +12,16 @@
|
||||
<string name="edit">Bearbeiten</string>
|
||||
<string name="delete">Löschen</string>
|
||||
<string name="confirm">Bestätigen</string>
|
||||
<string name="star">Zu den Favoriten hinzufügen</string>
|
||||
<string name="unstar">Aus den Favoriten entfernen</string>
|
||||
<string name="star">Zu Favoriten hinzufügen</string>
|
||||
<string name="unstar">Aus Favoriten entfernen</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="sendLabel">Senden …</string>
|
||||
<string name="sendLabel">Senden…</string>
|
||||
<string name="editCardTitle">Karte bearbeiten</string>
|
||||
<string name="addCardTitle">Neue Karte</string>
|
||||
<string name="addCardTitle">Karte hinzufügen</string>
|
||||
<string name="scanCardBarcode">Barcode scannen</string>
|
||||
<string name="cardShortcut">Shortcut zu einer Karte</string>
|
||||
<string name="cardShortcut">Kartenkürzel</string>
|
||||
<string name="noCardsMessage">Füge zuerst eine Karte hinzu</string>
|
||||
<string name="noCardExistsError">Diese Karte konnte nicht gefunden werden</string>
|
||||
<string name="noCardExistsError">Konnte die Karte nicht finden</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
<string name="exportName">Export</string>
|
||||
<string name="importExportHelp">Wenn du deine Daten sicherst, kannst du sie auf ein anderes Gerät übertragen.</string>
|
||||
@@ -33,12 +33,12 @@
|
||||
<string name="exportFailed">Export konnte nicht durchgeführt werden</string>
|
||||
<string name="importing">Importiere…</string>
|
||||
<string name="exporting">Exportiere…</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>
|
||||
<string name="importOptionApplicationTitle">Andere Anwendungen</string>
|
||||
<string name="importOptionApplicationExplanation">Beliebige Anwendung oder deinen bevorzugten Dateimanager zur Dateiauswahl verwenden.</string>
|
||||
<string name="importOptionApplicationButton">Aus anderer Anwendung</string>
|
||||
<string name="importOptionFilesystemTitle">Aus Dateisystem importieren</string>
|
||||
<string name="importOptionFilesystemExplanation">Wähle eine bestimmte Datei aus dem Dateisystem aus.</string>
|
||||
<string name="importOptionFilesystemButton">vom Dateisystem</string>
|
||||
<string name="importOptionApplicationTitle">Andere App verwenden</string>
|
||||
<string name="importOptionApplicationExplanation">Benutze eine beliebige App oder deinen bevorzugten Dateimanager zur Dateiauswahl.</string>
|
||||
<string name="importOptionApplicationButton">Andere App verwenden</string>
|
||||
<string name="about">Über</string>
|
||||
<string name="app_license">Freie Software, lizensiert unter der GPLv3+</string>
|
||||
<string name="about_title_fmt">Über <xliff:g id="app_name">%s</xliff:g></string>
|
||||
@@ -46,7 +46,7 @@
|
||||
<string name="selectBarcodeTitle">Barcode auswählen</string>
|
||||
<string name="thumbnailDescription">Vorschaubild</string>
|
||||
<string name="settings">Einstellungen</string>
|
||||
<string name="settings_display_barcode_max_brightness">Displayhelligkeit in der Barcodeansicht erhöhen</string>
|
||||
<string name="settings_display_barcode_max_brightness">Displayhelligkeit erhöhen</string>
|
||||
<string name="exportSuccessful">Daten exportiert</string>
|
||||
<string name="importSuccessful">Daten importiert</string>
|
||||
<string name="intent_import_card_from_url_share_text">Ich würde gerne diese Karte mit dir teilen</string>
|
||||
@@ -66,12 +66,12 @@
|
||||
<string name="noGroups">Klicke auf das Pluszeichen +, um eine Gruppe hinzuzufügen.</string>
|
||||
<string name="noGroupCards">Diese Gruppe ist leer</string>
|
||||
<string name="groups">Gruppen</string>
|
||||
<string name="enter_group_name">Gib einen Gruppennamen ein</string>
|
||||
<string name="enter_group_name">Gruppennamen eingeben</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Beenden ohne zu speichern\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Beenden</string>
|
||||
<string name="failedOpeningFileManager">Installiere zuerst einen Dateimanager.</string>
|
||||
<string name="noBarcode">Kein Barcode</string>
|
||||
<string name="addManually">Code manuell eingeben</string>
|
||||
<string name="addManually">Barcode manuell eingeben</string>
|
||||
<string name="moveDown">Nach unten verschieben</string>
|
||||
<string name="moveUp">Nach oben verschieben</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -95,28 +95,23 @@
|
||||
<string name="expiryStateSentence">Läuft ab: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Sperrbildschirm verhindern</string>
|
||||
<string name="settings_keep_screen_on">Bildschirm aktiv lassen</string>
|
||||
<string name="privacy_policy_popup_text">Hinweis zum Datenschutz (oft gefordert):
|
||||
\n
|
||||
\nKEINE DATEN WERDEN GESAMMELT, was jeder bestätigen kann, da unsere Anwendung eine freie Software ist.</string>
|
||||
<string name="accept">Annehmen</string>
|
||||
<string name="privacy_policy">Datenschutzrichtlinie</string>
|
||||
<string name="importVoucherVaultMessage">Wähle deinen <i>vouchervault.json</i>-Export aus Voucher Vault zum Importieren aus.
|
||||
\nErstellen Sie ihn, indem du zuerst auf Export in Voucher Vault drückst.</string>
|
||||
<string name="importVoucherVaultMessage">Wähle deinen <i>vouchervault.json</i>-Export aus Voucher Vault zum Importieren aus. \nErstelle ihn, indem du zuerst auf Export in Voucher Vault drückst.</string>
|
||||
<string name="importVoucherVault">Aus Voucher Vault importieren</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Wählen du deinen <i>LoyaltyCardKeychain.csv</i>-Export aus Loyalty Card Keychain zum Importieren aus.
|
||||
\nErstelle ihn über das Menü Import/Export in Loyalty Card Keychain, indem du dort zuerst auf Export drückst.</string>
|
||||
<string name="importLoyaltyCardKeychain">Aus Loyalty Card Keychain importieren</string>
|
||||
<string name="importFidmeMessage">Wähle deinen <i>fidme-export-request-xxxxxx.zip</i>-Export aus FidMe zum Importieren aus und wähle anschließend die Strichcodetypen manuell aus.
|
||||
\nOder erstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann zuerst auf Meine Daten extrahieren drückst.</string>
|
||||
<string name="importFidmeMessage">Wähle deinen <i>fidme-export-request-xxxxxx.zip</i>-Export aus FidMe zum Importieren aus und wähle anschließend die Barcodetypen manuell aus. \nOder erstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann zuerst auf Meine Daten extrahieren drückst.</string>
|
||||
<string name="importFidme">Aus FidMe importieren</string>
|
||||
<string name="importCatimaMessage">Wähle deinen <i>catima.zip</i>-Export aus Catima zum Importieren aus.
|
||||
\nErstelle ihn aus dem Import/Export-Menü einer anderen Catima-Anwendung, indem du dort zuerst Export drückst.</string>
|
||||
<string name="importCatima">Aus Catima importieren</string>
|
||||
<string name="setBarcodeId">Manuell eingeben</string>
|
||||
<string name="setBarcodeId">Barcodewert festlegen</string>
|
||||
<string name="sameAsCardId">Entspricht Kartennummer</string>
|
||||
<string name="barcodeId">Barcodewert</string>
|
||||
<string name="errorReadingImage">Bildverarbeitung fehlgeschlagen</string>
|
||||
<string name="noBarcodeFound">Kein Barcode erkannt</string>
|
||||
<string name="errorReadingImage">Konnte das Bild nicht lesen</string>
|
||||
<string name="noBarcodeFound">Keinen Barcode erkannt</string>
|
||||
<string name="addFromImage">Bild aus der Galerie wählen</string>
|
||||
<string name="unsupportedBarcodeType">Dieser Barcodetyp kann noch nicht angezeigt werden. Wir hoffen das Format in einer zukünftigen Version zu unterstützen.</string>
|
||||
<string name="wrongValueForBarcodeType">Der Wert ist für den gewählten Barcodetyp leider nicht gültig</string>
|
||||
@@ -129,24 +124,23 @@
|
||||
<string name="updateBarcodeQuestionTitle">Barcodewert aktualisieren?</string>
|
||||
<string name="takePhoto">Foto aufnehmen</string>
|
||||
<string name="removeImage">Bild entfernen</string>
|
||||
<string name="setBackImage">Kartenrückseite</string>
|
||||
<string name="setFrontImage">Kartenvorderseite</string>
|
||||
<string name="setBackImage">Rückseite einstellen</string>
|
||||
<string name="setFrontImage">Vorderseite einstellen</string>
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="frontImageDescription">Bild der Vorseite</string>
|
||||
<string name="backImageDescription">Bild der Rückseite</string>
|
||||
<string name="frontImageDescription">Vorderseite</string>
|
||||
<string name="backImageDescription">Rückseite</string>
|
||||
<string name="passwordRequired">Bitte gib das Passwort ein</string>
|
||||
<string name="importStocardMessage">Wähle deinen <i>***.zip</i>-Export aus Stocard zum Importieren aus.
|
||||
\nSie erhalten ihn, indem du eine E-Mail an support@stocardapp.com sendest und um einen Export deiner Daten bitten.</string>
|
||||
<string name="importStocardMessage">Wähle deinen <i>***.zip</i>-Export aus Stocard zum Importieren aus. \nDu erhälst ihn, indem du eine E-Mail an support@stocardapp.com sendest und um einen Export deiner Daten bittest.</string>
|
||||
<string name="importStocard">Von Stocard importieren</string>
|
||||
<string name="turn_flashlight_off">Licht ausschalten</string>
|
||||
<string name="turn_flashlight_on">Licht einschalten</string>
|
||||
<string name="turn_flashlight_off">Blitzlicht ausschalten</string>
|
||||
<string name="turn_flashlight_on">Blitzlicht einschalten</string>
|
||||
<string name="failedGeneratingShareURL">URL konnte nicht erstellt werden. Bitte melde das an uns.</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> ausgewählt</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> ausgewählt</item>
|
||||
</plurals>
|
||||
<string name="deleteTitle">Karte löschen</string>
|
||||
<string name="deleteConfirmation">Diese Karte wirklich löschen?</string>
|
||||
<string name="deleteConfirmation">Diese Karte endgültig löschen?</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Diese <xliff:g>%d</xliff:g> Karte endgültig löschen\?</item>
|
||||
<item quantity="other">Diese <xliff:g>%d</xliff:g> Karten endgültig löschen\?</item>
|
||||
@@ -158,7 +152,6 @@
|
||||
<string name="settings_system_locale">System</string>
|
||||
<string name="settings_locale">Sprache</string>
|
||||
<string name="settings_brown_theme">Braun</string>
|
||||
<string name="settings_grey_theme">Grau</string>
|
||||
<string name="settings_green_theme">Grün</string>
|
||||
<string name="settings_sky_blue_theme">Himmelblau</string>
|
||||
<string name="settings_blue_theme">Blau</string>
|
||||
@@ -177,9 +170,9 @@
|
||||
<string name="reverse">…in umgekehrter Reihenfolge</string>
|
||||
<string name="version_history">Versionshistorie</string>
|
||||
<string name="credits">Dank an</string>
|
||||
<string name="help_translate_this_app">Hilfe bei der Übersetzung</string>
|
||||
<string name="help_translate_this_app">Hilf bei der Übersetzung</string>
|
||||
<string name="and_data_usage">und Datennutzung</string>
|
||||
<string name="rate_this_app">Bewerte die Anwendung</string>
|
||||
<string name="rate_this_app">Bewerte die App</string>
|
||||
<string name="on_google_play">auf Google Play</string>
|
||||
<string name="license">Lizenz</string>
|
||||
<string name="source_repository">Quellcode</string>
|
||||
@@ -193,10 +186,10 @@
|
||||
<string name="editGroup">Gruppe wird bearbeitet: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_edit">Gruppe bearbeiten</string>
|
||||
<string name="noGiftCardsGroup">Erstelle einige Karten und ordne sie dann hier der Gruppe zu.</string>
|
||||
<string name="setIcon">Vorschaubild setzen</string>
|
||||
<string name="setIcon">Vorschaubild festlegen</string>
|
||||
<string name="selectColor">Farbe auswählen</string>
|
||||
<string name="translate_platform">auf Weblate</string>
|
||||
<string name="shortcutSelectCard">Wählen Sie eine Karte</string>
|
||||
<string name="shortcutSelectCard">Karte wählen</string>
|
||||
<string name="options">Optionen</string>
|
||||
<string name="showMoreInfo">Infos anzeigen</string>
|
||||
<string name="starred">als Favorit</string>
|
||||
@@ -210,9 +203,9 @@
|
||||
<string name="settings_landscape_orientation">Querformat</string>
|
||||
<string name="settings_portrait_orientation">Hochformat</string>
|
||||
<string name="duplicateCard">Duplizieren</string>
|
||||
<string name="unarchive">Archivierung aufheben</string>
|
||||
<string name="settings_card_orientation">Barcode-Ausrichtung</string>
|
||||
<string name="unarchived">Karte aus dem Archiv entfernt</string>
|
||||
<string name="unarchive">Aus dem Archiv wiederherstellen</string>
|
||||
<string name="settings_card_orientation">Bildschirm-Ausrichtung</string>
|
||||
<string name="unarchived">Karte aus dem Archiv wiederhergestellt</string>
|
||||
<string name="archive">Archivieren</string>
|
||||
<string name="archived">Karte archiviert</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kartenausrichtung nach dem Öffnen beibehalten</string>
|
||||
@@ -220,20 +213,16 @@
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> Karte (<xliff:g id="archivedCount">%2$d</xliff:g> archiviert)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> Karten (<xliff:g id="archivedCount">%2$d</xliff:g> archiviert)</item>
|
||||
</plurals>
|
||||
<string name="failedLaunchingPhotoPicker">Es konnte keine unterstützte Galerie-Anwendung gefunden werden</string>
|
||||
<string name="failedLaunchingPhotoPicker">Es konnte keine unterstützte Galerie-App gefunden werden</string>
|
||||
<string name="previousCard">Vorherige</string>
|
||||
<string name="nextCard">Nächste</string>
|
||||
<string name="failedToOpenUrl">Bitte installiere einen Webbrowser</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Archiv ansehen (<xliff:g>%1$d</xliff:g> Karte)</item>
|
||||
<item quantity="other">Archiv ansehen (<xliff:g>%1$d</xliff:g> Karten)</item>
|
||||
</plurals>
|
||||
<string name="failedToOpenUrl">Bitte installiere zuerst einen Webbrowser</string>
|
||||
<string name="welcome">Willkommen bei Catima</string>
|
||||
<string name="barcodeLongPressMessage">In der Galerie können nur Bilder geöffnet werden</string>
|
||||
<string name="failedToRetrieveImageFile">Bilddatei konnte nicht abgerufen werden</string>
|
||||
<string name="updateBalanceTitle">Wie viel hast du ausgegeben oder erhalten?</string>
|
||||
<string name="cameraPermissionDeniedTitle">Kein Zugriff auf die Kamera möglich</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Um Strichcodes zu scannen, benötigt Catima Zugriff auf Ihre Kamera. Tippen Sie hier, um Ihre Berechtigungseinstellungen zu ändern.</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Um Barcodes zu scannen, benötigt Catima Zugriff auf deine Kamera. Tippe hier, um deine Berechtigungseinstellungen zu ändern.</string>
|
||||
<string name="updateBalanceHint">Betrag eingeben</string>
|
||||
<string name="importCards">Karten importieren</string>
|
||||
<string name="currentBalanceSentence">Aktuelles Guthaben: <xliff:g>%s</xliff:g></string>
|
||||
@@ -245,49 +234,61 @@
|
||||
<string name="validFromSentence">Gültig ab: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseValidFromDate">Gültig-ab-Datum wählen</string>
|
||||
<string name="anyDate">Beliebiges Datum</string>
|
||||
<string name="icon_header_click_text">Langes Drücken zum Bearbeiten der Vorschau</string>
|
||||
<string name="switchToBarcode">Umschalten auf Barcode</string>
|
||||
<string name="openFrontImageInGalleryApp">Vorderes Bild in der Galerie öffnen</string>
|
||||
<string name="openBackImageInGalleryApp">Hinteres Bild in der Galerie öffnen</string>
|
||||
<string name="icon_header_click_text">Zum Bearbeiten des Vorschaubildes lang drücken</string>
|
||||
<string name="switchToBarcode">Zum Barcode wechseln</string>
|
||||
<string name="openFrontImageInGalleryApp">Vorderseite in Galerie öffnen</string>
|
||||
<string name="openBackImageInGalleryApp">Rückseite in Galerie öffnen</string>
|
||||
<string name="height">Höhe:</string>
|
||||
<string name="switchToFrontImage">Zum vorderen Bild wechseln</string>
|
||||
<string name="switchToBackImage">Zum hinteren Bild wechseln</string>
|
||||
<string name="switchToFrontImage">Zur Vorderseite wechseln</string>
|
||||
<string name="switchToBackImage">Zur Rückseite wechseln</string>
|
||||
<string name="setBarcodeHeight">Barcode-Höhe einstellen</string>
|
||||
<string name="donate">Spenden</string>
|
||||
<string name="show_note">Notiz anzeigen</string>
|
||||
<string name="show_balance">Betrag anzeigen</string>
|
||||
<string name="show_validity">Gültigkeitsdauer anzeigen</string>
|
||||
<string name="show_name_below_image_thumbnail">Namen unter Bildvorschau anzeigen</string>
|
||||
<string name="settings_allow_content_provider_read_title">Anderen Anwendungen den Zugriff auf meine Daten gestatten</string>
|
||||
<string name="show_name_below_image_thumbnail">Namen unter Vorschaubild anzeigen</string>
|
||||
<string name="settings_allow_content_provider_read_title">Anderen Apps den Zugriff auf meine Daten gestatten</string>
|
||||
<string name="permissionReadCardsLabel">Catima-Karten lesen</string>
|
||||
<string name="permissionReadCardsDescription">lesen deiner Catima Karten mit allen Details, einschließlich Notizen und Bildern</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Anwendungen müssen weiterhin eine Genehmigung beantragen, um Zugriff zu erhalten</string>
|
||||
<string name="permissionReadCardsDescription">Lesen deiner Catima Karten mit allen Details, einschließlich Notizen und Bildern</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Apps müssen weiterhin eine Genehmigung beantragen, um Zugriff zu erhalten</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Erforderlich für das Funktionieren einiger Scanner</string>
|
||||
<string name="settings_keep_screen_on_summary">Deaktiviert die Bildschirmzeitüberschreitung beim Anzeigen einer Karte</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deaktiviert die Bildschirmsperre während der Anzeige einer Karte</string>
|
||||
<string name="settings_oled_dark_summary">Reduziert den Batterieverbrauch bei OLED-Displays</string>
|
||||
<string name="settings_category_title_cards">Karten</string>
|
||||
<string name="settings_category_title_cards">Kartenansicht</string>
|
||||
<string name="settings_category_title_privacy">Datenschutz</string>
|
||||
<string name="settings_category_title_general">Allgemein</string>
|
||||
<string name="view_online">Zeige online</string>
|
||||
<string name="view_online">Online anzeigen</string>
|
||||
<string name="action_display_options">Anzeigeoptionen</string>
|
||||
<string name="show_archived_cards">Zeige archivierte Karten</string>
|
||||
<string name="show_archived_cards">Archivierte Karten anzeigen</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os und Mitwirkende</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os und Mitwirkende</string>
|
||||
<string name="card_id_must_not_be_empty">Kartennummer darf nicht leer sein</string>
|
||||
<string name="balanceParsingFailed">Ungültiges Guthaben</string>
|
||||
<string name="add_a_card_in_a_different_way">Karte anders hinzufügen</string>
|
||||
<string name="action_more_options">Mehr Optionen</string>
|
||||
<string name="enter_card_id">Gib die Codenummer oder Ziffernfolge deiner Karte an</string>
|
||||
<string name="addWithoutBarcode">Eine Karde ohne Code hinzufügen</string>
|
||||
<string name="enter_card_id">Gib die Kartennummer oder den Text auf deiner Karte ein</string>
|
||||
<string name="addWithoutBarcode">Eine Karte ohne Barcode hinzufügen</string>
|
||||
<string name="field_must_not_be_empty">Feld darf nicht leer sein</string>
|
||||
<string name="manually_enter_barcode_instructions">Trage die ID Nummer oder Text deiner Karte ein und drücke auf den Barcode, der wie auf deiner Karte aussieht.</string>
|
||||
<string name="manually_enter_barcode_instructions">Trage die Kartenummer oder Text deiner Karte ein und drücke auf den Barcode, der wie der auf deiner Karte aussieht.</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Immer drehen (ignoriert Systemeinstellungen)</string>
|
||||
<string name="continue_">Fortfahren</string>
|
||||
<string name="add_manually_warning_title">Es wird empfohlen, zu scannen</string>
|
||||
<string name="add_manually_warning_title">Scannen empfohlen</string>
|
||||
<string name="add_manually_warning_message">In einigen Geschäften weicht der Wert des Barcodes von dem auf der Karte angegebenen Wert ab. Aus diesem Grund funktioniert die manuelle Eingabe des Barcodes in einigen Fällen nicht. Es wird dringend empfohlen, den Barcode mit einer Kamera zu scannen. Möchtest du dennoch fortfahren?</string>
|
||||
<string name="spend">Zahlen</string>
|
||||
<string name="receive">Erhalten</string>
|
||||
<string name="amountParsingFailed">Ungültiger Betrag</string>
|
||||
<string name="addFromPdfFile">PDF-Datei auswählen</string>
|
||||
<string name="errorReadingFile">Datei konnte nicht gelesen werden</string>
|
||||
<string name="failedLaunchingFileManager">Konnte keinen unterstützten Dateimanager finden</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Welchen der gefundenen Barcodes möchtest du verwenden?</string>
|
||||
<string name="pageWithNumber">Seite <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Dein Gerät scheint nicht über eine Kamera zu verfügen. Falls doch, versuche, das Gerät neu zu starten. Andernfalls verwende die Schaltfläche Weitere Optionen unten, um einen Barcode auf andere Weise hinzuzufügen.</string>
|
||||
<string name="exportCancelled">Export abgebrochen</string>
|
||||
<string name="importCancelled">Import abgebrochen</string>
|
||||
<string name="useFrontImage">Vorderseite verwenden</string>
|
||||
<string name="useBackImage">Rückseite verwenden</string>
|
||||
<string name="settings_use_volume_keys_navigation">Karten mit Lautstärketasten wechseln</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Wähle mit den Lautstärketasten, welche Karte angezeigt werden soll</string>
|
||||
</resources>
|
||||
@@ -14,13 +14,13 @@
|
||||
<string name="sendLabel">Αποστολή…</string>
|
||||
<string name="editCardTitle">Επεξεργασία Κάρτας</string>
|
||||
<string name="addCardTitle">Προσθήκη Κάρτας</string>
|
||||
<string name="scanCardBarcode">Σαρώστε τον γραμμοκώδικα (bardcode)</string>
|
||||
<string name="scanCardBarcode">Σαρώστε τον γραμμωτό κώδικα</string>
|
||||
<string name="cardShortcut">Συντόμευση Κάρτας</string>
|
||||
<string name="noCardsMessage">Προσθέστε μία κάρτα πρώτα</string>
|
||||
<string name="noCardExistsError">Δεν ήταν δυνατό να εντοπιστεί η κάρτα</string>
|
||||
<string name="importExport">Εισαγωγή/Εξαγωγή</string>
|
||||
<string name="exportName">Εξαγωγή</string>
|
||||
<string name="importExportHelp">Τα αντίγραφα ασφαλείας, σας επιτρέπουν να τα εισάγετε σε άλλη συσκευή.</string>
|
||||
<string name="importExportHelp">Τα αντίγραφα ασφαλείας σας επιτρέπουν να τα εισάγετε σε άλλη συσκευή.</string>
|
||||
<string name="importSuccessfulTitle">Εισήχθησαν</string>
|
||||
<string name="importFailedTitle">Εισαγωγή ανεπιτυχής</string>
|
||||
<string name="importFailed">Δεν ήταν δυνατή η εισαγωγή</string>
|
||||
@@ -39,7 +39,7 @@
|
||||
<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="selectBarcodeTitle">Επιλέξτε Barcode</string>
|
||||
<string name="selectBarcodeTitle">Επιλέξτε γραμμωτό κώδικα</string>
|
||||
<string name="thumbnailDescription">Μικρογραφία</string>
|
||||
<string name="settings">Ρυθμίσεις</string>
|
||||
<string name="settings_dark_theme">Σκοτεινό</string>
|
||||
@@ -54,7 +54,7 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> επιλέγχθηκαν</item>
|
||||
</plurals>
|
||||
<string name="noGiftCardsGroup">Δημιούργησε κάρτες και βάλτες σε αυτή την ομάδα.</string>
|
||||
<string name="addManually">Χειροκίνητη εισαγωγή κωδικού</string>
|
||||
<string name="addManually">Εισαγάγετε τον γραμμωτό κώδικα με μη αυτόματο τρόπο</string>
|
||||
<string name="never">Ποτέ</string>
|
||||
<string name="share">Κοινοποίηση</string>
|
||||
<plurals name="balancePoints">
|
||||
@@ -64,14 +64,14 @@
|
||||
<string name="exportOptionExplanation">Τα δεδομένα θα μεταφερθούν σε τοποθεσία της επιλογής σας.</string>
|
||||
<string name="settings_theme">Θέμα</string>
|
||||
<string name="groupsList">Ομάδες: <xliff:g>%s</xliff:g></string>
|
||||
<string name="barcodeId">Τιμή γραμμοκώδικα</string>
|
||||
<string name="barcodeId">Τιμή γραμμωτού κώδικα</string>
|
||||
<string name="sort">Ταξινόμηση</string>
|
||||
<string name="deleteConfirmationGroup">Διαγραφή ομάδας;</string>
|
||||
<string name="moveDown">Προχώρα κάτω</string>
|
||||
<string name="accept">Αποδοχή</string>
|
||||
<string name="yes">Ναι</string>
|
||||
<string name="no">Όχι</string>
|
||||
<string name="addFromImage">Επιλογή εικόνας από την συλλογή</string>
|
||||
<string name="addFromImage">Επιλέξτε μια εικόνα από τη συλλογή</string>
|
||||
<string name="expiryStateSentence">Λήγει: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryDate">Ημερομηνία λήξης</string>
|
||||
<string name="settings_keep_screen_on">Κράτα την οθόνη ανοιχτή</string>
|
||||
@@ -91,18 +91,18 @@
|
||||
<string name="importLoyaltyCardKeychainMessage">Επιλέξτε την <i>LoyaltyCardKeychain.csv</i> εξαγωγή από το Loyalty Card Keychain για εισαγωγή.
|
||||
\nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής στο Loyalty Card Keychain επιλέγοντας Εξαγωγή.</string>
|
||||
<string name="importFidme">Εισαγωγή από FidMe</string>
|
||||
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμοκώδικα μετέπειτα.
|
||||
\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και διαλέγοντας εξαγωγή δεδομένων.</string>
|
||||
<string name="setBarcodeId">Επιλέξτε τιμή γραμμοκώδικα</string>
|
||||
<string name="wrongValueForBarcodeType">Η τιμή δεν είναι έγκυρη για αυτού του τύπου γραμμοκώδικα</string>
|
||||
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα μετέπειτα.
|
||||
\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων πρώτα.</string>
|
||||
<string name="setBarcodeId">Επιλέξτε τιμή γραμμωτού κώδικα</string>
|
||||
<string name="wrongValueForBarcodeType">Η τιμή δεν είναι έγκυρη για τον επιλεγμένο γραμμωτό κώδικα</string>
|
||||
<string name="setBackImage">Επιλογή οπίσθιας εικόνας</string>
|
||||
<string name="removeImage">Αφαίρεση εικόνας</string>
|
||||
<string name="takePhoto">Τραβήξτε μια φωτογραφία</string>
|
||||
<string name="updateBarcodeQuestionText">Αλλάξατε τον κωδικό. Θέλετε να ενημερώσετε και τον γραμμοκώδικα στην ίδια τιμή;</string>
|
||||
<string name="updateBarcodeQuestionText">Αλλάξατε τον κωδικό. Θέλετε να ενημερώσετε και τον γραμμωτό κώδικα στην ίδια τιμή;</string>
|
||||
<string name="options">Επιλογές</string>
|
||||
<string name="noGroupCards">Αυτή η ομάδα είναι άδεια</string>
|
||||
<string name="settings_display_barcode_max_brightness">Επιπλέον φωτισμός γραμμοκώδικα</string>
|
||||
<string name="group_name_is_empty">Το όνομα ομάδας δεν γίνεται να είναι κενό</string>
|
||||
<string name="settings_display_barcode_max_brightness">Επιπλέον φωτισμός γραμμωτού κώδικα</string>
|
||||
<string name="group_name_is_empty">Το όνομα της ομάδας δεν πρέπει να είναι κενό</string>
|
||||
<string name="group_edit">Επεξεργασία ομάδας</string>
|
||||
<string name="star">Προσθήκη στα αγαπημένα</string>
|
||||
<string name="unstar">Αφαίρεση από τα αγαπημένα</string>
|
||||
@@ -114,10 +114,7 @@
|
||||
<string name="currency">Νόμισμα</string>
|
||||
<string name="privacy_policy">Πολιτική απορρήτου</string>
|
||||
<string name="chooseImportType">Εισαγωγή δεδομένων από</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy_popup_text">Σημείωμα πολιτικής απορρήτου ( υποχρεωτικό σε κάποια \"μαγαζιά\" εφαρμογών)
|
||||
\n
|
||||
\nΜΗΔΕΝΙΚΆ ΔΕΔΟΜΈΝΑ ΣΥΛΛΈΓΟΝΤΑΙ, ο οποιοσδήποτε μπορεί να το επιβεβαιώσει μιας και η εφαρμογή είναι ελεύθερο λογισμικό.</string>
|
||||
<string name="app_loyalty_card_keychain">Lοyalty Card Keychain</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> κάρτα ( <xliff:g id="archivedCount">%2$d</xliff:g> αρχειοθετήθηκε)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> κάρτες ( <xliff:g id="archivedCount">%2$d</xliff:g> αρχειοθετήθηκαν)</item>
|
||||
@@ -131,27 +128,26 @@
|
||||
<string name="setFrontImage">Επιλογή μπροστινής εικόνας</string>
|
||||
<string name="importVoucherVaultMessage">Επιλέξτε την <i>vouchervault.json</i> εξαγωγή από το Voucher Vault για εισαγωγή.
|
||||
\nΔημιουργήστε το επιλέγοντας Εξαγωγή στο Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Ο τύπος γραμμοκώδικα δεν γίνεται να εμφανιστεί ακόμα. Μπορεί να υποστηρίζεται σε μια μελλοντική έκδοση της εφαρμογής.</string>
|
||||
<string name="unsupportedBarcodeType">Ο τύπος γραμμωτού κώδικα δεν μπορεί να εμφανιστεί ακόμα. Μπορεί να υποστηρίζεται σε μια μελλοντική έκδοση της εφαρμογής.</string>
|
||||
<string name="frontImageDescription">Μπροστινή εικόνα</string>
|
||||
<string name="photos">Φωτογραφίες</string>
|
||||
<string name="backImageDescription">Οπίσθια εικόνα</string>
|
||||
<string name="updateBarcodeQuestionTitle">Ενημέρωση τιμής γραμμοκώδικα;</string>
|
||||
<string name="updateBarcodeQuestionTitle">Ενημέρωση τιμής γραμμωτού κώδικα;</string>
|
||||
<string name="passwordRequired">Παρακαλώ εισάγετε τον κωδικό</string>
|
||||
<string name="sort_by_most_recently_used">Χρησιμοποιήθηκαν πρόσφατα</string>
|
||||
<string name="shortcutSelectCard">Επιλέξτε μία κάρτα</string>
|
||||
<string name="barcodeImageDescriptionWithType">Εικόνα <xliff:g>%s</xliff:g> γραμμοκώδικα</string>
|
||||
<string name="barcodeImageDescriptionWithType">Εικόνα <xliff:g>%s</xliff:g> γραμμωτού κώδικα</string>
|
||||
<string name="app_libraries">Ελεύθερες βιβλιοθήκες τρίτων: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="license">Άδεια</string>
|
||||
<string name="include_if_asking_support">Αν θέλετε να ζητήσετε υποστήριξη, συμπεριλάβετε τις ακόλουθες πληροφορίες:</string>
|
||||
<string name="importSuccessful">Δεδομένα εισήχθησαν</string>
|
||||
<string name="moveUp">Προχώρα πάνω</string>
|
||||
<string name="barcodeType">Τύπος γραμμοκώδικα</string>
|
||||
<string name="barcodeType">Τύπος γραμμωτού κώδικα</string>
|
||||
<string name="app_resources">Ελεύθερες πηγές τρίτων: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectColor">Επιλογή χρώματος</string>
|
||||
<string name="setIcon">Ορισμός εικονιδίου</string>
|
||||
<string name="settings_sky_blue_theme">Γαλάζιο</string>
|
||||
<string name="settings_green_theme">Πράσινο</string>
|
||||
<string name="settings_grey_theme">Γκρι</string>
|
||||
<string name="settings_brown_theme">Καφέ</string>
|
||||
<string name="sort_by_expiry">Λήξη</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -162,7 +158,7 @@
|
||||
<string name="exportSuccessful">Δεδομένα εξήχθησαν</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Αποτροπή κλειδώματος οθόνης</string>
|
||||
<string name="failedLaunchingPhotoPicker">Δεν βρέθηκε υποστηριζόμενη εφαρμογή συλλογής</string>
|
||||
<string name="noBarcode">Χωρίς barcode</string>
|
||||
<string name="noBarcode">Χωρίς γραμμωτό κώδικα</string>
|
||||
<string name="starImage">Αγαπημένο αστέρι</string>
|
||||
<string name="balanceSentence">Υπόλοιπο: <xliff:g>%s</xliff:g></string>
|
||||
<string name="failedParsingImportUriError">Δεν ήταν δυνατή η ανάλυση του εισαγόμενου URL</string>
|
||||
@@ -173,7 +169,7 @@
|
||||
<string name="app_copyright_old">Βασισμένο στο Loyalty Card Keychain
|
||||
\nπνευματικά δικαιώματα © 2016-2020 Branden Archer</string>
|
||||
<string name="settings_follow_system_orientation">Ακολούθηση συστήματος</string>
|
||||
<string name="settings_card_orientation">Προσανατολισμός γραμμοκώδικα</string>
|
||||
<string name="settings_card_orientation">Προσανατολισμός γραμμωτού κώδικα</string>
|
||||
<string name="settings_portrait_orientation">Πορτραίτο</string>
|
||||
<string name="settings_landscape_orientation">Οριζόντια</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Πνευματικά δικαιώματα © 2019-<xliff:g>%d</xliff:g> Sylvia van Os</string>
|
||||
@@ -189,15 +185,15 @@
|
||||
<string name="leaveWithoutSaveConfirmation">Έξοδος χωρίς αποθήκευση;</string>
|
||||
<string name="expiryStateSentenceExpired">Έληξε: <xliff:g>%s</xliff:g></string>
|
||||
<string name="card">Κάρτα</string>
|
||||
<string name="editBarcode">Επεξεργασία γραμμοκώδικα</string>
|
||||
<string name="editBarcode">Επεξεργασία γραμμωτού κώδικα</string>
|
||||
<string name="chooseExpiryDate">Επιλέξτε ημερομηνία λήξης</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Μετακίνηση του γραμμοκώδικα στο πάνω μέρος της οθόνης</string>
|
||||
<string name="noBarcodeFound">Δεν βρέθηκε γραμμοκώδικας</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Μετακίνηση του γραμμωτού κώδικα στο πάνω μέρος της οθόνης</string>
|
||||
<string name="noBarcodeFound">Δεν βρέθηκε γραμμωτός κώδικα</string>
|
||||
<string name="balance">Υπόλοιπο</string>
|
||||
<string name="importCatima">Εισαγωγή από Catima</string>
|
||||
<string name="importStocard">Εισαγωγή από Stocard</string>
|
||||
<string name="importVoucherVault">Εισαγωγή από Voucher Vault</string>
|
||||
<string name="sameAsCardId">Ίδιος κωδικός</string>
|
||||
<string name="sameAsCardId">Όπως ο κωδικός</string>
|
||||
<string name="exportPassword">Προσθέστε έναν κωδικό για προστασία της εξαγωγής (προαιρετικά)</string>
|
||||
<string name="exportPasswordHint">Εισαγωγή κωδικού</string>
|
||||
<string name="failedGeneratingShareURL">Δεν ήταν δυνατή η δημιουργία κοινοποιούμενου URL. Παρακαλώ αναφέρετε το.</string>
|
||||
@@ -207,7 +203,7 @@
|
||||
<string name="settings_oled_dark">Απόλυτο μαύρο φόντο για το μαύρο θέμα</string>
|
||||
<string name="settings_system_locale">Σύστημα</string>
|
||||
<string name="settings_theme_color">Χρώμα θέματος</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_catima_theme">Κάτιμα</string>
|
||||
<string name="settings_pink_theme">Ροζ</string>
|
||||
<string name="settings_magenta_theme">Φούξια</string>
|
||||
<string name="settings_violet_theme">Βιολετί</string>
|
||||
@@ -229,31 +225,27 @@
|
||||
<string name="nextCard">Επόμενη</string>
|
||||
<string name="updateBalance">Ενημέρωση υπολοίπου</string>
|
||||
<string name="barcodeLongPressMessage">Μόνο εικόνες μπορούν να ανοιχτούν στην εφαρμογή φωτογραφιών</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Για να σκανάρετε γραμμοκώδικες, θα χρειαστεί πρόσβαση στην κάμερα από το Catima. Πατήστε εδώ για να δώσετε πρόσβαση.</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Προβολή αρχείου (<xliff:g>%1$d</xliff:g> κάρτας)</item>
|
||||
<item quantity="other">Προβολή αρχείου (<xliff:g>%1$d</xliff:g> καρτών)</item>
|
||||
</plurals>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Για να σκανάρετε γραμμωτούς κώδικες, θα χρειαστεί πρόσβαση στην κάμερα από το Catima. Πατήστε εδώ για να δώσετε πρόσβαση.</string>
|
||||
<string name="importCards">Εισαγωγή καρτών</string>
|
||||
<string name="updateBalanceHint">Εισάγετε ποσό</string>
|
||||
<string name="currentBalanceSentence">Τωρινό υπόλοιπο <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Νέο υπόλοιπο: <xliff:g>%s</xliff:g></string>
|
||||
<string name="failedToOpenUrl">Εγκαταστήστε έναν περιηγητή πρώτα</string>
|
||||
<string name="welcome">Καλώς ήρθατε στο Catima</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Απενεργοποιεί το κλείδωμα οθόνης ενόσω βλέπετε μια κάρτα</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Απαραίτητο για να δουλέψει σε κάποια σκάνερ</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Απενεργοποιεί το κλείδωμα οθόνης κατά την προβολή μιας κάρτας</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Απαραίτητο για να δουλέψει σε κάποιους σαρωτές</string>
|
||||
<string name="cameraPermissionRequired">Δικαίωμα πρόσβασης στην κάμερα απαραίτητο γι\' αυτή την ενέργεια…</string>
|
||||
<string name="settings_allow_content_provider_read_title">Επιτρέπει σε άλλες εφαρμογές να έχουν πρόσβαση στα δεδομένα μου</string>
|
||||
<string name="settings_allow_content_provider_read_title">Να επιτρέπεται σε άλλες εφαρμογές να έχουν πρόσβαση στα δεδομένα μου</string>
|
||||
<string name="app_copyright_short">Πνευματικά δικαιώματα © Sylvia van Os και συνεργάτες</string>
|
||||
<string name="height">Ύψος:</string>
|
||||
<string name="switchToFrontImage">Μετάβαση στην μπροστινή εικόνα</string>
|
||||
<string name="switchToBackImage">Μετάβαση στην πίσω εικόνα</string>
|
||||
<string name="switchToBarcode">Μετάβαση σε barcode</string>
|
||||
<string name="switchToBackImage">Μετάβαση στην οπίσθια εικόνα</string>
|
||||
<string name="switchToBarcode">Μετάβαση σε γραμμωτό κώδικα</string>
|
||||
<string name="validFromSentence">Ισχύει από: <xliff:g>%s</xliff:g></string>
|
||||
<string name="permissionReadCardsLabel">Διαβάστε τις κάρτες Catima</string>
|
||||
<string name="openBackImageInGalleryApp">Ανοίξτε την πίσω εικόνα στην εφαρμογή γκαλερί</string>
|
||||
<string name="openBackImageInGalleryApp">Ανοίξτε την οπίσθια εικόνα στην εφαρμογή γκαλερί</string>
|
||||
<string name="permissionReadCardsDescription">Διάβασε τις Κάρτες σου Catima και όλες τους τις λεπτομέρειες, συμπεριλαμβανομένων των σημειώσεων και των εικόνων</string>
|
||||
<string name="donate">Προσφέρω</string>
|
||||
<string name="donate">Δωρεά</string>
|
||||
<string name="icon_header_click_text">Πατήστε παρατεταμένα για επεξεργασία του εικονιδίου</string>
|
||||
<string name="openFrontImageInGalleryApp">Ανοίξτε την μπροστινή εικόνα στην εφαρμογή γκαλερί</string>
|
||||
<string name="storageReadPermissionRequired">Δικαίωμα ανάγνωσης του χώρου αποθήκευσης απαραίτητο για αυτήν την ενέργεια…</string>
|
||||
@@ -261,7 +253,43 @@
|
||||
<string name="validFromDate">Ισχύει από</string>
|
||||
<string name="anyDate">Οποιαδήποτε ημερομηνία</string>
|
||||
<string name="chooseValidFromDate">Επιλέξτε έγκυρη ημερομηνία από</string>
|
||||
<string name="setBarcodeHeight">Ρυθμίστε το ύψος του barcode</string>
|
||||
<string name="setBarcodeHeight">Ρυθμίστε το ύψος του γραμμωτού κώδικα</string>
|
||||
<string name="show_name_below_image_thumbnail">Εμφάνιση ονόματος κάτω από το εικονίδιο</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="balanceParsingFailed">Μη έγκυρο υπόλοιπο</string>
|
||||
<string name="continue_">Συνέχεια</string>
|
||||
<string name="settings_category_title_privacy">Απόρρητο</string>
|
||||
<string name="addFromPdfFile">Επιλογή αρχείου PDF</string>
|
||||
<string name="add_manually_warning_message">Για ορισμένα καταστήματα, ο γραμμωτός κώδικας διαφέρει από τον αριθμό που αναγράφεται πάνω στην κάρτα. Εξαιτίας αυτού, η εισαγωγή γραμμωτού κώδικα χειροκίνητα ενδέχεται να μην λειτουργεί πάντα. Προτείνεται να σκανάρετε τον γραμμωτό κώδικα με χρήση της κάμερας. Επιθυμείτε να συνεχίσετε ;</string>
|
||||
<string name="amountParsingFailed">Μη έγκυρο ποσό</string>
|
||||
<string name="show_balance">Προβολή υπολοίπου</string>
|
||||
<string name="action_display_options">Επιλογές εμφάνισης</string>
|
||||
<string name="settings_category_title_cards">Κάρτες</string>
|
||||
<string name="settings_category_title_general">Γενικά</string>
|
||||
<string name="show_archived_cards">Προβολή αρχειοθετημένων καρτών</string>
|
||||
<string name="addWithoutBarcode">Προσθήκη κάρτας χωρίς γραμμωτό κώδικα</string>
|
||||
<string name="view_online">Προβολή διαδικτυακά</string>
|
||||
<string name="errorReadingFile">Δεν ήταν δυνατή η ανάγνωση του αρχείου</string>
|
||||
<string name="failedLaunchingFileManager">Δεν ήταν δυνατή η εύρεση υποστηριζόμενου διαχειριστή αρχείων</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Ποιους από τους γραμμωτούς κώδικες που βρέθηκαν θέλετε να χρησιμοποιήσετε;</string>
|
||||
<string name="pageWithNumber">Σελίδα <xliff:g>%d</xliff:g></string>
|
||||
<string name="spend">Δαπάνησε</string>
|
||||
<string name="receive">Λήψη</string>
|
||||
<string name="settings_keep_screen_on_summary">Απενεργοποιεί το χρονικό όριο της οθόνης κατά την προβολή μιας κάρτας</string>
|
||||
<string name="settings_oled_dark_summary">Μειώνει τη χρήση της μπαταρίας στις οθόνες OLED</string>
|
||||
<string name="show_note">Εμφάνιση σημείωσης</string>
|
||||
<string name="action_more_options">Περισσότερες επιλογές</string>
|
||||
<string name="enter_card_id">Εισαγάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας</string>
|
||||
<string name="show_validity">Εμφάνιση εγκυρότητας</string>
|
||||
<string name="add_a_card_in_a_different_way">Προσθέστε μια κάρτα με διαφορετικό τρόπο</string>
|
||||
<string name="card_id_must_not_be_empty">Ο κωδικός αριθμός της κάρτας δεν πρέπει να είναι κενός</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Οι εφαρμογές θα πρέπει ακόμα να ζητήσουν άδεια για να τους δοθεί πρόσβαση</string>
|
||||
<string name="field_must_not_be_empty">Το πεδίο δεν πρέπει να είναι κενό</string>
|
||||
<string name="manually_enter_barcode_instructions">Εισαγάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας και πατήστε τον γραμμωτό κώδικα που μοιάζει με αυτόν της κάρτας σας.</string>
|
||||
<string name="add_manually_warning_title">Συνιστάται η σάρωση</string>
|
||||
<string name="noCameraFoundGuideText">Η συσκευή σας δεν φαίνεται να διαθέτει κάμερα. Αν έχει, δοκιμάστε να κάνετε επανεκκίνηση της συσκευής. Διαφορετικά, χρησιμοποιήστε το κουμπί Περισσότερες επιλογές παρακάτω για να προσθέσετε έναν γραμμωτό κώδικα με άλλο τρόπο.</string>
|
||||
<string name="importCancelled">Η εισαγωγή ακυρώθηκε</string>
|
||||
<string name="exportCancelled">Η εξαγωγή ακυρώθηκε</string>
|
||||
<string name="useFrontImage">Χρήση μπροστινής εικόνας</string>
|
||||
<string name="useBackImage">Χρήση οπίσθιας εικόνας</string>
|
||||
</resources>
|
||||
@@ -1,24 +1,24 @@
|
||||
<?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="delete">Forigi</string>
|
||||
<string name="noBarcode">Sen strekokodo</string>
|
||||
<string name="barcodeType">Tipo de strekokodo</string>
|
||||
<string name="noBarcode">Sen strikodo</string>
|
||||
<string name="barcodeType">Tipo de strikodo</string>
|
||||
<string name="cardId">Identigilo de karto</string>
|
||||
<string name="settings">Agordoj</string>
|
||||
<string name="selectBarcodeTitle">Elekti strekokodon</string>
|
||||
<string name="selectBarcodeTitle">Elekti strikodon</string>
|
||||
<string name="debug_version_fmt">Versio: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt">Pri <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Kopirajto © 2019–<xliff:g>%d</xliff:g> Sylvia van Os.</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Kopirajto © 2019–<xliff:g>%d</xliff:g> Sylvia van Os kaj kontribuantoj</string>
|
||||
<string name="importOptionFilesystemButton">El dosiersistemo</string>
|
||||
<string name="importOptionFilesystemTitle">Enporti el dosiersistemo</string>
|
||||
<string name="exportFailedTitle">Elportado malsukcesis</string>
|
||||
<string name="exportSuccessfulTitle">Elportado sukcesis</string>
|
||||
<string name="importFailedTitle">Enportado malsukcesis</string>
|
||||
<string name="importSuccessfulTitle">Enportado sukcesis</string>
|
||||
<string name="exporting">Elportante…</string>
|
||||
<string name="importing">Enportante…</string>
|
||||
<string name="exportFailedTitle">Eksportado malsukcesis</string>
|
||||
<string name="exportSuccessfulTitle">Eksportado sukcesis</string>
|
||||
<string name="importFailedTitle">Importado malsukcesis</string>
|
||||
<string name="importSuccessfulTitle">Importado sukcesis</string>
|
||||
<string name="exporting">Eksportante…</string>
|
||||
<string name="importing">Importante…</string>
|
||||
<string name="exportName">Elporti</string>
|
||||
<string name="importExport">Enporti/elporti</string>
|
||||
<string name="importExport">Importi/eksporti</string>
|
||||
<string name="addCardTitle">Aldoni karton</string>
|
||||
<string name="editCardTitle">Redakti karton</string>
|
||||
<string name="sendLabel">Sendi…</string>
|
||||
@@ -28,7 +28,7 @@
|
||||
<string name="photos">Fotoj</string>
|
||||
<string name="points">Poentoj</string>
|
||||
<string name="currency">Valuto</string>
|
||||
<string name="editBarcode">Redakti strekokodon</string>
|
||||
<string name="editBarcode">Redakti strikodon</string>
|
||||
<string name="card">Karto</string>
|
||||
<string name="never">Neniam</string>
|
||||
<string name="groupsList">Grupoj: <xliff:g>%s</xliff:g></string>
|
||||
@@ -50,37 +50,246 @@
|
||||
<string name="deleteConfirmation">Ĉu forigi ĉi tiun karton\?</string>
|
||||
<string name="deleteTitle">Forigi karton</string>
|
||||
<string name="settings_display_barcode_max_brightness">Heligi barcode vido</string>
|
||||
<string name="starImage">Preferata stelo</string>
|
||||
<string name="thumbnailDescription">Bildeto por karto</string>
|
||||
<string name="starImage">Stelmarko</string>
|
||||
<string name="thumbnailDescription">Bildeto</string>
|
||||
<string name="app_copyright_old">Bazita sur Lojaleco Karto Keychain
|
||||
\nkopirajto © 2016-2020 Branden Archer.</string>
|
||||
<string name="importOptionApplicationButton">Uzi alian app</string>
|
||||
<string name="importOptionApplicationExplanation">Uzi ajna app aŭ via preferata dosiera # mana\? ero por malfermi dosieron.</string>
|
||||
\nkopirajto © 2016-2020 Branden Archer</string>
|
||||
<string name="importOptionApplicationButton">Uzi alian apon</string>
|
||||
<string name="importOptionApplicationExplanation">Uzi ajnan apon aŭ vian preferatan dosiermastrumilon por malfermi dosieron.</string>
|
||||
<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="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>
|
||||
<string name="failedParsingImportUriError">Ne eblis analizi la importado URI</string>
|
||||
<string name="noCardExistsError">Ne eblis trovi karto</string>
|
||||
<string name="noCardsMessage">Aldoni karto unua</string>
|
||||
<string name="exportFailed">Ne povis fari eksportadon</string>
|
||||
<string name="importFailed">Ne povis fari importadon</string>
|
||||
<string name="importExportHelp">Fari savkopion de viaj datumoj permesas movi ilin al alia aparato.</string>
|
||||
<string name="failedParsingImportUriError">Ne eblis analizi la URI de la importado</string>
|
||||
<string name="noCardExistsError">Ne eblis trovi tiun karton</string>
|
||||
<string name="noCardsMessage">Aldonu karton unue</string>
|
||||
<string name="cardShortcut">Karto Mallongirejo</string>
|
||||
<string name="scanCardBarcode">Scintigrafio Barcode Card</string>
|
||||
<string name="scanCardBarcode">Skani strikodon</string>
|
||||
<string name="share">Interŝanĝado</string>
|
||||
<string name="star">Aldoni al miaj plej ŝatataj</string>
|
||||
<string name="star">Aldoni al miaj markitaj</string>
|
||||
<string name="settings_keep_screen_on">Teni sur ekrano</string>
|
||||
<string name="importSuccessful">Karto datumo importitaj</string>
|
||||
<string name="enter_group_name">Eniri nomo de la grupo</string>
|
||||
<string name="noGroups">Klaki la + plus butonon por aldoni grupoj por categorization unua.</string>
|
||||
<string name="importSuccessful">Datumoj importitaj</string>
|
||||
<string name="enter_group_name">Entajpu nomo de la grupo</string>
|
||||
<string name="noGroups">Klaki la + plus butonon por aldoni grupojn por enkategoriigo.</string>
|
||||
<string name="all">Ĉiuj</string>
|
||||
<string name="intent_import_card_from_url_share_text">Mi deziras dividi karto kun vi</string>
|
||||
<string name="exportSuccessful">Karto datumo eksportita</string>
|
||||
<string name="noGroupCards">Ĉi tiu grupo ne enhavas ajnan kartoj</string>
|
||||
<string name="noGiftCards">Klavu la \"+\" butonon por aldoni karton, aŭ importu uzi menuo \" ⋮\".</string>
|
||||
<string name="exportSuccessful">Datumoj eksportitaj</string>
|
||||
<string name="noGroupCards">Ĉi tiu grupo estas malplena</string>
|
||||
<string name="noGiftCards">Klavu la \"+\" butonon por aldoni karton, aŭ importu el la menuo \" ⋮\".</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%d</xliff:g> elektita</item>
|
||||
<item quantity="other"><xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%d</xliff:g> elektitaj</item>
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> elektita</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> elektitaj</item>
|
||||
</plurals>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="barcodeImageDescriptionWithType">Bildo <xliff:g>%s</xliff:g> strikodo</string>
|
||||
<string name="cameraPermissionRequired">Permeso atingi fotilon estas bezonata por ĉi tiu ago…</string>
|
||||
<string name="permissionReadCardsLabel">Legi Catima kartojn</string>
|
||||
<string name="noMatchingGiftCards">Neniu rezulto. Provu ŝanĝi vian serĉon.</string>
|
||||
<string name="noGiftCardsGroup">Kreu kartojn kaj poste atribuu ilin al la grupo ĉi tie.</string>
|
||||
<string name="storageReadPermissionRequired">Permeso legi stokadon estas bezonata por ĉi tiu ago…</string>
|
||||
<string name="unstar">Forigi de miaj markitaj</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Forigi <xliff:g>%d</xliff:g> karton</item>
|
||||
<item quantity="other">Forigi <xliff:g>%d</xliff:g> kartojn</item>
|
||||
</plurals>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Forigi ĉi tiun <xliff:g>%d</xliff:g> karton daŭre?</item>
|
||||
<item quantity="other">Forigi ĉi tiujn <xliff:g>%d</xliff:g> kartojn daŭre?</item>
|
||||
</plurals>
|
||||
<string name="expiryDate">Valida ĝis</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noBarcodeFound">Ne eblis trovi strikodon</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Movi la strekodon al la supro de la ekrano</string>
|
||||
<string name="errorReadingImage">Ne eblis legi bildon</string>
|
||||
<string name="settings_brown_theme">Bruna</string>
|
||||
<string name="showMoreInfo">Montri informojn</string>
|
||||
<string name="on_github">sur GitHub</string>
|
||||
<string name="archive">Enarkivigi</string>
|
||||
<string name="duplicateCard">Duoblaĵo</string>
|
||||
<string name="unarchived">Karto elarkivigita</string>
|
||||
<string name="archived">Karto enarkivigita</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ne povis trovi subtenatan galerian apon</string>
|
||||
<string name="failedToOpenUrl">Unue instalu retumilon</string>
|
||||
<string name="importCards">Importi kartojn</string>
|
||||
<string name="switchToBackImage">Ŝanĝi al malantaŭa bildo</string>
|
||||
<string name="setBarcodeHeight">Starigi altecon de strikodo</string>
|
||||
<string name="icon_header_click_text">Premi longe por redakti bildeton</string>
|
||||
<string name="show_validity">Montri validecon</string>
|
||||
<string name="addFromImage">Elekti bildon el la galerio</string>
|
||||
<string name="shortcutSelectCard">Elekti karton</string>
|
||||
<string name="chooseValidFromDate">Elekti startdaton de valideco</string>
|
||||
<string name="privacy_policy">Regularo pri privateco</string>
|
||||
<string name="chooseExpiryDate">Elektu findaton de valideco</string>
|
||||
<string name="group_updated">Grupo ĝisdatigita</string>
|
||||
<string name="leaveWithoutSaveTitle">Eliri</string>
|
||||
<string name="moveDown">Movi malsupren</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Eliri sen konservi?</string>
|
||||
<string name="validFromDate">Valida ekde</string>
|
||||
<string name="accept">Akcepti</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="settings_sky_blue_theme">Ĉielblua</string>
|
||||
<string name="unarchive">Elarkivigi</string>
|
||||
<string name="switchToBarcode">Ŝanĝi al strikodo</string>
|
||||
<string name="currentBalanceSentence">Nuna saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="height">Alteco:</string>
|
||||
<string name="settings_category_title_general">Ĝenerala</string>
|
||||
<string name="settings_category_title_privacy">Privateco</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punkto</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> punktoj</item>
|
||||
</plurals>
|
||||
<string name="group_edit">Redakti grupon</string>
|
||||
<string name="updateBalanceTitle">Kiom vi elspezis aŭ ricevis?</string>
|
||||
<string name="updateBalanceHint">Entajpi kvanton</string>
|
||||
<string name="previousCard">Antaŭa</string>
|
||||
<string name="nextCard">Sekva</string>
|
||||
<string name="reverse">inversi la ordon</string>
|
||||
<string name="translate_platform">sur Weblate</string>
|
||||
<string name="failedToRetrieveImageFile">Malsukcesis ricevi bildodosieron</string>
|
||||
<string name="help_translate_this_app">Helpi traduki ĉi tiun apon</string>
|
||||
<string name="welcome">Bonvenon al Catima</string>
|
||||
<string name="donate">Doni</string>
|
||||
<string name="validFromSentence">Valida ekde: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Preventas ekranŝloson dum rigardo al karto</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Apoj devos peti permeson por ricevi aliron</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> karto</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kartoj</item>
|
||||
</plurals>
|
||||
<string name="group_name_already_in_use">Gruponomo jam uzata</string>
|
||||
<string name="group_name_is_empty">Gruponomo devas ne esti malplena</string>
|
||||
<string name="deleteConfirmationGroup">Forigi grupon?</string>
|
||||
<string name="failedOpeningFileManager">Unue instalu dosiermastrumilon.</string>
|
||||
<string name="addManually">Entajpi la strikodon permane</string>
|
||||
<string name="editGroup">Redaktante grupon: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Eksvalidiĝis: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceParsingFailed">Nevalida saldo</string>
|
||||
<string name="chooseImportType">Importi datumojn de</string>
|
||||
<string name="importCatima">Importi el Catima</string>
|
||||
<string name="settings_green_theme">Verda</string>
|
||||
<string name="updateBalance">Ĝisdatigi saldon</string>
|
||||
<string name="barcodeLongPressMessage">Nur bildoj povas esti malfermitaj en la galeria apo</string>
|
||||
<string name="sort_by_name">Nomo</string>
|
||||
<string name="sort_by_most_recently_used">Plej laste uzitaj</string>
|
||||
<string name="sort_by_expiry">Dato de eksvalidiĝo</string>
|
||||
<string name="sort_by">Ordigi laŭ</string>
|
||||
<string name="version_history">Versio historio</string>
|
||||
<string name="credits">Dankoj</string>
|
||||
<string name="license">Permesilo</string>
|
||||
<string name="and_data_usage">kaj datumuzado</string>
|
||||
<string name="rate_this_app">Taksi ĉi tiun apon</string>
|
||||
<string name="report_error">Raporti eraron</string>
|
||||
<string name="starred">Markitaj</string>
|
||||
<string name="newBalanceSentence">Nova saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="anyDate">Iam ajn</string>
|
||||
<string name="switchToFrontImage">Ŝanĝi al antaŭa bildo</string>
|
||||
<string name="openFrontImageInGalleryApp">Malfermi la antaŭan bildon en galeria apo</string>
|
||||
<string name="openBackImageInGalleryApp">Malfermi la malantaŭan bildon en galeria apo</string>
|
||||
<string name="show_name_below_image_thumbnail">Montri nomon sub la bildeto</string>
|
||||
<string name="show_note">Montri noton</string>
|
||||
<string name="settings_category_title_cards">Kartoj</string>
|
||||
<string name="action_display_options">Agordoj de montrado</string>
|
||||
<string name="show_archived_cards">Montri arkivitajn kartojn</string>
|
||||
<string name="view_online">Vidi enrete</string>
|
||||
<string name="action_more_options">Pliaj opcioj</string>
|
||||
<string name="settings_keep_screen_on_summary">Malŝaltas tempolimon de la ekrano dum rigardo al karto</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Preventi la ekranŝloson</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permesi al aliaj apoj aliri miajn datumojn</string>
|
||||
<string name="moveUp">Movi supren</string>
|
||||
<string name="expiryStateSentence">Valida ĝis: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_contributors">Ebligita de: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">Ordigi</string>
|
||||
<string name="source_repository">Koda deponejo</string>
|
||||
<string name="on_google_play">sur Google Play</string>
|
||||
<string name="include_if_asking_support">Si vi volas peti subtenon, inkluzivu la sekvan informon:</string>
|
||||
<string name="options">Opcioj</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> karto (<xliff:g id="archivedCount">%2$d</xliff:g> archived)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kartoj (<xliff:g id="archivedCount">%2$d</xliff:g> archived)</item>
|
||||
</plurals>
|
||||
<string name="show_balance">Montri saldon</string>
|
||||
<string name="addWithoutBarcode">Aldoni karton sen strikodo</string>
|
||||
<string name="permissionReadCardsDescription">legi viajn Catima-kartojn kaj ĉiujn iliajn detalojn, inkluzive de notoj kaj bildoj</string>
|
||||
<string name="cameraPermissionDeniedTitle">Fotilo neatingebla</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Por skani strikodojn Catima bezonas atingorajton al via fotilo. Klaku ĉi tie por ŝanĝi viajn permesajn agordojn.</string>
|
||||
<string name="app_copyright_short">Kopirajto © Sylvia van Os kaj kontribuantoj</string>
|
||||
<string name="settings_card_orientation">Orientiĝo de strikodo</string>
|
||||
<string name="settings_follow_system_orientation">Laŭ la sistemo</string>
|
||||
<string name="settings_portrait_orientation">Vertikala</string>
|
||||
<string name="settings_landscape_orientation">Horizontala</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Bezonata por ke iuj skaniloj funkciu</string>
|
||||
<string name="unsupportedBarcodeType">Ne eblas montri ĉi tiun strikodspecon. Ĝi eble estos subtenata en posta versio de la apo.</string>
|
||||
<string name="importVoucherVaultMessage">Elektu la <i>vouchervault.json</i> eksporton de Voucher Vault kiun vi volas importi.
|
||||
\nKreu ĝin unue elektante \"Export\" en Voucher Vault.</string>
|
||||
<string name="sameAsCardId">Sama kiel la identigo</string>
|
||||
<string name="setBarcodeId">Starigi la valoron de la strikodo</string>
|
||||
<string name="barcodeId">Valoro de la strikodo</string>
|
||||
<string name="passwordRequired">Bonvolu entajpi la pasvorton</string>
|
||||
<string name="exportPasswordHint">Entajpi pasvorton</string>
|
||||
<string name="settings_oled_dark_summary">Malpligrandigas baterian uzadon sur OLED-ekranoj</string>
|
||||
<string name="selectColor">Elekti koloron</string>
|
||||
<string name="setIcon">Starigi bildeton</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_pink_theme">Rozkolora</string>
|
||||
<string name="field_must_not_be_empty">Kampo devas ne esti malplena</string>
|
||||
<string name="manually_enter_barcode_instructions">Entajpu la identigilon aŭ tekston sur via karto kaj premu la strikodon kiu aspektas kiel tiu sur via karto.</string>
|
||||
<string name="importStocardMessage">Elektu la <i>***.zip</i> eksoporton de Stocard kiun vi volas importi.
|
||||
\nAkiru ĝin sendante retpoŝton al support@stocardapp.com petante eksporton de viaj datumoj.</string>
|
||||
<string name="turn_flashlight_off">Malŝalti poŝlampon</string>
|
||||
<string name="add_manually_warning_title">Skani estas rekomendata</string>
|
||||
<string name="continue_">Daŭrigi</string>
|
||||
<string name="settings_oled_dark">Pura nigra fono por malhela temo</string>
|
||||
<string name="importLoyaltyCardKeychain">Importi el Loyalty Card Keychain</string>
|
||||
<string name="importFidmeMessage">Elektu la <i>fidme-export-request-xxxxxx.zip</i> exporton de FidMe kiun vi volas importi kaj poste elektu la tipojn de strikodo permane.
|
||||
\nKreu ĝin en via FidMe profilo elektante \"Data Protection\" kaj poste \"Extract my data\".</string>
|
||||
<string name="backImageDescription">Malantaŭa bildo</string>
|
||||
<string name="noCameraFoundGuideText">Via aparato ŝajnas ne havi fotilon. Se jes, provu restartigi la aparaton. Alie, uzu la butonon \"Pliaj opcioj\" sube por aldoni strikodon alimaniere.</string>
|
||||
<string name="wrongValueForBarcodeType">La valoro ne validas por la elektita tipo de strikodo</string>
|
||||
<string name="importCancelled">Importado nuligita</string>
|
||||
<string name="exportCancelled">Eksportado nuligita</string>
|
||||
<string name="settings_theme_color">Koloro de la temo</string>
|
||||
<string name="app_libraries">Liberaj triaj bibliotekoj: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="addFromPdfFile">Elekti PDF-dosieron</string>
|
||||
<string name="failedLaunchingFileManager">Subtenata dosiermastrumilo ne trovebla</string>
|
||||
<string name="errorReadingFile">Dosiero nelegebla</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Kiun el la trovitaj strikodoj vi volas uzi?</string>
|
||||
<string name="pageWithNumber">Paĝo <xliff:g>%d</xliff:g></string>
|
||||
<string name="settings_system_locale">Sistemo</string>
|
||||
<string name="app_resources">Liberaj triaj risurcoj: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_follow_sensor_orientation">Ĉiam turni (ignori la agordojn de la sistemo)</string>
|
||||
<string name="settings_lock_on_opening_orientation">Fiksi al la orientiĝo uzata dum malfermado de la karto</string>
|
||||
<string name="importCatimaMessage">Elektu la <i>catima.zip</i> eksporton kiun vi volas importi.
|
||||
\nKreu ĝin unue en la importi/eksporti menuo en alia Catima apo elektante \'eksporti\' tie.</string>
|
||||
<string name="importFidme">Importi el FidMe</string>
|
||||
<string name="exportPassword">Starigi pasvorton por protekti vian eksporton (nedevige)</string>
|
||||
<string name="failedGeneratingShareURL">Komunigebla URL ne generebla. Bonvolu raporti.</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Mi volas kunhavigi kelkajn kartojn kun vi</string>
|
||||
<string name="frontImageDescription">Antaŭa bildo</string>
|
||||
<string name="setFrontImage">Starigi antaŭan bildon</string>
|
||||
<string name="setBackImage">Starigi malantaŭan bildon</string>
|
||||
<string name="removeImage">Forigi bildon</string>
|
||||
<string name="updateBarcodeQuestionTitle">Ĉu ĝisdatigi strikodvaloron?</string>
|
||||
<string name="updateBarcodeQuestionText">Vi ŝanĝis la identigon. Ĉu vi volas ankaŭ ĝisdatigi la strikodon por uzi la saman valoron?</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Elektu la <i>LoyaltyCardKeychain.csv</i> eksporton de Loyalty Card Keychain kiun vi volas importi.
|
||||
\nKreu ĝin unue de la \"Importi/eksporti\" menuo en Loyalty Card Keychain elektante \"eksporti\" tie.</string>
|
||||
<string name="importStocard">Importi de Stocard</string>
|
||||
<string name="importVoucherVault">Importi el Voucher Vault</string>
|
||||
<string name="turn_flashlight_on">Enŝalti poŝlampon</string>
|
||||
<string name="settings_locale">Lingvo</string>
|
||||
<string name="settings_magenta_theme">Maĝenta</string>
|
||||
<string name="settings_violet_theme">Viola</string>
|
||||
<string name="settings_blue_theme">Blua</string>
|
||||
<string name="enter_card_id">Entajpu la identigilon aŭ tekston sur via karto</string>
|
||||
<string name="card_id_must_not_be_empty">Identigilo devas ne esti malplena</string>
|
||||
<string name="add_a_card_in_a_different_way">Aldoni karton alimaniere</string>
|
||||
<string name="add_manually_warning_message">Ĉe kelkaj butikoj la strikodo malsamas la numero skribita sur la karto. Pro tio, enigi strikodon permane eble ne ĉiam funkcias. Estas forte rekomendite skani la strikodon per via fotilo anstataŭe. Ĉu vi ankoraŭ volas daŭrigi?</string>
|
||||
<string name="spend">Elspezi</string>
|
||||
<string name="receive">Ricevi</string>
|
||||
<string name="app_license">Rajtocedita libera softwaro, licencita laŭ GPLv3+</string>
|
||||
<string name="amountParsingFailed">Nevalida kvanto</string>
|
||||
<string name="useBackImage">Uzi la malantaŭan bildon</string>
|
||||
<string name="useFrontImage">Uzi la antaŭan bildon</string>
|
||||
</resources>
|
||||
@@ -70,7 +70,7 @@
|
||||
<string name="backImageDescription">Imágen dorsal</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para escanear códigos de barra, Catima necesitará acceso a la cámara. Presione aquí para cambiar la configuración de sus permisos.</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloquear a la orientación utilizada al abrir la tarjeta</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="app_loyalty_card_keychain">Cartera para Tarjetas de Fidelización</string>
|
||||
<string name="importOptionFilesystemTitle">Importar desde su sistema de archivos</string>
|
||||
<string name="leaveWithoutSaveTitle">Salir</string>
|
||||
<string name="expiryStateSentence">Expira: <xliff:g>%s</xliff:g></string>
|
||||
@@ -103,9 +103,6 @@
|
||||
<string name="settings_keep_screen_on">Mantener la pantalla encendida</string>
|
||||
<string name="setBarcodeId">Establecer valor del código de barras</string>
|
||||
<string name="importCatima">Importar desde Catima</string>
|
||||
<string name="privacy_policy_popup_text">Notificación de la política de privacidad (requerida por algunas tiendas de aplicaciones):
|
||||
\n
|
||||
\nNINGÚN DATO ES RECOPILADO, puede ser comprobado por cualquiera ya que nuestra aplicación es software libre.</string>
|
||||
<string name="settings_follow_system_orientation">Seguir el sistema</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quiero compartirte una tarjeta</string>
|
||||
<string name="addFromImage">Seleccione una imágen desde la galería</string>
|
||||
@@ -184,4 +181,36 @@
|
||||
<string name="settings_keep_screen_on_summary">Deshabilita el tiempo de espera de la pantalla mientras se ve una tarjeta</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="deleteConfirmationGroup">¿Eliminar grupo\?</string>
|
||||
<string name="updateBarcodeQuestionText">Has cambiado el ID. ¿Quieres actualizar también el código de barras para usar el mismo valor?</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="settings_system_locale">Sistema</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_pink_theme">Rosa</string>
|
||||
<string name="exportPassword">Agregar una contraseña para protejer tu exportación (opcional)</string>
|
||||
<string name="settings_sky_blue_theme">Celeste</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="exportPasswordHint">Ingresar contraseña</string>
|
||||
<string name="setIcon">Establecer miniatura</string>
|
||||
<string name="showMoreInfo">Mostrar información</string>
|
||||
<string name="turn_flashlight_on">Encender linterna</string>
|
||||
<string name="turn_flashlight_off">Apagar linterna</string>
|
||||
<string name="updateBalance">Actualizar balance</string>
|
||||
<string name="failedToRetrieveImageFile">Error al obtener archivo de imagen</string>
|
||||
<string name="settings_oled_dark_summary">Reduce uso de batería en pantallas OLED</string>
|
||||
<string name="settings_oled_dark">Fondo negro puro para tema oscuro</string>
|
||||
<string name="selectColor">Seleccionar color</string>
|
||||
<string name="settings_theme_color">Color del tema</string>
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
<string name="settings_violet_theme">Violeta</string>
|
||||
<string name="settings_brown_theme">Marrón</string>
|
||||
<string name="sort">Ordenar</string>
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
<string name="app_contributors">Hecho posible por: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="barcodeLongPressMessage">Solo se puede abrir imágenes en la aplicación de galería</string>
|
||||
<string name="settings_follow_sensor_orientation">Siempre rotar (ignora configuración del sistema)</string>
|
||||
<string name="yes">Si</string>
|
||||
<string name="no">No</string>
|
||||
<string name="passwordRequired">Por favor ingresa la contraseña</string>
|
||||
<string name="failedGeneratingShareURL">No se pudo generar URL compartible. Por favor reporte esto.</string>
|
||||
<string name="sort_by_name">Nombre</string>
|
||||
</resources>
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="noGiftCards">Haz clic en el botón + para añadir una tarjeta, o importa desde el menú ⋮.</string>
|
||||
<string name="storeName">Nombre</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="cardId">ID. de tarjeta</string>
|
||||
<string name="cardId">ID de tarjeta</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="edit">Editar</string>
|
||||
@@ -20,7 +20,7 @@
|
||||
<string name="noCardExistsError">No se ha podido encontrar esa tarjeta</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Hacer una copia de seguridad de los datos permite trasladarlos a otro dispositivo.</string>
|
||||
<string name="importExportHelp">Respaldar tus datos permite trasladarlos a otro dispositivo.</string>
|
||||
<string name="importSuccessfulTitle">Importado</string>
|
||||
<string name="importFailedTitle">Falló la importación</string>
|
||||
<string name="importFailed">No se ha podido realizar la importación</string>
|
||||
@@ -33,14 +33,14 @@
|
||||
<string name="importOptionFilesystemExplanation">Elegir un archivo concreto del sistema de archivos.</string>
|
||||
<string name="importOptionFilesystemButton">Desde el sistema de archivos</string>
|
||||
<string name="importOptionApplicationTitle">Utilizar otra aplicación</string>
|
||||
<string name="importOptionApplicationExplanation">Use una aplicación o su gestor de archivos favoritos para abrir un archivo.</string>
|
||||
<string name="importOptionApplicationExplanation">Usa cualquier aplicación o tu administrador de archivos favorito para abrir un archivo.</string>
|
||||
<string name="importOptionApplicationButton">Utilizar otra aplicación</string>
|
||||
<string name="about">Acerca de</string>
|
||||
<string name="about">Información</string>
|
||||
<string name="app_license">Programa libre con «copyleft», disponible en virtud de la licencia GPLv3+</string>
|
||||
<string name="about_title_fmt">Acerca de <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="settings">Ajustes</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar vista del código de barras</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar pantalla</string>
|
||||
<string name="exportSuccessful">Datos exportados</string>
|
||||
<string name="importSuccessful">Datos importados</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quiero compartirte una tarjeta</string>
|
||||
@@ -56,16 +56,16 @@
|
||||
<string name="barcodeType">Tipo de código de barras</string>
|
||||
<string name="noMatchingGiftCards">Sin resultados. Intente cambiar su búsqueda.</string>
|
||||
<string name="action_search">Buscar</string>
|
||||
<string name="noGroups">Pulse en el botón «+» para añadir grupos de categorización.</string>
|
||||
<string name="noGroups">Pulse en el botón + para añadir grupos de categorización.</string>
|
||||
<string name="starImage">Estrella favorita</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="selectBarcodeTitle">Seleccionar el código de barras</string>
|
||||
<string name="unstar">Eliminar de favoritos</string>
|
||||
<string name="noBarcode">Sin código de barras</string>
|
||||
<string name="enter_group_name">Introducir nombre del grupo</string>
|
||||
<string name="enter_group_name">Escribe el nombre del grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
|
||||
<string name="addManually">Introducir manualmente el código de barras</string>
|
||||
<string name="addManually">Escribe manualmente el código de barras</string>
|
||||
<string name="leaveWithoutSaveConfirmation">¿Quiere abandonar sin guardar\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Salir</string>
|
||||
<string name="moveDown">Bajar</string>
|
||||
@@ -115,7 +115,7 @@
|
||||
<string name="removeImage">Quitar imagen</string>
|
||||
<string name="setFrontImage">Establecer imagen frontal</string>
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="backImageDescription">Imagen del reverso</string>
|
||||
<string name="backImageDescription">Imagen de atrás</string>
|
||||
<string name="frontImageDescription">Imagen frontal</string>
|
||||
<string name="wrongValueForBarcodeType">El valor no es válido para el tipo de código de barras seleccionado</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras todavía no se puede visualizar. Es posible que se admita en una futura versión de la aplicación.</string>
|
||||
@@ -128,9 +128,6 @@
|
||||
<string name="importFidme">Importar desde FidMe</string>
|
||||
<string name="importCatima">Importar desde Catima</string>
|
||||
<string name="accept">Aceptar</string>
|
||||
<string name="privacy_policy_popup_text">Aviso de política de privacidad (requerido por algunas tiendas de apps):
|
||||
\n
|
||||
\nNINGÚN DATO SE RECOPILA, cualquiera puede confirmar ya que nuestra aplicación es software libre.</string>
|
||||
<string name="privacy_policy">Política de privacidad</string>
|
||||
<string name="app_loyalty_card_keychain">Llavero con tarjeta de fidelización</string>
|
||||
<string name="chooseImportType">Importar datos de</string>
|
||||
@@ -161,7 +158,6 @@
|
||||
</plurals>
|
||||
<string name="app_contributors">Hecho posible por: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="settings_brown_theme">Marrón</string>
|
||||
<string name="settings_grey_theme">Gris</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="settings_sky_blue_theme">Azul cielo</string>
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
@@ -180,14 +176,14 @@
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> puntos</item>
|
||||
</plurals>
|
||||
<string name="barcodeImageDescriptionWithType">Imagen <xliff:g>%s</xliff:g> código de barras</string>
|
||||
<string name="settings_card_orientation">Orientación del código de barras</string>
|
||||
<string name="settings_card_orientation">Orientación de pantalla</string>
|
||||
<string name="settings_portrait_orientation">Formato vertical</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="group_updated">Grupo actualizado</string>
|
||||
<string name="noGiftCardsGroup">Cree algunas tarjetas y luego asígnelas al grupo aquí.</string>
|
||||
<string name="settings_follow_system_orientation">Seguir el sistema</string>
|
||||
<string name="noGiftCardsGroup">Crea algunas tarjetas y luego asígnelas al grupo aquí.</string>
|
||||
<string name="settings_follow_system_orientation">Segue el sistema</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloqueo a la orientación utilizada al abrir la tarjeta</string>
|
||||
<string name="sort_by_most_recently_used">Lo más reciente que se ha utilizado</string>
|
||||
<string name="sort_by_most_recently_used">Lo más usado recientemente</string>
|
||||
<string name="sort_by_expiry">Caducidad</string>
|
||||
<string name="version_history">Historial de versiones</string>
|
||||
<string name="help_translate_this_app">Ayuda a traducir esta aplicación</string>
|
||||
@@ -199,7 +195,7 @@
|
||||
<string name="sort_by_name">Nombre</string>
|
||||
<string name="license">Licencia</string>
|
||||
<string name="source_repository">Repositorio de fuente</string>
|
||||
<string name="on_github">En GitHub</string>
|
||||
<string name="on_github">en GitHub</string>
|
||||
<string name="on_google_play">en Google Play</string>
|
||||
<string name="report_error">Informar de un error</string>
|
||||
<string name="translate_platform">en Weblate</string>
|
||||
@@ -210,11 +206,6 @@
|
||||
<string name="rate_this_app">Califica esta aplicación</string>
|
||||
<string name="options">Opciones</string>
|
||||
<string name="failedToOpenUrl">Instale primero un navegador web</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Ver archivo (<xliff:g>%1$d</xliff:g> tarjeta)</item>
|
||||
<item quantity="many">Ver archivo (<xliff:g>%1$d</xliff:g> tarjetas)</item>
|
||||
<item quantity="other">Ver archivo (<xliff:g>%1$d</xliff:g> tarjetas)</item>
|
||||
</plurals>
|
||||
<string name="welcome">Bienvenido/a a Catima</string>
|
||||
<string name="group_name_already_in_use">Nombre del grupo ya está en uso</string>
|
||||
<string name="group_name_is_empty">El nombre del grupo no debe estar vacío</string>
|
||||
@@ -230,7 +221,7 @@
|
||||
<string name="archived">Tarjeta archivada</string>
|
||||
<string name="unarchived">Tarjeta desarchivada</string>
|
||||
<string name="exportPassword">Establezca una contraseña para proteger su exportación (opcional)</string>
|
||||
<string name="failedLaunchingPhotoPicker">No se ha podido encontrar una aplicación de galería compatible</string>
|
||||
<string name="failedLaunchingPhotoPicker">No se ha encontró una aplicación de galería compatible</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> tarjeta (archivada)<xliff:g id="archivedCount">%2$d</xliff:g></item>
|
||||
<item quantity="many"><xliff:g>%1$d</xliff:g> tarjetas (archivadas)<xliff:g id="archivedCount">%2$d</xliff:g></item>
|
||||
@@ -239,7 +230,7 @@
|
||||
<string name="starred">Estrellado</string>
|
||||
<string name="failedToRetrieveImageFile">No se pudo recuperar el archivo de imagen</string>
|
||||
<string name="barcodeLongPressMessage">Solo se pueden abrir imágenes en la aplicación de galería</string>
|
||||
<string name="updateBalanceTitle">¿Cuánto ha gastado o recibido?</string>
|
||||
<string name="updateBalanceTitle">¿Cuánto has gastado o recibido?</string>
|
||||
<string name="currentBalanceSentence">Saldo actual: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para escanear códigos de barras, Catima necesitará acceso a su cámara. Toque aquí para cambiar la configuración de sus permisos.</string>
|
||||
<string name="updateBalanceHint">Introduzca el importe</string>
|
||||
@@ -273,7 +264,7 @@
|
||||
<string name="settings_keep_screen_on_summary">Deshabilita el tiempo de espera de la pantalla mientras se ve una tarjeta</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Las aplicaciones todavía tendrán que solicitar permiso para conseguir acceso</string>
|
||||
<string name="settings_oled_dark_summary">Reduce el uso de batería en pantallas OLED</string>
|
||||
<string name="settings_category_title_cards">Tarjetas</string>
|
||||
<string name="settings_category_title_cards">Vista de tarjeta</string>
|
||||
<string name="settings_category_title_general">General</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deshabilita el bloqueo de pantalla mientras se ve una tarjeta</string>
|
||||
<string name="settings_category_title_privacy">Privacidad</string>
|
||||
@@ -297,4 +288,16 @@
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Recibió</string>
|
||||
<string name="amountParsingFailed">Importe incorrecto</string>
|
||||
<string name="addFromPdfFile">Seleccionar un archivo PDF</string>
|
||||
<string name="errorReadingFile">No se ha podido leer el archivo</string>
|
||||
<string name="failedLaunchingFileManager">No se ha podido encontrar un gestor de archivos compatible</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">¿Cuál de los códigos de barras encontrados desea utilizar?</string>
|
||||
<string name="pageWithNumber">Página <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Tu dispositivo no parece tener cámara. Si la tiene, intente reiniciar el dispositivo. De lo contrario, utilice el botón Más opciones a continuación para añadir un código de barras de otra manera.</string>
|
||||
<string name="importCancelled">Importación cancelada</string>
|
||||
<string name="exportCancelled">Exportación cancelada</string>
|
||||
<string name="useFrontImage">Utilice la imagen frontal</string>
|
||||
<string name="useBackImage">Utilice la imagen trasera</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utiliza los botones de volumen para cambiar que tarjeta se muestra</string>
|
||||
<string name="settings_use_volume_keys_navigation">Cambiar de tarjetas usando los botones de volumen</string>
|
||||
</resources>
|
||||
292
app/src/main/res/values-et/strings.xml
Normal file
292
app/src/main/res/values-et/strings.xml
Normal file
@@ -0,0 +1,292 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Lisa</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> valitud</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> valitud</item>
|
||||
</plurals>
|
||||
<string name="noGiftCardsGroup">Lisa mõned kaardid ja siis jaga nad gruppidesse.</string>
|
||||
<string name="noMatchingGiftCards">Tulemusi pole. Palun proovi muuta otsingut.</string>
|
||||
<string name="storeName">Nimi</string>
|
||||
<string name="note">Märkus</string>
|
||||
<string name="cardId">Kaardi tunnus</string>
|
||||
<string name="barcodeType">Triipkoodi tüüp</string>
|
||||
<string name="noBarcode">Triipkood puudub</string>
|
||||
<string name="star">Lisa lemmikuks</string>
|
||||
<string name="edit">Muuda</string>
|
||||
<string name="delete">Kustuta</string>
|
||||
<string name="confirm">Kinnita</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Kustuta <xliff:g>%d</xliff:g> kaart</item>
|
||||
<item quantity="other">Kustuta <xliff:g>%d</xliff:g> kaarti</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">Kas kustutame selle kaardi jäädavalt?</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Kas kustutame <xliff:g>%d</xliff:g> kaardi jäädavalt?</item>
|
||||
<item quantity="other">Kas kustutame <xliff:g>%d</xliff:g> kaarti jäädavalt?</item>
|
||||
</plurals>
|
||||
<string name="ok">Sobib</string>
|
||||
<string name="share">Jaga</string>
|
||||
<string name="sendLabel">Saada…</string>
|
||||
<string name="editCardTitle">Muuda kaarti</string>
|
||||
<string name="addCardTitle">Lisa kaart</string>
|
||||
<string name="scanCardBarcode">Skaneeri triipkoodi</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="noGiftCards">Kaardi lisamiseks klõpsi + pluss nuppu või impordi ⋮ikooniga menüüst.</string>
|
||||
<string name="action_search">Otsi</string>
|
||||
<string name="unstar">Eemalda lemmikute hulgast</string>
|
||||
<string name="cancel">Katkesta</string>
|
||||
<string name="save">Salvesta</string>
|
||||
<string name="deleteTitle">Kustuta kaart</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Autoriõigused © 2019–<xliff:g>%d</xliff:g> Sylvia van Os ja kaasautorid</string>
|
||||
<string name="app_copyright_old">Põhineb sarnasel rakendusel Loyalty Card Keychain
|
||||
\nautoriõigused © 2016–2020 Branden Archer</string>
|
||||
<string name="selectBarcodeTitle">Vali triipkood</string>
|
||||
<string name="settings_light_theme">Hele kujundus</string>
|
||||
<string name="settings_dark_theme">Tume kujundus</string>
|
||||
<string name="thumbnailDescription">Pisipilt</string>
|
||||
<string name="settings_theme">Kujundus</string>
|
||||
<string name="settings_card_orientation">Ekraanipaigutuse suund</string>
|
||||
<string name="settings_follow_sensor_orientation">Alati pööra (eira süsteemset paigutust)</string>
|
||||
<string name="settings_landscape_orientation">Rõhtvaade</string>
|
||||
<string name="settings_display_barcode_max_brightness">Tee ekraan eredamaks</string>
|
||||
<string name="app_license">Copyleft-tüüpi autoriõiguste alusel loodud avatud lähtekoodiga tarkvara, mis on avaldatud GPLv3+ all</string>
|
||||
<string name="settings_keep_screen_on">Hoia ekraan sisselülitatuna</string>
|
||||
<string name="cardShortcut">Kaardi kiirviide</string>
|
||||
<string name="noCardsMessage">Esmalt lisa kaart</string>
|
||||
<string name="barcodeImageDescriptionWithType">Kaardi <xliff:g>%s</xliff:g> tiipkood</string>
|
||||
<string name="noCardExistsError">Seda kaarti ei leidu</string>
|
||||
<string name="failedParsingImportUriError">Impordi aadressi töötlemine ei õnnestunud</string>
|
||||
<string name="importExport">Import/eksport</string>
|
||||
<string name="exportName">Ekspordi</string>
|
||||
<string name="importExportHelp">Andmete varundamine võimaldab sul neid tõsta mõnda teise seadmesse.</string>
|
||||
<string name="importSuccessfulTitle">Imporditud</string>
|
||||
<string name="importFailedTitle">Import ei õnnestunud</string>
|
||||
<string name="exportSuccessfulTitle">Eksporditud</string>
|
||||
<string name="exportFailedTitle">Eksportimine ei õnnestunud</string>
|
||||
<string name="exportFailed">Eksportimist ei õnnestunud teha</string>
|
||||
<string name="importing">Impordime…</string>
|
||||
<string name="exporting">Ekspordime…</string>
|
||||
<string name="storageReadPermissionRequired">Selle tegevuse jaoks on vajalikud õigused andmekandalt lugemiseks…</string>
|
||||
<string name="importFailed">Importimist ei õnnestunud teha</string>
|
||||
<string name="cameraPermissionRequired">Selle tegevuse jaoks on vajalikud õigused kaamera kasutamiseks…</string>
|
||||
<string name="permissionReadCardsLabel">Loe Catima kaarte</string>
|
||||
<string name="permissionReadCardsDescription">loe kõiki oma Catima kaarte koos nende üksikasjadega, sealhulgas märkuste ja piltidega</string>
|
||||
<string name="cameraPermissionDeniedTitle">Puudub ligipääs kaamerale</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Triipkoodide skaneerimiseks vajab Catima õigust asutada kaamerat. Õiguste andmiseks klõpsi siin.</string>
|
||||
<string name="exportOptionExplanation">Andmed salvestame sinu valitud asukohta.</string>
|
||||
<string name="importOptionFilesystemTitle">Impordi failisüsteemist</string>
|
||||
<string name="importOptionFilesystemExplanation">Vali vajalik impordifail failisüsteemist.</string>
|
||||
<string name="importOptionFilesystemButton">Vali failisüsteemist</string>
|
||||
<string name="importOptionApplicationTitle">Kasuta muust rakendusest eksporditud andmeid</string>
|
||||
<string name="importOptionApplicationExplanation">Kasuta faili avamiseks mõnda muud rakendust või sinu lemmikfailihaldurit.</string>
|
||||
<string name="importOptionApplicationButton">Vali muu rakenduse ekspordifail</string>
|
||||
<string name="about">Rakenduse teave</string>
|
||||
<string name="app_copyright_short">Autoriõigused © Sylvia van Os ja kaasautorid</string>
|
||||
<string name="about_title_fmt">Teave <xliff:g id="app_name">%s</xliff:g> kohta</string>
|
||||
<string name="debug_version_fmt">Versioon: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Kolmandate osapoolte avatud lähtekoodiga teegid: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Kolmandate osapoolte avatud lähtekoodiga materjalid: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="starImage">Lemmikut märkiv täht</string>
|
||||
<string name="settings">Seadistused</string>
|
||||
<string name="settings_system_theme">Süsteemi kujundus</string>
|
||||
<string name="settings_follow_system_orientation">Järgi süsteemset paigutust</string>
|
||||
<string name="settings_portrait_orientation">Püstvaade</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kaardivaate avamisel lukusta paigutus</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">See on vajalik mõnede skännerite toimimiseks</string>
|
||||
<string name="expiryStateSentenceExpired">Aegus: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_allow_content_provider_read_summary">Selle valiku sisselülitamisel peavad muud rakendused lisaks küsima õigust vaadata kaartide andmeid</string>
|
||||
<string name="noGroups">Kui soovid sarnaseid kaarte omavahel liigitada siis + pluss nupuga lisa kaardigruppe.</string>
|
||||
<string name="group_name_is_empty">Kaardigrupi nimi ei saa jääda tühjaks</string>
|
||||
<string name="groupsList">Grupid: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kaart (<xliff:g id="archivedCount">%2$d</xliff:g> arhiveeritud)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kaarti (<xliff:g id="archivedCount">%2$d</xliff:g> arhiveeritud)</item>
|
||||
</plurals>
|
||||
<string name="moveUp">Liiguta ülespoole</string>
|
||||
<string name="moveDown">Liiguta allapoole</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Kas väljume ilma salvestamata?</string>
|
||||
<string name="chooseExpiryDate">Vali aegumise kuupäev</string>
|
||||
<string name="leaveWithoutSaveTitle">Välju</string>
|
||||
<string name="addManually">Sisesta triipkood käsitsi</string>
|
||||
<string name="addFromImage">Vali galeriist pilt</string>
|
||||
<string name="balanceSentence">Maksejääk: <xliff:g>%s</xliff:g></string>
|
||||
<string name="card">Kaart</string>
|
||||
<string name="editBarcode">Muuda triipkoodi</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punkt</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> punkti</item>
|
||||
</plurals>
|
||||
<string name="expiryDate">Aegumise kuupäev</string>
|
||||
<string name="never">Mitte kunagi</string>
|
||||
<string name="showMoreInfo">Näita teavet</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Importimiseks vali oma <i>LoyaltyCardKeychain.csv</i> Loyalty Card Keychaini ekspordifail. \nSellise faili saad teha rakendusest Loyalty Card Keychain valides menüüst Import/Eksport valiku Eksport.</string>
|
||||
<string name="unsupportedBarcodeType">Sellist triipkoodi tüüpi pole veel võimalik kuvada, aga mõnes hilisemas rakenduse versioonis võib see võimalik olla.</string>
|
||||
<string name="wrongValueForBarcodeType">Väärtus ei sobi selle triipkoodi tüübiga</string>
|
||||
<string name="passwordRequired">Palun sisesta salasõna</string>
|
||||
<string name="updateBarcodeQuestionTitle">Kas uuendame triipkoodi väärtust?</string>
|
||||
<string name="yes">Jah</string>
|
||||
<string name="no">Ei</string>
|
||||
<string name="settings_theme_color">Kujunduse värv</string>
|
||||
<string name="settings_pink_theme">Roosa</string>
|
||||
<string name="barcodeLongPressMessage">Galeriirakenduses saad avada vaid pilte</string>
|
||||
<string name="sort_by_most_recently_used">Viimati kasutatud</string>
|
||||
<string name="sort_by_expiry">Aegumine</string>
|
||||
<string name="reverse">…tagurpidi järjekorras</string>
|
||||
<string name="sort_by">Järjestuse alus</string>
|
||||
<string name="version_history">Versioonide ajalugu</string>
|
||||
<string name="help_translate_this_app">Aita seda rakendust tõlkida</string>
|
||||
<string name="on_github">GitHubis</string>
|
||||
<string name="license">Litsents</string>
|
||||
<string name="source_repository">Lähtekoodi hoidla</string>
|
||||
<string name="and_data_usage">ja andmekasutus</string>
|
||||
<string name="options">Valikud</string>
|
||||
<string name="rate_this_app">Hinda seda rakendust</string>
|
||||
<string name="on_google_play">Google Play rakendustepoes</string>
|
||||
<string name="report_error">Teata vigadest</string>
|
||||
<string name="translate_platform">tõlkerakenduses Weblate</string>
|
||||
<string name="shortcutSelectCard">Vali kaart</string>
|
||||
<string name="starred">Tähekesega märgitud</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Ma soovin sinuga jagada mõnda oma kliendikaarti</string>
|
||||
<string name="settings_keep_screen_on_summary">Lülitab kaardi vaatamise ajaks välja ekraani energiahalduse</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Keela ekraanilukustus</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Lülitab kaardi vaatamise ajaks välja ekraani lukustamise</string>
|
||||
<string name="settings_allow_content_provider_read_title">Luba teistel rakendustel minu andmeid lugeda</string>
|
||||
<string name="importSuccessful">Andmed on imporditud</string>
|
||||
<string name="exportSuccessful">Andmed on eksporditud</string>
|
||||
<string name="enter_group_name">Sisesta kaardigrupi nimi</string>
|
||||
<string name="groups">Grupid</string>
|
||||
<string name="group_edit">Muuda gruppi</string>
|
||||
<string name="noGroupCards">See grupp on tühi</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> kaart</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kaarti</item>
|
||||
</plurals>
|
||||
<string name="group_name_already_in_use">Selline kaardigrupi nimi on juba kasutusel</string>
|
||||
<string name="group_updated">Kaardigrupp on uuendatud</string>
|
||||
<string name="deleteConfirmationGroup">Kas kustutame grupi?</string>
|
||||
<string name="all">Kõik</string>
|
||||
<string name="failedOpeningFileManager">Esmalt paigalda failihaldur.</string>
|
||||
<string name="intent_import_card_from_url_share_text">Ma soovin sinuga jagada ühte oma kliendikaarti</string>
|
||||
<string name="editGroup">Muudame gruppi: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Aegub: <xliff:g>%s</xliff:g></string>
|
||||
<string name="moveBarcodeToTopOfScreen">Tõsta triipkood ekraani ülaossa</string>
|
||||
<string name="noBarcodeFound">Ühtegi triipkoodi ei leidunud</string>
|
||||
<string name="errorReadingImage">Pildi lugemine ei õnnestunud</string>
|
||||
<string name="balance">Maksejääk</string>
|
||||
<string name="currency">Valuuta</string>
|
||||
<string name="points">Punkte</string>
|
||||
<string name="balanceParsingFailed">Vigane maksejääk</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy">Privaatsuspoliitika</string>
|
||||
<string name="accept">Nõustu</string>
|
||||
<string name="importCatima">Impordi Catima varukoopiast</string>
|
||||
<string name="importCatimaMessage">Importimiseks vali varem tehtud <i>catima.zip</i> Catima ekspordifail. \nSellise faili saad luua mõnes teises seadmes olevast Catima rakendusest Import/Eksport menüüst valikust Eksport.</string>
|
||||
<string name="importFidme">Impordi FidMe varukoopiast</string>
|
||||
<string name="importFidmeMessage">Importimiseks vali oma <i>fidme-export-request-xxxxxx.zip</i>, mille oled FidMe rakendusest eksportinud. Peale importi määra triipkoodi tüübid käsistsi. \nSellise faili loomiseks vali oma FidMe profiilist eelistuse Andmekaitse-Paki lahti.</string>
|
||||
<string name="importLoyaltyCardKeychain">Impordi rakendusest Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Impordi Stocardist</string>
|
||||
<string name="importStocardMessage">Importimiseks vali oma <i>***.zip</i> Stocardi ekspordifail. \nSellise faili saad saates kirja aadressile support@stocardapp.com ning küsides oma andmeid.</string>
|
||||
<string name="chooseImportType">Importimise valikud</string>
|
||||
<string name="importVoucherVault">Impordi rakendusest Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Importimiseks vali oma <i>vouchervault.json</i> Voucher Vaulti ekspordifail. \nSellise faili saad teha rakenduses Voucher Vault menüüvalikust Eksport.</string>
|
||||
<string name="barcodeId">Triipkoodi väärtus</string>
|
||||
<string name="sameAsCardId">Sama, kui ID</string>
|
||||
<string name="setBarcodeId">Sisesta triipkoodi väärtus</string>
|
||||
<string name="frontImageDescription">Esikülje pilt</string>
|
||||
<string name="backImageDescription">Tagakülje pilt</string>
|
||||
<string name="photos">Fotod</string>
|
||||
<string name="setFrontImage">Halda esikülje pilti</string>
|
||||
<string name="setBackImage">Halda tagakülje pilti</string>
|
||||
<string name="removeImage">Eemalda pilt</string>
|
||||
<string name="takePhoto">Tee foto</string>
|
||||
<string name="updateBarcodeQuestionText">Sa muutsid ID väärtust? Kas sa soovid ka triipkoodiväärtuse vastavalt uuendada?</string>
|
||||
<string name="exportPassword">Sinu eksporditavate andmete turvamiseks palun sisesta salasõna (kui soovid seda)</string>
|
||||
<string name="exportPasswordHint">Sisesta salasõna</string>
|
||||
<string name="failedGeneratingShareURL">Jagatava võrguaadressi loomine ei õnnestunud. Palun anna sellest meile teada.</string>
|
||||
<string name="turn_flashlight_on">Lülita taskulamp sisse</string>
|
||||
<string name="turn_flashlight_off">Lülita taskulamp välja</string>
|
||||
<string name="settings_locale">Keel</string>
|
||||
<string name="settings_oled_dark">Süsimust taust tumeda kujunduse puhul</string>
|
||||
<string name="settings_oled_dark_summary">OLED-ekraani puhul võimaldab see akukasutust vähendada</string>
|
||||
<string name="settings_system_locale">Süsteemi keel</string>
|
||||
<string name="selectColor">Vali värv</string>
|
||||
<string name="setIcon">Lisa pisipilt</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_magenta_theme">Fuksiapunane</string>
|
||||
<string name="settings_violet_theme">Punakassinine</string>
|
||||
<string name="settings_blue_theme">Sinine</string>
|
||||
<string name="settings_sky_blue_theme">Taevasinine</string>
|
||||
<string name="settings_green_theme">Roheline</string>
|
||||
<string name="settings_brown_theme">Pruun</string>
|
||||
<string name="app_contributors">Seda rakendust on aidanud teha: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">Järjesta</string>
|
||||
<string name="updateBalance">Uuenda maksejääki</string>
|
||||
<string name="failedToRetrieveImageFile">Pildifaili laadimine ei õnnestunud</string>
|
||||
<string name="sort_by_name">Nimi</string>
|
||||
<string name="importCards">Impordi kaardid</string>
|
||||
<string name="updateBalanceTitle">Kui palju sa kulutasid või teenisid?</string>
|
||||
<string name="updateBalanceHint">Sisesta summa</string>
|
||||
<string name="currentBalanceSentence">Praegune maksejääk: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Uus maksejääk: <xliff:g>%s</xliff:g></string>
|
||||
<string name="show_balance">Näita maksejääki</string>
|
||||
<string name="credits">Tänuavaldused</string>
|
||||
<string name="include_if_asking_support">Kasutajatoe päringusse palun lisa alljärgnev teave:</string>
|
||||
<string name="duplicateCard">Tee koopia</string>
|
||||
<string name="archive">Arhiveeri</string>
|
||||
<string name="unarchive">Eemalda arhiivist</string>
|
||||
<string name="archived">Kaart on arhiveeritud</string>
|
||||
<string name="unarchived">Kaart on arhiivist eemaldatud</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ei õnnestunud leida toetatud galeriirakendust</string>
|
||||
<string name="previousCard">Eelmine</string>
|
||||
<string name="nextCard">Järgmine</string>
|
||||
<string name="failedToOpenUrl">Esmalt paigalda veebibrauser</string>
|
||||
<string name="welcome">Tere tulemast kasutama kliendikaartide haldurit Catima</string>
|
||||
<string name="validFromDate">Kehtib alates</string>
|
||||
<string name="anyDate">Ükspuha, mis kuupäev</string>
|
||||
<string name="chooseValidFromDate">Vali korrektne kehtivuse alguse kuupäev</string>
|
||||
<string name="validFromSentence">Kehtib alates: <xliff:g>%s</xliff:g></string>
|
||||
<string name="height">Kõrgus:</string>
|
||||
<string name="switchToFrontImage">Vaata esikülje pilti</string>
|
||||
<string name="switchToBackImage">Vaata tagakülje pilti</string>
|
||||
<string name="switchToBarcode">Vaata triipkoodi</string>
|
||||
<string name="openFrontImageInGalleryApp">Ava esikülje pilt galeriirakenduses</string>
|
||||
<string name="openBackImageInGalleryApp">Ava tagakülje pilt galeriirakenduses</string>
|
||||
<string name="setBarcodeHeight">Määra triipkoodi kõrgus</string>
|
||||
<string name="donate">Toeta rahaliselt</string>
|
||||
<string name="icon_header_click_text">Pisipildi muutmiseks vajuta pikalt</string>
|
||||
<string name="show_name_below_image_thumbnail">Näita pisipildi all nime</string>
|
||||
<string name="show_note">Näita märkust</string>
|
||||
<string name="show_validity">Näita kehtivust</string>
|
||||
<string name="noCameraFoundGuideText">Sinu nutiseadmed ei tundu olema kaamerat. Kui ta siiski on olemas, siis esmalt proovi, kas taaskäivitamine aitab. Lisaks võid nupust „Veel“ leida muid valikuid triipkoodi lisamiseks.</string>
|
||||
<string name="action_more_options">Lisavalikud</string>
|
||||
<string name="importCancelled">Import on katkestatud</string>
|
||||
<string name="settings_category_title_cards">Vahekaartide vaade</string>
|
||||
<string name="settings_category_title_general">Üldised seadistused</string>
|
||||
<string name="settings_category_title_privacy">Privaatsus</string>
|
||||
<string name="action_display_options">Ekraani valikud</string>
|
||||
<string name="show_archived_cards">Näita arhiveeritud kaarte</string>
|
||||
<string name="view_online">Vaata võrgus</string>
|
||||
<string name="addWithoutBarcode">Lisa ilma triipkoodita kaart</string>
|
||||
<string name="enter_card_id">Sisesta kaardil kuvatav tunnusnumber või -tekst</string>
|
||||
<string name="card_id_must_not_be_empty">Kaardi tunnus ei tohi olla tühi</string>
|
||||
<string name="add_a_card_in_a_different_way">Lisa kaart mõnel muul viisil</string>
|
||||
<string name="field_must_not_be_empty">Väli ei tohi olla tühi</string>
|
||||
<string name="manually_enter_barcode_instructions">Sisesta sinu kaardil kuvatav tunnusnumber või -tekst ja klõpsi triipkoodi, millelaadset kuvatakse kaardil.</string>
|
||||
<string name="add_manually_warning_title">Soovitame, et skaneerid triipkoodi</string>
|
||||
<string name="add_manually_warning_message">Mõnede poodide ja äride puhul triipkoodi väärtus erineb kaardile kirjutatud numbrist. Seetõttu ei pruugi triipkoodi käsitsi lisamine alati toimida. Me tungivalt soovitame, et pigem skaneerid triipkoodi kaameraga. Kas sa siiski soovid jätkata?</string>
|
||||
<string name="continue_">Jätka</string>
|
||||
<string name="spend">Kuluta</string>
|
||||
<string name="receive">Võta vastu</string>
|
||||
<string name="amountParsingFailed">Vigane summa</string>
|
||||
<string name="addFromPdfFile">Vali PDF-fail</string>
|
||||
<string name="errorReadingFile">Faili lugemine ei õnnestunud</string>
|
||||
<string name="failedLaunchingFileManager">Ei õnnestunud leida toetatud failihaldurit</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Missugust leitud triipkoodidest soovid kasutada?</string>
|
||||
<string name="pageWithNumber"><xliff:g>%d</xliff:g>. leht</string>
|
||||
<string name="exportCancelled">Eksport on tühistatud</string>
|
||||
<string name="useFrontImage">Kasuta esikülje pilti</string>
|
||||
<string name="useBackImage">Kasuta tagakülje pilti</string>
|
||||
<string name="settings_use_volume_keys_navigation">Vaheta kaarte helivaljuse nuppudega</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Vaheta kuvatavaid vahekaarte helivaljuse nuppudega</string>
|
||||
</resources>
|
||||
75
app/src/main/res/values-fa/strings.xml
Normal file
75
app/src/main/res/values-fa/strings.xml
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">کاتیما</string>
|
||||
<string name="action_search">جستجو</string>
|
||||
<string name="action_add">افزودن</string>
|
||||
<string name="noGiftCards">برای افزودن کارت دکمه + پلاس را بزنید, یا از ⋮ منو ایمپورت کنید.</string>
|
||||
<string name="noGiftCardsGroup">تعدادی کارت ایجاد کنید، و سپس آنها را اینجا به گروه بیافزایید.</string>
|
||||
<string name="noMatchingGiftCards">بدون نتیجه. سعی کنید جستجویتان را تغییر دهید.</string>
|
||||
<string name="storeName">نام</string>
|
||||
<string name="note">یادداشت</string>
|
||||
<string name="cardId">شناسۀ کارت</string>
|
||||
<string name="barcodeType">نوع بارکد</string>
|
||||
<string name="noBarcode">بدون بارکد</string>
|
||||
<string name="star">افزودن به علاقمندیها</string>
|
||||
<string name="unstar">حذف از علاقمندیها</string>
|
||||
<string name="cancel">لغو</string>
|
||||
<string name="save">ذخیره</string>
|
||||
<string name="edit">ویرایش</string>
|
||||
<string name="delete">حذف</string>
|
||||
<string name="confirm">تایید</string>
|
||||
<string name="deleteTitle">حذف کارت</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">حذف <xliff:g>%d</xliff:g> کارت</item>
|
||||
<item quantity="other">حذف <xliff:g>%d</xliff:g> کارت(ها)</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">این کارت برای همیشه حذف شود؟</string>
|
||||
<string name="ok">تایید</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">این <xliff:g>%d</xliff:g> کارت برای همیشه حذف شود؟</item>
|
||||
<item quantity="other">این <xliff:g>%d</xliff:g> کارت برای همیشه حذف شوند؟</item>
|
||||
</plurals>
|
||||
<string name="share">همرسانی</string>
|
||||
<string name="sendLabel">ارسال…</string>
|
||||
<string name="editCardTitle">ویرایش کارت</string>
|
||||
<string name="addCardTitle">افزودن کارت</string>
|
||||
<string name="scanCardBarcode">اسکن بارکد</string>
|
||||
<string name="cardShortcut">میانبر کارت</string>
|
||||
<string name="noCardsMessage">ابتدا یک کارت بیافزایید</string>
|
||||
<string name="noCardExistsError">کارت پیدا نشد</string>
|
||||
<string name="importFailedTitle">ایمپورت ناموفق بود</string>
|
||||
<string name="importFailed">نمیتوان ایمپورت کرد</string>
|
||||
<string name="exportSuccessfulTitle">خروجی گرفته شده</string>
|
||||
<string name="exportFailedTitle">خروجی گرفتن ناموفق بود</string>
|
||||
<string name="storageReadPermissionRequired">دسترسی به خواندن محل ذخیره برای این کار نیاز است…</string>
|
||||
<string name="exportOptionExplanation">داده در محلی که شما انتخاب میکنید نوشته خواهد شد.</string>
|
||||
<string name="receive">دریافت</string>
|
||||
<string name="continue_">ادامه</string>
|
||||
<string name="add_manually_warning_title">اسکنکردن توصیه میشود</string>
|
||||
<string name="field_must_not_be_empty">فیلد نباید خالی باشد</string>
|
||||
<string name="card_id_must_not_be_empty">شناسۀ کارت نباید خالی باشد</string>
|
||||
<string name="action_more_options">گزینههای بیشتر</string>
|
||||
<string name="addWithoutBarcode">افزودن کارت بدون بارکد</string>
|
||||
<string name="enter_card_id">شناسۀ عددی یا متن روی کارت خود را وارد کنید</string>
|
||||
<string name="view_online">مشاهدۀ آنلاین</string>
|
||||
<string name="show_archived_cards">مشاهده کارتهای بایگانی شده</string>
|
||||
<string name="action_display_options">تنظیمات نمایش</string>
|
||||
<string name="amountParsingFailed">مقدار نامعتبر</string>
|
||||
<string name="exportCancelled">خروجی گیری لغو شد</string>
|
||||
<string name="addFromPdfFile">یک فایل PDF انتخاب کنید</string>
|
||||
<string name="exportName">خروجی گرفتن</string>
|
||||
<string name="importExportHelp">پشتیبانگیری داده هایتان اجازه میدهد آنها را به دستگاه دیگری منتقل کنید.</string>
|
||||
<string name="importSuccessfulTitle">ایمپورت شده</string>
|
||||
<string name="exportFailed">نمیتوان خروجی گرفت</string>
|
||||
<string name="importing">درحال ایمپورت…</string>
|
||||
<string name="exporting">درحال خروجی گیری…</string>
|
||||
<string name="cameraPermissionRequired">دسترسی به دوربین برای این کار نیاز است…</string>
|
||||
<string name="permissionReadCardsLabel">خواندن کارتهای کاتیما</string>
|
||||
<string name="permissionReadCardsDescription">کارت های کاتیما و تمام جزئیاتشان از جمله یادداشتها و عکسها را بخوانید</string>
|
||||
<string name="cameraPermissionDeniedTitle">نمیتوان به دوربین دسترسی پیدا کرد</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">برای اسکن بارکد ها، کاتیما نیاز دارد به دوربین شما دسترسی داشته باشد. اینجا بزنید تا تنظیمات دسترسی خود را تغییر دهید.</string>
|
||||
<string name="importExport">ایمپورت/خروجی گرفتن</string>
|
||||
<string name="settings_category_title_privacy">حریم شخصی</string>
|
||||
<string name="settings_category_title_general">عمومی</string>
|
||||
<string name="settings_category_title_cards">کارتها</string>
|
||||
</resources>
|
||||
@@ -23,9 +23,6 @@
|
||||
\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):
|
||||
\n
|
||||
\nMITÄÄN TIETOJA EI KERÄTÄ LAINKAAN, minkä kuka tahansa voi vahvistaa, koska sovelluksemma on vapaa ohjelmisto.</string>
|
||||
<string name="privacy_policy">Tietosuojakäytäntö</string>
|
||||
<string name="app_loyalty_card_keychain">Kanta-asiakaskortin avainnippu</string>
|
||||
<string name="chooseImportType">Tuo tietoja kohteesta</string>
|
||||
@@ -65,7 +62,7 @@
|
||||
<string name="intent_import_card_from_url_share_text">Haluan jakaa kortin kanssasi</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Estä näytön lukitus</string>
|
||||
<string name="settings_keep_screen_on">Pidä näyttö päällä</string>
|
||||
<string name="settings_display_barcode_max_brightness">Kirkasta viivakoodinäkymää</string>
|
||||
<string name="settings_display_barcode_max_brightness">Kirkasta näyttöä</string>
|
||||
<string name="settings_dark_theme">Tumma</string>
|
||||
<string name="settings_light_theme">Vaalea</string>
|
||||
<string name="settings_system_theme">Järjestelmän oletus</string>
|
||||
@@ -157,7 +154,6 @@
|
||||
<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">Taivaansininen</string>
|
||||
<string name="settings_blue_theme">Siniset</string>
|
||||
@@ -214,7 +210,7 @@
|
||||
<string name="unarchive">Poista arkistosta</string>
|
||||
<string name="archived">Kortti arkistoitu</string>
|
||||
<string name="failedLaunchingPhotoPicker">Tuettua galleriasovellusta ei löytynyt</string>
|
||||
<string name="settings_card_orientation">Viivakoodin suuntaus</string>
|
||||
<string name="settings_card_orientation">Näytön suunta</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kortti (<xliff:g id="archivedCount">%2$d</xliff:g> arkistoitu)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> korttia (<xliff:g id="archivedCount">%2$d</xliff:g> arkistoitu)</item>
|
||||
@@ -224,11 +220,7 @@
|
||||
<string name="nextCard">Seuraava</string>
|
||||
<string name="failedToOpenUrl">Asenna ensin verkkoselain</string>
|
||||
<string name="welcome">Tervetuloa Catimaan</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<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="updateBalanceTitle">Kuinka paljon kulutit tai tienasit?</string>
|
||||
<string name="updateBalanceHint">Syötä summa</string>
|
||||
<string name="barcodeLongPressMessage">Vain kuvia on mahdollista avata galleriasovelluksessa</string>
|
||||
<string name="archive">Arkistoi</string>
|
||||
@@ -268,7 +260,7 @@
|
||||
<string name="show_note">Näytä huomautus</string>
|
||||
<string name="show_balance">Näytä saldo</string>
|
||||
<string name="show_validity">Näytä kelpoisuus</string>
|
||||
<string name="settings_category_title_cards">Kortit</string>
|
||||
<string name="settings_category_title_cards">Korttinäkymä</string>
|
||||
<string name="settings_category_title_general">Yleiset</string>
|
||||
<string name="action_display_options">Näyttövalinnat</string>
|
||||
<string name="app_copyright_short">Tekijänoikeus © Sylvia van Os ja avustajat</string>
|
||||
@@ -285,4 +277,21 @@
|
||||
<string name="view_online">Näytä verkossa</string>
|
||||
<string name="settings_follow_sensor_orientation">Kierrä aina (ohittaa järjestelmän asetukset)</string>
|
||||
<string name="continue_">Jatka</string>
|
||||
<string name="add_manually_warning_title">Skannausta suositellaan</string>
|
||||
<string name="spend">Kuluta</string>
|
||||
<string name="receive">Vastaanota</string>
|
||||
<string name="amountParsingFailed">Virheellinen määrä</string>
|
||||
<string name="add_manually_warning_message">Joidenkin kauppojen kohdalla viivakoodin arvo eroaa kortilla olevasta numerosta. Tämän takia viivakoodin syöttäminen käsin ei aina toimi. On vahvasti suositeltua skannata viivakoodi kameralla. Haluatko silti jatkaa?</string>
|
||||
<string name="addFromPdfFile">Valitse PDF-tiedosto</string>
|
||||
<string name="errorReadingFile">Tiedostoa ei voitu lukea</string>
|
||||
<string name="failedLaunchingFileManager">Tuettua tiedostonhallintasovellusta ei löytynyt</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Mitä löytyneistä viivakoodeista haluat käyttää?</string>
|
||||
<string name="pageWithNumber">Sivu <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Laitteessasi ei näytä olevan kameraa. Jos näin käy, yritä käynnistää laite uudelleen. Muussa tapauksessa käytä alla olevaa Lisää vaihtoehtoja -painiketta lisätäksesi viivakoodin toisella tavalla.</string>
|
||||
<string name="importCancelled">Tuonti peruttu</string>
|
||||
<string name="exportCancelled">Vienti peruttu</string>
|
||||
<string name="useBackImage">Käytä takakuvaa</string>
|
||||
<string name="useFrontImage">Käytä etukuvaa</string>
|
||||
<string name="settings_use_volume_keys_navigation">Vaihtele korttien välillä äänenvoimakkuuspainikkeilla</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Käytä äänenvoimakkuuspainikkeita vaihtaaksesi näytettävän kortin</string>
|
||||
</resources>
|
||||
5
app/src/main/res/values-fil/strings.xml
Normal file
5
app/src/main/res/values-fil/strings.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="action_search">Hanap</string>
|
||||
<string name="app_name">Catima</string>
|
||||
</resources>
|
||||
@@ -42,7 +42,7 @@
|
||||
<string name="selectBarcodeTitle">Choisissez le code-barres</string>
|
||||
<string name="thumbnailDescription">Miniature</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="settings_display_barcode_max_brightness">Augmenter la luminosité du code-barres</string>
|
||||
<string name="settings_display_barcode_max_brightness">Augmenter la luminosité</string>
|
||||
<string name="exportSuccessful">Données exportées</string>
|
||||
<string name="importSuccessful">Données importées</string>
|
||||
<string name="intent_import_card_from_url_share_text">Je veux partager une carte avec toi</string>
|
||||
@@ -80,9 +80,6 @@
|
||||
</plurals>
|
||||
<string name="groupsList">Groupes : <xliff:g>%s</xliff:g></string>
|
||||
<string name="accept">Accepter</string>
|
||||
<string name="privacy_policy_popup_text">Avis sur la politique de confidentialité (exigé par certains magasins d’applications) :
|
||||
\n
|
||||
\nAUCUNE DONNÉE N’EST COLLECTÉE, ce que tout le monde peut confirmer puisque notre application est un logiciel libre.</string>
|
||||
<string name="privacy_policy">Politique de confidentialité</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Importer les données depuis</string>
|
||||
@@ -161,7 +158,6 @@
|
||||
<string name="settings_system_locale">Système</string>
|
||||
<string name="settings_locale">Langue</string>
|
||||
<string name="settings_brown_theme">Marron</string>
|
||||
<string name="settings_grey_theme">Gris</string>
|
||||
<string name="settings_green_theme">Vert</string>
|
||||
<string name="settings_sky_blue_theme">Bleu ciel</string>
|
||||
<string name="settings_blue_theme">Bleu</string>
|
||||
@@ -211,7 +207,7 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Fond noir pour le thème sombre</string>
|
||||
<string name="include_if_asking_support">Si vous voulez demander de l\'aide, incluez les informations suivantes :</string>
|
||||
<string name="settings_card_orientation">Orientation du code-barres</string>
|
||||
<string name="settings_card_orientation">Orientation de l\'écran</string>
|
||||
<string name="settings_follow_system_orientation">Suivre le système</string>
|
||||
<string name="settings_portrait_orientation">Portrait</string>
|
||||
<string name="settings_landscape_orientation">Paysage</string>
|
||||
@@ -230,11 +226,6 @@
|
||||
<string name="nextCard">Suivant</string>
|
||||
<string name="previousCard">Précédent</string>
|
||||
<string name="failedToOpenUrl">Installez d\'abord un navigateur web</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Voir les archives (<xliff:g>%1$d</xliff:g> carte)</item>
|
||||
<item quantity="many">Voir les archives (<xliff:g>%1$d</xliff:g> cartes)</item>
|
||||
<item quantity="other">Voir les archives (<xliff:g>%1$d</xliff:g> cartes)</item>
|
||||
</plurals>
|
||||
<string name="welcome">Bienvenue dans Catima</string>
|
||||
<string name="barcodeLongPressMessage">Seules les images peuvent être ouvertes dans l’application galerie</string>
|
||||
<string name="failedToRetrieveImageFile">Impossible de récupérer le fichier image</string>
|
||||
@@ -272,7 +263,7 @@
|
||||
<string name="settings_display_barcode_max_brightness_summary">Nécessaire au fonctionnement de certains scanneurs</string>
|
||||
<string name="settings_keep_screen_on_summary">Désactive la temporisation de l\'écran lors de la visualisation d\'une carte</string>
|
||||
<string name="settings_oled_dark_summary">Réduit l\'utilisation de la batterie sur les écrans OLED</string>
|
||||
<string name="settings_category_title_cards">Cartes</string>
|
||||
<string name="settings_category_title_cards">Vue carte</string>
|
||||
<string name="settings_category_title_general">Généraux</string>
|
||||
<string name="settings_category_title_privacy">Confidentialité</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Désactive le verrouillage de l\'écran pendant la visualisation d\'une carte</string>
|
||||
@@ -297,4 +288,16 @@
|
||||
<string name="spend">Dépenser</string>
|
||||
<string name="receive">Reçevoir</string>
|
||||
<string name="amountParsingFailed">Montant Invalide</string>
|
||||
<string name="addFromPdfFile">Sélectionner un fichier PDF</string>
|
||||
<string name="errorReadingFile">Lecture du fichier impossible</string>
|
||||
<string name="failedLaunchingFileManager">Impossible de trouver un gestionnaire de fichiers supporté</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Quel code-barre, parmi ceux trouvés, voulez-vous utiliser ?</string>
|
||||
<string name="pageWithNumber">Page <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Votre appareil ne semble pas disposer d\'une caméra. Si c\'est le cas, veuillez essayer de redémarrer l\'appareil. Sinon, vous pouvez utiliser le bouton \"Plus d\'options\" ci-dessous pour ajouter un code-barre d\'une autre manière.</string>
|
||||
<string name="exportCancelled">Exportation annulée</string>
|
||||
<string name="importCancelled">Importation annulée</string>
|
||||
<string name="useFrontImage">Utiliser l\'image de face</string>
|
||||
<string name="useBackImage">Utiliser l\'image arrière</string>
|
||||
<string name="settings_use_volume_keys_navigation">Changer de cartes avec les boutons de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilisez les boutons de volume pour changer la carte affichée</string>
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<resources>
|
||||
<string name="action_add">הוספה</string>
|
||||
<string name="cardId">מזהה כרטיס</string>
|
||||
<string name="cancel">ביטול</string>
|
||||
@@ -61,4 +61,12 @@
|
||||
<item quantity="many">מעט</item>
|
||||
<item quantity="other">אחר</item>
|
||||
</plurals>
|
||||
<string name="importCancelled">ייבוא בוטל</string>
|
||||
<string name="exportCancelled">ייצוא בוטל</string>
|
||||
<string name="addFromPdfFile">בחר קובץ PDF</string>
|
||||
<string name="errorReadingFile">לא ניתן לקרוא את הקובץ</string>
|
||||
<string name="failedLaunchingFileManager">לא נמצא קובץ ניהול נתמך</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">באיזה מהברקודים שנמצאו אתה רוצה להשתמש?</string>
|
||||
<string name="useFrontImage">השתמש בתמונה קדמית</string>
|
||||
<string name="useBackImage">השתמש בתמונה אחורית</string>
|
||||
</resources>
|
||||
@@ -110,9 +110,6 @@
|
||||
<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">
|
||||
@@ -200,7 +197,6 @@
|
||||
<string name="options">विकल्प</string>
|
||||
<string name="settings_magenta_theme">मैजेंटा</string>
|
||||
<string name="failedGeneratingShareURL">साझा करने योग्य यूआरएल जैनरेट नहीं किया जा सकता. कृपया इसकी रिपोर्ट करें।</string>
|
||||
<string name="settings_grey_theme">स्लेटी</string>
|
||||
<string name="sort_by_most_recently_used">सबसे हाल ही में उपयोग किया गया</string>
|
||||
<string name="settings_theme_color">थीम रंग</string>
|
||||
<string name="settings_sky_blue_theme">आसमानी नीला</string>
|
||||
@@ -251,10 +247,6 @@
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> कार्ड (<xliff:g id="archivedCount">%2$d</xliff:g> संग्रहीत)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> कार्ड (<xliff:g id="archivedCount">%2$d</xliff:g> संग्रहीत)</item>
|
||||
</plurals>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">संग्रह देखें (<xliff:g>%1$d</xliff:g> कार्ड)</item>
|
||||
<item quantity="other">संग्रह देखें (<xliff:g>%1$d</xliff:g> कार्ड)</item>
|
||||
</plurals>
|
||||
<string name="updateBalanceTitle">आपने कितना खर्च या प्राप्त किया?</string>
|
||||
<string name="chooseValidFromDate">दिनांक से वैध चुनें</string>
|
||||
<string name="show_name_below_image_thumbnail">छवि थंबनेल के नीचे नाम दिखाएँ</string>
|
||||
@@ -290,4 +282,14 @@
|
||||
<string name="spend">खर्च किया</string>
|
||||
<string name="receive">प्राप्त किया</string>
|
||||
<string name="amountParsingFailed">अमान्य राशि</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">आप पाए गए बारकोड में से कौन सा उपयोग करना चाहते हैं?</string>
|
||||
<string name="pageWithNumber">पृष्ठ <xliff:g>%d</xliff:g></string>
|
||||
<string name="addFromPdfFile">एक PDF फाइल चुनें</string>
|
||||
<string name="errorReadingFile">फाइल को पढ़ा नहीं जा सका</string>
|
||||
<string name="failedLaunchingFileManager">समर्थित फाइल प्रबंधक नहीं मिल सका</string>
|
||||
<string name="noCameraFoundGuideText">ऐसा लगता है कि आपके डिवाइस में कैमरा नहीं है। अगर है, तो डिवाइस को रीबूट करने का प्रयास करें। अन्यथा, किसी अन्य तरीके से बारकोड जोड़ने के लिए नीचे दिए गए अधिक विकल्प बटन का उपयोग करें।</string>
|
||||
<string name="importCancelled">आयात रद्द</string>
|
||||
<string name="exportCancelled">निर्यात रद्द</string>
|
||||
<string name="useFrontImage">सामने की छवि का प्रयोग करें</string>
|
||||
<string name="useBackImage">पीछे की छवि का उपयोग करें</string>
|
||||
</resources>
|
||||
@@ -1,10 +1,10 @@
|
||||
<?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="unstar">Ukloni iz favorita</string>
|
||||
<string name="action_search">Pretraži</string>
|
||||
<string name="action_search">Traži</string>
|
||||
<string name="save">Spremi</string>
|
||||
<string name="edit">Uredi</string>
|
||||
<string name="delete">Ukloni</string>
|
||||
<string name="delete">Ibriši</string>
|
||||
<string name="confirm">Potvrdi</string>
|
||||
<string name="deleteTitle">Izbriši karticu</string>
|
||||
<string name="deleteConfirmation">Izbrisati ovu karticu zauvijek\?</string>
|
||||
@@ -20,7 +20,7 @@
|
||||
<string name="action_add">Dodaj</string>
|
||||
<string name="storeName">Ime</string>
|
||||
<string name="note">Bilješka</string>
|
||||
<string name="noMatchingGiftCards">Nema rezultata. Pokušajte promijeniti pretraživanje.</string>
|
||||
<string name="noMatchingGiftCards">Nema rezultata. Pokušaj promijeniti tvoju pretragu.</string>
|
||||
<string name="cardId">ID kartice</string>
|
||||
<string name="barcodeType">Vrsta crtičnog koda</string>
|
||||
<string name="cancel">Odustani</string>
|
||||
@@ -51,11 +51,11 @@
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="settings_system_theme">Sustav</string>
|
||||
<string name="settings_light_theme">Svijetla</string>
|
||||
<string name="settings_display_barcode_max_brightness">Osvijetli prikaz crtičnog koda</string>
|
||||
<string name="settings_display_barcode_max_brightness">Posvijetli prikaz crtičnog koda</string>
|
||||
<string name="moveDown">Pomakni prema dolje</string>
|
||||
<string name="addManually">Upiši barkod</string>
|
||||
<string name="addManually">Upiši crtični kod</string>
|
||||
<string name="thumbnailDescription">Sličica</string>
|
||||
<string name="starImage">Omiljena zvijezda</string>
|
||||
<string name="starImage">Zvijezda za favorite</string>
|
||||
<string name="exportSuccessful">Podaci su izvezeni</string>
|
||||
<string name="settings_keep_screen_on">Ostavi ekran uključen</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Spriječi zaključavanje ekrana</string>
|
||||
@@ -89,60 +89,56 @@
|
||||
<string name="importCatima">Uvezi iz Catima</string>
|
||||
<string name="importFidme">Uvezi iz FidMe</string>
|
||||
<string name="importStocard">Uvezi iz Stocard</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi tvoju iz LoyaltyCardKeychain izvezenu <i>LoyaltyCardKeychain.csv</i> datoteku koju želiš uvesti.
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” u aplikaciji LoyaltyCardKeychain i tamo najprije pritisni „Izvoz”.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi tvoju iz LoyaltyCardKeychain izvezenu <i>LoyaltyCardKeychain.csv</i> datoteku koju želiš uvesti.
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” u aplikaciji Loyalty Card Keychain i tamo pritisni „Izvoz”.</string>
|
||||
<string name="updateBarcodeQuestionText">Promijenio/la si ID. Želiš li također aktualizirati crtični kod da koristi istu vrijednost\?</string>
|
||||
<string name="importCards">Uvezi kartice</string>
|
||||
<string name="selectColor">Odaberi boju</string>
|
||||
<string name="setIcon">Postavi sličicu</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_green_theme">Zelena</string>
|
||||
<string name="settings_grey_theme">Siva</string>
|
||||
<string name="sort_by_expiry">Istek</string>
|
||||
<string name="barcodeImageDescriptionWithType">Slika vrste crtičnog koda <xliff:g>%s</xliff:g></string>
|
||||
<string name="importLoyaltyCardKeychain">Uvezi iz Loyalty Card Keychain</string>
|
||||
<string name="frontImageDescription">Prednja slika</string>
|
||||
<string name="exportPasswordHint">Upiši lozinku</string>
|
||||
<string name="turn_flashlight_on">Uključi svjetiljku</string>
|
||||
<string name="turn_flashlight_on">Uključi bljeskalicu</string>
|
||||
<string name="failedGeneratingShareURL">Nije bilo moguće generirati URL za dijeljenje. Prijavi ovaj problem.</string>
|
||||
<string name="turn_flashlight_off">Isključi svjetiljku</string>
|
||||
<string name="turn_flashlight_off">Isključi bljeskalicu</string>
|
||||
<string name="settings_locale">Jezik</string>
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
<string name="settings_violet_theme">Ljubičasta</string>
|
||||
<string name="settings_sky_blue_theme">Nebesko plava</string>
|
||||
<string name="sort">Razvrstaj</string>
|
||||
<string name="updateBalance">Aktualiziraj saldo</string>
|
||||
<string name="sort_by">Redoslijed</string>
|
||||
<string name="version_history">Kronologija verzija</string>
|
||||
<string name="sort_by">Razvrstaj po</string>
|
||||
<string name="version_history">Povijest verzija</string>
|
||||
<string name="credits">Zasluge</string>
|
||||
<string name="and_data_usage">i korištenje podataka</string>
|
||||
<string name="rate_this_app">Ocijeni ovu aplikaciju</string>
|
||||
<string name="report_error">Prijavi greške</string>
|
||||
<string name="include_if_asking_support">Ako želiš zatražiti podršku, uključi sljedeće informacije:</string>
|
||||
<string name="report_error">Prijavi grešku</string>
|
||||
<string name="include_if_asking_support">Ako želiš zatražiti podršku uključi sljedeće informacije:</string>
|
||||
<string name="options">Opcije</string>
|
||||
<string name="starred">Označeno</string>
|
||||
<string name="starred">Favorit</string>
|
||||
<string name="duplicateCard">Dupliciraj</string>
|
||||
<string name="archive">Arhiviraj</string>
|
||||
<string name="archived">Kartica je arhivirana</string>
|
||||
<string name="unarchived">Kartica je dearhivirana</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nije bilo moguće pronaći aplikaciju za galeriju</string>
|
||||
<string name="unarchived">Kartica je uklonjena iz arhive</string>
|
||||
<string name="failedLaunchingPhotoPicker">Nije bilo moguće pronaći podržanu aplikaciju galerije</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nije bilo moguće pristupiti kameri</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Za snimanje crtičnih kodova Catima treba pristup tvojoj kameri. Dodirni ovdje za mijenjanje postavki dozvola.</string>
|
||||
<string name="app_libraries">Libre biblioteke trećih strana: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Biranje crtičnog koda</string>
|
||||
<string name="app_libraries">Slobodne biblioteke trećih strana: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Odaberi crtični kod</string>
|
||||
<string name="settings_portrait_orientation">Okomito</string>
|
||||
<string name="settings_lock_on_opening_orientation">Zaključaj na položaj koji se koristi prilikom otvaranja kartice</string>
|
||||
<string name="settings_lock_on_opening_orientation">Odredi orijentaciju koja se koristi prilikom otvaranja kartice</string>
|
||||
<string name="group_edit">Uredi grupu</string>
|
||||
<string name="group_name_already_in_use">Ime grupe se već koristi</string>
|
||||
<string name="noBarcodeFound">Nijedan crtični kod nije pronađen</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="chooseImportType">Uvezi podatke iz</string>
|
||||
<string name="app_loyalty_card_keychain">Privjesak za Karticu Vjernosti</string>
|
||||
<string name="privacy_policy_popup_text">Obavijest o politici privatnosti (obavezna za neke trgovine aplikacija):
|
||||
\n
|
||||
\nPODACI SE UOPĆE NE PRIKUPLJAJU, što svatko može potvrditi budući da je naša aplikacija libre softver.</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="importCatimaMessage">Odaberi tvoju iz Catima izvezenu <i>catima.zip</i> datoteku koju želiš uvesti.
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” jedne druge Catima aplikacije i tamo najprije pritisni „Izvoz”.</string>
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” jedne druge Catima aplikacije pritiskom na „Izvoz”.</string>
|
||||
<string name="height">Visina:</string>
|
||||
<string name="switchToFrontImage">Prebaci na prednju sliku</string>
|
||||
<string name="switchToBackImage">Prebaci na stražnju sliku</string>
|
||||
@@ -153,7 +149,7 @@
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> odabrana</item>
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> odabrane</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> odabrano</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> odabranih</item>
|
||||
</plurals>
|
||||
<string name="validFromDate">Vrijedi od</string>
|
||||
<string name="chooseValidFromDate">Odaberi datum od kada kartica vrijedi</string>
|
||||
@@ -161,7 +157,7 @@
|
||||
<string name="validFromSentence">Vrijedi od: <xliff:g>%s</xliff:g></string>
|
||||
<string name="photos">Slike</string>
|
||||
<string name="ok">U redu</string>
|
||||
<string name="app_copyright_old">Zasnovano na Loyalty Card Keychain
|
||||
<string name="app_copyright_old">Bazira na aplikaciji Loyalty Card Keychain
|
||||
\nautorsko pravo © 2016. – 2020. Branden Archer</string>
|
||||
<string name="settings_system_locale">Sustav</string>
|
||||
<plurals name="balancePoints">
|
||||
@@ -173,13 +169,13 @@
|
||||
<string name="storageReadPermissionRequired">Za ovu radnju je potrebna dozvola za čitanje spremljenih podataka …</string>
|
||||
<string name="cameraPermissionRequired">Za ovu radnju je potrebna dozvola za pristup kameri …</string>
|
||||
<string name="app_license">Copylefted libre softver, GPLv3+ licenca</string>
|
||||
<string name="settings_card_orientation">Položaj crtičnog koda</string>
|
||||
<string name="settings_card_orientation">Orijentacija crtičnog koda</string>
|
||||
<string name="settings_follow_system_orientation">Slijedi sustav</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importFidmeMessage">Odaberi tvoju iz FidMe izvezenu <i>idme-export-request-xxxxxx.zip</i> datoteku koju želiš uvesti i ručno odaberi vste crtičnog koda nakon toga.
|
||||
\nStvori je putem tvog FidMe profila i tamo najprije odaberi „Zaštita podataka” a zatim pritisni „Dekomprimiraj moje podatke”.</string>
|
||||
<string name="importVoucherVaultMessage">Odaberi tvoju iz Voucher Vault izvezenu <i>vouchervault.json</i> datoteku koju želiš uvesti.
|
||||
\nStvori je u aplikaciji Voucher Vault i tamo najprije pritisni „Izvoz”.</string>
|
||||
<string name="importFidmeMessage">Odaberi tvoju iz FidMe izvezenu <i>idme-export-request-xxxxxx.zip</i> datoteku koju želiš uvesti i ručno odaberi vste crtičnog koda nakon toga.
|
||||
\nStvori je putem tvog FidMe profila biranjem „Zaštita podataka” a zatim pritisni „Dekomprimiraj moje podatke”.</string>
|
||||
<string name="importVoucherVaultMessage">Odaberi tvoju iz Voucher Vault izvezenu <i>vouchervault.json</i> datoteku koju želiš uvesti.
|
||||
\nStvori je u aplikaciji Voucher Vault i tamo pritisni „Izvoz”.</string>
|
||||
<string name="settings_pink_theme">Ružičasta</string>
|
||||
<string name="settings_blue_theme">Plava</string>
|
||||
<string name="failedToRetrieveImageFile">Neuspjelo dohvaćanje slikovne datoteke</string>
|
||||
@@ -188,11 +184,11 @@
|
||||
<string name="source_repository">Izvorni repozitorij</string>
|
||||
<string name="on_github">na GitHubu</string>
|
||||
<string name="on_google_play">na stranici Google Play</string>
|
||||
<string name="unarchive">Dearhiviraj</string>
|
||||
<string name="unarchive">Ukloni iz arhive</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="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> kartica (<xliff:g id="archivedCount">%2$d</xliff:g> arhivirano)</item>
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kartica (<xliff:g id="archivedCount">%2$d</xliff:g> je arhivirana)</item>
|
||||
<item quantity="few"><xliff:g>%1$d</xliff:g> kartice (<xliff:g id="archivedCount">%2$d</xliff:g> su arhivirane)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kartica (<xliff:g id="archivedCount">%2$d</xliff:g> je arhivirano)</item>
|
||||
</plurals>
|
||||
<string name="help_translate_this_app">Pomogni prevoditi ovu aplikaciju</string>
|
||||
<string name="welcome">Pozdrav u Catima</string>
|
||||
@@ -210,14 +206,14 @@
|
||||
</plurals>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Autorska prava © 2019. – <xliff:g>%d.</xliff:g> Sylvia van Os i doprinositelji</string>
|
||||
<string name="debug_version_fmt">Verzija: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_resources">Libre resursi trećih strana: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Slobodni resursi trećih strana: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_landscape_orientation">Vodoravno</string>
|
||||
<string name="group_name_is_empty">Ime grupe ne smije biti prazno</string>
|
||||
<string name="group_updated">Grupa je aktualizirana</string>
|
||||
<string name="all">Sve</string>
|
||||
<string name="groupsList">Grupe: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Isteče: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Isteklo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Istekla: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseExpiryDate">Odaberi datum isteka</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Premjesti crtični kod na vrh ekrana</string>
|
||||
<string name="errorReadingImage">Nije bilo moguće učitati sliku</string>
|
||||
@@ -229,13 +225,13 @@
|
||||
<string name="sameAsCardId">Ista kao ID</string>
|
||||
<string name="setBarcodeId">Postavi vrijednost crtičnog koda</string>
|
||||
<string name="unsupportedBarcodeType">Ova se vrsta crtičnog koda još ne može prikazati. Možda će se podržati u novijoj verziji aplikacije.</string>
|
||||
<string name="wrongValueForBarcodeType">Vrijednost nije valjana za odabranu vrstu crtičnog koda</string>
|
||||
<string name="wrongValueForBarcodeType">Vrijednost nije ispravna za odabranu vrstu crtičnog koda</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Želim dijeliti neke kartice s tobom</string>
|
||||
<string name="backImageDescription">Stražnja slika</string>
|
||||
<string name="setFrontImage">Postavi prednju sliku</string>
|
||||
<string name="setBackImage">Postavi stražnju sliku</string>
|
||||
<string name="removeImage">Ukloni sliku</string>
|
||||
<string name="takePhoto">Uslikaj fotografiju</string>
|
||||
<string name="takePhoto">Snimi sliku</string>
|
||||
<string name="updateBarcodeQuestionTitle">Aktualizirati vrijednost crtičnog koda\?</string>
|
||||
<string name="yes">Da</string>
|
||||
<string name="no">Ne</string>
|
||||
@@ -244,7 +240,7 @@
|
||||
<string name="settings_oled_dark">Potpuno crna pozadina za tamnu temu</string>
|
||||
<string name="settings_theme_color">Boja teme</string>
|
||||
<string name="settings_brown_theme">Smeđa</string>
|
||||
<string name="app_contributors">Omogućuje: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="app_contributors">Doprinositelji: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="showMoreInfo">Prikaži informacije</string>
|
||||
<string name="sort_by_name">Ime</string>
|
||||
<string name="sort_by_most_recently_used">Nedavno korišteno</string>
|
||||
@@ -252,32 +248,27 @@
|
||||
<string name="shortcutSelectCard">Odaberi karticu</string>
|
||||
<string name="previousCard">Prethodna</string>
|
||||
<string name="nextCard">Sljedeća</string>
|
||||
<string name="updateBalanceTitle">Koliko si potrošio/la?</string>
|
||||
<string name="updateBalanceTitle">Koliko si potrošio/la ili primio/la?</string>
|
||||
<string name="updateBalanceHint">Upiši iznos</string>
|
||||
<string name="about_title_fmt">Informaije o <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="about_title_fmt">Informacije o <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="failedToOpenUrl">Najprije instaliraj web preglednik</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Pogledaj arhivu (<xliff:g>%1$d</xliff:g> kartica)</item>
|
||||
<item quantity="few">Pogledaj arhivu (<xliff:g>%1$d</xliff:g> kartice)</item>
|
||||
<item quantity="other">Pogledaj arhivu (<xliff:g>%1$d</xliff:g> kartica)</item>
|
||||
</plurals>
|
||||
<string name="icon_header_click_text">Dugim pritiskom uredite sličicu</string>
|
||||
<string name="icon_header_click_text">Dugim pritiskom uredi sličicu</string>
|
||||
<string name="show_name_below_image_thumbnail">Prikaži ime ispod sličice</string>
|
||||
<string name="show_note">Prikaži bilješku</string>
|
||||
<string name="show_balance">Prikaži saldo</string>
|
||||
<string name="show_validity">Prikaži valjanost</string>
|
||||
<string name="card_id_must_not_be_empty">ID oznaka kartice ne smije biti prazna</string>
|
||||
<string name="card_id_must_not_be_empty">ID kartice ne smije biti prazna</string>
|
||||
<string name="balanceParsingFailed">Neispravni saldo</string>
|
||||
<string name="add_a_card_in_a_different_way">Dodaj karticu na drugi način</string>
|
||||
<string name="view_online">Pogledaj online</string>
|
||||
<string name="settings_category_title_general">Opće</string>
|
||||
<string name="manually_enter_barcode_instructions">Upiši broj ID-a ili tekst na kartici i pritisni crtični kod koji izgleda kao onaj na tvojoj kartici.</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deaktivira zaključavanje ekrana tijekom prikaza kartice</string>
|
||||
<string name="action_more_options">Daljnje opcije</string>
|
||||
<string name="action_more_options">Više opcija</string>
|
||||
<string name="permissionReadCardsDescription">čitaj tvoje Catima kartice i sve njihove pojedinosti, uključujući bilješke i slike</string>
|
||||
<string name="enter_card_id">Upiši broj ID-a ili tekst na tvojoj kartici</string>
|
||||
<string name="action_display_options">Opcije prikaza</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Neophodno za rad nekih skenera</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Potrebno za rad nekih čitača</string>
|
||||
<string name="settings_oled_dark_summary">Smanjuje potrošnju baterije OLED ekrana</string>
|
||||
<string name="settings_category_title_cards">Kartice</string>
|
||||
<string name="addWithoutBarcode">Dodaj karticu bez crtičnog koda</string>
|
||||
@@ -290,5 +281,21 @@
|
||||
<string name="settings_category_title_privacy">Privatnost</string>
|
||||
<string name="settings_keep_screen_on_summary">Deaktivira isključivanje ekrana tijekom prikaza kartice</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Uvijek rotiraj (ignorira sistemske postavke)</string>
|
||||
<string name="settings_follow_sensor_orientation">Uvijek okreni (zanemaruje postavke sustava)</string>
|
||||
<string name="continue_">Nastavi</string>
|
||||
<string name="add_manually_warning_message">Za neke trgovine se vrijednost crtičnog koda razlikuje od broja na kartici. Zbog toga ručno upisivanje crtičnog koda možda neće uvijek funkcionirati. Preporučuje se snimanje crtičnog koda pomoću kamere. Želiš li svejedno nastaviti?</string>
|
||||
<string name="add_manually_warning_title">Preporučuje se snimanje</string>
|
||||
<string name="addFromPdfFile">Odaberi PDF datoteku</string>
|
||||
<string name="errorReadingFile">Nije bilo moguće pročitati datoteku</string>
|
||||
<string name="failedLaunchingFileManager">Nije bilo moguće pronaći podržani upravljač datoteka</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Koji od pronađenih crtičnih kodova želiš koristiti?</string>
|
||||
<string name="pageWithNumber">Stranica <xliff:g>%d</xliff:g></string>
|
||||
<string name="spend">Potroši</string>
|
||||
<string name="receive">Primi</string>
|
||||
<string name="amountParsingFailed">Neispravan iznos</string>
|
||||
<string name="noCameraFoundGuideText">Čini se da tvoj uređaj nema kameru. Ako je ima, pokušaj ponovo pokrenuti uređaj. Inače koristi gumb „Više opcija” za dodavanje crtičnog koda na jedan drugi način.</string>
|
||||
<string name="importCancelled">Uvoz je prekinut</string>
|
||||
<string name="exportCancelled">Izvoz je prekinut</string>
|
||||
<string name="useBackImage">Koristi stražnju sliku</string>
|
||||
<string name="useFrontImage">Koristi prednju sliku</string>
|
||||
</resources>
|
||||
@@ -62,7 +62,6 @@
|
||||
<string name="exportPasswordHint">Kód beírása</string>
|
||||
<string name="failedGeneratingShareURL">Nem lehetett megosztható webcímet előállítani. Kérjük, ezt jelentse.</string>
|
||||
<string name="settings_theme_color">Téma színe</string>
|
||||
<string name="settings_grey_theme">Szürke</string>
|
||||
<string name="sort">Rendezés</string>
|
||||
<string name="on_google_play">a Google Playen</string>
|
||||
<string name="and_data_usage">és adathasználat</string>
|
||||
@@ -89,7 +88,7 @@
|
||||
<string name="settings_theme">Téma</string>
|
||||
<string name="settings_system_theme">Rendszer</string>
|
||||
<string name="settings_light_theme">Világos</string>
|
||||
<string name="settings_display_barcode_max_brightness">Vonalkód nézet világosítása</string>
|
||||
<string name="settings_display_barcode_max_brightness">Kijelző világosítása</string>
|
||||
<string name="settings_keep_screen_on">A képernyő bekapcsolva tartása</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Képernyőzárólás megakadályozása</string>
|
||||
<string name="intent_import_card_from_url_share_text">Meg akarok veled osztani egy kártyát</string>
|
||||
@@ -199,12 +198,9 @@
|
||||
<string name="groupsList">Csoportok: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importCatimaMessage">Válassza ki az exportált <i>catima.zip</i> fájlt az importáláshoz.
|
||||
\nLétrehozhatja az Importálás/exportálás menüből az Exportálást megnyomva egy másik Catima alkalmazásban.</string>
|
||||
<string name="privacy_policy_popup_text">Adatvédelmi irányelvek nyilatkozata (némely alkalmazásbolt kéri):
|
||||
\n
|
||||
\nSEMMILYEN ADAT NEM KERÜL GYŰJTÉSRE, amit bárki ellenőrizhet, hiszen az alkalmazás szabad szoftver.</string>
|
||||
<string name="importFidmeMessage">Válassza ki a FidMeből exportált <i>fidme-export-request-xxxxxx.zip</i> fájl majd importálja be, és utána válassza a kézi vonalkódbeírást.
|
||||
\nEzt hozza létre a FidMe-profiljában az Adatvédelem rész választásával, majd a Saját adatok kinyerése megnyomásával.</string>
|
||||
<string name="settings_card_orientation">Vonalkód tájolása</string>
|
||||
<string name="settings_card_orientation">Képernyő tájolása</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kártya (<xliff:g id="archivedCount">%2$d</xliff:g> archiválva)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kártya (<xliff:g id="archivedCount">%2$d</xliff:g> archiválva)</item>
|
||||
@@ -233,10 +229,6 @@
|
||||
<string name="barcodeLongPressMessage">Csak képek nyithatók meg a galéria alkalmazásban</string>
|
||||
<string name="unarchived">Kártya archiválása megszüntetve</string>
|
||||
<string name="welcome">Üdvözöljük a 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ártya)</item>
|
||||
</plurals>
|
||||
<string name="updateBalance">Egyenleg frissítése</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">A vonalkódok leolvasá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>
|
||||
<string name="validFromDate">Érvényesség kezdete</string>
|
||||
@@ -264,7 +256,7 @@
|
||||
<string name="settings_oled_dark_summary">Csökkenti az OLED kijelzők akkumulátor-használatát</string>
|
||||
<string name="settings_category_title_privacy">Adatvédelem</string>
|
||||
<string name="settings_allow_content_provider_read_title">Engedélyezem más alkalmazások számára az adataimhoz való hozzáférést</string>
|
||||
<string name="settings_category_title_cards">Kártyák</string>
|
||||
<string name="settings_category_title_cards">Kártyanézet</string>
|
||||
<string name="settings_category_title_general">Általános</string>
|
||||
<string name="settings_keep_screen_on_summary">Letiltja a képernyő időtúllépését a kártya megtekintése közben</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Letiltja a képernyő időtúllépését a kártya megjelenítése közben</string>
|
||||
@@ -290,4 +282,16 @@
|
||||
<string name="continue_">Tovább</string>
|
||||
<string name="spend">Költött</string>
|
||||
<string name="receive">Megkapott</string>
|
||||
<string name="addFromPdfFile">PDF fájl kiválasztása</string>
|
||||
<string name="errorReadingFile">A fájl nem olvasható</string>
|
||||
<string name="pageWithNumber"><xliff:g>%d</xliff:g>. oldal</string>
|
||||
<string name="failedLaunchingFileManager">Nem található támogatott fájlkezelő</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">A talált vonalkódok közül melyiket szeretné használni?</string>
|
||||
<string name="noCameraFoundGuideText">Úgy tűnik, az eszközén nincs kamera. Ha van, próbálja meg újraindítani az eszközt. Másképp, használja a További beállítások gombot alul, hogy máshogy hozzáadjon egy vonalkódot.</string>
|
||||
<string name="importCancelled">Importálás megszakítva</string>
|
||||
<string name="exportCancelled">Exportálás megszakítva</string>
|
||||
<string name="settings_use_volume_keys_navigation">Kártyák váltása a hangerőgombokkal</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">A hangerőgombok használata a megjelenített kártya átváltásához</string>
|
||||
<string name="useFrontImage">Elülső kép használata</string>
|
||||
<string name="useBackImage">Hátsó kép használata</string>
|
||||
</resources>
|
||||
@@ -55,7 +55,6 @@
|
||||
<string name="settings_blue_theme">Biru</string>
|
||||
<string name="settings_green_theme">Hijau</string>
|
||||
<string name="settings_sky_blue_theme">Biru Langit</string>
|
||||
<string name="settings_grey_theme">Abu-abu</string>
|
||||
<string name="settings_brown_theme">Cokelat</string>
|
||||
<string name="settings_violet_theme">Ungu</string>
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
@@ -108,7 +107,7 @@
|
||||
<string name="starImage">Favorit</string>
|
||||
<string name="settings_light_theme">Terang</string>
|
||||
<string name="settings_dark_theme">Gelap</string>
|
||||
<string name="settings_display_barcode_max_brightness">Terangkan tampilan barcode</string>
|
||||
<string name="settings_display_barcode_max_brightness">Cerahkan layar</string>
|
||||
<string name="settings_keep_screen_on">Biarkan layar menyala</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Cegah kunci layar</string>
|
||||
<string name="intent_import_card_from_url_share_text">Saya ingin berbagi kartu dengan anda</string>
|
||||
@@ -136,22 +135,19 @@
|
||||
<string name="points">Poin</string>
|
||||
<string name="app_loyalty_card_keychain">Gantungan kunci kartu kesetiaan</string>
|
||||
<string name="privacy_policy">Kebijakan Privasi</string>
|
||||
<string name="privacy_policy_popup_text">Pemberitahuan kebijakan privasi (diperlukan oleh beberapa toko aplikasi):
|
||||
\n
|
||||
\nTIDAK ADA DATA YANG DIKUMPULKAN SAMA SEKALI, yang dapat dikonfirmasi oleh siapa pun karena aplikasi kami adalah libre software.</string>
|
||||
<string name="importCatimaMessage">Pilih ekspor <i>catima.zip</i> Anda dari Catima untuk diimpor.
|
||||
\nBuat dari menu Impor/Ekspor aplikasi Catima lain dengan menekan Ekspor di sana terlebih dahulu.</string>
|
||||
<string name="importFidmeMessage">Pilih ekspor <i>fidme-export-request-xxxxxx.zip</i> Anda dari FidMe untuk diimpor, dan pilih jenis barcode secara manual setelahnya.
|
||||
<string name="importFidmeMessage">Pilih ekspor <i>fidme-export-request-xxxxxx.zip</i> Anda dari FidMe untuk diimpor, dan pilih jenis barcode secara manual setelahnya.
|
||||
\nBuat dari profil FidMe Anda dengan memilih Perlindungan Data lalu tekan Ekstrak data saya terlebih dahulu.</string>
|
||||
<string name="importLoyaltyCardKeychain">Impor dari Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Pilih ekspor <i>LoyaltyCardKeychain.csv</i> Anda dari Loyalty Card Keychain untuk diimpor.
|
||||
<string name="importLoyaltyCardKeychainMessage">Pilih ekspor <i>LoyaltyCardKeychain.csv</i> Anda dari Loyalty Card Keychain untuk diimpor.
|
||||
\nBuat dari menu Import/Export di Loyalty Card Keychain dengan menekan Export terlebih dahulu.</string>
|
||||
<string name="importStocard">Impor dari Stocard</string>
|
||||
<string name="importStocardMessage">Pilih ekspor <i>***.zip</i> Anda dari Stocard untuk diimpor.
|
||||
<string name="importStocardMessage">Pilih ekspor <i>***.zip</i> Anda dari Stocard untuk diimpor.
|
||||
\nDapatkan dengan mengirim email ke support@stocardapp.com untuk meminta ekspor data Anda.</string>
|
||||
<string name="importVoucherVault">Impor dari Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Pilih ekspor <i>vouchervault.json</i> Anda dari Vault Voucher untuk diimpor.
|
||||
\nBuat dengan menekan Ekspor di Vault Voucher terlebih dahulu.</string>
|
||||
<string name="importVoucherVaultMessage">Pilih ekspor <i>vouchervault.json</i> Anda dari Voucher Vault untuk diimpor.
|
||||
\nBuat dengan menekan Ekspor di Voucher Vault terlebih dahulu.</string>
|
||||
<string name="unsupportedBarcodeType">Jenis barcode ini belum dapat ditampilkan. Ini mungkin didukung di versi aplikasi yang lebih baru.</string>
|
||||
<string name="wrongValueForBarcodeType">Nilai tidak berlaku untuk jenis barcode yang dipilih</string>
|
||||
<string name="frontImageDescription">Gambar depan</string>
|
||||
@@ -199,13 +195,10 @@
|
||||
<string name="translate_platform">di Weblate</string>
|
||||
<string name="welcome">Selamat datang di Catima</string>
|
||||
<string name="failedToOpenUrl">Install browser web terlebih dahulu</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="other">Lihat arsip (<xliff:g>%1$d</xliff:g> kartu)</item>
|
||||
</plurals>
|
||||
<string name="failedLaunchingPhotoPicker">Tidak dapat menemukan aplikasi galeri yang didukung</string>
|
||||
<string name="previousCard">Sebelumnya</string>
|
||||
<string name="nextCard">Berikutnya</string>
|
||||
<string name="settings_card_orientation">Orientasi Barcode</string>
|
||||
<string name="settings_card_orientation">Orientasi layar</string>
|
||||
<string name="settings_follow_system_orientation">Ikuti sistem</string>
|
||||
<string name="settings_portrait_orientation">Potret</string>
|
||||
<string name="settings_landscape_orientation">Lanskap</string>
|
||||
@@ -231,7 +224,7 @@
|
||||
<string name="updateBalance">Perbarui saldo</string>
|
||||
<string name="updateBalanceHint">Masukkan jumlah</string>
|
||||
<string name="currentBalanceSentence">Saldo saat ini: <xliff:g>%s</xliff:g></string>
|
||||
<string name="updateBalanceTitle">Berapa banyak yang telah kamu habiskan ?</string>
|
||||
<string name="updateBalanceTitle">Berapa banyak yang kamu belanjakan atau terima?</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Untuk memindai barcode, Catima membutuhkan akses ke kamera mu. Tap disini untuk mengganti pengaturan perizinan mu.</string>
|
||||
<string name="cameraPermissionRequired">Berikan izin untuk mengakses kamera anda…</string>
|
||||
<string name="storageReadPermissionRequired">Berikan izin untuk membaca penyimpanan anda…</string>
|
||||
@@ -261,7 +254,7 @@
|
||||
<string name="settings_category_title_general">Umum</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Diperlukan agar beberapa pemindai dapat berfungsi</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Menonaktifkan kunci layar saat melihat kartu</string>
|
||||
<string name="settings_category_title_cards">Kartu</string>
|
||||
<string name="settings_category_title_cards">Tampilan kartu</string>
|
||||
<string name="settings_category_title_privacy">Privasi</string>
|
||||
<string name="show_archived_cards">Tampilkan kartu yang sudah disimpan</string>
|
||||
<string name="action_display_options">Pilihan tampilan</string>
|
||||
@@ -277,4 +270,22 @@
|
||||
<string name="field_must_not_be_empty">Isian tidak boleh kosong</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Selalu rotasi (abaikan pengaturan sistem)</string>
|
||||
<string name="add_manually_warning_title">Pemindaian sangat dianjurkan</string>
|
||||
<string name="continue_">Lanjut</string>
|
||||
<string name="failedLaunchingFileManager">Tidak dapat menemukan pengelola file yang didukung</string>
|
||||
<string name="errorReadingFile">Tidak dapat membaca file</string>
|
||||
<string name="addFromPdfFile">Pilih file PDF</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Barcode mana yang ingin Anda gunakan?</string>
|
||||
<string name="pageWithNumber">Halaman <xliff:g>%d</xliff:g></string>
|
||||
<string name="spend">Dibelanjakan</string>
|
||||
<string name="receive">Terima</string>
|
||||
<string name="amountParsingFailed">Jumlah tidak valid</string>
|
||||
<string name="add_manually_warning_message">Untuk beberapa toko, nilai barcode berbeda dengan nomor yang tertulis di kartu. Oleh karena itu, memasukkan barcode secara manual mungkin tidak selalu berhasil. Sangat disarankan untuk memindai barcode dengan kamera anda. Apakah anda masih ingin melanjutkan?</string>
|
||||
<string name="noCameraFoundGuideText">Perangkat Anda sepertinya tidak memiliki kamera. Jika iya, coba mulai ulang perangkat. Jika tidak, gunakan tombol Opsi lainnya di bawah untuk menambahkan barcode dengan cara lain.</string>
|
||||
<string name="importCancelled">Impor dibatalkan</string>
|
||||
<string name="exportCancelled">Ekspor dibatalkan</string>
|
||||
<string name="useFrontImage">Gunakan gambar depan</string>
|
||||
<string name="useBackImage">Gunakan gambar belakang</string>
|
||||
<string name="settings_use_volume_keys_navigation">Ganti kartu menggunakan tombol volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Gunakan tombol volume untuk mengubah kartu mana yang ditampilkan</string>
|
||||
</resources>
|
||||
@@ -81,10 +81,9 @@
|
||||
<string name="noGiftCardsGroup">Búðu til nokkur kort og settu þau síðan í hópinn hér.</string>
|
||||
<string name="settings_brown_theme">Brún</string>
|
||||
<string name="settings_green_theme">Grænn</string>
|
||||
<string name="settings_grey_theme">Grár</string>
|
||||
<string name="sort">flokka</string>
|
||||
<string name="sort_by">flokka Eftir</string>
|
||||
<string name="nextCard">Næsta</string>
|
||||
<string name="settings_blue_theme">Blár</string>
|
||||
<string name="settings_sky_blue_theme">Himinblár</string>
|
||||
</resources>
|
||||
</resources>
|
||||
@@ -50,7 +50,7 @@
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_light_theme">Chiaro</string>
|
||||
<string name="settings_dark_theme">Scuro</string>
|
||||
<string name="settings_display_barcode_max_brightness">Aumenta luminosità dello schermo quando viene aperto un codice a barre</string>
|
||||
<string name="settings_display_barcode_max_brightness">Aumenta la luminosità</string>
|
||||
<string name="intent_import_card_from_url_share_text">Voglio condividere una carta fedeltà con te</string>
|
||||
<string name="exportSuccessful">Dati della carta esportati</string>
|
||||
<string name="importSuccessful">Dati importati</string>
|
||||
@@ -96,9 +96,6 @@
|
||||
<string name="chooseImportType">Importa i dati da</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Impedisci il blocco dello schermo</string>
|
||||
<string name="accept">Accetta</string>
|
||||
<string name="privacy_policy_popup_text">Informativa sulla riservatezza (richiesta da alcuni app store):
|
||||
\n
|
||||
\nNESSUN DATO VIENE RACCOLTO, cosa che chiunque può confermare dato che la nostra applicazione è un software libero.</string>
|
||||
<string name="privacy_policy">Informativa sulla riservatezza</string>
|
||||
<string name="importVoucherVaultMessage">Seleziona il tuo file di esportazione <i>vouchervault.json</i> da Voucher Vault per importarlo.
|
||||
\nCrealo premendo prima Esporta in Voucher Vault.</string>
|
||||
@@ -161,7 +158,6 @@
|
||||
<string name="settings_system_locale">Sistema</string>
|
||||
<string name="settings_locale">Lingua</string>
|
||||
<string name="settings_brown_theme">Marrone</string>
|
||||
<string name="settings_grey_theme">Grigio</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="settings_sky_blue_theme">Azzurro</string>
|
||||
<string name="settings_blue_theme">Blu</string>
|
||||
@@ -211,7 +207,7 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Sfondo nero puro per il tema scuro</string>
|
||||
<string name="include_if_asking_support">Se vuoi richiedere supporto, includi le seguenti informazioni:</string>
|
||||
<string name="settings_card_orientation">Orientamento del codice a barre</string>
|
||||
<string name="settings_card_orientation">Orientamento dello schermo</string>
|
||||
<string name="settings_follow_system_orientation">Segui il sistema</string>
|
||||
<string name="duplicateCard">Duplica</string>
|
||||
<string name="archive">Archivia</string>
|
||||
@@ -231,11 +227,6 @@
|
||||
<string name="nextCard">Successivo</string>
|
||||
<string name="welcome">Benvenuti su Catima</string>
|
||||
<string name="failedToOpenUrl">Installa prima un browser web</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Visualizza archivio (<xliff:g>%1$d</xliff:g> scheda)</item>
|
||||
<item quantity="many">Visualizza archivio (<xliff:g>%1$d</xliff:g> carta)</item>
|
||||
<item quantity="other">Visualizza archivio (<xliff:g>%1$d</xliff:g> carte)</item>
|
||||
</plurals>
|
||||
<string name="failedToRetrieveImageFile">Impossibile ottenere il file dell\'immagine</string>
|
||||
<string name="barcodeLongPressMessage">Si possono aprire solo immagini dell\'app della galleria</string>
|
||||
<string name="cameraPermissionDeniedTitle">È impossibile accedere alla fotocamera</string>
|
||||
@@ -273,7 +264,7 @@
|
||||
<string name="settings_keep_screen_on_summary">Disattiva il timeout dello schermo durante la visualizzazione di una carta</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Disattiva il blocco dello schermo durante la visualizzazione di una carta</string>
|
||||
<string name="settings_oled_dark_summary">Riduce il consumo della batteria sui display OLED</string>
|
||||
<string name="settings_category_title_cards">Carte</string>
|
||||
<string name="settings_category_title_cards">Vista carta</string>
|
||||
<string name="settings_category_title_general">Generali</string>
|
||||
<string name="settings_category_title_privacy">Privacy</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os e contributori</string>
|
||||
@@ -297,4 +288,16 @@
|
||||
<string name="amountParsingFailed">Importo non valido</string>
|
||||
<string name="spend">Spendi</string>
|
||||
<string name="receive">Ricevi</string>
|
||||
<string name="errorReadingFile">Impossibile leggere il file</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Quale dei codici a barre trovati vuoi utilizzare?</string>
|
||||
<string name="addFromPdfFile">Seleziona un file PDF</string>
|
||||
<string name="failedLaunchingFileManager">Impossibile trovare un file manager supportato</string>
|
||||
<string name="pageWithNumber">Pagina <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Sembra che il tuo dispositivo non abbia una fotocamera. In tal caso, prova a riavviare il dispositivo. Altrimenti, utilizza il pulsante Altre opzioni di seguito per aggiungere un codice a barre in un altro modo.</string>
|
||||
<string name="importCancelled">Importazione annullata</string>
|
||||
<string name="exportCancelled">Esportazione annullata</string>
|
||||
<string name="useBackImage">Usa l\'immagine posteriore</string>
|
||||
<string name="useFrontImage">Usa l\'immagine anteriore</string>
|
||||
<string name="settings_use_volume_keys_navigation">Cambia carte con i pulsanti di volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilizza i pulsanti di volume per modificare la carta visualizzata</string>
|
||||
</resources>
|
||||
@@ -13,9 +13,6 @@
|
||||
\nファイルがない場合、他のCatimaアプリでファイルをエクスポートしてください。</string>
|
||||
<string name="importCatima">Catimaからインポート</string>
|
||||
<string name="accept">承認</string>
|
||||
<string name="privacy_policy_popup_text">プライバシーポリシーの案内:
|
||||
\n
|
||||
\nこのアプリはユーザーのデータを一切収集しません。</string>
|
||||
<string name="privacy_policy">プライバシーポリシー</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">インポート元を選択</string>
|
||||
@@ -52,8 +49,8 @@
|
||||
<string name="exportSuccessful">データがエクスポートされました</string>
|
||||
<string name="importSuccessful">データがインポートされました</string>
|
||||
<string name="intent_import_card_from_url_share_text">カード共有をしましょう</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">バーコード表示中は画面をロックしない</string>
|
||||
<string name="settings_keep_screen_on">バーコード表示中は画面を消灯しない</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">バーコード表示中に画面をロックしない</string>
|
||||
<string name="settings_keep_screen_on">バーコード表示中に画面を点けたままにする</string>
|
||||
<string name="settings_display_barcode_max_brightness">バーコード表示画面を明るくする</string>
|
||||
<string name="settings_dark_theme">ダーク</string>
|
||||
<string name="settings_light_theme">ライト</string>
|
||||
@@ -64,11 +61,11 @@
|
||||
<string name="thumbnailDescription">サムネイル</string>
|
||||
<string name="selectBarcodeTitle">バーコード選択</string>
|
||||
<string name="app_libraries">Libre third-party libraries: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Version: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt">About <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">バージョン: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="about_title_fmt"><xliff:g id="app_name">%s</xliff:g> について</string>
|
||||
<string name="app_license">Copylefted libre software, licensed GPLv3+</string>
|
||||
<string name="app_resources">Libre third-party resources: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="about">Catimaについて</string>
|
||||
<string name="about">このアプリについて</string>
|
||||
<string name="importOptionApplicationButton">外部のアプリを使う</string>
|
||||
<string name="importOptionApplicationExplanation">任意のアプリやお気に入りのファイルマネージャーからファイルを開く。</string>
|
||||
<string name="importOptionApplicationTitle">外部アプリを使う</string>
|
||||
@@ -130,8 +127,8 @@
|
||||
<string name="takePhoto">写真を撮影する</string>
|
||||
<string name="removeImage">画像を削除</string>
|
||||
<string name="setBackImage">裏面の画像を設定</string>
|
||||
<string name="setFrontImage">オモテ面の画像を設定</string>
|
||||
<string name="photos">フォト</string>
|
||||
<string name="setFrontImage">表面の画像を設定</string>
|
||||
<string name="photos">画像</string>
|
||||
<string name="backImageDescription">裏</string>
|
||||
<string name="frontImageDescription">表</string>
|
||||
<string name="importStocardMessage">Stocardでエクスポートした<i>***.zip</i>ファイルを選択してください。
|
||||
@@ -151,7 +148,6 @@
|
||||
<string name="barcodeImageDescriptionWithType">バーコード形式の画像 <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_contributors">Made possible by: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="settings_brown_theme">ブラウン/茶色</string>
|
||||
<string name="settings_grey_theme">グレー/灰色</string>
|
||||
<string name="settings_green_theme">グリーン/緑色</string>
|
||||
<string name="settings_sky_blue_theme">スカイブルー/水色</string>
|
||||
<string name="settings_blue_theme">ブルー/青色</string>
|
||||
@@ -175,12 +171,12 @@
|
||||
<string name="exportPasswordHint">パスワードを入力してください</string>
|
||||
<string name="version_history">更新履歴</string>
|
||||
<string name="credits">貢献者</string>
|
||||
<string name="help_translate_this_app">このアプリの翻訳を手伝う</string>
|
||||
<string name="help_translate_this_app">翻訳を手伝う</string>
|
||||
<string name="license">ライセンス</string>
|
||||
<string name="on_google_play">Google Play</string>
|
||||
<string name="report_error">エラーを報告する</string>
|
||||
<string name="report_error">問題を報告する</string>
|
||||
<string name="reverse">逆順</string>
|
||||
<string name="and_data_usage">and data usage</string>
|
||||
<string name="and_data_usage">データの扱いなど</string>
|
||||
<string name="group_updated">グループを更新しました</string>
|
||||
<string name="editGroup">グループ編集: <xliff:g>%s</xliff:g></string>
|
||||
<string name="selectColor">色を選択</string>
|
||||
@@ -189,7 +185,7 @@
|
||||
<string name="group_name_already_in_use">このグループ名は既に使用されています</string>
|
||||
<string name="group_name_is_empty">空欄にすることはできません</string>
|
||||
<string name="shortcutSelectCard">カードを選択してください</string>
|
||||
<string name="translate_platform">on Weblate</string>
|
||||
<string name="translate_platform">Weblate</string>
|
||||
<string name="options">オプション</string>
|
||||
<string name="show_note">メモを表示</string>
|
||||
<string name="validFromDate">有効期限</string>
|
||||
@@ -207,4 +203,31 @@
|
||||
<string name="settings_portrait_orientation">縦</string>
|
||||
<string name="noGiftCardsGroup">いくつかのカードを作って、それらをこのグループにアサインします。</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">バーコードをスキャンするためには、Catimaはカメラへのアクセスを必要とします。ここをタップして権限設定の変更をお願いします。</string>
|
||||
<string name="importCards">カードをインポート</string>
|
||||
<string name="show_balance">残高を表示</string>
|
||||
<string name="show_validity">有効期限を表示</string>
|
||||
<string name="donate">寄付する</string>
|
||||
<string name="duplicateCard">複製</string>
|
||||
<string name="unarchived">アーカイブを解除しました</string>
|
||||
<string name="welcome">Catimaへようこそ</string>
|
||||
<string name="show_name_below_image_thumbnail">画像サムネイルの下に名前を表示</string>
|
||||
<string name="settings_keep_screen_on_summary">画面の自動消灯を無効化します</string>
|
||||
<string name="settings_category_title_cards">カード</string>
|
||||
<string name="settings_category_title_general">一般</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">画面のロックを無効化します</string>
|
||||
<string name="action_display_options">表示の設定</string>
|
||||
<string name="unarchive">アーカイブ解除</string>
|
||||
<string name="archive">アーカイブ</string>
|
||||
<string name="archived">アーカイブしました</string>
|
||||
<string name="show_archived_cards">アーカイブしたカードを表示</string>
|
||||
<string name="addFromPdfFile">PDFファイルを選択</string>
|
||||
<string name="addWithoutBarcode">バーコードを登録せずにカードを追加</string>
|
||||
<string name="failedToOpenUrl">ブラウザーをインストールしてください</string>
|
||||
<string name="previousCard">前へ</string>
|
||||
<string name="nextCard">次へ</string>
|
||||
<string name="settings_lock_on_opening_orientation">カードを開いた時の向きに固定</string>
|
||||
<string name="settings_oled_dark">ダークテーマで黒い背景を使用する</string>
|
||||
<string name="settings_oled_dark_summary">有機ELディスプレイでの電池の使用量を削減します</string>
|
||||
<string name="action_more_options">オプション</string>
|
||||
<string name="add_a_card_in_a_different_way">別の方法でカードを追加</string>
|
||||
</resources>
|
||||
@@ -17,4 +17,35 @@
|
||||
</plurals>
|
||||
<string name="note">ಸೂಚನೆ</string>
|
||||
<string name="action_add">ಸೇರಿಸಿ</string>
|
||||
<string name="addFromImage">ಗ್ಯಾಲರಿಯಿಂದ ಚಿತ್ರವನ್ನು ಆಯ್ಕೆಮಾಡಿ</string>
|
||||
<string name="balance">ಸಮತೋಲನ</string>
|
||||
<string name="balanceParsingFailed">ಅಮಾನ್ಯ ಬ್ಯಾಲೆನ್ಸ್</string>
|
||||
<string name="chooseImportType">ನಿಂದ ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಿ</string>
|
||||
<string name="currency">ಕರೆನ್ಸಿ</string>
|
||||
<string name="action_display_options">ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು</string>
|
||||
<string name="add_manually_warning_title">ಸ್ಕ್ಯಾನಿಂಗ್ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ</string>
|
||||
<string name="cameraPermissionDeniedTitle">ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</string>
|
||||
<string name="addManually">ಬಾರ್ಕೋಡ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಮೂದಿಸಿ</string>
|
||||
<string name="card">ಕಾರ್ಡ್</string>
|
||||
<string name="chooseExpiryDate">ಮುಕ್ತಾಯ ದಿನಾಂಕವನ್ನು ಆರಿಸಿ</string>
|
||||
<string name="barcodeId">ಬಾರ್ಕೋಡ್ ಮೌಲ್ಯ</string>
|
||||
<string name="backImageDescription">ಹಿಂದಿನ ಚಿತ್ರ</string>
|
||||
<string name="credits">ಸಾಲಗಳು</string>
|
||||
<string name="and_data_usage">ಮತ್ತು ಡೇಟಾ ಬಳಕೆ</string>
|
||||
<string name="anyDate">ಯಾವುದೇ ದಿನಾಂಕ</string>
|
||||
<string name="card_id_must_not_be_empty">ಕಾರ್ಡ್ ಐಡಿ ಖಾಲಿಯಾಗಿರಬಾರದು</string>
|
||||
<string name="donate">ದಾನ ಮಾಡಿ</string>
|
||||
<string name="action_more_options">ಹೆಚ್ಚಿನ ಆಯ್ಕೆಗಳು</string>
|
||||
<string name="add_a_card_in_a_different_way">ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಡ್ ಸೇರಿಸಿ</string>
|
||||
<string name="barcodeLongPressMessage">ಗ್ಯಾಲರಿ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಚಿತ್ರಗಳನ್ನು ಮಾತ್ರ ತೆರೆಯಬಹುದು</string>
|
||||
<string name="all">ಎಲ್ಲವೂ</string>
|
||||
<string name="chooseValidFromDate">ದಿನಾಂಕದಿಂದ ಮಾನ್ಯವಾಗಿ ಆಯ್ಕೆಮಾಡಿ</string>
|
||||
<string name="delete">ಅಳಿಸಿ</string>
|
||||
<string name="cardShortcut">ಕಾರ್ಡ್ ಶಾರ್ಟ್ಕಟ್</string>
|
||||
<string name="addCardTitle">ಕಾರ್ಡ್ ಸೇರಿಸಿ</string>
|
||||
<string name="about">ಸುಮಾರು</string>
|
||||
<string name="cameraPermissionRequired">ಈ ಕ್ರಿಯೆಗೆ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿ ಅಗತ್ಯವಿದೆ…</string>
|
||||
<string name="amountParsingFailed">ಅಮಾನ್ಯ ಮೊತ್ತ</string>
|
||||
<string name="accept">ಸ್ವೀಕರಿಸಿ</string>
|
||||
<string name="confirm">ದೃಢೀಕರಿಸಿ</string>
|
||||
</resources>
|
||||
@@ -223,9 +223,6 @@
|
||||
<string name="noGroupCards">이 그룹은 비어 있습니다</string>
|
||||
<string name="app_loyalty_card_keychain">로열티 카드 키체인</string>
|
||||
<string name="privacy_policy">개인 정보 정책</string>
|
||||
<string name="privacy_policy_popup_text">개인 정보 보호 정책 공지(일부 앱 스토어에서 필요):
|
||||
\n
|
||||
\n아무런 데이터도 수집하지 않습니다. 우리 앱은 자유 소프트웨어이기 때문에 누구나 이를 확인할 수 있습니다.</string>
|
||||
<string name="importCatima">Catima에서 가져오기</string>
|
||||
<string name="importCatimaMessage">가져올 Catima에서 <i>catima.zip</i> 내보내기를 선택합니다.
|
||||
\n먼저 내보내기를 눌러 다른 Catima 앱의 가져오기/내보내기 메뉴에서 생성합니다.</string>
|
||||
@@ -242,13 +239,9 @@
|
||||
<string name="importVoucherVaultMessage">가져올 Voucher Vault에서 <i>vouchervault.json</i> 내보내기를 선택합니다.
|
||||
\n먼저 바우처 금고에서 내보내기를 눌러 생성하세요.</string>
|
||||
<string name="sameAsCardId">아이디와 동일</string>
|
||||
<string name="settings_grey_theme">회색</string>
|
||||
<string name="settings_sky_blue_theme">하늘색</string>
|
||||
<string name="settings_green_theme">초록색</string>
|
||||
<string name="settings_brown_theme">갈색</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="other">보관소 보기 (<xliff:g>%1$d</xliff:g> 카)</item>
|
||||
</plurals>
|
||||
<string name="previousCard">이전의</string>
|
||||
<string name="nextCard">다음</string>
|
||||
<string name="failedToOpenUrl">먼저 웹 브라우저를 설치하십시오</string>
|
||||
@@ -278,4 +271,19 @@
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="add_manually_warning_title">스캔을 권장합니다</string>
|
||||
<string name="settings_follow_sensor_orientation">항상 회전 (시스템 설정 무시)</string>
|
||||
<string name="continue_">계속</string>
|
||||
<string name="addFromPdfFile">PDF 파일 선택</string>
|
||||
<string name="errorReadingFile">파일을 읽을 수 없습니다</string>
|
||||
<string name="failedLaunchingFileManager">지원되는 파일 관리자를 찾을 수 없습니다</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">검색된 바코드 중 어떤 바코드를 사용하시겠습니까?</string>
|
||||
<string name="pageWithNumber">페이지 <xliff:g>%d</xliff:g></string>
|
||||
<string name="spend">보내기</string>
|
||||
<string name="receive">받기</string>
|
||||
<string name="amountParsingFailed">잘못된 금액</string>
|
||||
<string name="add_manually_warning_message">일부 매장의 경우 바코드 값이 카드에 적힌 숫자와 다릅니다. 이 때문에 수동으로 바코드를 입력하는 것이 항상 작동하지 않을 수 있습니다. 대신 카메라로 바코드를 스캔하는 것이 좋습니다. 계속하시겠습니까?</string>
|
||||
<string name="noCameraFoundGuideText">디바이스에서 카메라를 찾을 수 없습니다. 카메라가 있는 경우 디바이스를 재시작하거나 추가 옵션 버튼을 눌러 다른 방법으로 바코드를 추가하십시오.</string>
|
||||
<string name="importCancelled">가져오기 취소됨</string>
|
||||
<string name="exportCancelled">내보내기 취소됨</string>
|
||||
<string name="useFrontImage">전면 이미지 사용</string>
|
||||
<string name="useBackImage">후면 이미지 사용</string>
|
||||
</resources>
|
||||
@@ -75,9 +75,6 @@
|
||||
\nSukurkite ją iš kitos Catima programos importavimo / eksportavimo meniu, pirmiausia ten paspausdami Eksportuoti.</string>
|
||||
<string name="importCatima">Importuoti iš Catima</string>
|
||||
<string name="accept">Priimti</string>
|
||||
<string name="privacy_policy_popup_text">Privatumo politikos pranešimas (kurio reikalaujama kai kuriose programėlių parduotuvėse):
|
||||
\n
|
||||
\nJOKIE DUOMENYS NĖRA RENKAMI, o tai gali patvirtinti bet kas, nes mūsų programėlė yra laisvoji programinė įranga.</string>
|
||||
<string name="privacy_policy">Privatumo politika</string>
|
||||
<string name="chooseImportType">Importuoti duomenis iš</string>
|
||||
<string name="points">Taškai</string>
|
||||
@@ -162,7 +159,6 @@
|
||||
<string name="settings_system_locale">Sistemos</string>
|
||||
<string name="settings_locale">Kalba</string>
|
||||
<string name="settings_brown_theme">Ruda</string>
|
||||
<string name="settings_grey_theme">Pilka</string>
|
||||
<string name="settings_green_theme">Žalia</string>
|
||||
<string name="settings_sky_blue_theme">Dangaus mėlynumo</string>
|
||||
<string name="settings_blue_theme">Mėlyna</string>
|
||||
@@ -204,11 +200,6 @@
|
||||
<string name="failedLaunchingPhotoPicker">Nepavyko rasti palaikomos galerijos programėlės</string>
|
||||
<string name="previousCard">Ankstesnė</string>
|
||||
<string name="nextCard">Kita</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Peržiūrėti archyvą (<xliff:g>%1$d</xliff:g> kortelė)</item>
|
||||
<item quantity="few">Peržiūrėti archyvą (<xliff:g>%1$d</xliff:g> kortelės)</item>
|
||||
<item quantity="other">Peržiūrėti archyvą (<xliff:g>%1$d</xliff:g> kortelių)</item>
|
||||
</plurals>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kortelė ( archyvuota)<xliff:g id="archivedCount">%2$d</xliff:g></item>
|
||||
<item quantity="few"><xliff:g>%1$d</xliff:g> kortelės ( archyvuotos)<xliff:g id="archivedCount">%2$d</xliff:g></item>
|
||||
@@ -227,7 +218,7 @@
|
||||
<string name="unarchive">Išarchyvuoti</string>
|
||||
<string name="archived">Kortelė archyvuota</string>
|
||||
<string name="unarchived">Kortelė išarchyvuota</string>
|
||||
<string name="updateBalanceTitle">Kiek išleidote?</string>
|
||||
<string name="updateBalanceTitle">Kiek išleidote arba gavote?</string>
|
||||
<string name="updateBalanceHint">Įveskite sumą</string>
|
||||
<string name="currentBalanceSentence">Dabartinis likutis: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Naujas balansas: <xliff:g>%s</xliff:g></string>
|
||||
@@ -261,4 +252,50 @@
|
||||
<string name="switchToFrontImage">Perjungti į priekinį vaizdą</string>
|
||||
<string name="openFrontImageInGalleryApp">Atidarykite priekinį vaizdą galerijos programėlėje</string>
|
||||
<string name="donate">Aukoti</string>
|
||||
<string name="settings_follow_sensor_orientation">Visada sukti (nekreipiant dėmesio į sistemos nustatymus)</string>
|
||||
<string name="settings_keep_screen_on_summary">Išjungti ekrano užmigdymą kol peržiūrite kortelę</string>
|
||||
<string name="manually_enter_barcode_instructions">Įveskite ID numerį arba tekstą ant jūsų kortelės ir paspauskite brūkšninį kodą, kuris atrodo kaip ant jūsų kortelės.</string>
|
||||
<string name="addWithoutBarcode">Pridėti kortelę be brūkšninio kodo</string>
|
||||
<string name="settings_oled_dark_summary">Umažina baterijos naudojimą OLED ekranuose</string>
|
||||
<string name="show_note">Rodyti nota</string>
|
||||
<string name="show_balance">Parodyti balansą</string>
|
||||
<string name="view_online">Rodyti internete</string>
|
||||
<string name="action_more_options">Daugiau galimybių</string>
|
||||
<string name="enter_card_id">Įveskite ID numerį arba tekstą ant jūsų kortelės</string>
|
||||
<string name="noCameraFoundGuideText">Atrodo, kad jūsų įrenginys neturi kameros. Jei jis turi kamerą, pabandykite perkrauti įrenginį. Naudokite žemiau esantį „Daugiau galimybių“ mygtuką, kad pridėtumėte brūkšninį kodą kitu būdu.</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Būtina, kad veiktų kai kurie skeneriai</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Išjungti ekrano užraktą kol peržiūrite kortelę</string>
|
||||
<string name="settings_allow_content_provider_read_title">Leisti kitoms programoms išrinkti mano informaciją</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Programos vis tiek turės prašyti leidimo, kad gautu informaciją</string>
|
||||
<string name="show_name_below_image_thumbnail">Rodyti pavadinimą po piktogramą</string>
|
||||
<string name="icon_header_click_text">Ilgai paspauskite, kad pakeisti piktogramą</string>
|
||||
<string name="add_manually_warning_title">Rekomenduojama skenuoti</string>
|
||||
<string name="continue_">Tęsti</string>
|
||||
<string name="add_manually_warning_message">Kai kuriuose parduotuvėse brūkšninio kodo vertė gali skirtis nuo kortelėje nurodyto numerio. Dėlto įvedus brūkšninį kodą rankiniu būdu gali nepavykti. Vietoj to, labai rekomenduojama nuskaityti brūkšninį kodą naudojant kamerą. Ar vis tiek norite tęsti?</string>
|
||||
<string name="permissionReadCardsLabel">Skenuoti Catima Korteles</string>
|
||||
<string name="settings_category_title_cards">Kortelės</string>
|
||||
<string name="settings_category_title_general">Bendri</string>
|
||||
<string name="settings_category_title_privacy">Privatumąi</string>
|
||||
<string name="importCancelled">Importas atšauktas</string>
|
||||
<string name="exportCancelled">Eksportas atšauktas</string>
|
||||
<string name="addFromPdfFile">isrinkti PDF failą</string>
|
||||
<string name="errorReadingFile">Nepavyko analizuoti failo</string>
|
||||
<string name="failedLaunchingFileManager">Nepavyko rasti suderinamo failų tvarkytuve</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Kurį iš rastų brūkšninių kodų norite naudoti?</string>
|
||||
<string name="pageWithNumber"><xliff:g>%d</xliff:g> Puslapis</string>
|
||||
<string name="spend">Išleisti</string>
|
||||
<string name="receive">Gauti</string>
|
||||
<string name="amountParsingFailed">Negaliojanti suma</string>
|
||||
<string name="balanceParsingFailed">Negaliojantis balansas</string>
|
||||
<string name="permissionReadCardsDescription">skaityti savo Catima korteles ir visą informaciją apie jas, įskaitant pastabas ir paveikslėlius</string>
|
||||
<string name="show_validity">Parodyti galiojimą</string>
|
||||
<string name="action_display_options">Rodymo parinktys</string>
|
||||
<string name="show_archived_cards">Rodyti archyvuotus korteles</string>
|
||||
<string name="card_id_must_not_be_empty">Kortelės ID negali būti tuščia</string>
|
||||
<string name="add_a_card_in_a_different_way">Pridėti kortelę kitu būdu</string>
|
||||
<string name="field_must_not_be_empty">Laukelis negali būti tuščias</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="app_copyright_short">Autorių teisės © Sylvia van Os ir Pagalbininkai</string>
|
||||
<string name="useFrontImage">Naudoti priekinį vaizdą</string>
|
||||
<string name="useBackImage">Naudoti galinį vaizdą</string>
|
||||
</resources>
|
||||
@@ -115,9 +115,6 @@
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> punkti</item>
|
||||
</plurals>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy_popup_text">Paziņojums par privātuma politiku (nepieciešams dažiem lietotņu veikaliem):
|
||||
\n
|
||||
\nNEKĀDI DATI NETIEK VĀKTI, par ko var pārliecināties ikkatrs, jo mūsu lietotne ir brīva, atvērta koda programmatūra.</string>
|
||||
<string name="importCatimaMessage">Izvēlieties jūstu <i>catima.zip</i> failu importam.
|
||||
\nFailu var izveidot eksportējot datus no Catima lietotnes citā ierīce, sadaļā \"Imports/Eksports\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Importam izvēlieties Jūsu <i>LoyaltyCardKeychain.csv</i> eksporta failu no Loyalty Card Keychain.
|
||||
@@ -212,7 +209,6 @@
|
||||
<string name="settings_theme_color">Tēmas krāsa</string>
|
||||
<string name="settings_violet_theme">Violeta</string>
|
||||
<string name="settings_blue_theme">Zila</string>
|
||||
<string name="settings_grey_theme">Pelēka</string>
|
||||
<string name="sort">Kārtot</string>
|
||||
<string name="showMoreInfo">Rādīt informāciju</string>
|
||||
<string name="sort_by_most_recently_used">Nesen lietotās</string>
|
||||
@@ -222,11 +218,6 @@
|
||||
<string name="failedLaunchingPhotoPicker">Nevarēja atrast atbalstītu galerijas lietotni</string>
|
||||
<string name="previousCard">Iepriekšējā</string>
|
||||
<string name="nextCard">Nākamā</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="zero">Skatīt arhivētu (<xliff:g>%1$d</xliff:g> karti)</item>
|
||||
<item quantity="one">Skatīt arhivētu (<xliff:g>%1$d</xliff:g> karti)</item>
|
||||
<item quantity="other">Skatīt arhivētas (<xliff:g>%1$d</xliff:g> kartes)</item>
|
||||
</plurals>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="zero"><xliff:g>%1$d</xliff:g> card (<xliff:g id="archivedCount">%2$d</xliff:g> arhivēta)</item>
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> card (<xliff:g id="archivedCount">%2$d</xliff:g> arhivēta)</item>
|
||||
|
||||
@@ -94,9 +94,6 @@
|
||||
<string name="app_loyalty_card_keychain">Kundekortknippe</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Forhindre skjermlås</string>
|
||||
<string name="settings_keep_screen_on">Behold skjerm påslått</string>
|
||||
<string name="privacy_policy_popup_text">Personvernspraksis-notis (påkrevd av noen programbutikker):
|
||||
\n
|
||||
\nINGEN DATA SAMLES INN I DET HELE TATT, noe alle kan bekreftes siden programmet vårt er fri programvare.</string>
|
||||
<string name="accept">Godta</string>
|
||||
<string name="privacy_policy">Personvernspraksis</string>
|
||||
<string name="importFidme">Importer fra FidMe</string>
|
||||
@@ -159,7 +156,6 @@
|
||||
<string name="settings_magenta_theme">Magentarød</string>
|
||||
<string name="app_contributors">Muliggjort av: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="settings_brown_theme">Brun</string>
|
||||
<string name="settings_grey_theme">Grå</string>
|
||||
<string name="settings_green_theme">Grønn</string>
|
||||
<string name="settings_sky_blue_theme">Himmelblå</string>
|
||||
<string name="settings_blue_theme">Blå</string>
|
||||
@@ -226,10 +222,6 @@
|
||||
</plurals>
|
||||
<string name="failedToOpenUrl">Installer en nettleser først</string>
|
||||
<string name="welcome">Velkommen til Catima</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Vis arkiv (<xliff:g>%1$d</xliff:g> kort)</item>
|
||||
<item quantity="other">Vis arkiv (<xliff:g>%1$d</xliff:g> kort)</item>
|
||||
</plurals>
|
||||
<string name="failedToRetrieveImageFile">Kunne ikke hente bildefil</string>
|
||||
<string name="barcodeLongPressMessage">Kun bilder kan åpnes i galleriprogrammet</string>
|
||||
<string name="cameraPermissionDeniedTitle">Fikk ikke tilgang til kameraet</string>
|
||||
@@ -260,7 +252,7 @@
|
||||
<string name="setBarcodeHeight">Sett strekkodehøyde</string>
|
||||
<string name="donate">Doner</string>
|
||||
<string name="permissionReadCardsLabel">Les Catima-kort</string>
|
||||
<string name="permissionReadCardsDescription">Les kortene dine og detaljene om dem, inkludert notater og bilder</string>
|
||||
<string name="permissionReadCardsDescription">Les Catima-kortene dine og detaljene om dem, inkludert notater og bilder</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Programmer vil fremdeles måtte forespørre tilgang for å få det innvilget</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Nødvendig for noen skannere</string>
|
||||
<string name="settings_keep_screen_on_summary">Skrur av skjermtidsavbrudd under visning av et kort</string>
|
||||
@@ -283,4 +275,21 @@
|
||||
<string name="manually_enter_barcode_instructions">Skriv inn ID-nummer eller tekst fra kortet og trykk på strekkoden som ser ut til å ligne.</string>
|
||||
<string name="enter_card_id">Skriv inn ID-nummeret eller teksten på kortet</string>
|
||||
<string name="field_must_not_be_empty">Feltet må fylles ut</string>
|
||||
<string name="add_manually_warning_title">Skanning anbefales</string>
|
||||
<string name="continue_">Fortsett</string>
|
||||
<string name="amountParsingFailed">Ugyldig beløp</string>
|
||||
<string name="spend">Utgifter</string>
|
||||
<string name="receive">Inntekt</string>
|
||||
<string name="settings_follow_sensor_orientation">Alltid roter (ignorerer systeminnstilling)</string>
|
||||
<string name="add_manually_warning_message">I noen butikker er strekkoden forskjellig fra nummeret på kortet. Som følge av dette kan det hende at å skrive inn strekkoden ikke virker. Det anbefales å skanne strekkoden med kameraet istedenfor. Fortsett?</string>
|
||||
<string name="pageWithNumber">Side <xliff:g>%d</xliff:g></string>
|
||||
<string name="addFromPdfFile">Velg en PDF-fil</string>
|
||||
<string name="errorReadingFile">Kunne ikke lese filen</string>
|
||||
<string name="failedLaunchingFileManager">Fant ikke støttet filbehandler</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Hvilken av de oppdagede strekkodene vil du bruke?</string>
|
||||
<string name="noCameraFoundGuideText">Finner ikke kamera på enheten din. Hvis dette ikke stemmer kan du prøve en omstart av den. Ellers kan du legge til strekkoder med «Mer»-knappen nedenfor.</string>
|
||||
<string name="importCancelled">Import avbrutt</string>
|
||||
<string name="exportCancelled">Eksport avbrutt</string>
|
||||
<string name="useFrontImage">Bruk frontbilde</string>
|
||||
<string name="useBackImage">Bruk baksidebilde</string>
|
||||
</resources>
|
||||
@@ -52,7 +52,7 @@
|
||||
<string name="settings_system_theme">Systeemthema</string>
|
||||
<string name="settings_light_theme">Licht thema</string>
|
||||
<string name="settings_dark_theme">Donker thema</string>
|
||||
<string name="settings_display_barcode_max_brightness">Scherm helderder maken bij tonen van barcode</string>
|
||||
<string name="settings_display_barcode_max_brightness">Scherm oplichten bij tonen van barcode</string>
|
||||
<string name="intent_import_card_from_url_share_text">Ik wil een klantenkaart met je delen</string>
|
||||
<string name="all">Alles</string>
|
||||
<string name="importSuccessful">De gegevens zijn geïmporteerd</string>
|
||||
@@ -94,9 +94,6 @@
|
||||
<string name="app_loyalty_card_keychain">Klantenkaartkluis</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Schermvergrendeling uitschakelen</string>
|
||||
<string name="settings_keep_screen_on">Scherm niet uitschakelen</string>
|
||||
<string name="privacy_policy_popup_text">Privacybeleid (vereist door sommige appwinkels):
|
||||
\n
|
||||
\nER WORDEN GEEN GEGEVENS VERZAMELD. Bovendien is onze app open source, zodat een ieder met eigen ogen kan zien wat de app wel of niet doet.</string>
|
||||
<string name="privacy_policy">Privacybeleid</string>
|
||||
<string name="accept">Accepteren</string>
|
||||
<string name="importVoucherVaultMessage">Kies het te importeren <i>vouchervault.json</i>-exportbestand.
|
||||
@@ -158,7 +155,6 @@
|
||||
<string name="settings_system_locale">Systeemtaal</string>
|
||||
<string name="settings_locale">Taal</string>
|
||||
<string name="settings_brown_theme">Bruin</string>
|
||||
<string name="settings_grey_theme">Grijs</string>
|
||||
<string name="settings_green_theme">Groen</string>
|
||||
<string name="settings_sky_blue_theme">Hemelsblauw</string>
|
||||
<string name="settings_blue_theme">Blauw</string>
|
||||
@@ -226,10 +222,6 @@
|
||||
<string name="nextCard">Volgende</string>
|
||||
<string name="welcome">Welkom bij Catima</string>
|
||||
<string name="failedToOpenUrl">Installeer een webbrowser</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Archief bekijken (<xliff:g>%1$d</xliff:g> kaart)</item>
|
||||
<item quantity="other">Archief bekijken (<xliff:g>%1$d</xliff:g> kaarten)</item>
|
||||
</plurals>
|
||||
<string name="failedToRetrieveImageFile">De afbeelding kan niet worden opgehaald</string>
|
||||
<string name="barcodeLongPressMessage">Alleen afbeeldingen kunnen worden geopend in de galerij-app</string>
|
||||
<string name="cameraPermissionDeniedTitle">Geen cameratoegang</string>
|
||||
@@ -268,7 +260,7 @@
|
||||
<string name="settings_display_barcode_max_brightness_summary">Benodigd voor de werking van sommige scanners</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Schakelt schermvergrendeling uit tijdens het bekijken van een kaart</string>
|
||||
<string name="settings_oled_dark_summary">Verlaagt het accuverbruik op oledschermen</string>
|
||||
<string name="settings_category_title_cards">Kaarten</string>
|
||||
<string name="settings_category_title_cards">Kaartenoverzicht</string>
|
||||
<string name="settings_category_title_general">Algemeen</string>
|
||||
<string name="app_copyright_short">Auteursrecht © Sylvia van Os en bijdragers</string>
|
||||
<string name="action_display_options">Weergave-instellingen</string>
|
||||
@@ -290,4 +282,16 @@
|
||||
<string name="spend">Geef uit</string>
|
||||
<string name="receive">Ontvang</string>
|
||||
<string name="amountParsingFailed">Ongeldig bedrag</string>
|
||||
<string name="addFromPdfFile">Kies een pdf-bestand</string>
|
||||
<string name="errorReadingFile">Lezen bestand mislukt</string>
|
||||
<string name="failedLaunchingFileManager">Geen ondersteunde bestandsbeheerder aangetroffen</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Welke van de gevonden barcodes wil je gebruiken?</string>
|
||||
<string name="pageWithNumber">Pagina <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Uw apparaat lijkt niet over een camera te beschikken. Als het dat wel doet, probeer uw apparaat dan opnieuw op te starten. Anders gebruikt u de knop \"Meer opties\" beneden om handmatig een streepjescode in te voeren.</string>
|
||||
<string name="importCancelled">Importeren geannuleerd</string>
|
||||
<string name="exportCancelled">Exporteren geannuleerd</string>
|
||||
<string name="useFrontImage">Gebruik voorzijde van kaart</string>
|
||||
<string name="useBackImage">Gebruik achterzijde van kaart</string>
|
||||
<string name="settings_use_volume_keys_navigation">Verwissel kaart met de volume knoppen</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Gebruik de volume knoppen om te wisselen van getoonde kaart</string>
|
||||
</resources>
|
||||
@@ -50,7 +50,7 @@
|
||||
<string name="settings_system_theme">Systemowy</string>
|
||||
<string name="settings_light_theme">Jasny</string>
|
||||
<string name="settings_dark_theme">Ciemny</string>
|
||||
<string name="settings_display_barcode_max_brightness">Rozjaśnij widok kodu kreskowego</string>
|
||||
<string name="settings_display_barcode_max_brightness">Rozjaśnij ekran</string>
|
||||
<string name="intent_import_card_from_url_share_text">Chcę udostępnić Ci kartę lojalnościową</string>
|
||||
<string name="deleteConfirmationGroup">Usunąć grupę\?</string>
|
||||
<string name="all">Wszystko</string>
|
||||
@@ -71,7 +71,6 @@
|
||||
<string name="deleteConfirmation">Usunąć tę kartę na stałe\?</string>
|
||||
<string name="app_contributors">Możliwe dzięki: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="settings_brown_theme">Brązowy</string>
|
||||
<string name="settings_grey_theme">Szary</string>
|
||||
<string name="settings_green_theme">Zielony</string>
|
||||
<string name="settings_sky_blue_theme">Błękitny</string>
|
||||
<string name="settings_blue_theme">Niebieski</string>
|
||||
@@ -119,9 +118,6 @@
|
||||
\nUtwórz go z menu Importuj/Eksportuj innej aplikacji Catima, wpierw klikając tam Eksportuj.</string>
|
||||
<string name="importCatima">Importuj z Catima</string>
|
||||
<string name="accept">Zaakceptuj</string>
|
||||
<string name="privacy_policy_popup_text">Informacja o polityce prywatności (wymagana przez niektóre sklepy z aplikacjami):
|
||||
\n
|
||||
\nŻADNE DANE NIE SĄ ZBIERANE, co może potwierdzić każdy, gdyż nasza aplikacja jest wolnym oprogramowaniem.</string>
|
||||
<string name="privacy_policy">Polityka prywatności</string>
|
||||
<string name="app_loyalty_card_keychain">Brelok dla twoich kart lojalnościowych</string>
|
||||
<string name="chooseImportType">Importuj dane z</string>
|
||||
@@ -216,7 +212,7 @@
|
||||
</plurals>
|
||||
<string name="include_if_asking_support">Jeśli chcesz poprosić o pomoc, podaj następujące informacje:</string>
|
||||
<string name="settings_oled_dark">Całkowicie czarne tło dla ciemnego motywu</string>
|
||||
<string name="settings_card_orientation">Orientacja kodu kreskowego</string>
|
||||
<string name="settings_card_orientation">Orientacja ekranu</string>
|
||||
<string name="settings_follow_system_orientation">Śledź orientację systemową</string>
|
||||
<string name="duplicateCard">Duplikuj</string>
|
||||
<string name="starred">Oznaczone gwiazdką</string>
|
||||
@@ -240,15 +236,9 @@
|
||||
<string name="barcodeLongPressMessage">W galerii możesz otworzyć tylko obrazy</string>
|
||||
<string name="failedToOpenUrl">Najpierw zainstaluj przeglądarkę</string>
|
||||
<string name="welcome">Witaj w Catima</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Wyświetl zarchiwizowaną (<xliff:g>%1$d</xliff:g> kartę)</item>
|
||||
<item quantity="few">Wyświetl zarchiwizowane (<xliff:g>%1$d</xliff:g> karty)</item>
|
||||
<item quantity="many">Wyświetl zarchiwizowane (<xliff:g>%1$d</xliff:g> karty)</item>
|
||||
<item quantity="other">Wyświetl zarchiwizowane (<xliff:g>%1$d</xliff:g> karty)</item>
|
||||
</plurals>
|
||||
<string name="currentBalanceSentence">Bieżące saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">By zeskanować kody kreskowe, Catima musi mieć dostęp do twojej kamery. Dotknij tutaj by zmienić swoje ustawienia dostępu.</string>
|
||||
<string name="updateBalanceTitle">Ile wydałeś?</string>
|
||||
<string name="updateBalanceTitle">Ile wydałeś lub otrzymałeś?</string>
|
||||
<string name="updateBalanceHint">Wpisz sumę</string>
|
||||
<string name="updateBalance">Zaktualizuj balans</string>
|
||||
<string name="cameraPermissionDeniedTitle">Odmówiono dostępu do kamery</string>
|
||||
@@ -281,7 +271,7 @@
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Wyłącza blokadę ekranu kiedy wyświetlana jest karta</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Aplikacje będą wymagały pozwolenia aby otrzymać dostęp do danych</string>
|
||||
<string name="settings_oled_dark_summary">Zmniejsza zużycie baterii na wyświetlaczach OLED</string>
|
||||
<string name="settings_category_title_cards">Karty</string>
|
||||
<string name="settings_category_title_cards">Widok karty</string>
|
||||
<string name="settings_category_title_general">Ogólne</string>
|
||||
<string name="settings_category_title_privacy">Prywatność</string>
|
||||
<string name="app_copyright_short">Wszelkie prawa zastrzeżone © Sylvia van Os i współtwórcy</string>
|
||||
@@ -298,4 +288,22 @@
|
||||
<string name="field_must_not_be_empty">Pole nie może być puste</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Zawsze obracaj (ignoruje ustawienia systemowe)</string>
|
||||
<string name="continue_">Kontynuuj</string>
|
||||
<string name="addFromPdfFile">Wybierz plik PDF</string>
|
||||
<string name="errorReadingFile">Nie można odczytać pliku</string>
|
||||
<string name="pageWithNumber">Strona <xliff:g>%d</xliff:g></string>
|
||||
<string name="spend">Wydaj</string>
|
||||
<string name="receive">Otrzymaj</string>
|
||||
<string name="amountParsingFailed">Nieprawidłowa ilość</string>
|
||||
<string name="add_manually_warning_title">Skanowanie jest zalecane</string>
|
||||
<string name="failedLaunchingFileManager">Nie można znaleźć obsługiwanego menedżera plików</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Którego ze znalezionych kodów kreskowych chciałbyś użyć?</string>
|
||||
<string name="add_manually_warning_message">W przypadku niektórych sklepów wartość kodu kreskowego różni się od liczby zapisanej na karcie. Z tego powodu ręczne wprowadzanie kodu kreskowego może nie zawsze działać. Zdecydowanie zaleca się zeskanowanie kodu kreskowego za pomocą aparatu. Czy nadal chcesz kontynuować?</string>
|
||||
<string name="noCameraFoundGuideText">Nie wykryto kamery. Jeśli twoje urządzenie posiada kamerę, spróbuj uruchomić je ponownie. W innym wypadku wybierz Więcej opcji i dodaj kartę w inny sposób.</string>
|
||||
<string name="importCancelled">Import anulowany</string>
|
||||
<string name="exportCancelled">Eksport anulowany</string>
|
||||
<string name="useBackImage">Użyj obrazu z tyłu</string>
|
||||
<string name="useFrontImage">Użyj obrazu z przodu</string>
|
||||
<string name="settings_use_volume_keys_navigation">Przełączaj karty przy użyciu przycisków głośności</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Użyj przycisków głośności do przełączania kart</string>
|
||||
</resources>
|
||||
303
app/src/main/res/values-pt-rBR/strings.xml
Normal file
303
app/src/main/res/values-pt-rBR/strings.xml
Normal file
@@ -0,0 +1,303 @@
|
||||
<?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="app_name">Catima</string>
|
||||
<string name="action_search">Pesquisar</string>
|
||||
<string name="action_add">Adicionar</string>
|
||||
<string name="noGiftCards">Clique no botão \"+\" para adicionar um cartão ou importar a partir do menu \"⋮\".</string>
|
||||
<string name="noGiftCardsGroup">Crie alguns cartões e, em seguida, atribua-os ao grupo aqui.</string>
|
||||
<string name="noMatchingGiftCards">Nenhum resultado. Tente alterar sua pesquisa.</string>
|
||||
<string name="storeName">Nome</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="cardId">ID do cartão</string>
|
||||
<string name="barcodeType">Tipo de código de barras</string>
|
||||
<string name="noBarcode">Nenhum código de barras</string>
|
||||
<string name="star">Adicionar aos favoritos</string>
|
||||
<string name="unstar">Remover dos favoritos</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="save">Salvar</string>
|
||||
<string name="edit">Editar</string>
|
||||
<string name="delete">Excluir</string>
|
||||
<string name="confirm">Confirmar</string>
|
||||
<string name="deleteTitle">Excluir cartão</string>
|
||||
<string name="share">Compartilhar</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportSuccessfulTitle">Exportado</string>
|
||||
<string name="importing">Importando…</string>
|
||||
<string name="exporting">Exportando…</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para ler códigos de barras, Catima precisará de acesso à sua câmera. Toque aqui para alterar suas configurações de permissão.</string>
|
||||
<string name="importOptionFilesystemTitle">Importar dos seus arquivos</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> selecionado</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> selecionados</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> selecionados</item>
|
||||
</plurals>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Excluir <xliff:g>%d</xliff:g> cartão</item>
|
||||
<item quantity="many">Excluir <xliff:g>%d</xliff:g> cartões</item>
|
||||
<item quantity="other">Excluir <xliff:g>%d</xliff:g> cartões</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">Excluir esse cartão permanentemente?</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Excluir <xliff:g>%d</xliff:g> cartão permanentemente?</item>
|
||||
<item quantity="many">Excluir <xliff:g>%d</xliff:g> cartões permanentemente?</item>
|
||||
<item quantity="other">Excluir <xliff:g>%d</xliff:g> cartões permanentemente?</item>
|
||||
</plurals>
|
||||
<string name="ok">OK</string>
|
||||
<string name="sendLabel">Enviar…</string>
|
||||
<string name="editCardTitle">Editar cartão</string>
|
||||
<string name="addCardTitle">Adicionar cartão</string>
|
||||
<string name="scanCardBarcode">Ler código de barras</string>
|
||||
<string name="cardShortcut">Atalho de cartões</string>
|
||||
<string name="noCardsMessage">Adicione um cartão primeiro</string>
|
||||
<string name="barcodeImageDescriptionWithType">Imagem <xliff:g>%s</xliff:g> do código de barras</string>
|
||||
<string name="noCardExistsError">Não foi possível encontrar esse cartão</string>
|
||||
<string name="failedParsingImportUriError">Não foi possível analisar o URI de importação</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Fazer backup de seus dados permite movê-los para outro dispositivo.</string>
|
||||
<string name="importSuccessfulTitle">Importado</string>
|
||||
<string name="importFailedTitle">Falha na importação</string>
|
||||
<string name="importFailed">Não foi possível importar</string>
|
||||
<string name="exportFailedTitle">Falha na exportação</string>
|
||||
<string name="exportFailed">Não foi possível exportar</string>
|
||||
<string name="storageReadPermissionRequired">Permissão para ler o armazenamento é necessário para esta ação…</string>
|
||||
<string name="cameraPermissionRequired">Permissão para acessar a câmera é necessária para esta ação…</string>
|
||||
<string name="permissionReadCardsLabel">Ler cartões Catima</string>
|
||||
<string name="permissionReadCardsDescription">ler seus cartões Catima e todos os seus detalhes, incluindo notas e imagens</string>
|
||||
<string name="cameraPermissionDeniedTitle">Não foi possível acessar a câmera</string>
|
||||
<string name="exportOptionExplanation">Os dados serão gravados em um local de sua escolha.</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um arquivo específico nos seus arquivos.</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> ponto</item>
|
||||
<item quantity="many"><xliff:g>%s</xliff:g> pontos</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> pontos</item>
|
||||
</plurals>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> cartão</item>
|
||||
<item quantity="many"><xliff:g>%d</xliff:g> cartões</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> cartões</item>
|
||||
</plurals>
|
||||
<string name="noCameraFoundGuideText">Seu dispositivo parece não ter uma câmera. Se tiver, tente reiniciar o dispositivo. Caso contrário, tente usar o botão \"Mais opções\" abaixo para adicionar um código de barras manualmente.</string>
|
||||
<string name="settings_follow_system_orientation">Padrão do sistema</string>
|
||||
<string name="settings_lock_on_opening_orientation">Bloquear para orientação usada ao abrir o cartão</string>
|
||||
<string name="importCatimaMessage">Selecionar arquivo <i>catima.zip</i>, exportado do Catima, para importação.
|
||||
\nPrimeiro, crie-o pelo menu Importar/Exportar em outro aplicativo Catima clicando em Exportar.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar do Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecionar arquivo <i>LoyaltyCardKeychain.csv</i>, exportado do Loyalty Card Keychain, para importação.
|
||||
\nPrimeiro, crie-o pelo menu Importar/Exportar no Loyalty Card Keychain clicando em Exportar.</string>
|
||||
<string name="setBarcodeId">Definir valor do código de barras</string>
|
||||
<string name="importStocard">Importar de Stocard</string>
|
||||
<string name="importVoucherVault">Importar de Cofre de Vouchers</string>
|
||||
<string name="barcodeId">Valor no código de barras</string>
|
||||
<string name="sameAsCardId">Igual ao ID</string>
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras não pode ser exibido. É possível que seja trazido em uma versão futura do aplicativo.</string>
|
||||
<string name="wrongValueForBarcodeType">O valor não é válido para o tipo de código de barras selecionado</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quero compartilhar alguns cartões com você</string>
|
||||
<string name="backImageDescription">Imagem traseira</string>
|
||||
<string name="frontImageDescription">Imagem frontal</string>
|
||||
<string name="setFrontImage">Definir imagem frontal</string>
|
||||
<string name="setBackImage">Definir imagem traseira</string>
|
||||
<string name="removeImage">Remover imagem</string>
|
||||
<string name="takePhoto">Tirar uma foto</string>
|
||||
<string name="updateBarcodeQuestionTitle">Atualizar valor do código de barras?</string>
|
||||
<string name="exportPasswordHint">Insira sua senha</string>
|
||||
<string name="passwordRequired">Por favor, insira a senha</string>
|
||||
<string name="exportPassword">Defina uma senha para proteger o arquivo exportado (opcional)</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="add_manually_warning_message">Em algumas lojas, o valor do código de barras é diferente do número escrito no cartão. Por esse motivo, inserir um código de barras manualmente pode nem sempre funcionar. É altamente recomendável digitalizar o código de barras com a câmera. Você ainda deseja continuar?</string>
|
||||
<string name="importOptionApplicationTitle">Usar outro aplicativo</string>
|
||||
<string name="importOptionApplicationExplanation">Use qualquer aplicativo ou o seu gerenciador de arquivos favorito para abrir um arquivo.</string>
|
||||
<string name="importOptionApplicationButton">Usar outro aplicativo</string>
|
||||
<string name="about">Sobre</string>
|
||||
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versão: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Selecionar código de barras</string>
|
||||
<string name="settings">Configurações</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os e contribuidores</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os e contribuidores</string>
|
||||
<string name="app_copyright_old">Baseado no Loyalty Card Keychain
|
||||
\ncopyright © 2016–2020 Branden Archert</string>
|
||||
<string name="importOptionFilesystemButton">A partir do Sistema de Arquivos</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Item favorito</string>
|
||||
<string name="app_libraries">Bibliotecas open source de terceiros : <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos open source de terceiros: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="updateBarcodeQuestionText">Você mudou o ID. Também quer atualizar o código de barras para usar o mesmo valor?</string>
|
||||
<string name="yes">Sim</string>
|
||||
<string name="no">Não</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar uma URL compartilhável. Por favor, reporte isto.</string>
|
||||
<string name="turn_flashlight_on">Ligar lanterna</string>
|
||||
<string name="turn_flashlight_off">Desligar lanterna</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="settings_oled_dark_summary">Reduz o uso da bateria em telas OLED</string>
|
||||
<string name="settings_system_locale">Sistema</string>
|
||||
<string name="settings_oled_dark">Preto puro como cor de fundo para o tema escuro</string>
|
||||
<string name="settings_pink_theme">Rosa</string>
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
<string name="settings_sky_blue_theme">Azul celeste</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="settings_brown_theme">Marrom</string>
|
||||
<string name="app_contributors">Só foi possível graças a: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">Ordenar</string>
|
||||
<string name="showMoreInfo">Mostrar informações</string>
|
||||
<string name="updateBalance">Atualizar saldo</string>
|
||||
<string name="failedToRetrieveImageFile">Falha ao recuperar o arquivo de imagem</string>
|
||||
<string name="barcodeLongPressMessage">Apenas imagens podem ser abertas na galeria</string>
|
||||
<string name="sort_by_most_recently_used">Usado mais recentemente</string>
|
||||
<string name="reverse">...em ordem inversa</string>
|
||||
<string name="sort_by">Ordenar por</string>
|
||||
<string name="version_history">Histórico de Atualização</string>
|
||||
<string name="and_data_usage">e uso de dados</string>
|
||||
<string name="rate_this_app">Avalie este aplicativo</string>
|
||||
<string name="on_google_play">na Google Play</string>
|
||||
<string name="report_error">Informar erro</string>
|
||||
<string name="setIcon">Definir miniatura</string>
|
||||
<string name="options">Opções</string>
|
||||
<string name="starred">Favoritos</string>
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archived">Cartão arquivado</string>
|
||||
<string name="unarchived">Cartão desarquivado</string>
|
||||
<string name="failedLaunchingPhotoPicker">Não foi possível encontrar um aplicativo de galeria compatível</string>
|
||||
<string name="failedToOpenUrl">Instale um navegador primeiro</string>
|
||||
<string name="welcome">Bem-vindo(a) ao Catima</string>
|
||||
<string name="importCards">Importar cartões</string>
|
||||
<string name="height">Altura:</string>
|
||||
<string name="switchToBarcode">Mudar para código de barras</string>
|
||||
<string name="switchToFrontImage">Mudar para imagem frontal</string>
|
||||
<string name="switchToBackImage">Mudar para imagem traseira</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imagem frontal no aplicativo da galeria</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imagem traseira no aplicativo da galeria</string>
|
||||
<string name="setBarcodeHeight">Definir altura do código de barras</string>
|
||||
<string name="donate">Doar</string>
|
||||
<string name="icon_header_click_text">Pressione e segure para editar a miniatura</string>
|
||||
<string name="show_name_below_image_thumbnail">Mostrar nome abaixo da miniatura</string>
|
||||
<string name="show_note">Mostrar nota</string>
|
||||
<string name="show_balance">Mostrar saldo</string>
|
||||
<string name="show_validity">Mostrar validade</string>
|
||||
<string name="action_more_options">Mais opções</string>
|
||||
<string name="addWithoutBarcode">Adicionar cartão sem código de barras</string>
|
||||
<string name="card_id_must_not_be_empty">O ID do cartão não pode estar vazio</string>
|
||||
<string name="add_a_card_in_a_different_way">Adicionar cartão de outra forma</string>
|
||||
<string name="field_must_not_be_empty">O campo não pode estar vazio</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Receber</string>
|
||||
<string name="amountParsingFailed">Quantidade inválida</string>
|
||||
<string name="addFromPdfFile">Selecionar arquivo PDF</string>
|
||||
<string name="settings_theme_color">Cor do tema</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="selectColor">Selecionar cor</string>
|
||||
<string name="settings_violet_theme">Violeta</string>
|
||||
<string name="sort_by_name">Nome</string>
|
||||
<string name="sort_by_expiry">Expiração</string>
|
||||
<string name="credits">Créditos</string>
|
||||
<string name="license">Licença</string>
|
||||
<string name="source_repository">Repositório de Origem</string>
|
||||
<string name="on_github">no GitHub</string>
|
||||
<string name="translate_platform">no Weblate</string>
|
||||
<string name="help_translate_this_app">Ajude a traduzir este aplicativo</string>
|
||||
<string name="shortcutSelectCard">Selecione um cartão</string>
|
||||
<string name="include_if_asking_support">Se você gostaria de solicitar suporte, inclua as seguintes informações:</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> cartão (<xliff:g id="archivedCount">%2$d</xliff:g> arquivado)</item>
|
||||
<item quantity="many"><xliff:g>%1$d</xliff:g> cartões (<xliff:g id="archivedCount">%2$d</xliff:g> arquivados)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> cartões (<xliff:g id="archivedCount">%2$d</xliff:g> arquivados)</item>
|
||||
</plurals>
|
||||
<string name="archive">Arquivar</string>
|
||||
<string name="unarchive">Desarquivar</string>
|
||||
<string name="previousCard">Anterior</string>
|
||||
<string name="nextCard">Próximo</string>
|
||||
<string name="updateBalanceTitle">Quanto você gastou ou recebeu?</string>
|
||||
<string name="currentBalanceSentence">Saldo atual: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Novo saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_category_title_cards">Visualização do cartão</string>
|
||||
<string name="updateBalanceHint">Inserir quantidade</string>
|
||||
<string name="anyDate">Qualquer data</string>
|
||||
<string name="settings_category_title_general">Geral</string>
|
||||
<string name="settings_category_title_privacy">Privacidade</string>
|
||||
<string name="action_display_options">Configurações de exibição</string>
|
||||
<string name="show_archived_cards">Mostrar cartões arquivados</string>
|
||||
<string name="add_manually_warning_title">A digitalização é recomendada</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="errorReadingFile">Não foi possível fazer a leitura do arquivo</string>
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gerenciador de arquivos compatível</string>
|
||||
<string name="pageWithNumber">Página <xliff:g>%d</xliff:g></string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Qual dos códigos de barras encontrados você quer usar?</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar a tela</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Necessário para alguns scanners funcionarem</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="settings_follow_sensor_orientation">Sempre girar (ignora as configurações do sistema)</string>
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="settings_light_theme">Claro</string>
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_dark_theme">Escuro</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barras para o topo da tela</string>
|
||||
<string name="settings_card_orientation">Orientação da tela</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
<string name="settings_keep_screen_on_summary">Desativa o tempo limite de tela enquanto estiver vendo um cartão</string>
|
||||
<string name="importSuccessful">Dados importados</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desativa bloqueio de tela enquanto estiver vendo um cartão</string>
|
||||
<string name="intent_import_card_from_url_share_text">Eu quero compartilhar um cartão com você</string>
|
||||
<string name="settings_keep_screen_on">Manter tela ligada</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Previnir bloqueio de tela</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permitir que outros aplicativos acessem meus dados</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Aplicativos ainda precisarão pedir permissão para ter acesso concedido</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="exportSuccessful">Dados exportados</string>
|
||||
<string name="noGroups">Clique no botão \"+\" para adicionar grupos a serem categorizados.</string>
|
||||
<string name="group_name_already_in_use">Nome do grupo já em uso</string>
|
||||
<string name="deleteConfirmationGroup">Excluir grupo?</string>
|
||||
<string name="failedOpeningFileManager">Instale um gerenciador de arquivos primeiro.</string>
|
||||
<string name="enter_group_name">Inserir nome do grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
<string name="noGroupCards">Este grupo está vazio</string>
|
||||
<string name="group_name_is_empty">O nome do grupo não pode estar vazio</string>
|
||||
<string name="group_updated">Grupo atualizado</string>
|
||||
<string name="all">Todos</string>
|
||||
<string name="addManually">Insira o código de barras manualmente</string>
|
||||
<string name="chooseExpiryDate">Escolher data de expiração</string>
|
||||
<string name="moveUp">Mover para cima</string>
|
||||
<string name="never">Nunca</string>
|
||||
<string name="moveDown">Mover para baixo</string>
|
||||
<string name="leaveWithoutSaveTitle">Sair</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Sair sem salvar?</string>
|
||||
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editando grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editBarcode">Editar código de barras</string>
|
||||
<string name="expiryDate">Data de expiração</string>
|
||||
<string name="noBarcodeFound">Nenhum código de barras foi encontrado</string>
|
||||
<string name="addFromImage">Selecionar uma imagem da galeria</string>
|
||||
<string name="expiryStateSentence">Expira: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expirado: <xliff:g>%s</xliff:g></string>
|
||||
<string name="card">Cartão</string>
|
||||
<string name="errorReadingImage">Não foi possível ler a imagem</string>
|
||||
<string name="points">Pontos</string>
|
||||
<string name="privacy_policy">Política de Privacidade</string>
|
||||
<string name="currency">Moeda</string>
|
||||
<string name="chooseImportType">Importar dados de</string>
|
||||
<string name="importCatima">Importar do Catima</string>
|
||||
<string name="balanceParsingFailed">Saldo inválido</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
<string name="importFidme">Importar de FidMe</string>
|
||||
<string name="importFidmeMessage">Selecione o arquivo <i>fidme-export-request-xxxxxx.zip</i>, exportado de FidMe, para importação e em seguida selecione o tipo de código de barras manualmente.
|
||||
\nCrie-o pelo seu perfil no FidMe escolhendo \'Proteção de Dados\' (Data Protection) e então clicando em \"Extrair meus dados\".</string>
|
||||
<string name="importStocardMessage">Selecionar arquivo <i>***.zip</i>, exportado de Stocard, para importação.
|
||||
\nObtenha-o enviando um e-mail para support@stocardapp.com solicitando exportação dos seus dados.</string>
|
||||
<string name="importVoucherVaultMessage">Selecionar arquivo<i>vouchervault.json</i>, exportado de Voucher Vault, para importação.
|
||||
\nPrimeiro, crie-o pressionando em Exportar no Voucher Vault.</string>
|
||||
<string name="enter_card_id">Insira o ID ou texto escrito no seu cartão</string>
|
||||
<string name="manually_enter_barcode_instructions">Insira o ID ou texto escrito no seu cartão e clique no código de barras que se parece com o do seu cartão.</string>
|
||||
<string name="app_license">Software livre com copyleft, licenciado sob a licença GPLv3+</string>
|
||||
<string name="validFromDate">Válido a partir de</string>
|
||||
<string name="chooseValidFromDate">Escolha uma data válida a partir de</string>
|
||||
<string name="validFromSentence">Válido a partir de: <xliff:g>%s</xliff:g></string>
|
||||
<string name="view_online">Ver online</string>
|
||||
<string name="importCancelled">Importação cancelada</string>
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
<string name="useBackImage">Usar imagem traseira</string>
|
||||
<string name="useFrontImage">Usar imagem frontal</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Use os botões de volume para alterar qual cartão é exibido</string>
|
||||
<string name="settings_use_volume_keys_navigation">Trocar de cartão usando botões de volume</string>
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Acrescentar</string>
|
||||
<string name="action_add">Adicionar</string>
|
||||
<string name="importOptionFilesystemExplanation">Escolha um ficheiro específico a partir do sistema de ficheiros.</string>
|
||||
<string name="action_search">Pesquisa</string>
|
||||
<string name="star">Adicionar aos favoritos</string>
|
||||
@@ -45,7 +45,7 @@
|
||||
<string name="noGroups">Clique no botão + para adicionar grupos para categorização.</string>
|
||||
<string name="noGroupCards">Este grupo está vazio</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quero partilhar um cartão</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar o código de barras</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar o ecrã</string>
|
||||
<string name="settings_keep_screen_on">Manter ecrã ligado</string>
|
||||
<string name="enter_group_name">Introduza o nome do grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
@@ -100,7 +100,6 @@
|
||||
<string name="photos">Fotografias</string>
|
||||
<string name="passwordRequired">Introduza a palavra-passe</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="settings_grey_theme">Cinzento</string>
|
||||
<string name="settings_brown_theme">Castanho</string>
|
||||
<string name="updateBarcodeQuestionTitle">Atualizar o valor do código de barras\?</string>
|
||||
<string name="updateBarcodeQuestionText">Alterou o identificador. Também quer atualizar o código de barras para usar o mesmo valor\?</string>
|
||||
@@ -123,7 +122,7 @@
|
||||
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editBarcode">Editar código de barras</string>
|
||||
<string name="expiryDate">Data de expiração</string>
|
||||
<string name="expiryDate">Data de validade</string>
|
||||
<string name="never">Nunca</string>
|
||||
<string name="chooseExpiryDate">Escolher validade</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barras para o topo do ecrã</string>
|
||||
@@ -134,9 +133,6 @@
|
||||
<string name="points">Pontos</string>
|
||||
<string name="app_loyalty_card_keychain">Chaveiro de cartão de fidelidade</string>
|
||||
<string name="privacy_policy">Política de privacidade</string>
|
||||
<string name="privacy_policy_popup_text">Aviso de política de privacidade (exigido por algumas lojas de aplicações):
|
||||
\n
|
||||
\nNENHUM DADO É RECOLHIDO DE FORMA ALGUMA, o que qualquer pessoa pode confirmar, já que a nossa aplicação é um software livre de código-fonte aberto.</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
<string name="importCatima">Importar do Catima</string>
|
||||
<string name="importCatimaMessage">Selecione a exportação <i>catima.zip</i> do Catima a importar.
|
||||
@@ -152,7 +148,7 @@
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras ainda não pode ser mostrado. Pode vir a ser suportado numa versão posterior da aplicação.</string>
|
||||
<string name="setFrontImage">Definir imagem frontal</string>
|
||||
<string name="setBackImage">Definir imagem de trás</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar uma URL partilhável. Por favor reporte isto aos programadores.</string>
|
||||
<string name="failedGeneratingShareURL">Não foi possível gerar um URL partilhável. Por favor reporte isto aos programadores.</string>
|
||||
<string name="turn_flashlight_on">Ligar lanterna</string>
|
||||
<string name="turn_flashlight_off">Desligar lanterna</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
@@ -167,7 +163,7 @@
|
||||
<string name="sort">Ordenar</string>
|
||||
<string name="sort_by_name">Nome</string>
|
||||
<string name="sort_by_most_recently_used">Mais usados recentemente</string>
|
||||
<string name="sort_by_expiry">Expiração</string>
|
||||
<string name="sort_by_expiry">Validade</string>
|
||||
<string name="reverse">…na ordem inversa</string>
|
||||
<string name="sort_by">Ordenar por</string>
|
||||
<string name="version_history">Histórico de versões</string>
|
||||
@@ -203,7 +199,7 @@
|
||||
<string name="shortcutSelectCard">Selecione um cartão</string>
|
||||
<string name="translate_platform">no Weblate</string>
|
||||
<string name="starred">Estrela</string>
|
||||
<string name="showMoreInfo">Mostrar info</string>
|
||||
<string name="showMoreInfo">Mostrar informação</string>
|
||||
<string name="options">Opções</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> ponto</item>
|
||||
@@ -214,7 +210,7 @@
|
||||
<string name="include_if_asking_support">Se quiser pedir ajuda, inclua as seguintes informações:</string>
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archive">Arquivar</string>
|
||||
<string name="settings_card_orientation">Orientação do código de barras</string>
|
||||
<string name="settings_card_orientation">Orientação do ecrã</string>
|
||||
<string name="settings_follow_system_orientation">Definido no sistema</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
@@ -230,15 +226,10 @@
|
||||
<string name="failedLaunchingPhotoPicker">Não foi encontrada nenhuma aplicação de galeria de imagens</string>
|
||||
<string name="nextCard">Próximo</string>
|
||||
<string name="previousCard">Anterior</string>
|
||||
<string name="failedToOpenUrl">Instale primeiro um navegador da Internet</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Ver arquivo (<xliff:g>%1$d</xliff:g> cartão)</item>
|
||||
<item quantity="many">Ver arquivo (<xliff:g>%1$d</xliff:g> cartões)</item>
|
||||
<item quantity="other">Ver arquivo (<xliff:g>%1$d</xliff:g> cartões)</item>
|
||||
</plurals>
|
||||
<string name="failedToOpenUrl">Instale primeiro um navegador de Internet</string>
|
||||
<string name="welcome">Bem-vindo ao Catima</string>
|
||||
<string name="failedToRetrieveImageFile">Falha ao recuperar o ficheiro de imagem</string>
|
||||
<string name="barcodeLongPressMessage">Apenas imagens podem ser abertas na aplicação de galeria</string>
|
||||
<string name="barcodeLongPressMessage">Só podem ser abertas imagens na aplicação da galeria</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Para digitalizar código de barras, o Catima tem de aceder à câmara. Clique aqui para mudar as configurações de permissão.</string>
|
||||
<string name="cameraPermissionDeniedTitle">Não foi possível aceder à câmara</string>
|
||||
<string name="importCards">Importar cartões</string>
|
||||
@@ -272,29 +263,41 @@
|
||||
<string name="settings_keep_screen_on_summary">Desativa o tempo limite da tela ao visualizar um cartão</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permitir que outros aplicativos acessem meus dados</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Os aplicativos ainda terão que solicitar permissão para receber acesso</string>
|
||||
<string name="settings_oled_dark_summary">Reduz o uso da bateria em telas OLED</string>
|
||||
<string name="settings_oled_dark_summary">Reduz a utilização da bateria em ecrãs OLED</string>
|
||||
<string name="icon_header_click_text">Pressione e segure para editar o icone</string>
|
||||
<string name="settings_category_title_cards">cartões</string>
|
||||
<string name="settings_category_title_general">geral</string>
|
||||
<string name="settings_category_title_cards">Vista de cartão</string>
|
||||
<string name="settings_category_title_general">Geral</string>
|
||||
<string name="settings_category_title_privacy">Privacidade</string>
|
||||
<string name="card_id_must_not_be_empty">O ID do cartão não pode estar vazio</string>
|
||||
<string name="balanceParsingFailed">Saldo inválido</string>
|
||||
<string name="add_a_card_in_a_different_way">Adicione um cartão de uma forma diferente</string>
|
||||
<string name="view_online">Exibir online</string>
|
||||
<string name="view_online">Ver online</string>
|
||||
<string name="manually_enter_barcode_instructions">Digite o número ID ou o texto em seu cartão e pressione o código de barras que se parece com o que está em seu cartão.</string>
|
||||
<string name="action_more_options">Mais opções</string>
|
||||
<string name="enter_card_id">Digite o número ID ou o texto em seu cartão</string>
|
||||
<string name="action_display_options">Opções de exibição</string>
|
||||
<string name="action_display_options">Opções de visualização</string>
|
||||
<string name="addWithoutBarcode">Adicione um cartão sem código de barras</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os e colaboradores</string>
|
||||
<string name="field_must_not_be_empty">O campo não pode estar vazio</string>
|
||||
<string name="show_archived_cards">Exibir cartões arquivados</string>
|
||||
<string name="show_archived_cards">Mostrar cartões arquivados</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="add_manually_warning_title">Recomenda-se a digitalização</string>
|
||||
<string name="add_manually_warning_message">Em algumas lojas, o valor do código de barras é diferente do número escrito no cartão. Por este motivo, a introdução manual de um código de barras pode nem sempre funcionar. Recomenda-se vivamente que, em vez disso, digitalize o código de barras com a sua câmara. Ainda quer continuar?</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Receber</string>
|
||||
<string name="amountParsingFailed">Montante inválida</string>
|
||||
<string name="amountParsingFailed">Montante inválido</string>
|
||||
<string name="settings_follow_sensor_orientation">Rodar sempre (ignora as definições do sistema)</string>
|
||||
<string name="addFromPdfFile">Selecionar um ficheiro PDF</string>
|
||||
<string name="errorReadingFile">Não foi possível ler o ficheiro</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Qual dos códigos de barras encontrados pretende utilizar?</string>
|
||||
<string name="pageWithNumber">Página <xliff:g>%d</xliff:g></string>
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gestor de ficheiros suportado</string>
|
||||
<string name="noCameraFoundGuideText">O seu dispositivo não parece ter uma câmara. Se tiver, tente reiniciar o dispositivo. Caso contrário, utilize o botão \"Mais opções\" abaixo para adicionar um código de barras de outra maneira.</string>
|
||||
<string name="importCancelled">Importação cancelada</string>
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
<string name="useFrontImage">Utilizar imagem frontal</string>
|
||||
<string name="useBackImage">Utilizar imagem do verso</string>
|
||||
<string name="settings_use_volume_keys_navigation">Mudar de cartão usando os botões de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilize os botões de volume para alterar o cartão que é apresentado</string>
|
||||
</resources>
|
||||
@@ -24,10 +24,10 @@
|
||||
<string name="card">Cardul</string>
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="all">Toate</string>
|
||||
<string name="noCardsMessage">Adăugați mai întâi o carte</string>
|
||||
<string name="noCardsMessage">Adăugați mai întâi un card</string>
|
||||
<string name="noCardExistsError">Acel card nu a putut fi găsit</string>
|
||||
<string name="failedParsingImportUriError">Nu s-a putut analiza URI-ul de import</string>
|
||||
<string name="importExport">Importație/Export</string>
|
||||
<string name="importExport">Importă/Exportă</string>
|
||||
<string name="exportName">Exportați</string>
|
||||
<string name="importSuccessfulTitle">Importat</string>
|
||||
<string name="importFailedTitle">Importul a eșuat</string>
|
||||
@@ -52,7 +52,7 @@
|
||||
<string name="settings_light_theme">Lumină</string>
|
||||
<string name="settings_dark_theme">Întuneric</string>
|
||||
<string name="noBarcodeFound">Nu a fost găsit niciun cod de bare</string>
|
||||
<string name="settings_display_barcode_max_brightness">Luminați vizualizarea codurilor de bare</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminare ecran</string>
|
||||
<string name="settings_keep_screen_on">Păstrați ecranul pornit</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Preveniți blocarea ecranului</string>
|
||||
<string name="balance">Balanță</string>
|
||||
@@ -97,11 +97,6 @@
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Aș dori să partajez niște carduri cu tine</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Drepturi de autor © 2019–<xliff:g>%d</xliff:g> Sylvia van Os și contribuitorii</string>
|
||||
<string name="translate_platform">pe Weblate</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Vizualizați arhiva (<xliff:g>%1$d</xliff:g> card)</item>
|
||||
<item quantity="few">Vizualizați arhiva (<xliff:g>%1$d</xliff:g> carduri)</item>
|
||||
<item quantity="other">Vizualizați arhiva (<xliff:g>%1$d</xliff:g> de carduri)</item>
|
||||
</plurals>
|
||||
<string name="card_id_must_not_be_empty">Identificatorul cardului nu poate fi liber</string>
|
||||
<string name="duplicateCard">Duplicare</string>
|
||||
<string name="balanceParsingFailed">Sold invalid</string>
|
||||
@@ -172,7 +167,7 @@
|
||||
<string name="group_name_is_empty">Numele grupului nu poate fi liber</string>
|
||||
<string name="importCards">Importați carduri</string>
|
||||
<string name="icon_header_click_text">Apăsați lung pentru a edita miniatura</string>
|
||||
<string name="settings_category_title_cards">Carduri</string>
|
||||
<string name="settings_category_title_cards">Afișare carduri</string>
|
||||
<string name="setBarcodeId">Setați valoarea codului de bare</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="unarchive">Dezarhivare</string>
|
||||
@@ -182,9 +177,6 @@
|
||||
<string name="turn_flashlight_off">Opriți lanterna</string>
|
||||
<string name="show_note">Afișați notița</string>
|
||||
<string name="report_error">Raportați o eroare</string>
|
||||
<string name="privacy_policy_popup_text">Înștiințare despre politica de confidențialitate (necesar de către unele magazine de aplicații):
|
||||
\n
|
||||
\nDATELE NU SUNT COLECTATE, și oricine poate confirma deoarece aplicația noastră este software deschis.</string>
|
||||
<string name="switchToBackImage">Schimbați la imaginea spate</string>
|
||||
<string name="settings_follow_system_orientation">Urmare sistem</string>
|
||||
<string name="reverse">...în ordine inversă</string>
|
||||
@@ -215,7 +207,6 @@
|
||||
<string name="setBarcodeHeight">Setați înălțimea codului de bare</string>
|
||||
<string name="settings_landscape_orientation">Orizontal</string>
|
||||
<string name="privacy_policy">Politica de Confidențialitate</string>
|
||||
<string name="settings_grey_theme">Gri</string>
|
||||
<string name="importStocardMessage">Selectați exportul dvs. <i>***.zip</i> din Stocard pentru a-l importa.
|
||||
\nLuați-l prin e-mail către support@stocardapp.com cerând un export al datelor dumneavoastră.</string>
|
||||
<string name="openBackImageInGalleryApp">Deschideți imaginea spate în aplicația galerie</string>
|
||||
@@ -255,14 +246,14 @@
|
||||
<string name="settings_violet_theme">Violet</string>
|
||||
<string name="include_if_asking_support">Dacă doriți să cereți ajutor, includeți informațiile următoare:</string>
|
||||
<string name="show_archived_cards">Afișați cardurile arhivate</string>
|
||||
<string name="settings_card_orientation">Orientarea codului de bare</string>
|
||||
<string name="settings_card_orientation">Orientare ecran</string>
|
||||
<string name="app_libraries">Biblioteci terță deschise: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="updateBalanceTitle">Cât de mult ați folosit?</string>
|
||||
<string name="updateBalanceTitle">Cât de mult ați cheltuit sau primit?</string>
|
||||
<string name="settings_blue_theme">Albastru</string>
|
||||
<string name="app_resources">Resurse terță deschise: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="shortcutSelectCard">Selectați un card</string>
|
||||
<string name="accept">Accept</string>
|
||||
<string name="accept">Acceptă</string>
|
||||
<string name="settings_category_title_privacy">Confidențialitate</string>
|
||||
<string name="show_balance">Afișați balanța</string>
|
||||
<string name="nextCard">Următor</string>
|
||||
@@ -294,4 +285,19 @@
|
||||
<string name="continue_">Continua</string>
|
||||
<string name="add_manually_warning_title">Se recomandă scanarea</string>
|
||||
<string name="add_manually_warning_message">Pentru unele magazine, valoarea codului de bare diferă de numărul scris pe card. Din acest motiv, este posibil ca introducerea manuală a unui cod de bare să nu funcționeze întotdeauna. În schimb, este recomandat să scanați codul de bare cu camera dvs. Mai vrei să continui?</string>
|
||||
<string name="spend">Cheltuie</string>
|
||||
<string name="receive">Primește</string>
|
||||
<string name="amountParsingFailed">Sumă nevalidă</string>
|
||||
<string name="addFromPdfFile">Selectați un fișier PDF</string>
|
||||
<string name="errorReadingFile">Nu am putut citi fișierul</string>
|
||||
<string name="failedLaunchingFileManager">Nu s-a găsit un manager de fișiere suportat</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Pe care dintre codurile de bare găsite dorești să-l folosești?</string>
|
||||
<string name="pageWithNumber">Pagina <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Dispozitivul dvs. nu pare să aibă o cameră foto/video. Daca are, încercați să vă reporniți dispozitivul. Altfel, folosiți butonul cu opțiunea \'Mai multe\' de mai jos pentru a adăuga un cod de bare prin altă modalitate.</string>
|
||||
<string name="importCancelled">Importare anulată</string>
|
||||
<string name="exportCancelled">Exportare anulată</string>
|
||||
<string name="useBackImage">Utilizează imaginea din spate</string>
|
||||
<string name="useFrontImage">Utilizează imaginea din față</string>
|
||||
<string name="settings_use_volume_keys_navigation">Schimbă cardurile folosind butoanele de volum</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Folosiți butoanele de volum pentru a schimba ce card este afișat</string>
|
||||
</resources>
|
||||
@@ -52,7 +52,7 @@
|
||||
<string name="settings_system_theme">Системная</string>
|
||||
<string name="settings_light_theme">Светлая</string>
|
||||
<string name="settings_dark_theme">Тёмная</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимальная яркость при отображении карты</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимальная яркость экрана</string>
|
||||
<string name="intent_import_card_from_url_share_text">Я хочу поделиться с вами картой</string>
|
||||
<string name="exportSuccessful">Данные успешно экспортированы</string>
|
||||
<string name="all">Все</string>
|
||||
@@ -75,9 +75,6 @@
|
||||
<string name="expiryStateSentence">Срок действия истекает: <xliff:g>%s</xliff:g></string>
|
||||
<string name="points">Баллы</string>
|
||||
<string name="addManually">Ручной ввод номера</string>
|
||||
<string name="privacy_policy_popup_text">Уведомление о политике конфиденциальности (требуется некоторыми магазинами приложений):
|
||||
\n
|
||||
\nНИКАКИЕ ДАННЫЕ НЕ СОБИРАЮТСЯ ВООБЩЕ, что может подтвердить любой, так как наше приложение является свободным программным обеспечением.</string>
|
||||
<string name="privacy_policy">Политика конфиденциальности</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Откуда импортировать данные</string>
|
||||
@@ -168,7 +165,6 @@
|
||||
<string name="settings_sky_blue_theme">Голубой</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_brown_theme">Коричневый</string>
|
||||
<string name="settings_grey_theme">Серый</string>
|
||||
<string name="settings_green_theme">Зелёный</string>
|
||||
<string name="settings_blue_theme">Синий</string>
|
||||
<string name="settings_violet_theme">Фиолетовый</string>
|
||||
@@ -224,7 +220,7 @@
|
||||
<string name="unarchive">Разархивировать</string>
|
||||
<string name="settings_follow_system_orientation">Как в системе</string>
|
||||
<string name="duplicateCard">Дублировать</string>
|
||||
<string name="settings_card_orientation">Ориентация штрих-кода</string>
|
||||
<string name="settings_card_orientation">Ориентация экрана</string>
|
||||
<string name="archived">Карта архивирована</string>
|
||||
<string name="unarchived">Карта разархивирована</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не найдено поддерживаемое приложение галереи</string>
|
||||
@@ -238,12 +234,6 @@
|
||||
<string name="previousCard">Предыдущая</string>
|
||||
<string name="welcome">Добро пожаловать в Catima</string>
|
||||
<string name="failedToOpenUrl">Сначала необходимо установить браузер</string>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Просмотр архива (<xliff:g>%1$d</xliff:g> карта)</item>
|
||||
<item quantity="few">Просмотр архива (<xliff:g>%1$d</xliff:g> карты)</item>
|
||||
<item quantity="many">Просмотр архива (<xliff:g>%1$d</xliff:g> карт)</item>
|
||||
<item quantity="other">Просмотр архива (<xliff:g>%1$d</xliff:g> карт)</item>
|
||||
</plurals>
|
||||
<string name="failedToRetrieveImageFile">Невозможно получить файл изображения</string>
|
||||
<string name="barcodeLongPressMessage">В приложении галереи можно открывать только изображения</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Для сканирования штрих-кодов Catima требуется доступ к камере устройства. Нажмите здесь, чтобы изменить настройки разрешений.</string>
|
||||
@@ -280,7 +270,7 @@
|
||||
<string name="settings_category_title_privacy">Конфиденциальность</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Необходимо для работы некоторых сканеров</string>
|
||||
<string name="settings_keep_screen_on_summary">Отключение функции автоотключения экрана при отображении карты</string>
|
||||
<string name="settings_category_title_cards">Карты</string>
|
||||
<string name="settings_category_title_cards">Отображение карт</string>
|
||||
<string name="settings_category_title_general">Общие</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Отключение функции блокировки экрана при отображении карты</string>
|
||||
<string name="settings_oled_dark_summary">Снижение расхода заряда батареи на OLED-экранах</string>
|
||||
@@ -304,4 +294,16 @@
|
||||
<string name="spend">Потрачено</string>
|
||||
<string name="receive">Получено</string>
|
||||
<string name="amountParsingFailed">Недопустимая сумма</string>
|
||||
<string name="addFromPdfFile">Выберите PDF-файл</string>
|
||||
<string name="errorReadingFile">Невозможно прочитать файл</string>
|
||||
<string name="pageWithNumber">Страница <xliff:g>%d</xliff:g></string>
|
||||
<string name="failedLaunchingFileManager">Не найден поддерживаемый файловый менеджер</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Какой из найденных штрих-кодов вы хотите использовать?</string>
|
||||
<string name="noCameraFoundGuideText">Похоже, ваше устройство не оснащено камерой. Если это не так, попробуйте перезагрузить устройство. В противном случае воспользуйтесь кнопкой \"Ещё\", чтобы добавить штри-хкод другим способом.</string>
|
||||
<string name="importCancelled">Импорт отменён</string>
|
||||
<string name="exportCancelled">Экспорт отменён</string>
|
||||
<string name="useFrontImage">Использовать лицевую сторону</string>
|
||||
<string name="useBackImage">Использовать заднюю сторону</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Использовать кнопки регулировки громкости для смены отображаемой карты</string>
|
||||
<string name="settings_use_volume_keys_navigation">Переключать карты кнопками громкости</string>
|
||||
</resources>
|
||||
@@ -42,7 +42,7 @@
|
||||
<string name="selectBarcodeTitle">Vyberte čiarový kód</string>
|
||||
<string name="thumbnailDescription">Miniatúra</string>
|
||||
<string name="settings">Nastavenia</string>
|
||||
<string name="settings_display_barcode_max_brightness">Zvýšiť jas pri zobrazení čiarového kódu </string>
|
||||
<string name="settings_display_barcode_max_brightness">Zvýšiť jas pri zobrazení čiarového kódu</string>
|
||||
<string name="deleteTitle">Odstrániť kartu</string>
|
||||
<string name="deleteConfirmation">Naozaj chcete túto kartu odstrániť?</string>
|
||||
<string name="star">Pridať k obľúbeným</string>
|
||||
@@ -149,7 +149,6 @@
|
||||
<string name="settings_blue_theme">Modrá</string>
|
||||
<string name="settings_sky_blue_theme">Azurová</string>
|
||||
<string name="settings_green_theme">Zelená</string>
|
||||
<string name="settings_grey_theme">Šedá</string>
|
||||
<string name="settings_brown_theme">Hnedá</string>
|
||||
<string name="sort">Zoradiť</string>
|
||||
<string name="help_translate_this_app">Pomôžte preložiť túto aplikáciu</string>
|
||||
@@ -218,9 +217,6 @@
|
||||
<string name="chooseValidFromDate">Zvoliť dátum platné od</string>
|
||||
<string name="validFromSentence">Platnosť od: <xliff:g>%s</xliff:g></string>
|
||||
<string name="cameraPermissionRequired">Pre túto akciu je potrebné oprávnenie na prístup k fotoaparátu…</string>
|
||||
<string name="privacy_policy_popup_text">Oznámenie o zásadách ochrany osobných údajov (vyžaduje sa v niektorých obchodoch s aplikáciami):
|
||||
\n
|
||||
\nNEZHROMAŽĎUJÚ SA VÔBEC ŽIADNE ÚDAJE, čo môže ktokoľvek potvrdiť, keďže naša aplikácia je slobodný softvér.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Vyberte svoj export <i>LoyaltyCardKeychain.csv</i> z Kľúčenky vernostných kariet, ktorý chcete importovať.
|
||||
\nVytvorte ho z ponuky Import/Export v aplikácii Loyalty Card Keychain tak, že tam najprv stlačíte tlačidlo Exportovať.</string>
|
||||
<string name="importVoucherVaultMessage">Vyberte svoj <i>vouchervault.json</i> export z Trezoru poukážok pre import.
|
||||
@@ -232,11 +228,6 @@
|
||||
<item quantity="few"><xliff:g>%1$d</xliff:g> karty (<xliff:g id="archivedCount">%2$d</xliff:g> archivované)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kariet (<xliff:g id="archivedCount">%2$d</xliff:g> archivovaných)</item>
|
||||
</plurals>
|
||||
<plurals name="viewArchivedCardsWithCount">
|
||||
<item quantity="one">Zobraziť archív (<xliff:g>%1$d</xliff:g> karta)</item>
|
||||
<item quantity="few">Zobraziť archív (<xliff:g>%1$d</xliff:g> karty)</item>
|
||||
<item quantity="other">Zobraziť archív (<xliff:g>%1$d</xliff:g> kariet)</item>
|
||||
</plurals>
|
||||
<string name="barcodeLongPressMessage">V aplikácii galéria je možné otvoriť iba obrázky</string>
|
||||
<string name="cameraPermissionDeniedTitle">Nepodarilo sa získať prístup k fotoaparátu</string>
|
||||
<string name="storageReadPermissionRequired">Pre túto akciu je potrebné oprávnenie na čítanie úložiska…</string>
|
||||
@@ -297,4 +288,14 @@
|
||||
<string name="amountParsingFailed">Neplatná hodnota</string>
|
||||
<string name="add_manually_warning_title">Skenovanie je odporúčané</string>
|
||||
<string name="add_manually_warning_message">V niektorých obchodoch nie je číslo na cenovke totožné s čiarovým kódom, preto je lepšie zoskenovať čiarový kód. Chcete napriek tomu pokračovať?</string>
|
||||
<string name="addFromPdfFile">Vyberte súbor PDF</string>
|
||||
<string name="errorReadingFile">Súbor sa nepodarilo prečítať</string>
|
||||
<string name="failedLaunchingFileManager">Nepodarilo sa nájsť podporovaného správcu súborov</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Ktorý z nájdených čiarových kódov chcete použiť?</string>
|
||||
<string name="pageWithNumber">Stránka <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Zdá sa, že Vaše zariadenie nemá fotoaparát. Ak ho má, skúste zariadenie reštartovať. V opačnom prípade, použite tlačidlo Viac možností na pridanie čiarového kódu iným spôsobom.</string>
|
||||
<string name="importCancelled">Import zrušený</string>
|
||||
<string name="exportCancelled">Export zrušený</string>
|
||||
<string name="useFrontImage">Použiť obrázok prednej strany</string>
|
||||
<string name="useBackImage">Použiť obrázok zadnej strany</string>
|
||||
</resources>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user