Compare commits

...

131 Commits

Author SHA1 Message Date
J-Jamet
ac1590810f Merge branch 'release/4.0.5' 2023-11-09 08:16:29 +01:00
J-Jamet
9dd4d77535 fix: upgrade version 2023-11-09 08:06:30 +01:00
J-Jamet
c7aa6a9d96 fix: revert #1490 2023-11-09 08:02:16 +01:00
J-Jamet
fc56db2f83 fix: Autofill recognition 2023-11-08 20:43:50 +01:00
J-Jamet
78c7f4078c Merge tag '4.0.4' into develop
4.0.4
2023-11-07 00:33:28 +01:00
J-Jamet
28ccaffcf5 Merge branch 'release/4.0.4' 2023-11-07 00:33:15 +01:00
J-Jamet
78739558d6 fix: password color #1490 2023-11-07 00:26:24 +01:00
J-Jamet
cd195d30de fix: update CHANGELOG 2023-11-06 23:49:58 +01:00
J-Jamet
03bf752284 fix: update CHANGELOG 2023-11-06 23:48:39 +01:00
J-Jamet
238fab3e1d fix: device unlock #1682 2023-11-06 23:47:31 +01:00
J-Jamet
fcd9af8f84 Revert "Revert "fix: Remove Lock in Autofill""
This reverts commit b44491ebbe.
2023-11-06 23:37:28 +01:00
J-Jamet
b44491ebbe Revert "fix: Remove Lock in Autofill"
This reverts commit 544f7003f6.
2023-11-06 23:35:14 +01:00
J-Jamet
1f8018fd5b fix: autofill 2023-11-06 23:23:42 +01:00
J-Jamet
1d67656fa0 fix: autofill 2023-11-06 22:40:48 +01:00
J-Jamet
64b8023d1a fix: upgrade version and CHANGELOG 2023-11-06 21:40:01 +01:00
J-Jamet
cc1697e7ec fix: last form field recognition #1572 2023-11-06 21:37:27 +01:00
J-Jamet
28943e77e8 Merge tag '4.0.3' into develop
4.0.3
2023-11-06 12:29:02 +01:00
J-Jamet
575109da9f Merge branch 'release/4.0.3' 2023-11-06 12:28:53 +01:00
J-Jamet
a99667d471 feat: New fastfile to build Libre in github 2023-11-06 12:28:28 +01:00
J-Jamet
6a7420bd3a fix: replace tags 2023-11-06 10:45:20 +01:00
J-Jamet
e8dbe05615 Merge branch 'develop' of https://hosted.weblate.org/projects/keepass-dx/strings into translations 2023-11-06 10:35:53 +01:00
J-Jamet
6b6566cd29 fix: small change #1674 2023-11-06 08:58:36 +01:00
J-Jamet
0001d31c2c fix: small change #1674 2023-11-06 08:57:48 +01:00
J-Jamet
974686e698 fix: small changes 2023-11-04 18:56:36 +01:00
J-Jamet
7b7063b9be fix: check biometric unlock availability before build the fragment #1400 2023-11-04 18:14:24 +01:00
J-Jamet
55061a9469 fix: runtime exception #1649 2023-11-04 18:01:23 +01:00
J-Jamet
c433fb643c fix: change password color dynamically #1490 2023-11-04 17:33:40 +01:00
J-Jamet
02306385b6 fix: #1641 #1656 2023-11-04 16:09:10 +01:00
J-Jamet
432ac1bcec Merge branch 'JohnVeness-biometric' into develop 2023-11-04 16:07:41 +01:00
J-Jamet
d9480e0c9a Merge branch 'MkQtS-f-droid-link' into develop 2023-11-04 16:05:24 +01:00
J-Jamet
815fb911d6 fix: regex OTP recognition #1596 2023-11-04 16:03:20 +01:00
J-Jamet
68cbdae8e0 fix: update CHANGELOG 2023-11-04 15:07:15 +01:00
J-Jamet
2d8f8aeef3 fix: Compatibility mode to retrieve username #1508 2023-11-04 13:02:57 +01:00
J-Jamet
479bc7be71 Upgrade to 4.0.3 2023-11-04 11:36:44 +01:00
/dev/urandom
cbc6df2e62 Translated using Weblate (Esperanto)
Currently translated at 21.9% (142 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/eo/
2023-11-03 06:10:15 +01:00
Urystem
d16b4cfadb Added translation using Weblate (Kazakh) 2023-10-31 12:48:01 +01:00
ngocanhtve
a97bad1f86 Translated using Weblate (Vietnamese)
Currently translated at 34.4% (223 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/vi/
2023-10-30 07:09:19 +01:00
J-Jamet
7198ffff43 fix: Save as 2023-10-29 20:45:35 +01:00
ngocanhtve
e173159d13 Translated using Weblate (Vietnamese)
Currently translated at 33.3% (216 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/vi/
2023-10-28 17:33:10 +02:00
Jean Mareilles
1b54b79e88 Translated using Weblate (French)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/fr/
2023-10-27 11:26:36 +02:00
P.O
bb3436615e Translated using Weblate (Swedish)
Currently translated at 60.1% (389 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/sv/
2023-10-16 04:19:17 +00:00
Stasky745
809db61c35 Translated using Weblate (Catalan)
Currently translated at 62.4% (404 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ca/
2023-10-16 04:19:16 +00:00
elgratea
88e53fcba8 Translated using Weblate (Bulgarian)
Currently translated at 13.1% (85 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/bg/
2023-10-13 21:02:05 +02:00
Balázs Meskó
fe68b7e294 Translated using Weblate (Hungarian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/hu/
2023-10-08 16:01:48 +02:00
Åzze
b7b76d6da7 Translated using Weblate (Finnish)
Currently translated at 39.7% (257 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/fi/
2023-10-08 16:01:48 +02:00
Fjuro
e2eae43fc9 Translated using Weblate (Czech)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/cs/
2023-10-08 16:01:47 +02:00
bowornsin
f41ecec09c Translated using Weblate (Thai)
Currently translated at 91.4% (592 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/th/
2023-10-02 02:01:14 +02:00
John Veness
15ad4d11ef Fix paragraph break in Biometric warning text
Added an extra new line between the last two paragraphs, for consistency with the paragraphs above.
2023-10-01 21:07:54 +01:00
P.O
0cf9d98f14 Translated using Weblate (Swedish)
Currently translated at 59.3% (384 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/sv/
2023-09-29 18:35:22 +02:00
elgratea
612e642523 Translated using Weblate (Bulgarian)
Currently translated at 9.8% (64 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/bg/
2023-09-19 22:59:13 +02:00
Milo Ivir
0ff77eb157 Translated using Weblate (Croatian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/hr/
2023-09-18 17:01:16 +00:00
Alexthegib
2b8935a5d7 Translated using Weblate (Portuguese)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/pt/
2023-09-16 02:53:56 +02:00
Mesut Akcan
afdc5c8460 Translated using Weblate (Turkish)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/tr/
2023-09-13 15:48:51 +02:00
alejandracios
91ba2dff2d Translated using Weblate (Spanish)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/es/
2023-09-13 15:48:50 +02:00
MkQtS
2d26079c49 readme: don't specify language in F-droid links
then F-droid will follow the browser locale
2023-09-13 19:16:43 +08:00
J-Jamet
f13d99e0d1 Merge tag '4.0.2' into develop
4.0.2
2023-09-11 21:55:56 +02:00
J-Jamet
798c95d8a8 Merge branch 'release/4.0.2' 2023-09-11 21:55:48 +02:00
J-Jamet
ef77c2acfb fix: Add buggy method comment #1638 2023-09-11 21:38:12 +02:00
J-Jamet
11a98267a2 fix: Upgrade to 4.0.2 2023-09-11 21:17:18 +02:00
J-Jamet
b2aa1155d0 fix: Autofill authentication 2023-09-11 21:13:26 +02:00
Linerly
d3182b8d2a Translated using Weblate (Indonesian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/id/
2023-09-11 19:51:53 +02:00
jonnysemon
f52d139acc Translated using Weblate (Arabic)
Currently translated at 97.5% (631 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ar/
2023-09-11 19:51:53 +02:00
Eric
87e9a38548 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/zh_Hans/
2023-09-11 19:51:52 +02:00
Ihor Hordiichuk
faa70c57b3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/uk/
2023-09-11 19:51:52 +02:00
Alexthegib
5172c07c18 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/pt_PT/
2023-09-11 19:51:51 +02:00
Wellington Terumi Uemura
a80fa03db4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/pt_BR/
2023-09-11 19:51:51 +02:00
Matthaiks
d73e02948e Translated using Weblate (Polish)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/pl/
2023-09-11 19:51:51 +02:00
Stephan Paternotte
283657e1b7 Translated using Weblate (Dutch)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/nl/
2023-09-11 19:51:50 +02:00
Random
d3c4a3a17e Translated using Weblate (Italian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/it/
2023-09-11 19:51:50 +02:00
Kunzisoft
9184bc40e5 Translated using Weblate (French)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/fr/
2023-09-11 19:51:50 +02:00
gallegonovato
84bd98ebf4 Translated using Weblate (Spanish)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/es/
2023-09-11 19:51:49 +02:00
Retrial
4ef2cbcaeb Translated using Weblate (Greek)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/el/
2023-09-11 19:51:49 +02:00
Fjuro
35f8b45bf4 Translated using Weblate (Czech)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/cs/
2023-09-11 19:51:48 +02:00
J-Jamet
5d6aac2d1b Merge tag '4.0.1' into develop
4.0.1
2023-09-10 11:07:13 +02:00
J-Jamet
c6723ecd4e Merge branch 'release/4.0.1' 2023-09-10 11:07:06 +02:00
J-Jamet
838c8f48d3 fix: Translation for themes #1631 2023-09-10 10:53:43 +02:00
J-Jamet
65229fae1f fix: Lock button in Autofill settings and Magikeyboard settings #1630 2023-09-10 10:26:01 +02:00
J-Jamet
f25ea89160 fix: Add CHANGELOG link 2023-09-10 09:57:56 +02:00
J-Jamet
18401d5d1e fix: Upgrade to 4.0.1 2023-09-10 09:50:26 +02:00
J-Jamet
1f2cf08108 fix: back lock 2023-09-10 09:43:08 +02:00
J-Jamet
74e86badba Merge tag '4.0.0' into develop
4.0.0
2023-09-09 21:34:37 +02:00
J-Jamet
31444a823e Merge branch 'release/4.0.0' 2023-09-09 21:34:28 +02:00
J-Jamet
068933f0fb fix: fastlane changelog version 2023-09-09 21:30:51 +02:00
J-Jamet
f496711280 Replace art screen 2023-09-09 21:24:40 +02:00
J-Jamet
657d2420d6 Revert "fix: Small bug"
This reverts commit 2467721265.
2023-09-09 21:21:04 +02:00
J-Jamet
2467721265 fix: Small bug 2023-09-09 21:11:39 +02:00
J-Jamet
d37fbb9992 fix: Change screenshot 2023-09-09 21:06:33 +02:00
J-Jamet
19b8b54dae fix: Strong tag 2023-09-08 21:22:55 +02:00
J-Jamet
84328caf3c fix: Add browsers to compatibility package 2023-09-08 21:22:36 +02:00
J-Jamet
a0bdfc973a Merge branch 'translations' into develop 2023-09-08 21:16:04 +02:00
J-Jamet
1f91854490 Merge branch 'develop' of https://hosted.weblate.org/projects/keepass-dx/strings into translations 2023-09-08 21:15:42 +02:00
J-Jamet
1380325b66 Upgrade to 4.0.0 2023-09-08 21:14:21 +02:00
J-Jamet
d244eef62e feat: Add recursive number of entries #874 #1327 2023-09-08 20:32:19 +02:00
Hosted Weblate
8fb8d9ed37 Merge branch 'origin/develop' into Weblate. 2023-09-08 19:35:10 +02:00
J-Jamet
8ce63cb5c5 Merge branch 'JohnVeness-master' into develop 2023-09-08 19:31:49 +02:00
J-Jamet
9ecf2ae942 Merge branch 'master' of github.com:JohnVeness/KeePassDX into JohnVeness-master 2023-09-08 19:31:07 +02:00
J-Jamet
544f7003f6 fix: Remove Lock in Autofill 2023-09-04 20:45:32 +02:00
J-Jamet
6d633c9986 fix: Autofill implementation 2023-09-04 19:16:16 +02:00
J-Jamet
1e77a42c93 fix: Remove Autofill deprecation 2023-09-03 18:41:32 +02:00
J-Jamet
d1f2641e40 fix: On back pressed deprecation 2023-09-03 12:29:45 +02:00
jonnysemon
4b8ae154cc Translated using Weblate (Arabic)
Currently translated at 97.6% (632 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ar/
2023-08-29 18:57:00 +02:00
J-Jamet
0c1aacdf83 fix: Navigation bar margin 2023-08-28 21:52:51 +02:00
J-Jamet
5f34df3549 fix: Ellipsis 2023-08-28 17:20:09 +02:00
Alexandru
f2e6aa1abb Translated using Weblate (Romanian)
Currently translated at 72.9% (472 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ro/
2023-08-28 10:53:32 +02:00
John Veness
866731df81 Correct "im/exportation" wording 2023-08-20 19:39:09 +01:00
John Veness
5d931e09d5 Changed "app properties" wording to "app settings" 2023-08-20 19:08:51 +01:00
Kunzisoft
fe17c21c01 Translated using Weblate (French)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/fr/
2023-08-20 11:52:19 +02:00
J-Jamet
085941019e fix: Small bugs 2023-08-19 19:58:26 +02:00
J-Jamet
24b3758545 feat: Entry Edit Activity Fit Window 2023-08-19 19:16:55 +02:00
J-Jamet
9083f99325 feat: Entry Activity Fit Window 2023-08-19 18:15:21 +02:00
J-Jamet
2189be9267 fix: Screenshot mode 2023-08-19 17:47:49 +02:00
J-Jamet
43218eede1 feat: Group screen as fit window 2023-08-19 17:00:26 +02:00
J-Jamet
d1a176d27d fix: Small UI 2023-08-19 12:25:38 +02:00
J-Jamet
cf51af91bf feat: Logo color 2023-08-19 12:20:41 +02:00
Darin Avdeyeva
02ff1188b2 Translated using Weblate (Russian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ru/
2023-08-18 15:54:40 +02:00
jonnysemon
0fac9b6864 Translated using Weblate (Arabic)
Currently translated at 97.5% (631 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ar/
2023-08-17 01:55:03 +02:00
VfBFan
b550830c30 Translated using Weblate (German)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/de/
2023-08-15 11:47:13 +02:00
gallegonovato
6f485dd298 Translated using Weblate (Spanish)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/es/
2023-08-12 10:53:07 +02:00
solokot
b0dfde62c7 Translated using Weblate (Russian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ru/
2023-08-09 17:50:55 +02:00
109247019824
686dae0af6 Translated using Weblate (Bulgarian)
Currently translated at 2.9% (19 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/bg/
2023-08-08 17:21:18 +02:00
Darin Avdeyeva
ee3eabe8c8 Translated using Weblate (Russian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ru/
2023-08-08 17:21:18 +02:00
C. Rüdinger
521c8aa6a9 Translated using Weblate (German)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/de/
2023-08-08 17:21:17 +02:00
solokot
66207d599f Translated using Weblate (Russian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ru/
2023-08-08 08:51:37 +02:00
Masowick
e0029e0c3f Translated using Weblate (German)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/de/
2023-08-08 08:51:37 +02:00
C. Rüdinger
3683b64721 Translated using Weblate (German)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/de/
2023-08-08 08:51:37 +02:00
J-Jamet
8d4a0971f9 Merge tag '4.0.0beta02' into develop
4.0.0beta02
2023-08-07 16:00:38 +02:00
Hosted Weblate
d212fa180b Merge branch 'origin/develop' into Weblate. 2023-08-06 23:00:27 +02:00
Salif Mehmed
bc4ea2ec2a Translated using Weblate (Bulgarian)
Currently translated at 2.7% (18 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/bg/
2023-08-06 23:00:27 +02:00
Linerly
5d8c80fc1e Translated using Weblate (Indonesian)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/id/
2023-08-06 23:00:27 +02:00
Alexandru
a02714ff6e Translated using Weblate (Romanian)
Currently translated at 63.5% (411 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/ro/
2023-08-06 23:00:26 +02:00
Fjuro
4bd952e223 Translated using Weblate (Czech)
Currently translated at 100.0% (647 of 647 strings)

Translation: KeePassDX/Strings
Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/cs/
2023-08-06 23:00:25 +02:00
108 changed files with 2538 additions and 1294 deletions

View File

@@ -1,11 +1,35 @@
KeePassDX(4.0.5)
* Fix form filled recognition #1572 #1508
* Rollback password color #1686 #1490
KeePassDX(4.0.4)
* Fix form filled recognition #1572 #1677
* Fix device unlock #1682
* Fix password color #1490
KeePassDX(4.0.3)
* Fix "Save as" in Read Only mode #1666
* Fix username autofill #1665 #530 #1572 #1426 #1523 #1556 #1653 #1658 #1508 #1667
* Fix regex OTP recognition #1596
* Change password color dynamically #1490
* Small fixes #1641 #1656 #1649 #1400 #1674
KeePassDX(4.0.2)
* Fix Autofill with API 33
KeePassDX(4.0.1)
* Fix back lock #1635 #1629 #1634
* Fix lock button in settings #1630
* Improve theme translation #1631
KeePassDX(4.0.0)
* New UX/UI with Material 3 #1183 #1529 #1428 #1441 #1607
* Material You theme (follow system colors) #1469
* Refactoring inner code #1371
* Migration to API 33
# Cut, copy and delete from search #891 #1308 #1263
* Fix behaviors #1351
* Fix bugs #1589 #1584 #1545 #1563 #1371
* Cut, copy and delete from search #891 #1308 #1263
* Fix behaviors #1351 #874 #1327
* Fix bugs #1589 #1584 #1545 #1563 #1371 #1609
KeePassDX(3.5.1)
* Fix action dialog with YubiKey challenge-response #1506

View File

@@ -105,7 +105,7 @@ GEM
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-versioning_android (0.1.0)
fastlane-plugin-versioning_android (0.1.1)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.46.0)
google-apis-core (>= 0.11.0, < 2.a)

View File

@@ -48,11 +48,11 @@ Optional visual styles are accessible after a contribution (and a congratulatory
## Download
*[F-Droid](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/) is the recommended way of installing, a libre software project that verifies that all the libraries and app code is libre software.*
*[F-Droid](https://f-droid.org/packages/com.kunzisoft.keepass.libre/) is the recommended way of installing, a libre software project that verifies that all the libraries and app code is libre software.*
[<img src="https://f-droid.org/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/)
height="80">](https://f-droid.org/packages/com.kunzisoft.keepass.libre/)
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
alt="Get it on Google Play"
height="80">](https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.free)

View File

@@ -12,8 +12,8 @@ android {
applicationId "com.kunzisoft.keepass"
minSdkVersion 15
targetSdkVersion 33
versionCode = 122
versionName = "4.0.0_beta02"
versionCode = 128
versionName = "4.0.5"
multiDexEnabled true
testApplicationId = "com.kunzisoft.keepass.tests"

View File

@@ -7,10 +7,6 @@
<group
android:translateX="-12"
android:translateY="-12">
<path
android:fillColor="#ffa726"
android:strokeWidth="1.99999297"
android:pathData="M36,36 L36,40.2422 L67.7578,72 L72,72 L72,67.7578 L40.2422,36 Z" />
<path
android:fillColor="#ffffff"
android:strokeWidth="1.99999297"

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="84"
android:viewportHeight="84">
<group
android:translateX="-12"
android:translateY="-12">
<path
android:fillColor="#ffffff"
android:strokeWidth="1.99999297"
android:pathData="M36,36 L36,40.2422 L67.7578,72 L72,72 L72,67.7578 L40.2422,36 Z" />
</group>
</vector>

View File

@@ -7,10 +7,6 @@
<group
android:translateX="-12"
android:translateY="-12">
<path
android:fillColor="#ffa726"
android:strokeWidth="1.99999297"
android:pathData="M36,36 L36,40.2422 L67.7578,72 L72,72 L72,67.7578 L40.2422,36 Z" />
<path
android:fillColor="#ffffff"
android:strokeWidth="1.99999297"

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="84"
android:viewportHeight="84">
<group
android:translateX="-12"
android:translateY="-12">
<path
android:fillColor="#ffffff"
android:strokeWidth="1.99999297"
android:pathData="M36,36 L36,40.2422 L67.7578,72 L72,72 L72,67.7578 L40.2422,36 Z" />
</group>
</vector>

View File

@@ -145,7 +145,7 @@
android:configChanges="keyboardHidden" />
<activity
android:name="com.kunzisoft.keepass.activities.EntryEditActivity"
android:windowSoftInputMode="adjustResize" />
android:windowSoftInputMode="adjustPan" />
<!-- About and Settings -->
<activity
android:name="com.kunzisoft.keepass.activities.AboutActivity"

View File

@@ -25,6 +25,7 @@ import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.annotation.RequiresApi
@@ -44,6 +45,7 @@ import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.utils.getParcelableCompat
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
import com.kunzisoft.keepass.utils.WebDomain
import java.lang.RuntimeException
@RequiresApi(api = Build.VERSION_CODES.O)
class AutofillLauncherActivity : DatabaseModeActivity() {
@@ -216,6 +218,8 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
companion object {
private val TAG = AutofillLauncherActivity::class.java.name
private const val KEY_SELECTION_BUNDLE = "KEY_SELECTION_BUNDLE"
private const val KEY_SEARCH_INFO = "KEY_SEARCH_INFO"
private const val KEY_INLINE_SUGGESTION = "KEY_INLINE_SUGGESTION"
@@ -224,8 +228,10 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
fun getPendingIntentForSelection(context: Context,
searchInfo: SearchInfo? = null,
compatInlineSuggestionsRequest: CompatInlineSuggestionsRequest? = null): PendingIntent {
return PendingIntent.getActivity(context, 0,
compatInlineSuggestionsRequest: CompatInlineSuggestionsRequest? = null): PendingIntent? {
try {
return PendingIntent.getActivity(
context, 0,
// Doesn't work with direct extra Parcelable (don't know why?)
// Wrap into a bundle to bypass the problem
Intent(context, AutofillLauncherActivity::class.java).apply {
@@ -240,12 +246,19 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_CANCEL_CURRENT
} else {
PendingIntent.FLAG_CANCEL_CURRENT
})
}
)
} catch (e: RuntimeException) {
Log.e(TAG, "Unable to create pending intent for selection", e)
return null
}
}
fun getPendingIntentForRegistration(context: Context,
registerInfo: RegisterInfo): PendingIntent {
return PendingIntent.getActivity(context, 0,
registerInfo: RegisterInfo): PendingIntent? {
try {
return PendingIntent.getActivity(
context, 0,
Intent(context, AutofillLauncherActivity::class.java).apply {
EntrySelectionHelper.addSpecialModeInIntent(this, SpecialMode.REGISTRATION)
putExtra(KEY_REGISTER_INFO, registerInfo)
@@ -254,7 +267,12 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_CANCEL_CURRENT
} else {
PendingIntent.FLAG_CANCEL_CURRENT
})
}
)
} catch (e: RuntimeException) {
Log.e(TAG, "Unable to create pending intent for registration", e)
return null
}
}
fun launchForRegistration(context: Context,

View File

@@ -23,6 +23,7 @@ import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
@@ -30,15 +31,20 @@ import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.ProgressBar
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.viewModels
import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.core.graphics.BlendModeColorFilterCompat
import androidx.core.graphics.BlendModeCompat
import androidx.core.graphics.ColorUtils
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.appbar.AppBarLayout
@@ -69,15 +75,19 @@ import com.kunzisoft.keepass.tasks.AttachmentFileBinderManager
import com.kunzisoft.keepass.timeout.TimeoutHelper
import com.kunzisoft.keepass.utils.UuidUtil
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
import com.kunzisoft.keepass.view.WindowInsetPosition
import com.kunzisoft.keepass.view.applyWindowInsets
import com.kunzisoft.keepass.view.changeControlColor
import com.kunzisoft.keepass.view.changeTitleColor
import com.kunzisoft.keepass.view.hideByFading
import com.kunzisoft.keepass.view.setTransparentNavigationBar
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
import com.kunzisoft.keepass.viewmodels.EntryViewModel
import java.util.UUID
class EntryActivity : DatabaseLockActivity() {
private var footer: ViewGroup? = null
private var coordinatorLayout: CoordinatorLayout? = null
private var collapsingToolbarLayout: CollapsingToolbarLayout? = null
private var appBarLayout: AppBarLayout? = null
@@ -128,6 +138,7 @@ class EntryActivity : DatabaseLockActivity() {
supportActionBar?.setDisplayShowHomeEnabled(true)
// Get views
footer = findViewById(R.id.activity_entry_footer)
coordinatorLayout = findViewById(R.id.toolbar_coordinator)
collapsingToolbarLayout = findViewById(R.id.toolbar_layout)
appBarLayout = findViewById(R.id.app_bar)
@@ -139,6 +150,14 @@ class EntryActivity : DatabaseLockActivity() {
lockView = findViewById(R.id.lock_button)
loadingView = findViewById(R.id.loading)
// To apply fit window with transparency
setTransparentNavigationBar {
// To fix margin with API 27
ViewCompat.setOnApplyWindowInsetsListener(collapsingToolbarLayout!!, null)
coordinatorLayout?.applyWindowInsets(WindowInsetPosition.TOP)
footer?.applyWindowInsets(WindowInsetPosition.BOTTOM)
}
// Empty title
collapsingToolbarLayout?.title = " "
toolbar?.title = " "

View File

@@ -30,6 +30,7 @@ import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ProgressBar
import android.widget.Spinner
@@ -89,8 +90,11 @@ import com.kunzisoft.keepass.timeout.TimeoutHelper
import com.kunzisoft.keepass.utils.UriUtil.getDocumentFile
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
import com.kunzisoft.keepass.view.ToolbarAction
import com.kunzisoft.keepass.view.WindowInsetPosition
import com.kunzisoft.keepass.view.applyWindowInsets
import com.kunzisoft.keepass.view.asError
import com.kunzisoft.keepass.view.hideByFading
import com.kunzisoft.keepass.view.setTransparentNavigationBar
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
import com.kunzisoft.keepass.view.updateLockPaddingLeft
import com.kunzisoft.keepass.viewmodels.ColorPickerViewModel
@@ -104,6 +108,8 @@ class EntryEditActivity : DatabaseLockActivity(),
ReplaceFileDialogFragment.ActionChooseListener {
// Views
private var footer: ViewGroup? = null
private var container: ViewGroup? = null
private var coordinatorLayout: CoordinatorLayout? = null
private var scrollView: NestedScrollView? = null
private var templateSelectorSpinner: Spinner? = null
@@ -156,10 +162,8 @@ class EntryEditActivity : DatabaseLockActivity(),
// Bottom Bar
entryEditAddToolBar = findViewById(R.id.entry_edit_bottom_bar)
setSupportActionBar(entryEditAddToolBar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setDisplayShowTitleEnabled(false)
footer = findViewById(R.id.activity_entry_edit_footer)
container = findViewById(R.id.activity_entry_edit_container)
coordinatorLayout = findViewById(R.id.entry_edit_coordinator_layout)
scrollView = findViewById(R.id.entry_edit_scroll)
scrollView?.scrollBarStyle = View.SCROLLBARS_INSIDE_INSET
@@ -168,6 +172,17 @@ class EntryEditActivity : DatabaseLockActivity(),
validateButton = findViewById(R.id.entry_edit_validate)
loadingView = findViewById(R.id.loading)
setSupportActionBar(entryEditAddToolBar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setDisplayShowTitleEnabled(false)
// To apply fit window with transparency
setTransparentNavigationBar(applyToStatusBar = true) {
container?.applyWindowInsets(WindowInsetPosition.TOP)
footer?.applyWindowInsets(WindowInsetPosition.BOTTOM)
}
stopService(Intent(this, ClipboardEntryNotificationService::class.java))
stopService(Intent(this, KeyboardEntryNotificationService::class.java))
@@ -691,16 +706,16 @@ class EntryEditActivity : DatabaseLockActivity(),
return true
}
android.R.id.home -> {
onBackPressed()
onDatabaseBackPressed()
}
}
return super.onOptionsItemSelected(item)
}
override fun onBackPressed() {
override fun onDatabaseBackPressed() {
onApprovedBackPressed {
super@EntryEditActivity.onBackPressed()
super@EntryEditActivity.onDatabaseBackPressed()
}
}

View File

@@ -35,6 +35,7 @@ import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.ProgressBar
import android.widget.TextView
@@ -105,7 +106,10 @@ import com.kunzisoft.keepass.view.AddNodeButtonView
import com.kunzisoft.keepass.view.NavigationDatabaseView
import com.kunzisoft.keepass.view.SearchFiltersView
import com.kunzisoft.keepass.view.ToolbarAction
import com.kunzisoft.keepass.view.WindowInsetPosition
import com.kunzisoft.keepass.view.applyWindowInsets
import com.kunzisoft.keepass.view.hideByFading
import com.kunzisoft.keepass.view.setTransparentNavigationBar
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
import com.kunzisoft.keepass.view.updateLockPaddingLeft
import com.kunzisoft.keepass.viewmodels.GroupEditViewModel
@@ -121,6 +125,8 @@ class GroupActivity : DatabaseLockActivity(),
MainCredentialDialogFragment.AskMainCredentialDialogListener {
// Views
private var header: ViewGroup? = null
private var footer: ViewGroup? = null
private var drawerLayout: DrawerLayout? = null
private var databaseNavView: NavigationDatabaseView? = null
private var coordinatorLayout: CoordinatorLayout? = null
@@ -267,6 +273,8 @@ class GroupActivity : DatabaseLockActivity(),
setContentView(layoutInflater.inflate(R.layout.activity_group, null))
// Initialize views
header = findViewById(R.id.activity_group_header)
footer = findViewById(R.id.activity_group_footer)
drawerLayout = findViewById(R.id.drawer_layout)
databaseNavView = findViewById(R.id.database_nav_view)
coordinatorLayout = findViewById(R.id.group_coordinator)
@@ -283,6 +291,13 @@ class GroupActivity : DatabaseLockActivity(),
lockView = findViewById(R.id.lock_button)
loadingView = findViewById(R.id.loading)
// To apply fit window with transparency
setTransparentNavigationBar {
header?.applyWindowInsets(WindowInsetPosition.TOP)
coordinatorLayout?.applyWindowInsets(WindowInsetPosition.LEGIT_TOP)
footer?.applyWindowInsets(WindowInsetPosition.BOTTOM)
}
lockView?.setOnClickListener {
lockAndExit()
}
@@ -1339,7 +1354,7 @@ class GroupActivity : DatabaseLockActivity(),
}
}
override fun onBackPressed() {
override fun onDatabaseBackPressed() {
if (mGroupFragment?.nodeActionSelectionMode == true) {
finishNodeAction()
} else {

View File

@@ -239,7 +239,7 @@ class IconPickerActivity : DatabaseLockActivity() {
if (mCustomIconsSelectionMode) {
iconPickerViewModel.deselectAllCustomIcons()
} else {
onBackPressed()
onDatabaseBackPressed()
}
}
R.id.menu_edit -> {
@@ -329,9 +329,9 @@ class IconPickerActivity : DatabaseLockActivity() {
})
}
override fun onBackPressed() {
override fun onDatabaseBackPressed() {
setResult()
super.onBackPressed()
super.onDatabaseBackPressed()
}
companion object {

View File

@@ -96,7 +96,7 @@ class KeyGeneratorActivity : DatabaseLockActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
onBackPressed()
onDatabaseBackPressed()
}
R.id.menu_generate -> {
keyGeneratorViewModel.requireKeyGeneration()
@@ -106,9 +106,9 @@ class KeyGeneratorActivity : DatabaseLockActivity() {
return super.onOptionsItemSelected(item)
}
override fun onBackPressed() {
override fun onDatabaseBackPressed() {
setResult(Activity.RESULT_CANCELED, Intent())
super.onBackPressed()
super.onDatabaseBackPressed()
}
companion object {

View File

@@ -165,18 +165,6 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
startActivity(Intent(this, AppearanceSettingsActivity::class.java))
}
// Init Biometric elements
advancedUnlockFragment = supportFragmentManager
.findFragmentByTag(UNLOCK_FRAGMENT_TAG) as? AdvancedUnlockFragment?
if (advancedUnlockFragment == null) {
advancedUnlockFragment = AdvancedUnlockFragment()
supportFragmentManager.commit {
replace(R.id.fragment_advanced_unlock_container_view,
advancedUnlockFragment!!,
UNLOCK_FRAGMENT_TAG)
}
}
// Listen password checkbox to init advanced unlock and confirmation button
mainCredentialView?.onPasswordChecked =
CompoundButton.OnCheckedChangeListener { _, _ ->
@@ -245,6 +233,23 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
override fun onResume() {
super.onResume()
// Init Biometric elements only if allowed
if (PreferencesUtil.isAdvancedUnlockEnable(this)) {
advancedUnlockFragment = supportFragmentManager
.findFragmentByTag(UNLOCK_FRAGMENT_TAG) as? AdvancedUnlockFragment?
if (advancedUnlockFragment == null) {
advancedUnlockFragment = AdvancedUnlockFragment().also {
supportFragmentManager.commit {
replace(
R.id.fragment_advanced_unlock_container_view,
it,
UNLOCK_FRAGMENT_TAG
)
}
}
}
}
mRememberKeyFile = PreferencesUtil.rememberKeyFileLocations(this@MainCredentialActivity)
mRememberHardwareKey = PreferencesUtil.rememberHardwareKey(this@MainCredentialActivity)

View File

@@ -463,14 +463,14 @@ abstract class DatabaseLockActivity : DatabaseModeActivity(),
mDatabase?.loaded ?: false)
}
override fun onBackPressed() {
override fun onDatabaseBackPressed() {
if (mTimeoutEnable) {
TimeoutHelper.checkTimeAndLockIfTimeoutOrResetTimeout(this,
mDatabase?.loaded == true) {
super.onBackPressed()
super.onDatabaseBackPressed()
}
} else {
super.onBackPressed()
super.onDatabaseBackPressed()
}
}

View File

@@ -3,6 +3,7 @@ package com.kunzisoft.keepass.activities.legacy
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.activity.OnBackPressedCallback
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.helpers.EntrySelectionHelper
import com.kunzisoft.keepass.activities.helpers.SpecialMode
@@ -22,18 +23,20 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
private var mToolbarSpecial: ToolbarSpecial? = null
override fun onBackPressed() {
open fun onDatabaseBackPressed() {
if (mSpecialMode != SpecialMode.DEFAULT)
onCancelSpecialMode()
else
super.onBackPressed()
onRegularBackPressed()
}
/**
* To call the regular onBackPressed() method in special mode
*/
protected fun onRegularBackPressed() {
super.onBackPressed()
// Do not call onBackPressedDispatcher.onBackPressed() to avoid loop
// Calling onBackPressed() is now deprecated, directly finish the activity
finish()
}
/**
@@ -72,7 +75,7 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
open fun onCancelSpecialMode() {
if (isIntentSender()) {
// To get the app caller, only for IntentSender
super.onBackPressed()
onRegularBackPressed()
} else {
EntrySelectionHelper.removeModesFromIntent(intent)
EntrySelectionHelper.removeInfoFromIntent(intent)
@@ -85,7 +88,7 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
protected fun backToTheAppCaller() {
if (isIntentSender()) {
// To get the app caller, only for IntentSender
super.onBackPressed()
onRegularBackPressed()
} else {
backToTheMainAppAndFinish()
}
@@ -100,6 +103,12 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
onDatabaseBackPressed()
}
})
mSpecialMode = EntrySelectionHelper.retrieveSpecialModeFromIntent(intent)
mTypeMode = EntrySelectionHelper.retrieveTypeModeFromIntent(intent)
}

View File

@@ -117,7 +117,7 @@ class BreadcrumbAdapter(val context: Context)
PreferencesUtil.showExpiredEntries(context)
)
)
text = group.numberOfChildEntries.toString()
text = group.recursiveNumberOfChildEntries.toString()
visibility = View.VISIBLE
} else {
visibility = View.GONE

View File

@@ -197,6 +197,7 @@ class NodesAdapter (
&& oldItem.containsAttachment() == newItem.containsAttachment()
} else if (oldItem is Group && newItem is Group) {
typeContentTheSame = oldItem.numberOfChildEntries == newItem.numberOfChildEntries
&& oldItem.recursiveNumberOfChildEntries == newItem.recursiveNumberOfChildEntries
&& oldItem.notes == newItem.notes
}
return typeContentTheSame
@@ -472,7 +473,7 @@ class NodesAdapter (
if (mShowNumberEntries) {
holder.numberChildren?.apply {
text = (subNode as Group)
.numberOfChildEntries
.recursiveNumberOfChildEntries
.toString()
setTextSize(mTextSizeUnit, mNumberChildrenTextDefaultDimension, mPrefSizeMultiplier)
visibility = View.VISIBLE

View File

@@ -1,7 +1,6 @@
package com.kunzisoft.keepass.autofill
import android.app.assist.AssistStructure
import android.view.inputmethod.InlineSuggestionsRequest
data class AutofillComponent(val assistStructure: AssistStructure,
val compatInlineSuggestionsRequest: CompatInlineSuggestionsRequest?)

View File

@@ -29,9 +29,12 @@ import android.graphics.BlendMode
import android.graphics.drawable.Icon
import android.os.Build
import android.service.autofill.Dataset
import android.service.autofill.Field
import android.service.autofill.FillResponse
import android.service.autofill.InlinePresentation
import android.service.autofill.Presentations
import android.util.Log
import android.view.autofill.AutofillId
import android.view.autofill.AutofillManager
import android.view.autofill.AutofillValue
import android.widget.RemoteViews
@@ -93,36 +96,82 @@ object AutofillHelper {
database: ContextualDatabase,
remoteViewsText: String,
remoteViewsIcon: IconImage? = null): RemoteViews {
val presentation = RemoteViews(context.packageName, R.layout.item_autofill_entry)
presentation.setTextViewText(R.id.autofill_entry_text, remoteViewsText)
val remoteViews = RemoteViews(context.packageName, R.layout.item_autofill_entry)
remoteViews.setTextViewText(R.id.autofill_entry_text, remoteViewsText)
if (remoteViewsIcon != null) {
try {
database.iconDrawableFactory.getBitmapFromIcon(context,
remoteViewsIcon, ContextCompat.getColor(context, R.color.green))?.let { bitmap ->
presentation.setImageViewBitmap(R.id.autofill_entry_icon, bitmap)
remoteViews.setImageViewBitmap(R.id.autofill_entry_icon, bitmap)
}
} catch (e: Exception) {
Log.e(RemoteViews::class.java.name, "Unable to assign icon in remote view", e)
}
}
return presentation
return remoteViews
}
private fun buildDataset(context: Context,
private fun Dataset.Builder.addValueToDatasetBuilder(
id: AutofillId,
autofillValue: AutofillValue?
): Dataset.Builder {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
setField(
id, autofillValue?.let {
Field.Builder()
.setValue(it)
.build()
}
)
} else {
@Suppress("DEPRECATION")
setValue(id, autofillValue)
}
Log.d(TAG, "Set Autofill value $autofillValue for id $id")
return this
}
private fun buildDatasetForEntry(context: Context,
database: ContextualDatabase,
entryInfo: EntryInfo,
struct: StructureParser.Result,
additionalBuild: ((build: Dataset.Builder) -> Unit)? = null): Dataset? {
val title = makeEntryTitle(entryInfo)
val views = newRemoteViews(context, database, title, entryInfo.icon)
val builder = Dataset.Builder(views)
builder.setId(entryInfo.id.toString())
inlinePresentation: InlinePresentation?): Dataset {
val remoteViews: RemoteViews = newRemoteViews(context, database, makeEntryTitle(entryInfo), entryInfo.icon)
val datasetBuilder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
Dataset.Builder(Presentations.Builder()
.apply {
inlinePresentation?.let {
setInlinePresentation(inlinePresentation)
}
}
.setDialogPresentation(remoteViews)
.setMenuPresentation(remoteViews)
.build())
} else {
@Suppress("DEPRECATION")
Dataset.Builder(remoteViews).apply {
inlinePresentation?.let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
setInlinePresentation(inlinePresentation)
}
}
}
}
datasetBuilder.setId(entryInfo.id.toString())
struct.usernameId?.let { usernameId ->
builder.setValue(usernameId, AutofillValue.forText(entryInfo.username))
datasetBuilder.addValueToDatasetBuilder(
usernameId,
AutofillValue.forText(entryInfo.username)
)
}
struct.passwordId?.let { passwordId ->
builder.setValue(passwordId, AutofillValue.forText(entryInfo.password))
datasetBuilder.addValueToDatasetBuilder(
passwordId,
AutofillValue.forText(entryInfo.password)
)
}
if (entryInfo.expires) {
@@ -135,9 +184,15 @@ object AutofillHelper {
struct.creditCardExpirationDateId?.let {
if (struct.isWebView) {
// set date string as defined in https://html.spec.whatwg.org
builder.setValue(it, AutofillValue.forText("$year\u002D$monthString"))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forText("$year\u002D$monthString")
)
} else {
builder.setValue(it, AutofillValue.forDate(entryInfo.expiryTime.date.time))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forDate(entryInfo.expiryTime.date.time)
)
}
}
struct.creditCardExpirationYearId?.let {
@@ -151,34 +206,58 @@ object AutofillHelper {
}
if (yearIndex != -1) {
autofillValue = AutofillValue.forList(yearIndex)
builder.setValue(it, autofillValue)
datasetBuilder.addValueToDatasetBuilder(
it,
autofillValue
)
}
}
if (autofillValue == null) {
builder.setValue(it, AutofillValue.forText(year.toString()))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forText(year.toString())
)
}
}
struct.creditCardExpirationMonthId?.let {
if (struct.isWebView) {
builder.setValue(it, AutofillValue.forText(monthString))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forText(monthString)
)
} else {
if (struct.creditCardExpirationMonthOptions != null) {
// index starts at 0
builder.setValue(it, AutofillValue.forList(month - 1))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forList(month - 1)
)
} else {
builder.setValue(it, AutofillValue.forText(monthString))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forText(monthString)
)
}
}
}
struct.creditCardExpirationDayId?.let {
if (struct.isWebView) {
builder.setValue(it, AutofillValue.forText(dayString))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forText(dayString)
)
} else {
if (struct.creditCardExpirationDayOptions != null) {
builder.setValue(it, AutofillValue.forList(day - 1))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forList(day - 1)
)
} else {
builder.setValue(it, AutofillValue.forText(dayString))
datasetBuilder.addValueToDatasetBuilder(
it,
AutofillValue.forText(dayString)
)
}
}
}
@@ -186,29 +265,32 @@ object AutofillHelper {
for (field in entryInfo.customFields) {
if (field.name == TemplateField.LABEL_HOLDER) {
struct.creditCardHolderId?.let { ccNameId ->
builder.setValue(ccNameId, AutofillValue.forText(field.protectedValue.stringValue))
datasetBuilder.addValueToDatasetBuilder(
ccNameId,
AutofillValue.forText(field.protectedValue.stringValue)
)
}
}
if (field.name == TemplateField.LABEL_NUMBER) {
struct.creditCardNumberId?.let { ccnId ->
builder.setValue(ccnId, AutofillValue.forText(field.protectedValue.stringValue))
datasetBuilder.addValueToDatasetBuilder(
ccnId,
AutofillValue.forText(field.protectedValue.stringValue)
)
}
}
if (field.name == TemplateField.LABEL_CVV) {
struct.cardVerificationValueId?.let { cvvId ->
builder.setValue(cvvId, AutofillValue.forText(field.protectedValue.stringValue))
datasetBuilder.addValueToDatasetBuilder(
cvvId,
AutofillValue.forText(field.protectedValue.stringValue)
)
}
}
}
additionalBuild?.invoke(builder)
return try {
builder.build()
} catch (e: Exception) {
// at least one value must be set
null
}
val dataset = datasetBuilder.build()
Log.d(TAG, "Autofill Dataset $dataset created")
return dataset
}
/**
@@ -228,8 +310,8 @@ object AutofillHelper {
return null
}
@RequiresApi(Build.VERSION_CODES.R)
@SuppressLint("RestrictedApi")
@RequiresApi(Build.VERSION_CODES.R)
private fun buildInlinePresentationForEntry(context: Context,
database: ContextualDatabase,
compatInlineSuggestionsRequest: CompatInlineSuggestionsRequest,
@@ -335,25 +417,33 @@ object AutofillHelper {
}
}
}
}
entriesInfo.forEachIndexed { _, entry ->
if (numberInlineSuggestions > 0
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
try {
// Build inline presentation for compatible keyboard
var inlinePresentation: InlinePresentation? = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
&& numberInlineSuggestions > 0
&& compatInlineSuggestionsRequest != null) {
responseBuilder.addDataset(buildDataset(context, database, entry, parseResult) { builder ->
buildInlinePresentationForEntry(context, database,
compatInlineSuggestionsRequest, numberInlineSuggestions--, entry
)?.let { inlinePresentation ->
builder.setInlinePresentation(inlinePresentation)
inlinePresentation = buildInlinePresentationForEntry(
context,
database,
compatInlineSuggestionsRequest,
numberInlineSuggestions--,
entry
)
}
})
} else {
responseBuilder.addDataset(buildDataset(context, database, entry, parseResult))
// Create dataset for each entry
responseBuilder.addDataset(
buildDatasetForEntry(context, database, entry, parseResult, inlinePresentation)
)
} catch (e: Exception) {
Log.e(TAG, "Unable to add dataset")
}
}
// Add a new dataset for manual selection
if (PreferencesUtil.isAutofillManualSelectionEnable(context)) {
val searchInfo = SearchInfo().apply {
applicationId = parseResult.applicationId
@@ -362,25 +452,51 @@ object AutofillHelper {
manualSelection = true
}
val manualSelectionView = RemoteViews(context.packageName, R.layout.item_autofill_select_entry)
val pendingIntent = AutofillLauncherActivity.getPendingIntentForSelection(context,
searchInfo, compatInlineSuggestionsRequest)
AutofillLauncherActivity.getPendingIntentForSelection(context,
searchInfo, compatInlineSuggestionsRequest)?.let { pendingIntent ->
var inlinePresentation: InlinePresentation? = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
compatInlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
val inlinePresentationSpec =
inlineSuggestionsRequest.inlinePresentationSpecs[0]
inlinePresentation = buildInlinePresentationForManualSelection(
context,
inlinePresentationSpec,
pendingIntent
)
}
}
val datasetBuilder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
Dataset.Builder(Presentations.Builder()
.apply {
inlinePresentation?.let {
setInlinePresentation(it)
}
}
.setDialogPresentation(manualSelectionView)
.setMenuPresentation(manualSelectionView)
.build())
} else {
@Suppress("DEPRECATION")
Dataset.Builder(manualSelectionView).apply {
inlinePresentation?.let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
setInlinePresentation(it)
}
}
}
}
parseResult.allAutofillIds().let { autofillIds ->
autofillIds.forEach { id ->
val builder = Dataset.Builder(manualSelectionView)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
compatInlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
val inlinePresentationSpec = inlineSuggestionsRequest.inlinePresentationSpecs[0]
val inlinePresentation = buildInlinePresentationForManualSelection(context, inlinePresentationSpec, pendingIntent)
inlinePresentation?.let {
builder.setInlinePresentation(it)
datasetBuilder.addValueToDatasetBuilder(id, null)
datasetBuilder.setAuthentication(pendingIntent.intentSender)
}
}
}
builder.setValue(id, null)
builder.setAuthentication(pendingIntent.intentSender)
responseBuilder.addDataset(builder.build())
val dataset = datasetBuilder.build()
Log.d(TAG, "Autofill Dataset for manual selection $dataset created")
responseBuilder.addDataset(dataset)
}
}
}
@@ -388,6 +504,7 @@ object AutofillHelper {
return try {
responseBuilder.build()
} catch (e: Exception) {
Log.e(TAG, "Unable to create Autofill response", e)
null
}
}
@@ -424,7 +541,7 @@ object AutofillHelper {
buildResponse(activity, database, entriesInfo, result, null)
}
val mReplyIntent = Intent()
Log.d(activity.javaClass.name, "Successed Autofill auth.")
Log.d(activity.javaClass.name, "Success Autofill auth.")
mReplyIntent.putExtra(
AutofillManager.EXTRA_AUTHENTICATION_RESULT,
response)
@@ -479,4 +596,6 @@ object AutofillHelper {
EntrySelectionHelper.addSearchInfoInIntent(intent, searchInfo)
activityResultLauncher?.launch(intent)
}
private val TAG = AutofillHelper::class.java.name
}

View File

@@ -45,7 +45,6 @@ import com.kunzisoft.keepass.settings.AutofillSettingsActivity
import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.utils.WebDomain
import org.joda.time.DateTime
import java.util.concurrent.atomic.AtomicBoolean
@RequiresApi(api = Build.VERSION_CODES.O)
@@ -57,7 +56,6 @@ class KeeAutofillService : AutofillService() {
private var webDomainBlocklist: Set<String>? = null
private var askToSaveData: Boolean = false
private var autofillInlineSuggestionsEnabled: Boolean = false
private var mLock = AtomicBoolean()
override fun onCreate() {
super.onCreate()
@@ -90,9 +88,12 @@ class KeeAutofillService : AutofillService() {
cancellationSignal.setOnCancelListener { Log.w(TAG, "Cancel autofill.") }
// Lock
if (!mLock.get()) {
mLock.set(true)
if (request.flags and FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST != 0) {
Log.d(TAG, "Autofill requested in compatibility mode")
} else {
Log.d(TAG, "Autofill requested in native mode")
}
// Check user's settings for authenticating Responses and Datasets.
val latestStructure = request.fillContexts.last().structure
StructureParser(latestStructure).parse()?.let { parseResult ->
@@ -122,7 +123,6 @@ class KeeAutofillService : AutofillService() {
}
}
}
}
private fun launchSelection(database: ContextualDatabase?,
searchInfo: SearchInfo,
@@ -157,12 +157,13 @@ class KeeAutofillService : AutofillService() {
searchInfo: SearchInfo,
inlineSuggestionsRequest: CompatInlineSuggestionsRequest?,
callback: FillCallback) {
var success = false
parseResult.allAutofillIds().let { autofillIds ->
if (autofillIds.isNotEmpty()) {
// If the entire Autofill Response is authenticated, AuthActivity is used
// to generate Response.
val intentSender = AutofillLauncherActivity.getPendingIntentForSelection(this,
searchInfo, inlineSuggestionsRequest).intentSender
AutofillLauncherActivity.getPendingIntentForSelection(this,
searchInfo, inlineSuggestionsRequest)?.intentSender?.let { intentSender ->
val responseBuilder = FillResponse.Builder()
val remoteViewsUnlock: RemoteViews = if (database == null) {
if (!parseResult.webDomain.isNullOrEmpty()) {
@@ -197,7 +198,10 @@ class KeeAutofillService : AutofillService() {
)
}
} else if (!parseResult.applicationId.isNullOrEmpty()) {
RemoteViews(packageName, R.layout.item_autofill_select_entry_app_id).apply {
RemoteViews(
packageName,
R.layout.item_autofill_select_entry_app_id
).apply {
setTextViewText(
R.id.autofill_app_id_text,
parseResult.applicationId
@@ -247,49 +251,103 @@ class KeeAutofillService : AutofillService() {
// Build inline presentation
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
&& autofillInlineSuggestionsEnabled) {
&& autofillInlineSuggestionsEnabled
) {
var inlinePresentation: InlinePresentation? = null
inlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
val inlinePresentationSpecs = inlineSuggestionsRequest.inlinePresentationSpecs
val inlinePresentationSpecs =
inlineSuggestionsRequest.inlinePresentationSpecs
if (inlineSuggestionsRequest.maxSuggestionCount > 0
&& inlinePresentationSpecs.size > 0) {
&& inlinePresentationSpecs.size > 0
) {
val inlinePresentationSpec = inlinePresentationSpecs[0]
// Make sure that the IME spec claims support for v1 UI template.
val imeStyle = inlinePresentationSpec.style
if (UiVersions.getVersions(imeStyle).contains(UiVersions.INLINE_UI_VERSION_1)) {
if (UiVersions.getVersions(imeStyle)
.contains(UiVersions.INLINE_UI_VERSION_1)
) {
// Build the content for IME UI
inlinePresentation = InlinePresentation(
InlineSuggestionUi.newContentBuilder(
PendingIntent.getActivity(this,
PendingIntent.getActivity(
this,
0,
Intent(this, AutofillSettingsActivity::class.java),
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
PendingIntent.FLAG_IMMUTABLE
} else {
0
})
}
)
).apply {
setContentDescription(getString(R.string.autofill_sign_in_prompt))
setTitle(getString(R.string.autofill_sign_in_prompt))
setStartIcon(Icon.createWithResource(this@KeeAutofillService, R.mipmap.ic_launcher_round).apply {
setStartIcon(
Icon.createWithResource(
this@KeeAutofillService,
R.mipmap.ic_launcher_round
).apply {
setTintBlendMode(BlendMode.DST)
})
}.build().slice, inlinePresentationSpec, false)
}
}
}
// Build response
responseBuilder.setAuthentication(autofillIds, intentSender, remoteViewsUnlock, inlinePresentation)
} else {
responseBuilder.setAuthentication(autofillIds, intentSender, remoteViewsUnlock)
}
callback.onSuccess(responseBuilder.build())
}.build().slice, inlinePresentationSpec, false
)
}
}
}
// Build response
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
try {
// Buggy method on some API 33 devices
responseBuilder.setAuthentication(
autofillIds,
intentSender,
Presentations.Builder().apply {
inlinePresentation?.let {
setInlinePresentation(it)
}
setDialogPresentation(remoteViewsUnlock)
}.build()
)
} catch (e: Exception) {
Log.e(TAG, "Unable to use the new setAuthentication method.", e)
@Suppress("DEPRECATION")
responseBuilder.setAuthentication(
autofillIds,
intentSender,
remoteViewsUnlock,
inlinePresentation
)
}
} else {
@Suppress("DEPRECATION")
responseBuilder.setAuthentication(
autofillIds,
intentSender,
remoteViewsUnlock,
inlinePresentation
)
}
} else {
@Suppress("DEPRECATION")
responseBuilder.setAuthentication(
autofillIds,
intentSender,
remoteViewsUnlock
)
}
success = true
callback.onSuccess(responseBuilder.build())
}
}
}
if (!success)
callback.onFailure("Unable to get Autofill ids for UI selection")
}
override fun onSaveRequest(request: SaveRequest, callback: SaveCallback) {
var success = false
if (askToSaveData) {
val latestStructure = request.fillContexts.last().structure
StructureParser(latestStructure).parse(true)?.let { parseResult ->
@@ -333,14 +391,16 @@ class KeeAutofillService : AutofillService() {
// registerInfo))
//} else {
AutofillLauncherActivity.launchForRegistration(this, registerInfo)
success = true
callback.onSuccess()
//}
return
}
}
}
if (!success) {
callback.onFailure("Saving form values is not allowed")
}
}
override fun onConnected() {
Log.d(TAG, "onConnected")
@@ -348,7 +408,6 @@ class KeeAutofillService : AutofillService() {
}
override fun onDisconnected() {
mLock.set(false)
Log.d(TAG, "onDisconnected")
}

View File

@@ -105,7 +105,7 @@ class StructureParser(private val structure: AssistStructure) {
if (node.autofillId != null) {
// Parse methods
val hints = node.autofillHints
if (hints != null && hints.isNotEmpty()) {
if (!hints.isNullOrEmpty()) {
if (parseNodeByAutofillHint(node))
returnValue = true
} else if (parseNodeByHtmlAttributes(node))
@@ -135,11 +135,24 @@ class StructureParser(private val structure: AssistStructure) {
|| it.contains(View.AUTOFILL_HINT_EMAIL_ADDRESS, true)
|| it.contains("email", true)
|| it.contains(View.AUTOFILL_HINT_PHONE, true) -> {
// Replace username until we have a password
if (result?.passwordId == null) {
result?.usernameId = autofillId
result?.usernameValue = node.autofillValue
Log.d(TAG, "Autofill username hint")
Log.d(TAG, "Autofill username hint if no password")
} else {
usernameIdCandidate = autofillId
usernameValueCandidate = node.autofillValue
Log.d(TAG, "Autofill username hint if password")
}
}
it.contains(View.AUTOFILL_HINT_PASSWORD, true) -> {
// Password Id changed if it's the second times we are here,
// So the last username candidate is most appropriate
if (result?.passwordId != null) {
result?.usernameId = usernameIdCandidate
result?.usernameValue = usernameValueCandidate
}
result?.passwordId = autofillId
result?.passwordValue = node.autofillValue
Log.d(TAG, "Autofill password hint")
@@ -279,15 +292,20 @@ class StructureParser(private val structure: AssistStructure) {
"type" -> {
when (pairAttribute.second.lowercase(Locale.ENGLISH)) {
"tel", "email" -> {
if (result?.passwordId == null) {
result?.usernameId = autofillId
result?.usernameValue = node.autofillValue
Log.d(TAG, "Autofill username web type: ${node.htmlInfo?.tag} ${node.htmlInfo?.attributes}")
}
}
"text" -> {
// Assume username is before password
if (result?.passwordId == null) {
usernameIdCandidate = autofillId
usernameValueCandidate = node.autofillValue
Log.d(TAG, "Autofill username candidate web type: ${node.htmlInfo?.tag} ${node.htmlInfo?.attributes}")
}
}
"password" -> {
result?.passwordId = autofillId
result?.passwordValue = node.autofillValue
@@ -324,22 +342,28 @@ class StructureParser(private val structure: AssistStructure) {
inputIsVariationType(inputType,
InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS,
InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS) -> {
if (result?.passwordId == null) {
result?.usernameId = autofillId
result?.usernameValue = node.autofillValue
Log.d(TAG, "Autofill username android text type: ${showHexInputType(inputType)}")
}
}
inputIsVariationType(inputType,
InputType.TYPE_TEXT_VARIATION_NORMAL,
InputType.TYPE_TEXT_VARIATION_PERSON_NAME,
InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT) -> {
// Assume the username field is before the password field
if (result?.passwordId == null) {
usernameIdCandidate = autofillId
usernameValueCandidate = node.autofillValue
}
Log.d(TAG, "Autofill username candidate android text type: ${showHexInputType(inputType)}")
}
inputIsVariationType(inputType,
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) -> {
// Some forms used visible password as username
if (usernameIdCandidate == null && usernameValueCandidate == null) {
if (result?.passwordId == null &&
usernameIdCandidate == null && usernameValueCandidate == null) {
usernameIdCandidate = autofillId
usernameValueCandidate = node.autofillValue
Log.d(TAG, "Autofill visible password android text type (as username): ${showHexInputType(inputType)}")
@@ -422,58 +446,22 @@ class StructureParser(private val structure: AssistStructure) {
var creditCardExpirationDayOptions: Array<CharSequence>? = null
var usernameId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var passwordId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var creditCardHolderId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var creditCardNumberId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var creditCardExpirationDateId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var creditCardExpirationYearId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var creditCardExpirationMonthId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var creditCardExpirationDayId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
var cardVerificationValueId: AutofillId? = null
set(value) {
if (field == null)
field = value
}
fun allAutofillIds(): Array<AutofillId> {
val all = ArrayList<AutofillId>()
@@ -500,13 +488,13 @@ class StructureParser(private val structure: AssistStructure) {
var usernameValue: AutofillValue? = null
set(value) {
if (allowSaveValues && field == null)
if (allowSaveValues)
field = value
}
var passwordValue: AutofillValue? = null
set(value) {
if (allowSaveValues && field == null)
if (allowSaveValues)
field = value
}

View File

@@ -44,7 +44,8 @@ open class SaveDatabaseRunnable(
override fun onActionRun() {
database.checkVersion()
if (saveDatabase && result.isSuccess) {
// Save database in all cases if it's a copy
if ((databaseCopyUri != null || saveDatabase) && result.isSuccess) {
try {
val contentResolver = context.contentResolver
// Build temp database file to avoid file corruption if error

View File

@@ -19,35 +19,16 @@
*/
package com.kunzisoft.keepass.settings
import android.os.Bundle
import android.view.MenuItem
import androidx.appcompat.widget.Toolbar
import androidx.preference.PreferenceFragmentCompat
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.legacy.DatabaseModeActivity
class AutofillSettingsActivity : DatabaseModeActivity() {
class AutofillSettingsActivity : ExternalSettingsActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_toolbar)
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitle(R.string.autofill_preference_title)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
if (savedInstanceState == null) {
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, AutofillSettingsFragment())
.commit()
}
override fun retrieveTitle(): Int {
return R.string.autofill_preference_title
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> onBackPressed()
}
return super.onOptionsItemSelected(item)
override fun retrievePreferenceFragment(): PreferenceFragmentCompat {
return AutofillSettingsFragment()
}
}

View File

@@ -0,0 +1,47 @@
package com.kunzisoft.keepass.settings
import android.os.Bundle
import android.view.MenuItem
import androidx.annotation.StringRes
import androidx.appcompat.widget.Toolbar
import androidx.preference.PreferenceFragmentCompat
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.legacy.DatabaseModeActivity
abstract class ExternalSettingsActivity : DatabaseModeActivity() {
private var lockView: FloatingActionButton? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_toolbar)
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitle(retrieveTitle())
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
lockView = findViewById(R.id.lock_button)
lockView?.hide()
if (savedInstanceState == null) {
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, retrievePreferenceFragment())
.commit()
}
}
@StringRes
abstract fun retrieveTitle(): Int
abstract fun retrievePreferenceFragment(): PreferenceFragmentCompat
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> onDatabaseBackPressed()
}
return super.onOptionsItemSelected(item)
}
}

View File

@@ -19,37 +19,17 @@
*/
package com.kunzisoft.keepass.settings
import android.os.Bundle
import androidx.appcompat.widget.Toolbar
import android.view.MenuItem
import androidx.preference.PreferenceFragmentCompat
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.legacy.DatabaseModeActivity
class MagikeyboardSettingsActivity : DatabaseModeActivity() {
class MagikeyboardSettingsActivity : ExternalSettingsActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_toolbar)
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitle(R.string.keyboard_setting_label)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
if (savedInstanceState == null) {
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, MagikeyboardSettingsFragment())
.commit()
}
override fun retrieveTitle(): Int {
return R.string.keyboard_setting_label
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> onBackPressed()
}
return super.onOptionsItemSelected(item)
override fun retrievePreferenceFragment(): PreferenceFragmentCompat {
return MagikeyboardSettingsFragment()
}
}

View File

@@ -120,17 +120,20 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
activity?.let { activity ->
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val autoFillEnablePreference: TwoStatePreference? = findPreference(getString(R.string.settings_autofill_enable_key))
val autofillManager = activity.getSystemService(AutofillManager::class.java)
if (autofillManager != null && autofillManager.hasEnabledAutofillServices())
activity.getSystemService(AutofillManager::class.java)?.let { autofillManager ->
if (autofillManager.hasEnabledAutofillServices())
autoFillEnablePreference?.isChecked = autofillManager.hasEnabledAutofillServices()
autoFillEnablePreference?.onPreferenceClickListener = object : Preference.OnPreferenceClickListener {
autoFillEnablePreference?.onPreferenceClickListener =
object : Preference.OnPreferenceClickListener {
@RequiresApi(api = Build.VERSION_CODES.O)
override fun onPreferenceClick(preference: Preference): Boolean {
if ((preference as TwoStatePreference).isChecked) {
try {
enableService()
} catch (e: ActivityNotFoundException) {
val error = getString(R.string.error_autofill_enable_service)
val error =
getString(R.string.error_autofill_enable_service)
preference.isChecked = false
Log.d(javaClass.name, error, e)
Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
@@ -144,7 +147,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
@RequiresApi(api = Build.VERSION_CODES.O)
private fun disableService() {
if (autofillManager != null && autofillManager.hasEnabledAutofillServices()) {
if (autofillManager.hasEnabledAutofillServices()) {
autofillManager.disableAutofillServices()
} else {
Log.d(javaClass.name, "Autofill service already disabled.")
@@ -154,9 +157,11 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
@RequiresApi(api = Build.VERSION_CODES.O)
@Throws(ActivityNotFoundException::class)
private fun enableService() {
if (autofillManager != null && !autofillManager.hasEnabledAutofillServices()) {
val intent = Intent(Settings.ACTION_REQUEST_SET_AUTOFILL_SERVICE)
intent.data = Uri.parse("package:com.kunzisoft.keepass.autofill.KeeAutofillService")
if (!autofillManager.hasEnabledAutofillServices()) {
val intent =
Intent(Settings.ACTION_REQUEST_SET_AUTOFILL_SERVICE)
intent.data =
Uri.parse("package:com.kunzisoft.keepass.autofill.KeeAutofillService")
Log.d(javaClass.name, "Autofill enable service: intent=$intent")
startActivity(intent)
} else {
@@ -164,6 +169,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
}
}
}
}
} else {
findPreference<Preference>(getString(R.string.autofill_key))?.isVisible = false
}

View File

@@ -26,6 +26,7 @@ import android.os.Bundle
import android.util.Log
import android.view.MenuItem
import android.view.View
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
@@ -54,6 +55,7 @@ open class SettingsActivity
private var coordinatorLayout: CoordinatorLayout? = null
private var toolbar: Toolbar? = null
private var lockView: FloatingActionButton? = null
private var footer: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -62,10 +64,19 @@ open class SettingsActivity
coordinatorLayout = findViewById(R.id.toolbar_coordinator)
toolbar = findViewById(R.id.toolbar)
lockView = findViewById(R.id.lock_button)
footer = findViewById(R.id.screenshot_mode_banner)
// To apply navigation bar with background color
/* TODO Settings nav bar
setTransparentNavigationBar {
coordinatorLayout?.applyWindowInsets(WindowInsetPosition.TOP)
footer?.applyWindowInsets(WindowInsetPosition.BOTTOM)
}*/
mExternalFileHelper = ExternalFileHelper(this)
mExternalFileHelper?.buildOpenDocument { selectedFileUri ->
// Import app properties result
// Import app settings result
try {
selectedFileUri?.let { uri ->
val appProperties = Properties()
@@ -80,11 +91,11 @@ open class SettingsActivity
}
} catch (e: Exception) {
Toast.makeText(this, R.string.error_import_app_properties, Toast.LENGTH_LONG).show()
Log.e(TAG, "Unable to import app properties", e)
Log.e(TAG, "Unable to import app settings", e)
}
}
mExternalFileHelper?.buildCreateDocument { createdFileUri ->
// Export app properties result
// Export app settings result
try {
createdFileUri?.let { uri ->
contentResolver?.openOutputStream(uri)?.use { outputStream ->
@@ -96,7 +107,7 @@ open class SettingsActivity
}
} catch (e: Exception) {
Toast.makeText(this, R.string.error_export_app_properties, Toast.LENGTH_LONG).show()
Log.e(DatabaseLockActivity.TAG, "Unable to export app properties", e)
Log.e(DatabaseLockActivity.TAG, "Unable to export app settings", e)
}
}
@@ -107,7 +118,6 @@ open class SettingsActivity
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
lockView = findViewById(R.id.lock_button)
lockView?.setOnClickListener {
lockAndExit()
}
@@ -166,7 +176,7 @@ open class SettingsActivity
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> onBackPressed()
android.R.id.home -> onDatabaseBackPressed()
}
return super.onOptionsItemSelected(item)
@@ -200,10 +210,10 @@ open class SettingsActivity
}
}
override fun onBackPressed() {
override fun onDatabaseBackPressed() {
// this if statement is necessary to navigate through nested and main fragments
if (supportFragmentManager.backStackEntryCount == 0) {
super.onBackPressed()
super.onDatabaseBackPressed()
} else {
supportFragmentManager.popBackStack()
}

View File

@@ -22,10 +22,12 @@ package com.kunzisoft.keepass.view
import android.content.Context
import android.text.Editable
import android.text.InputType
import android.text.Spannable
import android.text.SpannableString
import android.text.TextWatcher
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.EditText
import android.widget.FrameLayout
import android.widget.TextView
import com.google.android.material.progressindicator.LinearProgressIndicator
@@ -43,7 +45,8 @@ class PassKeyView @JvmOverloads constructor(context: Context,
private var mPasswordEntropyCalculator: PasswordEntropy? = null
private val passwordInputLayout: TextInputLayout
private val passwordText: TextView
private val passwordText: EditText
private var textModified = false
private val passwordStrengthProgress: LinearProgressIndicator
private val passwordEntropy: TextView
@@ -51,27 +54,8 @@ class PassKeyView @JvmOverloads constructor(context: Context,
private var mMaxLines: Int = 3
private var mShowPassword: Boolean = false
private var mPasswordTextWatcher: MutableList<TextWatcher> = mutableListOf()
private val passwordTextWatcher = object : TextWatcher {
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
mPasswordTextWatcher.forEach {
it.beforeTextChanged(charSequence, i, i1, i2)
}
}
override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
mPasswordTextWatcher.forEach {
it.onTextChanged(charSequence, i, i1, i2)
}
}
override fun afterTextChanged(editable: Editable) {
mPasswordTextWatcher.forEach {
it.afterTextChanged(editable)
}
getEntropyStrength(editable.toString())
}
}
private var mPasswordTextWatchers: MutableList<TextWatcher> = mutableListOf()
private var mPasswordTextWatcher: TextWatcher? = null
init {
context.theme.obtainStyledAttributes(
@@ -101,7 +85,6 @@ class PassKeyView @JvmOverloads constructor(context: Context,
}
passwordText?.maxLines = mMaxLines
passwordText?.applyFontVisibility()
passwordText.addTextChangedListener(passwordTextWatcher)
passwordStrengthProgress = findViewById(R.id.password_strength_progress)
passwordStrengthProgress?.apply {
setIndicatorColor(PasswordEntropy.Strength.RISKY.color)
@@ -115,6 +98,38 @@ class PassKeyView @JvmOverloads constructor(context: Context,
getEntropyStrength(firstPassword)
}
}
mPasswordTextWatcher = object : TextWatcher {
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
mPasswordTextWatchers.forEach {
it.beforeTextChanged(charSequence, i, i1, i2)
}
}
override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
mPasswordTextWatchers.forEach {
it.onTextChanged(charSequence, i, i1, i2)
}
}
override fun afterTextChanged(editable: Editable) {
/* Fixme 1686
if (textModified) {
textModified = false
} else {
textModified = true
val selectionStart = passwordText.selectionStart
val selectionEnd = passwordText.selectionEnd
passwordString = editable.toString()
passwordText.setSelection(selectionStart, selectionEnd)
}*/
mPasswordTextWatchers.forEach {
it.afterTextChanged(editable)
}
getEntropyStrength(editable.toString())
}
}
passwordText?.addTextChangedListener(mPasswordTextWatcher)
}
private fun getEntropyStrength(passwordText: String) {
@@ -134,11 +149,18 @@ class PassKeyView @JvmOverloads constructor(context: Context,
}
fun addTextChangedListener(textWatcher: TextWatcher) {
mPasswordTextWatcher.add(textWatcher)
mPasswordTextWatchers.add(textWatcher)
}
fun removeTextChangedListener(textWatcher: TextWatcher) {
mPasswordTextWatcher.remove(textWatcher)
mPasswordTextWatchers.remove(textWatcher)
}
private fun spannableValue(value: String): Spannable {
return if (PreferencesUtil.colorizePassword(context))
PasswordGenerator.getColorizedPassword(value)
else
SpannableString(value)
}
var passwordString: String
@@ -146,11 +168,6 @@ class PassKeyView @JvmOverloads constructor(context: Context,
return passwordText.text.toString()
}
set(value) {
val spannableString =
if (PreferencesUtil.colorizePassword(context))
PasswordGenerator.getColorizedPassword(value)
else
SpannableString(value)
passwordText.text = spannableString
passwordText.setText(spannableValue(value))
}
}

View File

@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Build
import android.text.InputFilter
import android.text.InputType
import android.text.Spannable
import android.text.SpannableString
import android.util.AttributeSet
import android.util.TypedValue
@@ -17,6 +18,7 @@ import androidx.appcompat.widget.AppCompatImageButton
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.isVisible
import androidx.core.widget.doAfterTextChanged
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.kunzisoft.keepass.R
@@ -34,6 +36,9 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
private var valueViewId = ViewCompat.generateViewId()
private var actionImageButtonId = ViewCompat.generateViewId()
private var textModified = false
private var isColorizedPasswordActivated = PreferencesUtil.colorizePassword(context)
private val labelView = TextInputLayout(context).apply {
layoutParams = LayoutParams(
LayoutParams.MATCH_PARENT,
@@ -78,6 +83,21 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
init {
// Manually write view to avoid view id bugs
buildViews()
// To change the password color dynamically
/* Fixme 1686
valueView.doAfterTextChanged { editable ->
editable?.let { text ->
if (textModified) {
textModified = false
} else {
textModified = true
val selectionStart = valueView.selectionStart
val selectionEnd = valueView.selectionEnd
value = text.toString()
valueView.setSelection(selectionStart, selectionEnd)
}
}
}*/
labelView.addView(valueView)
addView(labelView)
addView(actionImageButton)
@@ -110,6 +130,15 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
return actionImageButton
}
private fun spannableValue(value: String?): Spannable? {
if (value == null)
return null
return if (isColorizedPasswordActivated && TemplateField.isStandardPasswordName(context, label))
PasswordGenerator.getColorizedPassword(value)
else
SpannableString(value)
}
override var label: String
get() {
return labelView.hint?.toString() ?: ""
@@ -128,13 +157,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
return valueView.text?.toString() ?: ""
}
set(value) {
val spannableString =
if (PreferencesUtil.colorizePassword(context)
&& TemplateField.isStandardPasswordName(context, label))
PasswordGenerator.getColorizedPassword(value)
else
SpannableString(value)
valueView.setText(spannableString)
valueView.setText(spannableValue(value))
}
override var default: String = ""
@@ -145,6 +168,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
valueView.filters += InputFilter.LengthFilter(MAX_CHARS_LIMIT)
}
else -> {
@Suppress("KotlinConstantConditions")
val chars = if (numberChars > MAX_CHARS_LIMIT) MAX_CHARS_LIMIT else numberChars
valueView.filters += InputFilter.LengthFilter(chars)
}
@@ -164,6 +188,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
valueView.maxLines = MAX_LINES_LIMIT
}
else -> {
@Suppress("KotlinConstantConditions")
val lines = if (numberLines > MAX_LINES_LIMIT) MAX_LINES_LIMIT else numberLines
valueView.inputType = valueView.inputType or
InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE

View File

@@ -22,9 +22,16 @@ package com.kunzisoft.keepass.view
import android.animation.Animator
import android.animation.AnimatorSet
import android.animation.ValueAnimator
import android.app.Activity
import android.content.Context
import android.graphics.*
import android.content.res.Configuration
import android.graphics.Color
import android.graphics.Paint
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.graphics.Typeface
import android.graphics.drawable.Drawable
import android.os.Build
import android.text.Selection
import android.text.Spannable
import android.text.SpannableString
@@ -43,8 +50,14 @@ import androidx.appcompat.view.menu.ActionMenuItemView
import androidx.appcompat.widget.ActionMenuView
import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.forEach
import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import com.google.android.material.appbar.CollapsingToolbarLayout
import com.google.android.material.snackbar.Snackbar
@@ -287,3 +300,68 @@ fun CollapsingToolbarLayout.changeTitleColor(color: Int) {
setExpandedTitleColor(color)
invalidate()
}
fun Activity.setTransparentNavigationBar(applyToStatusBar: Boolean = false, applyWindowInsets: () -> Unit) {
// Only in portrait
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1
&& resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
WindowCompat.setDecorFitsSystemWindows(window, false)
this.window.navigationBarColor = ContextCompat.getColor(this, R.color.surface_selector)
if (applyToStatusBar) {
this.window.statusBarColor = ContextCompat.getColor(this, R.color.surface_selector)
}
applyWindowInsets.invoke()
}
}
/**
* Apply a margin to a view to fix the window inset
*/
fun View.applyWindowInsets(position: WindowInsetPosition = WindowInsetPosition.BOTTOM) {
ViewCompat.setOnApplyWindowInsetsListener(this) { view, windowInsets ->
var consumed = false
// To fix listener in API 27
if (view is ViewGroup) {
view.forEach { child ->
// Dispatch the insets to the child
val childResult = ViewCompat.dispatchApplyWindowInsets(child, windowInsets)
// If the child consumed the insets, record it
if (childResult.isConsumed) {
consumed = true
}
}
}
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
when (position) {
WindowInsetPosition.TOP -> {
if (view.layoutParams is ViewGroup.MarginLayoutParams) {
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = insets.top
}
}
}
WindowInsetPosition.LEGIT_TOP -> {
if (view.layoutParams is ViewGroup.MarginLayoutParams) {
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = 0
}
}
}
WindowInsetPosition.BOTTOM -> {
if (view.layoutParams is ViewGroup.MarginLayoutParams) {
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin = insets.bottom
}
}
}
}
// If any of the children consumed the insets, return an appropriate value
if (consumed) WindowInsetsCompat.CONSUMED else windowInsets
}
}
enum class WindowInsetPosition {
TOP, BOTTOM, LEGIT_TOP
}

View File

@@ -3,6 +3,7 @@ package com.kunzisoft.keepass.viewmodels
import android.app.Application
import android.net.Uri
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.kunzisoft.keepass.app.App
import com.kunzisoft.keepass.app.database.FileDatabaseHistoryAction
@@ -19,9 +20,8 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
mFileDatabaseHistoryAction = FileDatabaseHistoryAction.getInstance(application.applicationContext)
}
val isDefaultDatabase: MutableLiveData<Boolean> by lazy {
MutableLiveData<Boolean>()
}
private val mIsDefaultDatabase = MutableLiveData<Boolean>()
val isDefaultDatabase: LiveData<Boolean> = mIsDefaultDatabase
fun checkIfIsDefaultDatabase(databaseUri: Uri) {
IOActionTask(
@@ -30,7 +30,7 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
?.parseUri() == databaseUri)
},
{
isDefaultDatabase.value = it
mIsDefaultDatabase.value = it
}
).execute()
}
@@ -46,13 +46,12 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
).execute()
}
val databaseFileLoaded: MutableLiveData<DatabaseFile> by lazy {
MutableLiveData<DatabaseFile>()
}
private val mDatabaseFileLoaded = MutableLiveData<DatabaseFile>()
val databaseFileLoaded: LiveData<DatabaseFile> = mDatabaseFileLoaded
fun loadDatabaseFile(databaseUri: Uri) {
mFileDatabaseHistoryAction?.getDatabaseFile(databaseUri) { databaseFileRetrieved ->
databaseFileLoaded.value = databaseFileRetrieved
mDatabaseFileLoaded.value = databaseFileRetrieved
}
}
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:alpha="0.60" android:color="?attr/colorSurface"/>
</selector>

View File

@@ -8,7 +8,7 @@
<item android:state_selected="true">
<shape>
<corners android:radius="25dp" />
<solid android:color="?attr/colorSecondaryContainer"/>
<solid android:color="?attr/colorSecondary"/>
</shape>
</item>
<item android:state_selected="false">

View File

@@ -22,15 +22,12 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:filterTouchesWhenObscured="true"
android:fitsSystemWindows="true">
android:filterTouchesWhenObscured="true">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/toolbar_coordinator"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"
app:layout_constraintTop_toTopOf="parent">
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
@@ -96,7 +93,8 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:paddingBottom="48dp">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/history_container"
@@ -138,14 +136,26 @@
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/activity_entry_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/entry_content_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="180dp"
android:background="@drawable/background_item_selection"
android:backgroundTint="?attr/colorSurfaceContainerLow"
android:backgroundTint="@color/surface_selector"
android:layout_marginBottom="12dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_gravity="bottom|center_horizontal"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"
app:tabMode="fixed"
tools:targetApi="lollipop">
@@ -163,24 +173,25 @@
</com.google.android.material.tabs.TabLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/view_button_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner" />
<include layout="@layout/view_screenshot_mode_banner" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true" />
</FrameLayout>
android:indeterminate="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<include
layout="@layout/view_button_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<include layout="@layout/view_screenshot_mode_banner" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -30,26 +30,25 @@
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/entry_edit_coordinator_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/entry_edit_bottom_bar">
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/activity_entry_edit_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
android:layout_height="match_parent">
<com.kunzisoft.keepass.view.ToolbarSpecial
android:id="@+id/special_mode_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/entry_edit_scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/special_mode_view"
app:layout_constraintBottom_toBottomOf="parent"
android:scrollbarStyle="insideOverlay"
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
@@ -57,7 +56,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/card_view_margin_vertical"
android:paddingBottom="@dimen/card_view_margin_vertical">
android:paddingBottom="128dp">
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/entry_edit_template_selector"
android:layout_width="match_parent"
@@ -75,8 +74,16 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/activity_entry_edit_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<com.kunzisoft.keepass.view.ToolbarAction
android:id="@+id/entry_edit_bottom_bar"
android:layout_width="match_parent"
@@ -93,7 +100,8 @@
android:src="@drawable/ic_check_white_24dp"
app:fabCustomSize="@dimen/button_small_size"
app:layout_constraintTop_toTopOf="@+id/entry_edit_bottom_bar"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"
app:layout_constraintBottom_toBottomOf="@+id/entry_edit_bottom_bar"
android:layout_marginBottom="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@@ -104,18 +112,19 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"/>
<include layout="@layout/view_screenshot_mode_banner" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
app:layout_anchor="@+id/entry_scroll"
app:layout_anchorGravity="top|center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<include layout="@layout/view_screenshot_mode_banner" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -73,7 +73,7 @@
android:shadowDy="2"
android:shadowRadius="2"
android:paddingTop="?attr/actionBarSize"
android:textColor="@color/green_light"
android:textColor="?attr/colorPrimaryContainer"
android:gravity="center"
android:text="@string/app_name_part1"/>
<TextView
@@ -89,7 +89,7 @@
android:shadowDy="2"
android:shadowRadius="2"
android:paddingTop="?attr/actionBarSize"
android:textColor="@color/orange"
android:textColor="?attr/colorSecondary"
android:gravity="center"
android:text="@string/app_name_part2"/>
<TextView
@@ -107,7 +107,7 @@
android:shadowDy="2"
android:shadowRadius="2"
android:paddingTop="?attr/actionBarSize"
android:textColor="@color/green_lightest"
android:textColor="?attr/colorSecondaryContainer"
android:gravity="center"
android:text="@string/app_name_part3"/>
</LinearLayout>

View File

@@ -31,6 +31,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/activity_group_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<com.kunzisoft.keepass.view.ToolbarSpecial
android:id="@+id/special_mode_view"
android:layout_width="match_parent"
@@ -49,7 +54,8 @@
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginLeft="12dp"
android:singleLine="true"
android:maxLines="2"
android:ellipsize="end"
tools:text="Database"
style="@style/KeepassDXStyle.Title.OnSurface" />
</com.google.android.material.appbar.MaterialToolbar>
@@ -61,7 +67,7 @@
android:layout_marginLeft="48dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/special_mode_view"
app:layout_constraintBottom_toTopOf="@+id/group_coordinator">
app:layout_constraintBottom_toBottomOf="parent">
<ImageView
android:id="@+id/database_color"
android:layout_width="12dp"
@@ -79,19 +85,19 @@
android:src="@drawable/ic_modified_white_12dp"
android:contentDescription="@string/save"/>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/group_coordinator"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/toolbar_action"
app:layout_constraintTop_toBottomOf="@+id/toolbar">
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/activity_group_header">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
android:layout_height="wrap_content">
<FrameLayout
android:layout_width="match_parent"
@@ -123,15 +129,14 @@
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:background="?android:attr/windowBackground"
android:layout_below="@+id/toolbar" />
<com.kunzisoft.keepass.view.AddNodeButtonView
android:id="@+id/add_node_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchor="@+id/nodes_list_fragment_container"
app:layout_anchorGravity="end|bottom" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/activity_group_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<com.kunzisoft.keepass.view.ToolbarAction
android:id="@+id/toolbar_action"
android:layout_width="match_parent"
@@ -139,32 +144,42 @@
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner" />
<FrameLayout
<com.kunzisoft.keepass.view.AddNodeButtonView
android:id="@+id/add_node_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"
app:layout_constraintEnd_toEndOf="parent"
app:layout_anchor="@+id/nodes_list_fragment_container"
app:layout_anchorGravity="end|bottom" />
<include
layout="@layout/view_button_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"
app:layout_constraintStart_toStartOf="parent" />
<include layout="@layout/view_screenshot_mode_banner" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/error_coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"/>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true" />
</FrameLayout>
<include
layout="@layout/view_button_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/error_coordinator"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner"/>
<include layout="@layout/view_screenshot_mode_banner" />
android:indeterminate="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.kunzisoft.keepass.view.NavigationDatabaseView
@@ -172,7 +187,6 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
style="@style/Widget.Material3.NavigationView"
android:fitsSystemWindows="true" />
style="@style/Widget.Material3.NavigationView" />
</androidx.drawerlayout.widget.DrawerLayout>

View File

@@ -67,9 +67,19 @@
android:layout_margin="12dp"
android:contentDescription="@string/about"
android:elevation="4dp"
android:src="@drawable/ic_app_white_24dp"
android:src="@drawable/ic_app_lock_white_24dp"
app:tint="?attr/colorSecondary"
android:background="@drawable/background_image"
android:backgroundTint="@color/green"/>
app:backgroundTint="?attr/colorPrimaryContainer"/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:layout_margin="12dp"
android:contentDescription="@string/about"
android:elevation="4dp"
android:src="@drawable/ic_app_key_white_24dp"
app:tint="?attr/colorOnPrimaryContainer"/>
</FrameLayout>
<com.google.android.material.appbar.MaterialToolbar

View File

@@ -18,12 +18,11 @@
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:filterTouchesWhenObscured="true"
android:background="?android:attr/windowBackground"
android:fitsSystemWindows="true">
android:background="?android:attr/windowBackground">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/toolbar_coordinator"
@@ -32,28 +31,31 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner" >
<LinearLayout
android:orientation="vertical"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_default" />
<include layout="@layout/toolbar_default"
app:layout_constraintTop_toTopOf="parent"/>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<include
layout="@layout/view_button_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@+id/screenshot_mode_banner" />
<include layout="@layout/view_screenshot_mode_banner"
app:layout_constraintBottom_toBottomOf="parent"/>
<include layout="@layout/view_screenshot_mode_banner" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -207,6 +207,8 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ignore_chars_filter_layout"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_width="0dp"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText

View File

@@ -29,7 +29,7 @@
android:scrollbarStyle="insideOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="64dp"
android:paddingBottom="120dp"
android:clipToPadding="false" />
<LinearLayout
android:id="@+id/not_found_container"

View File

@@ -15,7 +15,7 @@
app:useCompatPadding="true"
android:layout_marginStart="-6dp"
android:layout_marginLeft="-6dp"
android:layout_marginBottom="-10dp"
android:layout_marginBottom="-7dp"
android:contentDescription="@string/lock"
android:layout_gravity="bottom"
android:visibility="visible"

View File

@@ -36,7 +36,7 @@
android:minHeight="48dp"
android:hint="@string/password"
android:inputType="textPassword"
android:importantForAutofill="yes"
android:importantForAutofill="no"
android:focusable="true"
android:focusableInTouchMode="true"
android:autofillHints="password"

View File

@@ -6,11 +6,11 @@
android:id="@+id/screenshot_mode_banner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/grey"
android:background="?attr/colorSecondary"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp"
android:text="@string/screenshot_mode_banner_text"
android:textColor="@color/white"
android:textColor="?attr/colorOnSecondary"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -20,8 +20,8 @@
<string name="homepage">الصفحة الرئيسة</string>
<string name="accept">قبول</string>
<string name="add_group">إضافة مجموعة</string>
<string name="encryption">التعميّة</string>
<string name="encryption_algorithm">خوارزمية التعميّة</string>
<string name="encryption">التشفير</string>
<string name="encryption_algorithm">خوارزمية التشفير</string>
<string name="application">التطبيق</string>
<string name="brackets">الأقواس</string>
<string name="extended_ASCII">تمديد ASCII</string>
@@ -30,7 +30,7 @@
<string name="clipboard_error_title">خطأ في الحافظة</string>
<string name="clipboard_error_clear">تعذَّر مسح الحافظة</string>
<string name="database">قاعدة البيانات</string>
<string name="decrypting_db">يفك تعمية محتوى قاعدة البيانات…</string>
<string name="decrypting_db">يفك تشفير محتوى قاعدة البيانات…</string>
<string name="digits">أرقام</string>
<string name="entry_cancel">إلغاء</string>
<string name="entry_notes">ملاحظات</string>
@@ -80,7 +80,7 @@
<string name="progress_create">إنشاء قاعدة بيانات جديدة …</string>
<string name="protection">الحماية</string>
<string name="read_only">محمي من التعديل</string>
<string name="content_description_remove_from_list">حذف</string>
<string name="content_description_remove_from_list">إزالة</string>
<string name="root">الجذر</string>
<string name="memory_usage">استخدام الذاكرة</string>
<string name="parallelism">التَّوازِي</string>
@@ -155,15 +155,15 @@
<string name="menu_url">الانتقال الى الرابط</string>
<string name="menu_file_selection_read_only">محمي من التعديل</string>
<string name="menu_open_file_read_and_write">قابل للتعديل</string>
<string name="select_database_file">فتح قاعدة بيانات موجودة</string>
<string name="create_keepass_file">انشاء قاعدة بيانات</string>
<string name="select_database_file">فتح مخزن موجود</string>
<string name="create_keepass_file">انشاء مخزن جديد</string>
<string name="progress_title">قيد العمل…</string>
<string name="read_only_warning">KeePassDX يحتاج صلاحية الكتابة من اجل تعديل قاعدة البيانات.</string>
<string name="encryption_explanation">خوارزمية تشفير جميع البيانات.</string>
<string name="encryption_explanation">خوارزمية تشفير جميع البيانات</string>
<string name="unsupported_db_version">قاعدة بيانات غير مدعومة.</string>
<string name="build_label">بناء %1$s</string>
<string name="encrypted_value_stored">تم حفظ كلمة السر المشفرة</string>
<string name="unavailable">قاعدة البيانات لا تمتلك بيانات اعتماد.</string>
<string name="unavailable">غير متوفر</string>
<string name="menu_appearance_settings">المظهر</string>
<string name="general">عام</string>
<string name="autofill">ملأ تلقائي</string>
@@ -177,7 +177,7 @@
<string name="clipboard_notifications_title">اشعارات الحافظة</string>
<string name="clipboard_warning">اذا فشل الحذف التلقائي من الحافظة ,احذف تأريخه يدويا.</string>
<string name="lock_database_screen_off_title">قفل الشاشة</string>
<string name="lock_database_screen_off_summary">اقفل قاعدة البيانات عند انغلاق الشاشة</string>
<string name="lock_database_screen_off_summary">اقفل قاعدة البيانات بعد بضع ثوانٍ بمجرد إيقاف تشغيل الشاشة</string>
<string name="biometric_delete_all_key_title">حذف مفاتيح التشفير</string>
<string name="unavailable_feature_text">لا يمكن بدأ هذه الميزة .</string>
<string name="unavailable_feature_version">هذا الجهاز يعمل بأندرويد %1$s لكن يحتاج نسخة %2$s على الأقل.</string>
@@ -185,9 +185,9 @@
<string name="path">مسار</string>
<string name="database_history">تأريخ</string>
<string name="clipboard_notifications_summary">أظهر اشعارات الحافظة لنسخ الحقول عند عرض مدخل</string>
<string name="advanced_unlock">البصمة</string>
<string name="advanced_unlock">فتح الجهاز</string>
<string name="biometric_unlock_enable_title">فحص البصمة</string>
<string name="biometric_unlock_enable_summary">يسمح بفحص البصمة لفتح قاعدة البيانات</string>
<string name="biometric_unlock_enable_summary">يتيح لك مسح بياناتك الحيوية لفتح قاعدة البيانات</string>
<string name="monospace_font_fields_enable_summary">غير خط الحقول لتوضيح المحارف</string>
<string name="allow_copy_password_title">الوثوق بالحافظة</string>
<string name="allow_copy_password_summary">اسمح بنسخ كلمة السر والحقول المحمية إلى للحافظة</string>
@@ -213,10 +213,10 @@
<string name="keyboard_keys_category">مفاتيح</string>
<string name="keyboard_key_vibrate_title">إهتزاز عند اللمس</string>
<string name="keyboard_key_sound_title">صوت عند اللمس</string>
<string name="allow_no_password_title">"إسمح بالفتح دون كلمة سر "</string>
<string name="allow_no_password_title">إسمح بدون المفتاح الرئيسي</string>
<string name="enable_read_only_title">محمي من التعديل</string>
<string name="enable_read_only_summary">افتح قاعدة البيانات في وضع القراءة افتراضيا</string>
<string name="enable_education_screens_title">شاشات تعليمية</string>
<string name="enable_education_screens_title">تلميحات تعليمية</string>
<string name="reset_education_screens_summary">أعد عرض كل المعلومات التعليمية</string>
<string name="reset_education_screens_text">إعادة تعيين الشاشات التلميحات</string>
<string name="education_create_database_title">أنشئ قاعدة بيانات</string>
@@ -233,7 +233,7 @@
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
<string name="keyboard_notification_entry_content_title">%1$s متوفر على Magikeyboard</string>
<string name="keyboard_notification_entry_content_text">%1$s</string>
<string name="reset_education_screens_title">إعادة تعيين الشاشات التعليمية</string>
<string name="reset_education_screens_title">إعادة تعيين التلميحات التعليمية</string>
<string name="education_search_title">البحث من خلال الإدخالات</string>
<string name="content_description_open_file">افتح الملف</string>
<string name="content_description_add_entry">إضافة مدخلة</string>
@@ -261,7 +261,7 @@
<string name="content_description_update_from_list">تحديث</string>
<string name="content_description_keyboard_close_fields">أغلق الحقول</string>
<string name="error_create_database_file">لا يمكن انشاء قاعدة بيانات بكلمة السر وملف المفتاح الحاليين.</string>
<string name="menu_advanced_unlock_settings">فك القفل المتقدم</string>
<string name="menu_advanced_unlock_settings">فك قفل الجهاز</string>
<string name="entry_attachments">مرفقات</string>
<string name="entry_history">السجل</string>
<string name="entry_add_attachment">أضف مرفقا</string>
@@ -334,8 +334,8 @@
<string name="database_data_compression_title">ضغط البيانات</string>
<string name="data">البيانات</string>
<string name="unavailable_feature_hardware">تعذر العثور على ماسح البصمة.</string>
<string name="biometric_delete_all_key_summary">احذف كل مفاتيح التعمية المرتبطة بفك القفل المتقدم</string>
<string name="advanced_unlock_explanation_summary">استخدم إلغاء القفل المتقدم لفتح قاعدة البيانات بسهولة</string>
<string name="biometric_delete_all_key_summary">احذف كل مفاتيح التشفير المرتبطة بفتح الجهاز</string>
<string name="advanced_unlock_explanation_summary">استخدم إلغاء القفل الجهاز لفتح قاعدة البيانات بسهولة</string>
<string name="lock_database_show_button_summary">يعرض زر القَفل في الواجهة</string>
<string name="lock_database_show_button_title">اعرض زر القَفل</string>
<string name="lock_database_back_root_summary">قفل قاعدة البيانات عند النقر على زر الرجوع في الشاشة الرئيسية</string>
@@ -359,10 +359,10 @@
<string name="autofill_application_id_blocklist_title">قائمة التطبيقات المحظورة</string>
<string name="content_description_repeat_toggle_password_visibility">بدِّل ظهور كلمة السر</string>
<string name="hide_expired_entries_summary">لن تعرض المدخلات منتهية الصلاحية</string>
<string name="education_read_only_summary">غيِّر وضع الجلسة.
<string name="education_read_only_summary">تغيير وضع الافتتاح للجلسة.
\n
\n\"محمي من التعديل\" يمنع أي تغيير في قاعدة البيانات.
\n\"قابل للتعديل\" يتيح لك إضافة أو حذف أو تعديل جميع العناصر.</string>
\nيمنع \"محمي ضد الكتابة\" التغييرات غير المقصودة في قاعدة البيانات.
\n\"قابل للتعديل\" يتيح لك إضافة أو حذف أو تعديل جميع العناصر كما تريد.</string>
<string name="education_read_only_title">احمي قاعدة البيانات من التعديل</string>
<string name="education_unlock_title">افتح قاعدة البيانات</string>
<string name="education_add_attachment_summary">أضف مرفقا للمدخلة لحفظ بيانات اضافية.</string>
@@ -373,7 +373,7 @@
<string name="keyboard_selection_entry_title">اختيار المدخلة</string>
<string name="device_keyboard_setting_title">إعدادات لوحة مفاتيح الجهاز</string>
<string name="magic_keyboard_explanation_summary">نشِّط لوحة مفاتيح مخصصة لملأ كلمة السر وحقول معرّفك</string>
<string name="biometric_auto_open_prompt_summary">اطلب فك القفل المتقدم ان كانت قاعدة البيانات معدّة لذلك</string>
<string name="biometric_auto_open_prompt_summary">اطلب إلغاء قفل الجهاز تلقائيًا إذا كانت قاعدة البيانات معدّة لذلك</string>
<string name="biometric_auto_open_prompt_title">افتح المحث تلقائيا</string>
<string name="keystore_not_accessible">لم يُهيأ مخزن المفاتيح بشكل صحيح.</string>
<string name="warning_remove_unlinked_attachment">حذف البيانات سيقلل من حجم قاعدة البيانات لكن احذر أن تكون إحدى هذه البيانات ملحقة لكي-باس.</string>
@@ -428,7 +428,7 @@
<string name="membership">العضوية</string>
<string name="name">الاسم</string>
<string name="email">البريد الإلكتروني</string>
<string name="email_address">البريد الإلكتروني</string>
<string name="email_address">عنوان البريد الإلكتروني</string>
<string name="ssid">SSID</string>
<string name="debit_credit_card">بطاقة السحب الفوري / الإئتمان</string>
<string name="error_registration_read_only">لا يمكن حفظ عنصر في قاعدة بيانات مفتوحة للقراءة فقط</string>
@@ -446,34 +446,34 @@
<string name="back_to_previous_keyboard">عُد للوحة المفاتيح السابقة</string>
<string name="select_entry">اختر مدخلًا</string>
<string name="autofill_close_database_title">أغلق قاعدة البيانات</string>
<string name="success_import_app_properties">أّستوردت خصائص التطبيق</string>
<string name="success_export_app_properties">صُدرت خصائص التطبيق</string>
<string name="success_import_app_properties">أّستوردت إعدادات التطبيق</string>
<string name="success_export_app_properties">صُدرت إعدادات التطبيق</string>
<string name="warning_database_revoked">أُجهض الوصول إلى الملف بواسطة مدير الملفات ، أغلق قاعدة البيانات ثم أعد فتحها.</string>
<string name="properties">الخصائص</string>
<string name="token">الرمز</string>
<string name="seed">البذرة</string>
<string name="error_database_uri_null">يتعذر استرداد مسار قاعدة البيانات.</string>
<string name="error_rebuild_list">يتعذر إعادة بناء القائمة بشكل صحيح.</string>
<string name="menu_keystore_remove_key">احذف رمز فك القفل المتقدم</string>
<string name="menu_form_filling_settings">تعبئة الحقول</string>
<string name="menu_keystore_remove_key">احذف رمز فك القفل الجهاز</string>
<string name="menu_form_filling_settings">ملء النموذج</string>
<string name="menu_reload_database">أعد تحميل البيانات</string>
<string name="menu_external_icon">أيقونة خارجية</string>
<string name="registration_mode">وضع التسجيل</string>
<string name="import_app_properties_title">استورد خصائص التطبيق</string>
<string name="import_app_properties_summary">اختر ملفًا لاستيراد خصائص التطبيق</string>
<string name="export_app_properties_title">صدّر خصائص التطبيق</string>
<string name="export_app_properties_summary">أنشئ ملفًا لتصدير خصائص التطبيق</string>
<string name="error_import_app_properties">خطأ أثناء استيراد خصائص التطبيق</string>
<string name="error_export_app_properties">خطأ أثناء تصدير خصائص التطبيق</string>
<string name="import_app_properties_summary">اختر ملفًا لاستيراد إعدادات التطبيق</string>
<string name="export_app_properties_title">صدّر إعدادات التطبيق</string>
<string name="export_app_properties_summary">أنشئ ملفًا لتصدير إعدادات التطبيق</string>
<string name="error_import_app_properties">خطأ أثناء استيراد إعدادات التطبيق</string>
<string name="error_export_app_properties">خطأ أثناء تصدير إعدادات التطبيق</string>
<string name="warning_database_info_changed">غُيِّرت معلومات قاعدة البيانات من خارج هذا التطبيق.</string>
<string name="warning_database_info_changed_options">ادمج البيانات أو استبدل التعديلات الخارجية بحفظ قاعدة البيانات أو أعد تحميلها لجلب آخر التغييرات.</string>
<string name="credential_before_click_advanced_unlock_button">اكتب كلمة السر، وأنقر هذا الزر.</string>
<string name="device_credential">بيانات الاعتماد للجهاز</string>
<string name="advanced_unlock_tap_delete">انفر لحذف مفاتيح فك القفل المتقدم</string>
<string name="advanced_unlock_tap_delete">انقر لحذف مفاتيح فتح الجهاز</string>
<string name="keyboard_auto_go_action_title">إجراء اللمس التلقائي</string>
<string name="keyboard_previous_fill_in_title">إجراء لمس تلقائي</string>
<string name="keyboard_previous_fill_in_title">العودة إلى الوراء</string>
<string name="keyboard_previous_lock_title">اقفل قاعدة البيانات</string>
<string name="education_advanced_unlock_title">فك القفل المتقدم لقاعدة البيانات</string>
<string name="education_advanced_unlock_title">فتح قاعدة بيانات الجهاز</string>
<string name="hint_icon_name">اسم الأيقونة</string>
<string name="autofill_manual_selection_title">اختيار يدوي</string>
<string name="description_app_properties">خصائص KeePassDX لإدارة إعدادات التطبيقات</string>
@@ -483,7 +483,7 @@
<string name="content_description_database_color">لون قاعدة البيانات</string>
<string name="menu_merge_from">ادمج من…</string>
<string name="show_uuid_summary">يعرض \"المعرف العام\" المرتبط بمُدخل او بمجموعة</string>
<string name="expired">انتهت المهلة</string>
<string name="expired">انتهت</string>
<string name="tags">الوسوم</string>
<string name="menu_merge_database">ادمج البيانات</string>
<string name="current_group">المجموعة الحالية</string>
@@ -497,11 +497,11 @@
<string name="custom_data">بيانات مخصصة</string>
<string name="case_sensitive">حساسة لحالة الأحرف</string>
<string name="regex">تعابير نمطية</string>
<string name="enable_keep_screen_on_title">أبق الشاشة شغّالة</string>
<string name="enable_keep_screen_on_title">أبقِ الشاشة شغّالة</string>
<string name="enable_education_screens_summary">أبرز العناصر لتعلم طريقة عمل التطبيق</string>
<string name="autofill_read_only_save">غير مسموح حفظ البيانات في قاعدة بيانات مفتوحة للقراءة فقط.</string>
<string name="autofill_inline_suggestions_keyboard">أُضيف اقتراح ملء تلقائي.</string>
<string name="keyboard_previous_database_credentials_summary">ارجع للوحة المفاتيح السابقة تلقائيًا في شاشة بيانات اعتماد قاعدة البيانات.</string>
<string name="keyboard_previous_database_credentials_summary">الرجوع للوحة المفاتيح السابقة تلقائيًا في شاشة بيانات اعتماد قاعدة البيانات</string>
<string name="autofill_manual_selection_summary">اعرض خيارًا يسمح للمستخدم باختيار مدخلة من قاعدة البيانات</string>
<string name="keyboard_previous_search_title">شاشة البحث</string>
<string name="keyboard_previous_search_summary">ارجع للوحة المفاتيح السابقة تلقائيًا في شاشة البحث</string>
@@ -510,16 +510,177 @@
<string name="autofill_close_database_summary">أغلق قاعدة البيانات بعد الملء التلقائي</string>
<string name="autofill_ask_to_save_data_summary">اسأل عن حفظ البيانات عند ملئك لنموذج</string>
<string name="templates_group_uuid_title">مجموعة القوالب</string>
<string name="advanced_unlock_timeout">انتهت مهلة فك القفل المتقدم</string>
<string name="temp_advanced_unlock_timeout_summary">مهلة استخدام فك القفل المتقدم قبل حذف محتواها</string>
<string name="advanced_unlock_delete_all_key_warning">أتريد حذف كل مفاتيح التعمية المرتبطة بفك القفل المتقدم؟</string>
<string name="advanced_unlock_timeout">انتهت مهلة فتح الجهاز</string>
<string name="temp_advanced_unlock_timeout_summary">مهلة استخدام فتح الجهاز قبل حذف محتواها</string>
<string name="advanced_unlock_delete_all_key_warning">أتريد حذف كل مفاتيح التشفير المرتبطة بفتح الجهاز؟</string>
<string name="templates">القوالب</string>
<string name="templates_group_enable_title">استخدام القوالب</string>
<string name="notification">الإشعارات</string>
<string name="temp_advanced_unlock_enable_summary">لا تستخدم أي محتوى معمى لاستخدام فك القفل المتقدم</string>
<string name="temp_advanced_unlock_timeout_title">انتهاء صلاحية فك القفل المتقدم</string>
<string name="temp_advanced_unlock_enable_summary">لا تقم بتخزين أي محتوى مشفر لاستخدام إلغاء قفل الجهاز</string>
<string name="temp_advanced_unlock_timeout_title">انتهاء صلاحية فتح الحهاز</string>
<string name="hide_expired_entries_title">إخفاء الإدخالات منتهية الصلاحية</string>
<string name="content_description_hardware_key_checkbox">خانة إختيار مفتاح الجهاز</string>
<string name="content_description_passphrase_word_count">عدد عبارات المرور</string>
<string name="content_description_entry_background_color">لون خلفية المدخل</string>
<string name="passphrase">عبارة المرور</string>
<string name="colorize_password_title">تلوين كلمات المرور</string>
<string name="permission">الإذن</string>
<string name="advanced_unlock_prompt_not_initialized">تعذر تهيئة موجه إلغاء قفل الجهاز.</string>
<string name="biometric_security_update_required">مطلوب تحديث أمان المقاييس الحيوية.</string>
<string name="advanced_unlock_not_recognized">تعذر التعرف على طباعة فتح الجهاز</string>
<string name="temp_advanced_unlock_enable_title">فتح جهاز مؤقت</string>
<string name="autofill_inline_suggestions_title">اقتراحات مضمنة</string>
<string name="education_setup_OTP_summary">قم بإعداد إدارة كلمات المرور لمرة واحدة (HOTP / TOTP) لإنشاء رمز مميز مطلوب للمصادقة الثنائية (2FA).</string>
<string name="education_field_copy_summary">يمكن لصق الحقول المنسوخة في أي مكان.
\n
\nاستخدم طريقة ملء النموذج التي تفضلها.</string>
<string name="html_text_dev_feature_work_hard">نحن نعمل بجد لإصدار هذه الميزة بسرعة.</string>
<string name="autofill_inline_suggestions_summary">حاول عرض اقتراحات الملء التلقائي مباشرة من لوحة مفاتيح متوافقة</string>
<string name="delete_entered_password_summary">يحذف كلمة المرور التي تم إدخالها بعد محاولة الاتصال بقاعدة البيانات</string>
<string name="education_lock_summary">اقفل قاعدةبياناتك بسرعة، يمكنك إعداد التطبيق لقفلها بعد فترة، وعند إيقاف تشغيل الشاشة.</string>
<string name="education_sort_title">فرز العنصر</string>
<string name="contribute">ساهِم</string>
<string name="upload_attachment">رفع %1$s</string>
<string name="download_canceled">ألغيت!</string>
<string name="unit_kibibyte">كيلو بايت</string>
<string name="unit_mebibyte">ميغا بايت</string>
<string name="unit_gibibyte">جيجابت</string>
<string name="entropy">إنتروبيا: %1$s بت</string>
<string name="entropy_high">الانتروبيا: مرتفع</string>
<string name="entropy_calculate">الانتروبيا: احسب…</string>
<string name="exclude_ambiguous_chars">استبعاد الأحرف الغامضة</string>
<string name="consider_chars_filter">ضع في اعتبارك الأحرف</string>
<string name="ignore_chars_filter">تجاهل الأحرف</string>
<string name="style_choose_title">سمة التطبيق</string>
<string name="lower_case">أحرف صغيرة</string>
<string name="upper_case">الأحرف الكبيرة</string>
<string name="title_case">حالة العنوان</string>
<string name="character_count">عدد الأحرف: %1$d</string>
<string name="style_choose_summary">السمة المستخدمة في التطبيق</string>
<string name="show_entry_colors_summary">يعرض ألوان المقدمة والخلفية لإدخال</string>
<string name="icon_pack_choose_summary">حزمة الأيقونات المستخدمة في التطبيق</string>
<string name="show_entry_colors_title">ألوان الدخول</string>
<string name="device_credential_unlock_enable_title">فتح بيانات اعتماد الجهاز</string>
<string name="autofill_block_restart">أعد تشغيل التطبيق الذي يحتوي على النموذج لتنشيط الحظر.</string>
<string name="education_donation_title">مشاركة</string>
<string name="education_donation_summary">ساعد في زيادة الاستقرار والأمان وفي إضافة المزيد من الميزات.</string>
<string name="html_text_dev_feature">هذه الميزة &lt;strong&gt; قيد التطوير&lt;/strong&gt; وتتطلب &lt;strong&gt; مساهمتك&lt;/strong&gt; لتكون متاحة قريبًا.</string>
<string name="html_text_dev_feature_contibute">من خلال &lt;strong&gt; المساهمة&lt;/strong&gt; ،</string>
<string name="download_finalization">جارِ الانتهاء…</string>
<string name="download_complete">مكتمل!</string>
<string name="unit_byte">B</string>
<string name="icon_section_custom">مُخصص</string>
<string name="content_description_entry_foreground_color">لون مقدمة الدخول</string>
<string name="keyboard_previous_fill_in_summary">العودة تلقائيًا إلى لوحة المفاتيح السابقة بعد تنفيذ \"إجراء المفتاح التلقائي\"</string>
<string name="download_attachment">تثبيت %1$s</string>
<string name="html_about_privacy">&lt;strong&gt; لا يتم استرداد أي بيانات مستخدم&lt;/strong&gt;، هذا التطبيق لا يتصل بأي خادم، ويعمل محليًا فقط ويحترم خصوصية المستخدمين تمامًا.</string>
<string name="error_cancel_by_user">ألغى المستخدم.</string>
<string name="show_otp_token_title">إظهار رمز \"الاقتران لمرة واحدة\" OTP</string>
<string name="show_otp_token_summary">إظهار رموز\"الاقتران لمرة واحدة\" في قائمة المدخلات</string>
<string name="warning_database_already_opened">قاعدة البيانات مفتوحة بالفعل، أغلقها أولاً لفتح قاعدة البيانات الجديدة</string>
<string name="warning_database_info_reloaded">ستؤدي إعادة تحميل قاعدة البيانات إلى حذف البيانات المعدلة محليًا.</string>
<string name="templates_group_enable_summary">استخدم القوالب الديناميكية لملء حقول الإدخال</string>
<string name="keyboard_auto_go_action_summary">إجراء مفتاح \"Go\" بعد الضغط على مفتاح \"Field\"</string>
<string name="allow_no_password_summary">يسمح بالنقر فوق الزر \"فتح\" إذا لم يتم تحديد بيانات اعتماد</string>
<string name="education_generate_password_summary">أنشئ كلمة مرور قوية لربطها بإدخالك، وحددها بسهولة وفقًا لمعايير النموذج ولا تنس كلمة المرور الآمنة.</string>
<string name="education_setup_OTP_title">قم بإعداد OTP</string>
<string name="style_brightness_title">سطوع السمة</string>
<string name="word_separator">الفاصل</string>
<string name="screenshot_mode_banner_text">وضع لقطة الشاشة</string>
<string name="style_brightness_summary">اختيار سمة فاتحة او داكنة</string>
<string name="icon_section_standard">قياسي</string>
<string name="wireless">واي فاي Wi-Fi</string>
<string name="icon_pack_choose_title">حزمة أيقونات</string>
<string name="content_description_nav_header">رأس التنقل</string>
<string name="inherited">موروث</string>
<string name="auto_type_sequence">تسلسل الكتابة تلقائيًا</string>
<string name="kdf_explanation">لإنشاء مفتاح خوارزمية التشفير، يتحول المفتاح الرئيسي باستخدام وظيفة اشتقاق مفتاح مملح عشوائيًا.</string>
<string name="html_text_dev_feature_buy_pro">بشراء الإصدار &lt;strong&gt; pro &lt;/strong&gt;،</string>
<string name="auto_type">كتابة تلقائيًا</string>
<string name="hardware_key">مفتاح الجهاز</string>
<string name="advanced_unlock_prompt_store_credential_title">رابط لفتح الجهاز</string>
<string name="backspace">فراغ للخلف</string>
<string name="enter">دخول</string>
<string name="education_sort_summary">اختر كيفية فرز الإدخالات والمجموعات.</string>
<string name="html_text_feature_generosity">هذا &lt;strong&gt; النمط المرئي&lt;/strong&gt; متاح بفضل كرمك.</string>
<string name="info">المعلومات</string>
<string name="waiting_challenge_response">في انتظار استجابة التحدي…</string>
<string name="bank_identifier_code">SWIFT / BIC</string>
<string name="international_bank_account_number">IBAN</string>
<string name="error_no_hardware_key">حدد مفتاح الجهاز.</string>
<string name="colorize_password_summary">تلوين أحرف كلمة المرور حسب النوع</string>
<string name="enable_keep_screen_on_summary">استمر في تشغيل الشاشة عند مشاهدة إدخال أو تعديله</string>
<string name="enable_screenshot_mode_title">وضع لقطة الشاشة</string>
<string name="navigation_drawer_open">درج التنقل مفتوح</string>
<string name="waiting_challenge_request">في انتظار طلب التحدي…</string>
<string name="navigation_drawer_close">درج التنقل مقفول</string>
<string name="error_XML_malformed">XML تالف.</string>
<string name="error_otp_type">لم يتم التعرف على نوع OTP الحالي من خلال هذا النموذج، وقد لا يؤدي التحقق من صحته إلى إنشاء الرمز المميز بشكل صحيح.</string>
<string name="error_challenge_already_requested">التحدي مطلوب بالفعل</string>
<string name="error_response_already_provided">تقدم الرد بالفعل.</string>
<string name="error_no_response_from_challenge">غير قادر على الحصول على رد من التحدي.</string>
<string name="error_driver_required">مطلوب تعريف لـ%1$s.</string>
<string name="error_unable_merge_database_kdb">تعذر الدمج من قاعدة بيانات V1.</string>
<string name="error_location_unknown">موقع قاعدة البيانات غير معروف، لا يمكن تنفيذ إجراء قاعدة البيانات.</string>
<string name="menu_advanced_unlock_settings_summary">القياس الحيوي، بيانات اعتماد الجهاز</string>
<string name="menu_database_settings_summary">البيانات الوصفية، سلة المحذوفات، القوالب، التاريخ</string>
<string name="menu_security_settings_summary">التشفير، وظيفة اشتقاق المفتاح</string>
<string name="error_hardware_key_unsupported">مفتاح الجهاز غير مدعوم.</string>
<string name="master_key_settings_summary">التغيير والتجديد</string>
<string name="error_empty_key">لا يمكن أن يكون المفتاح فارغًا.</string>
<string name="corrupted_file">ملف تالف.</string>
<string name="warning_keyfile_integrity">لا يتم ضمان تجزئة الملف لأن Android يمكنه تغيير بياناته بسرعة. قم بتغيير امتداد الملف إلى bin. من أجل التكامل الصحيح.</string>
<string name="invalid_db_same_uuid">%1$s بنفس UUID %2$s موجود بالفعل.</string>
<string name="remember_hardware_key_title">تذكر مفاتيح الأجهزة</string>
<string name="warning_exact_alarm">لم تسمح للتطبيق باستخدام منبه دقيق. نتيجة لذلك، لن يتم تنفيذ الميزات التي تتطلب مؤقتًا في وقت محدد.</string>
<string name="remember_hardware_key_summary">يتتبع مفاتيح الأجهزة المستخدمة</string>
<string name="warning_database_notification_permission">يسمح لك إذن الإشعار بعرض حالة قاعدة البيانات وقفلها باستخدام زر يسهل الوصول إليه.
\n
\nإذا لم تنشط هذا الإذن، فلن تكون قاعدة البيانات المفتوحة في الخلفية مرئية إذا كان هناك تطبيق آخر في المقدمة.</string>
<string name="warning_copy_permission">مطلوب إذن الإشعار لاستخدام ميزة إشعار الحافظة.</string>
<string name="merge_success">اكتمل الدمج بنجاح</string>
<string name="advanced_unlock_prompt_store_credential_message">ما زلت بحاجة إلى تذكر بيانات الاعتماد الرئيسية في مخزنك إذا كنت تستخدم التعرف على فتح الجهاز.</string>
<string name="advanced_unlock_prompt_extract_credential_title">التعرف على فتح الجهاز</string>
<string name="later">لاحقًا</string>
<string name="configure">تضبيط</string>
<string name="advanced_unlock_prompt_extract_credential_message">استخراج بيانات اعتماد قاعدة البيانات مع بيانات فتح الجهاز</string>
<string name="ask">إسأل</string>
<string name="configure_biometric">لم تسجل بيانات اعتماد المقاييس الحيوية أو الجهاز.</string>
<string name="show_uuid_title">إظهار \"المعرف العام المميز\" UUID</string>
<string name="unlock_and_link_biometric">رابط فتح الجهاز</string>
<string name="advanced_unlock_invalid_key">لا يمكن قراءة مفتاح فتح الجهاز. يرجى حذفه وتكرار إجراء التعرف على الفتح.</string>
<string name="advanced_unlock_scanning_error">خطأ في فتح الجهاز: %1$s</string>
<string name="menu_appearance_settings_summary">المظاهر والألوان والسمات</string>
<string name="autofill_explanation_summary">تمكين الملء التلقائي لملء النماذج بسرعة في التطبيقات الأخرى</string>
<string name="device_credential_unlock_enable_summary">يتيح لك استخدام بيانات اعتماد جهازك لفتح قاعدة البيانات</string>
<string name="autofill_service_name">KeePassDX نموذج الملء التلقائي</string>
<string name="unlock">فتح</string>
<string name="menu_app_settings_summary">البحث، القفل، التاريخ، الخصائص</string>
<string name="menu_form_filling_settings_summary">لوحة المفاتيح، الملء التلقائي، الحافظة</string>
<string name="advanced_unlock_keystore_warning">ستقوم هذه الميزة بتخزين بيانات الاعتماد المشفرة في KeyStore الآمن بجهازك.
\n
\nاعتمادًا على تطبيق API الأصلي لنظام التشغيل، قد لا يعمل بكامل طاقته.
\nتحقق من توافق وأمن KeyStore مع الشركة المصنعة لجهازك ومنشئ ROM الذي تستخدمه.</string>
<string name="keyboard_selection_entry_summary">عند عرض إدخال في KeePassDX، عبئ Magikeyboard بهذا الإدخال</string>
<string name="enable_screenshot_mode_summary">اسمح لتطبيقات الطرف الثالث بتسجيل أو التقاط لقطات شاشة للتطبيق</string>
<string name="keyboard_save_search_info_summary">حاول حفظ المعلومات المشتركة عند إجراء اختيار إدخال يدوي لاستخدامات مستقبلية أسهل</string>
<string name="education_entry_edit_summary">تحرير الإدخال الخاص بك مع الحقول المخصصة. يمكن الرجوع إلى بيانات التجمع بين حقول الإدخال المختلفة.</string>
<string name="education_validate_entry_title">تحقق من صحة الإدخال</string>
<string name="education_validate_entry_summary">تذكر التحقق من صحة الإدخال الخاص بك وحفظ قاعدة البيانات الخاصة بك.
\n
\nإذا تم تنشيط القفل التلقائي ونسيت أنك تجري تعديلاً، فإنك تخاطر بفقدان بياناتك.</string>
<string name="education_entry_new_field_summary">قم بتسجيل حقل إضافي، أضف قيمة وقم بحمايته بشكل اختياري.</string>
<string name="education_unlock_summary">أدخل كلمة المرور و/أو ملف المفتاح لفتح قاعدة بياناتك.
\n
\nقم بعمل نسخة احتياطية من ملف قاعدة البيانات في مكان آمن بعد كل تغيير.</string>
<string name="html_text_dev_feature_thanks">شكرا جزيلا لمساهمتك.</string>
<string name="at_least_one_char">على الأقل حرف واحد من كل منهما</string>
<string name="html_text_dev_feature_upgrade">تذكر أن تحافظ على تحديث تطبيقك عن طريق تثبيت إصدارات جديدة.</string>
<string name="download">تثبيت</string>
<string name="html_text_ad_free">على عكس العديد من تطبيقات إدارة كلمات المرور ، فإن هذا التطبيق &lt;strong&gt;بدون إعلانات&lt;/strong&gt;، و &lt;strong&gt;برنامج حر متروك الحقوق&lt;/strong&gt; ولا يجمع البيانات الشخصية على خوادمه، بغض النظر عن الإصدار الذي تستخدمه.</string>
<string name="download_initialization">جارِ التهيئة…</string>
<string name="download_progression">قيد التقدم: %1$d%%</string>
<string name="html_text_buy_pro">بشراء الإصدار الاحترافي، ستتمتع بإمكانية الوصول إلى هذا &lt;strong&gt; النمط المرئي&lt;/strong&gt; وستساعد بشكل خاص في &lt;strong&gt; تنفيذ مشروعات المجتمع. &lt;/strong&gt;</string>
<string name="html_text_donation">من أجل الحفاظ على حريتنا ولكي نكون نشيطين دائمًا، فإننا نعتمد على &lt;strong&gt; مساهمتك.&lt;/strong&gt;</string>
<string name="html_text_dev_feature_encourage">أنت تشجع المطورين على إنشاء &lt;strong&gt; ميزات جديدة&lt;/strong&gt; و &lt;strong&gt; إصلاح الخلل&lt;/strong&gt; وفقًا لملاحظاتك.</string>
</resources>

View File

@@ -1,12 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="feedback">Обратна връзка</string>
<string name="encryption_algorithm">Алгоритъм за криптиране</string>
<string name="encryption">Криптиране</string>
<string name="encryption_algorithm">Алгоритъм за шифроване</string>
<string name="encryption">Шифроване</string>
<string name="security">Сигурност</string>
<string name="master_key">Главен ключ</string>
<string name="add_group">Добави група</string>
<string name="edit_entry">Редактирай</string>
<string name="add_entry">Добави</string>
<string name="accept">Приемам</string>
<string name="add_group">Нова група</string>
<string name="edit_entry">Редактиране на запис</string>
<string name="add_entry">Добавяне на запис</string>
<string name="accept">Приемане</string>
<string name="biometric_delete_all_key_title">Изтриване на шифроващите ключове</string>
<string name="digits">Цифри</string>
<string name="contact">За контакт</string>
<string name="app_timeout">Време за изчакване</string>
<string name="application">Приложение</string>
<string name="brackets">Скоби</string>
<string name="about">Относно</string>
<string name="info">Информация</string>
<string name="clipboard_cleared">Клипбордът е изчистен</string>
<string name="content_description_add_group">Нова група</string>
<string name="clipboard_timeout_summary">Продължителност на съхранение в клипборда (ако се поддържа от вашето устройство)</string>
<string name="clipboard_error">Някои устройства не позволяват на приложенията да използват клипборда.</string>
<string name="entry_title">Заглавие</string>
<string name="about_description">Android версия на мениджъра на пароли KeePass</string>
<string name="save">Запази</string>
<string name="entry_confpassword">Потвърди парола</string>
<string name="key_derivation_function">Функция за генериране на ключа</string>
<string name="content_description_open_file">Отвори файл</string>
<string name="entry_cancel">Отказ</string>
<string name="custom_data">Персонализирани данни</string>
<string name="tags">Тагове</string>
<string name="clipboard_explanation_summary">Копирайте полетата за въвеждане, като използвате клипборда на вашето устройство</string>
<string name="otp_type">Тип OTP</string>
<string name="entry_url">Линк</string>
<string name="contribution">Участие</string>
<string name="entry_UUID">UUID</string>
<string name="entry_history">История</string>
<string name="copy_field">Копие на %1$s</string>
<string name="clipboard_error_title">Грешка в клипборда</string>
<string name="file_manager_install_description">За създаване, отваряне и запазване на файлове на базата данни е необходим файлов мениджър, който приема действието ACTION_CREATE_DOCUMENT и ACTION_OPEN_DOCUMENT.</string>
<string name="content_description_add_entry">Добави запис</string>
<string name="clipboard_timeout">Време за изчакване на клипборда</string>
<string name="expired">Изтекъл</string>
<string name="entry_password">Парола</string>
<string name="retrieving_db_key">Ключът на базата данни се извлича…</string>
<string name="entry_accessed">Достъп</string>
<string name="entry_created">Създаден</string>
<string name="entry_user_name">Потребителско име</string>
<string name="content_description_background">Фон</string>
<string name="clipboard_error_clear">Не може да се изчисти клипборда</string>
<string name="entry_expires">Изтича</string>
<string name="entry_attachments">Прикачени файлове</string>
<string name="otp_period">Период (секунди)</string>
<string name="app_timeout_summary">Период на бездействие, след който базата се заключва</string>
<string name="otp_digits">Цифри</string>
<string name="extended_ASCII">Разширен ASCII</string>
<string name="entry_otp">OTP</string>
<string name="entry_notes">Бележки</string>
<string name="otp_counter">Брояч</string>
<string name="allow">Позволи</string>
<string name="allow_copy_password_warning">Внимание: Клипбордът се споделя от всички приложения. Ако се копират чувствителни данни, друг софтуер може да ги възстанови.</string>
<string name="entry_modified">Променен</string>
<string name="select_to_copy">Изберете, за да копирате %1$s в клипборда</string>
<string name="otp_secret">Таен ключ</string>
<string name="homepage">Уебсайт</string>
<string name="loading_database">Базата данни се зарежда…</string>
<string name="password">Парола</string>
<string name="remember_hardware_key_title">Запомни хардуерните ключове</string>
<string name="decrypting_db">Съдържанието на базата данни се декриптира…</string>
<string name="unlock">Отключи</string>
<string name="unavailable_feature_hardware">Не може да се намери съответният хардуер.</string>
<string name="hardware_key">Хардуерен ключ</string>
<string name="hide_password_summary">Маскира паролите (***) по подразбиране</string>
<string name="select_database_file">Отвори съществуваща база данни</string>
<string name="content_description_hardware_key_checkbox">Хардуерен ключ отметка</string>
<string name="hide_password_title">Скриване на пароли</string>
<string name="hint_pass">Парола</string>
<string name="education_select_database_title">Отвори съществуваща база данни</string>
<string name="content_description_keyfile_checkbox">Файл с ключ отметка</string>
<string name="error_hardware_key_unsupported">Хардуерният ключ не се поддържа.</string>
<string name="remember_hardware_key_summary">Пази запис на използваните хардуерни ключове</string>
<string name="error_nokeyfile">Избери файл с ключ.</string>
<string name="entry_keyfile">Файл с ключ</string>
<string name="error_no_hardware_key">Избери хардуерен ключ.</string>
<string name="advanced_unlock_prompt_store_credential_message">Ще трябва да запомните основните си идентификационни данни на базата данни, дори като използвате разпознаване на отключването на устройството.</string>
<string name="create_keepass_file">Създай нова база данни</string>
</resources>

View File

@@ -30,17 +30,18 @@
<string name="application">Aplicació</string>
<string name="menu_app_settings">Configuració de l\'aplicació</string>
<string name="brackets">Parèntesis</string>
<string name="file_manager_install_description">Un gestor de fitxers que accepta les intencions ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT, que us calen per a crear, obrir i desar fitxers de base de dades.</string>
<string name="clipboard_cleared">Porta-retalls netejat.</string>
<string name="file_manager_install_description">Es requereix un gestor d\'arxius que accepti les intencions ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT per a crear, obrir i desar fitxers de base de dades.</string>
<string name="clipboard_cleared">Porta-retalls netejat</string>
<string name="clipboard_timeout">Temps d\'espera del porta-retalls</string>
<string name="clipboard_timeout_summary">Temps abans de netejar el porta-retalls (si el teu dispositiu ho suporta)</string>
<string name="select_to_copy">Selecciona per copiar %1$s al porta-retalls</string>
<string name="retrieving_db_key">Es recupera la clau de base de dades…</string>
<string name="database">Base de dades</string>
<string name="decrypting_db">Es desxifra el contingut de la base de dades…</string>
<string name="decrypting_db">Desxifrant la base de dades…</string>
<string name="default_checkbox">Utilitza com a base de dades per defecte</string>
<string name="digits">Dígits</string>
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft ve sense cap mena de garantia. Això és programari lliure, i pots redistribuir-lo sota els termes de la llicència GPL versió 3 o posterior.</string>
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft és &lt;strong&gt; programari lliure &lt;/strong&gt; i &lt;strong&gt;sense anuncis&lt;/strong&gt;.
\nEs proporciona tal com està, sota una llicència &lt;strong&gt;GPLv3&lt;/strong&gt;, sense cap garantia.</string>
<string name="select_database_file">Obri una base de dades existent</string>
<string name="entry_accessed">Accedida</string>
<string name="entry_cancel">Cancel·la</string>
@@ -139,10 +140,10 @@
<string name="database_default_username_title">Nom d\'usuari per defecte</string>
<string name="database_description_title">Descripció de la base de dades</string>
<string name="database_name_title">Nom de la base de dades</string>
<string name="clear_clipboard_notification_title">Neteja en tancar</string>
<string name="clear_clipboard_notification_title">Neteja al tancar</string>
<string name="disable">Desactiva</string>
<string name="enable">Activa</string>
<string name="settings_database_force_changing_master_key_summary">Obliga a canviar la contrasenya mestra (dies)</string>
<string name="settings_database_force_changing_master_key_summary">Força a canviar la clau mestra (dies)</string>
<string name="settings_database_force_changing_master_key_title">Força la renovació</string>
<string name="max_history_size_title">Mida màxima</string>
<string name="max_history_items_title">Nombre màxim</string>
@@ -197,9 +198,9 @@
<string name="hide_broken_locations_summary">Amaga els enllaços trencats en la llista de bases de dades recents</string>
<string name="show_recent_files_summary">Mostra la ubicació de les bases de dades recents</string>
<string name="show_recent_files_title">Mostra els fitxers recents</string>
<string name="remember_keyfile_locations_title">Desa la ubicació dels fitxers de claus</string>
<string name="remember_keyfile_locations_title">Recorda la ubicació dels fitxers de claus</string>
<string name="remember_database_locations_summary">Recorda la ubicació de les bases de dades</string>
<string name="remember_database_locations_title">Desa la ubicació de les bases de dades</string>
<string name="remember_database_locations_title">Recorda l\'ubicació de les bases de dades</string>
<string name="selection_mode">Mode de selecció</string>
<string name="contains_duplicate_uuid_procedure">Voleu resoldre el problema creant nous UUIDs per als duplicats per a continuar\?</string>
<string name="contains_duplicate_uuid">La base de dades conté UUIDs duplicats.</string>
@@ -221,7 +222,7 @@
<string name="menu_copy">Copiar</string>
<string name="menu_master_key_settings">Paràmetres de la contrasenya mestra</string>
<string name="menu_security_settings">Paràmetres de seguretat</string>
<string name="menu_advanced_unlock_settings">Desblocatge avançat</string>
<string name="menu_advanced_unlock_settings">Desblocatge de dispositiu</string>
<string name="menu_form_filling_settings">Emplenat de formularis</string>
<string name="copy_field">Còpia de %1$s</string>
<string name="creating_database">Es crea la base de dades…</string>
@@ -244,7 +245,7 @@
<string name="error_copy_entry_here">No és possible copiar cap entrada aquí.</string>
<string name="error_move_entry_here">No és possible moure cap entrada aquí.</string>
<string name="error_label_exists">Aquesta etiqueta ja existeix.</string>
<string name="error_load_database">No sha pogut carregar la vostra base de dades.</string>
<string name="error_load_database">No sha pogut carregar la base de dades.</string>
<string name="entry_otp">OTP</string>
<string name="otp_algorithm">Algorisme</string>
<string name="otp_digits">Dígits</string>
@@ -304,8 +305,8 @@
<string name="html_text_dev_feature_contibute">En &lt;strong&gt;col·laborar-hi&lt;/strong&gt;,</string>
<string name="content_description_keyfile_checkbox">Casella del fitxer de la clau</string>
<string name="content_description_password_checkbox">Casella de la contrasenya</string>
<string name="content_description_otp_information">Informació de la contrasenya dun sol ús</string>
<string name="content_description_credentials_information">Informació de les dades daccés</string>
<string name="content_description_otp_information">Informació de contrasenya d\'únic ús</string>
<string name="content_description_credentials_information">Informació de credencials</string>
<string name="content_description_add_item">Afegeix un element</string>
<string name="education_lock_title">Bloca la base de dades</string>
<string name="html_text_feature_generosity">Aquest &lt;strong&gt;estil visual&lt;/strong&gt; és disponible gràcies a la vostra generositat.</string>
@@ -326,4 +327,122 @@
<string name="icon_pack_choose_summary">El paquet dicones que sutilitza a laplicació</string>
<string name="icon_pack_choose_title">Paquet dicones</string>
<string name="icon_section_custom">Personalitzat</string>
<string name="template_group_name">Plantilles</string>
<string name="error_unable_merge_database_kdb">No es pot fusionar d\'una base de dades V1.</string>
<string name="auto_type">Auto-Escriptura</string>
<string name="import_app_properties_title">Importar configuració de l\'aplicació</string>
<string name="card_verification_value">CVV</string>
<string name="inherited">Heretar</string>
<string name="remember_hardware_key_title">Recorda les claus físiques</string>
<string name="consider_chars_filter">Considera caràcters</string>
<string name="exclude_ambiguous_chars">Exclou caràcters ambigus</string>
<string name="unlock">Desbloqueja</string>
<string name="bank">Banc</string>
<string name="compression_none">Cap</string>
<string name="info">Info</string>
<string name="content_description_entry_background_color">Color de fons d\'entrada</string>
<string name="error_empty_key">La clau no pot ser buida.</string>
<string name="custom_data">Dades personalitzades</string>
<string name="tags">Etiquetes</string>
<string name="place_of_issue">Lloc d\'expedició</string>
<string name="style_brightness_summary">Escull tema clar o fosc</string>
<string name="hardware_key">Clau física</string>
<string name="registration_mode">Mode de registre</string>
<string name="ignore_chars_filter">Ignora caràcters</string>
<string name="ask">Pregunta</string>
<string name="searchable">Cercable</string>
<string name="html_text_dev_feature_thanks">Moltes gràcies per la teva contribució.</string>
<string name="menu_form_filling_settings_summary">Teclat, autoemplena, porta-retalls</string>
<string name="export_app_properties_title">Exporta la configuració de l\'aplicació</string>
<string name="email">Email</string>
<string name="content_description_nav_header">Títol de navegació</string>
<string name="navigation_drawer_close">Tancar calaix de navegació</string>
<string name="properties">Propietats</string>
<string name="clear_clipboard_notification_summary">Bloca la base de dades quan la duració del porta-retalls caduca o la notificació es tanca un cop s\'ha començat a utilitzar</string>
<string name="html_about_privacy">&lt;strong&gt;No s\'agafa cap dada d\'usuari&lt;/strong&gt;, aquesta aplicació no connecta a cap servidor, només treballa localment i respecta la privacitat dels usuaris en la seva totalitat.</string>
<string name="notification">Notificació</string>
<string name="content_description_entry_foreground_color">Color de primer pla d\'entrada</string>
<string name="advanced_unlock">Desbloqueja dispositiu</string>
<string name="template">Plantilla</string>
<string name="title_case">Primera Majúscula</string>
<string name="navigation_drawer_open">Obrir calaix de navegació</string>
<string name="max_history_size_summary">Limita la mida de l\'historial per entrada</string>
<string name="success_export_app_properties">Configuració de l\'aplicació exportada</string>
<string name="error_export_app_properties">Error a l\'exportar la configuració de l\'aplicació</string>
<string name="type">Tipus</string>
<string name="content_description_hardware_key_checkbox">Casella de clau física</string>
<string name="settings_database_recommend_changing_master_key_title">Recomanar renovació</string>
<string name="name">Nom</string>
<string name="lower_case">minúscula</string>
<string name="import_app_properties_summary">Selecciona un fitxer per importar la configuració de l\'aplicació</string>
<string name="monospace_font_fields_enable_summary">Canvia la font usada en els camps per una millor visibilitat dels caràcters</string>
<string name="html_text_dev_feature_work_hard">Estem treballant de valent per implementar aquesta característica ràpidament.</string>
<string name="autofill_close_database_summary">Tanca la base de dades després d\'auto-completar</string>
<string name="screenshot_mode_banner_text">Mode captura de pantalla</string>
<string name="application_appearance">Interfície</string>
<string name="error_import_app_properties">Error a l\'importar la configuració de l\'aplicació</string>
<string name="case_sensitive">Sensible a majúscules i minúscules</string>
<string name="error_location_unknown">Localització de la base de dades desconeguda, l\'acció no es pot fer.</string>
<string name="membership">Pertinença</string>
<string name="content_description_passphrase_word_count">Nombre de paraules de la contrasenya</string>
<string name="data">Dada</string>
<string name="version">Versió</string>
<string name="regex">Expressió regular</string>
<string name="number">Número</string>
<string name="other">Altre</string>
<string name="account">Compte</string>
<string name="allow_copy_password_title">Confia en el porta-retalls</string>
<string name="holder">Titular</string>
<string name="expired">Expirat</string>
<string name="date_of_issue">Data d\'expedició</string>
<string name="cryptocurrency">Cartera de cryptomoneda</string>
<string name="settings_database_force_changing_master_key_next_time_title">Força renovació el pròxim cop</string>
<string name="waiting_challenge_request">Esperant la sol·licitud de desafiament…</string>
<string name="search_filters">Filtres de cerca</string>
<string name="current_group">Grup actual</string>
<string name="allow_no_password_title">No permetis clau mestra</string>
<string name="public_key">Clau pública</string>
<string name="content_description_repeat_toggle_password_visibility">Repetir canvi de visibilitat de contrasenya</string>
<string name="auto_type_sequence">Seqüència d\'Auto-Escriptura</string>
<string name="personal_identification_number">PIN</string>
<string name="word_separator">Separador</string>
<string name="compression_gzip">Gzip</string>
<string name="waiting_challenge_response">Esperant la resposta de desafiament…</string>
<string name="bank_name">Nom del banc</string>
<string name="wireless">Wi-Fi</string>
<string name="set_autofill_service_title">Estableix el servei d\'emplenament automàtic predeterminat</string>
<string name="compression">Compressió</string>
<string name="id_card">Targeta d\'identificació</string>
<string name="error_hardware_key_unsupported">Clau física no suportada.</string>
<string name="menu_advanced_unlock_settings_summary">Biometria, credencial de dispositiu</string>
<string name="standard">Estàndard</string>
<string name="error_XML_malformed">XML mal format.</string>
<string name="remember_hardware_key_summary">Recorda les claus físiques que s\'han usat</string>
<string name="token">Token</string>
<string name="debit_credit_card">Targeta de Dèbit / Crèdit</string>
<string name="description_app_properties">Propietats de KeePassDX per administrar la configuració de l\'aplicació</string>
<string name="menu_save_copy_to">Desar còpia a …</string>
<string name="ssid">SSID</string>
<string name="allow_copy_password_warning">Alerta: El porta-retalls és compartit per totes les aplicacions. Si es copien dades sensibles, altres programes poden veure-ho.</string>
<string name="private_key">Clau privada</string>
<string name="export_app_properties_summary">Crea un fitxer per exportar la configuració de l\'aplicació</string>
<string name="permission">Permís</string>
<string name="menu_reload_database">Recarregar dada</string>
<string name="international_bank_account_number">IBAN</string>
<string name="menu_merge_from">Fusionar desde …</string>
<string name="content_description_database_color">Color de la base de dades</string>
<string name="character_count">Comptador de caràcters: %1$d</string>
<string name="email_address">Adreça electrònica</string>
<string name="merge_success">Fusió completada satisfactòriament</string>
<string name="seed">Llavor</string>
<string name="settings_database_recommend_changing_master_key_summary">Recomanar canviar la clau mestra (dies)</string>
<string name="autofill_close_database_title">Tanca la base de dades</string>
<string name="bank_identifier_code">SWIFT / BIC</string>
<string name="upper_case">MAJÚSCULA</string>
<string name="monospace_font_fields_enable_title">Tipografia de camp</string>
<string name="corrupted_file">Fitxer corrupte.</string>
<string name="error_no_hardware_key">Selecciona clau física.</string>
<string name="settings_database_force_changing_master_key_next_time_summary">Requereix canviar la clau mestra el pròxim cop (un cop)</string>
<string name="allow_copy_password_summary">Permet copiar la clau i els camps protegits d\'una entrada al porta-retalls</string>
<string name="success_import_app_properties">Configuració de l\'aplicació importada</string>
</resources>

View File

@@ -42,7 +42,7 @@
<string name="decrypting_db">Dešifruji obsah databáze…</string>
<string name="default_checkbox">Použít jako výchozí databázi</string>
<string name="digits">Číslice</string>
<string name="select_database_file">Otevřít existující databázi</string>
<string name="select_database_file">Otevřít existující trezor</string>
<string name="entry_accessed">Poslední přístup</string>
<string name="entry_cancel">Zrušit</string>
<string name="entry_notes">Poznámky</string>
@@ -60,7 +60,7 @@
<string name="error_arc4">Arcfour proudová šifra není podporována.</string>
<string name="error_can_not_handle_uri">KeePassDX nemůže zpracovat toto URI.</string>
<string name="error_file_not_create">Soubor se nepodařilo vytvořit</string>
<string name="error_invalid_db">Databázi se nepodařilo načíst.</string>
<string name="error_invalid_db">Databázi se nepodařilo přečíst.</string>
<string name="error_invalid_path">Ujistěte se, že je popis umístění správný.</string>
<string name="error_no_name">Zadejte název.</string>
<string name="error_nokeyfile">Vyberte soubor s klíčem.</string>
@@ -174,7 +174,7 @@
<string name="warning_empty_password">Pokračovat bez ochrany heslem\?</string>
<string name="warning_no_encryption_key">Pokračovat bez šifrovacího klíče\?</string>
<string name="encrypted_value_stored">Šifrované heslo uloženo</string>
<string name="unavailable">Tato databáze zatím nemá uložené heslo.</string>
<string name="unavailable">Nedostupné</string>
<string name="database_history">Historie</string>
<string name="menu_appearance_settings">Vzhled</string>
<string name="general">Obecné</string>
@@ -194,18 +194,18 @@
<string name="lock">Zamknout</string>
<string name="lock_database_screen_off_title">Zámek obrazovky</string>
<string name="lock_database_screen_off_summary">Několik vteřin po zhasnutí obrazovky uzamknout databázi</string>
<string name="advanced_unlock">Rozšířené odemknutí</string>
<string name="advanced_unlock">Odemykání zařízení</string>
<string name="biometric_unlock_enable_title">Biometrické odemknutí</string>
<string name="biometric_unlock_enable_summary">Nechá otevřít databázi snímáním biometrického údaje</string>
<string name="biometric_delete_all_key_title">Smazat šifrovací klíče</string>
<string name="biometric_delete_all_key_summary">Smazat všechny šifrovací klíče související s rozpoznáním rozšířeného odemknutí</string>
<string name="biometric_delete_all_key_summary">Odstranit všechny šifrovací klíče související s rozpoznáním odemykání zařízení</string>
<string name="unavailable_feature_text">Tuto funkci se nedaří spustit.</string>
<string name="unavailable_feature_version">V zařízení je instalován Android %1$s, ale potřebná je verze %2$s a novější.</string>
<string name="unavailable_feature_hardware">Odpovídající hardware nebyl rozpoznán.</string>
<string name="file_name">Název souboru</string>
<string name="path">Cesta</string>
<string name="assign_master_key">Přiřadit hlavní klíč</string>
<string name="create_keepass_file">Založit novou databázi</string>
<string name="create_keepass_file">Vytvořit nový trezor</string>
<string name="recycle_bin_title">Využití koše</string>
<string name="recycle_bin_summary">Před smazáním přesune vybrané položky do skupiny s názvem \"Koš\"</string>
<string name="monospace_font_fields_enable_title">Písmo kolonek</string>
@@ -245,7 +245,7 @@
<string name="education_entry_edit_summary">Přidejte ke svému záznamu vlastní kolonky. Společná data mohou být sdílena mezi různými kolonkami záznamu odkazem.</string>
<string name="education_generate_password_title">Vytvořit silné heslo</string>
<string name="education_generate_password_summary">Nechte si vytvořit odolné heslo pro svůj záznam, definujte je podle kritérií formuláře, a nezapomeňte na bezpečné heslo.</string>
<string name="education_entry_new_field_title">Přidat vlastní kolonky</string>
<string name="education_entry_new_field_title">Přidat vlastní pole</string>
<string name="education_entry_new_field_summary">Registrovat další kolonku, zadat hodnotu a volitelně ji ochránit.</string>
<string name="education_unlock_title">Odemknout databázi</string>
<string name="education_read_only_title">Ochraňte svou databázi před zápisem</string>
@@ -336,7 +336,7 @@
<string name="menu_advanced_unlock_settings">Odemknutí zařízení</string>
<string name="biometric">Biometrika</string>
<string name="biometric_auto_open_prompt_title">Automaticky otevřít pobídku</string>
<string name="biometric_auto_open_prompt_summary">Automaticky žádat rozšířené odemknutí, je-li databáze nastavena k jejímu použití</string>
<string name="biometric_auto_open_prompt_summary">Automaticky žádat odemykání zařízení, je-li databáze nastavena k jejímu použití</string>
<string name="enable">Zapnout</string>
<string name="disable">Vypnout</string>
<string name="master_key">Hlavní klíč</string>
@@ -365,7 +365,7 @@
<string name="contains_duplicate_uuid_procedure">Opravit chybu založením nového UUID pro duplikáty a pokračovat\?</string>
<string name="database_opened">Databáze otevřena</string>
<string name="clipboard_explanation_summary">Kopírovat kolonky záznamů pomocí schránky Vašeho zařízení</string>
<string name="advanced_unlock_explanation_summary">K snadnějšímu otevření databáze použijte rozšířené odemknutí</string>
<string name="advanced_unlock_explanation_summary">Pro snadnější otevření databáze použít odemykání zařízení</string>
<string name="database_data_compression_title">Komprese dat</string>
<string name="database_data_compression_summary">Komprese dat snižuje velikost databáze</string>
<string name="max_history_items_title">Maximální počet</string>
@@ -446,7 +446,7 @@
<string name="error_string_type">Tento text se s požadovanou položkou neshoduje.</string>
<string name="content_description_add_item">Přidat položku</string>
<string name="keyboard_previous_fill_in_summary">Automaticky přepnout na předchozí klávesnici po provedení \"Akce auto-klávesy\"</string>
<string name="keyboard_previous_fill_in_title">Akce auto-klávesy</string>
<string name="keyboard_previous_fill_in_title">Přepnout zpět</string>
<string name="keyboard_previous_database_credentials_summary">Automaticky přepnout zpět na předchozí klávesnici na obrazovce ověřovacích údajů databáze</string>
<string name="keyboard_previous_database_credentials_title">Obrazovka ověřovacích údajů databáze</string>
<string name="keyboard_change">Přepnout klávesnici</string>
@@ -493,28 +493,28 @@
<string name="select_entry">Vybrat záznam</string>
<string name="back_to_previous_keyboard">Zpět na předchozí klávesnici</string>
<string name="custom_fields">Vlastní kolonky</string>
<string name="advanced_unlock_delete_all_key_warning">Smazat všechny šifrovací klíče související s rozpoznáním rozšířeného odemknutí\?</string>
<string name="advanced_unlock_delete_all_key_warning">Odstranit všechny šifrovací klíče související s rozpoznáním odemykání zařízení\?</string>
<string name="device_credential_unlock_enable_summary">Dovolí pro otevření databáze použít heslo Vašeho zařízení</string>
<string name="device_credential_unlock_enable_title">Odemknutí heslem zařízení</string>
<string name="device_credential">Heslo zařízení</string>
<string name="credential_before_click_advanced_unlock_button">Zadejte heslo a pak klepněte na toto tlačítko.</string>
<string name="advanced_unlock_prompt_not_initialized">Nelze inicializovat pobídku pro rozšířené odemknutí.</string>
<string name="advanced_unlock_scanning_error">Chyba při rozšířeném odemknutí: %1$s</string>
<string name="advanced_unlock_not_recognized">Otisk pro rozšířené odemknutí nebyl rozpoznán</string>
<string name="advanced_unlock_invalid_key">Nedaří se načíst klíč rozšířeného odemknutí. Prosím, smažte ho a opakujte proces rozpoznání odemknutí.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Načíst důvěrný údaj pomocí dat rozšířeného odemknutí</string>
<string name="advanced_unlock_prompt_extract_credential_title">Otevřít pomocí rozšířeného odemyká</string>
<string name="advanced_unlock_prompt_store_credential_message">Pokud použijete rozpoznání rozšířeného odemknutí, musíte si i nadále pamatovat hlavní heslo.</string>
<string name="advanced_unlock_prompt_store_credential_title">Rozpoznání rozšířeného odemknutí</string>
<string name="menu_keystore_remove_key">Smazat klíč rozšířeného odemknutí</string>
<string name="education_advanced_unlock_title">Rozšířené odemknutí databáze</string>
<string name="advanced_unlock_timeout">Časový limit rozšířeného odemknutí</string>
<string name="temp_advanced_unlock_timeout_summary">Trvání použití rozšířeného odemknutí než bude obsah téhož smazán</string>
<string name="temp_advanced_unlock_enable_summary">Za účelem rozšířeného odemknutí neukládat žádný šifrovaný obsah</string>
<string name="temp_advanced_unlock_enable_title">Přechodné rozšířené odemknutí</string>
<string name="advanced_unlock_tap_delete">Pro odstranění klíčů rozšířeného odemknutí klepnout</string>
<string name="advanced_unlock_prompt_not_initialized">Nepodařilo se inicializovat nabídku pro odemykání zařízení.</string>
<string name="advanced_unlock_scanning_error">Chyba při odemykání zařízení: %1$s</string>
<string name="advanced_unlock_not_recognized">Otisk pro odemykání zařízení nebyl rozpoznán</string>
<string name="advanced_unlock_invalid_key">Nepodařilo se načíst klíč odemykání zařízení. Odstraňte ho a opakujte proces rozpoznání odemknutí.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Načíst údaj z databáze pomocí dat odemykání zařízení</string>
<string name="advanced_unlock_prompt_extract_credential_title">Rozpoznání odemykání zaříze</string>
<string name="advanced_unlock_prompt_store_credential_message">Pokud použijete rozpoznání odemykání zařízení, musíte si i nadále pamatovat hlavní heslo trezoru.</string>
<string name="advanced_unlock_prompt_store_credential_title">Propojit s odemykáním zařízení</string>
<string name="menu_keystore_remove_key">Smazat klíč odemknutí zařízení</string>
<string name="education_advanced_unlock_title">Odemykání databáze zařízením</string>
<string name="advanced_unlock_timeout">Časový limit odemykání zařízení</string>
<string name="temp_advanced_unlock_timeout_summary">Trvání použití odemykání zařízení, než bude obsah smazán</string>
<string name="temp_advanced_unlock_enable_summary">Za účelem odemykání zařízení neukládat žádný šifrovaný obsah</string>
<string name="temp_advanced_unlock_enable_title">Dočasné odemykání zařízení</string>
<string name="advanced_unlock_tap_delete">Klepněte pro odstranění klíčů odemykání zařízení</string>
<string name="education_advanced_unlock_summary">Abyste rychle odemknuli databázi, propojte své heslo s naskenovanou biometrikou nebo údaji zámku zařízení.</string>
<string name="temp_advanced_unlock_timeout_title">Vypršení rozšířeného odemknutí</string>
<string name="temp_advanced_unlock_timeout_title">Vypršení odemykání zařízení</string>
<string name="content">Obsah</string>
<string name="error_rebuild_list">Seznam nelze řádně sestavit.</string>
<string name="error_database_uri_null">URI databáze nelze načíst.</string>
@@ -539,15 +539,15 @@
<string name="error_file_to_big">Soubor, který se pokoušíte nahrát, je příliš velký.</string>
<string name="content_description_otp_information">Info o jednorázovém heslu</string>
<string name="properties">Vlastnosti</string>
<string name="error_export_app_properties">Během exportu vlastností aplikace došlo k chybě</string>
<string name="success_export_app_properties">Vlastnosti aplikace byly exportovány</string>
<string name="error_import_app_properties">Během importu vlastností aplikace došlo k chybě</string>
<string name="success_import_app_properties">Vlastnosti aplikace byly importovány</string>
<string name="error_export_app_properties">Během exportu nastavení aplikace došlo k chybě</string>
<string name="success_export_app_properties">Nastavení aplikace byla exportována</string>
<string name="error_import_app_properties">Během importu nastavení aplikace došlo k chybě</string>
<string name="success_import_app_properties">Nastavení aplikace byla importována</string>
<string name="description_app_properties">Vlastnosti KeePassDX pro správu aplikačních nastavení</string>
<string name="export_app_properties_summary">Pro export vlastností aplikace založte soubor</string>
<string name="export_app_properties_title">Exportovat vlastnosti aplikace</string>
<string name="import_app_properties_summary">Pro import vlastostí aplikace zvolte soubor</string>
<string name="import_app_properties_title">Importovat vlastnosti aplikace</string>
<string name="export_app_properties_summary">Vytvořte soubor pro export nastavení aplikace</string>
<string name="export_app_properties_title">Exportovat nastavení aplikace</string>
<string name="import_app_properties_summary">Vyberte soubor pro import nastavení aplikace</string>
<string name="import_app_properties_title">Importovat nastavení aplikace</string>
<string name="error_start_database_action">Během akce v databázi došlo k chybě.</string>
<string name="error_remove_file">Při odstraňování dat soboru došlo k chybě.</string>
<string name="error_duplicate_file">Datový soubor již existuje.</string>
@@ -615,13 +615,13 @@
<string name="show_entry_colors_summary">Zobrazí barvy popředí a pozadí záznamu</string>
<string name="show_entry_colors_title">Barvy záznamu</string>
<string name="regex">Běžný výraz</string>
<string name="enable_keep_screen_on_summary">Při prohlížení záznamu držet obrazovku zapnutou</string>
<string name="enable_keep_screen_on_summary">Při prohlížení nebo úpravě záznamu ponechat obrazovku zapnutou</string>
<string name="navigation_drawer_open">Otevření navigačního panelu</string>
<string name="navigation_drawer_close">Zavření navigačního panelu</string>
<string name="inherited">Převzít</string>
<string name="auto_type_sequence">Posloupnost automatického vyplňování</string>
<string name="content_description_passphrase_word_count">Počet slov hesla</string>
<string name="passphrase">Heslo</string>
<string name="passphrase">Heslová fráze</string>
<string name="colorize_password_title">Zabarvit hesla</string>
<string name="colorize_password_summary">Zabarvit znaky hesla podle typu</string>
<string name="warning_database_already_opened">Databáze je již otevřená, zavřete ji, než otevřete jinou</string>
@@ -667,8 +667,26 @@
<string name="corrupted_file">Poškozený soubor.</string>
<string name="remember_hardware_key_title">Pamatovat si hardwarové klíče</string>
<string name="remember_hardware_key_summary">Udržuje znalost o použitých hardwarových klíčích</string>
<string name="merge_success">Sloučení bylo úspěšně dokončeno</string>
<string name="merge_success">Sloučení úspěšně dokončeno</string>
<string name="info">Informace</string>
<string name="menu_app_settings_summary">Vyhledávání, uzamčení, historie, vlastnosti</string>
<string name="menu_form_filling_settings_summary">Klávesnice, automatické vyplnění, schránka</string>
<string name="menu_advanced_unlock_settings_summary">Biometrie, údaje zařízení</string>
<string name="menu_database_settings_summary">Metadata, koš, šablony, historie</string>
<string name="menu_security_settings_summary">Šifrování, funkce derivace klíče</string>
<string name="master_key_settings_summary">Změna, obnovení</string>
<string name="warning_database_notification_permission">Oprávnění k oznámením umožňuje zobrazit stav databáze a uzamknout ji snadno přístupným tlačítkem.
\n
\nPokud toto oprávnění neaktivujete, nebude databáze otevřená na pozadí viditelná, pokud je v popředí jiná aplikace.</string>
<string name="warning_copy_permission">Oprávnění k oznámením je potřeba pro použití funkce oznámení o schránce.</string>
<string name="later">Později</string>
<string name="ask">Zeptat se</string>
<string name="configure">Nastavit</string>
<string name="unlock_and_link_biometric">Propojení s odemykáním zařízení</string>
<string name="menu_appearance_settings_summary">Motivy, barvy, atributy</string>
<string name="unlock">Odemknout</string>
<string name="education_validate_entry_title">Ověřit vstup</string>
<string name="education_validate_entry_summary">Nezapomeňte ověřit svůj vstup a uložit databázi.
\n
\nPokud je aktivované automatické uzamčení a zapomenete, že jste něco upravili, riskujete ztrátu dat.</string>
</resources>

View File

@@ -224,9 +224,9 @@
<string name="reset_education_screens_summary">Alle Hilfsinfos nochmal anzeigen</string>
<string name="reset_education_screens_text">Hilfeanzeige zurückgesetzt</string>
<string name="education_create_database_title">Datenbankdatei erstellen</string>
<string name="education_create_database_summary">Die erste Datei zur Passwortverwaltung erstellen.</string>
<string name="education_create_database_summary">Erstellt eine erste Datei zur Passwortverwaltung.</string>
<string name="education_select_database_title">Existierende Datenbank öffnen</string>
<string name="education_select_database_summary">Eine frühere Datenbankdatei mit dem Dateimanager öffnen, um sie weiter zu verwenden.</string>
<string name="education_select_database_summary">Öffnet über den Dateimanager eine früher erstellte Datenbankdatei, um sie weiter zu verwenden.</string>
<string name="education_new_node_title">Datenbankelemente hinzufügen</string>
<string name="education_new_node_summary">Einträge helfen dabei digitale Konten zu verwalten.
\n
@@ -236,7 +236,7 @@
<string name="education_entry_edit_title">Eintrag bearbeiten</string>
<string name="education_entry_edit_summary">Dem Eintrag eigene Felder hinzufügen. Die Felder können mit Querverweisen aus anderen Einträgen ergänzt werden.</string>
<string name="education_generate_password_title">Ein starkes Passwort erstellen</string>
<string name="education_generate_password_summary">Ein starkes Passwort generieren, um es mit dem Eintrag zu verknüpfen; es den Anforderungen des Formulars anpassen und die Passwortsicherheit nicht vergessen.</string>
<string name="education_generate_password_summary">Lassen Sie ein starkes Passwort erstellen, das mit Ihrem Eintrag verbunden wird, legen Sie es einfach anhand von Formularkriterien fest und vergessen Sie nicht Ihr Passwort zu sichern.</string>
<string name="education_entry_new_field_title">Eigene Felder hinzufügen</string>
<string name="education_entry_new_field_summary">Ein zusätzliches Feld einfügen, einen Wert hinzufügen und diesen optional schützen.</string>
<string name="education_unlock_title">Datenbank entsperren</string>
@@ -427,17 +427,15 @@
<string name="hide_expired_entries_summary">Abgelaufene Einträge werden nicht angezeigt</string>
<string name="style_choose_title">App-Design</string>
<string name="style_choose_summary">In der App verwendetes Design</string>
<string-array name="list_style_names">
<item>Wald</item>
<item>Göttlich</item>
<item>Klassisch</item>
<item>Einfach</item>
<item>Mond</item>
<item>Sonne</item>
<item>Antwort</item>
<item>Kunzite</item>
<item>System verfolgen</item>
</string-array>
<string name="style_name_forest">Wald</string>
<string name="style_name_divine">Göttlich</string>
<string name="style_name_classic">Klassisch</string>
<string name="style_name_simple">Einfach</string>
<string name="style_name_moon">Mond</string>
<string name="style_name_sun">Sonne</string>
<string name="style_name_reply">Antwort</string>
<string name="style_name_kunzite">Kunzite</string>
<string name="style_name_follow_system">System verfolgen</string>
<string name="warning_database_read_only">Schreibrechte gewähren, um Datenbankänderungen zu speichern</string>
<string name="education_setup_OTP_summary">Einmal-Passwortverwaltung (HOTP/TOTP) einrichten, um Token für Zwei-Faktor-Authentifizierung (2FA) zu generieren.</string>
<string name="education_setup_OTP_title">OTP einrichten</string>

View File

@@ -200,9 +200,9 @@
<string name="other">Άλλα</string>
<string name="keyboard">Πληκτρολόγιο</string>
<string name="magic_keyboard_title">Magikeyboard</string>
<string name="reset_education_screens_title">Επαναφορά εκπαιδευτικών συμβουλών</string>
<string name="reset_education_screens_title">Επαναφορά εκπαιδευτικών υποδείξεων</string>
<string name="reset_education_screens_summary">Εμφάνιση όλων των εκπαιδευτικών πληροφοριών ξανά</string>
<string name="reset_education_screens_text">Επαναφορά εκπαιδευτικών συμβουλών</string>
<string name="reset_education_screens_text">Επαναφορά εκπαιδευτικών υποδείξεων</string>
<string name="education_create_database_title">Δημιουργήστε το αρχείο της βάσης δεδομένων σας</string>
<string name="education_create_database_summary">Δημιουργήστε το πρώτο αρχείο διαχείρισης κωδικού πρόσβασης.</string>
<string name="education_select_database_title">Ανοίξτε μια υπάρχουσα βάση δεδομένων</string>
@@ -326,7 +326,7 @@
<string name="content_description_keyboard_close_fields">Κλείσιμο πεδίων</string>
<string name="error_create_database_file">Δεν είναι δυνατή η δημιουργία βάσης δεδομένων με αυτόν τον κωδικό πρόσβασης και το αρχείο κλειδί.</string>
<string name="menu_advanced_unlock_settings">Ξεκλείδωμα συσκευής</string>
<string name="unavailable">Αυτή η βάση δεδομένων δεν έχει αποθηκευμένα διαπιστευτήρια ακόμα.</string>
<string name="unavailable">Μη διαθέσιμο</string>
<string name="menu_appearance_settings">Εμφάνιση</string>
<string name="biometric">Βιομετρία</string>
<string name="advanced_unlock">Ξεκλείδωμα συσκευής</string>
@@ -540,15 +540,15 @@
<string name="error_remove_file">Παρουσιάστηκε σφάλμα κατά την κατάργηση των δεδομένων αρχείου.</string>
<string name="error_duplicate_file">Τα δεδομένα αρχείου υπάρχουν ήδη.</string>
<string name="properties">Ιδιότητες</string>
<string name="error_export_app_properties">Σφάλμα κατά την εξαγωγή ιδιοτήτων εφαρμογής</string>
<string name="success_export_app_properties">Έγινε εξαγωγή ιδιοτήτων εφαρμογής</string>
<string name="error_import_app_properties">Σφάλμα κατά την εισαγωγή ιδιοτήτων εφαρμογής</string>
<string name="success_import_app_properties">Έγινε εισαγωγή ιδιοτήτων εφαρμογής</string>
<string name="error_export_app_properties">Σφάλμα κατά την εξαγωγή ρυθμίσεων εφαρμογής</string>
<string name="success_export_app_properties">Έγινε εξαγωγή ρυθμίσεων εφαρμογής</string>
<string name="error_import_app_properties">Σφάλμα κατά την εισαγωγή ρυθμίσεων εφαρμογής</string>
<string name="success_import_app_properties">Έγινε εισαγωγή ρυθμίσεων εφαρμογής</string>
<string name="description_app_properties">Ιδιότητες KeePassDX για διαχείριση ρυθμίσεων εφαρμογής</string>
<string name="export_app_properties_summary">Δημιουργήστε ένα αρχείο για εξαγωγή ιδιοτήτων εφαρμογής</string>
<string name="export_app_properties_title">Εξαγωγή ιδιοτήτων εφαρμογής</string>
<string name="import_app_properties_summary">Επιλέξτε ένα αρχείο για εισαγωγή ιδιοτήτων εφαρμογής</string>
<string name="import_app_properties_title">Εισαγωγή ιδιοτήτων εφαρμογής</string>
<string name="export_app_properties_summary">Δημιουργήστε ένα αρχείο για εξαγωγή ρυθμίσεων εφαρμογής</string>
<string name="export_app_properties_title">Εξαγωγή ρυθμίσεων εφαρμογής</string>
<string name="import_app_properties_summary">Επιλέξτε ένα αρχείο για εισαγωγή ρυθμίσεων εφαρμογής</string>
<string name="import_app_properties_title">Εισαγωγή ρυθμίσεων εφαρμογής</string>
<string name="error_start_database_action">Παρουσιάστηκε σφάλμα κατά την εκτέλεση μιας ενέργειας στη βάση δεδομένων.</string>
<string name="error_move_group_here">Δεν μπορείτε να μετακινήσετε μια ομάδα εδώ.</string>
<string name="error_word_reserved">Αυτή η λέξη είναι δεσμευμένη και δεν μπορεί να χρησιμοποιηθεί.</string>

View File

@@ -145,4 +145,12 @@
<string name="homepage">Hejmpaĝo</string>
<string name="contribution">Kontribuo</string>
<string name="contact">Kontakto</string>
<string name="clipboard_error">Iu aparatoj ne permesas al apoj uzi tondujon.</string>
<string name="about_description">Varianto de pasvort-manipulilo KeePass por Android</string>
<string name="key_derivation_function">Funkcio por derivado de ŝlosilo</string>
<string name="info">Informo</string>
<string name="feedback">Erar-raportoj kaj sugestoj</string>
<string name="file_manager_install_description">Por krei, malfermi kaj konservi datumbazaj dosieroj necesiĝas dosier-manipulilo, kiu akceptas intenco-agojn ACTION_CREATE_DOCUMENT kaj ACTION_OPEN_DOCUMENT.</string>
<string name="app_timeout_summary">Periodo de malaktiveco antaŭ ŝlosado de datumbazo</string>
<string name="extended_ASCII">Etendita ASCII</string>
</resources>

View File

@@ -43,7 +43,7 @@
<string name="digits">Dígitos</string>
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft es de &lt;strong&gt;código abierto&lt;/strong&gt; y &lt;strong&gt;sin publicidad&lt;/strong&gt;.
\nSe proporciona tal cual, bajo licencia &lt;strong&gt;GPLv3&lt;/strong&gt;, sin ninguna garantía.</string>
<string name="select_database_file">Abrir base de datos existente</string>
<string name="select_database_file">Abrir la caja fuerte existente</string>
<string name="entry_accessed">Accedido</string>
<string name="entry_cancel">Cancelar</string>
<string name="entry_notes">Notas</string>
@@ -91,11 +91,11 @@
<string name="menu_change_key_settings">Cambiar contraseña maestra</string>
<string name="settings">Configuración</string>
<string name="menu_database_settings">Configuración de base de datos</string>
<string name="menu_delete">Eliminar</string>
<string name="menu_delete">Borrar</string>
<string name="menu_donate">Donar</string>
<string name="menu_edit">Editar</string>
<string name="menu_hide_password">Ocultar contraseña</string>
<string name="menu_lock">Bloquear base de datos</string>
<string name="menu_lock">Bloquear la base de datos</string>
<string name="menu_open">Abrir</string>
<string name="menu_search">Buscar</string>
<string name="menu_showpass">Mostrar contraseña</string>
@@ -106,7 +106,7 @@
<string name="no_url_handler">Instale un navegador web para abrir esta URL.</string>
<string name="progress_create">Creando nueva base de datos…</string>
<string name="progress_title">Trabajando…</string>
<string name="content_description_remove_from_list">Eliminar</string>
<string name="content_description_remove_from_list">Quitar</string>
<string name="root">Raíz</string>
<string name="rounds">Rondas de transformación</string>
<string name="rounds_explanation">Un alto número de pasadas de cifrado proporciona protección adicional contra ataques de fuerza bruta, pero puede ralentizar mucho el cargado y el guardado.</string>
@@ -169,7 +169,7 @@
<string name="encrypted_value_stored">Contraseña cifrada almacenada</string>
<string name="database_history">Historial</string>
<string name="autofill_explanation_summary">Habilite el servicio para completar formularios fácilmente desde otras aplicaciones</string>
<string name="unavailable">Esta base de datos aún no tiene credenciales almacenadas.</string>
<string name="unavailable">No disponible</string>
<string name="menu_appearance_settings">Apariencia</string>
<string name="general">General</string>
<string name="autofill">Autocompletado</string>
@@ -186,18 +186,18 @@
<string name="lock">Bloquear</string>
<string name="lock_database_screen_off_title">Bloqueo de pantalla</string>
<string name="lock_database_screen_off_summary">Bloquear la base de datos después de unos segundos cuando la pantalla esté apagada</string>
<string name="advanced_unlock">Desbloqueo avanzado</string>
<string name="advanced_unlock">Desbloqueo del dispositivo</string>
<string name="biometric_unlock_enable_title">Desbloqueo biométrico</string>
<string name="biometric_unlock_enable_summary">Le permite escanear sus datos biométricos para abrir la base de datos</string>
<string name="biometric_delete_all_key_title">Eliminar claves de cifrado</string>
<string name="biometric_delete_all_key_summary">Eliminar todas las claves de cifrado relacionadas con el reconocimiento de desbloqueo avanzado</string>
<string name="biometric_delete_all_key_summary">Borrar todas las claves de cifrado relacionadas con el reconocimiento de desbloqueo del dispositivo</string>
<string name="unavailable_feature_text">No se pudo iniciar esta funcionalidad.</string>
<string name="unavailable_feature_version">El dispositivo funciona con Android %1$s, pero necesita %2$s o posterior.</string>
<string name="unavailable_feature_hardware">No se pudo encontrar el hardware correspondiente.</string>
<string name="file_name">Nombre del archivo</string>
<string name="path">Ruta</string>
<string name="assign_master_key">Asignar una clave maestra</string>
<string name="create_keepass_file">Crear nueva base de datos</string>
<string name="create_keepass_file">Crear una nueva caja fuerte</string>
<string name="recycle_bin_title">Uso de la papelera de reciclaje</string>
<string name="recycle_bin_summary">Mueve los grupos y las entradas al grupo \"Papelera de reciclaje\" antes de eliminarlos</string>
<string name="monospace_font_fields_enable_title">Tipografía del campo</string>
@@ -237,7 +237,7 @@
<string name="education_field_copy_summary">Los campos copiados pueden pegarse en cualquier sitio.
\n
\nUtilice el método de relleno de formularios que prefiera.</string>
<string name="education_lock_title">Bloquear base de datos</string>
<string name="education_lock_title">Bloquear la base de datos</string>
<string name="education_lock_summary">Bloquee su base de datos rápidamente, puede parametrizar la aplicación para bloquearla después de un tiempo o cuando la pantalla se apague.</string>
<string name="education_sort_title">Ordenar elementos</string>
<string name="education_sort_summary">Ordenar registros y grupos de acuerdo a parámetros específicos.</string>
@@ -331,10 +331,10 @@
<string name="content_description_update_from_list">Actualizar</string>
<string name="content_description_keyboard_close_fields">Cerrar campos</string>
<string name="error_create_database_file">No se puede crear la base de datos con esta contraseña y este archivo clave.</string>
<string name="menu_advanced_unlock_settings">Desbloqueo avanzado</string>
<string name="menu_advanced_unlock_settings">Desbloqueo de dispositivos</string>
<string name="biometric">Biometría</string>
<string name="biometric_auto_open_prompt_title">Abrir petición automáticamente</string>
<string name="biometric_auto_open_prompt_summary">Solicitar automáticamente el desbloqueo avanzado si la base de datos está configurada para utilizarlo</string>
<string name="biometric_auto_open_prompt_summary">Solicitar automáticamente el desbloqueo del dispositivo si la base de datos está configurada para utilizarlo</string>
<string name="enable">Activar</string>
<string name="disable">Desactivar</string>
<string name="education_read_only_summary">Cambiar el modo de apertura de la sesión.
@@ -382,7 +382,7 @@
<string name="settings_database_force_changing_master_key_summary">Requerir un cambio de la contraseña maestra (días)</string>
<string name="settings_database_force_changing_master_key_title">Forzar renovación</string>
<string name="max_history_size_title">Tamaño máximo</string>
<string name="advanced_unlock_explanation_summary">Usar el desbloqueo avanzado para abrir una base de datos más fácilmente</string>
<string name="advanced_unlock_explanation_summary">Utiliza el desbloqueo de dispositivos para abrir una base de datos más fácilmente</string>
<string name="lock_database_show_button_summary">Muestra el botón de bloqueo en la interfaz</string>
<string name="lock_database_show_button_title">Mostrar botón de bloqueo</string>
<string name="autofill_preference_title">Configuración de autocompletado</string>
@@ -442,27 +442,27 @@
<string name="database_data_remove_unlinked_attachments_summary">Elimina los archivos adjuntos contenidos en la base de datos pero no vinculados a una entrada</string>
<string name="database_data_remove_unlinked_attachments_title">Eliminar los datos no vinculados</string>
<string name="data">Datos</string>
<string name="advanced_unlock_delete_all_key_warning">¿Borrar todas las claves de encriptación relacionadas con el reconocimiento de desbloqueo avanzado\?</string>
<string name="advanced_unlock_timeout">Tiempo límite de desbloqueo avanzado</string>
<string name="temp_advanced_unlock_timeout_summary">Duración del uso de desbloqueo avanzado antes de borrar su contenido</string>
<string name="temp_advanced_unlock_timeout_title">Expiración de desbloqueo avanzado</string>
<string name="temp_advanced_unlock_enable_summary">No almacenar ningún contenido encriptado para utilizar el desbloqueo avanzado</string>
<string name="temp_advanced_unlock_enable_title">Desbloqueo avanzado temporal</string>
<string name="advanced_unlock_delete_all_key_warning">¿Borrar todas las claves de cifrado relacionadas con el reconocimiento del desbloqueo del dispositivo\?</string>
<string name="advanced_unlock_timeout">Tiempo de espera de desbloqueo del dispositivo</string>
<string name="temp_advanced_unlock_timeout_summary">Duración del uso del desbloqueo del dispositivo antes de borrar su contenido</string>
<string name="temp_advanced_unlock_timeout_title">Caducidad del desbloqueo del dispositivo</string>
<string name="temp_advanced_unlock_enable_summary">No almacenes ningún contenido cifrado para utilizar el desbloqueo del dispositivo</string>
<string name="temp_advanced_unlock_enable_title">Desbloqueo temporal de los dispositivos</string>
<string name="device_credential_unlock_enable_summary">Le permite usar la credenciales de su dispositivo para abrir la base de datos</string>
<string name="device_credential_unlock_enable_title">Desbloqueo de las credenciales del dispositivo</string>
<string name="advanced_unlock_tap_delete">Toque para eliminar las teclas de desbloqueo avanzadas</string>
<string name="advanced_unlock_tap_delete">Pulsa para eliminar las claves de desbloqueo del dispositivo</string>
<string name="content">Contenido</string>
<string name="clipboard_explanation_summary">Copiar los campos de entrada usando el portapapeles de su dispositivo</string>
<string name="device_credential">Credenciales del dispositivo</string>
<string name="credential_before_click_advanced_unlock_button">Introduzca la contraseña y luego haga clic en este botón.</string>
<string name="advanced_unlock_prompt_not_initialized">No se pudo inicializar el indicador de desbloqueo avanzado.</string>
<string name="advanced_unlock_scanning_error">Error de desbloqueo avanzado: %1$s</string>
<string name="advanced_unlock_not_recognized">No se pudo reconocer la impresión de desbloqueo avanzado</string>
<string name="advanced_unlock_invalid_key">No se puede leer la clave de desbloqueo avanzada. Por favor, bórrela y repita el procedimiento de reconocimiento del desbloqueo.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Extraer la credencial de la base de datos con datos de desbloqueo avanzado</string>
<string name="advanced_unlock_prompt_extract_credential_title">Abrir la base de datos con reconocimiento de desbloqueo avanzado</string>
<string name="advanced_unlock_prompt_store_credential_message">Aún debe recordar su contraseña maestra si emplea el reconocimiento de desbloqueo avanzado.</string>
<string name="advanced_unlock_prompt_store_credential_title">Reconocimiento de desbloqueo avanzado</string>
<string name="advanced_unlock_prompt_not_initialized">No se ha podido inicializar el aviso de desbloqueo del dispositivo.</string>
<string name="advanced_unlock_scanning_error">Error de desbloqueo del dispositivo: %1$s</string>
<string name="advanced_unlock_not_recognized">No se reconoc la huella digital para desbloquear el dispositivo</string>
<string name="advanced_unlock_invalid_key">No se puede leer la clave de desbloqueo del dispositivo. Por favor, bórrala y repite el procedimiento de reconocimiento del desbloqueo.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Extraer la credencial de la base de datos con los datos de desbloqueo del dispositivo</string>
<string name="advanced_unlock_prompt_extract_credential_title">Reconocimiento de desbloqueo de los dispositivos</string>
<string name="advanced_unlock_prompt_store_credential_message">Aún debes recordar la credencial principal de tu caja fuerte si usas el reconocimiento para el desbloqueo del dispositivo.</string>
<string name="advanced_unlock_prompt_store_credential_title">Enlace para el desbloqueo del dispositivo</string>
<string name="keystore_not_accessible">El almacén de claves no está debidamente inicializado.</string>
<string name="biometric_security_update_required">Se requiere una actualización de la seguridad biométrica.</string>
<string name="configure_biometric">No se ha inscrito ninguna credencial biométrica o del dispositivo.</string>
@@ -472,7 +472,7 @@
<string name="save_mode">Modo de guardado</string>
<string name="search_mode">Modo de búsqueda</string>
<string name="contains_duplicate_uuid_procedure">¿Resolver el problema generando nuevos UUID para que los duplicados continúen\?</string>
<string name="menu_keystore_remove_key">Eliminar clave de desbloqueo avanzado</string>
<string name="menu_keystore_remove_key">Borrar la clave de desbloqueo del dispositivo</string>
<string name="error_field_name_already_exists">El nombre del campo ya existe.</string>
<string name="error_registration_read_only">Guardar un nuevo elemento no está permitido en una base de datos de sólo lectura</string>
<string name="settings_database_recommend_changing_master_key_title">Recomendar la renovación</string>
@@ -488,7 +488,7 @@
<string name="education_setup_OTP_summary">Configurar la gestión de contraseñas de un solo uso (HOTP / TOTP) para generar un token solicitado para la autenticación de dos factores (2FA).</string>
<string name="education_setup_OTP_title">Establecer la contraseña de un solo uso</string>
<string name="education_advanced_unlock_summary">Vincule su contraseña con su credencial biométrica o del dispositivo escaneada para desbloquear rápidamente su base de datos.</string>
<string name="education_advanced_unlock_title">Desbloqueo avanzado de la base de datos</string>
<string name="education_advanced_unlock_title">Desbloqueo de la base de datos de los dispositivos</string>
<string name="autofill_read_only_save">No se permite guardar datos en una base de datos abierta como de sólo lectura.</string>
<string name="autofill_block_restart">Reiniciar la aplicación que contiene el formulario para activar el bloqueo.</string>
<string name="autofill_web_domain_blocklist_summary">Lista de bloqueo que impide el llenado automático de los dominios web</string>
@@ -509,7 +509,7 @@
<string name="keyboard_previous_lock_summary">Cambiar automáticamente al teclado anterior después de bloquear la base de datos</string>
<string name="keyboard_previous_lock_title">Bloquear la base de datos</string>
<string name="keyboard_previous_fill_in_summary">Cambiar automáticamente al teclado anterior después de ejecutar \"Acción de la tecla automática\"</string>
<string name="keyboard_previous_fill_in_title">Acción de la tecla automática</string>
<string name="keyboard_previous_fill_in_title">Volver atrás</string>
<string name="keyboard_previous_database_credentials_summary">Cambiar automáticamente al teclado anterior en la pantalla de credenciales de la base de datos</string>
<string name="keyboard_previous_database_credentials_title">Pantalla de credenciales de la base de datos</string>
<string name="keyboard_auto_go_action_title">Acción de la tecla automática</string>
@@ -541,14 +541,14 @@
<string name="style_brightness_summary">Seleccionar temas oscuros o claros</string>
<string name="style_brightness_title">Brillo del tema</string>
<string name="properties">Propiedades</string>
<string name="error_import_app_properties">Error al importar las propiedades de la aplicación</string>
<string name="error_export_app_properties">Error al exportar las propiedades de la aplicación</string>
<string name="success_export_app_properties">Propiedades de la aplicación exportadas</string>
<string name="success_import_app_properties">Propiedades de la aplicación importadas</string>
<string name="export_app_properties_summary">Cree un archivo para exportar las propiedades de la aplicación</string>
<string name="export_app_properties_title">Exportar propiedades de la aplicación</string>
<string name="import_app_properties_summary">Seleccione un archivo para importar las propiedades de la aplicación</string>
<string name="import_app_properties_title">Importar propiedades de la aplicación</string>
<string name="error_import_app_properties">Error al importar la configuración de la aplicación</string>
<string name="error_export_app_properties">Error al exportar la configuración de la aplicación</string>
<string name="success_export_app_properties">Exportada la configuración de la aplicación</string>
<string name="success_import_app_properties">Importada la configuración de la aplicación</string>
<string name="export_app_properties_summary">Crear un archivo para exportar la configuración de la aplicación</string>
<string name="export_app_properties_title">Exportar la configuración de la aplicación</string>
<string name="import_app_properties_summary">Selecciona un archivo para importar la configuración de la aplicación</string>
<string name="import_app_properties_title">Importar la configuración de la aplicación</string>
<string name="error_start_database_action">Se ha producido un error al realizar una acción en la base de datos.</string>
<string name="error_remove_file">Se ha producido un error al eliminar los datos del archivo.</string>
<string name="error_file_to_big">El archivo que está intentando cargar es demasiado grande.</string>
@@ -604,7 +604,7 @@
<string name="warning_database_info_reloaded">La recarga de la base de datos borrará los datos modificados localmente.</string>
<string name="warning_keyfile_integrity">El hash del archivo no está garantizado porque Android puede cambiar sus datos sobre la marcha. Cambia la extensión del archivo a .bin para una correcta integridad.</string>
<string name="enable_keep_screen_on_title">Mantener la pantalla encendida</string>
<string name="enable_keep_screen_on_summary">Mantenga la pantalla encendida cuando vea la entrada</string>
<string name="enable_keep_screen_on_summary">Mantén la pantalla encendida cuando veas o edites una entrada</string>
<string name="enable_screenshot_mode_title">Modo captura de pantalla</string>
<string name="enable_screenshot_mode_summary">Permitir que otras aplicaciones graben o tomen capturas de pantalla de la aplicación</string>
<string name="show_entry_colors_summary">Muestra los colores de primer y segundo plano de una entrada</string>
@@ -669,4 +669,25 @@
<string name="waiting_challenge_request">Esperando solicitud de desafío…</string>
<string name="waiting_challenge_response">Esperando respuesta al desafío…</string>
<string name="merge_success">Fusión finalizada con éxito</string>
<string name="info">Información</string>
<string name="menu_app_settings_summary">Buscar, bloquear, historial, propiedades</string>
<string name="menu_form_filling_settings_summary">Teclado, autocompletar, portapapeles</string>
<string name="menu_database_settings_summary">Metadatos, papelera de reciclaje, plantillas, historial</string>
<string name="menu_advanced_unlock_settings_summary">Biometría, credencial del dispositivo</string>
<string name="menu_security_settings_summary">Cifrado, función de derivación de las claves</string>
<string name="master_key_settings_summary">Cambio, renovación</string>
<string name="warning_database_notification_permission">El permiso de notificación te permite mostrar el estado de la base de datos y bloquearla con un botón de fácil acceso.
\n
\nSi no activas este permiso, la base de datos abierta en segundo plano no será visible si hay otra aplicación en primer plano.</string>
<string name="warning_copy_permission">El permiso de notificación es necesario para utilizar la función de notificaciones para el portapapeles.</string>
<string name="later">Más tarde</string>
<string name="ask">Preguntar</string>
<string name="configure">Configurar</string>
<string name="unlock_and_link_biometric">Enlace de desbloqueo del dispositivo</string>
<string name="menu_appearance_settings_summary">Temas, colores, atributos</string>
<string name="unlock">Desbloquear</string>
<string name="education_validate_entry_title">Validar la entrada</string>
<string name="education_validate_entry_summary">No olvides validar tu entrada y guardar tu base de datos.
\n
\nSi se activa un bloqueo automático y olvidas que estabas haciendo una modificación, corres el riesgo de perder tus datos.</string>
</resources>

View File

@@ -306,4 +306,5 @@
<string name="error_move_entry_here">Et voi siirtää tietuetta tänne.</string>
<string name="error_autofill_enable_service">Automaattista täyttöä ei voitu ottaa käyttöön.</string>
<string name="content_description_node_children">Solmun lapset</string>
<string name="info">Tietoja</string>
</resources>

View File

@@ -159,7 +159,7 @@
<string name="configure_biometric">Aucune information didentification biométrique ou de périphérique nest enregistrée.</string>
<string name="encrypted_value_stored">Mot de passe chiffré stocké</string>
<string name="database_history">Historique</string>
<string name="unavailable">Cette base de données na pas encore stocké didentifiants.</string>
<string name="unavailable">Indisponible</string>
<string name="menu_appearance_settings">Apparence</string>
<string name="general">Général</string>
<string name="autofill">Remplissage automatique</string>
@@ -262,17 +262,17 @@
</string-array>
<string name="style_choose_title">Thème de lapplication</string>
<string name="style_choose_summary">Thème utilisé dans lapplication</string>
<string-array name="list_style_names">
<item>Forêt</item>
<item>Divin</item>
<item>Classique</item>
<item>Simple</item>
<item>Lune</item>
<item>Soleil</item>
<item>Réponse</item>
<item>Kunzite</item>
<item>Suivre le système</item>
</string-array>
<string name="style_name_forest">Forêt</string>
<string name="style_name_divine">Divin</string>
<string name="style_name_classic">Classique</string>
<string name="style_name_simple">Simple</string>
<string name="style_name_moon">Lune</string>
<string name="style_name_sun">Soleil</string>
<string name="style_name_reply">Réponse</string>
<string name="style_name_kunzite">Kunzite</string>
<string name="style_name_follow_system">Suivre le système</string>
<string name="style_name_light">Lumière</string>
<string name="style_name_dark">Ombre</string>
<string name="icon_pack_choose_title">Collection dicônes</string>
<string name="icon_pack_choose_summary">Collection dicônes utilisées dans lapplication</string>
<string name="menu_copy">Copier</string>
@@ -403,7 +403,7 @@
<string name="settings_database_force_changing_master_key_next_time_title">Forcer le renouvellement la prochaine fois</string>
<string name="settings_database_force_changing_master_key_next_time_summary">Nécessite de changer la clé principale la prochaine fois (une seule fois)</string>
<string name="database_default_username_title">Nom dutilisateur par défaut</string>
<string name="database_custom_color_title">Couleur de la base de données</string>
<string name="database_custom_color_title">Couleur customisée de la base de données</string>
<string name="compression">Compression</string>
<string name="compression_none">Aucune</string>
<string name="compression_gzip">Gzip</string>
@@ -556,15 +556,15 @@
<string name="error_file_to_big">Le fichier que vous essayez de téléverser est trop volumineux.</string>
<string name="content_description_otp_information">Information sur le mot de passe à usage unique</string>
<string name="properties">Propriétés</string>
<string name="error_export_app_properties">Erreur lors de l\'exportation des propriétés de l\'application</string>
<string name="success_export_app_properties">Propriétés de l\'application exportées</string>
<string name="error_import_app_properties">Erreur lors de l\'importation des propriétés de l\'application</string>
<string name="success_import_app_properties">Propriétés de l\'application importées</string>
<string name="error_export_app_properties">Erreur lors de l\'exportation des paramètres de l\'application</string>
<string name="success_export_app_properties">Paramètres exportés de l\'application</string>
<string name="error_import_app_properties">Erreur lors de l\'importation des paramètres de l\'application</string>
<string name="success_import_app_properties">Paramètres importés de l\'application</string>
<string name="description_app_properties">Propriétés KeePassDX pour gérer les paramètres de l\'application</string>
<string name="export_app_properties_summary">Créer un fichier pour exporter les propriétés de l\'application</string>
<string name="export_app_properties_title">Exporter les propriétés de l\'application</string>
<string name="import_app_properties_summary">Sélectionner un fichier pour importer les propriétés de l\'application</string>
<string name="import_app_properties_title">Importer les propriétés de l\'application</string>
<string name="export_app_properties_summary">Créer un fichier pour exporter les paramètres de l\'application</string>
<string name="export_app_properties_title">Exporter les paramètres de l\'application</string>
<string name="import_app_properties_summary">Sélectionner un fichier pour importer les paramètres de l\'application</string>
<string name="import_app_properties_title">Importer les paramètres de l\'application</string>
<string name="error_start_database_action">Une erreur s\'est produite lors de l\'exécution d\'une action sur la base de données.</string>
<string name="error_move_group_here">Vous ne pouvez pas déplacer un groupe ici.</string>
<string name="error_word_reserved">Ce mot est réservé et ne peut pas être utilisé.</string>
@@ -688,7 +688,7 @@
<string name="master_key_settings_summary">Changement, renouvellement</string>
<string name="menu_advanced_unlock_settings_summary">Biométrie, identifiant de l\'appareil</string>
<string name="unlock_and_link_biometric">Liaison avec déverouillage de l\'appareil</string>
<string name="unlock">Déverouiller</string>
<string name="unlock">Déverrouiller</string>
<string name="configure">Configurer</string>
<string name="menu_database_settings_summary">Métadonnées, corbeille, gabarits, historique</string>
<string name="menu_security_settings_summary">Chiffrement, fonction de dérivation de clé</string>

View File

@@ -535,15 +535,15 @@
<string name="error_remove_file">Tijekom uklanjanja podataka datoteke došlo je do greške.</string>
<string name="error_duplicate_file">Podaci datoteke već postoje.</string>
<string name="properties">Svojstva</string>
<string name="error_export_app_properties">Greška tijekom izvoza svojstava aplikacije</string>
<string name="success_export_app_properties">Svojstva aplikacije su izvezena</string>
<string name="error_import_app_properties">Greška tijekom uvoza svojstava aplikacije</string>
<string name="success_import_app_properties">Svojstva aplikacije su uvezena</string>
<string name="error_export_app_properties">Greška tijekom izvoza postavki aplikacije</string>
<string name="success_export_app_properties">Postavke aplikacije su izvezene</string>
<string name="error_import_app_properties">Greška tijekom uvoza postavki aplikacije</string>
<string name="success_import_app_properties">Postavke aplikacije su uvezene</string>
<string name="description_app_properties">KeePassDX svojstva za upravljanje postavkama aplikacije</string>
<string name="export_app_properties_summary">Stvori datoteku za izvoz svojstva aplikacije</string>
<string name="export_app_properties_title">Izvezi svojstva aplikacije</string>
<string name="import_app_properties_summary">Odaberi datoteku za uvoz svojstva aplikacije</string>
<string name="import_app_properties_title">Uvezi svojstva aplikacije</string>
<string name="export_app_properties_summary">Stvori datoteku za izvoz postavki aplikacije</string>
<string name="export_app_properties_title">Izvezi postavke aplikacije</string>
<string name="import_app_properties_summary">Odaberi datoteku za uvoz postavki aplikacije</string>
<string name="import_app_properties_title">Uvezi postavke aplikacije</string>
<string name="error_start_database_action">Došlo je do greške tijekom izvođenja radnje u bazi podataka.</string>
<string name="error_move_group_here">Grupa se ne može ovdje premjestiti.</string>
<string name="error_word_reserved">Ova je riječ rezervirana i ne može se koristiti.</string>

View File

@@ -44,7 +44,7 @@
<string name="digits">Számok</string>
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft. A program &lt;strong&gt;nyílt forráskódú&lt;/strong&gt; és &lt;strong&gt;reklámmentes&lt;/strong&gt;.
\nA program jelen állapotában kerül közreadásra, &lt;strong&gt;GPLv3&lt;/strong&gt; licenc alatt, bármilyen garancia nélkül.</string>
<string name="select_database_file">Létező adatbázis megnyitása</string>
<string name="select_database_file">Létező széf megnyitása</string>
<string name="entry_accessed">Utolsó hozzáférés</string>
<string name="entry_cancel">Mégse</string>
<string name="entry_notes">Megjegyzések</string>
@@ -55,7 +55,7 @@
<string name="entry_modified">Módosítva</string>
<string name="entry_password">Jelszó</string>
<string name="save">Mentés</string>
<string name="entry_title">Név</string>
<string name="entry_title">Titulus</string>
<string name="entry_url">URL</string>
<string name="entry_user_name">Felhasználónév</string>
<string name="error_arc4">Az Arcfour adatfolyam-titkosítás nem támogatott.</string>
@@ -132,7 +132,7 @@
<string name="warning_password_encoding">Kerülje a Latin-1 karakterkészlettől eltérő jelszókaraktereket az adatbázis-fájlban (a nem felismert karakterek mert ugyanarra a betűre lesznek alakítva).</string>
<string name="version_label">Verzió: %1$s</string>
<string name="encrypted_value_stored">Titkosított jelszó tárolva</string>
<string name="unavailable">Az adatbázisnak még nincs jelszava.</string>
<string name="unavailable">Nem érhető el</string>
<string name="education_unlock_summary">Adja meg a jelszót és/vagy a kulcsfájlt, hogy kinyithassa az adatbázist.
\n
\nKészítsen biztonsági mentést az adatbázisról minden egyes módosítás után.</string>
@@ -147,7 +147,7 @@
<string name="extended_ASCII">Bővített ASCII</string>
<string name="allow">Engedélyezés</string>
<string name="entry_not_found">A bejegyzésadatok nem találhatóak.</string>
<string name="error_load_database">Az adatbázis betöltése meghiúsult.</string>
<string name="error_load_database">Nem sikerült az adatbázis betöltése.</string>
<string name="error_load_database_KDF_memory">A kulcs nem tölthető be. Próbálja meg csökkenteni a KDF „Memóriahasználatot”.</string>
<string name="error_autofill_enable_service">Az automatikus kitöltési szolgáltatás nem engedélyezhető.</string>
<string name="list_entries_show_username_title">Felhasználónevek megjelenítése</string>
@@ -160,8 +160,8 @@
<string name="menu_cancel">Mégse</string>
<string name="menu_file_selection_read_only">Írásvédett</string>
<string name="menu_open_file_read_and_write">Módosítható</string>
<string name="create_keepass_file">Új adatbázis létrehozása</string>
<string name="encryption_explanation">Az összes adathoz használt adatbázis-titkosítási algoritmus.</string>
<string name="create_keepass_file">Új széf létrehozása</string>
<string name="encryption_explanation">Az összes adathoz használt adatbázis-titkosítási algoritmus</string>
<string name="kdf_explanation">A kulcs előállításához a titkosítási algoritmushoz, a mesterkulcs átalakításra került egy véletlenszerűen sózott kulcselőállítási függvénnyel.</string>
<string name="memory_usage">Memóriahasználat</string>
<string name="memory_usage_explanation">A kulcselőállítási függvényhez használt memóriamennyiség.</string>
@@ -198,11 +198,11 @@
<string name="lock">Zárolás</string>
<string name="lock_database_screen_off_title">Képernyőzár</string>
<string name="lock_database_screen_off_summary">Az adatbázis zárolása néhány másodperc után, ha a képernyő kikapcsol</string>
<string name="advanced_unlock">Speciális feloldás</string>
<string name="advanced_unlock">Eszközfeloldás</string>
<string name="biometric_unlock_enable_title">Ujjlenyomat-alapú feloldás</string>
<string name="biometric_unlock_enable_summary">Lehetővé teszi, hogy leolvassa az ujjlenyomatát az adatbázis megnyitásához</string>
<string name="biometric_delete_all_key_title">Titkosítási kulcsok törlése</string>
<string name="biometric_delete_all_key_summary">Az összes, a speciális feloldásfelisméreshez tartozó titkosítási kulcs törlése</string>
<string name="biometric_delete_all_key_summary">Az összes, az eszközfeloldás-felismeréshez tartozó titkosítási kulcs törlése</string>
<string name="unavailable_feature_text">A funkciót nem sikerült elindítani.</string>
<string name="unavailable_feature_version">Az eszköz Android %1$s rendszert futtat, de %2$s vagy újabb szükséges.</string>
<string name="unavailable_feature_hardware">Nem található a megfelelő hardver.</string>
@@ -296,7 +296,7 @@
<string name="html_text_dev_feature_work_hard">Keményen dolgozunk, hogy gyorsan kiadjuk ezt a funkciót.</string>
<string name="html_text_dev_feature_upgrade">Ne felejtse naprakészen tartani az alkalmazást az új verziók telepítésével.</string>
<string name="download">Letöltés</string>
<string name="contribute">Támogatás</string>
<string name="contribute">Közreműködés</string>
<string name="style_choose_title">Alkalmazástéma</string>
<string name="style_choose_summary">Az alkalmazásban használt téma</string>
<string name="icon_pack_choose_title">Ikoncsomag</string>
@@ -382,7 +382,7 @@
<string name="max_history_items_title">Maximális szám</string>
<string name="database_data_compression_summary">Az adattömörítés csökkenti az adatbázis méretét</string>
<string name="database_data_compression_title">Adattömörítés</string>
<string name="advanced_unlock_explanation_summary">Speciális feloldás használat az adatbázis könnyebb megnyitásához</string>
<string name="advanced_unlock_explanation_summary">Eszközfeloldás használata az adatbázis könnyebb megnyitásához</string>
<string name="clipboard_explanation_summary">A bejegyzésmezők másolása az eszköz vágólapjának használatával</string>
<string name="database_opened">Adatbázis megnyitva</string>
<string name="contains_duplicate_uuid_procedure">Megoldja a problémát azzal, hogy új UUID-t állít elő az ismétlődések számára\?</string>
@@ -409,16 +409,16 @@
<string name="entry_history">Előzmények</string>
<string name="disable">Letiltás</string>
<string name="enable">Engedélyezés</string>
<string name="biometric_auto_open_prompt_summary">Automatikusan kéri a speciális feloldást, ha az adatbázis úgy van beállítva, hogy használja</string>
<string name="biometric_auto_open_prompt_summary">Az eszközfeloldás automatikus kérése, ha az adatbázis úgy van beállítva, hogy használja</string>
<string name="biometric_auto_open_prompt_title">Automatikus megnyitási képernyő</string>
<string name="biometric">Ujjlenyomat</string>
<string name="menu_advanced_unlock_settings">Speciális feloldás</string>
<string name="menu_advanced_unlock_settings">Eszközfeloldás</string>
<string name="content_description_keyboard_close_fields">Mezők bezárása</string>
<string name="content_description_update_from_list">Frissítés</string>
<string name="list_groups_show_number_entries_summary">A csoportban szereplő bejegyzések számának megjelenítése</string>
<string name="list_groups_show_number_entries_title">Bejegyzések számának megjelenítése</string>
<string name="error_copy_entry_here">Bejegyzés nem másolható ide.</string>
<string name="error_move_entry_here">Bejegyzés nem helyezhető át ide.</string>
<string name="error_copy_entry_here">Nem másolhat ide bejegyzést.</string>
<string name="error_move_entry_here">Nem helyezhet át ide bejegyzéseket.</string>
<string name="entry_UUID">UUID</string>
<string name="content_description_remove_field">Mező eltávolítása</string>
<string name="content_description_password_length">Jelszó hossza</string>
@@ -462,12 +462,12 @@
<string name="error_string_type">A szöveg nem egyezik a kért elemmel.</string>
<string name="content_description_credentials_information">Hitelesítő adatok információi</string>
<string name="content_description_add_item">Elem hozzáadása</string>
<string name="export_app_properties_summary">Fájl létrehozása az alkalmazástulajdonságok exportálásához</string>
<string name="export_app_properties_title">Alkalmazástulajdonságok exportálása</string>
<string name="import_app_properties_summary">Válasszon fájlt az alkalmazástulajdonságok importálásához</string>
<string name="import_app_properties_title">Alkalmazástulajdonságok importálása</string>
<string name="export_app_properties_summary">Fájl létrehozása az alkalmazásbeállítások exportálásához</string>
<string name="export_app_properties_title">Alkalmazásbeállítások exportálása</string>
<string name="import_app_properties_summary">Válasszon fájlt az alkalmazásbeállítások importálásához</string>
<string name="import_app_properties_title">Alkalmazásbeállítások importálása</string>
<string name="menu_external_icon">Külső ikon</string>
<string name="menu_keystore_remove_key">Speciális feloldási kulcs törlése</string>
<string name="menu_keystore_remove_key">Eszközfeloldási kulcs törlése</string>
<string name="menu_reload_database">Adatok újratöltése</string>
<string name="error_start_database_action">Hiba történt az adatbázison végzett művelet során.</string>
<string name="error_remove_file">Hiba történt a fájladatok eltávolítása során.</string>
@@ -511,46 +511,46 @@
<string name="content_description_otp_information">Egyszer használatos jelszó információ</string>
<string name="content_description_entry_background_color">Bejegyzés háttérszíne</string>
<string name="content_description_entry_foreground_color">Bejegyzés előtérszíne</string>
<string name="success_import_app_properties">Alkalmazástulajdonságok importálva</string>
<string name="error_export_app_properties">Hiba történt az alkalmazástulajdonságok exportálása során</string>
<string name="success_import_app_properties">Alkalmazásbeállítások importálva</string>
<string name="error_export_app_properties">Hiba történt az alkalmazásbeállítások exportálása során</string>
<string name="warning_database_info_changed">Az adatbázisfájlban lévő információkat az alkalmazáson kívülről megváltoztatták.</string>
<string name="description_app_properties">KeePassDX tulajdonságok az alkalmazásbeállítások kezeléséhez</string>
<string name="success_export_app_properties">Alkalmazástulajdonságok exportálva</string>
<string name="success_export_app_properties">Alkalmazásbeállítások exportálva</string>
<string name="content_description_database_color">Adatbázis színe</string>
<string name="error_import_app_properties">Hiba történt az alkalmazástulajdonságok importálása során</string>
<string name="error_import_app_properties">Hiba történt az alkalmazásbeállítások importálása során</string>
<string name="hint_icon_name">Ikon neve</string>
<string name="autofill_select_entry">Válasszon bejegyzést…</string>
<string name="warning_database_info_changed_options">Adatok egyesítése, majd a külső módosítások felülírása az adatbázis mentésével, vagy az adatbázis újratöltése a legfrissebb változtatásokkal.</string>
<string name="advanced_unlock_prompt_store_credential_title">Speciális feloldásfelismerés</string>
<string name="advanced_unlock_prompt_store_credential_message">Figyelmeztetés: Továbbra is meg kell jegyeznie a mesterjelszót, ha a speciális feloldásfelismerést használja.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Adatbázis hitelesítő adatainak kinyerése a speciális adatfeloldással</string>
<string name="advanced_unlock_invalid_key">A speciális feloldási kulcs nem olvasható. Törölje, és ismételje meg a feloldásfelismerési folyamatot.</string>
<string name="advanced_unlock_not_recognized">A speciális feloldási ujjlenyomat nem ismerhető fel</string>
<string name="advanced_unlock_prompt_not_initialized">A speciális feloldási képernyő előkészítése sikertelen.</string>
<string name="warning_database_info_changed_options">Adatok egyesítése, majd a külső módosítások felülírása az adatbázis mentésével, vagy újratöltés a legfrissebb változtatásokkal.</string>
<string name="advanced_unlock_prompt_store_credential_title">Hivatkozás az eszköz feloldásához</string>
<string name="advanced_unlock_prompt_store_credential_message">Továbbra is meg kell jegyeznie a széf fő jelszavát, ha az eszköz feloldásfelismerését használja.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Adatbázis hitelesítő adatainak kinyerése az eszköz adatfeloldásával</string>
<string name="advanced_unlock_invalid_key">Az eszközfeloldási kulcs nem olvasható. Törölje, és ismételje meg a feloldásfelismerési folyamatot.</string>
<string name="advanced_unlock_not_recognized">Az eszközfeloldási ujjlenyomat nem ismerhető fel</string>
<string name="advanced_unlock_prompt_not_initialized">Az eszközfeloldási képernyő előkészítése sikertelen.</string>
<string name="properties">Tulajdonságok</string>
<string name="device_credential">Eszköz hitelesítő adatai</string>
<string name="temp_advanced_unlock_enable_summary">Ne tároljon semmilyen titkosított tartalmat a speciális feloldás használatához</string>
<string name="temp_advanced_unlock_timeout_title">Speciális feloldás lejárati ideje</string>
<string name="temp_advanced_unlock_enable_summary">Ne tároljon semmilyen titkosított tartalmat az eszközfeloldás használatához</string>
<string name="temp_advanced_unlock_timeout_title">Eszközfeloldás lejárati ideje</string>
<string name="warning_database_revoked">A fájl elérését visszavonta a fájlkezelő, zárja be az adatbázist és nyissa meg újra a helyéről.</string>
<string name="warning_exact_alarm">Nem engedélyezte az alkalmazásnak, hogy pontos riasztást használjon. Ezért az időzítőt használó funkciók nem a pontos időt fogják használni.</string>
<string name="advanced_unlock_prompt_extract_credential_title">Adatbázis megnyitása a speciális feloldásfelismeréssel</string>
<string name="advanced_unlock_prompt_extract_credential_title">Eszköz feloldásfelismerése</string>
<string name="credential_before_click_advanced_unlock_button">Írja be a jelszót, majd kattintson erre a gombra.</string>
<string name="temp_advanced_unlock_enable_title">Ideiglenes speciális feloldás</string>
<string name="temp_advanced_unlock_enable_title">Ideiglenes eszközfeloldás</string>
<string name="permission">Engedély</string>
<string name="advanced_unlock_scanning_error">Speciális feloldási hiba: %1$s</string>
<string name="advanced_unlock_scanning_error">Eszközfeloldási hiba: %1$s</string>
<string name="content">Tartalom</string>
<string name="advanced_unlock_tap_delete">Koppintson a speciális feloldási kulcsok törléséhez</string>
<string name="advanced_unlock_tap_delete">Koppintson az eszközfeloldási kulcsok törléséhez</string>
<string name="device_credential_unlock_enable_title">Eszköz hitelesítő adataival történő feloldás</string>
<string name="device_credential_unlock_enable_summary">Lehetővé teszi, hogy az eszköz hitelesítő adataival nyissa meg az adatbázist</string>
<string name="autofill_application_id_blocklist_title">Letiltott alkalmazások</string>
<string name="menu_merge_database">Adatok egyesítése</string>
<string name="autofill_close_database_title">Adatbázis bezárása</string>
<string name="temp_advanced_unlock_timeout_summary">A speciális feloldás használata ideje, mielőtt a tartalma törölve lesz</string>
<string name="advanced_unlock_timeout">Speciális feloldás időtúllépése</string>
<string name="temp_advanced_unlock_timeout_summary">Az eszközfeloldás használata ideje, mielőtt a tartalma törölve lesz</string>
<string name="advanced_unlock_timeout">Eszközfeloldás időtúllépése</string>
<string name="templates_group_enable_title">Sablonok használata</string>
<string name="templates_group_enable_summary">Dinamikus sablonok használata a bejegyzés mezőinek kitöltéséhez</string>
<string name="templates_group_uuid_title">Sabloncsoport</string>
<string name="keyboard_previous_fill_in_title">Automatikus kulcsművelet</string>
<string name="keyboard_previous_fill_in_title">Visszaváltás</string>
<string name="keyboard_previous_fill_in_summary">Automatikus visszaváltás az előző billentyűzetre az „Automatikus kulcsművelet” végrehajtása után</string>
<string name="keyboard_previous_lock_title">Adatbázis zárolása</string>
<string name="keyboard_previous_lock_summary">Automatikus visszaváltás az előző billentyűzetre az adatbázis zárolása után</string>
@@ -563,8 +563,8 @@
<string name="autofill_manual_selection_title">Kézi kiválasztás</string>
<string name="autofill_manual_selection_summary">Lehetőség megjelenítése, hogy a felhasználó válasszon adatbázis-bejegyzést</string>
<string name="autofill_save_search_info_title">Keresési információk mentése</string>
<string name="autofill_save_search_info_summary">A keresési információk mentésének kísérlete kézi bejegyzéskiválasztásnál</string>
<string name="autofill_ask_to_save_data_summary">Az adatok mentésének kérése az űrlapok ellenőrzésekor</string>
<string name="autofill_save_search_info_summary">A könnyebb jövőbeli használat érdekében próbálja menteni a keresési információkat a kézi bejegyzéskiválasztásnál</string>
<string name="autofill_ask_to_save_data_summary">Az adatok mentésének kérése az űrlapok kitöltésének befejezésekor</string>
<string name="autofill_web_domain_blocklist_summary">Tiltólista, amely megakadályozza a webes domainek automatikus kitöltését</string>
<string name="autofill_block">Automatikus kitöltés letiltása</string>
<string name="autofill_block_restart">Indítsa újra az űrlapot tartalmazó alkalmazást a tiltás aktiválásához.</string>
@@ -580,8 +580,8 @@
<string name="style_brightness_title">Téma fényereje</string>
<string name="show_uuid_summary">Megjeleníti a bejegyzéshez vagy csoporthoz tartozó UUID-t</string>
<string name="show_otp_token_title">OTP token megjelenítése</string>
<string name="advanced_unlock_delete_all_key_warning">Törli az összes, a speciális feloldásfelisméreshez tartozó titkosítási kulcsot\?</string>
<string name="keyboard_save_search_info_summary">Egy URL KeePassDX-be történő megosztásakor, ha kiválaszt egy bejegyzést, akkor megpróbálja megjegyezni a bejegyzés a további használathoz</string>
<string name="advanced_unlock_delete_all_key_warning">Törli az összes, az eszközfeloldás-felismeréshez tartozó titkosítási kulcsot\?</string>
<string name="keyboard_save_search_info_summary">A könnyebb jövőbeli használat érdekében próbálja menteni a megosztott információkat a kézi bejegyzéskiválasztásnál</string>
<string name="custom_fields">Egyéni mezők</string>
<string name="back_to_previous_keyboard">Vissza az előző billentyűzethez</string>
<string name="upload_attachment">%1$s feltöltése</string>
@@ -591,11 +591,101 @@
<string name="autofill_application_id_blocklist_summary">Tiltólista, amely megakadályozza az alkalmazások automatikus kitöltését</string>
<string name="autofill_web_domain_blocklist_title">Letiltott webes domainek</string>
<string name="autofill_ask_to_save_data_title">Adatok mentésének kérése</string>
<string name="education_advanced_unlock_title">Speciális adatbázis-feloldás</string>
<string name="education_advanced_unlock_title">Eszközadatbázis feloldása</string>
<string name="education_advanced_unlock_summary">A jelszó összekötése a leolvasott biometrikus adatokkal vagy eszköz-hitelesítőadatokkal, hogy gyorsan feloldhassa az adatbázist.</string>
<string name="show_otp_token_summary">Megjeleníti az OTP tokeneket a bejegyzések között</string>
<string name="education_add_attachment_title">Melléklet hozzáadása</string>
<string name="keyboard_previous_database_credentials_summary">Automatikus visszaváltás az előző billentyűzetre az adatbázis-hitelesítőadatok képernyőn</string>
<string name="warning_database_info_reloaded">Az adatbázis újratöltése törli a helyileg módosított adatokat.</string>
<string name="templates">Sablonok</string>
<string name="error_no_response_from_challenge">Nem kérhető le a válasz a kihívásból.</string>
<string name="error_unable_merge_database_kdb">Nem lehet egyesíteni az adatbázis V1-es változatából.</string>
<string name="entropy">Entrópia: %1$s bit</string>
<string name="keyboard_previous_search_title">Keresési képernyő</string>
<string name="error_move_group_here">Nem helyezhet át ide csoportot.</string>
<string name="auto_type">Automatikus bevitel</string>
<string name="warning_keyfile_integrity">A fájl ujjlenyomata nem garantált, mert az Android menet közben is módosíthatja az adatokat. A helyes integritás-ellenőrzéshez módosítsa a fájlt .bin kiterjesztésűre.</string>
<string name="error_challenge_already_requested">A kihívás már kérve volt</string>
<string name="inherited">Öröklés</string>
<string name="remember_hardware_key_title">Hardverkulcs megjegyzése</string>
<string name="consider_chars_filter">Karakterek figyelembe vétele</string>
<string name="entropy_high">Entrópia: magas</string>
<string name="error_cancel_by_user">A felhasználó által megszakítva.</string>
<string name="exclude_ambiguous_chars">Összekeverhető karakterek kihagyása</string>
<string name="unlock">Feloldás</string>
<string name="master_key_settings_summary">Módosítás, megújítás</string>
<string name="info">Információ</string>
<string name="error_empty_key">A kulcs nem lehet üres.</string>
<string name="custom_data">Egyéni adatok</string>
<string name="tags">Címkék</string>
<string name="hardware_key">Hardverkulcs</string>
<string name="keyboard_previous_search_summary">Automatikus visszaváltás az előző billentyűzetre a keresési képernyőn</string>
<string name="education_validate_entry_title">Bejegyzés ellenőrzése</string>
<string name="ignore_chars_filter">Karakterek mellőzése</string>
<string name="ask">Kérdés</string>
<string name="searchable">Kereshető</string>
<string name="menu_form_filling_settings_summary">Billentyűzet, automatikus kitöltés, vágólap</string>
<string name="configure">Beállítás</string>
<string name="content_description_nav_header">Navigációs fejléc</string>
<string name="navigation_drawer_close">A navigációs tálca bezárása</string>
<string name="html_about_privacy">&lt;strong&gt;Nincsenek felhasználói adatok lekérve&lt;/strong&gt;, az alkalmazás nem kapcsolódik semmilyen külső kiszolgálóhoz, csak helyben működik, és teljes mértékben tiszteletben tartja a felhasználók adatvédelmét.</string>
<string name="enable_keep_screen_on_summary">Képernyő bekapcsolva tartása egy bejegyzés megtekintésekor vagy szerkesztésekor</string>
<string name="title_case">Nagy Kezdőbetűs</string>
<string name="navigation_drawer_open">A navigációs tálca kinyitása</string>
<string name="content_description_hardware_key_checkbox">Hardverkulcs jelölőnégyzete</string>
<string name="at_least_one_char">Legalább egy karakter mindegyikből</string>
<string name="lower_case">kisbetűk</string>
<string name="screenshot_mode_banner_text">Képernyőképmodul</string>
<string name="case_sensitive">Kis- és nagybetű eltérő</string>
<string name="error_location_unknown">Az adatbázis helye ismeretlen, az adatbázis-művelet nem hajtható végre.</string>
<string name="content_description_passphrase_word_count">A jelmondat szószáma</string>
<string name="regex">Reguláris kifejezés</string>
<string name="show_entry_colors_title">Bejegyzésszínek</string>
<string name="passphrase">Jelmondat</string>
<string name="menu_appearance_settings_summary">Témák, színek, attribútumok</string>
<string name="expired">Lejárt</string>
<string name="error_response_already_provided">A válasz már megérkezett.</string>
<string name="colorize_password_summary">A jelszó karaktereinek színezése típus szerint</string>
<string name="waiting_challenge_request">Várakozás a kihívási kérésre…</string>
<string name="search_filters">Keresési szűrők</string>
<string name="current_group">Jelenlegi csoport</string>
<string name="auto_type_sequence">Automatikus bevitelsorozat</string>
<string name="word_separator">Elválasztó</string>
<string name="enable_screenshot_mode_summary">Engedélyezés a harmadik féltől származó alkalmazásoknak, hogy képernyőképet vagy felvételt készítsenek az alkalmazásról</string>
<string name="menu_security_settings_summary">Titkosítás, kulcselőállító függvény</string>
<string name="waiting_challenge_response">Várakozás a kihívás válaszára…</string>
<string name="wireless">Wi-Fi</string>
<string name="error_hardware_key_unsupported">A hardverkulcs nem támogatott.</string>
<string name="colorize_password_title">Jelszavak színezése</string>
<string name="menu_advanced_unlock_settings_summary">Biometrikus adatok, eszköz-hitelesítőadatok</string>
<string name="error_XML_malformed">Hibásan formázott XML.</string>
<string name="remember_hardware_key_summary">Követi a használt hardverkulcsokat</string>
<string name="warning_database_already_opened">Egy adatbázis már nyitva van, előbb zárja be, hogy újat nyisson meg</string>
<string name="education_validate_entry_summary">Ne felejtse el ellenőrizni a bejegyzést és menteni az adatbázist.
\n
\nHa az automatikus zárolás aktiválva van, és elfelejti, hogy módosítást végzett, akkor az adatvesztést kockáztatja.</string>
<string name="warning_database_notification_permission">Az értesítési engedély lehetővé teszi az adatbázis állapotának megjelenítését, és az egyszerű ikonnal történő zárolást.
\n
\nHa nem aktiválja az engedélyt, akkor a háttérben nyitott adatbázis nem lesz látható, ha egy másik alkalmazás van előtérben.</string>
<string name="advanced_unlock_keystore_warning">A funkció eltárolja a titkosított hitelesítőadatokat az eszköz biztonságos kulcstárában.
\n
\nAz operációs rendszer natív API megvalósításától függően lehet, hogy nem lesz teljes értékű.
\nEllenőrizze a kulcstár kompatibilitását és biztonságát az eszköz gyártójánál és a használt ROM készítőjénél.</string>
<string name="show_entry_colors_summary">Megjeleníti egy bejegyzés előtér- és háttérszínét</string>
<string name="unlock_and_link_biometric">Eszközfeloldási hivatkozás</string>
<string name="warning_copy_permission">Az értesítési engedély szükséges a vágólap-értesítési funkció használatához.</string>
<string name="menu_save_copy_to">Másolat mentése ide…</string>
<string name="enable_screenshot_mode_title">Képernyőkép mód</string>
<string name="error_driver_required">A(z) %1$s illesztőprogramja szükséges.</string>
<string name="menu_merge_from">Egyesítés innen…</string>
<string name="entropy_calculate">Entrópia: kiszámítás…</string>
<string name="character_count">Karakterszám: %1$d</string>
<string name="menu_database_settings_summary">Metaadatok, kuka, sablonok, előzmények</string>
<string name="merge_success">Az egyesítés sikeresen elkészült</string>
<string name="upper_case">NAGYBETŰK</string>
<string name="enable_keep_screen_on_title">Képernyő bekapcsolva tartása</string>
<string name="corrupted_file">Sérült fájl.</string>
<string name="menu_app_settings_summary">Keresés, zárolás, előzmények, tulajdonságok</string>
<string name="later">Később</string>
<string name="error_no_hardware_key">Válasszon hardverkulcsot.</string>
</resources>

View File

@@ -12,8 +12,8 @@
<string name="menu_showpass">Tampilkan Kata Sandi</string>
<string name="menu_search">Cari</string>
<string name="menu_open">Buka</string>
<string name="menu_save_database">Simpan Database</string>
<string name="menu_lock">Basisdata Terkunci</string>
<string name="menu_save_database">Simpan data</string>
<string name="menu_lock">Basis Data Terkunci</string>
<string name="menu_hide_password">Sembunyikan Kata Sandi</string>
<string name="menu_cancel">Batal</string>
<string name="menu_delete">Hapus</string>
@@ -25,7 +25,7 @@
<string name="menu_master_key_settings">Pengaturan Kunci Utama</string>
<string name="menu_security_settings">Pengaturan Keamanan</string>
<string name="menu_app_settings">Pengaturan Aplikasi</string>
<string name="menu_database_settings">Pengaturan Basisdata</string>
<string name="menu_database_settings">Pengaturan Basis Data</string>
<string name="menu_advanced_unlock_settings">Membuka kunci perangkat</string>
<string name="menu_form_filling_settings">Pengisian Formulir</string>
<string name="settings">Pengaturan</string>
@@ -68,7 +68,7 @@
<string name="error_otp_secret_key">Kunci rahasia harus dalam format Base32.</string>
<string name="error_save_database">Tidak dapat menyimpan basis data.</string>
<string name="error_create_database_file">Tidak bisa membuat basis data dengan kata sandi dan file kunci ini.</string>
<string name="error_create_database">Tidak bisa membuat berkas database.</string>
<string name="error_create_database">Tidak bisa membuat berkas basis data.</string>
<string name="error_copy_group_here">Anda tidak bisa menyalin grup di sini.</string>
<string name="error_copy_entry_here">Anda tidak dapat menyalin entri di sini.</string>
<string name="error_move_entry_here">Anda tidak dapat memindahkan sebuah entri ke sini.</string>
@@ -93,7 +93,7 @@
<string name="entry_add_attachment">Tambahkan Lampiran</string>
<string name="digits">Dijit</string>
<string name="app_timeout_summary">Waktu idle sebelum mengunci basis data</string>
<string name="file_manager_install_description">Manajer file yang menerima ACTION_CREATE_DOCUMENT ACTION_OPEN_DOCUMENT izin diperlukan untuk membuat, membuka, dan menyimpan file database.</string>
<string name="file_manager_install_description">Manajer file yang menerima ACTION_CREATE_DOCUMENT ACTION_OPEN_DOCUMENT izin diperlukan untuk membuat, membuka, dan menyimpan file basis data.</string>
<string name="otp_type">Jenis OTP</string>
<string name="entry_setup_otp">Penyiapan Sandi Sekali Pakai (OTP)</string>
<string name="error_can_not_handle_uri">Tidak bisa menangani URI ini di KeePassDX.</string>
@@ -175,7 +175,7 @@
<string name="feedback">Umpan Balik</string>
<string name="contribution">Kontribusi</string>
<string name="contact">Kontak</string>
<string name="auto_focus_search_summary">Minta pencarian saat membuka database</string>
<string name="auto_focus_search_summary">Minta pencarian saat membuka basis data</string>
<string name="auto_focus_search_title">Pencarian cepat</string>
<string name="create_keepass_file">Membuat brankas baru</string>
<string name="select_database_file">Buka brankas yang ada</string>
@@ -190,11 +190,11 @@
<string name="show_recent_files_title">Tampilkan file sebelumnya</string>
<string name="remember_keyfile_locations_summary">Melacak di mana file kunci disimpan</string>
<string name="remember_keyfile_locations_title">Ingat lokasi file kunci</string>
<string name="remember_database_locations_summary">Melacak di mana database disimpan</string>
<string name="remember_database_locations_summary">Melacak di mana basis data disimpan</string>
<string name="remember_database_locations_title">Ingat lokasi basis data</string>
<string name="selection_mode">Mode seleksi</string>
<string name="contains_duplicate_uuid_procedure">Selesaikan masalah dengan menghasilkan UUID baru, lanjutkan\?</string>
<string name="contains_duplicate_uuid">Basisdata berisi UUIDs duplikat.</string>
<string name="contains_duplicate_uuid">Basis data berisi UUID yang terduplikat.</string>
<string name="read_only_warning">Tergantung pada manajer file Anda, KeePassDX mungkin tidak diizinkan untuk menulis di penyimpanan Anda.</string>
<string name="read_only">Terlindung dari penulisan</string>
<string name="protection">Perlindungan</string>
@@ -219,7 +219,7 @@
<string name="warning_empty_keyfile">Tidak disarankan menambah keyfile kosong.</string>
<string name="warning_sure_remove_data">Hapus data ini\?</string>
<string name="warning">Peringatan</string>
<string name="unsupported_db_version">Versi database tidak di dukung.</string>
<string name="unsupported_db_version">Versi basis data tidak didukung.</string>
<string name="search">Cari</string>
<string name="sort_last_access_time">Akses</string>
<string name="sort_last_modify_time">Modifikasi</string>
@@ -241,19 +241,19 @@
<string name="keystore_not_accessible">Keystore tidak diinisialisasi dengan benar.</string>
<string name="biometric_security_update_required">Pembaruan keamanan biometrik diperlukan.</string>
<string name="configure_biometric">Tidak ada kredensial biometrik atau perangkat yang terdaftar.</string>
<string name="warning_remove_unlinked_attachment">Menghapus data yang tidak tertaut dapat mengurangi ukuran database Anda, tetapi juga dapat menghapus data yang digunakan untuk plugin KeePass.</string>
<string name="warning_remove_unlinked_attachment">Menghapus data yang tidak tertaut dapat mengurangi ukuran basis data Anda, tetapi juga dapat menghapus data yang digunakan untuk plugin KeePass.</string>
<string name="warning_sure_add_file">Tetap tambahkan berkas\?</string>
<string name="warning_replace_file">Mengunggah berkas ini akan menggantikan berkas yang ada.</string>
<string name="warning_file_too_big">Database KeePass seharusnya hanya berisi file utilitas kecil (seperti file kunci PGP).
<string name="warning_file_too_big">Basis data KeePass seharusnya hanya berisi file utilitas kecil (seperti file kunci PGP).
\n
\nDatabase Anda mungkin menjadi sangat besar dan mengurangi kinerja dengan unggahan ini.</string>
\nBasis data Anda mungkin menjadi sangat besar dan mengurangi kinerja dengan unggahan ini.</string>
<string name="warning_empty_recycle_bin">Hapus permanen semua node dari keranjang sampah\?</string>
<string name="advanced_unlock_tap_delete">Ketuk untuk menghapus tombol pembuka kunci lanjutan</string>
<string name="advanced_unlock">Buka kunci lanjutan</string>
<string name="advanced_unlock_tap_delete">Ketuk untuk menghapus tombol pembuka kunci perangkat</string>
<string name="advanced_unlock">Buka kunci perangkat</string>
<string name="content">Konten</string>
<string name="lock_database_show_button_summary">Tampilkan tombol kunci di antarmuka pengguna</string>
<string name="lock_database_show_button_title">Tampilkan tombol kunci</string>
<string name="lock_database_back_root_summary">Kunci database saat pengguna mengklik tombol kembali di layar root</string>
<string name="lock_database_back_root_summary">Kunci basis data saat pengguna mengklik tombol kembali di layar root</string>
<string name="lock_database_back_root_title">Tekan \'Kembali\' untuk mengunci</string>
<string name="lock_database_screen_off_summary">Kunci basis data setelah beberapa detik ketika layar mati</string>
<string name="lock_database_screen_off_title">Kunci layar</string>
@@ -263,14 +263,14 @@
<string name="clipboard_notifications_title">Pemberitahuan papan klip</string>
<string name="clipboard_explanation_summary">Salin kolom entri menggunakan papan klip perangkat Anda</string>
<string name="clipboard">Papan klip</string>
<string name="database_opened">Database dibuka</string>
<string name="database_opened">Basis data dibuka</string>
<string name="list_password_generator_options_summary">Atur karakter pembuat kata sandi yang diperbolehkan</string>
<string name="list_password_generator_options_title">Karakter kata sandi</string>
<string name="password_size_summary">Setel ukuran default kata sandi yang dihasilkan</string>
<string name="password_size_title">Ukuran kata sandi yang dihasilkan</string>
<string name="database_data_remove_unlinked_attachments_summary">Menghapus lampiran yang terdapat dalam database tetapi tidak ditautkan ke entri</string>
<string name="database_data_remove_unlinked_attachments_summary">Menghapus lampiran yang terdapat dalam basis data tetapi tidak ditautkan ke entri</string>
<string name="database_data_remove_unlinked_attachments_title">Hapus data yang tidak tertaut</string>
<string name="database_data_compression_summary">Kompresi data mengurangi ukuran database</string>
<string name="database_data_compression_summary">Kompresi data mengurangi ukuran basis data</string>
<string name="database_data_compression_title">Kompresi data</string>
<string name="data">Data</string>
<string name="assign_master_key">Tetapkan kunci master</string>
@@ -296,7 +296,7 @@
<string name="unit_kibibyte">KiB</string>
<string name="unit_byte">B</string>
<string name="show_uuid_summary">Tampilkan UUID yang ditautkan ke entri atau grup</string>
<string name="warning_password_encoding">Hindari karakter kata sandi di luar format pengkodean teks dalam file database (karakter yang tidak dikenal dikonversi ke huruf yang sama).</string>
<string name="warning_password_encoding">Hindari karakter kata sandi di luar format pengkodean teks dalam file basis data (karakter yang tidak dikenal dikonversi ke huruf yang sama).</string>
<string name="uppercase">Huruf besar</string>
<string name="sort_creation_time">Penciptaan</string>
<string name="sort_ascending">Terendah pertama ↓</string>
@@ -311,9 +311,9 @@
<string name="search_mode">Mode pencarian</string>
<string name="menu_keystore_remove_key">Menghapus kunci buka kunci perangkat</string>
<string name="menu_reload_database">Muat ulang data</string>
<string name="error_database_uri_null">URI database tidak dapat diambil.</string>
<string name="error_database_uri_null">URI basis data tidak dapat diambil.</string>
<string name="error_field_name_already_exists">Nama bidang sudah ada.</string>
<string name="error_registration_read_only">Menyimpan item baru tidak diperbolehkan dalam database read-only</string>
<string name="error_registration_read_only">Menyimpan item baru tidak diperbolehkan dalam basis data hanya-baca</string>
<string name="error_otp_type">Tipe OTP yang ada tidak dikenali oleh formulir ini, validasinya mungkin tidak lagi menghasilkan token dengan benar.</string>
<string name="content_description_credentials_information">Info kredensial</string>
<string name="autofill_inline_suggestions_keyboard">Saran pengisian otomatis ditambahkan.</string>
@@ -328,17 +328,17 @@
<string name="autofill_save_search_info_summary">Cobalah untuk menyimpan informasi pencarian saat membuat pilihan entri manual untuk penggunaan mudah di waktu mendatang</string>
<string name="autofill_save_search_info_title">Simpan info pencarian</string>
<string name="autofill_inline_suggestions_title">Saran sebaris</string>
<string name="autofill_close_database_summary">Menutup database setelah pilihan isi-auto</string>
<string name="autofill_close_database_title">Tutup database</string>
<string name="autofill_close_database_summary">Tutup basis data setelah pengisian otomatis pada pilihan</string>
<string name="autofill_close_database_title">Tutup basis data</string>
<string name="enter">Enter</string>
<string name="backspace">Hapus</string>
<string name="select_entry">Pilih entri</string>
<string name="back_to_previous_keyboard">Kembali ke papan tik sebelumnya</string>
<string name="custom_fields">Bidang kustom</string>
<string name="keyboard_previous_lock_title">Kunci database</string>
<string name="keyboard_previous_lock_title">Kunci basis data</string>
<string name="keyboard_auto_go_action_title">Aksi tombol otomatis</string>
<string name="keyboard_keys_category">Tombol</string>
<string name="keyboard_previous_database_credentials_title">Layar kredensial database</string>
<string name="keyboard_previous_database_credentials_title">Layar kredensial basis data</string>
<string name="keyboard_change">Ganti papan tik</string>
<string name="keyboard_key_sound_title">Tombol terdengar</string>
<string name="keyboard_key_vibrate_title">Getar saat menekan tombol</string>
@@ -350,7 +350,7 @@
<string name="keyboard_notification_entry_content_title_text">Entri</string>
<string name="keyboard_entry_timeout_summary">Waktu habis untuk menghapus entri papan tik</string>
<string name="keyboard_entry_timeout_title">Waktu habis</string>
<string name="keyboard_notification_entry_clear_close_summary">Tutup database saat menutup notifikasi</string>
<string name="keyboard_notification_entry_clear_close_summary">Tutup basis data saat menutup notifikasi</string>
<string name="keyboard_notification_entry_clear_close_title">Bersihkan saat menutup</string>
<string name="keyboard_notification_entry_summary">Tampilkan notifikasi ketika entri tersedia</string>
<string name="keyboard_notification_entry_title">Info notifikasi</string>
@@ -390,35 +390,35 @@
<string name="education_field_copy_title">Salin bidang</string>
<string name="education_setup_OTP_title">Atur OTP</string>
<string name="education_donation_title">Partisipasi</string>
<string name="advanced_unlock_prompt_extract_credential_title">Buka basis data dengan pengenalan pembuka kunci tingkat lanjut</string>
<string name="advanced_unlock_prompt_store_credential_message">Anda tetap harus mengingat kata sandi utama Anda jika Anda menggunakan pengenalan pembukaan kunci tingkat lanjut.</string>
<string name="advanced_unlock_prompt_extract_credential_title">Pengenalan pembuka kunci perangkat</string>
<string name="advanced_unlock_prompt_store_credential_message">Anda masih perlu mengingat kredensial utama vault Anda jika Anda menggunakan pengenalan kunci perangkat.</string>
<string name="warning_database_revoked">Akses ke berkas dicabut oleh pengelola berkas, tutup basis data dan buka kembali dari lokasi tempatnya.</string>
<string name="warning_database_info_changed_options">Gabungkan data, timpa perubahan dengan cara menyimpan database atau muat ulang dengan perubahan terbaru.</string>
<string name="warning_database_info_changed_options">Gabungkan data, timpa perubahan dengan cara menyimpan basis data atau muat ulang dengan perubahan terbaru.</string>
<string name="warning_database_info_changed">Informasi yang tersimpan di berkas basis data Anda sudah diubah di luar aplikasi.</string>
<string name="warning_no_encryption_key">Lanjut tanpa kunci enkripsi\?</string>
<string name="warning_empty_password">Lanjut tanpa proteksi buka kunci dengan kata sandi\?</string>
<string name="warning_database_link_revoked">Akses ke berkas dicabut oleh pengelola berkas</string>
<string name="warning_database_read_only">Berikan akses tulis berkas untuk menyimpan perubahan basis data</string>
<string name="properties">Setelan</string>
<string name="error_export_app_properties">Galat ketika mengekspor setelan aplikasi</string>
<string name="success_export_app_properties">Setelan aplikasi diekspor</string>
<string name="error_import_app_properties">Galat ketika mengimpor setelan aplikasi</string>
<string name="success_import_app_properties">Setelan aplikasi diimpor</string>
<string name="error_export_app_properties">Galat ketika mengekspor pengaturan aplikasi</string>
<string name="success_export_app_properties">Pengaturan aplikasi diekspor</string>
<string name="error_import_app_properties">Galat ketika mengimpor pengaturan aplikasi</string>
<string name="success_import_app_properties">Pengaturan aplikasi diimpor</string>
<string name="description_app_properties">Setelan KeePassDX untuk mengelola pengaturan aplikasi</string>
<string name="export_app_properties_summary">Buat sebuah berkas untuk mengekspor setelan aplikasi</string>
<string name="export_app_properties_title">Ekspor setelan aplikasi</string>
<string name="import_app_properties_summary">Pilih sebuah berkas untuk mengimpor setelan aplikasi</string>
<string name="import_app_properties_title">Impor setelan aplikasi</string>
<string name="export_app_properties_summary">Buat sebuah berkas untuk mengekspor pengaturan aplikasi</string>
<string name="export_app_properties_title">Ekspor pengaturan aplikasi</string>
<string name="import_app_properties_summary">Pilih sebuah berkas untuk mengimpor pengaturan aplikasi</string>
<string name="import_app_properties_title">Impor pengaturan aplikasi</string>
<string name="error_start_database_action">Timbul galat ketika melaksanakan sebuah aksi di basis data.</string>
<string name="error_move_group_here">Anda tidak dapat memindahkan sebuah grup ke sini.</string>
<string name="device_credential_unlock_enable_title">Membuka kredensial perangkat</string>
<string name="biometric_unlock_enable_summary">Memperbolehkan Anda memindai biometrik Anda untuk membuka basis data</string>
<string name="biometric_unlock_enable_title">Membuka kunci biometrik</string>
<string name="advanced_unlock_explanation_summary">Gunakan buka kunci lanjutan untuk membuka database dengan lebih mudah</string>
<string name="unavailable">Basis data ini belum menyimpan kredensial.</string>
<string name="advanced_unlock_not_recognized">Tidak dapat mengenali cetakan buka kunci lanjutan</string>
<string name="advanced_unlock_invalid_key">Tidak dapat membaca kunci pembuka lanjutan. Harap hapus dan ulangi prosedur pengenalan buka kunci.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Ekstrak kredensial basis data dengan pembuka kunci data lanjutan</string>
<string name="advanced_unlock_explanation_summary">Gunakan buka kunci perangkat untuk membuka basis data dengan lebih mudah</string>
<string name="unavailable">Tidak tersedia</string>
<string name="advanced_unlock_not_recognized">Tidak dapat mengenali cetakan buka kunci perangkat</string>
<string name="advanced_unlock_invalid_key">Tidak dapat membaca kunci pembuka perangkat. Harap hapus dan ulangi prosedur pengenalan buka kunci.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Ekstrak kredensial basis data dengan pembuka kunci data perangkat</string>
<string name="error_word_reserved">Kata ini telah dipakai dan tidak bisa digunakan.</string>
<string name="credential_before_click_advanced_unlock_button">Ketik kata sandi, lalu klik tombol ini.</string>
<string name="autofill_service_name">Isi formulir KeePassDX otomatis</string>
@@ -461,14 +461,14 @@
<string name="menu_external_icon">Ikon eksternal</string>
<string name="holder">Penyangga</string>
<string name="autofill_select_entry">Pilih entri…</string>
<string name="biometric_auto_open_prompt_summary">Secara otomatis meminta buka kunci lanjutan jika basis data diatur menggunakan itu</string>
<string name="temp_advanced_unlock_enable_title">Buka kunci lanjutan sementara</string>
<string name="temp_advanced_unlock_enable_summary">Jangan simpan konten terenkripsi apa pun untuk menggunakan buka kunci lanjutan</string>
<string name="temp_advanced_unlock_timeout_summary">Durasi penggunaan buka kunci lanjutan sebelum menghapus konten tersebut</string>
<string name="advanced_unlock_timeout">Batas waktu membuka kunci lanjutan</string>
<string name="advanced_unlock_delete_all_key_warning">Hapus semua kunci enkripsi yang terkait pengenalan buka kunci lanjutan\?</string>
<string name="biometric_auto_open_prompt_summary">Secara otomatis meminta buka kunci perangkat jika basis data diatur menggunakan itu</string>
<string name="temp_advanced_unlock_enable_title">Buka kunci perangkat sementara</string>
<string name="temp_advanced_unlock_enable_summary">Jangan simpan konten terenkripsi apa pun untuk menggunakan buka kunci perangkat</string>
<string name="temp_advanced_unlock_timeout_summary">Durasi penggunaan buka kunci perangkat sebelum menghapus konten tersebut</string>
<string name="advanced_unlock_timeout">Batas waktu membuka kunci perangkat</string>
<string name="advanced_unlock_delete_all_key_warning">Hapus semua kunci enkripsi yang terkait pengenalan buka kunci perangkat\?</string>
<string name="templates_group_enable_title">Penggunaan templat</string>
<string name="biometric_delete_all_key_summary">Hapus semua kunci enkripsi yang terkait pengenalan buka kunci lanjutan</string>
<string name="biometric_delete_all_key_summary">Hapus semua kunci enkripsi yang terkait pengenalan buka kunci perangkat</string>
<string name="max_history_items_summary">Batasi jumlah item riwayat per entri</string>
<string name="template_group_name">Templat</string>
<string name="date_of_issue">Tanggal diterbitkan</string>
@@ -480,7 +480,7 @@
<string name="max_history_size_summary">Batasi ukuran riwayat per entri</string>
<string name="max_history_size_title">Ukuran maksimum</string>
<string name="biometric_delete_all_key_title">Hapus kunci enkripsi</string>
<string name="temp_advanced_unlock_timeout_title">Kedaluwarsa pembuka kunci lanjutan</string>
<string name="temp_advanced_unlock_timeout_title">Kedaluwarsa pembuka kunci perangkat</string>
<string name="templates_group_enable_summary">Gunakan templat dinamis untuk mengisi bidang entri</string>
<string name="education_read_only_summary">Ubah mode pembuka untuk sesi.
\n
@@ -526,7 +526,7 @@
<string name="html_text_dev_feature_buy_pro">Dengan membeli versi &lt;strong&gt;pro&lt;/strong&gt;,</string>
<string name="content_description_database_color">Warna basis data</string>
<string name="menu_merge_database">Gabung data</string>
<string name="warning_database_info_reloaded">Memuat ulang database akan menghapus data yang diubah secara lokal.</string>
<string name="warning_database_info_reloaded">Memuat ulang basis data akan menghapus data yang diubah secara lokal.</string>
<string name="warning_keyfile_integrity">Hash file tidak dijamin karena Android dapat mengubah datanya dengan cepat. Ubah ekstensi file menjadi .bin untuk integritas yang benar.</string>
<string name="content_description_entry_foreground_color">Warna latar depan entri</string>
<string name="content_description_entry_background_color">Warna latar belakang entri</string>
@@ -562,7 +562,7 @@
\n
\nGrup (~folder) mengatur entri dalam basis data Anda.</string>
<string name="education_search_summary">Masukkan judul, nama pengguna atau konten bidang lain untuk mengambil kata sandi Anda.</string>
<string name="education_advanced_unlock_title">Pembukaan kunci basis data tingkat lanjut</string>
<string name="education_advanced_unlock_title">Pembukaan kunci basis data perangkat</string>
<string name="education_advanced_unlock_summary">Tautkan kata sandi Anda ke kredensial biometrik atau perangkat yang dipindai untuk membuka kunci basis data Anda dengan cepat.</string>
<string name="education_entry_new_field_title">Tambahkan bidang kustom</string>
<string name="education_entry_new_field_summary">Daftarkan bidang tambahan, tambahkan nilai, dan lindungi secara opsional.</string>
@@ -582,11 +582,11 @@
<string name="upper_case">HURUF BESAR</string>
<string name="title_case">Huruf Judul</string>
<string name="character_count">Jumlah karakter: %1$d</string>
<string name="advanced_unlock_scanning_error">Terjadi kesalahan buka kunci lanjutan: %1$s</string>
<string name="advanced_unlock_prompt_not_initialized">Tidak dapat menginisialisasi prompt buka kunci tingkat lanjut.</string>
<string name="advanced_unlock_scanning_error">Terjadi kesalahan buka kunci perangkat: %1$s</string>
<string name="advanced_unlock_prompt_not_initialized">Tidak dapat menginisialisasi perintah buka kunci perangkat.</string>
<string name="monospace_font_fields_enable_title">Bidang tipe huruf</string>
<string name="keyboard_save_search_info_title">Simpan info terbagi</string>
<string name="keyboard_previous_fill_in_title">Tindakan tombol otomatis</string>
<string name="keyboard_previous_fill_in_title">Ganti kembali</string>
<string name="keyboard_previous_lock_summary">Secara otomatis beralih kembali ke keyboard sebelumnya setelah mengunci basis data</string>
<string name="autofill_inline_suggestions_summary">Coba tampilkan saran pengisian otomatis langsung dari keyboard yang kompatibel</string>
<string name="enable_education_screens_title">Petunjuk pendidikan</string>
@@ -616,10 +616,10 @@
\n
\nBergantung pada implementasi API asli dari sistem operasi, mungkin tidak berfungsi penuh.
\nPeriksa kompatibilitas dan keamanan KeyStore dengan produsen perangkat Anda dan pembuat ROM yang Anda gunakan.</string>
<string name="education_read_only_title">Lindungi database Anda dari penulisan</string>
<string name="education_read_only_title">Lindungi basis data Anda dari penulisan</string>
<string name="keyboard_save_search_info_summary">Coba simpan informasi terbagi ketika membuat sebuah pilihan entri manual untuk penggunaan mudah di waktu mendatang</string>
<string name="enable_read_only_title">Terlindungi-tulis</string>
<string name="enable_keep_screen_on_summary">Jaga layar tetap menyala saat melihat entri</string>
<string name="enable_keep_screen_on_summary">Jaga layar tetap menyala saat melihat atau menyunting sebuah entri</string>
<string name="content_description_hardware_key_checkbox">Kotak centang kunci perangkat keras</string>
<string name="waiting_challenge_request">Menunggu untuk permintaan tantangan…</string>
<string name="waiting_challenge_response">Menunggu untuk tanggapan tantangan…</string>
@@ -652,7 +652,7 @@
<string name="menu_database_settings_summary">Metadata, tempat sampah, templat, riwayat</string>
<string name="menu_security_settings_summary">Enkripsi, fungsi derivasi kunci</string>
<string name="master_key_settings_summary">Perubahan, pembaruan</string>
<string name="warning_database_notification_permission">Izin notifikasi memungkinkan Anda untuk menampilkan status database dan menguncinya dengan tombol yang mudah diakses.
<string name="warning_database_notification_permission">Izin notifikasi memungkinkan Anda untuk menampilkan status basis data dan menguncinya dengan tombol yang mudah diakses.
\n
\nJika Anda tidak mengaktifkan, basis data yang terbuka di latar belakang tidak akan terlihat jika ada aplikasi lain di latar depan.</string>
<string name="warning_copy_permission">Izin pemberitahuan diperlukan untuk menggunakan fitur pemberitahuan papan klip.</string>
@@ -660,4 +660,10 @@
<string name="configure">Atur</string>
<string name="later">Nanti</string>
<string name="unlock_and_link_biometric">Tautan buka kunci perangkat</string>
<string name="education_validate_entry_summary">Ingat untuk memvalidasi entri Anda dan simpan basis data Anda.
\n
\nJika penguncian otomatis diaktifkan dan Anda lupa bahwa Anda sedang membuat perubahan, Anda berisiko kehilangan data Anda.</string>
<string name="menu_appearance_settings_summary">Tema, warna, atribut</string>
<string name="unlock">Buka kunci</string>
<string name="education_validate_entry_title">Validasi entri</string>
</resources>

View File

@@ -180,7 +180,7 @@
<string name="autofill">Autocompletamento</string>
<string name="autofill_service_name">Autocompletamento di KeePassDX</string>
<string name="autofill_sign_in_prompt">Accedi con KeePassDX</string>
<string name="set_autofill_service_title">Imposta servizio predefinito di autocompletamento</string>
<string name="set_autofill_service_title">Servizio predefinito di autocompletamento</string>
<string name="autofill_explanation_summary">Attiva l\'autocompletamento per riempire velocemente i campi in altre app</string>
<string name="password_size_title">Dimensione password generata</string>
<string name="password_size_summary">Imposta la dimensione predefinita delle password generate</string>
@@ -220,7 +220,7 @@
<string name="keyboard">Tastiera</string>
<string name="magic_keyboard_title">Magitastiera</string>
<string name="magic_keyboard_explanation_summary">Attiva una tastiera personale che inserisce le tue password e i campi di identità</string>
<string name="allow_no_password_title">Non consentire nessuna chiave principale</string>
<string name="allow_no_password_title">Non consentire chiavi principali</string>
<string name="allow_no_password_summary">Permetti di toccare il pulsante \"Apri\" se non sono selezionate credenziali</string>
<string name="enable_read_only_title">Protetto da scrittura</string>
<string name="enable_read_only_summary">Apri il database in sola lettura in modo predefinito</string>
@@ -277,8 +277,8 @@
<string name="contribute">Contribuisci</string>
<string name="style_choose_title">Tema dell\'app</string>
<string name="style_choose_summary">Tema usato nell\'app</string>
<string name="icon_pack_choose_title">Pacchetto icone</string>
<string name="icon_pack_choose_summary">Pacchetto icone usato nell\'app</string>
<string name="icon_pack_choose_title">Pacchetto di icone</string>
<string name="icon_pack_choose_summary">Pacchetto di icone usato nell\'app</string>
<string name="edit_entry">Modifica elemento</string>
<string name="error_load_database">Caricamento del database fallito.</string>
<string name="error_load_database_KDF_memory">Caricamento della chiave fallito. Prova a diminuire l\'«Utilizzo memoria» del KDF.</string>
@@ -378,7 +378,7 @@
<string name="contribution">Contributi</string>
<string name="warning_database_read_only">Concedi il permesso di scrittura per salvare i cambiamenti del database</string>
<string name="hide_broken_locations_summary">Nascondi collegamenti corrotti nella lista dei database recenti</string>
<string name="hide_broken_locations_title">Nascondi i collegamenti dei database corrotti</string>
<string name="hide_broken_locations_title">Nascondi link a database corrotti</string>
<string name="show_recent_files_summary">Mostra le posizioni dei database recenti</string>
<string name="show_recent_files_title">Mostra file recenti</string>
<string name="remember_keyfile_locations_title">Ricorda posizione file chiave</string>
@@ -430,8 +430,8 @@
<string name="settings_database_force_changing_master_key_next_time_summary">Richiedi il cambio della chiave principale la prossima volta (una volta)</string>
<string name="settings_database_force_changing_master_key_next_time_title">Forza il rinnovo la prossima volta</string>
<string name="settings_database_force_changing_master_key_summary">Richiedi la modifica della chiave principale (giorni)</string>
<string name="lock_database_show_button_summary">Mostra il bottone di blocco nell\'interfaccia utente</string>
<string name="lock_database_show_button_title">Mostra il bottone di blocco</string>
<string name="lock_database_show_button_summary">Mostra il pulsante di blocco nell\'interfaccia utente</string>
<string name="lock_database_show_button_title">Mostra il pulsante di blocco</string>
<string name="autofill_preference_title">Impostazioni dell\'autocompletamento</string>
<string name="warning_database_link_revoked">Accesso al file revocato dal file manager</string>
<string name="remember_keyfile_locations_summary">Ricorda la posizione dei file chiave</string>
@@ -504,7 +504,7 @@
<string name="temp_advanced_unlock_timeout_title">Scadenza dello sblocco con dispositivo</string>
<string name="temp_advanced_unlock_enable_title">Sblocco con dispositivo temporaneo</string>
<string name="device_credential_unlock_enable_summary">Permette di usare le credenziali del dispositivo per sbloccare il database</string>
<string name="device_credential_unlock_enable_title">Sblocco con le credenziali del dispositivo</string>
<string name="device_credential_unlock_enable_title">Sblocco con credenziali del dispositivo</string>
<string name="advanced_unlock_tap_delete">Tocca per eliminare le chiavi di sblocco con dispositivo</string>
<string name="content">Contenuto</string>
<string name="advanced_unlock_prompt_not_initialized">Impossibile inizializzare la richiesta di sblocco con dispositivo.</string>
@@ -544,15 +544,15 @@
<string name="error_file_to_big">Il file che stai cercando di caricare è troppo grande.</string>
<string name="error_start_database_action">Si è verificato un errore durante l\'esecuzione di una azione sul database.</string>
<string name="properties">Proprietà</string>
<string name="error_export_app_properties">Errore durante l\'esportazione delle proprietà dell\'app</string>
<string name="success_export_app_properties">Proprietà dell\'app esportate</string>
<string name="error_import_app_properties">Errore durante l\'importazione delle proprietà dell\'app</string>
<string name="success_import_app_properties">Proprietà dell\'app importate</string>
<string name="error_export_app_properties">Errore durante l\'esportazione delle impostazioni dell\'app</string>
<string name="success_export_app_properties">Impostazioni dell\'app esportate</string>
<string name="error_import_app_properties">Errore durante l\'importazione delle impostazioni dell\'app</string>
<string name="success_import_app_properties">Impostazioni dell\'app importate</string>
<string name="description_app_properties">Proprietà di KeePassDX per gestire le impostazioni dell\'app</string>
<string name="export_app_properties_summary">Crea un file in cui esportare le proprietà dell\'app</string>
<string name="export_app_properties_title">Esporta le proprietà dell\'app</string>
<string name="import_app_properties_summary">Seleziona un file da cui importare le proprietà dell\'app</string>
<string name="import_app_properties_title">Importa le proprietà dell\'app</string>
<string name="export_app_properties_summary">Crea un file in cui esportare le impostazioni dell\'app</string>
<string name="export_app_properties_title">Esporta le impostazioni dell\'app</string>
<string name="import_app_properties_summary">Seleziona un file da cui importare le impostazioni dell\'app</string>
<string name="import_app_properties_title">Importa le impostazioni dell\'app</string>
<string name="error_word_reserved">Questa parola è riservata e non può essere usata.</string>
<string name="error_move_group_here">Non puoi spostare un gruppo qui.</string>
<string name="templates">Modelli</string>

View File

@@ -468,17 +468,7 @@
</string-array>
<string name="style_choose_title">アプリのテーマ</string>
<string name="style_choose_summary">アプリで使用するテーマ</string>
<string-array name="list_style_names">
<item>Forest</item>
<item>Divine</item>
<item>Classic</item>
<item>Simple</item>
<item>Moon</item>
<item>Sun</item>
<item>Reply</item>
<item>Kunzite</item>
<item>システムに従う</item>
</string-array>
<string name="style_name_follow_system">システムに従う</string>
<string name="icon_pack_choose_title">アイコンパック</string>
<string name="icon_pack_choose_summary">アプリで使用するアイコンパック</string>
<string name="hide_expired_entries_title">有効期限切れのエントリーを非表示にする</string>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -542,14 +542,14 @@
<string name="error_file_to_big">Het te uploaden bestand is te groot.</string>
<string name="content_description_otp_information">Eenmalig wachtwoord-informatie</string>
<string name="properties">Eigenschappen</string>
<string name="error_export_app_properties">Fout bij het exporteren van App-instellingen</string>
<string name="error_export_app_properties">Fout bij het exporteren van app-instellingen</string>
<string name="success_export_app_properties">App-instellingen geëxporteerd</string>
<string name="error_import_app_properties">Fout bij het importeren van App-instellingen</string>
<string name="error_import_app_properties">Fout bij het importeren van app-instellingen</string>
<string name="success_import_app_properties">App-instellingen geïmporteerd</string>
<string name="description_app_properties">KeePassDX-eigenschappen om app-instellingen te beheren</string>
<string name="export_app_properties_summary">Bestand voor export van App-instellingen aanmaken</string>
<string name="export_app_properties_summary">Bestand voor export van app-instellingen aanmaken</string>
<string name="export_app_properties_title">App-instellingen exporteren</string>
<string name="import_app_properties_summary">Selecteer een bestand om app-eigenschappen te importeren</string>
<string name="import_app_properties_summary">Selecteer een bestand om app-instellingen te importeren</string>
<string name="import_app_properties_title">App-instellingen importeren</string>
<string name="error_start_database_action">Er is een fout opgetreden bij het uitvoeren van een actie op de database.</string>
<string name="error_move_group_here">Je kunt hier geen groep verplaatsen.</string>

View File

@@ -540,15 +540,15 @@
<string name="error_remove_file">Wystąpił błąd podczas usuwania danych z pliku.</string>
<string name="error_duplicate_file">Dane pliku już istnieją.</string>
<string name="properties">Właściwości</string>
<string name="error_export_app_properties">Błąd podczas eksportowania właściwości aplikacji</string>
<string name="success_export_app_properties">Eksportowano właściwości aplikacji</string>
<string name="error_import_app_properties">Błąd podczas importowania właściwości aplikacji</string>
<string name="success_import_app_properties">Importowano właściwości aplikacji</string>
<string name="error_export_app_properties">Błąd podczas eksportowania ustawień aplikacji</string>
<string name="success_export_app_properties">Eksportowano ustawienia aplikacji</string>
<string name="error_import_app_properties">Błąd podczas importowania ustawień aplikacji</string>
<string name="success_import_app_properties">Importowano ustawienia aplikacji</string>
<string name="description_app_properties">Właściwości KeePassDX do zarządzania ustawieniami aplikacji</string>
<string name="export_app_properties_summary">Utwórz plik, aby eksportować właściwości aplikacji</string>
<string name="export_app_properties_title">Eksportuj właściwości aplikacji</string>
<string name="import_app_properties_summary">Wybierz plik, aby importować właściwości aplikacji</string>
<string name="import_app_properties_title">Importuj właściwości aplikacji</string>
<string name="export_app_properties_summary">Utwórz plik, aby eksportować ustawienia aplikacji</string>
<string name="export_app_properties_title">Eksportuj ustawienia aplikacji</string>
<string name="import_app_properties_summary">Wybierz plik, aby importować ustawienia aplikacji</string>
<string name="import_app_properties_title">Importuj ustawienia aplikacji</string>
<string name="error_start_database_action">Wystąpił błąd podczas wykonywania akcji w bazie danych.</string>
<string name="error_move_group_here">Nie możesz tutaj przenieść grupy.</string>
<string name="error_word_reserved">To słowo jest zastrzeżone i nie może być używane.</string>

View File

@@ -525,15 +525,15 @@
<string name="warning_database_info_changed_options">Mescle os dados, substitua as modificações externas salvando o banco de dados ou recarregue-o com as alterações mais recentes.</string>
<string name="warning_database_info_changed">As informações contidas em seu arquivo de banco de dados foram modificadas fora do aplicativo.</string>
<string name="warning_empty_recycle_bin">Deletar permanentemente todos os nós da lixeira\?</string>
<string name="error_export_app_properties">Erro durante a exportação de propriedades do aplicativo</string>
<string name="success_export_app_properties">Propriedades do aplicativo exportadas</string>
<string name="error_import_app_properties">Erro durante a importação de propriedades do aplicativo</string>
<string name="success_import_app_properties">Propriedades de aplicativos importadas</string>
<string name="error_export_app_properties">Houve um erro durante a exportação das configurações do aplicativo</string>
<string name="success_export_app_properties">As configurações do aplicativo foram exportadas</string>
<string name="error_import_app_properties">Houve um erro durante a importação das configurações do aplicativo</string>
<string name="success_import_app_properties">As configurações do aplicativo foram importadas</string>
<string name="description_app_properties">Propriedades KeePassDX para gerenciar configurações de aplicativos</string>
<string name="export_app_properties_summary">Crie um arquivo para exportar as propriedades do aplicativo</string>
<string name="export_app_properties_title">Exportar propriedades do aplicativo</string>
<string name="import_app_properties_summary">Selecione um arquivo para importar as propriedades do aplicativo</string>
<string name="import_app_properties_title">Importar propriedades do aplicativo</string>
<string name="export_app_properties_summary">Crie um arquivo para exportar as configurações do aplicativo</string>
<string name="export_app_properties_title">Exportar as configurações do aplicativo</string>
<string name="import_app_properties_summary">Selecione um arquivo para importar as configurações do aplicativo</string>
<string name="import_app_properties_title">Importar as configurações do aplicativo</string>
<string name="registration_mode">Modo registro</string>
<string name="save_mode">Modo salvar</string>
<string name="search_mode">Modo busca</string>
@@ -664,7 +664,7 @@
<string name="enable_screenshot_mode_summary">Permitir que aplicativos de terceiros gravem ou façam capturas de tela do aplicativo</string>
<string name="screenshot_mode_banner_text">Modo de captura de tela</string>
<string name="corrupted_file">Arquivo corrompido.</string>
<string name="auto_type">Preenchimento automático</string>
<string name="auto_type">Digitação automática</string>
<string name="content_description_hardware_key_checkbox">Caixa de verificação da chave física</string>
<string name="merge_success">Merge concluído com sucesso</string>
<string name="info">Info</string>

View File

@@ -531,15 +531,15 @@
<string name="notification">Notificação</string>
<string name="autofill_select_entry">Selecionar entrada…</string>
<string name="properties">Propriedades</string>
<string name="error_export_app_properties">Erro ao exportar as propriedades da aplicação</string>
<string name="success_export_app_properties">Propriedades da aplicação exportadas</string>
<string name="error_import_app_properties">Erro ao importar as propriedades da aplicação</string>
<string name="success_import_app_properties">Propriedades da aplicação importadas</string>
<string name="error_export_app_properties">Erro durante a exportação das definições da aplicação</string>
<string name="success_export_app_properties">Definições da aplicação exportadas</string>
<string name="error_import_app_properties">Erro durante a importação das definições da aplicação</string>
<string name="success_import_app_properties">Definições da aplicação importadas</string>
<string name="description_app_properties">Propriedades do KeePassDX para gerir as configurações da aplicação</string>
<string name="export_app_properties_summary">Criar um ficheiro para exportar as propriedades da aplicação</string>
<string name="export_app_properties_title">Exportar as propriedades da aplicação</string>
<string name="import_app_properties_summary">Selecione um ficheiro para importar as propriedades da aplicação</string>
<string name="import_app_properties_title">Importar propriedades da aplicação</string>
<string name="export_app_properties_summary">Criar um ficheiro para exportar as definições da aplicação</string>
<string name="export_app_properties_title">Exportar definições da aplicação</string>
<string name="import_app_properties_summary">Selecionar um ficheiro para importar as definições da aplicação</string>
<string name="import_app_properties_title">Importar definições da aplicação</string>
<string name="menu_external_icon">Ícone externo</string>
<string name="error_start_database_action">Ocorreu um erro ao tentar executar uma ação na base de dados.</string>
<string name="error_remove_file">Ocorreu um erro ao tentar remover o ficheiro de dados.</string>

View File

@@ -468,8 +468,8 @@
<string name="error_database_uri_null">Não foi possível recuperar o URI da base de dados.</string>
<string name="error_field_name_already_exists">O nome do campo já existe.</string>
<string name="error_registration_read_only">Não é permitido guardar um novo item numa base de dados só de leitura</string>
<string name="export_app_properties_title">Exportar as propriedades da aplicação</string>
<string name="import_app_properties_summary">Selecione um ficheiro para importar as propriedades da aplicação</string>
<string name="export_app_properties_title">Exportar definições da aplicação</string>
<string name="import_app_properties_summary">Selecionar um ficheiro para importar as definições da aplicação</string>
<string name="unit_gibibyte">GiB</string>
<string name="unit_mebibyte">MiB</string>
<string name="unit_kibibyte">KiB</string>
@@ -526,13 +526,13 @@
<string name="autofill_select_entry">Selecionar entrada…</string>
<string name="properties">Propriedades</string>
<string name="credential_before_click_advanced_unlock_button">Digite a palavra-passe e depois clique neste botão.</string>
<string name="error_export_app_properties">Erro ao exportar as propriedades da aplicação</string>
<string name="success_export_app_properties">Propriedades da aplicação exportadas</string>
<string name="error_export_app_properties">Erro durante a exportação das definições da aplicação</string>
<string name="success_export_app_properties">Definições da aplicação exportadas</string>
<string name="error_import_app_properties">Erro ao importar as propriedades da aplicação</string>
<string name="success_import_app_properties">Propriedades da aplicação importadas</string>
<string name="success_import_app_properties">Definições da aplicação importadas</string>
<string name="description_app_properties">Propriedades do KeePassDX para gerir as configurações da aplicação</string>
<string name="export_app_properties_summary">Criar um ficheiro para exportar as propriedades da aplicação</string>
<string name="import_app_properties_title">Importar propriedades da aplicação</string>
<string name="export_app_properties_summary">Criar um ficheiro para exportar as definições da aplicação</string>
<string name="import_app_properties_title">Importar definições da aplicação</string>
<string name="menu_external_icon">Ícone externo</string>
<string name="error_start_database_action">Ocorreu um erro ao tentar executar uma ação na base de dados.</string>
<string name="error_remove_file">Ocorreu um erro ao tentar remover o ficheiro de dados.</string>

View File

@@ -18,81 +18,81 @@
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
--><resources>
<string name="about_description">Implementarea Android a managerului de parole KeePass</string>
<string name="accept">Accept</string>
<string name="add_entry">Introduce intrarea</string>
<string name="edit_entry">Editeaza intrarea</string>
<string name="add_group">Aduce grup</string>
<string name="master_key">Cheia generala</string>
<string name="accept">Acceptați</string>
<string name="add_entry">Introduceți intrarea</string>
<string name="edit_entry">Editați intrarea</string>
<string name="add_group">Adăugați un grup</string>
<string name="master_key">Cheia generală</string>
<string name="security">Securitate</string>
<string name="encryption">Criptare</string>
<string name="encryption_algorithm">Algoritm de criptare</string>
<string name="key_derivation_function">Functie derivata a cheii</string>
<string name="key_derivation_function">Funcție de derivare a cheii</string>
<string name="app_timeout">Timeout</string>
<string name="app_timeout_summary">Timpul de asteptare inaintea blocarii bancii de date</string>
<string name="app_timeout_summary">Timpul de așteptare înaintea blocării bazei de date</string>
<string name="application">Aplicație</string>
<string name="brackets">Paranteze patrate</string>
<string name="brackets">Paranteze pătrate</string>
<string name="extended_ASCII">ASCII extins</string>
<string name="file_manager_install_description">Pentru a crea, deschide și salva fișiere de baze de date, este necesar un manager de fișiere care acceptă acțiunea de intenție ACTION_CREATE_DOCUMENT și ACTION_OPEN_DOCUMENT.</string>
<string name="allow">Permite</string>
<string name="clipboard_cleared">Carnetelul din memorie curatat</string>
<string name="clipboard_error_title">Eroare de citire copiere memorie</string>
<string name="clipboard_error">Unele dispozitive nu permit aplicatiei sa foloseasca memoria de citire din carnetel.</string>
<string name="clipboard_error_clear">Nu s-a putut curata memoria carnetelului</string>
<string name="clipboard_timeout">Timp expirat de citire a carnetelului</string>
<string name="clipboard_timeout_summary">Durata de stocare în carnețel (dacă este acceptată de dispozitivul tău)</string>
<string name="content_description_background">In spate</string>
<string name="content_description_open_file">Deschide fisier</string>
<string name="content_description_node_children">Copil nod</string>
<string name="content_description_add_node">Introduce nod</string>
<string name="content_description_add_entry">Introduce o intrare</string>
<string name="content_description_add_group">Aduce un grup</string>
<string name="file_manager_install_description">Un manager de fișiere care acceptă acțiunea intenției ACTION_CREATE_DOCUMENT și ACTION_OPEN_DOCUMENT este necesară pentru a crea, deschide, și salva fișierele bazei de date.</string>
<string name="allow">Permiteți</string>
<string name="clipboard_cleared">Clipboard curățat</string>
<string name="clipboard_error_title">Eroare de Clipboard</string>
<string name="clipboard_error">Unele dispozitive nu permit aplicației sa folosească clipboard-ul.</string>
<string name="clipboard_error_clear">Nu s-a putut curăța clipboard-ul</string>
<string name="clipboard_timeout">Timeout pentru clipboard</string>
<string name="clipboard_timeout_summary">Durata de stocare în clipboard (dacă dispozitivul tău suportă)</string>
<string name="content_description_background">În fundal</string>
<string name="content_description_open_file">Deschide fișier</string>
<string name="content_description_node_children">Nod copil</string>
<string name="content_description_add_node">Adăugați nod</string>
<string name="content_description_add_entry">Introduceți intrarea</string>
<string name="content_description_add_group">Adăugați un grup</string>
<string name="content_description_file_information">Informații despre fișier</string>
<string name="content_description_password_checkbox">Verifica parola</string>
<string name="content_description_keyfile_checkbox">Verifica fisierul cheie</string>
<string name="content_description_repeat_toggle_password_visibility">Repetați pentru a comuta vizibilitatea parolei</string>
<string name="content_description_entry_icon">Pictograma de intrare</string>
<string name="entry_password_generator">Generator de parole</string>
<string name="content_description_password_checkbox">Căsuță de selectare pentru parolă</string>
<string name="content_description_keyfile_checkbox">Căsuță de selectare pentru fișier-cheie</string>
<string name="content_description_repeat_toggle_password_visibility">Repetați comutarea vizibilității parolei</string>
<string name="content_description_entry_icon">Pictogramă de intrare</string>
<string name="entry_password_generator">Generator de parolă</string>
<string name="content_description_password_length">Lungimea parolei</string>
<string name="entry_add_field">Adăugați câmp</string>
<string name="content_description_remove_field">Elimina câmp</string>
<string name="content_description_remove_field">Eliminați câmpul</string>
<string name="content_description_update_from_list">Actualizați</string>
<string name="content_description_remove_from_list">Elimina</string>
<string name="content_description_keyboard_close_fields">Câmpuri închise</string>
<string name="content_description_remove_from_list">Eliminați</string>
<string name="content_description_keyboard_close_fields">Închideți câmpurile</string>
<string name="select_to_copy">Selectați pentru a copia %1$s în clipboard</string>
<string name="retrieving_db_key">Obtinerea cheii bazei de date…</string>
<string name="database">Baza de date</string>
<string name="decrypting_db">Decriptarea continutului bazei de date.…</string>
<string name="retrieving_db_key">Se recuperea cheia bazei de date…</string>
<string name="database">Bază de date</string>
<string name="decrypting_db">Se decriptea conținutul bazei de date.…</string>
<string name="contact">Contact</string>
<string name="contribution">Contributie</string>
<string name="contribution">Contribuție</string>
<string name="feedback">Opinii</string>
<string name="homepage">Pagina acasa</string>
<string name="homepage">Pagina principală</string>
<string name="default_checkbox">Folosiți ca bază de date implicită</string>
<string name="digits">Digits</string>
<string name="digits">Cifre</string>
<string name="entry_accessed">Accesat</string>
<string name="entry_cancel">Anuleaza</string>
<string name="entry_cancel">Anulează</string>
<string name="entry_notes">Note</string>
<string name="entry_confpassword">Confirma parola</string>
<string name="entry_created">Creeat</string>
<string name="entry_expires">Expira</string>
<string name="entry_confpassword">Confirmă parola</string>
<string name="entry_created">Creat</string>
<string name="entry_expires">Expiră</string>
<string name="entry_UUID">UUID</string>
<string name="entry_history">Istoric</string>
<string name="entry_attachments">Atasamente</string>
<string name="entry_keyfile">Fisiercheie</string>
<string name="entry_attachments">Atașamente</string>
<string name="entry_keyfile">Fișier-cheie</string>
<string name="entry_modified">Modificat</string>
<string name="entry_not_found">Nu s-au putut găsi date de intrare.</string>
<string name="entry_password">Parola</string>
<string name="save">Salveaza</string>
<string name="entry_password">Parolă</string>
<string name="save">Salvează</string>
<string name="entry_title">Titlu</string>
<string name="entry_setup_otp">Setați o singură parolă</string>
<string name="otp_type">Tipul OTP</string>
<string name="entry_setup_otp">Setați o parolă unică</string>
<string name="otp_type">Tip OTP</string>
<string name="otp_secret">Secret</string>
<string name="otp_period">Perioada(secunde)</string>
<string name="otp_counter">Numaratoare</string>
<string name="otp_digits">Digiti</string>
<string name="otp_period">Perioadă (secunde)</string>
<string name="otp_counter">Numărătoare</string>
<string name="otp_digits">Cifre</string>
<string name="otp_algorithm">Algoritm</string>
<string name="entry_otp">OTP</string>
<string name="entry_url">URL</string>
<string name="entry_user_name">Nume utilizator</string>
<string name="entry_user_name">Nume de utilizator</string>
<string name="error_arc4">Cifrarea fluxului Arcfour nu este acceptată.</string>
<string name="error_can_not_handle_uri">Nu s-a putut gestiona acest URI în KeePassDX.</string>
<string name="error_file_not_create">Nu s-a putut creea fisierul</string>
@@ -123,7 +123,7 @@
<string name="field_name">Numele domeniului</string>
<string name="field_value">Valoarea câmpului</string>
<string name="file_not_found_content">Nu s-a putut găsi fișierul. Încercați să-l redeschideți din browserul de fișiere.</string>
<string name="file_browser">Browser de fișiere</string>
<string name="file_browser">Manager fișiere</string>
<string name="generate_password">Generați parola</string>
<string name="hint_conf_pass">Confirmă parola</string>
<string name="hint_generated_password">Parola generata</string>
@@ -152,7 +152,7 @@
<string name="settings">Setări</string>
<string name="menu_app_settings">Setările aplicației</string>
<string name="menu_form_filling_settings">Completarea formularului</string>
<string name="menu_advanced_unlock_settings">Deblocare avansată</string>
<string name="menu_advanced_unlock_settings">Deblocare dispozitiv</string>
<string name="menu_database_settings">Setările bazei de date</string>
<string name="menu_security_settings">Setări de securitate</string>
<string name="menu_master_key_settings">Setări cheie master</string>
@@ -165,7 +165,7 @@
<string name="menu_cancel">Anulare</string>
<string name="menu_hide_password">Ascunde parola</string>
<string name="menu_lock">Blocați baza de date</string>
<string name="menu_save_database">Salvați baza de date</string>
<string name="menu_save_database">Salvați datele</string>
<string name="menu_open">Deschide</string>
<string name="menu_search">Căutare</string>
<string name="menu_showpass">Arata parola</string>
@@ -178,15 +178,15 @@
<string name="minus">Minus</string>
<string name="never">Niciodata</string>
<string name="no_results">Nu există Rezultate</string>
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft is &lt;strong&gt;sursa deschisa&lt;/strong&gt; and &lt;strong&gt;fara publicitate&lt;/strong&gt;.
\nEste prevăzut așa cum este, sub &lt;strong&gt;GPLv3&lt;/strong&gt; licenta, fara nici un fel de garantie.</string>
<string name="html_about_contribution">In oridine sa &lt;strong&gt;pastram libertatea noastra&lt;/strong&gt;, &lt;strong&gt;fix bugs&lt;/strong&gt;, &lt;strong&gt;adăugați funcții&lt;/strong&gt; si&lt;strong&gt;sa fie intotdeauna activ&lt;/strong&gt;, ne bazam pe &lt;strong&gt;contributie&lt;/strong&gt;.</string>
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft este &lt;strong&gt;open-source (sursă deschisă)&lt;/strong&gt; și &lt;strong&gt;fără reclame&lt;/strong&gt;.
\nEste prevăzut așa cum este, sub licența &lt;strong&gt;GPLv3&lt;/strong&gt;, fără nici un fel de garanție.</string>
<string name="html_about_contribution">În ordine să &lt;strong&gt;pastrăm libertatea noastră&lt;/strong&gt;, &lt;strong&gt;fixăm bug-uri&lt;/strong&gt;, &lt;strong&gt;adăugăm funcții&lt;/strong&gt; și&lt;strong&gt;să fie întotdeauna activ&lt;/strong&gt;, ne bazam pe &lt;strong&gt;contribuția&lt;/strong&gt; ta.</string>
<string name="hide_password_title">Ascundeți parolele</string>
<string name="hide_password_summary">Mascați parolele (***) în mod implicit</string>
<string name="about">Despre</string>
<string name="no_url_handler">Instalați un browser web pentru a deschide această adresă URL.</string>
<string name="select_database_file">Deschide baza de date existentă</string>
<string name="create_keepass_file">Creați o bază de date nouă</string>
<string name="select_database_file">Deschideți seiful existentă</string>
<string name="create_keepass_file">Creați un nou seif</string>
<string name="progress_create">Crearea noii baze de date …</string>
<string name="progress_title">Lucrând …</string>
<string name="protection">Protecție</string>
@@ -407,10 +407,10 @@
<string name="hide_expired_entries_summary">Înscrierile expirate vor fi ascunse</string>
<string name="auto_focus_search_title">Căutare rapidă</string>
<string name="auto_focus_search_summary">Solicitați o căutare atunci când deschideți o bază de date</string>
<string name="remember_database_locations_title">Salvați locația bazelor de date</string>
<string name="remember_database_locations_summary">Amintiți-vă locația bazelor de date</string>
<string name="remember_keyfile_locations_title">Salvați locația fișierelor cheie</string>
<string name="remember_keyfile_locations_summary">Amintiți-vă locația bazelor de date cheie de date</string>
<string name="remember_database_locations_title">Amintiți locațiile bazelor de date</string>
<string name="remember_database_locations_summary">Ține evidența locului în care sunt stocate bazele de date</string>
<string name="remember_keyfile_locations_title">Amintiți locațiile fișierelor cheie</string>
<string name="remember_keyfile_locations_summary">Ține evidența locului în care sunt stocate fișierele cheie</string>
<string name="show_recent_files_title">Afișați fișiere recente</string>
<string name="show_recent_files_summary">Afișați locațiile bazelor de date recente</string>
<string name="hide_broken_locations_title">Ascundeți linkurile de bază de date stricate</string>
@@ -419,27 +419,27 @@
<string name="warning_database_link_revoked">Accesul catre fisier eliminat de catre managerul de fisiere</string>
<string name="error_create_database">Imposibil de creeat fisierul bazei de date.</string>
<string name="error_label_exists">Aceasta eticheta exista</string>
<string name="entry_add_attachment">Aduce atasament</string>
<string name="discard">Renunta</string>
<string name="discard_changes">Renunti la schimbari\?</string>
<string name="validate">Valideaza</string>
<string name="content_description_add_item">adaugă un element</string>
<string name="entry_add_attachment">Adăugați atașament</string>
<string name="discard">Renunțați</string>
<string name="discard_changes">Renunțați la schimbări\?</string>
<string name="validate">Validează</string>
<string name="content_description_add_item">Adăugați un element</string>
<string name="content_description_database_color">Culoarea bazei de date</string>
<string name="content_description_entry_foreground_color">Culoarea primului plan</string>
<string name="content_description_entry_background_color">Culoarea de fundal</string>
<string name="debit_credit_card">Card de debit / credit</string>
<string name="holder">Titularul</string>
<string name="holder">Titular</string>
<string name="number">Număr</string>
<string name="card_verification_value">CVV</string>
<string name="name">Nume</string>
<string name="place_of_issue">Locul de eliberare</string>
<string name="date_of_issue">Data eliberării</string>
<string name="email">Email</string>
<string name="email_address">Adresa email</string>
<string name="email_address">Adresă de email</string>
<string name="ssid">SSID</string>
<string name="type">Tip</string>
<string name="cryptocurrency">Portofel de criptomonede</string>
<string name="token">Token</string>
<string name="token">Token (Jeton)</string>
<string name="public_key">Cheie publică</string>
<string name="private_key">Cheie privată</string>
<string name="seed">Sămânță</string>
@@ -452,15 +452,15 @@
<string name="content_description_otp_information">Informații despre parola de unică folosință</string>
<string name="template_group_name">Șabloane</string>
<string name="content_description_credentials_information">Informații despre acreditări</string>
<string name="id_card">Cartă de identitate</string>
<string name="id_card">Carte de identitate</string>
<string name="bank_identifier_code">SWIFT / BIC</string>
<string name="personal_identification_number">PIN</string>
<string name="bank_name">Numele băncii</string>
<string name="account">Cont</string>
<string name="bank">Banca</string>
<string name="bank">Bancă</string>
<string name="international_bank_account_number">IBAN</string>
<string name="expired">Expirat</string>
<string name="custom_data">Date personalizat</string>
<string name="custom_data">Date personalizate</string>
<string name="tags">Etichete</string>
<string name="error_otp_type">Tipul de OTP existent nu este recunoscut de acest formular, este posibil ca validarea acestuia să nu mai genereze corect token-ul.</string>
<string name="error_move_group_here">Nu poți muta grupul aici.</string>
@@ -469,20 +469,70 @@
<string name="error_field_name_already_exists">Numele câmpului există deja.</string>
<string name="navigation_drawer_open">Sertar de navigare deschis</string>
<string name="content_description_passphrase_word_count">Numărul de cuvinte al frazei de siguranță</string>
<string name="html_about_privacy">&lt;strong&gt;Nu se recuperează date de utilizator &lt;/strong&gt;, această aplicație nu se conectează la niciun server, funcționează doar la nivel local și respectă pe deplin confidențialitatea utilizatorilor.</string>
<string name="html_about_privacy">&lt;strong&gt;Nu este colectat datele utilizatorilor &lt;/strong&gt;, această aplicație nu se conectează la niciun server, funcționează doar la local și respectă pe deplin confidențialitatea utilizatorilor.</string>
<string name="current_group">Grup curent</string>
<string name="search_filters">Filtre de căutare</string>
<string name="navigation_drawer_close">Sertar de navigare închis</string>
<string name="content_description_nav_header">Antet de navigare</string>
<string name="inherited">Moștenește</string>
<string name="searchable">Căutabil</string>
<string name="case_sensitive">Caz sensibil</string>
<string name="regex">Expresie regular</string>
<string name="case_sensitive">Sensibil la majuscule</string>
<string name="regex">Expresie regula</string>
<string name="waiting_challenge_request">Se așteaptă pentru cererea de provocare…</string>
<string name="waiting_challenge_response">Se așteaptă pentru un răspuns la provocare…</string>
<string name="content_description_hardware_key_checkbox">Casetă de selectare a cheilor hardware</string>
<string name="content_description_hardware_key_checkbox">Căsuță de selectare a cheii hardware</string>
<string name="hardware_key">Cheie hardware</string>
<string name="auto_type_sequence">Secvență Auto-Type</string>
<string name="error_database_uri_null">URI-ul bazei de date nu poate fi recuperat.</string>
<string name="error_no_hardware_key">Selectează o cheie hardware.</string>
<string name="info">Info</string>
<string name="menu_merge_database">Fuzionați datele</string>
<string name="menu_reload_database">Reîncărcați datele</string>
<string name="save_mode">Mod de salvare</string>
<string name="colorize_password_summary">Colorați caracterele parolei în funcție de tip</string>
<string name="show_uuid_title">Arată UUID</string>
<string name="hint_icon_name">Numele iconiței</string>
<string name="search_mode">Mod de căutare</string>
<string name="wireless">Wi-Fi</string>
<string name="menu_merge_from">Fuzionați din …</string>
<string name="menu_save_copy_to">Salvați o copie în …</string>
<string name="menu_keystore_remove_key">Ștergeți cheia de deblocare a dispozitivului</string>
<string name="error_duplicate_file">Datele din fișier există deja.</string>
<string name="error_remove_file">S-a produs o eroare în timpul eliminării datelor din fișier.</string>
<string name="error_response_already_provided">Răspuns deja furnizat.</string>
<string name="error_hardware_key_unsupported">Cheia hardware nu este suportat(ă).</string>
<string name="error_empty_key">Cheia nu poate fi goală.</string>
<string name="corrupted_file">Fișier coruptat.</string>
<string name="passphrase">Fraza de acces</string>
<string name="colorize_password_title">Colorați parolele</string>
<string name="show_otp_token_summary">Afișează tokenurile OTP în lista de intrări</string>
<string name="show_otp_token_title">Afișați Tokenul OTP</string>
<string name="show_uuid_summary">Afișează UUID-ul legat de o intrare sau de un grup</string>
<string name="menu_app_settings_summary">Căutare, blocare, istoric, proprietăți</string>
<string name="menu_form_filling_settings_summary">Tastatură, completarea automată, clipboard</string>
<string name="menu_advanced_unlock_settings_summary">Biometrie, acreditare din dispozitiv</string>
<string name="menu_database_settings_summary">Metadata, coșul de reciclare, șabloane, istoric</string>
<string name="master_key_settings_summary">Schimbare, reînnoire</string>
<string name="menu_security_settings_summary">Criptare, funcție de derivare a cheilor</string>
<string name="menu_external_icon">Iconiță externă</string>
<string name="subdomain_search_title">Căutare subdomeniu</string>
<string name="subdomain_search_summary">Căutați domenii web cu constrângeri de subdomenii</string>
<string name="import_app_properties_title">Importați proprietățile aplicației</string>
<string name="auto_type">Auto-Scriere</string>
<string name="error_XML_malformed">XML malformat.</string>
<string name="error_rebuild_list">Nu s-a putut reconstrui corect lista.</string>
<string name="error_file_to_big">Fișierul pe care încercați să-o încărcați este prea mare.</string>
<string name="error_upload_file">A apărut o eroare în timpul încărcării datelor din fișier.</string>
<string name="error_start_database_action">A apărut o eroare în timpul efectuării unei acțiuni în baza de date.</string>
<string name="error_challenge_already_requested">Provocare deja solicitată</string>
<string name="error_no_response_from_challenge">Nu s-a reușit să obțină răspunsul la provocare.</string>
<string name="error_cancel_by_user">Anulat de utilizator.</string>
<string name="error_driver_required">Driver-ul pentru %1$s este necesară.</string>
<string name="error_unable_merge_database_kdb">Nu s-a putut fuziona de la o bază de date V1.</string>
<string name="error_location_unknown">Locația bazei de date este necunoscută, acțiunea bazei de date nu poate fi efectuată.</string>
<string name="registration_mode">Mod de înregistrare</string>
<string name="remember_hardware_key_title">Amintiți cheile hardware</string>
<string name="remember_hardware_key_summary">Ține evidența cheilor hardware utilizate</string>
<string name="import_app_properties_summary">Selectați un fișier pentru a importa proprietățile aplicației</string>
<string name="export_app_properties_title">Exportați proprietățile aplicației</string>
</resources>

View File

@@ -230,7 +230,7 @@
<string name="enable_read_only_summary">По умолчанию открывать базу только для чтения</string>
<string name="enable_education_screens_title">Обучающие подсказки</string>
<string name="enable_education_screens_summary">Выделять элементы, чтобы показать, как работает приложение</string>
<string name="reset_education_screens_title">Сбросить обучающие подсказки</string>
<string name="reset_education_screens_title">Вернуть обучающие подсказки</string>
<string name="reset_education_screens_summary">Снова показывать все обучающие подсказки</string>
<string name="reset_education_screens_text">Обучающие подсказки сброшены</string>
<string name="education_create_database_title">Создайте файл базы</string>
@@ -412,10 +412,10 @@
<string name="html_about_contribution">Для &lt;strong&gt;сохранения нашей независимости&lt;/strong&gt;, &lt;strong&gt;исправления ошибок&lt;/strong&gt;, &lt;strong&gt;добавления новых функций&lt;/strong&gt; и &lt;strong&gt;поддержания разработки в активном состоянии&lt;/strong&gt;, мы рассчитываем на вашу &lt;strong&gt;поддержку&lt;/strong&gt;.</string>
<string name="auto_focus_search_title">Быстрый поиск</string>
<string name="auto_focus_search_summary">Открывать поисковый запрос при открытии базы</string>
<string name="remember_database_locations_title">Помнить расположение баз паролей</string>
<string name="remember_database_locations_summary">Помнить расположение файлов баз паролей</string>
<string name="remember_database_locations_title">Помнить расположение баз</string>
<string name="remember_database_locations_summary">Запоминать расположение баз паролей</string>
<string name="remember_keyfile_locations_title">Помнить расположение ключей</string>
<string name="remember_keyfile_locations_summary">Помнить расположение файлов ключей баз паролей</string>
<string name="remember_keyfile_locations_summary">Запоминать расположение файлов ключей к базам паролей</string>
<string name="show_recent_files_title">Показывать последние базы</string>
<string name="show_recent_files_summary">Показывать расположение последних открытых баз</string>
<string name="hide_broken_locations_title">Скрывать отсутствующие</string>
@@ -545,10 +545,10 @@
<string name="error_import_app_properties">Ошибка при импорте настроек приложения</string>
<string name="success_import_app_properties">Настройки приложения импортированы</string>
<string name="description_app_properties">Управление настройками приложения KeePassDX</string>
<string name="export_app_properties_summary">Создать файл настроек приложения</string>
<string name="export_app_properties_summary">Создать резервную копию настроек</string>
<string name="export_app_properties_title">Экспорт настроек</string>
<string name="import_app_properties_summary">Импортировать настройки приложения из файла</string>
<string name="import_app_properties_title">Импорт настроек</string>
<string name="import_app_properties_summary">Выберите резервную копию настроек</string>
<string name="import_app_properties_title">Восстановить настройки</string>
<string name="error_start_database_action">Произошла ошибка при выполнении действия с базой.</string>
<string name="error_move_group_here">Сюда группу переместить невозможно.</string>
<string name="error_word_reserved">Это слово зарезервировано и не может быть использовано.</string>
@@ -657,7 +657,7 @@
<string name="corrupted_file">Файл повреждён.</string>
<string name="error_location_unknown">Расположение базы неизвестно, действие с базой не может быть выполнено.</string>
<string name="remember_hardware_key_title">Помнить аппаратные ключи</string>
<string name="remember_hardware_key_summary">Помнить используемые аппаратные ключи</string>
<string name="remember_hardware_key_summary">Запоминать используемые аппаратные ключи</string>
<string name="screenshot_mode_banner_text">Режим снимка экрана</string>
<string name="enable_screenshot_mode_title">Разрешать снимки экрана</string>
<string name="hardware_key">Аппаратный ключ</string>

View File

@@ -25,7 +25,7 @@
<string name="add_entry">Ny post</string>
<string name="add_group">Ny grupp</string>
<string name="encryption_algorithm">Krypterings algoritm</string>
<string name="app_timeout">Tidsgräns för app</string>
<string name="app_timeout">Tidsgräns</string>
<string name="app_timeout_summary">Inaktivitet innan databasen låses</string>
<string name="application">App</string>
<string name="menu_app_settings">App-inställningar</string>
@@ -470,4 +470,9 @@
<string name="error_no_hardware_key">Välj hårdvarunyckel.</string>
<string name="content_description_add_item">Lägg till ny</string>
<string name="content_description_credentials_information">Inloggningsuppgifter</string>
<string name="info">Information</string>
<string name="type">Typ</string>
<string name="content_description_passphrase_word_count">Antal ord i Lösenordsfras</string>
<string name="public_key">Offentlig nyckel</string>
<string name="private_key">Privat nyckel</string>
</resources>

View File

@@ -35,7 +35,7 @@
<string name="hide_password_title">ซ่อนรหัสผ่าน</string>
<string name="hint_conf_pass">ยืนยันรหัสผ่าน</string>
<string name="contact">ติดต่อ</string>
<string name="select_database_file">เปิดไฟล์ฐานข้อมูลที่มีอยู่แล้ว</string>
<string name="select_database_file">เปิดคลังรหัสผ่านที่มีอยู่แล้ว</string>
<string name="warning_database_link_revoked">การเข้าถึงไฟล์ถูกเพิกถอนโดยตัวจัดการไฟล์</string>
<string name="warning_database_revoked">การเข้าถึงไฟล์ถูกเพิกถอนโดยตัวจัดการไฟล์ ปิดฐานข้อมูลและเปิดใหม่จากตำแหน่งดังกล่าวอีกครั้ง</string>
<string name="education_select_database_title">เปิดฐานข้อมูลที่มีอยู่แล้ว</string>
@@ -67,7 +67,7 @@
<string name="content_description_file_information">ข้อมูลไฟล์</string>
<string name="content_description_credentials_information">ข้อมูลประจำตัว</string>
<string name="content_description_otp_information">ข้อมูลรหัสแบบใช้ครั้งเดียว</string>
<string name="content_description_password_checkbox">ช่องทำเครื่องหมายรหัสผ่าน</string>
<string name="content_description_password_checkbox">ช่องทำเครื่องหมายรหัสผ่าน</string>
<string name="content_description_hardware_key_checkbox">ช่องทำเครื่องหมายกุญแจฮาร์ดแวร์</string>
<string name="content_description_entry_icon">ไอคอนรายการ</string>
<string name="content_description_database_color">สีของฐานข้อมูล</string>
@@ -82,18 +82,18 @@
<string name="entry_add_field">เพื่มข่อง</string>
<string name="entry_add_attachment">เพิ่มไฟล์แนบ</string>
<string name="content_description_remove_field">ลบช่อง</string>
<string name="content_description_update_from_list">อัพเด</string>
<string name="content_description_update_from_list">อัพเด</string>
<string name="content_description_remove_from_list">ลบ</string>
<string name="content_description_keyboard_close_fields">ปิดช่อง</string>
<string name="retrieving_db_key">กําลังเรียกกุญแจของฐานข้อมูล…</string>
<string name="error_no_hardware_key">เลือกกุญเจฮาร์ดแวร์</string>
<string name="error_hardware_key_unsupported">ไม่รองรับกุญแจฮาร์ดแวร์</string>
<string name="create_keepass_file">สร้างฐานข้อมูลใหม่</string>
<string name="create_keepass_file">สร้างคลังรหัสผ่านใหม่</string>
<string name="configure_biometric">ไม่ได้กำหนดข้อมูลการยืนยันตัวตนหรือไบโอเมตริก</string>
<string name="advanced_unlock_prompt_store_credential_message">คุณยังต้องจำข้อมูลรหัสผ่านหลักไว้อยู่ถ้าใช้การปลดล็อกขั้นสูง</string>
<string name="hardware_key">กุญแจฮาร์ดแวร์</string>
<string name="loading_database">กำลังโหลดฐานข้อมูล…</string>
<string name="advanced_unlock_prompt_extract_credential_title">เปิดฐานข้อมูลด้วยการปลดล็อกขั้นสูง</string>
<string name="advanced_unlock_prompt_extract_credential_title">เปิดฐานข้อมูลด้วยการปลดล็อกด้วยอุปกรณ์</string>
<string name="waiting_challenge_response">กำลังรอการตอบกลับจากกุญแจฮาร์ดแวร์</string>
<string name="html_about_licence">แอป KeePassDX © %1$d Kunzisoft เป็นแอป &lt;strong&gt;โอเพนซอร์ซ&lt;/strong&gt; และ &lt;strong&gt;ไม่มีโฆษณา&lt;/strong&gt;.
\nIt is provided as is, under &lt;strong&gt;GPLv3&lt;/strong&gt; license, without any warranty.</string>
@@ -166,7 +166,7 @@
<string name="lock_database_back_root_title">กด \"กลับ\" เพื่อล็อก</string>
<string name="lock_database_show_button_summary">แสดงปุ่มล็อกในส่วนติดต่อของผู้ใช้</string>
<string name="content">เนื้อหา</string>
<string name="advanced_unlock">การปลดล็อกขั้นสูง</string>
<string name="advanced_unlock">การปลดล็อกด้วยอุปกรณ์</string>
<string name="device_credential_unlock_enable_summary">ให้คุณใช้ข้อมูลประจำตัวของอุปกรณ์เพื่อปลดล็อกฐานข้อมูล</string>
<string name="monospace_font_fields_enable_title">แบบอักษรในช่องเขตข้อมูล</string>
<string name="recycle_bin">ถึงขยะ</string>
@@ -200,7 +200,7 @@
<string name="education_field_copy_summary">เขตข้อมูลที่คัดลอกแล้วสามารถวางได้ที่ใหนก็ได้
\n
\nใช้การวิธีการกรอกข้อมูลตามต้องการ</string>
<string name="education_lock_title">Lock the database</string>
<string name="education_lock_title">ล็อกฐานข้อมูล</string>
<string name="education_lock_summary">ล็อกฐานข้อมูลอย่างรวดเร็ว คุณสามารถตั้งค่าการล็อกมันหลังจากผ่านไปสักพัก และเมื่อปิดหน้าจอ</string>
<string name="education_sort_title">จัดเรียงรายการ</string>
<string name="education_sort_summary">เลือกรายการและกลุ่มที่จะถูกจัดเรียง</string>
@@ -222,19 +222,19 @@
<string name="unit_kibibyte">กิบิไบต์</string>
<string name="unit_mebibyte">เมบิไบต์</string>
<string name="unit_gibibyte">กิบิไบต์</string>
<string name="entropy">Entropy: %1$s บิต</string>
<string name="entropy_high">Entropy: สูง</string>
<string name="entropy_calculate">Entropy: คำนวน…</string>
<string name="entropy">เอ็นโทรปี: %1$s บิต</string>
<string name="entropy_high">เอ็นโทรปี: สูง</string>
<string name="entropy_calculate">เอ็นโทรปี: คำนวน…</string>
<string name="at_least_one_char">อย่างน้อยหนึ่งอักขระจากแต่ละตัว</string>
<string name="exclude_ambiguous_chars">ยกเว้นอักขระที่คลุมเครือ</string>
<string name="consider_chars_filter">พิจารณาตัวอักษร</string>
<string name="consider_chars_filter">เลือกใช้ตัวอักษร</string>
<string name="word_separator">ตัวคั่น</string>
<string name="ignore_chars_filter">ละเว้นอักขระ</string>
<string name="lower_case">ตัวพิมพ์เล็ก</string>
<string name="character_count">จำนวนตัวอักษร: %1$d</string>
<string name="screenshot_mode_banner_text">Screenshot mode</string>
<string name="screenshot_mode_banner_text">โหมดถ่ายภาพหน้าจอ</string>
<string name="style_brightness_title">ความสว่างของธีม</string>
<string name="icon_section_standard">Standard</string>
<string name="icon_section_standard">มาตรฐาน</string>
<string name="icon_section_custom">กำหนดเอง</string>
<string name="hide_expired_entries_title">ซ่อนรายการที่หมดอายุแล้ว</string>
<string name="hide_expired_entries_summary">รายการที่หมดอายุแล้วจะไม่แสดง</string>
@@ -270,10 +270,10 @@
<string name="list_size_title">ขนาดของรายการ</string>
<string name="creating_database">กําลังสร้างฐานข้อมูล…</string>
<string name="menu_hide_password">ซ่อนรหัสผ่าน</string>
<string name="menu_keystore_remove_key">ลบกุญแจปลดล็อกขั้นสูง</string>
<string name="menu_keystore_remove_key">ลบกุญแจปลดล็อกของอุปกรณ์</string>
<string name="about">เกี่ยวกับ</string>
<string name="menu_move">ย้าย</string>
<string name="menu_advanced_unlock_settings">การปลดล็อกขั้นสูง</string>
<string name="menu_advanced_unlock_settings">การปลดล็อกของอุปกรณ์</string>
<string name="menu_lock">ล็อกฐานข้อมูล</string>
<string name="menu_search">ค้นหา</string>
<string name="menu_delete">ลบ</string>
@@ -341,7 +341,7 @@
<string name="file_not_found_content">ไม่พบไฟล์ ลองเปิดอีกครั้งจากตัวจัดการไฟล์ของคุณ</string>
<string name="hide_broken_locations_title">ซ่อนลิงก์ฐานข้อมูลที่เสียหาย</string>
<string name="memory_usage_explanation">จำนวนหน่วยความจำที่จะใช้โดยฟังก์ชันการสืบทอดคีย์</string>
<string name="error_import_app_properties">เกิดข้อผิดพลาดระหว่างการนำเข้าคุณสมบัติของแอป</string>
<string name="error_import_app_properties">เกิดข้อผิดพลาดระหว่างการนำเข้าการตั้งค่าของแอป</string>
<string name="corrupted_file">ไฟล์ชำรุด</string>
<string name="save_mode">โหมดบันทึก</string>
<string name="selection_mode">โหมดการเลือก</string>
@@ -364,18 +364,18 @@
<string name="credential_before_click_advanced_unlock_button">กรอกรหัสผ่าน จากนั้นกดที่ปุ่มนี้</string>
<string name="lock">ล็อก</string>
<string name="warning_sure_add_file">เพิ่มไฟล์ต่อไปหรือไม่\?</string>
<string name="import_app_properties_title">นําเข้าคุณสมบัติของแอป</string>
<string name="import_app_properties_title">นําเข้าการตั้งค่าของแอป</string>
<string name="autofill_select_entry">เลือกรายการ</string>
<string name="advanced_unlock_prompt_not_initialized">เรื่มต้นการปลดล็อกขั้นสูงไม่ได้</string>
<string name="export_app_properties_title">ส่งออกคุณสมบัติของแอป</string>
<string name="export_app_properties_summary">สร้างไฟล์เพื่อส่งออกคุณสมบัติของแอป</string>
<string name="advanced_unlock_prompt_not_initialized">เรื่มต้นการปลดล็อกด้วยอุปกรณ์ไม่ได้</string>
<string name="export_app_properties_title">ส่งออกการตั้งค่าของแอป</string>
<string name="export_app_properties_summary">สร้างไฟล์เพื่อส่งออกการตั้งค่าของแอป</string>
<string name="lock_database_show_button_title">แสดงปุ่มล็อก</string>
<string name="success_export_app_properties">ส่งออกคุณสมบัติของแอปแล้ว</string>
<string name="autofill_preference_title">การตั้งค่าการกรอกข้อมูลอัตโนมัติ</string>
<string name="password_size_title">ขนาดรหัสผ่านที่สร้าง</string>
<string name="list_password_generator_options_title">อักขระรหัสผ่าน</string>
<string name="clipboard_notifications_title">การแจ้งเตือนคลิปบอร์ด</string>
<string name="temp_advanced_unlock_enable_title">การปลดล็อกขั้นสูงชั่วคราว</string>
<string name="temp_advanced_unlock_enable_title">การปลดล็อกด้วยอุปกรณ์ชั่วคราว</string>
<string name="keyboard_label">เมจิคีย์บอร์ด (KeePassDX)</string>
<string name="keyboard_setting_label">การตั้งค่า เมจิคีย์บอร์ด</string>
<string name="keyboard_entry_category">รายการ</string>
@@ -410,7 +410,7 @@
<string name="keyboard_key_vibrate_title">การสั่นที่ปุ่มกด</string>
<string name="keyboard_key_sound_title">การได้ยินเสียงที่ปุ่มกด</string>
<string name="keyboard_previous_search_title">หน้าจอค้นหา</string>
<string name="keyboard_previous_fill_in_title">การกระทำปุ่มอัตโนมัติ</string>
<string name="keyboard_previous_fill_in_title">ปุ่มกลับ</string>
<string name="keyboard_previous_lock_summary">สลับไปยังแป้นพิมพ์ก่อนหน้านี้โดยอัตโนมัติหลังจากล็อกฐานข้อมูล</string>
<string name="keyboard_previous_lock_title">ล็อกฐานข้อมูล</string>
<string name="autofill_inline_suggestions_title">การแนะนำแบบอินไลน์</string>
@@ -469,7 +469,7 @@
<string name="personal_identification_number">PIN</string>
<string name="unsupported_db_version">รุ่นของฐานข้อมูล Keepass ไม่รองรับ</string>
<string name="warning_exact_alarm">You have not allowed the app to use an exact alarm. As a result, the features requiring a timer will not be done with an exact time.</string>
<string name="upper_case">UPPER CASE</string>
<string name="upper_case">ตัวพิมพ์ใหญ่</string>
<string name="title_case">Title Case</string>
<string name="show_entry_colors_summary">แสดงสีพื้นหน้าและสีพื้นหลังสําหรับรายการ</string>
<string name="file_manager_install_description">ต้องการตัวจัดการไฟล์ที่ยอมรับ Intent Action ACTION_CREATE_DOCUMENT ACTION_OPEN_DOCUMENT เพื่อจะสร้าง, เปิด, และบันทึกไฟล์ฐานข้อมูล</string>
@@ -488,7 +488,7 @@
<string name="otp_secret">กุญแจลับของ OTP</string>
<string name="otp_counter">ตัวนับ</string>
<string name="international_bank_account_number">IBAN</string>
<string name="membership">การเป็นสมาชิก</string>
<string name="membership">ความเป็นสมาชิก</string>
<string name="standard">มาตรฐาน</string>
<string name="version">รุ่น</string>
<string name="error_word_reserved">คำนี้เป็นคำที่ถูกสงวนไว้และไม่สามารถใช้ได้</string>
@@ -504,7 +504,7 @@
<string name="error_otp_period">ระยะเวลาต้องอยู่ระหว่าง %1$d และ %2$d วินาที</string>
<string name="sort_title">หัวข้อ</string>
<string name="warning_empty_keyfile">ไม่แนะนำให้เพิ่มไฟล์ keyfile เปล่าๆ</string>
<string name="html_about_contribution">เพื่อที่จะ &lt;strong&gt;คงความเป็นอิสระ&lt;/strong&gt;, &lt;strong&gt;แก้ไขบั้ก&lt;/strong&gt;, &lt;strong&gt;เพื่มฟีเจอร์&lt;/strong&gt; และ &lt;strong&gt;ทำให้พัฒนาอยู่เสมอ&lt;/strong&gt;, เรารอคุณมา&lt;strong&gt;ร่วมแก้ไข&lt;/strong&gt;อยู่</string>
<string name="html_about_contribution">เพื่อที่จะ &lt;strong&gt;คงความเป็นอิสระ&lt;/strong&gt;, &lt;strong&gt;แก้ไขบั้ก&lt;/strong&gt;, &lt;strong&gt;เพื่มฟีเจอร์&lt;/strong&gt; และ &lt;strong&gt;ทำให้ยังพัฒนาอยู่เสมอ&lt;/strong&gt;, เรารอคุณมา&lt;strong&gt;ร่วมแก้ไข&lt;/strong&gt;อยู่</string>
<string name="field_value">ค่าเขตข้อมูล</string>
<string name="warning_database_info_changed">ข้อมูลที่อยู่ในไฟล์ฐานข้อมูลของคุณถูกแก้ไขจากภายนอกแอป</string>
<string name="description_app_properties">คุณสมบัติของ KeePassDX เพื่อจัดการการตั้งค่าแอป</string>
@@ -518,21 +518,21 @@
<string name="permission">สิทธิอนุญาต</string>
<string name="warning_database_info_changed_options">รวมข้อมูลหรือเขียนทับการแก้ไขจากภายนอก โดยบันทึกฐานข้อมูล หรือโหลดซ้ำเพื่อใช้การเปลี่ยนแปลงล่าสุด</string>
<string name="warning_keyfile_integrity">ค่าแฮชของไฟล์จะไม่แน่นอนเนี่องจาก Android สามารถเปลี่ยนแปลงข้อมูลในขณะที่ใช้อยู่ได้ เปลี่ยนส่วนขยายไฟล์เป็น .bin เพื่อคงความสมบูรณ์ไว้</string>
<string name="biometric_security_update_required">จำเป็นต้องอัปเดการรักษาความปลอดภัยของไบโอเมตริก</string>
<string name="biometric_security_update_required">จำเป็นต้องอัปเดการรักษาความปลอดภัยของไบโอเมตริก</string>
<string name="keystore_not_accessible">Keystore เรื่มทำงานได้ไม่ถูกต้อง</string>
<string name="advanced_unlock_prompt_store_credential_title">เชื่อมโยงการปลดล็อกขั้นสูง</string>
<string name="encrypted_value_stored">เก็บค่ารหัสผ่านที่เข้ารหัสไว้</string>
<string name="advanced_unlock_invalid_key">อ่านกุญแจการปลดล็อกขั้นสูงไม่ได้ โปรดลบข้อมูลออกและเพื่มข้อมูลการปลดล็อกขั้นสูงอีกครั้ง</string>
<string name="advanced_unlock_invalid_key">อ่านกุญแจการปลดล็อกของอุปกรณ์ไม่ได้ โปรดลบข้อมูลออกและเพื่มข้อมูลการปลดล็อกด้วยอุปกรณ์อีกครั้ง</string>
<string name="advanced_unlock_not_recognized">ไม่รู้จักลายนิ้วมือ</string>
<string name="advanced_unlock_prompt_extract_credential_message">แยกข้อมูลประจำตัวออกด้วยข้อมูลการปลดล็อกขั้นสูง</string>
<string name="advanced_unlock_scanning_error">การปลดล็อกขั้นสูงผิดพลาด: %1$s</string>
<string name="advanced_unlock_prompt_extract_credential_message">แยกข้อมูลประจำตัวออกด้วยข้อมูลการปลดล็อกด้วยอุปกรณ์</string>
<string name="advanced_unlock_scanning_error">การปลดล็อกด้วยอุปกรณ์ผิดพลาด: %1$s</string>
<string name="properties">คุณสมบัติ</string>
<string name="unavailable">ฐานข้อมูลนี้ยังไม่มีข้อมูลการเข้าสูระบบเลย</string>
<string name="database_history">ประวัติ</string>
<string name="import_app_properties_summary">เลือกไฟล์ที่จะนําเข้าคุณสมบัติของแอป</string>
<string name="success_import_app_properties">นำเข้าคุณสมบัติแอปแล้ว</string>
<string name="import_app_properties_summary">เลือกไฟล์ที่จะนําเข้าการตั้งค่าของแอป</string>
<string name="success_import_app_properties">นำเข้าการตั้งค่าแอปแล้ว</string>
<string name="set_autofill_service_title">ตั่งค่าเป็นบริการกรอกข้อมูลอัตโนมัติเรื่มต้น</string>
<string name="error_export_app_properties">เกิดข้อผิดพลาดระหว่างการส่งออกคุณสมบัติของแอป</string>
<string name="error_export_app_properties">เกิดข้อผิดพลาดระหว่างการส่งออกการตั้งค่าของแอป</string>
<string name="menu_appearance_settings">ลักษณะ</string>
<string name="biometric">ไบโอเมตริก</string>
<string name="device_credential">ข้อมูลยืนยันตัวตนของอุปกรณ์</string>
@@ -545,19 +545,19 @@
<string name="unavailable_feature_version">อุปกรณ์นี้เป็น Android %1$s, แต่ต้องการ %2$s ขึ้นไป</string>
<string name="lock_database_screen_off_summary">ล็อกฐานข้อมูลหลังจากปิดหน้าจอในไม่กี่วินาที</string>
<string name="lock_database_back_root_summary">ล็อกฐานข้อมูลเมื่อผู้ใช้กดปุ่มกลับบนหน้ารายการราก</string>
<string name="advanced_unlock_tap_delete">แตะเพื่อลบกุญแจการปลดล็อกขั้นสูง</string>
<string name="advanced_unlock_explanation_summary">ใช้การปลดล็อกขั้นสูงเพื่อปลดล็อกฐานข้อมูลได้ง่ายขึ้น</string>
<string name="advanced_unlock_tap_delete">แตะเพื่อลบกุญแจการปลดล็อกด้วนอุปกรณ์</string>
<string name="advanced_unlock_explanation_summary">ใช้การปลดล็อกด้วยอุปกรณ์เพื่อปลดล็อกฐานข้อมูลได้ง่ายขึ้น</string>
<string name="biometric_unlock_enable_title">การปลดล็อกด้วยไบโอเมตริก</string>
<string name="biometric_auto_open_prompt_title">เปิดหน้ายืนยันอัตโนมัติ</string>
<string name="biometric_auto_open_prompt_summary">เปิดการร้องขอการปลดล็อกขั้นสูงหากได้ตั้งค่าฐานข้อมูลไว้แล้ว</string>
<string name="temp_advanced_unlock_enable_summary">ไม่เก็บเนื้อหาเข้ารหัสใดๆเพื่อใช้กับการปลดล็อกขั้นสูง</string>
<string name="temp_advanced_unlock_timeout_title">ระยะหมดอายุของการปลดล็อกขั้นสูง</string>
<string name="advanced_unlock_timeout">ระยะหมดเวลาของการปลดล็อกขั้นสูง</string>
<string name="advanced_unlock_delete_all_key_warning">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดล็อกขั้นสูง\?</string>
<string name="biometric_auto_open_prompt_summary">เปิดการร้องขอการปลดล็อกด้วยอุปกรณ์หากได้ตั้งค่าฐานข้อมูลไว้แล้ว</string>
<string name="temp_advanced_unlock_enable_summary">ไม่เก็บเนื้อหาเข้ารหัสใดๆเพื่อใช้กับการปลดล็อกด้วยอุปกรณ์</string>
<string name="temp_advanced_unlock_timeout_title">ระยะหมดอายุของการปลดล็อกด้วยอุปกรณ์</string>
<string name="advanced_unlock_timeout">ระยะหมดเวลาของการปลดล็อกด้วยอุปกรณ์</string>
<string name="advanced_unlock_delete_all_key_warning">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดล็อกด้วยอุปกรณ์\?</string>
<string name="unavailable_feature_hardware">ไม่พบอุปกรณ์ที่เกี่ยวข้อง</string>
<string name="biometric_unlock_enable_summary">ให้คุณใช้ไบโอเมตริกเพื่อปลดล็อกฐานข้อมูล</string>
<string name="device_credential_unlock_enable_title">การปลดล็อกด้วยข้อมูลประจำตัว</string>
<string name="temp_advanced_unlock_timeout_summary">ระยะเวลาของการใช้การปลดล็อกขั้นสูงก่อนที่จะลบข้อมูลดังกล่าวออก</string>
<string name="temp_advanced_unlock_timeout_summary">ระยะเวลาของการใช้การปลดล็อกด้วยอุปกรณ์ก่อนที่จะลบข้อมูลดังกล่าวออก</string>
<string name="biometric_delete_all_key_title">ลบกุญแจเข้ารหัส</string>
<string name="database_data_compression_title">การบีบอัดข้อมูล</string>
<string name="advanced_unlock_keystore_warning">ฟีเจอร์นี่จะเก็บข้อมูลประจำตัวที่เข้ารหัสไว้ที่ KeyStore ที่ปลอดภัยในอุปกรณ์ของคุณ
@@ -584,7 +584,7 @@
<string name="monospace_font_fields_enable_summary">เปลี่ยนแบบอักษรที่ใช้ในช่องเขตข้อมูลเพื่อให้มองเห็นตัวอักษรง่ายขึ้น</string>
<string name="allow_copy_password_title">ไว้ใจคลิปบอร์ด</string>
<string name="clear_clipboard_notification_summary">ล็อกฐานข้อมูลเมื่อระยะเวลาในคลิปบอร์ดสิ้นสุดหรือปิดหลังจากคุณเรื่มใช้มันแล้ว</string>
<string name="database_name_title">ชื่อฐานข้อมุ,</string>
<string name="database_name_title">ชื่อฐานข้อมูล</string>
<string name="magic_keyboard_explanation_summary">เปิดใช้งานแป้นพิมพ์แบบพิเศษที่จะสำรวจช่องกรอกรหัสผ่านและข้อมูลอื่นๆ</string>
<string name="allow_copy_password_summary">อนุญาตให้คัดลอกรหัสผ่านและเขตข้อมูลที่ป้องกันไว้เก็บในคลิปบอร์ด</string>
<string name="allow_copy_password_warning">คำเตือน:คลิปบอร์ดถูกใช้ร่วมกันในทุกแอป หากข้อมูลละเอียดอ่อนถูกคัดลอกไป ซอฟท์แวร์อื่นอาจกู้มันกลับมาได้</string>
@@ -592,7 +592,7 @@
<string name="database_custom_color_title">สีของฐานข้อมูลที่กำหนดเอง</string>
<string name="database_version_title">เวอร์ชั่นของฐานข้อมูล</string>
<string name="application_appearance">อินเตอร์เฟซ</string>
<string name="keyboard_selection_entry_summary">เมื่อดูรายการใน KeePassDX, Magikeyboard จะใช้รายการนั้นด้วย</string>
<string name="keyboard_selection_entry_summary">เมื่อดูรายการใน KeePassDX, เมจิคีย์บอร์ด จะใช้รายการนั้นด้วย</string>
<string name="keyboard_save_search_info_summary">พยายามบันทึกข้อมูลที่ใช้ร่วมกันเมื่อเลือกกรอกรายการนั้นด้วยตนเองเพื่อใช้งานในอนาคตง่ายขึ้น</string>
<string name="keyboard_notification_entry_clear_close_summary">ปิดฐานข้อมูลเมื่อปิดการแจ้งเตือน</string>
<string name="text_appearance">ลักษณะตัวหนังสือ</string>
@@ -614,7 +614,7 @@
<string name="autofill_web_domain_blocklist_title">รายการโดเมนเว็บที่บล็อก</string>
<string name="autofill_application_id_blocklist_summary">รายการที่บล็อกเพื่อกันไม่ให้กรอกข้อมูลในแอปอัตโนมัติ</string>
<string name="autofill_web_domain_blocklist_summary">รายการที่บล็อกเพื่อกันไม่ให้กรอกข้อมูลในเว็บอัตโนมัติ</string>
<string name="biometric_delete_all_key_summary">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดลอกขั้นสูง</string>
<string name="biometric_delete_all_key_summary">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดลอกด้วยอุปกรณ์</string>
<string name="autofill_read_only_save">การบันทึกฐานข้อมูลไม่อนุญาตสำหรับฐานข้อมูลที่อ่านอย่างเดียว</string>
<string name="autofill_block_restart">เปิดแอปที่แบบฟอร์มนั้นขั้นมาใหม่เพื่อใช้งานการบล็อก</string>
<string name="autofill_inline_suggestions_keyboard">เพื่มการแนะนำการกรอกอัตโนมัติ</string>
@@ -625,16 +625,16 @@
<string name="reset_education_screens_text">คำแนะนำการใช้งานถูกรีเซ็ทแล้ว</string>
<string name="icon_pack_choose_title">ชุดไอคอน</string>
<string name="enable_auto_save_database_summary">บันทึกฐานข้อมูลหลังจากการกระทำที่สำคัญ(ในโหมด\"แก้ไขได้\")</string>
<string name="enable_keep_screen_on_summary">เปิดหน้าจอไว้ขณะดูรายการ</string>
<string name="enable_keep_screen_on_summary">เปิดหน้าจอไว้ขณะดูหรือแก้ไขรายการ</string>
<string name="enable_screenshot_mode_summary">อนุญาตแอปอื่นๆบันทึกหรือถ่ายภาพหน้าจอแอปนี้</string>
<string name="enable_education_screens_summary">ไฮไลท์องค์ประกอบเพื่อเรียนรู้ว่าแอปใช้ยังไง</string>
<string name="enable_education_screens_title">คำแนะนำการใช้งาน</string>
<string name="education_advanced_unlock_title">การปลดล็อกฐานข้อมูลขั้นสูง</string>
<string name="education_advanced_unlock_title">การปลดล็อกฐานข้อมูลด้วยอุปกรณ์</string>
<string name="education_advanced_unlock_summary">เชื่อมโยงรหัสผ่านกับข้อมูลไบโอเมตริกหรือข้อมูลการเข้าสู่ระบบเพื่อปลดล็อกฐานข้อมูลได้เร็วขึ้น</string>
<string name="education_entry_edit_title">แก้ไขรายการ</string>
<string name="education_entry_edit_summary">แก้ไขรายการด้วยเขตข้อมูลที่กำหนดเอง ข้อมูลสามารถอ้างอิงได้ระหว่างรายการเขตข้อมูลต่างๆ</string>
<string name="education_entry_new_field_summary">กำหนดช่องเขตข้อมูลเพื่มเติม, เพื่มค่าหรือจะเพื่มการป้องกันให้มันด้วยก็ได้</string>
<string name="education_generate_password_summary">สร้างรหัสผ่านที่แข็งแรงเพื่อใช้กับรายการของคุณ ความง่ายในการระบุขึ้นอยู่กับลักษณะแบบฟอร์มนั้น และไม่ลืมรหัสผ่านที่ปลอดภัย</string>
<string name="education_generate_password_summary">สร้างรหัสผ่านที่แข็งแรงเพื่อใช้กับรายการของคุณ ความง่ายในการระบุขึ้นอยู่กับลักษณะแบบฟอร์มนั้น และจงอย่าลืมรหัสผ่านที่ปลอดภัย</string>
<string name="education_add_attachment_summary">อัปโหลดเอกสารแนบไปยังรายการของคุณเพื่อบันทึกข้อมูลภายนอกเพิ่มเติม</string>
<string name="education_setup_OTP_summary">ตั่้งค่ารหัสผ่านแบบใช้ครั้งเดียว (HOTP/TOTP) เพิ่อสร้างโทเค็นสำหรับการยืนยันสองขั้นตอน (2FA)</string>
<string name="education_field_copy_title">คัดลอกเขตข้อมูล</string>
@@ -652,4 +652,15 @@
<string name="ask">ถาม</string>
<string name="warning_copy_permission">ต้องการสิทธิ์การแจ้งเตือนสำหรับคุณสมบัติการแจ้งเตือนของคลิปบอร์ด</string>
<string name="later">ภายหลัง</string>
<string name="unlock">ปลดล็อก</string>
<string name="master_key_settings_summary">เปลี่ยน, รอบการเปลี่ยน</string>
<string name="info">ข้อมูล</string>
<string name="education_validate_entry_title">ตรวจสอบรายการ</string>
<string name="menu_form_filling_settings_summary">คีย์บอร์ด, การกรอกข้อมูลอัตโนมัติ, คลิปบอร์ด</string>
<string name="configure">การกำหนดค่า</string>
<string name="menu_appearance_settings_summary">ธีม, สี, คุณสมบัติ</string>
<string name="menu_security_settings_summary">การเข้ารหัส, ฟังก์ชั่นการแลกเปลี่ยนกุญแจ</string>
<string name="menu_advanced_unlock_settings_summary">ไบโอเมตริก, ข้อมูลประจำตัวของอุปกรณ์</string>
<string name="menu_database_settings_summary">เมตาดาต้า, ถังขยะ, แม่แบบ, ประวัติ</string>
<string name="menu_app_settings_summary">การค้นหา, การล็อก, ประวัติ, ค่ากำหนด</string>
</resources>

View File

@@ -128,8 +128,8 @@
<string name="never">Asla</string>
<string name="no_results">Arama sonucu bulunamadı</string>
<string name="no_url_handler">Bu URL\'u açmak için bir web tarayıcısı yükleyin.</string>
<string name="select_database_file">Mevcut veri tabanını</string>
<string name="create_keepass_file">Yeni veri tabanı oluştur</string>
<string name="select_database_file">Mevcut kasayı</string>
<string name="create_keepass_file">Yeni kasa oluştur</string>
<string name="progress_create">Yeni veri tabanı oluşturuluyor…</string>
<string name="progress_title">Çalışıyor…</string>
<string name="protection">Koruma</string>
@@ -189,11 +189,11 @@
<string name="lock">Kilit</string>
<string name="lock_database_screen_off_title">Ekran kilidi</string>
<string name="lock_database_screen_off_summary">Ekran kapandığında birkaç saniye sonra veri tabanını kilitle</string>
<string name="advanced_unlock">Gelişmiş kilitma</string>
<string name="advanced_unlock">Cihaz kilidini</string>
<string name="biometric_unlock_enable_title">Biyometrik kilit açma</string>
<string name="biometric_unlock_enable_summary">Veri tabanını açmak için biyometriklerinizi taramanızı sağlar</string>
<string name="biometric_delete_all_key_title">Şifreleme anahtarlarını silin</string>
<string name="biometric_delete_all_key_summary">Gelişmiş kilit açma tanıma ile ilgili tüm şifreleme anahtarlarını silin</string>
<string name="biometric_delete_all_key_summary">Cihaz kilit açma tanımayla ilgili tüm şifreleme anahtarlarını silin</string>
<string name="unavailable_feature_text">Bu özellik başlatılamadı.</string>
<string name="unavailable_feature_version">Aygıtta Android %1$s çalışıyor, ancak %2$s veya sonraki bir sürüm gerekli.</string>
<string name="unavailable_feature_hardware">İlgili donanım bulunamadı.</string>
@@ -240,9 +240,9 @@
<string name="enable_read_only_summary">Veri tabanını öntanımlı olarak salt okunur aç</string>
<string name="enable_education_screens_title">Eğitim ipuçları</string>
<string name="enable_education_screens_summary">Uygulamanın nasıl çalıştığını öğrenmek için ögeleri vurgulayın</string>
<string name="reset_education_screens_title">Eğitim ipuçlarını sıfırla</string>
<string name="reset_education_screens_title">Eğitici ipuçlarını sıfırla</string>
<string name="reset_education_screens_summary">Tüm eğitim bilgilerini tekrar göster</string>
<string name="reset_education_screens_text">Eğitim ipuçlarını sıfırla</string>
<string name="reset_education_screens_text">Eğitici ipuçlarını sıfırla</string>
<string name="education_create_database_title">Veri tabanı dosyanızı oluşturun</string>
<string name="education_create_database_summary">İlk parola yönetim dosyanızı oluşturun.</string>
<string name="education_select_database_title">Mevcut bir veri tabanınıın</string>
@@ -329,10 +329,10 @@
<string name="content_description_update_from_list">Güncelle</string>
<string name="content_description_keyboard_close_fields">Alanları kapat</string>
<string name="error_create_database_file">Bu parola ve anahtar dosyası ile veri tabanı oluşturulamıyor.</string>
<string name="menu_advanced_unlock_settings">Gelişmiş kilitma</string>
<string name="menu_advanced_unlock_settings">Cihaz kilidini</string>
<string name="biometric">Biyometrik</string>
<string name="biometric_auto_open_prompt_title">Otomatik açma istemi</string>
<string name="biometric_auto_open_prompt_summary">Vari tabanı onu kullanacak biçimde ayarlandıysa otomatik olarak gelişmiş kilit açma isteğinde bulun</string>
<string name="biometric_auto_open_prompt_summary">Veritabanı onu kullanacak şekilde ayarlanmışsa cihazın kilidini otomatik olarak talep et</string>
<string name="enable">Etkinleştir</string>
<string name="disable">Devre dışı</string>
<string name="master_key">Ana anahtar</string>
@@ -361,7 +361,7 @@
<string name="contains_duplicate_uuid_procedure">Tekrarlananlar için yeni UUID\'ler oluşturarak sorunu çöz ve devam et\?</string>
<string name="database_opened">Veri tabanııldı</string>
<string name="clipboard_explanation_summary">Aygıtınızın panosunu kullanarak girdi alanlarını kopyalayın</string>
<string name="advanced_unlock_explanation_summary">Veri tabanını daha kolay açmak için gelişmiş kilit açma özelliğini kullan</string>
<string name="advanced_unlock_explanation_summary">Bir veritabanını daha kolay açmak için cihazın kilidini açmayı kullanın</string>
<string name="database_data_compression_title">Veri sıkıştırma</string>
<string name="database_data_compression_summary">Veri sıkıştırma veri tabanı boyutunu azaltır</string>
<string name="max_history_items_title">Azami sayı</string>
@@ -439,7 +439,7 @@
<string name="error_string_type">Bu metin istenen ögeyle eşleşmiyor.</string>
<string name="content_description_add_item">Öge ekle</string>
<string name="keyboard_previous_fill_in_summary">\"Otomatik tuş eylemini\" gerçekleştirdikten sonra otomatik olarak önceki klavyeye dön</string>
<string name="keyboard_previous_fill_in_title">Otomatik tuş eylemi</string>
<string name="keyboard_previous_fill_in_title">Geri dön</string>
<string name="keyboard_previous_database_credentials_summary">Veri tabanı kimlik bilgileri ekranında otomatik olarak önceki klavyeye dön</string>
<string name="keyboard_previous_database_credentials_title">Veri tabanı kimlik bilgileri ekranı</string>
<string name="keyboard_change">Klavye değiştir</string>
@@ -464,13 +464,13 @@
<string name="autofill_read_only_save">Salt okunur olarak açılan bir veri tabanı için veri kaydına izin verilmiyor.</string>
<string name="autofill_ask_to_save_data_summary">Form doldurma işlemi tamamlandığında verileri kaydetmek için sor</string>
<string name="autofill_ask_to_save_data_title">Verileri kaydetmek için sor</string>
<string name="autofill_save_search_info_summary">İleride daha kolay kullanım için elle girdi seçimi yaparken arama bilgilerini kaydetmeyi dene</string>
<string name="autofill_save_search_info_summary">Gelecekteki daha kolay kullanımlar için el ile giriş seçimi yaparken arama bilgilerini kaydetmeyi deneyin</string>
<string name="autofill_save_search_info_title">Arama bilgilerini kaydet</string>
<string name="autofill_close_database_summary">Otomatik doldurma seçiminden sonra veri tabanını kapat</string>
<string name="autofill_close_database_title">Veri tabanını kapat</string>
<string name="keyboard_previous_lock_summary">Veri tabanını kilitledikten sonra otomatik olarak önceki klavyeye dön</string>
<string name="keyboard_previous_lock_title">Veri tabanını kilitle</string>
<string name="keyboard_save_search_info_summary">İleride daha kolay kullanım için elle girdi seçimi yaparken arama bilgilerini kaydetmeyi dene</string>
<string name="keyboard_save_search_info_summary">Gelecekteki daha kolay kullanımlar için el ile giriş seçimi yaparken paylaşılan bilgileri kaydetmeyi deneyin</string>
<string name="keyboard_save_search_info_title">Paylaşılan bilgileri kaydet</string>
<string name="notification">Bildirim</string>
<string name="biometric_security_update_required">Biyometrik güvenlik güncellemesi gerekli.</string>
@@ -481,34 +481,34 @@
<string name="search_mode">Arama modu</string>
<string name="error_registration_read_only">Salt okunur bir veri tabanında yeni bir öge kaydetmeye izin verilmiyor</string>
<string name="error_field_name_already_exists">Alan adı zaten var.</string>
<string name="advanced_unlock_delete_all_key_warning">Gelişmiş kilit açma tanıma ile ilgili tüm şifreleme anahtarları silinsin mi\?</string>
<string name="advanced_unlock_delete_all_key_warning">Cihaz kilit açma tanımayla ilgili tüm şifreleme anahtarları silinsin mi\?</string>
<string name="device_credential_unlock_enable_summary">Veri tabanını açmak için aygıt kimlik bilgilerinizi kullanmanıza olanak tanır</string>
<string name="device_credential_unlock_enable_title">Aygıt kimlik bilgisiyle kilit açma</string>
<string name="device_credential">Aygıt kimlik bilgileri</string>
<string name="credential_before_click_advanced_unlock_button">Parolayı yazın ve ardından bu düğmeye tıklayın.</string>
<string name="advanced_unlock_prompt_not_initialized">Gelişmiş kilit açma istemi başlatılamıyor.</string>
<string name="unavailable">Bu veri tabanında henüz saklanmış kimlik bilgisi yok.</string>
<string name="advanced_unlock_scanning_error">Gelişmiş kilit açma hatası: %1$s</string>
<string name="advanced_unlock_not_recognized">Gelişmiş kilit açma parmak izi tanınamadı</string>
<string name="advanced_unlock_invalid_key">Gelişmiş kilit açma anahtarı okunamıyor. Lütfen silin ve kilit açma tanıma işlemini tekrarlayın.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Veri tabanı kimlik bilgilerini gelişmiş kilit açma özelliğiyle çıkarın</string>
<string name="advanced_unlock_prompt_extract_credential_title">Veri tabanını gelişmiş kilit açma tanıma ile aç</string>
<string name="advanced_unlock_prompt_store_credential_message">Gelişmiş kilit açma tanıma kullanırsanız, yine de ana kimlik bilgilerinizi hatırlamanız gerekmektedir.</string>
<string name="advanced_unlock_prompt_store_credential_title">Gelişmiş kilit açma tanıma</string>
<string name="menu_keystore_remove_key">Gelişmiş kilit açma anahtarını sil</string>
<string name="advanced_unlock_prompt_not_initialized">Cihaz kilit açma istemi başlatılamıyor.</string>
<string name="unavailable">Kullanım dışı</string>
<string name="advanced_unlock_scanning_error">Cihaz kilit açma hatası: %1$s</string>
<string name="advanced_unlock_not_recognized">Cihaz kilit açma parmak izi tanınamadı</string>
<string name="advanced_unlock_invalid_key">Cihazın kilit açma anahtarı okunamıyor. Lütfen silin ve kilit açma tanıma prosedürünü tekrarlayın.</string>
<string name="advanced_unlock_prompt_extract_credential_message">Cihaz kilit açma verileriyle veritabanı kimlik bilgilerini çıkarın</string>
<string name="advanced_unlock_prompt_extract_credential_title">Cihaz kilidini tanıma</string>
<string name="advanced_unlock_prompt_store_credential_message">Cihaz kilit açma tanımayı kullanıyorsanız kasa ana kimlik bilgilerinizi yine de hatırlamanız gerekir.</string>
<string name="advanced_unlock_prompt_store_credential_title">Cihaz kilidini açma bağlantısı</string>
<string name="menu_keystore_remove_key">Cihaz kilit açma anahtarını sil</string>
<string name="enter">Enter</string>
<string name="backspace">Backspace</string>
<string name="select_entry">Girdi seç</string>
<string name="back_to_previous_keyboard">Önceki klavyeye geri dön</string>
<string name="custom_fields">Özel alanlar</string>
<string name="education_advanced_unlock_summary">Veri tabanınızın kilidini hızlı bir şekilde açmak için parolanızı taranmış biyometrik veya aygıt kimlik bilgilerinize bağlayın.</string>
<string name="education_advanced_unlock_title">Gelişmiş veri tabanı kilidi açma</string>
<string name="advanced_unlock_timeout">Gelişmiş kilit açma zaman aşımı</string>
<string name="temp_advanced_unlock_timeout_summary">İçeriğini silmeden önce gelişmiş kilit açma kullanımının süresi</string>
<string name="temp_advanced_unlock_timeout_title">Gelişmiş kilit açma süre sonu</string>
<string name="temp_advanced_unlock_enable_summary">Gelişmiş kilit açmayı kullanmak için herhangi bir şifrelenmiş içeriği saklama</string>
<string name="temp_advanced_unlock_enable_title">Geçici gelişmiş kilit açma</string>
<string name="advanced_unlock_tap_delete">Gelişmiş kilit açma anahtarlarını silmek için dokunun</string>
<string name="education_advanced_unlock_title">Cihaz veritabanı kilidini açma</string>
<string name="advanced_unlock_timeout">Cihaz kilidini açma zaman aşımı</string>
<string name="temp_advanced_unlock_timeout_summary">İçeriğini silmeden önce cihazın kilit açma kullanım süresi</string>
<string name="temp_advanced_unlock_timeout_title">Cihaz kilidini açma süresi doldu</string>
<string name="temp_advanced_unlock_enable_summary">Cihaz kilidini açmak için şifrelenmiş içerik saklamayın</string>
<string name="temp_advanced_unlock_enable_title">Geçici kilit açma</string>
<string name="advanced_unlock_tap_delete">Cihaz kilit açma anahtarlarını silmek için dokunun</string>
<string name="content">İçerik</string>
<string name="error_rebuild_list">Liste düzgün şekilde yeniden oluşturulamıyor.</string>
<string name="error_database_uri_null">Veri tabanı URI\'si alınamıyor.</string>
@@ -535,15 +535,15 @@
<string name="error_remove_file">Dosya verilerini kaldırırken bir hata oluştu.</string>
<string name="error_duplicate_file">Dosya verileri zaten var.</string>
<string name="properties">Özellikler</string>
<string name="error_export_app_properties">Uygulama özelliklerini dışa aktarma sırasında hata oluştu</string>
<string name="error_import_app_properties">Uygulama özelliklerini içe aktarma sırasında hata oluştu</string>
<string name="success_export_app_properties">Uygulama özellikleri dışa aktarıldı</string>
<string name="success_import_app_properties">Uygulama özellikleri içe aktarıldı</string>
<string name="error_export_app_properties">Uygulama ayarlarının dışa aktarımı sırasında hata</string>
<string name="error_import_app_properties">Uygulama ayarlarını içe aktarırken hata oluştu</string>
<string name="success_export_app_properties">Uygulama ayarları dışa aktarıldı</string>
<string name="success_import_app_properties">Uygulama ayarları içe aktarıldı</string>
<string name="description_app_properties">Uygulama ayarlarını yönetmek için KeePassDX özellikleri</string>
<string name="export_app_properties_summary">Uygulama özelliklerini dışa aktarmak için bir dosya oluşturun</string>
<string name="export_app_properties_title">Uygulama özelliklerini dışa aktar</string>
<string name="import_app_properties_summary">Uygulama özelliklerini içe aktarmak için bir dosya seçin</string>
<string name="import_app_properties_title">Uygulama özelliklerini içe aktar</string>
<string name="export_app_properties_summary">Uygulama ayarlarını dışa aktarmak için bir dosya oluşturun</string>
<string name="export_app_properties_title">Uygulama ayarlarını dışa aktar</string>
<string name="import_app_properties_summary">Uygulama ayarlarını içe aktarmak için bir dosya seçin</string>
<string name="import_app_properties_title">Uygulama ayarlarını içe aktar</string>
<string name="error_start_database_action">Veri tabanında bir eylem gerçekleştirilirken bir hata oluştu.</string>
<string name="error_move_group_here">Bir grubu buraya taşıyamazsınız.</string>
<string name="error_word_reserved">Bu sözcük ayrılmıştır ve kullanılamaz.</string>
@@ -600,7 +600,7 @@
<string name="enable_keep_screen_on_title">Ekranıık tut</string>
<string name="show_entry_colors_title">Girdi renkleri</string>
<string name="show_entry_colors_summary">Bir girdi için ön plan ve arka plan renklerini görüntüler</string>
<string name="enable_keep_screen_on_summary">Girdiyi izlerken ekranıık tutun</string>
<string name="enable_keep_screen_on_summary">Bir girişi izlerken veya düzenlerken ekranıık tutun</string>
<string name="content_description_nav_header">Gezinme başlığı</string>
<string name="navigation_drawer_open">Gezinme çekmecesi açık</string>
<string name="navigation_drawer_close">Gezinme çekmecesi kapalı</string>
@@ -662,4 +662,25 @@
<string name="enable_screenshot_mode_summary">Üçüncü taraf uygulamaların uygulamanın ekran görüntülerini kaydetmesine veya almasına izin verin</string>
<string name="screenshot_mode_banner_text">Ekran görüntüsü modu</string>
<string name="merge_success">Birleştirme başarıyla tamamlandı</string>
<string name="unlock">Kilidi aç</string>
<string name="master_key_settings_summary">Değişim, yenilenme</string>
<string name="info">Bilgi</string>
<string name="education_validate_entry_title">Girişi doğrula</string>
<string name="ask">Sor</string>
<string name="menu_form_filling_settings_summary">Klavye, otomatik doldur, pano</string>
<string name="configure">Yapılandır</string>
<string name="menu_appearance_settings_summary">Temalar, renkler, öznitellikler</string>
<string name="menu_security_settings_summary">Şifreleme, anahtar türetme işlevi</string>
<string name="menu_advanced_unlock_settings_summary">Biyometri, cihaz kimlik bilgisi</string>
<string name="education_validate_entry_summary">Girişinizi doğrulamayı ve veritabanınızı kaydetmeyi unutmayın.
\n
\nOtomatik kilitleme etkinleştirilirse ve değişiklik yaptığınızı unutursanız verilerinizi kaybetme riskiyle karşı karşıya kalırsınız.</string>
<string name="warning_database_notification_permission">Bildirim izni, veritabanının durumunu görüntülemenize ve kolayca erişilebilen bir düğmeyle kilitlemenize olanak tanır.
\n
\nBu izni aktifleştirmezseniz arka planda açık olan veritabanı, ön planda başka bir uygulama varken görünmeyecektir.</string>
<string name="unlock_and_link_biometric">Cihaz kilit açma bağlantısı</string>
<string name="warning_copy_permission">Pano bildirim özelliğini kullanmak için bildirim izni gereklidir.</string>
<string name="menu_database_settings_summary">Meta veriler, geri dönüşüm kutusu, şablonlar, geçmiş</string>
<string name="menu_app_settings_summary">Ara, kilit, geçmiş, özellikler</string>
<string name="later">Daha Sonra</string>
</resources>

View File

@@ -540,15 +540,15 @@
<string name="error_remove_file">Сталася помилка під час вилучення даних файлу.</string>
<string name="error_duplicate_file">Дані файлу вже існують.</string>
<string name="properties">Властивості</string>
<string name="error_export_app_properties">Помилка під час експортування властивостей застосунку</string>
<string name="success_export_app_properties">Властивості застосунку експортовано</string>
<string name="error_import_app_properties">Помилка під час імпортування властивостей застосунку</string>
<string name="success_import_app_properties">Властивості застосунку імпортовано</string>
<string name="error_export_app_properties">Помилка під час експорту налаштувань застосунку</string>
<string name="success_export_app_properties">Налаштування застосунку експортовано</string>
<string name="error_import_app_properties">Помилка під час імпорту налаштувань застосунку</string>
<string name="success_import_app_properties">Налаштування застосунку імпортовано</string>
<string name="description_app_properties">Властивості KeePassDX для керування налаштування застосунку</string>
<string name="export_app_properties_summary">Створити файл для експорту властивостей застосунку</string>
<string name="export_app_properties_title">Експорт властивостей застосунку</string>
<string name="import_app_properties_summary">Виберіть файл для імпорту властивостей застосунку</string>
<string name="import_app_properties_title">Імпорт властивостей застосунку</string>
<string name="export_app_properties_summary">Створити файл для експорту налаштувань застосунку</string>
<string name="export_app_properties_title">Експорт налаштувань застосунку</string>
<string name="import_app_properties_summary">Виберіть файл для імпорту налаштувань застосунку</string>
<string name="import_app_properties_title">Імпорт налаштувань застосунку</string>
<string name="error_start_database_action">Під час виконання дії з базою даних сталася помилка.</string>
<string name="error_move_group_here">Ви не можете перемістити групу сюди.</string>
<string name="error_word_reserved">Це слово зарезервоване, його не можна використовувати.</string>

View File

@@ -35,6 +35,11 @@
<item name="android:elevation">0dp</item>
</style>
<!-- Action Style -->
<style name="KeepassDXStyle.Toolbar.Action" parent="KeepassDXStyle.Toolbar">
<item name="android:backgroundTint">@color/surface_selector</item>
</style>
<!-- Preference Theme -->
<style name="KeepassDXStyle.Preference.Theme" parent="@style/PreferenceThemeOverlay">
<item name="android:tint">?attr/colorOnSurface</item>

View File

@@ -20,12 +20,10 @@
<resources>
<style name="KeepassDXStyle.Light.v23" parent="KeepassDXStyle.Light.v21" >
<item name="android:statusBarColor">?attr/colorSurface</item>
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="KeepassDXStyle.Night.v23" parent="KeepassDXStyle.Night.v21" >
<item name="android:statusBarColor">?attr/colorSurface</item>
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightStatusBar">false</item>
</style>
</resources>

View File

@@ -21,9 +21,11 @@
<style name="KeepassDXStyle.Light.v27" parent="KeepassDXStyle.Light.v23" >
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
<style name="KeepassDXStyle.Night.v27" parent="KeepassDXStyle.Night.v23" >
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
</resources>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="file_manager_install_description">Cần có một trình duyệt tập tin chấp nhận hành động chủ đích ACTION_CREATE_DOCUMENT và ACTION_OPEN_DOCUMENT để tạo, mở, và lưu tệp tin chứa cơ sở dữ liệu.</string>
<string name="error_load_database">Không thể tải cơ sở dữ liệu của bạn.</string>
<string name="error_load_database">Không thể tải cơ sở dữ liệu.</string>
<string name="error_out_of_memory">Không đủ bộ nhớ để tải toàn bộ cơ sở dữ liệu của bạn.</string>
<string name="error_nokeyfile">Chọn một tệp chứa khoá.</string>
<string name="error_no_name">Nhập tên.</string>
@@ -51,17 +51,17 @@
<string name="entry_add_field">Thêm trường</string>
<string name="content_description_password_length">Độ dài mật khẩu</string>
<string name="entry_password_generator">Trình tạo mật khẩu</string>
<string name="discard">Xoá</string>
<string name="discard">Loại bỏ</string>
<string name="discard_changes">Huỷ thay đổi\?</string>
<string name="validate">Xác nhận</string>
<string name="content_description_entry_icon">Biểu tượng của mục</string>
<string name="content_description_keyfile_checkbox">Ô đánh dấu tệp tin chứa khoá</string>
<string name="content_description_entry_icon">Biểu tượng của mục nhập</string>
<string name="content_description_keyfile_checkbox">Hộp kiểm tệp khóa</string>
<string name="content_description_password_checkbox">Ô đánh dấu mật khẩu</string>
<string name="content_description_otp_information">Thông tin về mật khẩu dùng một lần</string>
<string name="content_description_credentials_information">Thông tin định danh</string>
<string name="content_description_file_information">Thông tin tệp tin</string>
<string name="content_description_add_group">Thêm nhóm</string>
<string name="content_description_add_entry">Thêm mục</string>
<string name="content_description_add_entry">Thêm mục nhập</string>
<string name="content_description_add_node">Thêm nút</string>
<string name="content_description_node_children">Nút con</string>
<string name="content_description_open_file">Mở tệp tin</string>
@@ -76,14 +76,14 @@
<string name="brackets">Dấu ngoặc</string>
<string name="application">Ứng dụng</string>
<string name="app_timeout_summary">Thời gian không hoạt động trước khi khoá cơ sở dữ liệu</string>
<string name="key_derivation_function">Hàm tạo khoá</string>
<string name="key_derivation_function">Hàm khóa phái sinh</string>
<string name="encryption_algorithm">Thuật toánmã hoá</string>
<string name="encryption">Mã hoá</string>
<string name="security">Bảo mật</string>
<string name="master_key">Khoá chính</string>
<string name="master_key">Chìa khoá chính</string>
<string name="add_group">Thêm nhóm</string>
<string name="edit_entry">Sửa mục</string>
<string name="add_entry">Thêm mục</string>
<string name="edit_entry">Sửa mục nhập</string>
<string name="add_entry">Thêm mục nhập</string>
<string name="accept">Đồng ý</string>
<string name="about_description">Phiên bản Android của phần mềm quản lý mật khẩu KeePass</string>
<string name="homepage">Trang chủ</string>
@@ -158,7 +158,7 @@
<string name="invalid_algorithm">Sai thuật toán.</string>
<string name="invalid_db_sig">Không đọc được định dạng cơ sở dữ liệu.</string>
<string name="no_url_handler">Hãy cài đặt trình duyệt web để mở đường dẫn này.</string>
<string name="select_database_file">Mở cơ sở dữ liệu có sẵn</string>
<string name="select_database_file">Mở két sắt có sẵn</string>
<string name="lowercase">Chữ thường</string>
<string name="hide_password_title">Ẩn mật khẩu</string>
<string name="error_upload_file">Có lỗi xảy ra khi tải dữ liệu từ tệp lên.</string>
@@ -172,4 +172,64 @@
<string name="menu_open">Mở</string>
<string name="menu_open_file_read_and_write">Có thể sửa</string>
<string name="hide_password_summary">Mặc định che mật khẩu (***)</string>
<string name="auto_type">Tự động gõ</string>
<string name="inherited">Kế tục</string>
<string name="hide_expired_entries_summary">Các mục đã hết hạn không được hiển thị</string>
<string name="consider_chars_filter">Xem xét các ký tự</string>
<string name="exclude_ambiguous_chars">Loại trừ các ký tự không rõ ràng</string>
<string name="style_choose_title">Chủ đề ứng dụng</string>
<string name="unit_gibibyte">GiB</string>
<string name="info">Thông tin</string>
<string name="content_description_entry_background_color">Màu nền mục nhập</string>
<string name="unit_kibibyte">KiB</string>
<string name="custom_data">Dữ liệu tùy chỉnh</string>
<string name="tags">Thẻ</string>
<string name="style_brightness_summary">Chọn chủ đề sáng hoặc tối</string>
<string name="hardware_key">Khóa phần cứng</string>
<string name="ignore_chars_filter">Bỏ qua các ký tự</string>
<string name="searchable">Có thể tìm kiếm</string>
<string name="download_complete">Hoàn thành!</string>
<string name="html_text_dev_feature_thanks">Cảm ơn rất nhiều vì sự đóng góp của bạn.</string>
<string name="style_choose_summary">Chủ đề được sử dụng trong ứng dụng</string>
<string name="style_brightness_title">Độ sáng chủ đề</string>
<string name="html_about_privacy">&lt;strong&gt;Không có dữ liệu người dùng nào được truy xuất&lt;/strong&gt;, ứng dụng này không kết nối với bất kỳ máy chủ nào, chỉ hoạt động cục bộ và hoàn toàn tôn trọng quyền riêng tư của người dùng.</string>
<string name="content_description_entry_foreground_color">Màu nền trước mục nhập</string>
<string name="content_description_hardware_key_checkbox">Hộp kiểm khóa phần cứng</string>
<string name="at_least_one_char">Ít nhất một ký tự từ mỗi ký tự</string>
<string name="lower_case">chữ thường</string>
<string name="screenshot_mode_banner_text">Chế độ chụp màn hình</string>
<string name="case_sensitive">Phân biệt chữ hoa chữ thường</string>
<string name="icon_section_custom">Tùy chỉnh</string>
<string name="content_description_passphrase_word_count">Số từ cụm mật khẩu</string>
<string name="regex">Biểu thức chính quy</string>
<string name="show_entry_colors_title">Màu mục nhập</string>
<string name="download_canceled">Đã hủy!</string>
<string name="icon_section_standard">Tiêu chuẩn</string>
<string name="education_entry_edit_title">Chỉnh sửa mục nhập</string>
<string name="expired">Hết hạn</string>
<string name="waiting_challenge_request">Đang chờ yêu cầu thử thách…</string>
<string name="search_filters">Bộ lọc tìm kiếm</string>
<string name="education_advanced_unlock_title">Đang mở khóa cơ sở dữ liệu thiết bị</string>
<string name="current_group">Nhóm hiện tại</string>
<string name="auto_type_sequence">Trình tự nhập tự động</string>
<string name="word_separator">Dấu phân cách</string>
<string name="waiting_challenge_response">Chờ phản hồi thử thách…</string>
<string name="wireless">Wi-Fi</string>
<string name="hide_expired_entries_title">Ẩn các mục đã hết hạn</string>
<string name="show_entry_colors_summary">Hiển thị màu nền trước và nền sau cho một mục nhập</string>
<string name="icon_pack_choose_summary">Gói biểu tượng được sử dụng trong ứng dụng</string>
<string name="content_description_database_color">Màu cơ sở dữ liệu</string>
<string name="character_count">Số ký tự: %1$d</string>
<string name="unit_byte">B</string>
<string name="unit_mebibyte">MiB</string>
<string name="upper_case">CHỮ HOA</string>
<string name="error_no_hardware_key">Chọn một khóa phần cứng.</string>
<string name="icon_pack_choose_title">Bộ biểu tượng</string>
<string name="keyboard_notification_entry_title">Thông tin thông báo</string>
<string name="keyboard_setting_label">Cài đặt Magikeyboard</string>
<string name="keyboard_selection_entry_summary">Khi xem một mục trong KeePassDX, hãy điền Magikeyboard với mục đó</string>
<string name="download_finalization">Đang hoàn thiện…</string>
<string name="keyboard_notification_entry_summary">Hiển thị thông báo khi mục nhập có sẵn</string>
<string name="keyboard_entry_category">Mục</string>
<string name="keyboard_save_search_info_title">Lưu thông tin được chia sẻ</string>
</resources>

View File

@@ -540,15 +540,15 @@
<string name="error_remove_file">删除文件数据时发生了一个错误。</string>
<string name="error_duplicate_file">文件数据已存在。</string>
<string name="properties">属性</string>
<string name="error_export_app_properties">导出应用配置时出错</string>
<string name="success_export_app_properties">已导出应用</string>
<string name="error_import_app_properties">导入应用配置时出错</string>
<string name="success_import_app_properties">已导入应用</string>
<string name="error_export_app_properties">导出应用设置期间出错</string>
<string name="success_export_app_properties">已导出应用</string>
<string name="error_import_app_properties">导入应用设置期间出错</string>
<string name="success_import_app_properties">已导入应用</string>
<string name="description_app_properties">管理应用设置的 KeePassDX 配置</string>
<string name="export_app_properties_summary">创建一个文件导出应用</string>
<string name="export_app_properties_title">导出</string>
<string name="import_app_properties_summary">选择一个文件导入应用</string>
<string name="import_app_properties_title">导入</string>
<string name="export_app_properties_summary">创建文件导出应用</string>
<string name="export_app_properties_title">导出应用设</string>
<string name="import_app_properties_summary">选择一个文件导入应用</string>
<string name="import_app_properties_title">导入应用设</string>
<string name="error_start_database_action">对数据库执行操作时发生了一个错误。</string>
<string name="error_move_group_here">你不能把一个组移动到此处。</string>
<string name="error_word_reserved">这个单词是保留的,不能使用。</string>

View File

@@ -335,7 +335,7 @@
<color name="simple_theme_light_onPrimary">@color/white</color>
<color name="simple_theme_light_primaryContainer">@color/blue_deep</color>
<color name="simple_theme_light_onPrimaryContainer">@color/white_darkest</color>
<color name="simple_theme_light_secondary">@color/blue_deep</color>
<color name="simple_theme_light_secondary">#4F91FF</color>
<color name="simple_theme_light_onSecondary">@color/white</color>
<color name="simple_theme_light_secondaryContainer">#B9DFFF</color>
<color name="simple_theme_light_onSecondaryContainer">#151B2C</color>
@@ -545,7 +545,7 @@
<color name="reply_theme_light_onPrimary">#232F34</color>
<color name="reply_theme_light_primaryContainer">#F9AA33</color>
<color name="reply_theme_light_onPrimaryContainer">#232F34</color>
<color name="reply_theme_light_secondary">#FF9A00</color>
<color name="reply_theme_light_secondary">#E6900A</color>
<color name="reply_theme_light_onSecondary">#232F34</color>
<color name="reply_theme_light_secondaryContainer">#3E5560</color>
<color name="reply_theme_light_onSecondaryContainer">#F6F8FA</color>
@@ -579,7 +579,7 @@
<color name="reply_theme_night_onPrimary">#232F34</color>
<color name="reply_theme_night_primaryContainer">#F9AA33</color>
<color name="reply_theme_night_onPrimaryContainer">#232F34</color>
<color name="reply_theme_night_secondary">#FF9A00</color>
<color name="reply_theme_night_secondary">#DC8400</color>
<color name="reply_theme_night_onSecondary">#232F34</color>
<color name="reply_theme_night_secondaryContainer">#2D3E45</color>
<color name="reply_theme_night_onSecondaryContainer">#F6F8FA</color>
@@ -615,7 +615,7 @@
<color name="purple_theme_light_onPrimary">@color/white</color>
<color name="purple_theme_light_primaryContainer">@color/red</color>
<color name="purple_theme_light_onPrimaryContainer">@color/white</color>
<color name="purple_theme_light_secondary">@color/red</color>
<color name="purple_theme_light_secondary">#A34296</color>
<color name="purple_theme_light_onSecondary">@color/white</color>
<color name="purple_theme_light_secondaryContainer">#8449A8</color>
<color name="purple_theme_light_onSecondaryContainer">@color/white</color>
@@ -649,7 +649,7 @@
<color name="purple_theme_night_onPrimary">@color/white_purple_light</color>
<color name="purple_theme_night_primaryContainer">@color/red_dark</color>
<color name="purple_theme_night_onPrimaryContainer">@color/white</color>
<color name="purple_theme_night_secondary">@color/red</color>
<color name="purple_theme_night_secondary">#8A3C80</color>
<color name="purple_theme_night_onSecondary">@color/white_purple_light</color>
<color name="purple_theme_night_secondaryContainer">#4C186A</color>
<color name="purple_theme_night_onSecondaryContainer">#DED1E8</color>

View File

@@ -320,15 +320,15 @@
<string name="show_recent_files_summary">Show locations of recent databases</string>
<string name="hide_broken_locations_title">Hide broken database links</string>
<string name="hide_broken_locations_summary">Hide broken links in the list of recent databases</string>
<string name="import_app_properties_title">Import app properties</string>
<string name="import_app_properties_summary">Select a file to import app properties</string>
<string name="export_app_properties_title">Export app properties</string>
<string name="export_app_properties_summary">Create a file to export app properties</string>
<string name="import_app_properties_title">Import app settings</string>
<string name="import_app_properties_summary">Select a file to import app settings</string>
<string name="export_app_properties_title">Export app settings</string>
<string name="export_app_properties_summary">Create a file to export app settings</string>
<string name="description_app_properties">KeePassDX properties to manage app settings</string>
<string name="success_import_app_properties">App properties imported</string>
<string name="error_import_app_properties">Error during app properties importation</string>
<string name="success_export_app_properties">App properties exported</string>
<string name="error_export_app_properties">Error during app properties exportation</string>
<string name="success_import_app_properties">App settings imported</string>
<string name="error_import_app_properties">Error during app settings import</string>
<string name="success_export_app_properties">App settings exported</string>
<string name="error_export_app_properties">Error during app settings export</string>
<string name="root">Root</string>
<string name="encryption_explanation">Database encryption algorithm used for all data</string>
<string name="kdf_explanation">To generate the key for the encryption algorithm, the master key is transformed using a randomly salted key derivation function.</string>
@@ -454,7 +454,7 @@
<string name="biometric_delete_all_key_title">Delete encryption keys</string>
<string name="biometric_delete_all_key_summary">Delete all encryption keys related to device unlock recognition</string>
<string name="advanced_unlock_delete_all_key_warning">Delete all encryption keys related to device unlock recognition?</string>
<string name="advanced_unlock_keystore_warning">This feature will store encrypted credential data in the secure KeyStore of your device.\n\nDepending on the native API implementation of the operating system, it may not be fully functional.\nCheck the compatibility and security of the KeyStore with the manufacturer of your device and the creator of the ROM you are using.</string>
<string name="advanced_unlock_keystore_warning">This feature will store encrypted credential data in the secure KeyStore of your device.\n\nDepending on the native API implementation of the operating system, it may not be fully functional.\n\nCheck the compatibility and security of the KeyStore with the manufacturer of your device and the creator of the ROM you are using.</string>
<string name="unavailable_feature_text">Could not start this feature.</string>
<string name="unavailable_feature_version">The device is running Android %1$s, but needs %2$s or later.</string>
<string name="unavailable_feature_hardware">Could not find the corresponding hardware.</string>
@@ -693,23 +693,34 @@
</string-array>
<string name="style_choose_title">App theme</string>
<string name="style_choose_summary">Theme used in the app</string>
<string name="style_name_forest">Forest</string>
<string name="style_name_divine">Divine</string>
<string name="style_name_classic">Classic</string>
<string name="style_name_simple">Simple</string>
<string name="style_name_moon">Moon</string>
<string name="style_name_sun">Sun</string>
<string name="style_name_reply">Reply</string>
<string name="style_name_kunzite">Kunzite</string>
<string name="style_name_follow_system">Follow the system</string>
<string-array name="list_style_names">
<item>Forest</item>
<item>Divine</item>
<item>Classic</item>
<item>Simple</item>
<item>Moon</item>
<item>Sun</item>
<item>Reply</item>
<item>Kunzite</item>
<item>Follow the system</item>
<item>@string/style_name_forest</item>
<item>@string/style_name_divine</item>
<item>@string/style_name_classic</item>
<item>@string/style_name_simple</item>
<item>@string/style_name_moon</item>
<item>@string/style_name_sun</item>
<item>@string/style_name_reply</item>
<item>@string/style_name_kunzite</item>
<item>@string/style_name_follow_system</item>
</string-array>
<string name="style_brightness_title">Theme brightness</string>
<string name="style_brightness_summary">Select light or dark themes</string>
<string name="style_name_light">Light</string>
<string name="style_name_dark">Dark</string>
<string-array name="list_style_brightness_names">
<item>Light</item>
<item>Dark</item>
<item>Follow the system</item>
<item>@string/style_name_light</item>
<item>@string/style_name_dark</item>
<item>@string/style_name_follow_system</item>
</string-array>
<string name="icon_section_standard">Standard</string>
<string name="icon_section_custom">Custom</string>

View File

@@ -29,6 +29,9 @@ Settings Activity. This is pointed to in the service's meta-data in the applicat
<compatibility-package
android:name="alook.browser"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="alook.browser.google"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="app.vanadium.browser"
android:maxLongVersionCode="10000000000"/>
@@ -89,12 +92,24 @@ Settings Activity. This is pointed to in the service's meta-data in the applicat
<compatibility-package
android:name="com.google.android.apps.chrome_dev"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.google.android.captiveportallogin"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.iode.firefox"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.jamal2367.styx"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.kiwibrowser.browser"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.kiwibrowser.browser.dev"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.lemurbrowser.exts"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.microsoft.emmx"
android:maxLongVersionCode="10000000000"/>
@@ -119,12 +134,18 @@ Settings Activity. This is pointed to in the service's meta-data in the applicat
<compatibility-package
android:name="com.naver.whale"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.neeva.app"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.opera.browser"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.opera.browser.beta"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.opera.gx"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.opera.mini.native"
android:maxLongVersionCode="10000000000"/>
@@ -134,9 +155,15 @@ Settings Activity. This is pointed to in the service's meta-data in the applicat
<compatibility-package
android:name="com.opera.touch"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.qflair.browserq"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.qwant.liberty"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.rainsee.create"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.sec.android.app.sbrowser"
android:maxLongVersionCode="10000000000"/>
@@ -161,6 +188,15 @@ Settings Activity. This is pointed to in the service's meta-data in the applicat
<compatibility-package
android:name="com.yandex.browser"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.yjllq.internet"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.yjllq.kito"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.yujian.ResideMenuDemo"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="com.z28j.feel"
android:maxLongVersionCode="10000000000"/>
@@ -182,6 +218,9 @@ Settings Activity. This is pointed to in the service's meta-data in the applicat
<compatibility-package
android:name="mark.via.gp"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="net.dezor.browser"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="net.slions.fulguris.full.download"
android:maxLongVersionCode="10000000000"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -46,6 +46,7 @@ class Group : Node, GroupVersionedInterface<Group, Entry> {
var isVirtual = false
var numberOfChildEntries: Int = 0
var recursiveNumberOfChildEntries: Int = 0
/**
* Use this constructor to copy a Group
@@ -332,6 +333,18 @@ class Group : Node, GroupVersionedInterface<Group, Entry> {
fun refreshNumberOfChildEntries(filters: Array<ChildFilter> = emptyArray()) {
this.numberOfChildEntries = getFilteredChildEntries(filters).size
this.recursiveNumberOfChildEntries = getFilteredChildEntriesInGroups(filters)
}
/**
* @return the cumulative number of entries in the current group and its children
*/
private fun getFilteredChildEntriesInGroups(filters: Array<ChildFilter>): Int {
var counter = 0
getChildGroups().forEach { childGroup ->
counter += childGroup.getFilteredChildEntriesInGroups(filters)
}
return getFilteredChildEntries(filters).size + counter
}
/**

View File

@@ -50,7 +50,7 @@ object OtpEntryFields {
private const val COUNTER_URL_PARAM = "counter"
// OTPauth URI
private const val REGEX_OTP_AUTH = "^(?:otpauth://([ht]otp)/)(?:(?:([^:?#]*): *)?([^:?#]*))(?:\\?([^#]+))$"
private const val REGEX_OTP_AUTH = "^otpauth://([ht]otp)/?(?:([^:?#]*): *)?([^:?#]*)\\?([^#]+)$"
// Key-values (maybe from plugin or old KeePassXC)
private const val SEED_KEY = "key"
@@ -140,7 +140,7 @@ object OtpEntryFields {
*/
private fun parseOTPUri(getField: (id: String) -> String?, otpElement: OtpElement): Boolean {
val otpPlainText = getField(OTP_FIELD)
if (otpPlainText != null && otpPlainText.isNotEmpty() && isOTPUri(otpPlainText)) {
if (!otpPlainText.isNullOrEmpty() && isOTPUri(otpPlainText)) {
val uri = Uri.parse(otpPlainText.removeSpaceChars())
if (uri.scheme == null || OTP_SCHEME != uri.scheme!!.lowercase(Locale.ENGLISH)) {
@@ -171,7 +171,7 @@ object OtpEntryFields {
}
val nameParam = validateAndGetNameInPath(uri.path)
if (nameParam != null && nameParam.isNotEmpty()) {
if (!nameParam.isNullOrEmpty()) {
val userIdArray = nameParam.split(":", "%3A")
if (userIdArray.size > 1) {
otpElement.issuer = userIdArray[0].removeLineChars()
@@ -182,11 +182,11 @@ object OtpEntryFields {
}
val issuerParam = uri.getQueryParameter(ISSUER_URL_PARAM)
if (issuerParam != null && issuerParam.isNotEmpty())
if (!issuerParam.isNullOrEmpty())
otpElement.issuer = issuerParam.removeLineChars()
val secretParam = uri.getQueryParameter(SECRET_URL_PARAM)
if (secretParam != null && secretParam.isNotEmpty()) {
if (!secretParam.isNullOrEmpty()) {
try {
otpElement.setBase32Secret(secretParam)
} catch (exception: Exception) {
@@ -195,11 +195,11 @@ object OtpEntryFields {
}
val encoderParam = uri.getQueryParameter(ENCODER_URL_PARAM)
if (encoderParam != null && encoderParam.isNotEmpty())
if (!encoderParam.isNullOrEmpty())
otpElement.tokenType = OtpTokenType.getFromString(encoderParam)
val digitsParam = uri.getQueryParameter(DIGITS_URL_PARAM)
if (digitsParam != null && digitsParam.isNotEmpty())
if (!digitsParam.isNullOrEmpty())
try {
otpElement.digits = digitsParam.toIntOrNull() ?: OTP_DEFAULT_DIGITS
} catch (exception: Exception) {
@@ -208,7 +208,7 @@ object OtpEntryFields {
}
val counterParam = uri.getQueryParameter(COUNTER_URL_PARAM)
if (counterParam != null && counterParam.isNotEmpty())
if (!counterParam.isNullOrEmpty())
try {
otpElement.counter = counterParam.toLongOrNull() ?: HOTP_INITIAL_COUNTER
} catch (exception: Exception) {
@@ -217,7 +217,7 @@ object OtpEntryFields {
}
val stepParam = uri.getQueryParameter(PERIOD_URL_PARAM)
if (stepParam != null && stepParam.isNotEmpty())
if (!stepParam.isNullOrEmpty())
try {
otpElement.period = stepParam.toIntOrNull() ?: TOTP_DEFAULT_PERIOD
} catch (exception: Exception) {
@@ -226,7 +226,7 @@ object OtpEntryFields {
}
val algorithmParam = uri.getQueryParameter(ALGORITHM_URL_PARAM)
if (algorithmParam != null && algorithmParam.isNotEmpty()) {
if (!algorithmParam.isNullOrEmpty()) {
otpElement.algorithm = HashAlgorithm.fromString(algorithmParam)
}
@@ -253,12 +253,12 @@ object OtpEntryFields {
}
}
val issuer =
if (title != null && title.isNotEmpty())
if (!title.isNullOrEmpty())
encodeParameter(title)
else
encodeParameter(otpElement.issuer)
val accountName =
if (username != null && username.isNotEmpty())
if (!username.isNullOrEmpty())
encodeParameter(username)
else
encodeParameter(otpElement.name)
@@ -324,7 +324,7 @@ object OtpEntryFields {
private fun parseTOTPKeyValues(getField: (id: String) -> String?, otpElement: OtpElement): Boolean {
val plainText = getField(OTP_FIELD)
if (plainText != null && plainText.isNotEmpty()) {
if (!plainText.isNullOrEmpty()) {
if (Pattern.matches(validKeyValueRegex, plainText)) {
return try {
// KeeOtp string format
@@ -353,7 +353,7 @@ object OtpEntryFields {
val settingsField = getField(TOTP_SETTING_FIELD)
if (settingsField != null) {
// Regex match, sync with shortNameToEncoder
val pattern = Pattern.compile("(\\d+);((?:\\d+)|S)")
val pattern = Pattern.compile("(\\d+);(\\d+|S)")
val matcher = pattern.matcher(settingsField)
if (!matcher.matches()) {
// malformed
@@ -407,9 +407,9 @@ object OtpEntryFields {
}
// path is "/name", so remove leading "/", and trailing white spaces
val name = path.substring(1).trim { it <= ' ' }
return if (name.isEmpty()) {
return name.ifEmpty {
null
} else name
}
}
private fun breakDownKeyValuePairs(pairs: String): HashMap<String, String> {

View File

@@ -18,11 +18,11 @@ platform :android do
gradle(task: "test")
end
desc "Build a new Beta version"
lane :build_beta do |options|
desc "Build a new version"
lane :build do |options|
gradle(
task: "assemble",
flavor: "free",
flavor: options[:flavor],
build_type: "Release",
print_command: false,
properties: {
@@ -33,8 +33,14 @@ platform :android do
}
)
sh("mkdir", "-p", "../releases")
@releaseFile = "../releases/KeePassDX-" + android_get_version_name + ".apk"
sh("cp", "../app/build/outputs/apk/free/release/app-free-release.apk", @releaseFile)
@releaseFile = "../releases/KeePassDX-" + android_get_version_name + "-" + options[:flavor] + ".apk"
sh("cp", "../app/build/outputs/apk/" + options[:flavor] + "/release/app-" + options[:flavor] + "-release.apk", @releaseFile)
end
desc "Build each flavor and create release"
lane :build_release do |options|
build(flavor: "free", storefile: options[:storefile], storepass: options[:storepass], keyalias: options[:keyalias], keypass: options[:keypass])
build(flavor: "libre", storefile: options[:storefile], storepass: options[:storepass], keyalias: options[:keyalias], keypass: options[:keypass])
sh("./releaseDescGenerator.sh", android_get_version_code, android_get_version_name)
end

View File

@@ -23,13 +23,21 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
Runs all the tests
### android build_beta
### android build
```sh
[bundle exec] fastlane android build_beta
[bundle exec] fastlane android build
```
Build a new Beta version
Build a new version
### android build_release
```sh
[bundle exec] fastlane android build_release
```
Build each flavor and create release
### android deploy_beta_free

View File

@@ -2,6 +2,6 @@
* Material You theme (follow system colors) #1469
* Refactoring inner code #1371
* Migration to API 33
# Cut, copy and delete from search #891 #1308 #1263
* Fix behaviors #1351
* Fix bugs #1589 #1584 #1545 #1563 #1371
* Cut, copy and delete from search #891 #1308 #1263
* Fix behaviors #1351 #874 #1327
* Fix bugs #1589 #1584 #1545 #1563 #1371 #1609

View File

@@ -0,0 +1,3 @@
* Fix back lock #1635 #1629 #1634
* Fix lock button in settings #1630
* Improve theme translation #1631

View File

@@ -0,0 +1 @@
* Fix Autofill with API 33

View File

@@ -0,0 +1,5 @@
* Fix "Save as" in Read Only mode #1666
* Fix username autofill #1665 #530 #1572 #1426 #1523 #1556 #1653 #1658 #1508 #1667
* Fix regex OTP recognition #1596
* Change password color dynamically #1490
* Small fixes #1641 #1656 #1649 #1400 #1674

View File

@@ -0,0 +1,3 @@
* Fix form filled recognition #1572 #1677
* Fix device unlock #1682
* Fix password color #1490

View File

@@ -0,0 +1,2 @@
* Fix form filled recognition #1572 #1508
* Rollback password color #1686 #1490

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Some files were not shown because too many files have changed in this diff Show More