mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Compare commits
431 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70665f110d | ||
|
|
3b39cafb99 | ||
|
|
2b5ecb2f84 | ||
|
|
e397b92c36 | ||
|
|
e273eb6e03 | ||
|
|
28b624afa3 | ||
|
|
fb1e6cdc3f | ||
|
|
8b6499d040 | ||
|
|
054af507ad | ||
|
|
ac9bb9b666 | ||
|
|
809e1929e5 | ||
|
|
a1b1338d67 | ||
|
|
bd4cacfab1 | ||
|
|
e0343bdc55 | ||
|
|
b743d004e2 | ||
|
|
4b20e035b2 | ||
|
|
afe5fddc50 | ||
|
|
d68ca1b51f | ||
|
|
061b087229 | ||
|
|
bb3a379965 | ||
|
|
593b5c6338 | ||
|
|
56f8a1bf9f | ||
|
|
962b547b36 | ||
|
|
6df8ff4310 | ||
|
|
52f17140b8 | ||
|
|
75c2bb4a87 | ||
|
|
f36f6c3155 | ||
|
|
b88b92c5b0 | ||
|
|
d2c569c4f0 | ||
|
|
cb1316564e | ||
|
|
245d3f7df2 | ||
|
|
3729b3c5a0 | ||
|
|
7ce5eb3c27 | ||
|
|
43defea85e | ||
|
|
8470c4e39b | ||
|
|
a41afb7f1e | ||
|
|
32d9cfbe29 | ||
|
|
7210652567 | ||
|
|
ab15967ad7 | ||
|
|
44df4ec181 | ||
|
|
7afe356082 | ||
|
|
87597553b8 | ||
|
|
27e5f58d5e | ||
|
|
762c946d35 | ||
|
|
21a927e3e9 | ||
|
|
f93bb7436a | ||
|
|
6294fddbba | ||
|
|
c5719dfaf2 | ||
|
|
673fd67f15 | ||
|
|
25524c48e9 | ||
|
|
631b924c33 | ||
|
|
fba12bc278 | ||
|
|
e809109bb2 | ||
|
|
0e31890624 | ||
|
|
0124021ce5 | ||
|
|
74db6bf77f | ||
|
|
efde33182e | ||
|
|
ec68b22330 | ||
|
|
bf7e014f8c | ||
|
|
40e1607698 | ||
|
|
4a132f06fe | ||
|
|
0396dd975d | ||
|
|
80a38c0c54 | ||
|
|
2aa6461094 | ||
|
|
258433b3b8 | ||
|
|
79e723545c | ||
|
|
a6b20455ef | ||
|
|
9659b55bf3 | ||
|
|
ca148ef546 | ||
|
|
322b21d645 | ||
|
|
ed2ba65ecf | ||
|
|
defc8b1c57 | ||
|
|
a90ecc56d8 | ||
|
|
2faa0ac320 | ||
|
|
e391fd59fe | ||
|
|
25df86606c | ||
|
|
811f33eb3f | ||
|
|
ca7e2ed89d | ||
|
|
6f4cd79e2c | ||
|
|
da1caf4b8b | ||
|
|
4a0a8e44ca | ||
|
|
6bc2c3481b | ||
|
|
0aa89ea9ff | ||
|
|
f31a30bf47 | ||
|
|
dc75837ac7 | ||
|
|
9849b0a1da | ||
|
|
2c15a1ddd6 | ||
|
|
98eb9976cf | ||
|
|
0d9a5810b1 | ||
|
|
1adaa137a5 | ||
|
|
44a428d15a | ||
|
|
5416a7942a | ||
|
|
9e0024baf5 | ||
|
|
8d47ce38c2 | ||
|
|
80af43c0ca | ||
|
|
225f8243c2 | ||
|
|
68bc118add | ||
|
|
abbc584402 | ||
|
|
6635594639 | ||
|
|
10db77d402 | ||
|
|
000fd7e520 | ||
|
|
c8ced4ae59 | ||
|
|
9209ca9af7 | ||
|
|
c7bd90c610 | ||
|
|
fceb9c3547 | ||
|
|
030c49b571 | ||
|
|
f2d6a6a536 | ||
|
|
8f61521f05 | ||
|
|
89af7ec5d0 | ||
|
|
362f1aebed | ||
|
|
5226527cec | ||
|
|
b8464cd0e5 | ||
|
|
46e7b04d66 | ||
|
|
73111b770f | ||
|
|
995d485700 | ||
|
|
5ebbbef667 | ||
|
|
c79144400f | ||
|
|
b56556f5a2 | ||
|
|
35d5f01b8e | ||
|
|
501c647236 | ||
|
|
e77c7b84a3 | ||
|
|
d9f4e9b6ab | ||
|
|
1d7f7d2a5b | ||
|
|
df408e862b | ||
|
|
66845926d5 | ||
|
|
0a06acbf1d | ||
|
|
5d3c6798c0 | ||
|
|
b9d2b9ddc9 | ||
|
|
8a6525f45e | ||
|
|
41d89b590d | ||
|
|
8354d08ff5 | ||
|
|
16725b21f3 | ||
|
|
93ba17792f | ||
|
|
940b96cf21 | ||
|
|
157253ce24 | ||
|
|
46b3810f34 | ||
|
|
05c030dbbb | ||
|
|
5b0fd99351 | ||
|
|
2946a6e231 | ||
|
|
47896fcdc9 | ||
|
|
bc51345f0d | ||
|
|
750e1b6c43 | ||
|
|
4a2106837c | ||
|
|
39b9fc350a | ||
|
|
53560dbe29 | ||
|
|
5172dbe114 | ||
|
|
4f0ff67fdf | ||
|
|
bac971ced8 | ||
|
|
64bf5ba165 | ||
|
|
90c4a5e1b8 | ||
|
|
b08a5d9cda | ||
|
|
d5be79948d | ||
|
|
6b64be4925 | ||
|
|
e8e6eb6ca5 | ||
|
|
ee9383dd0b | ||
|
|
aee0b82cff | ||
|
|
ba5913da57 | ||
|
|
3238b9b2ce | ||
|
|
5215181c0f | ||
|
|
d3676a1454 | ||
|
|
792ce6f86e | ||
|
|
ddbd0376fc | ||
|
|
496655093c | ||
|
|
755293eff7 | ||
|
|
b6e51a1f32 | ||
|
|
08f17f3f19 | ||
|
|
14440725fc | ||
|
|
b4f84c5cd6 | ||
|
|
ad6b1cead1 | ||
|
|
e06398ff19 | ||
|
|
919ad5cfd4 | ||
|
|
b3fb721588 | ||
|
|
590497852d | ||
|
|
ebd7a9c7cf | ||
|
|
939fb2fa54 | ||
|
|
2245daffe9 | ||
|
|
784b25ada8 | ||
|
|
146d631794 | ||
|
|
cc062d7f0e | ||
|
|
298dd4af61 | ||
|
|
739ba3b14d | ||
|
|
2864ea9868 | ||
|
|
ed8d3247ca | ||
|
|
ff5de7b327 | ||
|
|
aa77552ff4 | ||
|
|
12456c0ea2 | ||
|
|
a7a93fa2a2 | ||
|
|
ff7cd29b77 | ||
|
|
f7065acc40 | ||
|
|
e4e2e5c43c | ||
|
|
48d240b010 | ||
|
|
9f2deb56b9 | ||
|
|
951257bed8 | ||
|
|
f27ce804fb | ||
|
|
1d896e83b3 | ||
|
|
a2c2925610 | ||
|
|
97e5f90603 | ||
|
|
593b7188dc | ||
|
|
4c4e61a711 | ||
|
|
140f09c77e | ||
|
|
c0fe4faf8a | ||
|
|
066fff7aca | ||
|
|
6dcbdffed4 | ||
|
|
3a07dea6d7 | ||
|
|
72ed07ef17 | ||
|
|
51512b4588 | ||
|
|
aed49e19e8 | ||
|
|
113601d09a | ||
|
|
b7d0b65715 | ||
|
|
3075591885 | ||
|
|
e9596f56db | ||
|
|
3559830738 | ||
|
|
e42beccb22 | ||
|
|
d05b7394e8 | ||
|
|
00b11ea659 | ||
|
|
99f0f096d1 | ||
|
|
416329d50d | ||
|
|
cb0d1b05d7 | ||
|
|
a2845c33f8 | ||
|
|
6d06265d94 | ||
|
|
49d03efe56 | ||
|
|
7f13a3ca76 | ||
|
|
cec9d168e3 | ||
|
|
ecf253451d | ||
|
|
89a6219659 | ||
|
|
9dec308caa | ||
|
|
fb1459de9b | ||
|
|
f3bef64461 | ||
|
|
2509caff6b | ||
|
|
232aafe2c0 | ||
|
|
ed26cb4891 | ||
|
|
0b966a6cd1 | ||
|
|
c84afd2281 | ||
|
|
1711f09547 | ||
|
|
4460a44e99 | ||
|
|
c8f7bcfb52 | ||
|
|
bd2bd842af | ||
|
|
2b0f4fe46b | ||
|
|
55c2f41c71 | ||
|
|
94985422ca | ||
|
|
eaff1aa58f | ||
|
|
c7cb9d0990 | ||
|
|
a9fdf30421 | ||
|
|
d0f45f6dfb | ||
|
|
8cdb6a3c9f | ||
|
|
b369a46431 | ||
|
|
f40ca2d5e0 | ||
|
|
400393c677 | ||
|
|
5710e3be55 | ||
|
|
af1312a92b | ||
|
|
d2a63c48b1 | ||
|
|
8f10ea7ed6 | ||
|
|
7bd701368a | ||
|
|
894e846a62 | ||
|
|
504ef5a7ab | ||
|
|
af6436da77 | ||
|
|
d031420ed3 | ||
|
|
4b6b7478de | ||
|
|
bb1b5eab96 | ||
|
|
9486b50342 | ||
|
|
fc9a5b3545 | ||
|
|
8b4d0e2541 | ||
|
|
0ef07f615c | ||
|
|
836413cff2 | ||
|
|
c71e34fee9 | ||
|
|
b389a4db92 | ||
|
|
0a1a54cb33 | ||
|
|
630228675c | ||
|
|
f7955d00fc | ||
|
|
68b08f9b9a | ||
|
|
612f136ced | ||
|
|
8c313c3d48 | ||
|
|
517a6c0062 | ||
|
|
46c61b10de | ||
|
|
edc8d27577 | ||
|
|
05354777fe | ||
|
|
98d3d2a39b | ||
|
|
f91f75912e | ||
|
|
9f21f67035 | ||
|
|
699e4da112 | ||
|
|
6458285e75 | ||
|
|
e0ddf3711f | ||
|
|
68d415375d | ||
|
|
0e11afdd8b | ||
|
|
ff2c01584f | ||
|
|
a59e20b864 | ||
|
|
d7d898896d | ||
|
|
2dde78d5e7 | ||
|
|
2ca39ff399 | ||
|
|
1f6fdaf9b3 | ||
|
|
edaf58135f | ||
|
|
724698fc51 | ||
|
|
6aabe9e12c | ||
|
|
2b5a1bb893 | ||
|
|
7403305f3c | ||
|
|
e780f8a3f0 | ||
|
|
7f2fda0327 | ||
|
|
ada8f74e2c | ||
|
|
1ddfeaf950 | ||
|
|
2ed2cc1499 | ||
|
|
be0f90f12a | ||
|
|
4b362df23b | ||
|
|
b953a1c2f6 | ||
|
|
4c30fa43d3 | ||
|
|
6866b1a3bb | ||
|
|
328030f152 | ||
|
|
fd195bd926 | ||
|
|
87e07366cd | ||
|
|
8133977e09 | ||
|
|
11199b996c | ||
|
|
eee61db189 | ||
|
|
c7c5130030 | ||
|
|
6de14a3840 | ||
|
|
55206b3dde | ||
|
|
e1a44477af | ||
|
|
23afee453e | ||
|
|
8e05309021 | ||
|
|
26fdf87070 | ||
|
|
1c95a0edc4 | ||
|
|
4723fb39e9 | ||
|
|
13d667d81c | ||
|
|
dce255dc58 | ||
|
|
f72c9704d9 | ||
|
|
e623010e91 | ||
|
|
587bfdc162 | ||
|
|
7c1c299282 | ||
|
|
f2a5c0b04b | ||
|
|
4ba77b76ec | ||
|
|
0bfce44317 | ||
|
|
13b6d6384c | ||
|
|
80838bbef0 | ||
|
|
8a557ff2fb | ||
|
|
16e394087d | ||
|
|
ee1b67b36e | ||
|
|
36b9fa2387 | ||
|
|
378169e939 | ||
|
|
70a01e559d | ||
|
|
c09e8196f3 | ||
|
|
0382c05152 | ||
|
|
75cf6e2a56 | ||
|
|
9fb4754430 | ||
|
|
0312b504a9 | ||
|
|
1d6a9651bf | ||
|
|
e36b18e85e | ||
|
|
4ae4951e0d | ||
|
|
a65f52ffba | ||
|
|
6de25ffa65 | ||
|
|
d8429bdd99 | ||
|
|
26976ae6cf | ||
|
|
53beaca563 | ||
|
|
77628e2fb9 | ||
|
|
40d2f2de96 | ||
|
|
84cdb2483f | ||
|
|
c7866bfbbf | ||
|
|
5de1d6b343 | ||
|
|
7bde363704 | ||
|
|
1f9b2ce7b9 | ||
|
|
ac2e47776a | ||
|
|
e7de5ca263 | ||
|
|
f7f079e653 | ||
|
|
f7cccb33de | ||
|
|
8177c9c34b | ||
|
|
850c46f881 | ||
|
|
ffcfe966d2 | ||
|
|
800badd2a4 | ||
|
|
0a7ffbcc8f | ||
|
|
019ec4de9a | ||
|
|
78d1e4a12a | ||
|
|
6c99fefad0 | ||
|
|
24bc1424b9 | ||
|
|
94a0e17cfc | ||
|
|
2f012d8cf2 | ||
|
|
75b800054f | ||
|
|
d7c7733315 | ||
|
|
99600ad8d8 | ||
|
|
4a4c7b8b6b | ||
|
|
8c3267b345 | ||
|
|
c0240b047b | ||
|
|
c52957ccfe | ||
|
|
fb3f057adf | ||
|
|
e333bd08a4 | ||
|
|
1844a269cb | ||
|
|
859882d24f | ||
|
|
c95543b8b0 | ||
|
|
d874125dc1 | ||
|
|
795cd099f4 | ||
|
|
66ef6fd9d8 | ||
|
|
3b0655354d | ||
|
|
76acec93fd | ||
|
|
3b60068369 | ||
|
|
a0fd0a71a2 | ||
|
|
907accbcc9 | ||
|
|
ee284abf8d | ||
|
|
8239275770 | ||
|
|
029485bace | ||
|
|
cef9f6ae3b | ||
|
|
8d88c94956 | ||
|
|
692e155117 | ||
|
|
9a9410de2b | ||
|
|
a27f1181ea | ||
|
|
ac65cadb1b | ||
|
|
4345e75b20 | ||
|
|
f64d085e7b | ||
|
|
325b878f0a | ||
|
|
330f375a30 | ||
|
|
7d6c211de1 | ||
|
|
af5b36752c | ||
|
|
e0f563befb | ||
|
|
bf1b84dfea | ||
|
|
b3f8ce9c16 | ||
|
|
499152d066 | ||
|
|
c47e7edc9e | ||
|
|
afc034b495 | ||
|
|
e1d19741af | ||
|
|
8d2de40df6 | ||
|
|
f4b7db667f | ||
|
|
4032e52317 | ||
|
|
f9db4325d8 | ||
|
|
815824f76d | ||
|
|
8534672c33 | ||
|
|
b9bb9a166a | ||
|
|
185c886472 | ||
|
|
acc565d021 | ||
|
|
64db137c6c | ||
|
|
4f2bdeb2c9 | ||
|
|
527994084b | ||
|
|
ffaf5c9475 | ||
|
|
d1e24bfcd8 | ||
|
|
aab8612c63 | ||
|
|
79c1e2d21c | ||
|
|
7ff44f4839 |
34
CHANGELOG
34
CHANGELOG
@@ -1,3 +1,37 @@
|
||||
KeePassDX(4.1.3)
|
||||
* Fix Autofill Registration #2089
|
||||
* Fix Biometric errors #2081
|
||||
* Fixed timestamp in copy file #1981 #1983
|
||||
* Fix Template Email #1986
|
||||
|
||||
KeePassDX(4.1.2)
|
||||
* Fix URL search #1940 #1946 #2003 #2040 #2044
|
||||
* Fix Autofill popup #2054
|
||||
* Fix Group notes #2053
|
||||
* Fix Dialog background #2005 #2004 (Thx @codokie)
|
||||
* Fix OTP configuration #2042 #2065 (Thx @Dev-ClayP)
|
||||
* Fix small UI elements #1987 #2007 (Thx @ymcx)
|
||||
* RTL layout support #2021 (Thx @codokie)
|
||||
* App Metadata to translation #1823
|
||||
|
||||
KeePassDX(4.1.1)
|
||||
* Fix date parser #1933
|
||||
* Fix domain search #1820 #1936
|
||||
|
||||
KeePassDX(4.1.0)
|
||||
* Generate keyfile #1290
|
||||
* Hide template group #1894
|
||||
* Group count sum recursively #421
|
||||
* Fix date fields #1695 #1710
|
||||
* Fix distinct domain names #1105 #1820
|
||||
* Resets the advanced unlock expiration #1600
|
||||
* Password entropy #1490 #1355
|
||||
* Upgrade to API 34 (Android 14) #1730
|
||||
* Small fixes #1711 #1831 #1780 #1821 #1863 #1889 #1289 #1600 #1467 #1870
|
||||
|
||||
KeePassDX(4.0.8)
|
||||
* Fix graphical bug that prevented databases from being opened on some versions of Android #1848 #1850
|
||||
|
||||
KeePassDX(4.0.7)
|
||||
* Prevent 0 Byte file with cache during a save exception #1620 #1594 #1680
|
||||
* Fix inline suggestions in keyboard #1840
|
||||
|
||||
68
Gemfile.lock
68
Gemfile.lock
@@ -5,25 +5,25 @@ GEM
|
||||
base64
|
||||
nkf
|
||||
rexml
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.924.0)
|
||||
aws-sdk-core (3.194.1)
|
||||
aws-partitions (1.1009.0)
|
||||
aws-sdk-core (3.213.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.8)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.80.0)
|
||||
aws-sdk-core (~> 3, >= 3.193.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.149.0)
|
||||
aws-sdk-core (~> 3, >= 3.194.0)
|
||||
aws-sdk-kms (1.95.0)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.171.0)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.8)
|
||||
aws-sigv4 (1.8.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.10.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
@@ -38,8 +38,8 @@ GEM
|
||||
domain_name (0.6.20240107)
|
||||
dotenv (2.8.1)
|
||||
emoji_regex (3.2.3)
|
||||
excon (0.110.0)
|
||||
faraday (1.10.3)
|
||||
excon (0.112.0)
|
||||
faraday (1.10.4)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
@@ -60,15 +60,15 @@ GEM
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.4)
|
||||
multipart-post (~> 2)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http (1.0.2)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.0)
|
||||
faraday_middleware (1.2.1)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.3.1)
|
||||
fastlane (2.220.0)
|
||||
fastlane (2.225.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@@ -84,6 +84,7 @@ GEM
|
||||
faraday-cookie_jar (~> 0.0.6)
|
||||
faraday_middleware (~> 1.0)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
fastlane-sirp (>= 1.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
@@ -110,6 +111,8 @@ GEM
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
fastlane-plugin-versioning_android (0.1.1)
|
||||
fastlane-sirp (1.0.0)
|
||||
sysrandom (~> 1.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.54.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
@@ -127,7 +130,7 @@ GEM
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.31.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.7.0)
|
||||
google-cloud-core (1.7.1)
|
||||
google-cloud-env (>= 1.0, < 3.a)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
@@ -148,31 +151,31 @@ GEM
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.5)
|
||||
http-cookie (1.0.7)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.6.2)
|
||||
json (2.7.2)
|
||||
jwt (2.8.1)
|
||||
json (2.8.2)
|
||||
jwt (2.9.3)
|
||||
base64
|
||||
mini_magick (4.12.0)
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.4.0)
|
||||
nanaimo (0.3.0)
|
||||
multipart-post (2.4.1)
|
||||
nanaimo (0.4.0)
|
||||
naturally (2.2.1)
|
||||
nkf (0.2.0)
|
||||
optparse (0.5.0)
|
||||
optparse (0.6.0)
|
||||
os (1.1.4)
|
||||
plist (3.7.1)
|
||||
public_suffix (5.0.5)
|
||||
public_suffix (6.0.1)
|
||||
rake (13.2.1)
|
||||
representable (3.2.0)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.6)
|
||||
rexml (3.3.9)
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
@@ -185,6 +188,7 @@ GEM
|
||||
simctl (1.6.10)
|
||||
CFPropertyList
|
||||
naturally
|
||||
sysrandom (1.0.5)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
@@ -194,15 +198,15 @@ GEM
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unicode-display_width (2.5.0)
|
||||
unicode-display_width (2.6.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.24.0)
|
||||
xcodeproj (1.27.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
nanaimo (~> 0.4.0)
|
||||
rexml (>= 3.3.6, < 4.0)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
|
||||
54
README.md
54
README.md
@@ -48,34 +48,40 @@ Optional visual styles are accessible after a contribution (and a congratulatory
|
||||
|
||||
## Download
|
||||
|
||||
*[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.*
|
||||
*[F-Droid](https://f-droid.org/packages/com.kunzisoft.keepass.libre/) is the recommended way of installing, a libre software project that verifies 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/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)
|
||||
[<img src="https://raw.githubusercontent.com/Kunzisoft/Github-badge/main/get-it-on-github.png"
|
||||
alt="Get it on Github"
|
||||
height="80">](https://github.com/Kunzisoft/KeePassDX/releases)
|
||||
| Source | Status | [Version](https://github.com/Kunzisoft/KeePassDX/wiki/FAQ#why-a-libre-and-free-version) |
|
||||
|--------|--------|---------|
|
||||
| [Google Play](https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.free) |  | Free + [Pro](https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro) |
|
||||
| [F-Droid](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/) |  | Libre |
|
||||
| [IzzyOnDroid](https://apt.izzysoft.de/fdroid/index/apk/com.kunzisoft.keepass.free) |  | Free & [Libre](https://apt.izzysoft.de/fdroid/index/apk/com.kunzisoft.keepass.libre) |
|
||||
| [GitHub](https://github.com/Kunzisoft/KeePassDX/releases) / [Obtainium](https://github.com/ImranR98/Obtainium) |  | Free & Libre |
|
||||
|
||||
## Verify the authenticity of the downloaded app from GitHub
|
||||
1- Download the latest app from [GitHub releases](https://github.com/Kunzisoft/KeePassDX/releases/latest). <br>
|
||||
2- Open the directory where you saved the downloaded file in the Terminal on Linux/MacOS. <br>
|
||||
3- You must have `keytool` command installed. <br>
|
||||
4- Depending on the flavor you downloaded, run:
|
||||
## Package authenticity from GitHub
|
||||
- Download the app from [GitHub releases](https://github.com/Kunzisoft/KeePassDX/releases/latest)
|
||||
- Install [`apksigner`](https://developer.android.com/tools/apksigner) from [Android Studio](https://developer.android.com/studio)
|
||||
- Open the directory where you saved the downloaded file in the Terminal
|
||||
- Make sure that you have `apksigner` installed by running:
|
||||
```shell
|
||||
apksigner --version
|
||||
```
|
||||
keytool -printcert -jarfile KeePassDX-*-libre.apk | grep '7D:55:B8:AF:21:03:81:AA:BF:96:0F:07:E1:7C:F7:85:7B:6D:2A:64:2C:A2:DA:6B:F0:BD:F1:B2:00:36:2F:04'
|
||||
- Depending on the APK file you downloaded, run:
|
||||
|
||||
```shell
|
||||
apksigner verify --verbose --print-certs -min-sdk-version 24 KeePassDX-*.apk
|
||||
```
|
||||
Or:
|
||||
```
|
||||
keytool -printcert -jarfile KeePassDX-*-free.apk | grep '7D:55:B8:AF:21:03:81:AA:BF:96:0F:07:E1:7C:F7:85:7B:6D:2A:64:2C:A2:DA:6B:F0:BD:F1:B2:00:36:2F:04'
|
||||
```
|
||||
You should get this output:
|
||||
```
|
||||
SHA256: 7D:55:B8:AF:21:03:81:AA:BF:96:0F:07:E1:7C:F7:85:7B:6D:2A:64:2C:A2:DA:6B:F0:BD:F1:B2:00:36:2F:04
|
||||
|
||||
You should get this output :
|
||||
```shell
|
||||
Verified using v2 scheme (APK Signature Scheme v2): true
|
||||
...
|
||||
Number of signers: 1
|
||||
Signer #1 certificate SHA-256 digest: 7d55b8af210381aabf960f07e17cf7857b6d2a642ca2da6bf0bdf1b200362f04
|
||||
...
|
||||
Signer #1 public key SHA-256 digest: 5d261d3176db1e077b80112824d9390167f3be0561827e42112ed6b71192db81
|
||||
```
|
||||
If it's the case, this means that the APK was well built by the author of KeePassDX.
|
||||
|
||||
## Frequently Asked Questions
|
||||
|
||||
Other questions? You can read the [FAQ](https://github.com/Kunzisoft/KeePassDX/wiki/FAQ)
|
||||
@@ -90,7 +96,7 @@ Other questions? You can read the [FAQ](https://github.com/Kunzisoft/KeePassDX/w
|
||||
|
||||
## License
|
||||
|
||||
Copyright © 2024 Jeremy Jamet / [Kunzisoft](https://www.kunzisoft.com).
|
||||
Copyright © 2025 Jeremy Jamet / [Kunzisoft](https://www.kunzisoft.com).
|
||||
|
||||
This file is part of KeePassDX.
|
||||
|
||||
|
||||
@@ -5,15 +5,14 @@ apply plugin: 'kotlin-kapt'
|
||||
|
||||
android {
|
||||
namespace 'com.kunzisoft.keepass'
|
||||
compileSdkVersion 33
|
||||
buildToolsVersion "33.0.2"
|
||||
compileSdkVersion 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.kunzisoft.keepass"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 33
|
||||
versionCode = 130
|
||||
versionName = "4.0.7"
|
||||
targetSdkVersion 34
|
||||
versionCode = 135
|
||||
versionName = "4.1.3"
|
||||
multiDexEnabled true
|
||||
|
||||
testApplicationId = "com.kunzisoft.keepass.tests"
|
||||
@@ -36,6 +35,13 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
dependenciesInfo {
|
||||
// Disables dependency metadata when building APKs.
|
||||
includeInApk = false
|
||||
// Disables dependency metadata when building Android App Bundles.
|
||||
includeInBundle = false
|
||||
}
|
||||
|
||||
flavorDimensions "version"
|
||||
productFlavors {
|
||||
libre {
|
||||
@@ -85,12 +91,15 @@ android {
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
jvmTarget = "17"
|
||||
}
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,7 +129,7 @@ dependencies {
|
||||
// Autofill
|
||||
implementation "androidx.autofill:autofill:1.1.0"
|
||||
// Time
|
||||
implementation 'joda-time:joda-time:2.10.13'
|
||||
implementation 'joda-time:joda-time:2.13.0'
|
||||
// Color
|
||||
implementation 'com.github.Kunzisoft:AndroidClearChroma:2.6'
|
||||
// Education
|
||||
@@ -137,5 +146,4 @@ dependencies {
|
||||
|
||||
// Tests
|
||||
androidTestImplementation "androidx.test:runner:$android_test_version"
|
||||
androidTestImplementation "androidx.test:rules:$android_test_version"
|
||||
}
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
android:anyDensity="true" />
|
||||
<uses-permission
|
||||
android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission
|
||||
android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
||||
<uses-permission
|
||||
android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
|
||||
<uses-permission
|
||||
android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission
|
||||
@@ -39,6 +43,7 @@
|
||||
android:backupAgent="com.kunzisoft.keepass.backup.SettingsBackupAgent"
|
||||
android:largeHeap="true"
|
||||
android:resizeableActivity="true"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/KeepassDXStyle.Night"
|
||||
tools:targetApi="s">
|
||||
<meta-data
|
||||
@@ -197,18 +202,27 @@
|
||||
|
||||
<service
|
||||
android:name="com.kunzisoft.keepass.services.DatabaseTaskNotificationService"
|
||||
android:foregroundServiceType="dataSync"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
<service
|
||||
android:name="com.kunzisoft.keepass.services.AttachmentFileNotificationService"
|
||||
android:foregroundServiceType="dataSync"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
<service
|
||||
android:name="com.kunzisoft.keepass.services.ClipboardEntryNotificationService"
|
||||
android:foregroundServiceType="specialUse"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
<service
|
||||
android:name="com.kunzisoft.keepass.services.KeyboardEntryNotificationService"
|
||||
android:foregroundServiceType="specialUse"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
<service
|
||||
android:name="com.kunzisoft.keepass.services.AdvancedUnlockNotificationService"
|
||||
android:foregroundServiceType="specialUse"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
<!-- Receiver for Autofill -->
|
||||
@@ -235,10 +249,6 @@
|
||||
<action android:name="android.view.InputMethod" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service
|
||||
android:name="com.kunzisoft.keepass.services.KeyboardEntryNotificationService"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
<receiver
|
||||
android:name="com.kunzisoft.keepass.receivers.DexModeReceiver"
|
||||
android:exported="true">
|
||||
|
||||
@@ -38,7 +38,11 @@ import android.graphics.RectF
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.os.Build
|
||||
import android.util.TypedValue
|
||||
import android.view.*
|
||||
import android.view.GestureDetector
|
||||
import android.view.MotionEvent
|
||||
import android.view.ScaleGestureDetector
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.AccelerateDecelerateInterpolator
|
||||
import android.view.animation.DecelerateInterpolator
|
||||
import android.view.animation.Interpolator
|
||||
@@ -202,7 +206,7 @@ class Loupe(imageView: ImageView, container: ViewGroup) : View.OnTouchListener,
|
||||
override fun onDown(e: MotionEvent): Boolean = true
|
||||
|
||||
override fun onScroll(
|
||||
e1: MotionEvent,
|
||||
e1: MotionEvent?,
|
||||
e2: MotionEvent,
|
||||
distanceX: Float,
|
||||
distanceY: Float
|
||||
@@ -220,7 +224,7 @@ class Loupe(imageView: ImageView, container: ViewGroup) : View.OnTouchListener,
|
||||
}
|
||||
|
||||
override fun onFling(
|
||||
e1: MotionEvent,
|
||||
e1: MotionEvent?,
|
||||
e2: MotionEvent,
|
||||
velocityX: Float,
|
||||
velocityY: Float
|
||||
|
||||
@@ -20,10 +20,12 @@
|
||||
package com.kunzisoft.keepass.activities
|
||||
|
||||
import android.content.pm.PackageManager.NameNotFoundException
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.util.Log
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.text.HtmlCompat
|
||||
@@ -76,6 +78,9 @@ class AboutActivity : StylishActivity() {
|
||||
movementMethod = LinkMovementMethod.getInstance()
|
||||
text = HtmlCompat.fromHtml(getString(R.string.html_about_licence, DateTime().year),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
textDirection = View.TEXT_DIRECTION_ANY_RTL
|
||||
}
|
||||
}
|
||||
|
||||
findViewById<TextView>(R.id.activity_about_privacy_text).apply {
|
||||
|
||||
@@ -41,11 +41,9 @@ import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.database.helper.SearchHelper
|
||||
import com.kunzisoft.keepass.model.RegisterInfo
|
||||
import com.kunzisoft.keepass.model.SearchInfo
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.utils.WebDomain
|
||||
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() {
|
||||
@@ -126,83 +124,85 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
|
||||
if (autofillComponent == null) {
|
||||
setResult(Activity.RESULT_CANCELED)
|
||||
finish()
|
||||
} else if (!KeeAutofillService.autofillAllowedFor(searchInfo.applicationId,
|
||||
PreferencesUtil.applicationIdBlocklist(this))
|
||||
|| !KeeAutofillService.autofillAllowedFor(searchInfo.webDomain,
|
||||
PreferencesUtil.webDomainBlocklist(this))) {
|
||||
} else if (KeeAutofillService.autofillAllowedFor(
|
||||
applicationId = searchInfo.applicationId,
|
||||
webDomain = searchInfo.webDomain,
|
||||
context = this
|
||||
)) {
|
||||
// If database is open
|
||||
SearchHelper.checkAutoSearchInfo(this,
|
||||
database,
|
||||
searchInfo,
|
||||
{ openedDatabase, items ->
|
||||
// Items found
|
||||
AutofillHelper.buildResponseAndSetResult(this, openedDatabase, items)
|
||||
finish()
|
||||
},
|
||||
{ openedDatabase ->
|
||||
// Show the database UI to select the entry
|
||||
GroupActivity.launchForAutofillResult(this,
|
||||
openedDatabase,
|
||||
mAutofillActivityResultLauncher,
|
||||
autofillComponent,
|
||||
searchInfo,
|
||||
false)
|
||||
},
|
||||
{
|
||||
// If database not open
|
||||
FileDatabaseSelectActivity.launchForAutofillResult(this,
|
||||
mAutofillActivityResultLauncher,
|
||||
autofillComponent,
|
||||
searchInfo)
|
||||
}
|
||||
)
|
||||
} else {
|
||||
showBlockRestartMessage()
|
||||
setResult(Activity.RESULT_CANCELED)
|
||||
finish()
|
||||
} else {
|
||||
// If database is open
|
||||
SearchHelper.checkAutoSearchInfo(this,
|
||||
database,
|
||||
searchInfo,
|
||||
{ openedDatabase, items ->
|
||||
// Items found
|
||||
AutofillHelper.buildResponseAndSetResult(this, openedDatabase, items)
|
||||
finish()
|
||||
},
|
||||
{ openedDatabase ->
|
||||
// Show the database UI to select the entry
|
||||
GroupActivity.launchForAutofillResult(this,
|
||||
openedDatabase,
|
||||
mAutofillActivityResultLauncher,
|
||||
autofillComponent,
|
||||
searchInfo,
|
||||
false)
|
||||
},
|
||||
{
|
||||
// If database not open
|
||||
FileDatabaseSelectActivity.launchForAutofillResult(this,
|
||||
mAutofillActivityResultLauncher,
|
||||
autofillComponent,
|
||||
searchInfo)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun launchRegistration(database: ContextualDatabase?,
|
||||
searchInfo: SearchInfo,
|
||||
registerInfo: RegisterInfo?) {
|
||||
if (!KeeAutofillService.autofillAllowedFor(searchInfo.applicationId,
|
||||
PreferencesUtil.applicationIdBlocklist(this))
|
||||
|| !KeeAutofillService.autofillAllowedFor(searchInfo.webDomain,
|
||||
PreferencesUtil.webDomainBlocklist(this))) {
|
||||
showBlockRestartMessage()
|
||||
setResult(Activity.RESULT_CANCELED)
|
||||
} else {
|
||||
if (KeeAutofillService.autofillAllowedFor(
|
||||
applicationId = searchInfo.applicationId,
|
||||
webDomain = searchInfo.webDomain,
|
||||
context = this
|
||||
)) {
|
||||
val readOnly = database?.isReadOnly != false
|
||||
SearchHelper.checkAutoSearchInfo(this,
|
||||
database,
|
||||
searchInfo,
|
||||
{ openedDatabase, _ ->
|
||||
if (!readOnly) {
|
||||
// Show the database UI to select the entry
|
||||
GroupActivity.launchForRegistration(this,
|
||||
openedDatabase,
|
||||
registerInfo)
|
||||
} else {
|
||||
showReadOnlySaveMessage()
|
||||
}
|
||||
},
|
||||
{ openedDatabase ->
|
||||
if (!readOnly) {
|
||||
// Show the database UI to select the entry
|
||||
GroupActivity.launchForRegistration(this,
|
||||
openedDatabase,
|
||||
registerInfo)
|
||||
} else {
|
||||
showReadOnlySaveMessage()
|
||||
}
|
||||
},
|
||||
{
|
||||
// If database not open
|
||||
FileDatabaseSelectActivity.launchForRegistration(this,
|
||||
registerInfo)
|
||||
database,
|
||||
searchInfo,
|
||||
{ openedDatabase, _ ->
|
||||
if (!readOnly) {
|
||||
// Show the database UI to select the entry
|
||||
GroupActivity.launchForRegistration(this,
|
||||
openedDatabase,
|
||||
registerInfo)
|
||||
} else {
|
||||
showReadOnlySaveMessage()
|
||||
}
|
||||
},
|
||||
{ openedDatabase ->
|
||||
if (!readOnly) {
|
||||
// Show the database UI to select the entry
|
||||
GroupActivity.launchForRegistration(this,
|
||||
openedDatabase,
|
||||
registerInfo)
|
||||
} else {
|
||||
showReadOnlySaveMessage()
|
||||
}
|
||||
},
|
||||
{
|
||||
// If database not open
|
||||
FileDatabaseSelectActivity.launchForRegistration(this,
|
||||
registerInfo)
|
||||
}
|
||||
)
|
||||
} else {
|
||||
showBlockRestartMessage()
|
||||
setResult(Activity.RESULT_CANCELED)
|
||||
}
|
||||
finish()
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ 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
|
||||
@@ -73,6 +72,7 @@ import com.kunzisoft.keepass.database.element.template.Template
|
||||
import com.kunzisoft.keepass.education.EntryEditActivityEducation
|
||||
import com.kunzisoft.keepass.magikeyboard.MagikeyboardService
|
||||
import com.kunzisoft.keepass.model.AttachmentState
|
||||
import com.kunzisoft.keepass.model.DataTime
|
||||
import com.kunzisoft.keepass.model.EntryAttachmentState
|
||||
import com.kunzisoft.keepass.model.RegisterInfo
|
||||
import com.kunzisoft.keepass.model.SearchInfo
|
||||
@@ -87,6 +87,7 @@ import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.tasks.ActionRunnable
|
||||
import com.kunzisoft.keepass.tasks.AttachmentFileBinderManager
|
||||
import com.kunzisoft.keepass.timeout.TimeoutHelper
|
||||
import com.kunzisoft.keepass.utils.TimeUtil.datePickerToDataDate
|
||||
import com.kunzisoft.keepass.utils.UriUtil.getDocumentFile
|
||||
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
|
||||
import com.kunzisoft.keepass.view.ToolbarAction
|
||||
@@ -96,7 +97,7 @@ 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.view.updateLockPaddingStart
|
||||
import com.kunzisoft.keepass.viewmodels.ColorPickerViewModel
|
||||
import com.kunzisoft.keepass.viewmodels.EntryEditViewModel
|
||||
import java.util.UUID
|
||||
@@ -301,7 +302,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
// Launch the time picker
|
||||
MaterialTimePicker.Builder().build().apply {
|
||||
addOnPositiveButtonClickListener {
|
||||
mEntryEditViewModel.selectTime(this.hour, this.minute)
|
||||
mEntryEditViewModel.selectTime(DataTime(this.hour, this.minute))
|
||||
}
|
||||
show(supportFragmentManager, "TimePickerFragment")
|
||||
}
|
||||
@@ -309,7 +310,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
// Launch the date picker
|
||||
MaterialDatePicker.Builder.datePicker().build().apply {
|
||||
addOnPositiveButtonClickListener {
|
||||
mEntryEditViewModel.selectDate(it)
|
||||
mEntryEditViewModel.selectDate(datePickerToDataDate(it))
|
||||
}
|
||||
show(supportFragmentManager, "DatePickerFragment")
|
||||
}
|
||||
@@ -502,7 +503,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
}
|
||||
|
||||
// Padding if lock button visible
|
||||
entryEditAddToolBar?.updateLockPaddingLeft()
|
||||
entryEditAddToolBar?.updateLockPaddingStart()
|
||||
|
||||
mAttachmentFileBinderManager?.apply {
|
||||
registerProgressTask()
|
||||
|
||||
@@ -84,6 +84,7 @@ import com.kunzisoft.keepass.database.helper.SearchHelper
|
||||
import com.kunzisoft.keepass.database.search.SearchParameters
|
||||
import com.kunzisoft.keepass.education.GroupActivityEducation
|
||||
import com.kunzisoft.keepass.magikeyboard.MagikeyboardService
|
||||
import com.kunzisoft.keepass.model.DataTime
|
||||
import com.kunzisoft.keepass.model.GroupInfo
|
||||
import com.kunzisoft.keepass.model.RegisterInfo
|
||||
import com.kunzisoft.keepass.model.SearchInfo
|
||||
@@ -96,6 +97,7 @@ import com.kunzisoft.keepass.tasks.ActionRunnable
|
||||
import com.kunzisoft.keepass.timeout.TimeoutHelper
|
||||
import com.kunzisoft.keepass.utils.BACK_PREVIOUS_KEYBOARD_ACTION
|
||||
import com.kunzisoft.keepass.utils.KeyboardUtil.showKeyboard
|
||||
import com.kunzisoft.keepass.utils.TimeUtil.datePickerToDataDate
|
||||
import com.kunzisoft.keepass.utils.UriUtil.openUrl
|
||||
import com.kunzisoft.keepass.utils.getParcelableCompat
|
||||
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
|
||||
@@ -111,9 +113,10 @@ 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.view.updateLockPaddingStart
|
||||
import com.kunzisoft.keepass.viewmodels.GroupEditViewModel
|
||||
import com.kunzisoft.keepass.viewmodels.GroupViewModel
|
||||
import org.joda.time.LocalDateTime
|
||||
|
||||
|
||||
class GroupActivity : DatabaseLockActivity(),
|
||||
@@ -339,8 +342,9 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
R.id.menu_save_copy_to -> {
|
||||
mExternalFileHelper?.createDocument(
|
||||
getString(R.string.database_file_name_default) +
|
||||
getString(R.string.database_file_name_copy) +
|
||||
mDatabase?.defaultFileExtension)
|
||||
"_" +
|
||||
LocalDateTime.now().toString() +
|
||||
mDatabase?.defaultFileExtension)
|
||||
}
|
||||
R.id.menu_lock_all -> {
|
||||
lockAndExit()
|
||||
@@ -358,43 +362,6 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
|
||||
searchFiltersView?.closeAdvancedFilters()
|
||||
|
||||
mBreadcrumbAdapter = BreadcrumbAdapter(this).apply {
|
||||
// Open group on breadcrumb click
|
||||
onItemClickListener = { node, _ ->
|
||||
// If last item & not a virtual root group
|
||||
val currentGroup = mMainGroup
|
||||
if (currentGroup != null && node == currentGroup
|
||||
&& (currentGroup != mDatabase?.rootGroup
|
||||
|| mDatabase?.rootGroupIsVirtual == false)
|
||||
) {
|
||||
finishNodeAction()
|
||||
launchDialogToShowGroupInfo(currentGroup)
|
||||
} else {
|
||||
if (mGroupFragment?.nodeActionSelectionMode == true) {
|
||||
finishNodeAction()
|
||||
}
|
||||
mDatabase?.let { database ->
|
||||
onNodeClick(database, node)
|
||||
}
|
||||
}
|
||||
}
|
||||
onLongItemClickListener = { node, position ->
|
||||
val currentGroup = mMainGroup
|
||||
if (currentGroup != null && node == currentGroup
|
||||
&& (currentGroup != mDatabase?.rootGroup
|
||||
|| mDatabase?.rootGroupIsVirtual == false)
|
||||
) {
|
||||
finishNodeAction()
|
||||
launchDialogForGroupUpdate(currentGroup)
|
||||
} else {
|
||||
onItemClickListener?.invoke(node, position)
|
||||
}
|
||||
}
|
||||
}
|
||||
breadcrumbListView?.apply {
|
||||
adapter = mBreadcrumbAdapter
|
||||
}
|
||||
|
||||
// Retrieve group if defined at launch
|
||||
manageIntent(intent)
|
||||
|
||||
@@ -475,7 +442,7 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
// Launch the time picker
|
||||
MaterialTimePicker.Builder().build().apply {
|
||||
addOnPositiveButtonClickListener {
|
||||
mGroupEditViewModel.selectTime(this.hour, this.minute)
|
||||
mGroupEditViewModel.selectTime(DataTime(this.hour, this.minute))
|
||||
}
|
||||
show(supportFragmentManager, "TimePickerFragment")
|
||||
}
|
||||
@@ -483,7 +450,7 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
// Launch the date picker
|
||||
MaterialDatePicker.Builder.datePicker().build().apply {
|
||||
addOnPositiveButtonClickListener {
|
||||
mGroupEditViewModel.selectDate(it)
|
||||
mGroupEditViewModel.selectDate(datePickerToDataDate(it))
|
||||
}
|
||||
show(supportFragmentManager, "DatePickerFragment")
|
||||
}
|
||||
@@ -616,6 +583,43 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
override fun onDatabaseRetrieved(database: ContextualDatabase?) {
|
||||
super.onDatabaseRetrieved(database)
|
||||
|
||||
mBreadcrumbAdapter = BreadcrumbAdapter(this, database).apply {
|
||||
// Open group on breadcrumb click
|
||||
onItemClickListener = { node, _ ->
|
||||
// If last item & not a virtual root group
|
||||
val currentGroup = mMainGroup
|
||||
if (currentGroup != null && node == currentGroup
|
||||
&& (currentGroup != mDatabase?.rootGroup
|
||||
|| mDatabase?.rootGroupIsVirtual == false)
|
||||
) {
|
||||
finishNodeAction()
|
||||
launchDialogToShowGroupInfo(currentGroup)
|
||||
} else {
|
||||
if (mGroupFragment?.nodeActionSelectionMode == true) {
|
||||
finishNodeAction()
|
||||
}
|
||||
mDatabase?.let { database ->
|
||||
onNodeClick(database, node)
|
||||
}
|
||||
}
|
||||
}
|
||||
onLongItemClickListener = { node, position ->
|
||||
val currentGroup = mMainGroup
|
||||
if (currentGroup != null && node == currentGroup
|
||||
&& (currentGroup != mDatabase?.rootGroup
|
||||
|| mDatabase?.rootGroupIsVirtual == false)
|
||||
) {
|
||||
finishNodeAction()
|
||||
launchDialogForGroupUpdate(currentGroup)
|
||||
} else {
|
||||
onItemClickListener?.invoke(node, position)
|
||||
}
|
||||
}
|
||||
}
|
||||
breadcrumbListView?.apply {
|
||||
adapter = mBreadcrumbAdapter
|
||||
}
|
||||
|
||||
mGroupEditViewModel.setGroupNamesNotAllowed(database?.groupNamesNotAllowed)
|
||||
|
||||
mRecyclingBinEnabled = !mDatabaseReadOnly
|
||||
@@ -1126,7 +1130,7 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
View.GONE
|
||||
}
|
||||
// Padding if lock button visible
|
||||
toolbarAction?.updateLockPaddingLeft()
|
||||
toolbarAction?.updateLockPaddingStart()
|
||||
|
||||
loadGroup()
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ import com.kunzisoft.keepass.utils.getParcelableExtraCompat
|
||||
import com.kunzisoft.keepass.utils.UriUtil.getDocumentFile
|
||||
import com.kunzisoft.keepass.utils.UriUtil.openUrl
|
||||
import com.kunzisoft.keepass.view.asError
|
||||
import com.kunzisoft.keepass.view.updateLockPaddingLeft
|
||||
import com.kunzisoft.keepass.view.updateLockPaddingStart
|
||||
import com.kunzisoft.keepass.viewmodels.IconPickerViewModel
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Deferred
|
||||
@@ -212,7 +212,7 @@ class IconPickerActivity : DatabaseLockActivity() {
|
||||
}
|
||||
|
||||
// Padding if lock button visible
|
||||
toolbar.updateLockPaddingLeft()
|
||||
toolbar.updateLockPaddingStart()
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.fragments.KeyGeneratorFragment
|
||||
import com.kunzisoft.keepass.activities.legacy.DatabaseLockActivity
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.view.updateLockPaddingLeft
|
||||
import com.kunzisoft.keepass.view.updateLockPaddingStart
|
||||
import com.kunzisoft.keepass.viewmodels.KeyGeneratorViewModel
|
||||
|
||||
class KeyGeneratorActivity : DatabaseLockActivity() {
|
||||
@@ -84,7 +84,7 @@ class KeyGeneratorActivity : DatabaseLockActivity() {
|
||||
}
|
||||
|
||||
// Padding if lock button visible
|
||||
toolbar.updateLockPaddingLeft()
|
||||
toolbar.updateLockPaddingStart()
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||
|
||||
@@ -32,7 +32,6 @@ import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.CompoundButton
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
@@ -43,6 +42,9 @@ import androidx.appcompat.widget.Toolbar
|
||||
import androidx.biometric.BiometricManager
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.dialogs.DuplicateUuidDialog
|
||||
@@ -81,10 +83,11 @@ import com.kunzisoft.keepass.view.asError
|
||||
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
|
||||
import com.kunzisoft.keepass.viewmodels.AdvancedUnlockViewModel
|
||||
import com.kunzisoft.keepass.viewmodels.DatabaseFileViewModel
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.FileNotFoundException
|
||||
|
||||
|
||||
class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.BuilderListener {
|
||||
class MainCredentialActivity : DatabaseModeActivity() {
|
||||
|
||||
// Views
|
||||
private var toolbar: Toolbar? = null
|
||||
@@ -166,21 +169,13 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
}
|
||||
|
||||
// Listen password checkbox to init advanced unlock and confirmation button
|
||||
mainCredentialView?.onPasswordChecked =
|
||||
CompoundButton.OnCheckedChangeListener { _, _ ->
|
||||
mAdvancedUnlockViewModel.checkUnlockAvailability()
|
||||
enableConfirmationButton()
|
||||
}
|
||||
mainCredentialView?.onKeyFileChecked =
|
||||
CompoundButton.OnCheckedChangeListener { _, _ ->
|
||||
// TODO mAdvancedUnlockViewModel.checkUnlockAvailability()
|
||||
enableConfirmationButton()
|
||||
}
|
||||
mainCredentialView?.onHardwareKeyChecked =
|
||||
CompoundButton.OnCheckedChangeListener { _, _ ->
|
||||
// TODO mAdvancedUnlockViewModel.checkUnlockAvailability()
|
||||
enableConfirmationButton()
|
||||
}
|
||||
mainCredentialView?.onConditionToStoreCredentialChanged = { _, verified ->
|
||||
mAdvancedUnlockViewModel.checkUnlockAvailability(
|
||||
conditionToStoreCredentialVerified = verified
|
||||
)
|
||||
// TODO Async by ViewModel
|
||||
enableConfirmationButton()
|
||||
}
|
||||
|
||||
// Observe if default database
|
||||
mDatabaseFileViewModel.isDefaultDatabase.observe(this) { isDefaultDatabase ->
|
||||
@@ -228,6 +223,27 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
|
||||
onDatabaseFileLoaded(databaseFile?.databaseUri, keyFileUri, hardwareKey)
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
mAdvancedUnlockViewModel.uiState.collect { uiState ->
|
||||
// New value received
|
||||
if (uiState.isCredentialRequired) {
|
||||
mAdvancedUnlockViewModel.provideCredentialForEncryption(
|
||||
getCredentialForEncryption()
|
||||
)
|
||||
}
|
||||
uiState.cipherEncryptDatabase?.let { cipherEncryptDatabase ->
|
||||
onCredentialEncrypted(cipherEncryptDatabase)
|
||||
mAdvancedUnlockViewModel.consumeCredentialEncrypted()
|
||||
}
|
||||
uiState.cipherDecryptDatabase?.let { cipherDecryptDatabase ->
|
||||
onCredentialDecrypted(cipherDecryptDatabase)
|
||||
mAdvancedUnlockViewModel.consumeCredentialDecrypted()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@@ -296,9 +312,6 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
super.onDatabaseActionFinished(database, actionTask, result)
|
||||
when (actionTask) {
|
||||
ACTION_DATABASE_LOAD_TASK -> {
|
||||
// Recheck advanced unlock if error
|
||||
mAdvancedUnlockViewModel.initAdvancedUnlockMode()
|
||||
|
||||
if (result.isSuccess) {
|
||||
launchGroupActivityIfLoaded(database)
|
||||
} else {
|
||||
@@ -400,23 +413,6 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
}
|
||||
}
|
||||
|
||||
override fun retrieveCredentialForEncryption(): ByteArray {
|
||||
return mainCredentialView?.retrieveCredentialForStorage(credentialStorageListener)
|
||||
?: byteArrayOf()
|
||||
}
|
||||
|
||||
override fun conditionToStoreCredential(): Boolean {
|
||||
return mainCredentialView?.conditionToStoreCredential() == true
|
||||
}
|
||||
|
||||
override fun onCredentialEncrypted(cipherEncryptDatabase: CipherEncryptDatabase) {
|
||||
// Load the database if password is registered with biometric
|
||||
loadDatabase(mDatabaseFileUri,
|
||||
mainCredentialView?.getMainCredential(),
|
||||
cipherEncryptDatabase
|
||||
)
|
||||
}
|
||||
|
||||
private val credentialStorageListener = object: MainCredentialView.CredentialStorageListener {
|
||||
override fun passwordToStore(password: String?): ByteArray? {
|
||||
return password?.toByteArray()
|
||||
@@ -433,7 +429,20 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCredentialDecrypted(cipherDecryptDatabase: CipherDecryptDatabase) {
|
||||
private fun getCredentialForEncryption(): ByteArray {
|
||||
return mainCredentialView?.retrieveCredentialForStorage(credentialStorageListener)
|
||||
?: byteArrayOf()
|
||||
}
|
||||
|
||||
private fun onCredentialEncrypted(cipherEncryptDatabase: CipherEncryptDatabase) {
|
||||
// Load the database if password is registered with biometric
|
||||
loadDatabase(mDatabaseFileUri,
|
||||
mainCredentialView?.getMainCredential(),
|
||||
cipherEncryptDatabase
|
||||
)
|
||||
}
|
||||
|
||||
private fun onCredentialDecrypted(cipherDecryptDatabase: CipherDecryptDatabase) {
|
||||
// Load the database if password is retrieve from biometric
|
||||
// Retrieve from biometric
|
||||
val mainCredential = mainCredentialView?.getMainCredential() ?: MainCredential()
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.kunzisoft.keepass.activities.dialogs
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.WindowManager.LayoutParams.FLAG_SECURE
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import com.kunzisoft.keepass.activities.legacy.DatabaseRetrieval
|
||||
import com.kunzisoft.keepass.activities.legacy.resetAppTimeoutWhenViewTouchedOrFocused
|
||||
import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.tasks.ActionRunnable
|
||||
import com.kunzisoft.keepass.timeout.TimeoutHelper
|
||||
import com.kunzisoft.keepass.viewmodels.DatabaseViewModel
|
||||
@@ -29,6 +32,18 @@ abstract class DatabaseDialogFragment : DialogFragment(), DatabaseRetrieval {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
// Screenshot mode or hide views
|
||||
context?.let {
|
||||
if (PreferencesUtil.isScreenshotModeEnabled(it)) {
|
||||
dialog?.window?.clearFlags(FLAG_SECURE)
|
||||
} else {
|
||||
dialog?.window?.setFlags(FLAG_SECURE, FLAG_SECURE)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
|
||||
@@ -45,7 +45,6 @@ import com.kunzisoft.keepass.view.InheritedCompletionView
|
||||
import com.kunzisoft.keepass.view.TagsCompletionView
|
||||
import com.kunzisoft.keepass.viewmodels.GroupEditViewModel
|
||||
import com.tokenautocomplete.FilteredArrayAdapter
|
||||
import org.joda.time.DateTime
|
||||
|
||||
class GroupEditDialogFragment : DatabaseDialogFragment() {
|
||||
|
||||
@@ -90,27 +89,21 @@ class GroupEditDialogFragment : DatabaseDialogFragment() {
|
||||
mPopulateIconMethod?.invoke(iconButtonView, mGroupInfo.icon)
|
||||
}
|
||||
|
||||
mGroupEditViewModel.onDateSelected.observe(this) { dateMilliseconds ->
|
||||
mGroupEditViewModel.onDateSelected.observe(this) { date ->
|
||||
// Save the date
|
||||
mGroupInfo.expiryTime = DateInstant(
|
||||
DateTime(mGroupInfo.expiryTime.date)
|
||||
.withMillis(dateMilliseconds)
|
||||
.toDate())
|
||||
mGroupInfo.expiryTime.setDate(date.year, date.month, date.day)
|
||||
expirationView.dateTime = mGroupInfo.expiryTime
|
||||
if (expirationView.dateTime.type == DateInstant.Type.DATE_TIME) {
|
||||
val instantTime = DateInstant(mGroupInfo.expiryTime.date, DateInstant.Type.TIME)
|
||||
// Trick to recall selection with time
|
||||
mGroupEditViewModel.requestDateTimeSelection(instantTime)
|
||||
mGroupEditViewModel.requestDateTimeSelection(
|
||||
DateInstant(mGroupInfo.expiryTime.instant, DateInstant.Type.TIME)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
mGroupEditViewModel.onTimeSelected.observe(this) { viewModelTime ->
|
||||
// Save the time
|
||||
mGroupInfo.expiryTime = DateInstant(
|
||||
DateTime(mGroupInfo.expiryTime.date)
|
||||
.withHourOfDay(viewModelTime.hours)
|
||||
.withMinuteOfHour(viewModelTime.minutes)
|
||||
.toDate(), mGroupInfo.expiryTime.type)
|
||||
mGroupInfo.expiryTime.setTime(viewModelTime.hour, viewModelTime.minute)
|
||||
expirationView.dateTime = mGroupInfo.expiryTime
|
||||
}
|
||||
|
||||
@@ -255,11 +248,7 @@ class GroupEditDialogFragment : DatabaseDialogFragment() {
|
||||
|
||||
private fun retrieveGroupInfoFromViews() {
|
||||
mGroupInfo.title = nameTextView.text.toString()
|
||||
// Only if there
|
||||
val newNotes = notesTextView.text.toString()
|
||||
if (newNotes.isNotEmpty()) {
|
||||
mGroupInfo.notes = newNotes
|
||||
}
|
||||
mGroupInfo.notes = notesTextView.text?.toString()
|
||||
mGroupInfo.expires = expirationView.activation
|
||||
mGroupInfo.expiryTime = expirationView.dateTime
|
||||
mGroupInfo.searchable = searchableView.getValue()
|
||||
|
||||
@@ -43,8 +43,13 @@ import com.kunzisoft.keepass.utils.UriUtil.getDocumentFile
|
||||
import com.kunzisoft.keepass.utils.UriUtil.openUrl
|
||||
import com.kunzisoft.keepass.view.HardwareKeySelectionView
|
||||
import com.kunzisoft.keepass.view.KeyFileSelectionView
|
||||
import com.kunzisoft.keepass.view.PassKeyView
|
||||
import com.kunzisoft.keepass.view.PasswordEditView
|
||||
import com.kunzisoft.keepass.view.applyFontVisibility
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import java.security.SecureRandom
|
||||
|
||||
|
||||
class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
|
||||
@@ -55,11 +60,12 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
private lateinit var rootView: View
|
||||
|
||||
private lateinit var passwordCheckBox: CompoundButton
|
||||
private lateinit var passwordView: PassKeyView
|
||||
private lateinit var passwordEditView: PasswordEditView
|
||||
private lateinit var passwordRepeatTextInputLayout: TextInputLayout
|
||||
private lateinit var passwordRepeatView: TextView
|
||||
|
||||
private lateinit var keyFileCheckBox: CompoundButton
|
||||
private lateinit var keyFileGenerateButton: View
|
||||
private lateinit var keyFileSelectionView: KeyFileSelectionView
|
||||
|
||||
private lateinit var hardwareKeyCheckBox: CompoundButton
|
||||
@@ -141,30 +147,40 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
}
|
||||
|
||||
passwordCheckBox = rootView.findViewById(R.id.password_checkbox)
|
||||
passwordView = rootView.findViewById(R.id.password_view)
|
||||
passwordEditView = rootView.findViewById(R.id.password_view)
|
||||
passwordRepeatTextInputLayout = rootView.findViewById(R.id.password_repeat_input_layout)
|
||||
passwordRepeatView = rootView.findViewById(R.id.password_confirmation)
|
||||
passwordRepeatView.applyFontVisibility()
|
||||
|
||||
keyFileCheckBox = rootView.findViewById(R.id.keyfile_checkbox)
|
||||
keyFileGenerateButton = rootView.findViewById(R.id.keyfile_generate)
|
||||
keyFileSelectionView = rootView.findViewById(R.id.keyfile_selection)
|
||||
|
||||
hardwareKeyCheckBox = rootView.findViewById(R.id.hardware_key_checkbox)
|
||||
hardwareKeySelectionView = rootView.findViewById(R.id.hardware_key_selection)
|
||||
|
||||
mExternalFileHelper = ExternalFileHelper(this)
|
||||
mExternalFileHelper?.buildCreateDocument { createdFileUri ->
|
||||
createdFileUri?.let { uri ->
|
||||
createKeyFile(uri)
|
||||
keyFileSelectionView.error = null
|
||||
keyFileCheckBox.isChecked = true
|
||||
keyFileSelectionView.uri = uri
|
||||
}
|
||||
}
|
||||
mExternalFileHelper?.buildOpenDocument { uri ->
|
||||
uri?.let { pathUri ->
|
||||
pathUri.getDocumentFile(requireContext())?.length()?.let { lengthFile ->
|
||||
keyFileSelectionView.error = null
|
||||
keyFileCheckBox.isChecked = true
|
||||
keyFileSelectionView.uri = pathUri
|
||||
if (lengthFile <= 0L) {
|
||||
showEmptyKeyFileConfirmationDialog()
|
||||
}
|
||||
showLengthKeyFileConfirmationDialog(lengthFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
keyFileGenerateButton.setOnClickListener {
|
||||
mExternalFileHelper?.createDocument(DEFAULT_KEYFILE_NAME)
|
||||
}
|
||||
keyFileSelectionView.setOpenDocumentClickListener(mExternalFileHelper)
|
||||
|
||||
hardwareKeySelectionView.selectionListener = { hardwareKey ->
|
||||
@@ -202,6 +218,16 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
return super.onCreateDialog(savedInstanceState)
|
||||
}
|
||||
|
||||
private fun createKeyFile(uri: Uri) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
activity?.contentResolver?.openOutputStream(uri)?.use { outputStream ->
|
||||
val randomBytes = ByteArray(DEFAULT_KEYFILE_SIZE)
|
||||
SecureRandom().nextBytes(randomBytes)
|
||||
outputStream.write(randomBytes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun approveMainCredential() {
|
||||
val errorPassword = verifyPassword()
|
||||
val errorKeyFile = verifyKeyFile()
|
||||
@@ -250,7 +276,7 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
var error = false
|
||||
passwordRepeatTextInputLayout.error = null
|
||||
if (passwordCheckBox.isChecked) {
|
||||
mMasterPassword = passwordView.passwordString
|
||||
mMasterPassword = passwordEditView.passwordString
|
||||
val confPassword = passwordRepeatView.text.toString()
|
||||
|
||||
// Verify that passwords match
|
||||
@@ -302,13 +328,13 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
super.onResume()
|
||||
|
||||
// To check checkboxes if a text is present
|
||||
passwordView.addTextChangedListener(passwordTextWatcher)
|
||||
passwordEditView.addTextChangedListener(passwordTextWatcher)
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
|
||||
passwordView.removeTextChangedListener(passwordTextWatcher)
|
||||
passwordEditView.removeTextChangedListener(passwordTextWatcher)
|
||||
}
|
||||
|
||||
private fun showEmptyPasswordConfirmationDialog() {
|
||||
@@ -339,21 +365,31 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showEmptyKeyFileConfirmationDialog() {
|
||||
private fun showLengthKeyFileConfirmationDialog(length: Long) {
|
||||
activity?.let {
|
||||
val builder = AlertDialog.Builder(it)
|
||||
builder.setMessage(SpannableStringBuilder().apply {
|
||||
append(getString(R.string.warning_empty_keyfile))
|
||||
append("\n\n")
|
||||
append(getString(R.string.warning_empty_keyfile_explanation))
|
||||
append("\n\n")
|
||||
append(getString(R.string.warning_sure_add_file))
|
||||
})
|
||||
.setPositiveButton(android.R.string.ok) { _, _ -> }
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ ->
|
||||
keyFileCheckBox.isChecked = false
|
||||
keyFileSelectionView.uri = null
|
||||
}
|
||||
var warning = false
|
||||
if (length <= 0L) {
|
||||
warning = true
|
||||
append("\n\n")
|
||||
append(getString(R.string.warning_empty_keyfile))
|
||||
} else if (length > 10485760L) {
|
||||
warning = true
|
||||
append("\n\n")
|
||||
append(getString(R.string.warning_large_keyfile))
|
||||
}
|
||||
if (warning) {
|
||||
append("\n\n")
|
||||
append(getString(R.string.warning_sure_add_file))
|
||||
}
|
||||
})
|
||||
.setPositiveButton(android.R.string.ok) { _, _ -> }
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ ->
|
||||
keyFileCheckBox.isChecked = false
|
||||
keyFileSelectionView.uri = null
|
||||
}
|
||||
mEmptyKeyFileConfirmationDialog = builder.create()
|
||||
mEmptyKeyFileConfirmationDialog?.show()
|
||||
}
|
||||
@@ -362,6 +398,8 @@ class SetMainCredentialDialogFragment : DatabaseDialogFragment() {
|
||||
companion object {
|
||||
|
||||
private const val ALLOW_NO_MASTER_KEY_ARG = "ALLOW_NO_MASTER_KEY_ARG"
|
||||
private const val DEFAULT_KEYFILE_NAME = "keyfile.bin"
|
||||
private const val DEFAULT_KEYFILE_SIZE = 128
|
||||
|
||||
fun getInstance(allowNoMasterKey: Boolean): SetMainCredentialDialogFragment {
|
||||
val fragment = SetMainCredentialDialogFragment()
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.kunzisoft.keepass.otp.OtpElement.Companion.MAX_TOTP_PERIOD
|
||||
import com.kunzisoft.keepass.otp.OtpElement.Companion.MIN_HOTP_COUNTER
|
||||
import com.kunzisoft.keepass.otp.OtpElement.Companion.MIN_OTP_DIGITS
|
||||
import com.kunzisoft.keepass.otp.OtpElement.Companion.MIN_TOTP_PERIOD
|
||||
import com.kunzisoft.keepass.otp.OtpElement.Companion.MIN_OTP_SECRET
|
||||
import com.kunzisoft.keepass.otp.OtpTokenType
|
||||
import com.kunzisoft.keepass.otp.OtpType
|
||||
import com.kunzisoft.keepass.otp.TokenCalculator
|
||||
@@ -224,6 +225,9 @@ class SetOTPDialogFragment : DatabaseDialogFragment() {
|
||||
}
|
||||
otpAlgorithmSpinner?.adapter = otpAlgorithmAdapter
|
||||
|
||||
// Ensure that the UX does not prevent user from hiding/unhiding text
|
||||
otpSecretContainer?.errorIconDrawable = null
|
||||
|
||||
// Set the default value of OTP element
|
||||
upgradeType()
|
||||
upgradeTokenType()
|
||||
@@ -310,11 +314,16 @@ class SetOTPDialogFragment : DatabaseDialogFragment() {
|
||||
otpSecretTextView?.addTextChangedListener(object: TextWatcher {
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
s?.toString()?.let { userString ->
|
||||
try {
|
||||
mOtpElement.setBase32Secret(userString.uppercase(Locale.ENGLISH))
|
||||
otpSecretContainer?.error = null
|
||||
} catch (exception: Exception) {
|
||||
otpSecretContainer?.error = getString(R.string.error_otp_secret_key)
|
||||
if (userString.length >= MIN_OTP_SECRET) {
|
||||
try {
|
||||
mOtpElement.setBase32Secret(userString.uppercase(Locale.ENGLISH))
|
||||
otpSecretContainer?.error = null
|
||||
} catch (exception: Exception) {
|
||||
otpSecretContainer?.error = getString(R.string.error_otp_secret_key)
|
||||
}
|
||||
} else {
|
||||
otpSecretContainer?.error = getString(R.string.error_otp_secret_length,
|
||||
MIN_OTP_SECRET)
|
||||
}
|
||||
mSecretWellFormed = otpSecretContainer?.error == null
|
||||
}
|
||||
|
||||
@@ -34,12 +34,12 @@ import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.password.PassphraseGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.timeout.ClipboardHelper
|
||||
import com.kunzisoft.keepass.view.PassKeyView
|
||||
import com.kunzisoft.keepass.view.PasswordEditView
|
||||
import com.kunzisoft.keepass.viewmodels.KeyGeneratorViewModel
|
||||
|
||||
class PassphraseGeneratorFragment : DatabaseFragment() {
|
||||
|
||||
private lateinit var passKeyView: PassKeyView
|
||||
private lateinit var passwordEditView: PasswordEditView
|
||||
|
||||
private lateinit var sliderWordCount: Slider
|
||||
private lateinit var wordCountText: EditText
|
||||
@@ -62,7 +62,7 @@ class PassphraseGeneratorFragment : DatabaseFragment() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
passKeyView = view.findViewById(R.id.passphrase_view)
|
||||
passwordEditView = view.findViewById(R.id.passphrase_view)
|
||||
val passphraseCopyView: ImageView? = view.findViewById(R.id.passphrase_copy_button)
|
||||
sliderWordCount = view.findViewById(R.id.slider_word_count)
|
||||
wordCountText = view.findViewById(R.id.word_count)
|
||||
@@ -80,7 +80,7 @@ class PassphraseGeneratorFragment : DatabaseFragment() {
|
||||
passphraseCopyView?.setOnClickListener {
|
||||
clipboardHelper.timeoutCopyToClipboard(
|
||||
getString(R.string.passphrase),
|
||||
passKeyView.passwordString,
|
||||
passwordEditView.passwordString,
|
||||
true
|
||||
)
|
||||
}
|
||||
@@ -146,7 +146,7 @@ class PassphraseGeneratorFragment : DatabaseFragment() {
|
||||
generatePassphrase()
|
||||
|
||||
mKeyGeneratorViewModel.passphraseGeneratedValidated.observe(viewLifecycleOwner) {
|
||||
mKeyGeneratorViewModel.setKeyGenerated(passKeyView.passwordString)
|
||||
mKeyGeneratorViewModel.setKeyGenerated(passwordEditView.passwordString)
|
||||
}
|
||||
|
||||
mKeyGeneratorViewModel.requirePassphraseGeneration.observe(viewLifecycleOwner) {
|
||||
@@ -219,7 +219,7 @@ class PassphraseGeneratorFragment : DatabaseFragment() {
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Unable to generate a passphrase", e)
|
||||
}
|
||||
passKeyView.passwordString = passphrase
|
||||
passwordEditView.passwordString = passphrase
|
||||
charactersCountText.text = getString(R.string.character_count, passphrase.length)
|
||||
}
|
||||
|
||||
|
||||
@@ -36,12 +36,12 @@ import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.timeout.ClipboardHelper
|
||||
import com.kunzisoft.keepass.view.PassKeyView
|
||||
import com.kunzisoft.keepass.view.PasswordEditView
|
||||
import com.kunzisoft.keepass.viewmodels.KeyGeneratorViewModel
|
||||
|
||||
class PasswordGeneratorFragment : DatabaseFragment() {
|
||||
|
||||
private lateinit var passKeyView: PassKeyView
|
||||
private lateinit var passwordEditView: PasswordEditView
|
||||
|
||||
private lateinit var sliderLength: Slider
|
||||
private lateinit var lengthEditView: EditText
|
||||
@@ -74,7 +74,7 @@ class PasswordGeneratorFragment : DatabaseFragment() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
passKeyView = view.findViewById(R.id.password_view)
|
||||
passwordEditView = view.findViewById(R.id.password_view)
|
||||
val passwordCopyView: ImageView? = view.findViewById(R.id.password_copy_button)
|
||||
|
||||
sliderLength = view.findViewById(R.id.slider_length)
|
||||
@@ -101,7 +101,7 @@ class PasswordGeneratorFragment : DatabaseFragment() {
|
||||
passwordCopyView?.setOnClickListener {
|
||||
clipboardHelper.timeoutCopyToClipboard(
|
||||
getString(R.string.password),
|
||||
passKeyView.passwordString,
|
||||
passwordEditView.passwordString,
|
||||
true
|
||||
)
|
||||
}
|
||||
@@ -195,7 +195,7 @@ class PasswordGeneratorFragment : DatabaseFragment() {
|
||||
generatePassword()
|
||||
|
||||
mKeyGeneratorViewModel.passwordGeneratedValidated.observe(viewLifecycleOwner) {
|
||||
mKeyGeneratorViewModel.setKeyGenerated(passKeyView.passwordString)
|
||||
mKeyGeneratorViewModel.setKeyGenerated(passwordEditView.passwordString)
|
||||
}
|
||||
|
||||
mKeyGeneratorViewModel.requirePasswordGeneration.observe(viewLifecycleOwner) {
|
||||
@@ -310,7 +310,7 @@ class PasswordGeneratorFragment : DatabaseFragment() {
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Unable to generate a password", e)
|
||||
}
|
||||
passKeyView.passwordString = password
|
||||
passwordEditView.passwordString = password
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -10,6 +10,7 @@ import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.database.element.Database
|
||||
import com.kunzisoft.keepass.database.element.Group
|
||||
import com.kunzisoft.keepass.database.element.node.Node
|
||||
import com.kunzisoft.keepass.database.element.node.Type
|
||||
@@ -17,7 +18,7 @@ import com.kunzisoft.keepass.icons.IconDrawableFactory
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.view.strikeOut
|
||||
|
||||
class BreadcrumbAdapter(val context: Context)
|
||||
class BreadcrumbAdapter(val context: Context, val database: Database?)
|
||||
: RecyclerView.Adapter<BreadcrumbAdapter.BreadcrumbGroupViewHolder>() {
|
||||
|
||||
private val inflater: LayoutInflater = LayoutInflater.from(context)
|
||||
@@ -31,6 +32,8 @@ class BreadcrumbAdapter(val context: Context)
|
||||
var onItemClickListener: ((item: Node, position: Int)->Unit)? = null
|
||||
var onLongItemClickListener: ((item: Node, position: Int)->Unit)? = null
|
||||
|
||||
private var mNodeFilter: NodeFilter = NodeFilter(context, database)
|
||||
|
||||
private var mShowNumberEntries = false
|
||||
private var mShowUUID = false
|
||||
private var mIconColor: Int = 0
|
||||
@@ -112,12 +115,10 @@ class BreadcrumbAdapter(val context: Context)
|
||||
|
||||
holder.groupNumbersView?.apply {
|
||||
if (mShowNumberEntries) {
|
||||
group.refreshNumberOfChildEntries(
|
||||
Group.ChildFilter.getDefaults(
|
||||
PreferencesUtil.showExpiredEntries(context)
|
||||
)
|
||||
)
|
||||
text = group.recursiveNumberOfChildEntries.toString()
|
||||
text = group.getNumberOfChildEntries(
|
||||
mNodeFilter.recursiveNumberOfEntries,
|
||||
mNodeFilter.filter
|
||||
).toString()
|
||||
visibility = View.VISIBLE
|
||||
} else {
|
||||
visibility = View.GONE
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.kunzisoft.keepass.adapters
|
||||
|
||||
import android.content.Context
|
||||
import com.kunzisoft.keepass.database.element.Database
|
||||
import com.kunzisoft.keepass.database.element.Entry
|
||||
import com.kunzisoft.keepass.database.element.Group
|
||||
import com.kunzisoft.keepass.database.element.node.Node
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
|
||||
class NodeFilter(
|
||||
context: Context,
|
||||
var database: Database? = null
|
||||
) {
|
||||
var recursiveNumberOfEntries = PreferencesUtil.recursiveNumberEntries(context)
|
||||
private set
|
||||
private var showExpired = PreferencesUtil.showExpiredEntries(context)
|
||||
private var showTemplate = PreferencesUtil.showTemplates(context)
|
||||
|
||||
val filter: (Node) -> Boolean = { node ->
|
||||
when (node) {
|
||||
is Entry -> {
|
||||
node.entryKDB?.isMetaStream() != true
|
||||
}
|
||||
is Group -> {
|
||||
showTemplate || database?.templatesGroup != node
|
||||
}
|
||||
else -> true
|
||||
} && (showExpired || !node.isCurrentlyExpires)
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ package com.kunzisoft.keepass.adapters
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import android.util.TypedValue
|
||||
import android.view.LayoutInflater
|
||||
@@ -66,6 +67,7 @@ class NodesAdapter (
|
||||
private val mNodeSortedListCallback: NodeSortedListCallback
|
||||
private val mNodeSortedList: SortedList<Node>
|
||||
private val mInflater: LayoutInflater = LayoutInflater.from(context)
|
||||
private val mNodeFilter: NodeFilter = NodeFilter(context, database)
|
||||
|
||||
private var mCalculateViewTypeTextSize = Array(2) { true } // number of view type
|
||||
private var mTextSizeUnit: Int = TypedValue.COMPLEX_UNIT_PX
|
||||
@@ -82,7 +84,7 @@ class NodesAdapter (
|
||||
private var mShowNumberEntries: Boolean = true
|
||||
private var mShowOTP: Boolean = false
|
||||
private var mShowUUID: Boolean = false
|
||||
private var mEntryFilters = arrayOf<Group.ChildFilter>()
|
||||
private var mNodeFilters: NodeFilter? = null
|
||||
private var mOldVirtualGroup = false
|
||||
private var mVirtualGroup = false
|
||||
|
||||
@@ -161,9 +163,7 @@ class NodesAdapter (
|
||||
this.mShowOTP = PreferencesUtil.showOTPToken(context)
|
||||
this.mShowUUID = PreferencesUtil.showUUID(context)
|
||||
|
||||
this.mEntryFilters = Group.ChildFilter.getDefaults(
|
||||
PreferencesUtil.showExpiredEntries(context)
|
||||
)
|
||||
this.mNodeFilters = NodeFilter(context, database)
|
||||
|
||||
// Reinit textSize for all view type
|
||||
mCalculateViewTypeTextSize.forEachIndexed { index, _ -> mCalculateViewTypeTextSize[index] = true }
|
||||
@@ -176,7 +176,7 @@ class NodesAdapter (
|
||||
mOldVirtualGroup = mVirtualGroup
|
||||
mVirtualGroup = group.isVirtual
|
||||
assignPreferences()
|
||||
mNodeSortedList.replaceAll(group.getFilteredChildren(mEntryFilters))
|
||||
mNodeSortedList.replaceAll(group.getChildren(mNodeFilter.filter))
|
||||
}
|
||||
|
||||
private inner class NodeSortedListCallback: SortedListAdapterCallback<Node>(this) {
|
||||
@@ -205,6 +205,11 @@ class NodesAdapter (
|
||||
&& oldItem.type == newItem.type
|
||||
&& oldItem.title == newItem.title
|
||||
&& oldItem.icon == newItem.icon
|
||||
&& oldItem.creationTime == newItem.creationTime
|
||||
&& oldItem.lastModificationTime == newItem.lastModificationTime
|
||||
&& oldItem.lastAccessTime == newItem.lastAccessTime
|
||||
&& oldItem.expiryTime == newItem.expiryTime
|
||||
&& oldItem.expires == newItem.expires
|
||||
&& oldItem.isCurrentlyExpires == newItem.isCurrentlyExpires
|
||||
}
|
||||
|
||||
@@ -473,7 +478,10 @@ class NodesAdapter (
|
||||
if (mShowNumberEntries) {
|
||||
holder.numberChildren?.apply {
|
||||
text = (subNode as Group)
|
||||
.recursiveNumberOfChildEntries
|
||||
.getNumberOfChildEntries(
|
||||
mNodeFilter.recursiveNumberOfEntries,
|
||||
mNodeFilter.filter
|
||||
)
|
||||
.toString()
|
||||
setTextSize(mTextSizeUnit, mNumberChildrenTextDefaultDimension, mPrefSizeMultiplier)
|
||||
visibility = View.VISIBLE
|
||||
@@ -522,6 +530,9 @@ class NodesAdapter (
|
||||
holder?.otpToken?.apply {
|
||||
text = otpElement?.tokenString
|
||||
setTextSize(mTextSizeUnit, mOtpTokenTextDefaultDimension, mPrefSizeMultiplier)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
textDirection = View.TEXT_DIRECTION_LTR
|
||||
}
|
||||
}
|
||||
holder?.otpContainer?.setOnClickListener {
|
||||
otpElement?.token?.let { token ->
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.net.Uri
|
||||
import android.os.IBinder
|
||||
import android.util.Base64
|
||||
import android.util.Log
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.kunzisoft.keepass.database.element.binary.BinaryData.Companion.BASE64_FLAG
|
||||
import com.kunzisoft.keepass.model.CipherEncryptDatabase
|
||||
import com.kunzisoft.keepass.services.AdvancedUnlockNotificationService
|
||||
@@ -69,9 +70,11 @@ class CipherDatabaseAction(context: Context) {
|
||||
|
||||
@Synchronized
|
||||
private fun attachService(performedAction: () -> Unit) {
|
||||
applicationContext.registerReceiver(mAdvancedUnlockBroadcastReceiver, IntentFilter().apply {
|
||||
addAction(AdvancedUnlockNotificationService.REMOVE_ADVANCED_UNLOCK_KEY_ACTION)
|
||||
})
|
||||
ContextCompat.registerReceiver(applicationContext, mAdvancedUnlockBroadcastReceiver,
|
||||
IntentFilter().apply {
|
||||
addAction(AdvancedUnlockNotificationService.REMOVE_ADVANCED_UNLOCK_KEY_ACTION)
|
||||
}, ContextCompat.RECEIVER_EXPORTED
|
||||
)
|
||||
|
||||
mServiceConnection = object : ServiceConnection {
|
||||
override fun onServiceConnected(name: ComponentName?, serviceBinder: IBinder?) {
|
||||
@@ -97,7 +100,7 @@ class CipherDatabaseAction(context: Context) {
|
||||
private fun detachService() {
|
||||
try {
|
||||
applicationContext.unregisterReceiver(mAdvancedUnlockBroadcastReceiver)
|
||||
} catch (e: Exception) {}
|
||||
} catch (_: Exception) {}
|
||||
|
||||
mServiceConnection?.let {
|
||||
AdvancedUnlockNotificationService.unbindService(applicationContext, it)
|
||||
@@ -181,6 +184,14 @@ class CipherDatabaseAction(context: Context) {
|
||||
}
|
||||
}
|
||||
|
||||
fun resetCipherParameters(databaseUri: Uri) {
|
||||
containsCipherDatabase(databaseUri) { contains ->
|
||||
if (contains) {
|
||||
mBinder?.resetTimer()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun addOrUpdateCipherDatabase(cipherEncryptDatabase: CipherEncryptDatabase,
|
||||
cipherDatabaseResultListener: (() -> Unit)? = null) {
|
||||
cipherEncryptDatabase.databaseUri?.let { databaseUri ->
|
||||
|
||||
@@ -176,8 +176,8 @@ object AutofillHelper {
|
||||
}
|
||||
|
||||
if (entryInfo.expires) {
|
||||
val year = entryInfo.expiryTime.getYearInt()
|
||||
val month = entryInfo.expiryTime.getMonthInt()
|
||||
val year = entryInfo.expiryTime.getYear()
|
||||
val month = entryInfo.expiryTime.getMonth()
|
||||
val monthString = month.toString().padStart(2, '0')
|
||||
val day = entryInfo.expiryTime.getDay()
|
||||
val dayString = day.toString().padStart(2, '0')
|
||||
@@ -192,7 +192,7 @@ object AutofillHelper {
|
||||
} else {
|
||||
datasetBuilder.addValueToDatasetBuilder(
|
||||
it,
|
||||
AutofillValue.forDate(entryInfo.expiryTime.date.time)
|
||||
AutofillValue.forDate(entryInfo.expiryTime.toMilliseconds())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,12 +21,21 @@ package com.kunzisoft.keepass.autofill
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.BlendMode
|
||||
import android.graphics.drawable.Icon
|
||||
import android.os.Build
|
||||
import android.os.CancellationSignal
|
||||
import android.service.autofill.*
|
||||
import android.service.autofill.AutofillService
|
||||
import android.service.autofill.FillCallback
|
||||
import android.service.autofill.FillRequest
|
||||
import android.service.autofill.FillResponse
|
||||
import android.service.autofill.InlinePresentation
|
||||
import android.service.autofill.Presentations
|
||||
import android.service.autofill.SaveCallback
|
||||
import android.service.autofill.SaveInfo
|
||||
import android.service.autofill.SaveRequest
|
||||
import android.util.Log
|
||||
import android.view.autofill.AutofillId
|
||||
import android.widget.RemoteViews
|
||||
@@ -35,6 +44,7 @@ import androidx.autofill.inline.UiVersions
|
||||
import androidx.autofill.inline.v1.InlineSuggestionUi
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.AutofillLauncherActivity
|
||||
import com.kunzisoft.keepass.autofill.StructureParser.Companion.APPLICATION_ID_POPUP_WINDOW
|
||||
import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.database.DatabaseTaskProvider
|
||||
import com.kunzisoft.keepass.database.helper.SearchHelper
|
||||
@@ -99,8 +109,12 @@ class KeeAutofillService : AutofillService() {
|
||||
StructureParser(latestStructure).parse()?.let { parseResult ->
|
||||
|
||||
// Build search info only if applicationId or webDomain are not blocked
|
||||
if (autofillAllowedFor(parseResult.applicationId, applicationIdBlocklist)
|
||||
&& autofillAllowedFor(parseResult.webDomain, webDomainBlocklist)) {
|
||||
if (autofillAllowedFor(
|
||||
applicationId = parseResult.applicationId,
|
||||
applicationIdBlocklist = applicationIdBlocklist,
|
||||
webDomain = parseResult.webDomain,
|
||||
webDomainBlocklist = webDomainBlocklist)
|
||||
) {
|
||||
val searchInfo = SearchInfo().apply {
|
||||
applicationId = parseResult.applicationId
|
||||
webDomain = parseResult.webDomain
|
||||
@@ -258,7 +272,7 @@ class KeeAutofillService : AutofillService() {
|
||||
val inlinePresentationSpecs =
|
||||
inlineSuggestionsRequest.inlinePresentationSpecs
|
||||
if (inlineSuggestionsRequest.maxSuggestionCount > 0
|
||||
&& inlinePresentationSpecs.size > 0
|
||||
&& inlinePresentationSpecs.isNotEmpty()
|
||||
) {
|
||||
val inlinePresentationSpec = inlinePresentationSpecs[0]
|
||||
|
||||
@@ -274,11 +288,7 @@ class KeeAutofillService : AutofillService() {
|
||||
this,
|
||||
0,
|
||||
Intent(this, AutofillSettingsActivity::class.java),
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PendingIntent.FLAG_IMMUTABLE
|
||||
} else {
|
||||
0
|
||||
}
|
||||
PendingIntent.FLAG_IMMUTABLE
|
||||
)
|
||||
).apply {
|
||||
setContentDescription(getString(R.string.autofill_sign_in_prompt))
|
||||
@@ -352,8 +362,12 @@ class KeeAutofillService : AutofillService() {
|
||||
val latestStructure = request.fillContexts.last().structure
|
||||
StructureParser(latestStructure).parse(true)?.let { parseResult ->
|
||||
|
||||
if (autofillAllowedFor(parseResult.applicationId, applicationIdBlocklist)
|
||||
&& autofillAllowedFor(parseResult.webDomain, webDomainBlocklist)) {
|
||||
if (autofillAllowedFor(
|
||||
applicationId = parseResult.applicationId,
|
||||
applicationIdBlocklist = applicationIdBlocklist,
|
||||
webDomain = parseResult.webDomain,
|
||||
webDomainBlocklist = webDomainBlocklist)
|
||||
) {
|
||||
Log.d(TAG, "autofill onSaveRequest password")
|
||||
|
||||
// Build expiration from date or from year and month
|
||||
@@ -414,6 +428,28 @@ class KeeAutofillService : AutofillService() {
|
||||
companion object {
|
||||
private val TAG = KeeAutofillService::class.java.name
|
||||
|
||||
fun autofillAllowedFor(applicationId: String?,
|
||||
webDomain: String?,
|
||||
context: Context
|
||||
): Boolean {
|
||||
return autofillAllowedFor(
|
||||
applicationId = applicationId,
|
||||
applicationIdBlocklist = PreferencesUtil.applicationIdBlocklist(context),
|
||||
webDomain = webDomain,
|
||||
webDomainBlocklist = PreferencesUtil.webDomainBlocklist(context))
|
||||
}
|
||||
|
||||
fun autofillAllowedFor(applicationId: String?,
|
||||
applicationIdBlocklist: Set<String>?,
|
||||
webDomain: String?,
|
||||
webDomainBlocklist: Set<String>?
|
||||
): Boolean {
|
||||
return autofillAllowedFor(applicationId, applicationIdBlocklist)
|
||||
// To prevent unrecognized autofill popup id
|
||||
&& applicationId?.contains(APPLICATION_ID_POPUP_WINDOW) != true
|
||||
&& autofillAllowedFor(webDomain, webDomainBlocklist)
|
||||
}
|
||||
|
||||
fun autofillAllowedFor(element: String?, blockList: Set<String>?): Boolean {
|
||||
element?.let { elementNotNull ->
|
||||
if (blockList?.any { appIdBlocked ->
|
||||
|
||||
@@ -27,8 +27,7 @@ import android.view.autofill.AutofillId
|
||||
import android.view.autofill.AutofillValue
|
||||
import androidx.annotation.RequiresApi
|
||||
import org.joda.time.DateTime
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
import java.util.Locale
|
||||
|
||||
|
||||
/**
|
||||
@@ -52,7 +51,7 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
applicationId = windowNode.title.toString().split("/")[0]
|
||||
Log.d(TAG, "Autofill applicationId: $applicationId")
|
||||
|
||||
if (applicationId?.contains("PopupWindow:") == false) {
|
||||
if (applicationId?.contains(APPLICATION_ID_POPUP_WINDOW) == false) {
|
||||
if (parseViewNode(windowNode.rootViewNode))
|
||||
break@mainLoop
|
||||
}
|
||||
@@ -583,5 +582,7 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
|
||||
companion object {
|
||||
private val TAG = StructureParser::class.java.name
|
||||
|
||||
const val APPLICATION_ID_POPUP_WINDOW = "PopupWindow:"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,14 +20,18 @@
|
||||
package com.kunzisoft.keepass.biometric
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import android.view.LayoutInflater
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.biometric.BiometricManager
|
||||
@@ -35,7 +39,9 @@ import androidx.biometric.BiometricPrompt
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.app.database.CipherDatabaseAction
|
||||
import com.kunzisoft.keepass.database.exception.UnknownDatabaseLocationException
|
||||
@@ -52,8 +58,6 @@ import kotlinx.coroutines.launch
|
||||
|
||||
class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCallback {
|
||||
|
||||
private var mBuilderListener: BuilderListener? = null
|
||||
|
||||
private var mAdvancedUnlockEnabled = false
|
||||
private var mAutoOpenPromptEnabled = false
|
||||
|
||||
@@ -84,6 +88,8 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
// Only keep connection when we request a device credential activity
|
||||
private var keepConnection = false
|
||||
|
||||
private var isConditionToStoreCredentialVerified = false
|
||||
|
||||
private var mDeviceCredentialResultLauncher = registerForActivityResult(
|
||||
ActivityResultContracts.StartActivityForResult()
|
||||
) { result ->
|
||||
@@ -115,37 +121,10 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
super.onAttach(context)
|
||||
|
||||
mAdvancedUnlockEnabled = PreferencesUtil.isAdvancedUnlockEnable(context)
|
||||
mAutoOpenPromptEnabled = PreferencesUtil.isAdvancedUnlockPromptAutoOpenEnable(context)
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mBuilderListener = context as BuilderListener
|
||||
}
|
||||
} catch (e: ClassCastException) {
|
||||
throw ClassCastException(context.toString()
|
||||
+ " must implement " + BuilderListener::class.java.name)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
cipherDatabaseAction = CipherDatabaseAction.getInstance(requireContext().applicationContext)
|
||||
|
||||
mAdvancedUnlockViewModel.onInitAdvancedUnlockModeRequested.observe(this) {
|
||||
initAdvancedUnlockMode()
|
||||
}
|
||||
|
||||
mAdvancedUnlockViewModel.onUnlockAvailabilityCheckRequested.observe(this) {
|
||||
checkUnlockAvailability()
|
||||
}
|
||||
|
||||
mAdvancedUnlockViewModel.onDatabaseFileLoaded.observe(this) {
|
||||
onDatabaseLoaded(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
@@ -162,6 +141,32 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
activity?.addMenuProvider(menuProvider, viewLifecycleOwner)
|
||||
|
||||
viewLifecycleOwner.lifecycleScope.launch {
|
||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
mAdvancedUnlockViewModel.uiState.collect { uiState ->
|
||||
// Database loaded
|
||||
uiState.databaseFileLoaded?.let { databaseLoaded ->
|
||||
onDatabaseLoaded(databaseLoaded)
|
||||
mAdvancedUnlockViewModel.consumeDatabaseFileLoaded()
|
||||
}
|
||||
// New credential value received
|
||||
uiState.credential?.let {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
advancedUnlockManager?.encryptData(uiState.credential)
|
||||
}
|
||||
mAdvancedUnlockViewModel.consumeCredentialForEncryption()
|
||||
}
|
||||
// Condition to store credential verified
|
||||
isConditionToStoreCredentialVerified = uiState.isConditionToStoreCredentialVerified
|
||||
// Check unlock availability
|
||||
if (uiState.onUnlockAvailabilityCheckRequested) {
|
||||
checkUnlockAvailability()
|
||||
mAdvancedUnlockViewModel.consumeCheckUnlockAvailability()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@@ -178,10 +183,9 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
// To get device credential unlock result, only if same database uri
|
||||
if (databaseUri != null
|
||||
&& mAdvancedUnlockEnabled) {
|
||||
val deviceCredentialAuthSucceeded = mAdvancedUnlockViewModel.deviceCredentialAuthSucceeded
|
||||
deviceCredentialAuthSucceeded?.let {
|
||||
mAdvancedUnlockViewModel.deviceCredentialAuthSucceeded?.let { authSucceeded ->
|
||||
if (databaseUri == databaseFileUri) {
|
||||
if (deviceCredentialAuthSucceeded == true) {
|
||||
if (authSucceeded) {
|
||||
advancedUnlockManager?.advancedUnlockCallback?.onAuthenticationSucceeded()
|
||||
} else {
|
||||
advancedUnlockManager?.advancedUnlockCallback?.onAuthenticationFailed()
|
||||
@@ -250,7 +254,7 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
if (advancedUnlockManager?.isKeyManagerInitialized != true) {
|
||||
toggleMode(Mode.KEY_MANAGER_UNAVAILABLE)
|
||||
} else {
|
||||
if (mBuilderListener?.conditionToStoreCredential() == true) {
|
||||
if (isConditionToStoreCredentialVerified) {
|
||||
// listen for encryption
|
||||
toggleMode(Mode.STORE_CREDENTIAL)
|
||||
} else {
|
||||
@@ -261,8 +265,13 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
// listen for decryption
|
||||
Mode.EXTRACT_CREDENTIAL
|
||||
} else {
|
||||
// wait for typing
|
||||
Mode.WAIT_CREDENTIAL
|
||||
if (isConditionToStoreCredentialVerified) {
|
||||
// if condition OK, key manager in error
|
||||
Mode.KEY_MANAGER_UNAVAILABLE
|
||||
} else {
|
||||
// wait for typing
|
||||
Mode.WAIT_CREDENTIAL
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -523,9 +532,7 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
}
|
||||
Mode.STORE_CREDENTIAL -> {
|
||||
// newly store the entered password in encrypted way
|
||||
mBuilderListener?.retrieveCredentialForEncryption()?.let { credential ->
|
||||
advancedUnlockManager?.encryptData(credential)
|
||||
}
|
||||
mAdvancedUnlockViewModel.retrieveCredentialForEncryption()
|
||||
}
|
||||
Mode.EXTRACT_CREDENTIAL -> {
|
||||
// retrieve the encrypted value from preferences
|
||||
@@ -545,7 +552,7 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
|
||||
override fun handleEncryptedResult(encryptedValue: ByteArray, ivSpec: ByteArray) {
|
||||
databaseFileUri?.let { databaseUri ->
|
||||
mBuilderListener?.onCredentialEncrypted(
|
||||
mAdvancedUnlockViewModel.onCredentialEncrypted(
|
||||
CipherEncryptDatabase().apply {
|
||||
this.databaseUri = databaseUri
|
||||
this.credentialStorage = credentialDatabaseStorage
|
||||
@@ -559,13 +566,14 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
override fun handleDecryptedResult(decryptedValue: ByteArray) {
|
||||
// Load database directly with password retrieve
|
||||
databaseFileUri?.let { databaseUri ->
|
||||
mBuilderListener?.onCredentialDecrypted(
|
||||
mAdvancedUnlockViewModel.onCredentialDecrypted(
|
||||
CipherDecryptDatabase().apply {
|
||||
this.databaseUri = databaseUri
|
||||
this.credentialStorage = credentialDatabaseStorage
|
||||
this.decryptedValue = decryptedValue
|
||||
}
|
||||
)
|
||||
cipherDatabaseAction.resetCipherParameters(databaseUri)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -629,13 +637,6 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
EXTRACT_CREDENTIAL
|
||||
}
|
||||
|
||||
interface BuilderListener {
|
||||
fun retrieveCredentialForEncryption(): ByteArray
|
||||
fun conditionToStoreCredential(): Boolean
|
||||
fun onCredentialEncrypted(cipherEncryptDatabase: CipherEncryptDatabase)
|
||||
fun onCredentialDecrypted(cipherDecryptDatabase: CipherDecryptDatabase)
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (!keepConnection) {
|
||||
@@ -644,13 +645,11 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
advancedUnlockManager = null
|
||||
}
|
||||
}
|
||||
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
mAdvancedUnlockInfoView = null
|
||||
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
@@ -658,20 +657,11 @@ class AdvancedUnlockFragment: Fragment(), AdvancedUnlockManager.AdvancedUnlockCa
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
disconnect()
|
||||
advancedUnlockManager = null
|
||||
mBuilderListener = null
|
||||
}
|
||||
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onDetach() {
|
||||
mBuilderListener = null
|
||||
|
||||
super.onDetach()
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
private val TAG = AdvancedUnlockFragment::class.java.name
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@ import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.app.ActivityCompat.shouldShowRequestPermissionRationale
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.ContextCompat.RECEIVER_NOT_EXPORTED
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.kunzisoft.keepass.R
|
||||
@@ -330,11 +331,11 @@ class DatabaseTaskProvider(
|
||||
}
|
||||
}
|
||||
}
|
||||
context.registerReceiver(databaseTaskBroadcastReceiver,
|
||||
ContextCompat.registerReceiver(context, databaseTaskBroadcastReceiver,
|
||||
IntentFilter().apply {
|
||||
addAction(DATABASE_START_TASK_ACTION)
|
||||
addAction(DATABASE_STOP_TASK_ACTION)
|
||||
}
|
||||
}, RECEIVER_NOT_EXPORTED
|
||||
)
|
||||
|
||||
// Check if a service is currently running else do nothing
|
||||
|
||||
@@ -60,6 +60,7 @@ object SearchHelper {
|
||||
// If search provide results
|
||||
database.createVirtualGroupFromSearchInfo(
|
||||
searchInfo.toString(),
|
||||
searchInfo.isASearchByDomain(),
|
||||
MAX_SEARCH_ENTRY
|
||||
)?.let { searchGroup ->
|
||||
if (searchGroup.numberOfChildEntries > 0) {
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
package com.kunzisoft.keepass.model
|
||||
|
||||
data class DataDate(val year: Int, val month: Int, val day: Int)
|
||||
@@ -0,0 +1,3 @@
|
||||
package com.kunzisoft.keepass.model
|
||||
|
||||
data class DataTime(val hour: Int, val minute: Int)
|
||||
@@ -21,6 +21,7 @@ package com.kunzisoft.keepass.password
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.graphics.Color
|
||||
import android.text.Editable
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableString
|
||||
import android.text.SpannableStringBuilder
|
||||
@@ -253,51 +254,62 @@ class PasswordGenerator(private val resources: Resources) {
|
||||
return charSet.toString()
|
||||
}
|
||||
|
||||
fun colorizedPassword(editable: Editable?) {
|
||||
editable.toString().forEachIndexed { index, char ->
|
||||
colorFromChar(char)?.let { color ->
|
||||
editable?.setSpan(
|
||||
ForegroundColorSpan(color),
|
||||
index,
|
||||
index + 1,
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getColorizedPassword(password: String): Spannable {
|
||||
val spannableString = SpannableStringBuilder()
|
||||
if (password.isNotEmpty()) {
|
||||
password.forEach {
|
||||
when {
|
||||
UPPERCASE_CHARS.contains(it)||
|
||||
LOWERCASE_CHARS.contains(it) -> {
|
||||
spannableString.append(it)
|
||||
}
|
||||
DIGIT_CHARS.contains(it) -> {
|
||||
// RED
|
||||
spannableString.append(colorizeChar(it, Color.rgb(246, 79, 62)))
|
||||
}
|
||||
SPECIAL_CHARS.contains(it) -> {
|
||||
// Blue
|
||||
spannableString.append(colorizeChar(it, Color.rgb(39, 166, 228)))
|
||||
}
|
||||
MINUS_CHAR.contains(it)||
|
||||
UNDERLINE_CHAR.contains(it)||
|
||||
BRACKET_CHARS.contains(it) -> {
|
||||
// Purple
|
||||
spannableString.append(colorizeChar(it, Color.rgb(185, 38, 209)))
|
||||
}
|
||||
extendedChars().contains(it) -> {
|
||||
// Green
|
||||
spannableString.append(colorizeChar(it, Color.rgb(44, 181, 50)))
|
||||
}
|
||||
else -> {
|
||||
spannableString.append(it)
|
||||
}
|
||||
}
|
||||
password.forEach { char ->
|
||||
colorFromChar(char)?.let { color ->
|
||||
val spannableColorChar = SpannableString(char.toString())
|
||||
spannableColorChar.setSpan(
|
||||
ForegroundColorSpan(color),
|
||||
0,
|
||||
1,
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
spannableString.append(spannableColorChar)
|
||||
} ?: spannableString.append(char)
|
||||
}
|
||||
}
|
||||
return spannableString
|
||||
}
|
||||
|
||||
private fun colorizeChar(char: Char, color: Int): Spannable {
|
||||
val spannableColorChar = SpannableString(char.toString())
|
||||
spannableColorChar.setSpan(
|
||||
ForegroundColorSpan(color),
|
||||
0,
|
||||
1,
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
return spannableColorChar
|
||||
private fun colorFromChar(char: Char): Int? {
|
||||
return when {
|
||||
DIGIT_CHARS.contains(char) -> {
|
||||
// RED
|
||||
Color.rgb(246, 79, 62)
|
||||
}
|
||||
SPECIAL_CHARS.contains(char) -> {
|
||||
// Blue
|
||||
Color.rgb(39, 166, 228)
|
||||
}
|
||||
MINUS_CHAR.contains(char)||
|
||||
UNDERLINE_CHAR.contains(char)||
|
||||
BRACKET_CHARS.contains(char) -> {
|
||||
// Purple
|
||||
Color.rgb(185, 38, 209)
|
||||
}
|
||||
extendedChars().contains(char) -> {
|
||||
// Green
|
||||
Color.rgb(44, 181, 50)
|
||||
}
|
||||
else -> {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,9 @@ class AdvancedUnlockNotificationService : NotificationService() {
|
||||
return mTempCipherDao.firstOrNull { it.databaseUri == databaseUri.toString()}
|
||||
}
|
||||
fun addOrUpdateCipherDatabase(cipherDatabaseEntity: CipherDatabaseEntity) {
|
||||
val cipherDatabaseRetrieve = mTempCipherDao.firstOrNull { it.databaseUri == cipherDatabaseEntity.databaseUri }
|
||||
val cipherDatabaseRetrieve = mTempCipherDao.firstOrNull {
|
||||
it.databaseUri == cipherDatabaseEntity.databaseUri
|
||||
}
|
||||
cipherDatabaseRetrieve?.replaceContent(cipherDatabaseEntity)
|
||||
?: mTempCipherDao.add(cipherDatabaseEntity)
|
||||
}
|
||||
@@ -35,6 +37,9 @@ class AdvancedUnlockNotificationService : NotificationService() {
|
||||
mTempCipherDao.remove(it)
|
||||
}
|
||||
}
|
||||
fun resetTimer() {
|
||||
resetTimeJob()
|
||||
}
|
||||
fun deleteAll() {
|
||||
mTempCipherDao.clear()
|
||||
}
|
||||
@@ -86,11 +91,19 @@ class AdvancedUnlockNotificationService : NotificationService() {
|
||||
val notificationTimeoutMilliSecs = PreferencesUtil.getAdvancedUnlockTimeout(this)
|
||||
// Not necessarily a foreground service
|
||||
if (mTimerJob == null && notificationTimeoutMilliSecs != TimeoutHelper.NEVER) {
|
||||
defineTimerJob(notificationBuilder, notificationTimeoutMilliSecs) {
|
||||
defineTimerJob(
|
||||
notificationBuilder,
|
||||
NotificationServiceType.ADVANCED_UNLOCK,
|
||||
notificationTimeoutMilliSecs
|
||||
) {
|
||||
sendBroadcast(Intent(REMOVE_ADVANCED_UNLOCK_KEY_ACTION))
|
||||
}
|
||||
} else {
|
||||
startForeground(notificationId, notificationBuilder.build())
|
||||
startForegroundCompat(
|
||||
notificationId,
|
||||
notificationBuilder,
|
||||
NotificationServiceType.ADVANCED_UNLOCK
|
||||
)
|
||||
}
|
||||
|
||||
return mActionTaskBinder
|
||||
|
||||
@@ -36,13 +36,13 @@ import com.kunzisoft.keepass.model.AttachmentState
|
||||
import com.kunzisoft.keepass.model.EntryAttachmentState
|
||||
import com.kunzisoft.keepass.model.StreamDirection
|
||||
import com.kunzisoft.keepass.tasks.BinaryDatabaseManager
|
||||
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
|
||||
import com.kunzisoft.keepass.utils.UriUtil.getDocumentFile
|
||||
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.util.*
|
||||
import java.util.LinkedList
|
||||
import java.util.concurrent.CopyOnWriteArrayList
|
||||
|
||||
|
||||
@@ -282,15 +282,21 @@ class AttachmentFileNotificationService: LockNotificationService() {
|
||||
AttachmentState.ERROR -> {
|
||||
ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_DETACH)
|
||||
try {
|
||||
notificationManager?.notify(
|
||||
attachmentNotification.notificationId,
|
||||
builder.build()
|
||||
)
|
||||
checkNotificationsPermission(this) {
|
||||
notificationManager?.notify(
|
||||
attachmentNotification.notificationId,
|
||||
builder.build()
|
||||
)
|
||||
}
|
||||
} catch (e: SecurityException) {
|
||||
Log.e(TAG, "Unable to notify the attachment state", e)
|
||||
}
|
||||
} else -> {
|
||||
startForeground(attachmentNotification.notificationId, builder.build())
|
||||
startForegroundCompat(
|
||||
attachmentNotification.notificationId,
|
||||
builder,
|
||||
NotificationServiceType.ATTACHMENT
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,16 +19,12 @@
|
||||
*/
|
||||
package com.kunzisoft.keepass.services
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.model.EntryInfo
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_TOKEN_FIELD
|
||||
@@ -196,23 +192,29 @@ class ClipboardEntryNotificationService : LockNotificationService() {
|
||||
//Get settings
|
||||
val notificationTimeoutMilliSecs = PreferencesUtil.getClipboardTimeout(this)
|
||||
if (notificationTimeoutMilliSecs != NEVER) {
|
||||
defineTimerJob(builder, notificationTimeoutMilliSecs, {
|
||||
val newGeneratedValue = fieldToCopy.getGeneratedValue(mEntryInfo)
|
||||
// New auto generated value
|
||||
if (generatedValue != newGeneratedValue) {
|
||||
generatedValue = newGeneratedValue
|
||||
clipboardHelper?.copyToClipboard(
|
||||
fieldToCopy.label,
|
||||
generatedValue,
|
||||
fieldToCopy.isSensitive
|
||||
)
|
||||
defineTimerJob(
|
||||
builder,
|
||||
NotificationServiceType.CLIPBOARD,
|
||||
notificationTimeoutMilliSecs,
|
||||
{
|
||||
val newGeneratedValue = fieldToCopy.getGeneratedValue(mEntryInfo)
|
||||
// New auto generated value
|
||||
if (generatedValue != newGeneratedValue) {
|
||||
generatedValue = newGeneratedValue
|
||||
clipboardHelper?.copyToClipboard(
|
||||
fieldToCopy.label,
|
||||
generatedValue,
|
||||
fieldToCopy.isSensitive
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
stopNotificationAndSendLockIfNeeded()
|
||||
// Clean password only if no next field
|
||||
if (nextFields.size <= 0)
|
||||
clipboardHelper?.cleanClipboard()
|
||||
}
|
||||
}) {
|
||||
stopNotificationAndSendLockIfNeeded()
|
||||
// Clean password only if no next field
|
||||
if (nextFields.size <= 0)
|
||||
clipboardHelper?.cleanClipboard()
|
||||
}
|
||||
)
|
||||
} else {
|
||||
// No timer
|
||||
checkNotificationsPermission {
|
||||
@@ -226,12 +228,11 @@ class ClipboardEntryNotificationService : LockNotificationService() {
|
||||
}
|
||||
|
||||
private fun checkNotificationsPermission(action: () -> Unit) {
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
action.invoke()
|
||||
} else {
|
||||
showPermissionErrorIfNeeded(this)
|
||||
}
|
||||
checkNotificationsPermission(
|
||||
this,
|
||||
PreferencesUtil.isClipboardNotificationsEnable(this),
|
||||
action
|
||||
)
|
||||
}
|
||||
|
||||
override fun onTaskRemoved(rootIntent: Intent?) {
|
||||
@@ -255,26 +256,14 @@ class ClipboardEntryNotificationService : LockNotificationService() {
|
||||
const val EXTRA_CLIPBOARD_FIELDS = "EXTRA_CLIPBOARD_FIELDS"
|
||||
const val ACTION_CLEAN_CLIPBOARD = "ACTION_CLEAN_CLIPBOARD"
|
||||
|
||||
private fun showPermissionErrorIfNeeded(context: Context) {
|
||||
if (PreferencesUtil.isClipboardNotificationsEnable(context)) {
|
||||
Toast.makeText(context, R.string.warning_copy_permission, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
fun checkAndLaunchNotification(
|
||||
activity: Activity,
|
||||
entry: EntryInfo
|
||||
) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
if (ContextCompat.checkSelfPermission(
|
||||
activity,
|
||||
Manifest.permission.POST_NOTIFICATIONS
|
||||
) == PackageManager.PERMISSION_GRANTED) {
|
||||
launchNotificationIfAllowed(activity, entry)
|
||||
} else {
|
||||
showPermissionErrorIfNeeded(activity)
|
||||
}
|
||||
} else {
|
||||
checkNotificationsPermission(
|
||||
activity,
|
||||
PreferencesUtil.isClipboardNotificationsEnable(activity)
|
||||
) {
|
||||
launchNotificationIfAllowed(activity, entry)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -591,7 +591,11 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress
|
||||
}
|
||||
|
||||
// Create the notification
|
||||
startForeground(notificationId, notificationBuilder.build())
|
||||
startForegroundCompat(
|
||||
notificationId,
|
||||
notificationBuilder,
|
||||
NotificationServiceType.DATABASE_TASK
|
||||
)
|
||||
}
|
||||
|
||||
private fun removeIntentData(intent: Intent?) {
|
||||
|
||||
@@ -111,13 +111,18 @@ class KeyboardEntryNotificationService : LockNotificationService() {
|
||||
.setContentIntent(null)
|
||||
.setDeleteIntent(pendingDeleteIntent)
|
||||
|
||||
notificationManager?.cancel(notificationId)
|
||||
notificationManager?.notify(notificationId, builder.build())
|
||||
checkNotificationsPermission(this, PreferencesUtil.isKeyboardNotificationEntryEnable(this)) {
|
||||
notificationManager?.notify(notificationId, builder.build())
|
||||
}
|
||||
|
||||
// Timeout only if notification clear is available
|
||||
if (PreferencesUtil.isClearKeyboardNotificationEnable(this)) {
|
||||
if (mNotificationTimeoutMilliSecs != TimeoutHelper.NEVER) {
|
||||
defineTimerJob(builder, mNotificationTimeoutMilliSecs) {
|
||||
defineTimerJob(
|
||||
builder,
|
||||
NotificationServiceType.KEYBOARD,
|
||||
mNotificationTimeoutMilliSecs
|
||||
) {
|
||||
stopNotificationAndSendLockIfNeeded()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,31 @@
|
||||
package com.kunzisoft.keepass.services
|
||||
|
||||
import android.Manifest
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.Service
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE
|
||||
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE
|
||||
import android.os.Build
|
||||
import android.os.IBinder
|
||||
import android.util.TypedValue
|
||||
import android.widget.Toast
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.stylish.Stylish
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import org.joda.time.Instant
|
||||
|
||||
|
||||
abstract class NotificationService : Service() {
|
||||
@@ -20,6 +34,7 @@ abstract class NotificationService : Service() {
|
||||
private var colorNotificationAccent: Int = 0
|
||||
|
||||
protected var mTimerJob: Job? = null
|
||||
private var mReset: Boolean = false
|
||||
|
||||
protected abstract val notificationId: Int
|
||||
|
||||
@@ -74,21 +89,55 @@ abstract class NotificationService : Service() {
|
||||
}
|
||||
}
|
||||
|
||||
protected fun startForegroundCompat(notificationId: Int,
|
||||
builder: NotificationCompat.Builder,
|
||||
type: NotificationServiceType
|
||||
) {
|
||||
@Suppress("DEPRECATION")
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
val foregroundServiceTimer = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
|
||||
} else {
|
||||
FOREGROUND_SERVICE_TYPE_NONE
|
||||
}
|
||||
val foregroundType = when (type) {
|
||||
NotificationServiceType.DATABASE_TASK -> FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||
NotificationServiceType.ATTACHMENT -> FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||
NotificationServiceType.CLIPBOARD -> foregroundServiceTimer
|
||||
NotificationServiceType.KEYBOARD -> foregroundServiceTimer
|
||||
NotificationServiceType.ADVANCED_UNLOCK -> foregroundServiceTimer
|
||||
}
|
||||
startForeground(notificationId, builder.build(), foregroundType)
|
||||
} else {
|
||||
startForeground(notificationId, builder.build())
|
||||
}
|
||||
}
|
||||
|
||||
protected fun defineTimerJob(builder: NotificationCompat.Builder,
|
||||
type: NotificationServiceType,
|
||||
timeoutMilliseconds: Long,
|
||||
actionAfterASecond: (() -> Unit)? = null,
|
||||
actionEnd: () -> Unit) {
|
||||
mTimerJob?.cancel()
|
||||
mTimerJob = CoroutineScope(Dispatchers.Main).launch {
|
||||
if (timeoutMilliseconds > 0) {
|
||||
val timeoutInSeconds = timeoutMilliseconds / 1000L
|
||||
for (currentTime in timeoutInSeconds downTo 0) {
|
||||
var startInstant = Instant.now().millis
|
||||
var currentTime = timeoutMilliseconds
|
||||
while (currentTime >= 0) {
|
||||
// Reset the timer if needed
|
||||
if (mReset) {
|
||||
mReset = false
|
||||
startInstant = Instant.now().millis
|
||||
currentTime = timeoutMilliseconds
|
||||
}
|
||||
// Update every second
|
||||
actionAfterASecond?.invoke()
|
||||
builder.setProgress(100,
|
||||
(currentTime * 100 / timeoutInSeconds).toInt(),
|
||||
false)
|
||||
startForeground(notificationId, builder.build())
|
||||
(currentTime * 100 / timeoutMilliseconds).toInt(),
|
||||
false)
|
||||
startForegroundCompat(notificationId, builder, type)
|
||||
delay(1000)
|
||||
currentTime = timeoutMilliseconds - (Instant.now().millis - startInstant)
|
||||
if (currentTime <= 0) {
|
||||
actionEnd()
|
||||
}
|
||||
@@ -103,6 +152,10 @@ abstract class NotificationService : Service() {
|
||||
}
|
||||
}
|
||||
|
||||
protected fun resetTimeJob() {
|
||||
mReset = true
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
mTimerJob?.cancel()
|
||||
mTimerJob = null
|
||||
@@ -114,5 +167,25 @@ abstract class NotificationService : Service() {
|
||||
companion object {
|
||||
private const val CHANNEL_ID = "com.kunzisoft.keepass.notification.channel"
|
||||
private const val CHANNEL_NAME = "KeePassDX notification"
|
||||
|
||||
fun checkNotificationsPermission(
|
||||
context: Context,
|
||||
showError: Boolean = true,
|
||||
action: () -> Unit
|
||||
) {
|
||||
if (ContextCompat.checkSelfPermission(context,
|
||||
Manifest.permission.POST_NOTIFICATIONS)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
action.invoke()
|
||||
} else {
|
||||
if (showError) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
R.string.warning_copy_permission,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.kunzisoft.keepass.services
|
||||
|
||||
enum class NotificationServiceType {
|
||||
DATABASE_TASK,
|
||||
ATTACHMENT,
|
||||
CLIPBOARD,
|
||||
KEYBOARD,
|
||||
ADVANCED_UNLOCK
|
||||
}
|
||||
@@ -483,13 +483,15 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
||||
getString(R.string.setting_style_brightness_key),
|
||||
getString(R.string.setting_icon_pack_choose_key),
|
||||
getString(R.string.show_entry_colors_key),
|
||||
getString(R.string.hide_expired_entries_key),
|
||||
getString(R.string.hide_templates_key),
|
||||
getString(R.string.list_entries_show_username_key),
|
||||
getString(R.string.list_groups_show_number_entries_key),
|
||||
getString(R.string.recursive_number_entries_key),
|
||||
getString(R.string.show_otp_token_key),
|
||||
getString(R.string.show_uuid_key),
|
||||
getString(R.string.list_size_key),
|
||||
getString(R.string.monospace_font_fields_enable_key),
|
||||
getString(R.string.hide_expired_entries_key),
|
||||
getString(R.string.enable_education_screens_key),
|
||||
getString(R.string.reset_education_screens_key) -> {
|
||||
DATABASE_PREFERENCE_CHANGED = true
|
||||
|
||||
@@ -120,6 +120,18 @@ object PreferencesUtil {
|
||||
context.resources.getBoolean(R.bool.show_entry_colors_default))
|
||||
}
|
||||
|
||||
fun showExpiredEntries(context: Context): Boolean {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
return ! prefs.getBoolean(context.getString(R.string.hide_expired_entries_key),
|
||||
context.resources.getBoolean(R.bool.hide_expired_entries_default))
|
||||
}
|
||||
|
||||
fun showTemplates(context: Context): Boolean {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
return ! prefs.getBoolean(context.getString(R.string.hide_templates_key),
|
||||
context.resources.getBoolean(R.bool.hide_templates_default))
|
||||
}
|
||||
|
||||
fun hideProtectedValue(context: Context): Boolean {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
return prefs.getBoolean(context.getString(R.string.hide_password_key),
|
||||
@@ -144,6 +156,12 @@ object PreferencesUtil {
|
||||
context.resources.getBoolean(R.bool.list_groups_show_number_entries_default))
|
||||
}
|
||||
|
||||
fun recursiveNumberEntries(context: Context): Boolean {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
return prefs.getBoolean(context.getString(R.string.recursive_number_entries_key),
|
||||
context.resources.getBoolean(R.bool.recursive_number_entries_default))
|
||||
}
|
||||
|
||||
fun showOTPToken(context: Context): Boolean {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
return prefs.getBoolean(context.getString(R.string.show_otp_token_key),
|
||||
@@ -156,12 +174,6 @@ object PreferencesUtil {
|
||||
context.resources.getBoolean(R.bool.show_uuid_default))
|
||||
}
|
||||
|
||||
fun showExpiredEntries(context: Context): Boolean {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
return ! prefs.getBoolean(context.getString(R.string.hide_expired_entries_key),
|
||||
context.resources.getBoolean(R.bool.hide_expired_entries_default))
|
||||
}
|
||||
|
||||
fun getStyle(context: Context): String {
|
||||
val defaultStyleString = Stylish.defaultStyle(context)
|
||||
val styleString = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
@@ -841,15 +853,17 @@ object PreferencesUtil {
|
||||
context.getString(R.string.setting_style_brightness_key) -> editor.putString(name, value)
|
||||
context.getString(R.string.setting_icon_pack_choose_key) -> editor.putString(name, value)
|
||||
context.getString(R.string.show_entry_colors_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.hide_expired_entries_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.hide_templates_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.hide_password_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.colorize_password_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.list_entries_show_username_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.list_groups_show_number_entries_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.recursive_number_entries_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.show_otp_token_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.show_uuid_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.list_size_key) -> editor.putString(name, value)
|
||||
context.getString(R.string.monospace_font_fields_enable_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.hide_expired_entries_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
context.getString(R.string.enable_education_screens_key) -> editor.putBoolean(name, value.toBoolean())
|
||||
|
||||
context.getString(R.string.password_generator_length_key) -> editor.putInt(name, value.toInt())
|
||||
|
||||
@@ -26,7 +26,7 @@ import com.kunzisoft.keepass.model.SearchInfo
|
||||
class AutofillBlocklistWebDomainPreferenceDialogFragmentCompat
|
||||
: AutofillBlocklistPreferenceDialogFragmentCompat() {
|
||||
|
||||
override fun buildSearchInfoFromString(searchInfoString: String): SearchInfo? {
|
||||
override fun buildSearchInfoFromString(searchInfoString: String): SearchInfo {
|
||||
val newSearchInfo = searchInfoString
|
||||
// remove prefix https://
|
||||
.replace(Regex("^.*://"), "")
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.magikeyboard.MagikeyboardService
|
||||
@@ -45,9 +46,9 @@ const val LOCK_ACTION = "com.kunzisoft.keepass.LOCK"
|
||||
const val REMOVE_ENTRY_MAGIKEYBOARD_ACTION = "com.kunzisoft.keepass.REMOVE_ENTRY_MAGIKEYBOARD"
|
||||
const val BACK_PREVIOUS_KEYBOARD_ACTION = "com.kunzisoft.keepass.BACK_PREVIOUS_KEYBOARD"
|
||||
|
||||
class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
class LockReceiver(private var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
|
||||
var mLockPendingIntent: PendingIntent? = null
|
||||
private var mLockPendingIntent: PendingIntent? = null
|
||||
var backToPreviousKeyboardAction: (() -> Unit)? = null
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
@@ -60,7 +61,7 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
}
|
||||
Intent.ACTION_SCREEN_OFF -> {
|
||||
if (PreferencesUtil.isLockDatabaseWhenScreenShutOffEnable(context)) {
|
||||
mLockPendingIntent = PendingIntent.getBroadcast(context,
|
||||
val lockPendingIntent = PendingIntent.getBroadcast(context,
|
||||
4575,
|
||||
Intent(intent).apply {
|
||||
action = LOCK_ACTION
|
||||
@@ -71,6 +72,7 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
0
|
||||
}
|
||||
)
|
||||
this.mLockPendingIntent = lockPendingIntent
|
||||
// Launch the effective action after a small time
|
||||
val first: Long = System.currentTimeMillis() + context.getString(R.string.timeout_screen_off).toLong()
|
||||
(context.getSystemService(ALARM_SERVICE) as AlarmManager?)?.let { alarmManager ->
|
||||
@@ -80,20 +82,20 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
alarmManager.set(
|
||||
AlarmManager.RTC_WAKEUP,
|
||||
first,
|
||||
mLockPendingIntent
|
||||
lockPendingIntent
|
||||
)
|
||||
} else {
|
||||
alarmManager.setExact(
|
||||
AlarmManager.RTC_WAKEUP,
|
||||
first,
|
||||
mLockPendingIntent
|
||||
lockPendingIntent
|
||||
)
|
||||
}
|
||||
} else {
|
||||
alarmManager.set(
|
||||
AlarmManager.RTC_WAKEUP,
|
||||
first,
|
||||
mLockPendingIntent
|
||||
lockPendingIntent
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -120,9 +122,9 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
}
|
||||
|
||||
private fun cancelLockPendingIntent(context: Context) {
|
||||
mLockPendingIntent?.let {
|
||||
mLockPendingIntent?.let { lockPendingIntent ->
|
||||
val alarmManager = context.getSystemService(ALARM_SERVICE) as AlarmManager?
|
||||
alarmManager?.cancel(mLockPendingIntent)
|
||||
alarmManager?.cancel(lockPendingIntent)
|
||||
mLockPendingIntent = null
|
||||
}
|
||||
}
|
||||
@@ -131,7 +133,7 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() {
|
||||
fun Context.registerLockReceiver(lockReceiver: LockReceiver?,
|
||||
registerKeyboardAction: Boolean = false) {
|
||||
lockReceiver?.let {
|
||||
registerReceiver(it, IntentFilter().apply {
|
||||
ContextCompat.registerReceiver(this, it, IntentFilter().apply {
|
||||
addAction(Intent.ACTION_SCREEN_OFF)
|
||||
addAction(Intent.ACTION_SCREEN_ON)
|
||||
addAction(LOCK_ACTION)
|
||||
@@ -139,7 +141,7 @@ fun Context.registerLockReceiver(lockReceiver: LockReceiver?,
|
||||
addAction(REMOVE_ENTRY_MAGIKEYBOARD_ACTION)
|
||||
addAction(BACK_PREVIOUS_KEYBOARD_ACTION)
|
||||
}
|
||||
})
|
||||
}, ContextCompat.RECEIVER_EXPORTED)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,13 +3,17 @@ package com.kunzisoft.keepass.utils
|
||||
import android.content.res.Resources
|
||||
import androidx.core.os.ConfigurationCompat
|
||||
import com.kunzisoft.keepass.database.element.DateInstant
|
||||
import com.kunzisoft.keepass.model.DataDate
|
||||
import java.text.DateFormat
|
||||
import java.util.Calendar
|
||||
import java.util.Locale
|
||||
import java.util.TimeZone
|
||||
|
||||
object TimeUtil {
|
||||
|
||||
fun DateInstant.getDateTimeString(resources: Resources): String {
|
||||
val locale = ConfigurationCompat.getLocales(resources.configuration)[0] ?: Locale.ROOT
|
||||
val date = instant.toDate()
|
||||
return when (type) {
|
||||
DateInstant.Type.DATE -> DateFormat.getDateInstance(
|
||||
DateFormat.MEDIUM,
|
||||
@@ -26,4 +30,22 @@ object TimeUtil {
|
||||
.format(date)
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/material-components/material-components-android/issues/882#issuecomment-1111374962
|
||||
// To fix UTC time in date picker
|
||||
fun datePickerToDataDate(millis: Long): DataDate {
|
||||
val selectedUtc = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
|
||||
selectedUtc.timeInMillis = millis
|
||||
val selectedLocal = Calendar.getInstance()
|
||||
selectedLocal.clear()
|
||||
selectedLocal.set(
|
||||
selectedUtc.get(Calendar.YEAR),
|
||||
selectedUtc.get(Calendar.MONTH),
|
||||
selectedUtc.get(Calendar.DAY_OF_MONTH))
|
||||
return DataDate(
|
||||
selectedLocal.get(Calendar.YEAR),
|
||||
selectedLocal.get(Calendar.MONTH) + 1,
|
||||
selectedLocal.get(Calendar.DAY_OF_MONTH),
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
package com.kunzisoft.keepass.view
|
||||
|
||||
data class DataTime(val hours: Int, val minutes: Int)
|
||||
@@ -111,7 +111,7 @@ class DateTimeEditFieldView @JvmOverloads constructor(context: Context,
|
||||
mDefault
|
||||
}
|
||||
set(value) {
|
||||
mDateTime = DateInstant(value.date, mDateTime.type)
|
||||
mDateTime = DateInstant(value.instant, mDateTime.type)
|
||||
entryExpiresTextView.text = if (entryExpiresCheckBox.isChecked) {
|
||||
mDateTime.getDateTimeString(resources)
|
||||
} else {
|
||||
|
||||
@@ -57,8 +57,6 @@ class DateTimeFieldView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
|
||||
private fun assignExpiresDateText() {
|
||||
val isExpires = mDateTime.isCurrentlyExpire()
|
||||
|
||||
// Show or not the warning icon
|
||||
expiresImage.isVisible = if (mActivated) {
|
||||
isExpires
|
||||
@@ -100,6 +98,13 @@ class DateTimeFieldView @JvmOverloads constructor(context: Context,
|
||||
mDateTime.type = value
|
||||
}
|
||||
|
||||
var isExpirable: Boolean = false
|
||||
|
||||
val isExpires: Boolean
|
||||
get() {
|
||||
return isExpirable && mDateTime.isCurrentlyExpire()
|
||||
}
|
||||
|
||||
override var activation: Boolean
|
||||
get() {
|
||||
return mActivated
|
||||
@@ -128,7 +133,7 @@ class DateTimeFieldView @JvmOverloads constructor(context: Context,
|
||||
mDefault
|
||||
}
|
||||
set(value) {
|
||||
mDateTime = DateInstant(value.date, mDateTime.type)
|
||||
mDateTime = DateInstant(value.instant, mDateTime.type)
|
||||
assignExpiresDateText()
|
||||
}
|
||||
|
||||
|
||||
@@ -53,9 +53,7 @@ class MainCredentialView @JvmOverloads constructor(context: Context,
|
||||
private var checkboxHardwareView: CompoundButton
|
||||
private var hardwareKeySelectionView: HardwareKeySelectionView
|
||||
|
||||
var onPasswordChecked: (CompoundButton.OnCheckedChangeListener)? = null
|
||||
var onKeyFileChecked: (CompoundButton.OnCheckedChangeListener)? = null
|
||||
var onHardwareKeyChecked: (CompoundButton.OnCheckedChangeListener)? = null
|
||||
var onConditionToStoreCredentialChanged: ((CredentialStorage, verified: Boolean) -> Unit)? = null
|
||||
var onValidateListener: (() -> Unit)? = null
|
||||
|
||||
private var mCredentialStorage: CredentialStorage = CredentialStorage.PASSWORD
|
||||
@@ -103,24 +101,33 @@ class MainCredentialView @JvmOverloads constructor(context: Context,
|
||||
handled
|
||||
}
|
||||
|
||||
checkboxPasswordView.setOnCheckedChangeListener { view, checked ->
|
||||
onPasswordChecked?.onCheckedChanged(view, checked)
|
||||
checkboxPasswordView.setOnCheckedChangeListener { _, _ ->
|
||||
onConditionToStoreCredentialChanged?.invoke(
|
||||
mCredentialStorage,
|
||||
conditionToStoreCredential()
|
||||
)
|
||||
}
|
||||
checkboxKeyFileView.setOnCheckedChangeListener { view, checked ->
|
||||
checkboxKeyFileView.setOnCheckedChangeListener { _, checked ->
|
||||
if (checked) {
|
||||
if (keyFileSelectionView.uri == null) {
|
||||
checkboxKeyFileView.isChecked = false
|
||||
}
|
||||
}
|
||||
onKeyFileChecked?.onCheckedChanged(view, checked)
|
||||
onConditionToStoreCredentialChanged?.invoke(
|
||||
mCredentialStorage,
|
||||
conditionToStoreCredential()
|
||||
)
|
||||
}
|
||||
checkboxHardwareView.setOnCheckedChangeListener { view, checked ->
|
||||
checkboxHardwareView.setOnCheckedChangeListener { _, checked ->
|
||||
if (checked) {
|
||||
if (hardwareKeySelectionView.hardwareKey == null) {
|
||||
checkboxHardwareView.isChecked = false
|
||||
}
|
||||
}
|
||||
onHardwareKeyChecked?.onCheckedChanged(view, checked)
|
||||
onConditionToStoreCredentialChanged?.invoke(
|
||||
mCredentialStorage,
|
||||
conditionToStoreCredential()
|
||||
)
|
||||
}
|
||||
|
||||
hardwareKeySelectionView.selectionListener = { _ ->
|
||||
|
||||
@@ -33,20 +33,19 @@ import android.widget.TextView
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.password.PasswordEntropy
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
|
||||
class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyle: Int = 0)
|
||||
class PasswordEditView @JvmOverloads constructor(context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyle: Int = 0)
|
||||
: FrameLayout(context, attrs, defStyle) {
|
||||
|
||||
private var mPasswordEntropyCalculator: PasswordEntropy? = null
|
||||
|
||||
private val passwordInputLayout: TextInputLayout
|
||||
private val passwordText: EditText
|
||||
private var textModified = false
|
||||
private val passwordStrengthProgress: LinearProgressIndicator
|
||||
private val passwordEntropy: TextView
|
||||
|
||||
@@ -60,13 +59,13 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
init {
|
||||
context.theme.obtainStyledAttributes(
|
||||
attrs,
|
||||
R.styleable.PassKeyView,
|
||||
R.styleable.PasswordView,
|
||||
0, 0).apply {
|
||||
try {
|
||||
mViewHint = getString(R.styleable.PassKeyView_passKeyHint)
|
||||
mViewHint = getString(R.styleable.PasswordView_passwordHint)
|
||||
?: context.getString(R.string.password)
|
||||
mMaxLines = getInteger(R.styleable.PassKeyView_passKeyMaxLines, mMaxLines)
|
||||
mShowPassword = getBoolean(R.styleable.PassKeyView_passKeyVisible,
|
||||
mMaxLines = getInteger(R.styleable.PasswordView_passwordMaxLines, mMaxLines)
|
||||
mShowPassword = getBoolean(R.styleable.PasswordView_passwordVisible,
|
||||
!PreferencesUtil.hideProtectedValue(context))
|
||||
} finally {
|
||||
recycle()
|
||||
@@ -74,24 +73,24 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
|
||||
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater?
|
||||
inflater?.inflate(R.layout.view_passkey, this)
|
||||
inflater?.inflate(R.layout.view_password_edit, this)
|
||||
|
||||
passwordInputLayout = findViewById(R.id.password_input_layout)
|
||||
passwordInputLayout = findViewById(R.id.password_edit_input_layout)
|
||||
passwordInputLayout?.hint = mViewHint
|
||||
passwordText = findViewById(R.id.password_text)
|
||||
passwordText = findViewById(R.id.password_edit_text)
|
||||
if (mShowPassword) {
|
||||
passwordText?.inputType = passwordText.inputType or
|
||||
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
|
||||
}
|
||||
passwordText?.maxLines = mMaxLines
|
||||
passwordText?.applyFontVisibility()
|
||||
passwordStrengthProgress = findViewById(R.id.password_strength_progress)
|
||||
passwordStrengthProgress = findViewById(R.id.password_edit_strength_progress)
|
||||
passwordStrengthProgress?.apply {
|
||||
setIndicatorColor(PasswordEntropy.Strength.RISKY.color)
|
||||
progress = 0
|
||||
max = 100
|
||||
}
|
||||
passwordEntropy = findViewById(R.id.password_entropy)
|
||||
passwordEntropy = findViewById(R.id.password_edit_entropy)
|
||||
|
||||
mPasswordEntropyCalculator = PasswordEntropy {
|
||||
passwordText?.text?.toString()?.let { firstPassword ->
|
||||
@@ -113,20 +112,11 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
|
||||
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())
|
||||
PasswordGenerator.colorizedPassword(editable)
|
||||
}
|
||||
}
|
||||
passwordText?.addTextChangedListener(mPasswordTextWatcher)
|
||||
@@ -0,0 +1,159 @@
|
||||
/*
|
||||
* Copyright 2024 Jeremy Jamet / Kunzisoft.
|
||||
*
|
||||
* This file is part of KeePassDX.
|
||||
*
|
||||
* KeePassDX is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* KeePassDX is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
package com.kunzisoft.keepass.view
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.text.Spannable
|
||||
import android.util.AttributeSet
|
||||
import android.util.TypedValue
|
||||
import android.widget.TextView
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.setPadding
|
||||
import androidx.core.widget.TextViewCompat
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.password.PasswordEntropy
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
|
||||
|
||||
class PasswordTextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyle: Int = 0)
|
||||
: TextEditFieldView(context, attrs, defStyle) {
|
||||
|
||||
private var mPasswordEntropyCalculator: PasswordEntropy = PasswordEntropy {
|
||||
valueView.text?.toString()?.let { firstPassword ->
|
||||
getEntropyStrength(firstPassword)
|
||||
}
|
||||
}
|
||||
private var isColorizedPasswordActivated = PreferencesUtil.colorizePassword(context)
|
||||
|
||||
private var passwordProgressViewId = ViewCompat.generateViewId()
|
||||
private var passwordEntropyViewId = ViewCompat.generateViewId()
|
||||
|
||||
private var mPasswordProgress = LinearProgressIndicator(context).apply {
|
||||
layoutParams = LayoutParams(
|
||||
LayoutParams.MATCH_PARENT,
|
||||
LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
addRule(ALIGN_PARENT_BOTTOM)
|
||||
}
|
||||
setPadding(
|
||||
TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
1f,
|
||||
context.resources.displayMetrics
|
||||
).toInt()
|
||||
)
|
||||
setIndicatorColor(PasswordEntropy.Strength.RISKY.color)
|
||||
progress = 0
|
||||
max = 100
|
||||
}
|
||||
|
||||
private val mPasswordEntropyView = TextView(context).apply {
|
||||
layoutParams = LayoutParams(
|
||||
LayoutParams.WRAP_CONTENT,
|
||||
LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
addRule(ALIGN_PARENT_BOTTOM)
|
||||
}
|
||||
setPadding(
|
||||
TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
4f,
|
||||
context.resources.displayMetrics
|
||||
).toInt()
|
||||
)
|
||||
TextViewCompat.setTextAppearance(this, R.style.KeepassDXStyle_Text_Indicator)
|
||||
}
|
||||
|
||||
init {
|
||||
buildViews()
|
||||
|
||||
valueView.doAfterTextChanged { editable ->
|
||||
getEntropyStrength(editable.toString())
|
||||
PasswordGenerator.colorizedPassword(editable)
|
||||
}
|
||||
|
||||
addView(mPasswordProgress)
|
||||
addView(mPasswordEntropyView)
|
||||
}
|
||||
|
||||
private fun buildViews() {
|
||||
mPasswordProgress.apply {
|
||||
id = passwordProgressViewId
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
it.addRule(LEFT_OF, actionImageButtonId)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it.addRule(START_OF, actionImageButtonId)
|
||||
}
|
||||
}
|
||||
}
|
||||
mPasswordEntropyView.apply {
|
||||
id = passwordEntropyViewId
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
it.addRule(ALIGN_RIGHT, passwordProgressViewId)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it.addRule(ALIGN_END, passwordProgressViewId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getEntropyStrength(passwordText: String) {
|
||||
mPasswordEntropyCalculator.getEntropyStrength(passwordText) { entropyStrength ->
|
||||
mPasswordProgress.apply {
|
||||
post {
|
||||
setIndicatorColor(entropyStrength.strength.color)
|
||||
setProgressCompat(entropyStrength.estimationPercent, true)
|
||||
}
|
||||
}
|
||||
mPasswordEntropyView.apply {
|
||||
post {
|
||||
text = PasswordEntropy.getStringEntropy(resources, entropyStrength.entropy)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun spannableValue(value: String?): Spannable? {
|
||||
if (value == null)
|
||||
return null
|
||||
return if (isColorizedPasswordActivated)
|
||||
PasswordGenerator.getColorizedPassword(value)
|
||||
else
|
||||
super.spannableValue(value)
|
||||
}
|
||||
|
||||
override var label: String
|
||||
get() {
|
||||
return super.label
|
||||
}
|
||||
set(value) {
|
||||
super.label = value
|
||||
// Define views Ids with label value
|
||||
passwordProgressViewId = "passwordProgressViewId $value".hashCode()
|
||||
passwordEntropyViewId = "passwordEntropyViewId $value".hashCode()
|
||||
buildViews()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
* Copyright 2024 Jeremy Jamet / Kunzisoft.
|
||||
*
|
||||
* This file is part of KeePassDX.
|
||||
*
|
||||
* KeePassDX is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* KeePassDX is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
package com.kunzisoft.keepass.view
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.text.SpannableString
|
||||
import android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
import android.text.style.ImageSpan
|
||||
import android.util.AttributeSet
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.graphics.drawable.DrawableCompat
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.password.PasswordEntropy
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
|
||||
|
||||
class PasswordTextFieldView @JvmOverloads constructor(context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyle: Int = 0)
|
||||
: TextFieldView(context, attrs, defStyle) {
|
||||
|
||||
private var mPasswordEntropyCalculator: PasswordEntropy = PasswordEntropy {
|
||||
valueView.text?.toString()?.let { firstPassword ->
|
||||
getEntropyStrength(firstPassword)
|
||||
}
|
||||
}
|
||||
|
||||
private var indicatorDrawable = ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.ic_shield_white_24dp
|
||||
)?.apply {
|
||||
val lineHeight = labelView.lineHeight
|
||||
setBounds(0,0,lineHeight, lineHeight)
|
||||
DrawableCompat.setTint(this, Color.TRANSPARENT)
|
||||
}
|
||||
|
||||
override var label: String
|
||||
get() {
|
||||
return labelView.text.toString().removeSuffix(ICON_STRING_SPACES)
|
||||
}
|
||||
set(value) {
|
||||
indicatorDrawable?.let { drawable ->
|
||||
val spannableString = SpannableString("$value$ICON_STRING_SPACES")
|
||||
val startPosition = spannableString.split(ICON_STRING)[0].length
|
||||
val endPosition = startPosition + ICON_STRING.length
|
||||
spannableString
|
||||
.setSpan(
|
||||
ImageSpan(drawable),
|
||||
startPosition,
|
||||
endPosition,
|
||||
SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
labelView.text = spannableString
|
||||
} ?: kotlin.run {
|
||||
labelView.text = value
|
||||
}
|
||||
}
|
||||
|
||||
override fun setLabel(@StringRes labelId: Int) {
|
||||
label = resources.getString(labelId)
|
||||
}
|
||||
|
||||
override var value: String
|
||||
get() {
|
||||
return valueView.text.toString()
|
||||
}
|
||||
set(value) {
|
||||
val spannableString =
|
||||
if (PreferencesUtil.colorizePassword(context))
|
||||
PasswordGenerator.getColorizedPassword(value)
|
||||
else
|
||||
SpannableString(value)
|
||||
valueView.text = spannableString
|
||||
changeProtectedValueParameters()
|
||||
}
|
||||
|
||||
override fun setValue(@StringRes valueId: Int) {
|
||||
value = resources.getString(valueId)
|
||||
}
|
||||
|
||||
private fun getEntropyStrength(passwordText: String) {
|
||||
mPasswordEntropyCalculator.getEntropyStrength(passwordText) { entropyStrength ->
|
||||
labelView.apply {
|
||||
post {
|
||||
val strengthColor = entropyStrength.strength.color
|
||||
indicatorDrawable?.let { drawable ->
|
||||
DrawableCompat.setTint(drawable, strengthColor)
|
||||
}
|
||||
invalidate()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ICON_STRING = "[icon]"
|
||||
private const val ICON_STRING_SPACES = " $ICON_STRING"
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,7 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
||||
private var searchUsername: CompoundButton
|
||||
private var searchPassword: CompoundButton
|
||||
private var searchURL: CompoundButton
|
||||
private var searchByURLDomain: Boolean = false
|
||||
private var searchExpired: CompoundButton
|
||||
private var searchNotes: CompoundButton
|
||||
private var searchOther: CompoundButton
|
||||
@@ -50,6 +51,7 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
||||
this.searchInUsernames = searchUsername.isChecked
|
||||
this.searchInPasswords = searchPassword.isChecked
|
||||
this.searchInUrls = searchURL.isChecked
|
||||
this.searchByDomain = searchByURLDomain
|
||||
this.searchInExpired = searchExpired.isChecked
|
||||
this.searchInNotes = searchNotes.isChecked
|
||||
this.searchInOther = searchOther.isChecked
|
||||
@@ -70,6 +72,7 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
||||
searchUsername.isChecked = value.searchInUsernames
|
||||
searchPassword.isChecked = value.searchInPasswords
|
||||
searchURL.isChecked = value.searchInUrls
|
||||
searchByURLDomain = value.searchByDomain
|
||||
searchExpired.isChecked = value.searchInExpired
|
||||
searchNotes.isChecked = value.searchInNotes
|
||||
searchOther.isChecked = value.searchInOther
|
||||
|
||||
@@ -18,8 +18,14 @@ import com.kunzisoft.keepass.database.element.DateInstant
|
||||
import com.kunzisoft.keepass.database.element.Field
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||
import com.kunzisoft.keepass.database.element.security.ProtectedString
|
||||
import com.kunzisoft.keepass.database.element.template.*
|
||||
import com.kunzisoft.keepass.database.element.template.Template
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateAttribute
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateAttributeAction
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateAttributeOption
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateAttributeType
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateEngine
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateEngine.Companion.addTemplateDecorator
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.model.EntryInfo
|
||||
import com.kunzisoft.keepass.otp.OtpElement
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields
|
||||
@@ -608,9 +614,8 @@ abstract class TemplateAbstractView<
|
||||
getViewFieldByName(oldField.name)?.view?.let { viewToReplace ->
|
||||
val oldValue = getCustomField(oldField.name).protectedValue.toString()
|
||||
|
||||
val parentGroup = viewToReplace.parent as ViewGroup
|
||||
val indexInParent = parentGroup.indexOfChild(viewToReplace)
|
||||
parentGroup.removeView(viewToReplace)
|
||||
val parentGroup = viewToReplace.parent as? ViewGroup?
|
||||
parentGroup?.removeView(viewToReplace)
|
||||
|
||||
val newCustomFieldWithValue = if (keepOldValue)
|
||||
Field(newField.name,
|
||||
@@ -624,7 +629,9 @@ abstract class TemplateAbstractView<
|
||||
|
||||
val newCustomView = buildViewForCustomField(newCustomFieldWithValue)
|
||||
newCustomView?.let {
|
||||
parentGroup.addView(newCustomView, indexInParent)
|
||||
parentGroup?.indexOfChild(viewToReplace)?.let { indexInParent ->
|
||||
parentGroup.addView(newCustomView, indexInParent)
|
||||
}
|
||||
mViewFields.add(
|
||||
oldPosition,
|
||||
ViewField(
|
||||
|
||||
@@ -17,8 +17,10 @@ import com.kunzisoft.keepass.database.element.template.TemplateAttribute
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateAttributeAction
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.database.helper.getLocalizedName
|
||||
import com.kunzisoft.keepass.database.helper.isStandardPasswordName
|
||||
import com.kunzisoft.keepass.model.DataDate
|
||||
import com.kunzisoft.keepass.model.DataTime
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields
|
||||
import org.joda.time.DateTime
|
||||
|
||||
|
||||
class TemplateEditView @JvmOverloads constructor(context: Context,
|
||||
@@ -112,15 +114,22 @@ class TemplateEditView @JvmOverloads constructor(context: Context,
|
||||
override fun buildLinearTextView(templateAttribute: TemplateAttribute,
|
||||
field: Field): TextEditFieldView? {
|
||||
return context?.let {
|
||||
TextEditFieldView(it).apply {
|
||||
(if (TemplateField.isStandardPasswordName(context, templateAttribute.label))
|
||||
PasswordTextEditFieldView(it)
|
||||
else TextEditFieldView(it)).apply {
|
||||
// hiddenProtectedValue (mHideProtectedValue) don't work with TextInputLayout
|
||||
setProtection(field.protectedValue.isProtected)
|
||||
default = templateAttribute.default
|
||||
setMaxChars(templateAttribute.options.getNumberChars())
|
||||
setMaxLines(templateAttribute.options.getNumberLines())
|
||||
setActionClick(templateAttribute, field, this)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
importantForAutofill = View.IMPORTANT_FOR_AUTOFILL_NO
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (field.protectedValue.isProtected) {
|
||||
textDirection = TEXT_DIRECTION_LTR
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
importantForAutofill = View.IMPORTANT_FOR_AUTOFILL_NO
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -211,35 +220,31 @@ class TemplateEditView @JvmOverloads constructor(context: Context,
|
||||
val dateTimeView = getFieldViewById(viewId)
|
||||
if (dateTimeView is DateTimeEditFieldView) {
|
||||
dateTimeView.dateTime = DateInstant(
|
||||
action.invoke(dateTimeView.dateTime).date,
|
||||
dateTimeView.dateTime.type)
|
||||
action.invoke(dateTimeView.dateTime).instant,
|
||||
dateTimeView.dateTime.type
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun setCurrentDateTimeValue(dateMilliseconds: Long) {
|
||||
fun setCurrentDateTimeValue(date: DataDate) {
|
||||
// Save the date
|
||||
setCurrentDateTimeSelection { instant ->
|
||||
val newDateInstant = DateInstant(
|
||||
DateTime(instant.date)
|
||||
.withMillis(dateMilliseconds)
|
||||
.toDate(), instant.type)
|
||||
if (instant.type == DateInstant.Type.DATE_TIME) {
|
||||
val instantTime = DateInstant(instant.date, DateInstant.Type.TIME)
|
||||
setCurrentDateTimeSelection { dateInstant ->
|
||||
dateInstant.setDate(date.year, date.month, date.day)
|
||||
if (dateInstant.type == DateInstant.Type.DATE_TIME) {
|
||||
// Trick to recall selection with time
|
||||
mOnDateInstantClickListener?.invoke(instantTime)
|
||||
mOnDateInstantClickListener?.invoke(
|
||||
DateInstant(dateInstant.instant, DateInstant.Type.TIME)
|
||||
)
|
||||
}
|
||||
newDateInstant
|
||||
dateInstant
|
||||
}
|
||||
}
|
||||
|
||||
fun setCurrentTimeValue(time: DataTime) {
|
||||
setCurrentDateTimeSelection { instant ->
|
||||
DateInstant(
|
||||
DateTime(instant.date)
|
||||
.withHourOfDay(time.hours)
|
||||
.withMinuteOfHour(time.minutes)
|
||||
.toDate(), instant.type)
|
||||
setCurrentDateTimeSelection { dateInstant ->
|
||||
dateInstant.setTime(time.hour, time.minute)
|
||||
dateInstant
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.kunzisoft.keepass.view
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import androidx.core.view.isVisible
|
||||
@@ -10,6 +11,7 @@ import com.kunzisoft.keepass.database.element.security.ProtectedString
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateAttribute
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.database.helper.getLocalizedName
|
||||
import com.kunzisoft.keepass.database.helper.isStandardPasswordName
|
||||
import com.kunzisoft.keepass.model.OtpModel
|
||||
import com.kunzisoft.keepass.otp.OtpElement
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_TOKEN_FIELD
|
||||
@@ -48,7 +50,9 @@ class TemplateView @JvmOverloads constructor(context: Context,
|
||||
field: Field): TextFieldView? {
|
||||
// Add an action icon if needed
|
||||
return context?.let {
|
||||
TextFieldView(it).apply {
|
||||
(if (TemplateField.isStandardPasswordName(context, templateAttribute.label))
|
||||
PasswordTextFieldView(it)
|
||||
else TextFieldView(it)).apply {
|
||||
applyFontVisibility(mFontInVisibility)
|
||||
setProtection(field.protectedValue.isProtected, mHideProtectedValue)
|
||||
label = templateAttribute.alias
|
||||
@@ -59,6 +63,9 @@ class TemplateView @JvmOverloads constructor(context: Context,
|
||||
// Here the value is often empty
|
||||
|
||||
if (field.protectedValue.isProtected) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
textDirection = TEXT_DIRECTION_LTR
|
||||
}
|
||||
if (mFirstTimeAskAllowCopyProtectedFields) {
|
||||
setCopyButtonState(TextFieldView.ButtonState.DEACTIVATE)
|
||||
setCopyButtonClickListener { _, _ ->
|
||||
@@ -100,13 +107,12 @@ class TemplateView @JvmOverloads constructor(context: Context,
|
||||
return context?.let {
|
||||
DateTimeFieldView(it).apply {
|
||||
label = TemplateField.getLocalizedName(context, field.name)
|
||||
val dateInstantType = templateAttribute.options.getDateFormat()
|
||||
type = templateAttribute.options.getDateFormat()
|
||||
isExpirable = templateAttribute.options.getExpirable()
|
||||
try {
|
||||
val value = field.protectedValue.toString().trim()
|
||||
type = dateInstantType
|
||||
activation = value.isNotEmpty()
|
||||
} catch (e: Exception) {
|
||||
type = dateInstantType
|
||||
activation = false
|
||||
}
|
||||
}
|
||||
@@ -173,6 +179,9 @@ class TemplateView @JvmOverloads constructor(context: Context,
|
||||
otpElement.type.name,
|
||||
ProtectedString(false, otpElement.token)))
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
textDirection = TEXT_DIRECTION_LTR
|
||||
}
|
||||
mLastOtpTokenView = this
|
||||
mOtpRunnable = Runnable {
|
||||
if (otpElement.shouldRefreshToken()) {
|
||||
|
||||
@@ -8,45 +8,40 @@ import android.text.Spannable
|
||||
import android.text.SpannableString
|
||||
import android.util.AttributeSet
|
||||
import android.util.TypedValue
|
||||
import android.view.ContextThemeWrapper
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.RelativeLayout
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.appcompat.view.ContextThemeWrapper
|
||||
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
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.database.helper.isStandardPasswordName
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
|
||||
class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
open class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyle: Int = 0)
|
||||
: RelativeLayout(context, attrs, defStyle), GenericTextFieldView {
|
||||
|
||||
private var labelViewId = ViewCompat.generateViewId()
|
||||
private var valueViewId = ViewCompat.generateViewId()
|
||||
private var actionImageButtonId = ViewCompat.generateViewId()
|
||||
|
||||
private var textModified = false
|
||||
private var isColorizedPasswordActivated = PreferencesUtil.colorizePassword(context)
|
||||
protected var actionImageButtonId = ViewCompat.generateViewId()
|
||||
|
||||
private val labelView = TextInputLayout(context).apply {
|
||||
layoutParams = LayoutParams(
|
||||
LayoutParams.MATCH_PARENT,
|
||||
LayoutParams.WRAP_CONTENT)
|
||||
}
|
||||
private val valueView = TextInputEditText(
|
||||
ContextThemeWrapper(getContext(),
|
||||
R.style.KeepassDXStyle_TextInputLayout)
|
||||
protected val valueView = TextInputEditText(
|
||||
ContextThemeWrapper(
|
||||
getContext(),
|
||||
R.style.KeepassDXStyle_TextInputLayout
|
||||
)
|
||||
).apply {
|
||||
layoutParams = LinearLayout.LayoutParams(
|
||||
LayoutParams.MATCH_PARENT,
|
||||
@@ -62,7 +57,10 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
maxLines = 1
|
||||
}
|
||||
private var actionImageButton = AppCompatImageButton(
|
||||
ContextThemeWrapper(context, R.style.KeepassDXStyle_ImageButton_Simple), null, 0).apply {
|
||||
ContextThemeWrapper(
|
||||
context,
|
||||
R.style.KeepassDXStyle_ImageButton_Simple
|
||||
), null, 0).apply {
|
||||
layoutParams = LayoutParams(
|
||||
LayoutParams.WRAP_CONTENT,
|
||||
LayoutParams.WRAP_CONTENT).also {
|
||||
@@ -83,21 +81,6 @@ 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)
|
||||
@@ -106,10 +89,10 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
private fun buildViews() {
|
||||
labelView.apply {
|
||||
id = labelViewId
|
||||
layoutParams = (layoutParams as LayoutParams?).also {
|
||||
it?.addRule(LEFT_OF, actionImageButtonId)
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
it.addRule(LEFT_OF, actionImageButtonId)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it?.addRule(START_OF, actionImageButtonId)
|
||||
it.addRule(START_OF, actionImageButtonId)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -130,15 +113,6 @@ 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() ?: ""
|
||||
@@ -152,6 +126,10 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
buildViews()
|
||||
}
|
||||
|
||||
protected open fun spannableValue(value: String?): Spannable? {
|
||||
return SpannableString(value)
|
||||
}
|
||||
|
||||
override var value: String
|
||||
get() {
|
||||
return valueView.text?.toString() ?: ""
|
||||
|
||||
@@ -22,7 +22,6 @@ package com.kunzisoft.keepass.view
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.text.InputFilter
|
||||
import android.text.SpannableString
|
||||
import android.text.util.Linkify
|
||||
import android.util.AttributeSet
|
||||
import android.util.TypedValue
|
||||
@@ -38,15 +37,11 @@ import androidx.core.text.util.LinkifyCompat
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.isVisible
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.database.helper.isStandardPasswordName
|
||||
import com.kunzisoft.keepass.model.EntryInfo.Companion.APPLICATION_ID_FIELD_NAME
|
||||
import com.kunzisoft.keepass.password.PasswordGenerator
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.utils.UriUtil.openExternalApp
|
||||
|
||||
|
||||
class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
open class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyle: Int = 0)
|
||||
: RelativeLayout(context, attrs, defStyle), GenericTextFieldView {
|
||||
@@ -56,7 +51,7 @@ class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
private var showButtonId = ViewCompat.generateViewId()
|
||||
private var copyButtonId = ViewCompat.generateViewId()
|
||||
|
||||
private val labelView = AppCompatTextView(context).apply {
|
||||
protected val labelView = AppCompatTextView(context).apply {
|
||||
setTextAppearance(context,
|
||||
R.style.KeepassDXStyle_TextAppearance_LabelTextStyle)
|
||||
layoutParams = LayoutParams(
|
||||
@@ -77,7 +72,7 @@ class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
}
|
||||
}
|
||||
private val valueView = AppCompatTextView(context).apply {
|
||||
protected val valueView = AppCompatTextView(context).apply {
|
||||
setTextAppearance(context,
|
||||
R.style.KeepassDXStyle_TextAppearance_TextNode)
|
||||
layoutParams = LayoutParams(
|
||||
@@ -131,46 +126,46 @@ class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
private fun buildViews() {
|
||||
copyButton.apply {
|
||||
id = copyButtonId
|
||||
layoutParams = (layoutParams as LayoutParams?).also {
|
||||
it?.addRule(ALIGN_PARENT_RIGHT)
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
it.addRule(ALIGN_PARENT_RIGHT)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it?.addRule(ALIGN_PARENT_END)
|
||||
it.addRule(ALIGN_PARENT_END)
|
||||
}
|
||||
}
|
||||
}
|
||||
showButton.apply {
|
||||
id = showButtonId
|
||||
layoutParams = (layoutParams as LayoutParams?).also {
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
if (copyButton.isVisible) {
|
||||
it?.addRule(LEFT_OF, copyButtonId)
|
||||
it.addRule(LEFT_OF, copyButtonId)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it?.addRule(START_OF, copyButtonId)
|
||||
it.addRule(START_OF, copyButtonId)
|
||||
}
|
||||
} else {
|
||||
it?.addRule(ALIGN_PARENT_RIGHT)
|
||||
it.addRule(ALIGN_PARENT_RIGHT)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it?.addRule(ALIGN_PARENT_END)
|
||||
it.addRule(ALIGN_PARENT_END)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
labelView.apply {
|
||||
id = labelViewId
|
||||
layoutParams = (layoutParams as LayoutParams?).also {
|
||||
it?.addRule(LEFT_OF, showButtonId)
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
it.addRule(LEFT_OF, showButtonId)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it?.addRule(START_OF, showButtonId)
|
||||
it.addRule(START_OF, showButtonId)
|
||||
}
|
||||
}
|
||||
}
|
||||
valueView.apply {
|
||||
id = valueViewId
|
||||
layoutParams = (layoutParams as LayoutParams?).also {
|
||||
it?.addRule(LEFT_OF, showButtonId)
|
||||
layoutParams = (layoutParams as LayoutParams?)?.also {
|
||||
it.addRule(LEFT_OF, showButtonId)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
it?.addRule(START_OF, showButtonId)
|
||||
it.addRule(START_OF, showButtonId)
|
||||
}
|
||||
it?.addRule(BELOW, labelViewId)
|
||||
it.addRule(BELOW, labelViewId)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -188,7 +183,7 @@ class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
labelView.text = value
|
||||
}
|
||||
|
||||
fun setLabel(@StringRes labelId: Int) {
|
||||
open fun setLabel(@StringRes labelId: Int) {
|
||||
labelView.setText(labelId)
|
||||
}
|
||||
|
||||
@@ -197,17 +192,11 @@ class TextFieldView @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.text = spannableString
|
||||
valueView.text = value
|
||||
changeProtectedValueParameters()
|
||||
}
|
||||
|
||||
fun setValue(@StringRes valueId: Int) {
|
||||
open fun setValue(@StringRes valueId: Int) {
|
||||
value = resources.getString(valueId)
|
||||
changeProtectedValueParameters()
|
||||
}
|
||||
@@ -237,7 +226,7 @@ class TextFieldView @JvmOverloads constructor(context: Context,
|
||||
invalidate()
|
||||
}
|
||||
|
||||
private fun changeProtectedValueParameters() {
|
||||
protected fun changeProtectedValueParameters() {
|
||||
valueView.apply {
|
||||
if (showButton.isVisible) {
|
||||
applyHiddenStyle(showButton.isSelected)
|
||||
|
||||
@@ -59,6 +59,7 @@ import androidx.core.view.forEach
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.core.view.updatePadding
|
||||
import androidx.core.view.updatePaddingRelative
|
||||
import com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.kunzisoft.keepass.R
|
||||
@@ -225,14 +226,20 @@ fun View.showByFading() {
|
||||
}
|
||||
}
|
||||
|
||||
fun View.updateLockPaddingLeft() {
|
||||
updatePadding(resources.getDimensionPixelSize(
|
||||
if (PreferencesUtil.showLockDatabaseButton(context)) {
|
||||
R.dimen.lock_button_size
|
||||
} else {
|
||||
R.dimen.hidden_lock_button_size
|
||||
}
|
||||
))
|
||||
fun View.updateLockPaddingStart() {
|
||||
resources.getDimensionPixelSize(
|
||||
if (PreferencesUtil.showLockDatabaseButton(context)) {
|
||||
R.dimen.lock_button_size
|
||||
} else {
|
||||
R.dimen.hidden_lock_button_size
|
||||
}
|
||||
).let { lockPadding ->
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
updatePaddingRelative(lockPadding)
|
||||
} else {
|
||||
updatePadding(lockPadding)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Context.showActionErrorIfNeeded(result: ActionRunnable.Result) {
|
||||
@@ -306,10 +313,11 @@ fun Activity.setTransparentNavigationBar(applyToStatusBar: Boolean = false, appl
|
||||
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)
|
||||
window.navigationBarColor = ContextCompat.getColor(this, R.color.surface_selector)
|
||||
if (applyToStatusBar) {
|
||||
this.window.statusBarColor = obtainStyledAttributes(intArrayOf(R.attr.colorSurface)).use {
|
||||
it.getColor(0, Color.GRAY)
|
||||
obtainStyledAttributes(intArrayOf(R.attr.colorSurface)).apply {
|
||||
window.statusBarColor = getColor(0, Color.GRAY)
|
||||
recycle()
|
||||
}
|
||||
}
|
||||
applyWindowInsets.invoke()
|
||||
|
||||
@@ -1,32 +1,152 @@
|
||||
package com.kunzisoft.keepass.viewmodels
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.kunzisoft.keepass.model.CipherDecryptDatabase
|
||||
import com.kunzisoft.keepass.model.CipherEncryptDatabase
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
|
||||
class AdvancedUnlockViewModel : ViewModel() {
|
||||
|
||||
var allowAutoOpenBiometricPrompt : Boolean = true
|
||||
var deviceCredentialAuthSucceeded: Boolean? = null
|
||||
|
||||
val onInitAdvancedUnlockModeRequested : LiveData<Void?> get() = _onInitAdvancedUnlockModeRequested
|
||||
private val _onInitAdvancedUnlockModeRequested = SingleLiveEvent<Void?>()
|
||||
private val _uiState = MutableStateFlow(DeviceUnlockState())
|
||||
val uiState: StateFlow<DeviceUnlockState> = _uiState
|
||||
|
||||
val onUnlockAvailabilityCheckRequested : LiveData<Void?> get() = _onUnlockAvailabilityCheckRequested
|
||||
private val _onUnlockAvailabilityCheckRequested = SingleLiveEvent<Void?>()
|
||||
|
||||
val onDatabaseFileLoaded : LiveData<Uri?> get() = _onDatabaseFileLoaded
|
||||
private val _onDatabaseFileLoaded = SingleLiveEvent<Uri?>()
|
||||
|
||||
fun initAdvancedUnlockMode() {
|
||||
_onInitAdvancedUnlockModeRequested.call()
|
||||
fun checkUnlockAvailability(conditionToStoreCredentialVerified: Boolean? = null) {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
onUnlockAvailabilityCheckRequested = true,
|
||||
isConditionToStoreCredentialVerified = conditionToStoreCredentialVerified
|
||||
?: _uiState.value.isConditionToStoreCredentialVerified
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun checkUnlockAvailability() {
|
||||
_onUnlockAvailabilityCheckRequested.call()
|
||||
fun consumeCheckUnlockAvailability() {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
onUnlockAvailabilityCheckRequested = false
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun databaseFileLoaded(databaseUri: Uri?) {
|
||||
_onDatabaseFileLoaded.value = databaseUri
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
databaseFileLoaded = databaseUri
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun consumeDatabaseFileLoaded() {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
databaseFileLoaded = null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun retrieveCredentialForEncryption() {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
isCredentialRequired = true,
|
||||
credential = null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun provideCredentialForEncryption(credential: ByteArray) {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
isCredentialRequired = false,
|
||||
credential = credential
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun consumeCredentialForEncryption() {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
isCredentialRequired = false,
|
||||
credential = null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun onCredentialEncrypted(cipherEncryptDatabase: CipherEncryptDatabase) {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
cipherEncryptDatabase = cipherEncryptDatabase
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun consumeCredentialEncrypted() {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
cipherEncryptDatabase = null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun onCredentialDecrypted(cipherDecryptDatabase: CipherDecryptDatabase) {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
cipherDecryptDatabase = cipherDecryptDatabase
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun consumeCredentialDecrypted() {
|
||||
_uiState.update { currentState ->
|
||||
currentState.copy(
|
||||
cipherDecryptDatabase = null
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data class DeviceUnlockState(
|
||||
val initAdvancedUnlockMode: Boolean = false,
|
||||
val databaseFileLoaded: Uri? = null,
|
||||
val isCredentialRequired: Boolean = false,
|
||||
val credential: ByteArray? = null,
|
||||
val isConditionToStoreCredentialVerified: Boolean = false,
|
||||
val onUnlockAvailabilityCheckRequested: Boolean = false,
|
||||
val cipherEncryptDatabase: CipherEncryptDatabase? = null,
|
||||
val cipherDecryptDatabase: CipherDecryptDatabase? = null
|
||||
) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
other as DeviceUnlockState
|
||||
|
||||
if (initAdvancedUnlockMode != other.initAdvancedUnlockMode) return false
|
||||
if (isCredentialRequired != other.isCredentialRequired) return false
|
||||
if (isConditionToStoreCredentialVerified != other.isConditionToStoreCredentialVerified) return false
|
||||
if (onUnlockAvailabilityCheckRequested != other.onUnlockAvailabilityCheckRequested) return false
|
||||
if (databaseFileLoaded != other.databaseFileLoaded) return false
|
||||
if (!credential.contentEquals(other.credential)) return false
|
||||
if (cipherEncryptDatabase != other.cipherEncryptDatabase) return false
|
||||
if (cipherDecryptDatabase != other.cipherDecryptDatabase) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = initAdvancedUnlockMode.hashCode()
|
||||
result = 31 * result + isCredentialRequired.hashCode()
|
||||
result = 31 * result + isConditionToStoreCredentialVerified.hashCode()
|
||||
result = 31 * result + onUnlockAvailabilityCheckRequested.hashCode()
|
||||
result = 31 * result + (databaseFileLoaded?.hashCode() ?: 0)
|
||||
result = 31 * result + (credential?.contentHashCode() ?: 0)
|
||||
result = 31 * result + (cipherEncryptDatabase?.hashCode() ?: 0)
|
||||
result = 31 * result + (cipherDecryptDatabase?.hashCode() ?: 0)
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,9 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
|
||||
|
||||
fun loadDatabaseFile(databaseUri: Uri) {
|
||||
mFileDatabaseHistoryAction?.getDatabaseFile(databaseUri) { databaseFileRetrieved ->
|
||||
mDatabaseFileLoaded.value = databaseFileRetrieved
|
||||
databaseFileRetrieved?.let {
|
||||
mDatabaseFileLoaded.value = it
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -43,8 +43,8 @@ class KeyGeneratorViewModel: ViewModel() {
|
||||
val requirePassphraseGeneration : LiveData<Void?> get() = _requirePassphraseGeneration
|
||||
private val _requirePassphraseGeneration = SingleLiveEvent<Void?>()
|
||||
|
||||
fun setKeyGenerated(passKey: String) {
|
||||
_keyGenerated.value = passKey
|
||||
fun setKeyGenerated(value: String) {
|
||||
_keyGenerated.value = value
|
||||
}
|
||||
|
||||
fun validateKeyGenerated() {
|
||||
|
||||
@@ -4,7 +4,8 @@ import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.kunzisoft.keepass.database.element.DateInstant
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||
import com.kunzisoft.keepass.view.DataTime
|
||||
import com.kunzisoft.keepass.model.DataDate
|
||||
import com.kunzisoft.keepass.model.DataTime
|
||||
|
||||
abstract class NodeEditViewModel : ViewModel() {
|
||||
|
||||
@@ -23,8 +24,8 @@ abstract class NodeEditViewModel : ViewModel() {
|
||||
|
||||
val requestDateTimeSelection : LiveData<DateInstant> get() = _requestDateTimeSelection
|
||||
private val _requestDateTimeSelection = SingleLiveEvent<DateInstant>()
|
||||
val onDateSelected : LiveData<Long> get() = _onDateSelected
|
||||
private val _onDateSelected = SingleLiveEvent<Long>()
|
||||
val onDateSelected : LiveData<DataDate> get() = _onDateSelected
|
||||
private val _onDateSelected = SingleLiveEvent<DataDate>()
|
||||
val onTimeSelected : LiveData<DataTime> get() = _onTimeSelected
|
||||
private val _onTimeSelected = SingleLiveEvent<DataTime>()
|
||||
|
||||
@@ -57,12 +58,12 @@ abstract class NodeEditViewModel : ViewModel() {
|
||||
_requestDateTimeSelection.value = dateInstant
|
||||
}
|
||||
|
||||
fun selectDate(dateMilliseconds: Long) {
|
||||
_onDateSelected.value = dateMilliseconds
|
||||
fun selectDate(date: DataDate) {
|
||||
_onDateSelected.value = date
|
||||
}
|
||||
|
||||
fun selectTime(hours: Int, minutes: Int) {
|
||||
_onTimeSelected.value = DataTime(hours, minutes)
|
||||
fun selectTime(dataTime: DataTime) {
|
||||
_onTimeSelected.value = dataTime
|
||||
}
|
||||
|
||||
private enum class ColorRequest {
|
||||
|
||||
13
app/src/main/res/drawable-ldrtl/ic_arrow_back_white_24dp.xml
Normal file
13
app/src/main/res/drawable-ldrtl/ic_arrow_back_white_24dp.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?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="24"
|
||||
android:viewportHeight="24">
|
||||
<group>
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeWidth="1.78885484"
|
||||
android:pathData="M10,19Q7.5,19 5.5,17.5Q4,16 4,13.5Q4,11 5.5,9.5Q7.5,8 10,8L16,8L13.5,5.5L15,4L20,9L15,14L13.5,12.5L16,10L10,10Q8.5,10 7,11Q6,12 6,13.5Q6,15 7,16Q8.5,17 10,17L17,17L17,19L10,19Z" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M8.59,16.59L13.17,12 8.59,7.41 10,6l6,6 -6,6 -1.41,-1.41z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24">
|
||||
<path
|
||||
android:fillColor="@color/green"
|
||||
android:pathData="M14,7l-5,5 5,5V7z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,5 @@
|
||||
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:drawable="@drawable/ic_arrow_left_white_24dp"
|
||||
android:fromDegrees="180"
|
||||
android:toDegrees="180"
|
||||
android:visible="true" />
|
||||
9
app/src/main/res/drawable/ic_file_key_white_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_file_key_white_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M11 16C11 16.6 10.6 17 10 17S9 16.6 9 16C9 15.4 9.4 15 10 15S11 15.4 11 16M20 8V20C20 21.1 19.1 22 18 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H14M18 15H12.8C12.2 13.4 10.5 12.6 9 13.2C7.4 13.8 6.6 15.5 7.2 17S9.5 19.4 11 18.8C11.9 18.5 12.5 17.8 12.8 17H14V19H16V17H18M18.5 9L13 3.5V9H18.5Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#FFFFFF" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M18,22l-0.01,-6L14,12l3.99,-4.01L18,2H6v6l4,4l-4,3.99V22H18zM8,7.5V4h8v3.5l-4,4L8,7.5z"/>
|
||||
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_shield_white_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_shield_white_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M12,1L3,5v6c0,5.55 3.84,10.74 9,12 5.16,-1.26 9,-6.45 9,-12V5l-9,-4z"/>
|
||||
</vector>
|
||||
@@ -1,7 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24"
|
||||
android:width="24dp">
|
||||
<path android:fillColor="#ffffff" android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z"/>
|
||||
</vector>
|
||||
@@ -58,6 +58,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_collapseMode="parallax"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
|
||||
@@ -50,14 +50,14 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/card_view_padding">
|
||||
|
||||
<com.kunzisoft.keepass.view.PassKeyView
|
||||
<com.kunzisoft.keepass.view.PasswordEditView
|
||||
android:id="@+id/passphrase_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toStartOf="@+id/passphrase_copy_button"
|
||||
android:layout_toLeftOf="@+id/passphrase_copy_button"
|
||||
app:passKeyHint="@string/passphrase"
|
||||
app:passKeyMaxLines="7"/>
|
||||
app:passwordHint="@string/passphrase"
|
||||
app:passwordMaxLines="7"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/passphrase_copy_button"
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/card_view_padding">
|
||||
|
||||
<com.kunzisoft.keepass.view.PassKeyView
|
||||
<com.kunzisoft.keepass.view.PasswordEditView
|
||||
android:id="@+id/password_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -72,11 +72,11 @@
|
||||
android:text="@string/password"/>
|
||||
|
||||
<!-- Password Input -->
|
||||
<com.kunzisoft.keepass.view.PassKeyView
|
||||
<com.kunzisoft.keepass.view.PasswordEditView
|
||||
android:id="@+id/password_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:passKeyVisible="false"/>
|
||||
app:passwordVisible="false"/>
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/password_repeat_input_layout"
|
||||
android:layout_width="match_parent"
|
||||
@@ -94,6 +94,7 @@
|
||||
android:importantForAccessibility="no"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="textPassword|textMultiLine"
|
||||
android:textDirection="ltr"
|
||||
android:maxLines="3"
|
||||
android:hint="@string/hint_conf_pass"/>
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
@@ -121,6 +122,15 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/entry_keyfile"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
style="@style/KeepassDXStyle.Button.Secondary"
|
||||
android:id="@+id/keyfile_generate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
app:icon="@drawable/ic_file_key_white_24dp"
|
||||
android:text="@string/generate_keyfile" />
|
||||
|
||||
<com.kunzisoft.keepass.view.KeyFileSelectionView
|
||||
android:id="@+id/keyfile_selection"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -125,8 +125,7 @@
|
||||
android:paddingStart="8dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:paddingRight="4dp"
|
||||
android:paddingVertical="4dp">
|
||||
android:paddingRight="4dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/node_otp_token"
|
||||
|
||||
@@ -61,11 +61,11 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@+id/node_icon"
|
||||
android:layout_marginEnd="-32dp"
|
||||
android:layout_marginRight="-32dp"
|
||||
android:layout_toStartOf="@+id/node_icon"
|
||||
android:layout_toLeftOf="@+id/node_icon"
|
||||
tools:text="3" />
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
tools:text="123" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layoutDirection="ltr"
|
||||
app:layout_constraintTop_toBottomOf="@+id/switch_element">
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="@drawable/ic_warning_white_24dp"
|
||||
android:src="@drawable/ic_hourglass_bottom_white_24dp"
|
||||
android:contentDescription="@string/content_description_file_information"
|
||||
app:tint="?android:attr/textColor"/>
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
android:minHeight="48dp"
|
||||
android:hint="@string/password"
|
||||
android:inputType="textPassword"
|
||||
android:textDirection="ltr"
|
||||
android:importantForAutofill="no"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/password_input_layout"
|
||||
android:id="@+id/password_edit_input_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -18,7 +18,7 @@
|
||||
tools:ignore="UnusedAttribute">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/password_text"
|
||||
android:id="@+id/password_edit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
@@ -26,28 +26,27 @@
|
||||
android:importantForAccessibility="no"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="textPassword|textMultiLine"
|
||||
android:textDirection="ltr"
|
||||
android:maxLines="3"
|
||||
tools:ignore="TextFields" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
android:id="@+id/password_strength_progress"
|
||||
android:id="@+id/password_edit_strength_progress"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:padding="1dp"
|
||||
app:trackCornerRadius="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/password_input_layout"/>
|
||||
app:layout_constraintBottom_toBottomOf="@+id/password_edit_input_layout"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/password_entropy"
|
||||
android:id="@+id/password_edit_entropy"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Entropy: 72.50 bit"
|
||||
android:textSize="11sp"
|
||||
android:layout_margin="4dp"
|
||||
android:textColor="?attr/colorSecondary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/password_input_layout"
|
||||
app:layout_constraintEnd_toEndOf="@+id/password_input_layout" />
|
||||
style="@style/KeepassDXStyle.Text.Indicator"
|
||||
android:padding="4dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/password_edit_input_layout"
|
||||
app:layout_constraintEnd_toEndOf="@+id/password_edit_input_layout" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -18,39 +18,39 @@
|
||||
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
||||
--><resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||
<string name="homepage">الصفحة الرئيسة</string>
|
||||
<string name="accept">قبول</string>
|
||||
<string name="add_group">إضافة مجموعة</string>
|
||||
<string name="encryption">التشفير</string>
|
||||
<string name="encryption_algorithm">خوارزمية التشفير</string>
|
||||
<string name="accept">اقبل</string>
|
||||
<string name="add_group">أضف مجموعة</string>
|
||||
<string name="encryption">التعمية</string>
|
||||
<string name="encryption_algorithm">خوارزمية التعمية</string>
|
||||
<string name="application">التطبيق</string>
|
||||
<string name="brackets">الأقواس</string>
|
||||
<string name="extended_ASCII">ASCII ممتد</string>
|
||||
<string name="allow">سماح</string>
|
||||
<string name="allow">اسمح</string>
|
||||
<string name="clipboard_cleared">مُسِحت الحافظة</string>
|
||||
<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_cancel">ألغِ</string>
|
||||
<string name="entry_notes">ملاحظات</string>
|
||||
<string name="entry_confpassword">تأكيد كلمة السر</string>
|
||||
<string name="entry_confpassword">أكّد كلمة السر</string>
|
||||
<string name="entry_created">أُنشئ</string>
|
||||
<string name="entry_modified">معدل</string>
|
||||
<string name="entry_modified">مُعدل</string>
|
||||
<string name="entry_not_found">تعذر العثور على بيانات المُدخلة.</string>
|
||||
<string name="entry_password">كلمة السر</string>
|
||||
<string name="save">حفظ</string>
|
||||
<string name="save">احفظ</string>
|
||||
<string name="entry_title">العنوان</string>
|
||||
<string name="entry_url">رابط</string>
|
||||
<string name="entry_user_name">اسم المستخدم</string>
|
||||
<string name="error_file_not_create">تعذر إنشاء الملف</string>
|
||||
<string name="error_file_not_create">تعذر إنشاء الملف.</string>
|
||||
<string name="error_invalid_path">تأكد أن المسار صحيح.</string>
|
||||
<string name="error_no_name">ادخل اسمًا.</string>
|
||||
<string name="error_pass_match">كلمتا السر غير متطابقتين.</string>
|
||||
<string name="field_name">اسم الحقل</string>
|
||||
<string name="field_value">قيمة الحقل</string>
|
||||
<string name="generate_password">توليد كلمة سر</string>
|
||||
<string name="hint_conf_pass">تأكيد كلمة السر</string>
|
||||
<string name="generate_password">ولّد كلمة سر</string>
|
||||
<string name="hint_conf_pass">أكّد كلمة السر</string>
|
||||
<string name="hint_group_name">اسم المجموعة</string>
|
||||
<string name="hint_length">الطول</string>
|
||||
<string name="hint_pass">كلمة السر</string>
|
||||
@@ -61,15 +61,15 @@
|
||||
<string name="list_size_summary">حجم النص في قائمة العناصر</string>
|
||||
<string name="loading_database">يحمل قاعدة البيانات…</string>
|
||||
<string name="lowercase">حروف صغيرة</string>
|
||||
<string name="hide_password_summary">إخفاء كلمات السر بشكل افتراضي</string>
|
||||
<string name="hide_password_summary">أخفِ كلمات السر (***) افتراضيًا</string>
|
||||
<string name="about">عن التطبيق</string>
|
||||
<string name="menu_change_key_settings">تغيير المفتاح الرئيسي</string>
|
||||
<string name="settings">الإعدادات</string>
|
||||
<string name="menu_app_settings">إعدادات التطبيق</string>
|
||||
<string name="menu_database_settings">إعدادات قاعدة البيانات</string>
|
||||
<string name="menu_delete">حذف</string>
|
||||
<string name="menu_delete">احذف</string>
|
||||
<string name="menu_donate">التبرع</string>
|
||||
<string name="menu_edit">تعديل</string>
|
||||
<string name="menu_edit">عدّل</string>
|
||||
<string name="menu_lock">اقفل قاعدة البيانات</string>
|
||||
<string name="menu_open">فتح</string>
|
||||
<string name="menu_search">البحث</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>
|
||||
@@ -107,20 +107,19 @@
|
||||
<string name="feedback">أرسل انطباعاتك</string>
|
||||
<string name="about_description">\"KeePassDX\" هو تطبيق أندرويد لمدير كلمات المرور كي باس \"KeePass\"</string>
|
||||
<string name="add_entry">أضف مدخل</string>
|
||||
<string name="edit_entry">تحرير مدخل</string>
|
||||
<string name="edit_entry">عدّل مدخل</string>
|
||||
<string name="key_derivation_function">وظيفة اشتقاق المفتاح</string>
|
||||
<string name="app_timeout">المهلة</string>
|
||||
<string name="app_timeout_summary">مدة الخمول قبل قفل قاعدة البيانات</string>
|
||||
<string name="file_manager_install_description">مدير الملفات الذي يمكنه القيام بالإجراءين ACTION_CREATE_DOCUMENT و ACTION_OPEN_DOCUMENT ضروري لانشاء, وفتح وحفض قواعد البيانات.</string>
|
||||
<string name="file_manager_install_description">مدير الملفات الذي يمكنه القيام بالإجراءين ACTION_CREATE_DOCUMENT و ACTION_OPEN_DOCUMENT ضروري لانشاء، وفتح وحفظ قواعد البيانات.</string>
|
||||
<string name="clipboard_error">بعض الأجهزة لا تسمح للتطبيقات باستعمال الحافظة.</string>
|
||||
<string name="clipboard_timeout">مهلة الحافظة</string>
|
||||
<string name="clipboard_timeout_summary">مدة التخزين في الحافظة(إذا كان جهازك يدعمها)</string>
|
||||
<string name="clipboard_timeout_summary">مدة التخزين في الحافظة (إذا كان جهازك يدعمها)</string>
|
||||
<string name="select_to_copy">اختر لنسخ %1$s إلى الحافظة</string>
|
||||
<string name="retrieving_db_key">يجلب مفتاح قاعدة البيانات…</string>
|
||||
<string name="default_checkbox">استخدامها كقاعدة بيانات افتراضية</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d كونزيسوفت <strong>مفتوح المصدر</strong> و <strong>بدون اعلانات</strong>.
|
||||
\n يوزع كما هو، بدون ضمان, تحت ترخيص <strong>GPLv3</strong>.</string>
|
||||
<string name="entry_accessed">نُفذ إليه</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d كونزيسوفت <strong>مفتوح المصدر</strong> و <strong>بدون إعلانات</strong>. \n يوزع كما هو، دون ضمان، تحت ترخيص <strong>GPLv3</strong>.</string>
|
||||
<string name="entry_accessed">وُصِل إليه</string>
|
||||
<string name="entry_expires">تنتهي صلاحيته في</string>
|
||||
<string name="entry_keyfile">ملف المفتاح</string>
|
||||
<string name="error_arc4">تشفير دفق Arcfour غير مدعوم.</string>
|
||||
@@ -129,7 +128,7 @@
|
||||
<string name="error_nokeyfile">اختر ملف مفتاح.</string>
|
||||
<string name="error_out_of_memory">لا ذاكرة لتحميل قاعدة البيانات كاملة.</string>
|
||||
<string name="error_load_database">تعذر تحميل قاعدة البيانات.</string>
|
||||
<string name="error_load_database_KDF_memory">لا يمكن تحميل المفتاح، حاول تقليل \"الذاكرة المستخدمة\" من قبل KDF.</string>
|
||||
<string name="error_load_database_KDF_memory">تعذر تحميل المفتاح. حاول تقليل \"الذاكرة المستخدمة\" من قِبل KDF.</string>
|
||||
<string name="error_pass_gen_type">يجب تحديد نوع واحد على الأقل لتوليد كلمة السر.</string>
|
||||
<string name="error_rounds_too_large">\"جولات التحويل\" كثيرة جداً. الإعداد إلى 2147483648.</string>
|
||||
<string name="error_string_key">يجب أن يكون لكل سلسلة اسم حقل.</string>
|
||||
@@ -141,17 +140,17 @@
|
||||
<string name="invalid_db_sig">تعذر تمييز نسق قاعدة البيانات.</string>
|
||||
<string name="keyfile_is_empty">ملف المفتاح فارغ.</string>
|
||||
<string name="list_entries_show_username_title">أظهر أسماء المستخدمين</string>
|
||||
<string name="list_entries_show_username_summary">اعرض اسماء المستخدمين في قوائم المدخلات</string>
|
||||
<string name="hint_generated_password">كلمة السر الموَلدة</string>
|
||||
<string name="hint_keyfile">الملف المفتاحي</string>
|
||||
<string name="hide_password_title">اخفاء كلمات السر</string>
|
||||
<string name="list_entries_show_username_summary">يعرض اسماء المستخدمين في قوائم المدخلات</string>
|
||||
<string name="hint_generated_password">كلمة السر مولّدة</string>
|
||||
<string name="hint_keyfile">ملف المفتاح</string>
|
||||
<string name="hide_password_title">أخفِ كلمات السر</string>
|
||||
<string name="copy_field">نُسخة من %1$s</string>
|
||||
<string name="menu_copy">نسخ</string>
|
||||
<string name="menu_move">نقل</string>
|
||||
<string name="menu_paste">لصق</string>
|
||||
<string name="menu_cancel">الغاء</string>
|
||||
<string name="menu_hide_password">اخفاء كلمة السر</string>
|
||||
<string name="menu_showpass">اظهار كلمة السر</string>
|
||||
<string name="menu_cancel">ألغِ</string>
|
||||
<string name="menu_hide_password">أخفِ كلمة السر</string>
|
||||
<string name="menu_showpass">أظهر كلمة السر</string>
|
||||
<string name="menu_url">الانتقال الى الرابط</string>
|
||||
<string name="menu_file_selection_read_only">محمي من التعديل</string>
|
||||
<string name="menu_open_file_read_and_write">قابل للتعديل</string>
|
||||
@@ -166,7 +165,7 @@
|
||||
<string name="unavailable">غير متوفر</string>
|
||||
<string name="menu_appearance_settings">المظهر</string>
|
||||
<string name="general">عام</string>
|
||||
<string name="autofill">ملأ تلقائي</string>
|
||||
<string name="autofill">الملء التلقائي</string>
|
||||
<string name="autofill_sign_in_prompt">سجل باستخدام KeePassDX</string>
|
||||
<string name="set_autofill_service_title">تعيين خدمة الملأ التلقائي الافتراضية</string>
|
||||
<string name="password_size_title">حجم كلمة السر المولدة</string>
|
||||
@@ -178,7 +177,7 @@
|
||||
<string name="clipboard_warning">اذا فشل الحذف التلقائي من الحافظة ,احذف تأريخه يدويا.</string>
|
||||
<string name="lock_database_screen_off_title">قفل الشاشة</string>
|
||||
<string name="lock_database_screen_off_summary">اقفل قاعدة البيانات بعد بضع ثوانٍ بمجرد إيقاف تشغيل الشاشة</string>
|
||||
<string name="biometric_delete_all_key_title">حذف مفاتيح التشفير</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>
|
||||
<string name="file_name">اسم الملف</string>
|
||||
@@ -234,10 +233,10 @@
|
||||
<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="education_search_title">البحث من خلال الإدخالات</string>
|
||||
<string name="education_search_title">ابحث من خلال المدخلات</string>
|
||||
<string name="content_description_open_file">افتح الملف</string>
|
||||
<string name="content_description_add_entry">إضافة مدخلة</string>
|
||||
<string name="content_description_add_group">إضافة مجموعة</string>
|
||||
<string name="content_description_add_entry">أضف مدخل</string>
|
||||
<string name="content_description_add_group">أضف مجموعة</string>
|
||||
<string name="content_description_file_information">معلومات الملف</string>
|
||||
<string name="entry_password_generator">مولد كلمة السر</string>
|
||||
<string name="content_description_background">الخلفية</string>
|
||||
@@ -250,22 +249,22 @@
|
||||
<string name="do_not_kill_app">لا تقتل التطبيق…</string>
|
||||
<string name="content_description_node_children">العقد الفرعية</string>
|
||||
<string name="content_description_add_node">أضف عقدة</string>
|
||||
<string name="content_description_entry_icon">ايقونة المدخل</string>
|
||||
<string name="content_description_entry_icon">أيقونة المدخل</string>
|
||||
<string name="content_description_password_length">طول كلمة السر</string>
|
||||
<string name="entry_add_field">أضف حقل</string>
|
||||
<string name="content_description_remove_field">أزل حقل</string>
|
||||
<string name="error_move_entry_here">يتعذر نقل مدخل إلى هنا.</string>
|
||||
<string name="error_copy_entry_here">يتعذر نسخ مدخال إلى هنا.</string>
|
||||
<string name="list_groups_show_number_entries_title">عرض عدد المدخلات</string>
|
||||
<string name="list_groups_show_number_entries_summary">عرض عدد المدخلات في المجموعة</string>
|
||||
<string name="content_description_update_from_list">تحديث</string>
|
||||
<string name="error_move_entry_here">لا يمكنك نقل مدخل هنا.</string>
|
||||
<string name="error_copy_entry_here">لا يمكنك نسخ مدخل هنا.</string>
|
||||
<string name="list_groups_show_number_entries_title">أظهر عدد المدخلات</string>
|
||||
<string name="list_groups_show_number_entries_summary">يعرض عدد المدخلات في المجموعة</string>
|
||||
<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="error_create_database_file">تعذر إنشاء قاعدة بيانات بكلمة السر وملف المفتاح الحاليين.</string>
|
||||
<string name="menu_advanced_unlock_settings">فك قفل الجهاز</string>
|
||||
<string name="entry_attachments">مرفقات</string>
|
||||
<string name="entry_history">السجل</string>
|
||||
<string name="entry_add_attachment">أضف مرفقا</string>
|
||||
<string name="discard">إلغاء</string>
|
||||
<string name="entry_history">التاريخ</string>
|
||||
<string name="entry_add_attachment">أضف مرفقًا</string>
|
||||
<string name="discard">تجاهل</string>
|
||||
<string name="discard_changes">تجاهل التغييرات؟</string>
|
||||
<string name="validate">تأكيد</string>
|
||||
<string name="security">الأمان</string>
|
||||
@@ -273,27 +272,27 @@
|
||||
<string name="error_otp_period">يجب ان تكون المدة بين %1$d و%2$d ثانية.</string>
|
||||
<string name="error_otp_secret_key">المفتاح السري يجب ان يكون بصيغة Base32.</string>
|
||||
<string name="error_save_database">تعذر حفظ قاعدة البيانات.</string>
|
||||
<string name="error_create_database">لا يمكن إنشاء ملف قاعدة البيانات.</string>
|
||||
<string name="error_copy_group_here">لا يمكن نسخ مجموعة هنا.</string>
|
||||
<string name="error_create_database">تعذر إنشاء ملف قاعدة البيانات.</string>
|
||||
<string name="error_copy_group_here">لا يمكنك نسخ مجموعة هنا.</string>
|
||||
<string name="error_label_exists">هذه التسمية موجودة بالفعل.</string>
|
||||
<string name="otp_period">المدة (ثواني)</string>
|
||||
<string name="otp_algorithm">الخوارزمية</string>
|
||||
<string name="otp_digits">أرقام</string>
|
||||
<string name="otp_counter">العداد</string>
|
||||
<string name="entry_setup_otp">عيّن كلمة مرور لمرة واحدة</string>
|
||||
<string name="entry_setup_otp">عيّن كلمة سر لمرة واحدة</string>
|
||||
<string name="entry_UUID">UUID</string>
|
||||
<string name="html_about_contribution">من أجل <strong>حماية خصوصيتا</strong>٫<strong> إصلاح العلل</strong>٫ <strong>إضافة مميزات</strong> <strong>وجعلنا نشطاء دائما</strong>٫ نحن نعتمد على <strong>مساهمتك</strong>.</string>
|
||||
<string name="content_description_keyfile_checkbox">خانة تأشير الملف المفتاحي</string>
|
||||
<string name="html_about_contribution">لكي <strong>نحافظ على حريتنا</strong>، و<strong>نصلح الأخطاء</strong>، و<strong>نضيف ميزات</strong>، و<strong>نبقى دائمًا نشطين</strong>، فإننا نعتمد على <strong>مساهمتكم</strong>.</string>
|
||||
<string name="content_description_keyfile_checkbox">خانة تأشير ملف المفتاح</string>
|
||||
<string name="content_description_password_checkbox">خانة تأشير كلمة السر</string>
|
||||
<string name="content_description_add_item">أضف عنصر</string>
|
||||
<string name="warning_permanently_delete_nodes">حذف العقد المحددة نهائيا؟</string>
|
||||
<string name="filter">مرشح</string>
|
||||
<string name="command_execution">ينفذ الأمر…</string>
|
||||
<string name="hide_broken_locations_title">اِخفي روابط قواعد البيانات المعطلة</string>
|
||||
<string name="hide_broken_locations_title">أخفِ روابط قواعد البيانات المعطوبة</string>
|
||||
<string name="show_recent_files_summary">أظهر موقع قواعد البيانات الأخيرة</string>
|
||||
<string name="show_recent_files_title">أظهر الملفات الأخيرة</string>
|
||||
<string name="remember_keyfile_locations_summary">تعقب موقع الملفات المفتاحية لقاعدة البيانات</string>
|
||||
<string name="remember_keyfile_locations_title">تذكر موقع الملف المفتاحي</string>
|
||||
<string name="remember_keyfile_locations_title">تذكر موقع ملف المفتاح</string>
|
||||
<string name="remember_database_locations_summary">تعقب موقع قاعدة البيانات</string>
|
||||
<string name="remember_database_locations_title">تذكر موقع تخزين قاعدة البيانات</string>
|
||||
<string name="contains_duplicate_uuid_procedure">للمتابعة هل تريد حل المشكلة بتوليد UUID للعناصر المكررة ؟</string>
|
||||
@@ -308,42 +307,42 @@
|
||||
<string name="creating_database">ينشئ قاعدة البيانات…</string>
|
||||
<string name="error_string_type">لا يطابق هذا النص العنصر المطلوب.</string>
|
||||
<string name="error_otp_counter">على العداد أن يكون ما بين %1$d و %2$d.</string>
|
||||
<string name="entry_otp">كلمة مرور لمرة واحدة</string>
|
||||
<string name="otp_type">نوع كلمة المرور لمرة واحدة</string>
|
||||
<string name="entry_otp">كلمة سر لمرة واحدة</string>
|
||||
<string name="otp_type">نوع كلمة السر لمرة واحدة (OTP)</string>
|
||||
<string name="error_disallow_no_credentials">عين اعتماد واحد على الأقل.</string>
|
||||
<string name="contribution">ساهم</string>
|
||||
<string name="contact">الإتصال بنا</string>
|
||||
<string name="contact">التواصل</string>
|
||||
<string name="biometric">البصمة</string>
|
||||
<string name="warning_empty_keyfile_explanation">يجب ألا تغير محتوى ملف المفتاح، في أحسن الحالات يجب أن يحتوي بيانات مولدة عشوائيا.</string>
|
||||
<string name="warning_empty_keyfile">من غير المستحسن اضافة ملف مفتاح فارغ.</string>
|
||||
<string name="warning_sure_remove_data">أزل هذه البيانات عل أي حال؟</string>
|
||||
<string name="warning_sure_add_file">أأضف الملف على أي حال؟</string>
|
||||
<string name="warning_replace_file">رفعُ هذا الملف سيستبدل الموجود مسبقا.</string>
|
||||
<string name="warning_replace_file">رفع هذا الملف سيستبدل الموجود مسبقًا.</string>
|
||||
<string name="warning_database_link_revoked">أبطلَ مدير الملفات الوصول للملف</string>
|
||||
<string name="warning_database_read_only">أعط صلاحية الكتابة من أجل حفظ قاعدة البيانات</string>
|
||||
<string name="warning_password_encoding">تجنب استخدام المحارف غير الموجودة في ترميز قاعدة البيانات (تحوَّل المحارف غير الموجودة لنفس الحرف).</string>
|
||||
<string name="hide_broken_locations_summary">إخف الروابط المعطلة في قائمة قواعد البيانات الحديثة</string>
|
||||
<string name="hide_broken_locations_summary">أخفِ الروابط المعطوبة في قائمة قواعد البيانات الحديثة</string>
|
||||
<string name="auto_focus_search_summary">افتح البحث عند فتح قاعدة البيانات</string>
|
||||
<string name="content_description_credentials_information">معلومات بيانات الاعتماد</string>
|
||||
<string name="max_history_items_title">العدد الأقصى</string>
|
||||
<string name="recycle_bin_group_title">مجموعة سلة المحذوفات</string>
|
||||
<string name="recycle_bin_summary">أُنقل المجموعات والمدخلات لسلة المحذوفات قبل حذفها</string>
|
||||
<string name="database_data_remove_unlinked_attachments_summary">أزِل المرفقات غير المرتبطة بإدخال في قاعدة البيانات</string>
|
||||
<string name="database_data_remove_unlinked_attachments_summary">أزل المرفقات غير المرتبطة بمدخل في قاعدة البيانات</string>
|
||||
<string name="database_data_remove_unlinked_attachments_title">أزل البيانات غير المرتبطة</string>
|
||||
<string name="database_data_compression_summary">ضغط البيانات يقلص من حجم قاعدة البيانات</string>
|
||||
<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="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_show_button_title">أظهر زر القفل</string>
|
||||
<string name="lock_database_back_root_summary">قفل قاعدة البيانات عند النقر على زر الرجوع في الشاشة الرئيسية</string>
|
||||
<string name="lock_database_back_root_title">اضغط على \"رجوع\" للإقفال</string>
|
||||
<string name="clipboard_explanation_summary">انسخ حقول الإدخال باستخدام الحافظة</string>
|
||||
<string name="clipboard_explanation_summary">انسخ حقول المدخل باستخدام الحافظة</string>
|
||||
<string name="database_opened">قاعدة البيانات مفتوحة</string>
|
||||
<string name="autofill_preference_title">إعدادات الملء التلقائي</string>
|
||||
<string name="education_entry_edit_title">حرر المدخلة</string>
|
||||
<string name="education_entry_edit_title">عدّل المدخل</string>
|
||||
<string name="education_advanced_unlock_summary">لفتح قاعدة البيانات بسرعة اربط كلمة المرور بالبصمة.</string>
|
||||
<string name="education_search_summary">لإيجاد كلمة المرور، أدخل العنوان أو اسم المستخدم أو محتوى أحد الحقول.</string>
|
||||
<string name="education_new_node_summary">المدخلات لإدارة معرفاتك الرقمية.
|
||||
@@ -357,15 +356,15 @@
|
||||
<string name="autofill_web_domain_blocklist_title">قائمة النطاقات المحظورة</string>
|
||||
<string name="autofill_application_id_blocklist_summary">منع الملء التلقائي للتطبيقات الموجودة في القائمة</string>
|
||||
<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="content_description_repeat_toggle_password_visibility">أعد تبديل ظهور كلمة السر</string>
|
||||
<string name="hide_expired_entries_summary">لا يتم عرض المدخلات منتهية الصلاحية</string>
|
||||
<string name="education_read_only_summary">تغيير وضع الافتتاح للجلسة.
|
||||
\n
|
||||
\nيمنع \"محمي ضد الكتابة\" التغييرات غير المقصودة في قاعدة البيانات.
|
||||
\n\"قابل للتعديل\" يتيح لك إضافة أو حذف أو تعديل جميع العناصر كما تريد.</string>
|
||||
<string name="education_read_only_title">احمي قاعدة البيانات من التعديل</string>
|
||||
<string name="education_unlock_title">افتح قاعدة البيانات</string>
|
||||
<string name="education_add_attachment_summary">أضف مرفقا للمدخلة لحفظ بيانات اضافية.</string>
|
||||
<string name="education_add_attachment_summary">ارفع مرفقًا إلى مدخلك لحفظ البيانات الخارجية الهامة.</string>
|
||||
<string name="education_add_attachment_title">أضف مرفقا</string>
|
||||
<string name="autofill_block">احظر الملء التلقائي</string>
|
||||
<string name="keyboard_previous_database_credentials_title">شاشة بيانات اعتماد قاعدة البيانات</string>
|
||||
@@ -402,7 +401,7 @@
|
||||
<string name="education_generate_password_title">أنشئ كلمة سر قوية</string>
|
||||
<string name="save_mode">وضع الحفظ</string>
|
||||
<string name="search_mode">وضع البحث</string>
|
||||
<string name="version">النسخة</string>
|
||||
<string name="version">النُسخة</string>
|
||||
<string name="template_group_name">النماذج</string>
|
||||
<string name="holder">الحامل</string>
|
||||
<string name="number">الرقم</string>
|
||||
@@ -410,7 +409,7 @@
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="id_card">بطاقة الهوية</string>
|
||||
<string name="type">النوع</string>
|
||||
<string name="cryptocurrency">محفظة عملات مشفرة</string>
|
||||
<string name="cryptocurrency">محفظة عملات التعموية</string>
|
||||
<string name="public_key">المفتاح العمومي</string>
|
||||
<string name="private_key">المفتاح الخاص</string>
|
||||
<string name="account">الحساب</string>
|
||||
@@ -418,20 +417,20 @@
|
||||
<string name="bank_name">اسم المصرف</string>
|
||||
<string name="secure_note">ملاحظة آمنة</string>
|
||||
<string name="error_word_reserved">هذه الكلمة محجوزة ولا يمكن استخدامها.</string>
|
||||
<string name="error_field_name_already_exists">اسم الحقل موجود سلفًا.</string>
|
||||
<string name="error_file_to_big">الملف الذي ترفعه كبير.</string>
|
||||
<string name="error_field_name_already_exists">اسم الحقل موجود بالفعل.</string>
|
||||
<string name="error_file_to_big">الملف الذي تحاول رفعه كبير جدًا.</string>
|
||||
<string name="error_upload_file">حدث خطأ أثناء رفع الملف.</string>
|
||||
<string name="error_duplicate_file">بيانات الملف موجودة سلفًا.</string>
|
||||
<string name="error_duplicate_file">بيانات الملف موجودة بالفعل.</string>
|
||||
<string name="error_remove_file">حدث خطأ أثناء إزالة بيانات الملف.</string>
|
||||
<string name="error_start_database_action">حدث خطأ أثناء تنفيذ إجراء على قاعدة البيانات.</string>
|
||||
<string name="content_description_otp_information">معلومات كلمة المرور لمرة واحدة</string>
|
||||
<string name="content_description_otp_information">معلومات كلمة السر لمرة واحدة</string>
|
||||
<string name="membership">العضوية</string>
|
||||
<string name="name">الاسم</string>
|
||||
<string name="email">البريد الإلكتروني</string>
|
||||
<string name="email_address">عنوان البريد الإلكتروني</string>
|
||||
<string name="ssid">SSID</string>
|
||||
<string name="debit_credit_card">بطاقة السحب الفوري / الإئتمان</string>
|
||||
<string name="error_registration_read_only">لا يمكن حفظ عنصر في قاعدة بيانات مفتوحة للقراءة فقط</string>
|
||||
<string name="error_registration_read_only">لا يمكن حفظ عنصر في قاعدة بيانات مفتوحة للقراءة فقط.</string>
|
||||
<string name="otp_secret">الرمز السري</string>
|
||||
<string name="place_of_issue">مكان المشكلة</string>
|
||||
<string name="date_of_issue">تاريخ المشكلة</string>
|
||||
@@ -452,8 +451,8 @@
|
||||
<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="error_database_uri_null">لا يمكن استرداد URI قاعدة البيانات.</string>
|
||||
<string name="error_rebuild_list">تعذر إعادة بناء القائمة بشكل صحيح.</string>
|
||||
<string name="menu_keystore_remove_key">احذف رمز فك القفل الجهاز</string>
|
||||
<string name="menu_form_filling_settings">ملء النموذج</string>
|
||||
<string name="menu_reload_database">أعد تحميل البيانات</string>
|
||||
@@ -463,8 +462,8 @@
|
||||
<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="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>
|
||||
@@ -482,7 +481,7 @@
|
||||
<string name="autofill_ask_to_save_data_title">اسأل لحفظ البيانات</string>
|
||||
<string name="content_description_database_color">لون قاعدة البيانات</string>
|
||||
<string name="menu_merge_from">ادمج من…</string>
|
||||
<string name="show_uuid_summary">يعرض \"المعرف العام\" المرتبط بمُدخل او بمجموعة</string>
|
||||
<string name="show_uuid_summary">يعرض UUID المرتبط بمدخل أو بمجموعة</string>
|
||||
<string name="expired">انتهت</string>
|
||||
<string name="tags">الوسوم</string>
|
||||
<string name="menu_merge_database">ادمج البيانات</string>
|
||||
@@ -491,10 +490,10 @@
|
||||
<string name="warning_file_too_big">يفترض بقاعدة البيانات أن تحوي ملفات صغيرة الحجم ( كمفاتيح PGP).
|
||||
\n
|
||||
\nبرفع هذا الملف قد يزداد حجم قاعدة البيانات ويضعف أداءها.</string>
|
||||
<string name="error_move_group_here">يتعذر نقل المجموعة إلى هنا.</string>
|
||||
<string name="error_move_group_here">لا يمكنك نقل مجموعة هنا.</string>
|
||||
<string name="menu_save_copy_to">احفظ نسخة إلى…</string>
|
||||
<string name="searchable">يمكن البحث عنه</string>
|
||||
<string name="custom_data">بيانات مخصصة</string>
|
||||
<string name="custom_data">بيانات مخصّصة</string>
|
||||
<string name="case_sensitive">حساسة لحالة الأحرف</string>
|
||||
<string name="regex">تعابير نمطية</string>
|
||||
<string name="enable_keep_screen_on_title">أبقِ الشاشة شغّالة</string>
|
||||
@@ -512,18 +511,18 @@
|
||||
<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_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="hide_expired_entries_title">إخفاء الإدخالات منتهية الصلاحية</string>
|
||||
<string name="content_description_hardware_key_checkbox">خانة إختيار مفتاح الجهاز</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="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>
|
||||
@@ -536,12 +535,12 @@
|
||||
\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="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="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>
|
||||
@@ -557,7 +556,7 @@
|
||||
<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="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>
|
||||
@@ -574,15 +573,15 @@
|
||||
<string name="keyboard_previous_fill_in_summary">العودة تلقائيًا إلى لوحة المفاتيح السابقة بعد تنفيذ \"إجراء المفتاح التلقائي\"</string>
|
||||
<string name="download_attachment">تثبيت %1$s</string>
|
||||
<string name="html_about_privacy"><strong> لا يتم استرداد أي بيانات مستخدم</strong>، هذا التطبيق لا يتصل بأي خادم، ويعمل محليًا فقط ويحترم خصوصية المستخدمين تمامًا.</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="error_cancel_by_user">أُلغِيَ بواسطة المستخدم.</string>
|
||||
<string name="show_otp_token_title">أظهر رمز OTP</string>
|
||||
<string name="show_otp_token_summary">يعرض رموز OTP في قائمة المدخلات</string>
|
||||
<string name="warning_database_already_opened">قاعدة البيانات مفتوحة بالفعل، أغلقها أولاً لفتح قاعدة البيانات الجديدة</string>
|
||||
<string name="warning_database_info_reloaded">ستؤدي إعادة تحميل قاعدة البيانات إلى حذف البيانات المعدلة محليًا.</string>
|
||||
<string name="templates_group_enable_summary">استخدم القوالب الديناميكية لملء حقول الإدخال</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_generate_password_summary">أنشئ كلمة سر قوية لربطها بإدخالك، وحددها بسهولة وفقًا لمعايير النموذج ولا تنسَ كلمة السر الآمنة.</string>
|
||||
<string name="education_setup_OTP_title">قم بإعداد OTP</string>
|
||||
<string name="style_brightness_title">سطوع السمة</string>
|
||||
<string name="word_separator">الفاصل</string>
|
||||
@@ -597,43 +596,43 @@
|
||||
<string name="kdf_explanation">لإنشاء مفتاح خوارزمية التشفير، يتحول المفتاح الرئيسي باستخدام وظيفة اشتقاق مفتاح مملح عشوائيًا.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">بشراء الإصدار <strong> pro </strong>،</string>
|
||||
<string name="auto_type">كتابة تلقائيًا</string>
|
||||
<string name="hardware_key">مفتاح الجهاز</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="education_sort_summary">اختر كيفية فرز المدخلات والمجموعات.</string>
|
||||
<string name="html_text_feature_generosity">هذا <strong> النمط المرئي</strong> متاح بفضل كرمك.</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="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_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_unable_merge_database_kdb">غير قادر على الدمج مع ملف قاعدة بيانات kdb.</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="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="remember_hardware_key_title">تذكر مفاتيح العتاد</string>
|
||||
<string name="warning_exact_alarm">لم تسمح للتطبيق باستخدام منبه دقيق. نتيجة لذلك، لن يتم تنفيذ الميزات التي تتطلب مؤقتًا في وقت محدد.</string>
|
||||
<string name="remember_hardware_key_summary">يتتبع مفاتيح الأجهزة المستخدمة</string>
|
||||
<string name="remember_hardware_key_summary">يتتبع مفاتيح العتاد المستخدمة</string>
|
||||
<string name="warning_database_notification_permission">يسمح لك إذن الإشعار بعرض حالة قاعدة البيانات وقفلها باستخدام زر يسهل الوصول إليه.
|
||||
\n
|
||||
\nإذا لم تنشط هذا الإذن، فلن تكون قاعدة البيانات المفتوحة في الخلفية مرئية إذا كان هناك تطبيق آخر في المقدمة.</string>
|
||||
@@ -646,7 +645,7 @@
|
||||
<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="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>
|
||||
@@ -662,14 +661,12 @@
|
||||
\nاعتمادًا على تطبيق API الأصلي لنظام التشغيل، قد لا يعمل بكامل طاقته.
|
||||
\n
|
||||
\nتحقق من توافق وأمن KeyStore مع الشركة المصنعة لجهازك ومنشئ ROM الذي تستخدمه.</string>
|
||||
<string name="keyboard_selection_entry_summary">عند عرض إدخال في KeePassDX، عبئ Magikeyboard بهذا الإدخال</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="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
|
||||
@@ -682,7 +679,7 @@
|
||||
<string name="download_initialization">جارِ التهيئة…</string>
|
||||
<string name="download_progression">قيد التقدم: %1$d%%</string>
|
||||
<string name="html_text_buy_pro">بشراء الإصدار الاحترافي، ستتمتع بإمكانية الوصول إلى هذا <strong> النمط المرئي</strong> وستساعد بشكل خاص في <strong> تنفيذ مشروعات المجتمع. </strong></string>
|
||||
<string name="html_text_donation">من أجل الحفاظ على حريتنا ولكي نكون نشيطين دائمًا، فإننا نعتمد على <strong> مساهمتك.</strong></string>
|
||||
<string name="html_text_donation">من خلال <strong>المساهمة</strong> في المشروع <i>(مالياً أو برمجياً أو ترجمة)</i>، ستساعده على الاستمرار في الحياة والازدهار، وستكون مؤهلاً أيضاً لإجراء فتح <strong>السمة</strong>.</string>
|
||||
<string name="html_text_dev_feature_encourage">أنت تشجع المطورين على إنشاء <strong> ميزات جديدة</strong> و <strong> إصلاح الخلل</strong> وفقًا لملاحظاتك.</string>
|
||||
<string name="style_name_forest">غابة</string>
|
||||
<string name="style_name_simple">بسيط</string>
|
||||
@@ -696,4 +693,11 @@
|
||||
<string name="style_name_kunzite">الكونزيت</string>
|
||||
<string name="style_name_follow_system">اتبع النظام</string>
|
||||
<string name="style_name_light">فاتح</string>
|
||||
<string name="hide_templates_summary">لا يتم عرض القوالب</string>
|
||||
<string name="generate_keyfile">ولّد ملف مفتاح</string>
|
||||
<string name="nodes">العُقد</string>
|
||||
<string name="recursive_number_entries_title">عدد متكرر من المدخلات</string>
|
||||
<string name="recursive_number_entries_summary">يحسب بشكل متكرر عدد المدخلات في المجموعة</string>
|
||||
<string name="warning_large_keyfile">لا يُنصح بإضافة ملف مفتاحي كبير، فقد يؤدي هذا إلى منع فتح قاعدة البيانات.</string>
|
||||
<string name="hide_templates_title">أخفِ القوالب</string>
|
||||
</resources>
|
||||
662
app/src/main/res/values-az/strings.xml
Normal file
662
app/src/main/res/values-az/strings.xml
Normal file
@@ -0,0 +1,662 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="info">Məlumat</string>
|
||||
<string name="contact">Əlaqə</string>
|
||||
<string name="homepage">Ana səhifə</string>
|
||||
<string name="add_entry">Şifrə əlavə et</string>
|
||||
<string name="edit_entry">Şifrəyə düzəliş et</string>
|
||||
<string name="add_group">Qrup əlavə et</string>
|
||||
<string name="key_derivation_function">Açar yaratma funksiyası</string>
|
||||
<string name="app_timeout">Taym-aut</string>
|
||||
<string name="app_timeout_summary">Məlumat bazasını kilidləmədən öncəki boşluq müddəti</string>
|
||||
<string name="application">Tətbiq</string>
|
||||
<string name="brackets">Mötərizə</string>
|
||||
<string name="extended_ASCII">Artırılmış ASCII</string>
|
||||
<string name="allow">İcazə ver</string>
|
||||
<string name="clipboard_cleared">Mübadilə buferi təmizləndi</string>
|
||||
<string name="clipboard_error_title">Mübadilə buferi xətası</string>
|
||||
<string name="clipboard_timeout">Mübadilə buferinin taym-aut (boşda qalma) müddəti</string>
|
||||
<string name="clipboard_timeout_summary">Mübadilə buferində məlumatların saxlanma müddəti (əgər cihazınız dəstəkləyirsə)</string>
|
||||
<string name="content_description_background">Arxaplan</string>
|
||||
<string name="content_description_open_file">Faylı aç</string>
|
||||
<string name="content_description_add_entry">Qeyd əlavə et</string>
|
||||
<string name="content_description_add_group">Qrup əlavə et</string>
|
||||
<string name="content_description_add_item">Fayl əlavə et</string>
|
||||
<string name="content_description_file_information">Fayl məlumatları</string>
|
||||
<string name="content_description_credentials_information">Şəxsiyyəti təsdiq edən məlumatlar</string>
|
||||
<string name="content_description_otp_information">Birdəfəlik şifrə məlumatları</string>
|
||||
<string name="content_description_keyfile_checkbox">Açar fayl təsdiqi</string>
|
||||
<string name="content_description_hardware_key_checkbox">Aparat-təchizat açarının təsdiqi</string>
|
||||
<string name="content_description_entry_icon">Şifrə ikonu</string>
|
||||
<string name="content_description_database_color">Məlumat bazasının rəngi</string>
|
||||
<string name="discard_changes">Dəyişiklikləri ləğv et?</string>
|
||||
<string name="entry_password_generator">Şifrə generatoru</string>
|
||||
<string name="content_description_password_length">Şifrə uzunluğu</string>
|
||||
<string name="entry_add_attachment">Qoşma əlavə et</string>
|
||||
<string name="select_to_copy">%1$sfaylını mübadilə buferinə köçürmək üçün seçin</string>
|
||||
<string name="retrieving_db_key">Məlumat bazası açarı əldə edilir …</string>
|
||||
<string name="waiting_challenge_request">Doğrulama istəyi gözlənilir …</string>
|
||||
<string name="waiting_challenge_response">Doğrulama cavabı gözlənilir …</string>
|
||||
<string name="database">Məlumat bazası</string>
|
||||
<string name="template_group_name">Şablonlar</string>
|
||||
<string name="decrypting_db">Məlumat bazası məzmunun şifrəsi açılır …</string>
|
||||
<string name="digits">Rəqəmlər</string>
|
||||
<string name="default_checkbox">Standart məlumat bazası olaraq istifədə et</string>
|
||||
<string name="html_about_privacy"><strong>Heç bir istifadəçi məlumatı toplanmır</strong>, bu tətbiq heç bir serverə bağlanmır, yalnız lokal olaraq işləyir və tamamilə istidəçilərin gizliliyinə hörmət edir.</string>
|
||||
<string name="entry_accessed">Giriş edildi</string>
|
||||
<string name="entry_cancel">Ləğv et</string>
|
||||
<string name="entry_notes">Qeydlər</string>
|
||||
<string name="entry_confpassword">Şifrəni təsdiq et</string>
|
||||
<string name="entry_UUID">UUID (Qlobal Unikal İdentifikator)</string>
|
||||
<string name="entry_history">Tarixçə</string>
|
||||
<string name="entry_attachments">Qoşmalar</string>
|
||||
<string name="entry_keyfile">Açar fayl</string>
|
||||
<string name="hardware_key">Aparat-təchizat açarı</string>
|
||||
<string name="entry_modified">Modifikasiya edilmiş</string>
|
||||
<string name="searchable">Axtarıla bilən</string>
|
||||
<string name="error_pass_match">Şifrələr uyğun deyil.</string>
|
||||
<string name="error_string_key">Hər bir sıranın bir adı olmalıdır.</string>
|
||||
<string name="error_label_exists">Bu etiket artıq mövcuddur.</string>
|
||||
<string name="error_wrong_length">\"Uzunluq\" sahəsinə müsbət bir rəqəm yazın.</string>
|
||||
<string name="error_autofill_enable_service">\"Avtomatik doldurma\" xidmətini aktiv etmək mümkün olmadı.</string>
|
||||
<string name="error_move_group_here">Qrupu buraya köçürə bilməzsiniz.</string>
|
||||
<string name="error_copy_group_here">Qrupu buraya nüsxələyə bilməzsiniz.</string>
|
||||
<string name="error_create_database">Məlumat bazası yaratmaq mümkün deyil.</string>
|
||||
<string name="error_create_database_file">Bu şifrə və açar faylı ilə məlumat bazası yaratmaq mümkün deyil.</string>
|
||||
<string name="error_otp_counter">Sayğac %1$dvə%2$d aralığında olmalıdır.</string>
|
||||
<string name="error_otp_period">Dövr %1$dvə%2$d saniyə aralığında olmalıdır.</string>
|
||||
<string name="contribution">İanə</string>
|
||||
<string name="feedback">Rəy</string>
|
||||
<string name="about_description">Keepass şifrə menecerinin android tətbiqi</string>
|
||||
<string name="accept">Qəbul et</string>
|
||||
<string name="master_key">Ana şifrə</string>
|
||||
<string name="security">Təhlükəsizlik</string>
|
||||
<string name="encryption">Şifrələmə</string>
|
||||
<string name="encryption_algorithm">Şifrələmə alqortiması</string>
|
||||
<string name="clipboard_error">Bəzi cihazlar mübadilə buferindən istifadə etməyə icazə verməyəcək.</string>
|
||||
<string name="clipboard_error_clear">Mübadilə buferi təmizlənmədi</string>
|
||||
<string name="content_description_password_checkbox">Şifrə təsdiqi</string>
|
||||
<string name="expired">Müddəti bitdi</string>
|
||||
<string name="content_description_entry_foreground_color">Şifrənin ön plan rəngi</string>
|
||||
<string name="content_description_entry_background_color">Şifrənin arxa plan rəngi</string>
|
||||
<string name="validate">Doğrula</string>
|
||||
<string name="discard">Ləğv et</string>
|
||||
<string name="content_description_passphrase_word_count">Şifrədəki söz sayısı</string>
|
||||
<string name="content_description_update_from_list">Yenilə</string>
|
||||
<string name="content_description_remove_from_list">Sil</string>
|
||||
<string name="html_about_contribution"><strong>Müstəqilliyimiz qorumaq</strong>, <strong>xətaları düzəltmək</strong>,<strong>yeni funskiyalar əlavə etmək</strong> və <strong>hər zaman aktiv olmaq</strong>üçün<strong>sizin </strong>dəstəyinizə etibar edirik.</string>
|
||||
<string name="entry_created">Yaradıldı</string>
|
||||
<string name="entry_expires">İstifadə müddəti biti</string>
|
||||
<string name="tags">Etiketlər</string>
|
||||
<string name="entry_password">Şifrə</string>
|
||||
<string name="error_disallow_no_credentials">Ən azından bir ədəd şəxsiyyəti təyin edən məlumat təyin edilməlidir.</string>
|
||||
<string name="error_pass_gen_type">Ən azından bir ədəd şifrə generatoru növü seçilməlidir.</string>
|
||||
<string name="error_rounds_too_large">\"Transformasiya mərhələləri\" çox yüksəkdir. 2147483648-ə təyin edin.</string>
|
||||
<string name="error_save_database">Malumat bazasını yadda saxlamaq mümkün olmadı.</string>
|
||||
<string name="error_otp_secret_key">Məxfi söz Base32 formatında olmalıdır.</string>
|
||||
<string name="error_challenge_already_requested">Doğrulama artıq istənilib.</string>
|
||||
<string name="error_response_already_provided">Artıq cavab verilib.</string>
|
||||
<string name="error_location_unknown">Məlumat bazasının yeri məlum deyil, məlumat bazası funksiyası yerinə yetirilə bilməz.</string>
|
||||
<string name="error_empty_key">Açar bölməsi boş saxlanıla bilməz.</string>
|
||||
<string name="field_name">Sahə adı</string>
|
||||
<string name="field_value">Sahə dəyəri</string>
|
||||
<string name="file_not_found_content">Fayl tapılmadı. Onu fayl menecerində yenidən açmağı yoxlayın.</string>
|
||||
<string name="corrupted_file">Zədələnmiş fayl.</string>
|
||||
<string name="hint_conf_pass">Şifrəni təsdiq et</string>
|
||||
<string name="hint_generated_password">Yaradılmış şifrə</string>
|
||||
<string name="hint_group_name">Qrup adı</string>
|
||||
<string name="hint_icon_name">İkona adı</string>
|
||||
<string name="hint_keyfile">Açar faylı</string>
|
||||
<string name="passphrase">Şifrəli cümlə</string>
|
||||
<string name="error_driver_required">%1$s üçün drayver lazımdır.</string>
|
||||
<string name="error_cancel_by_user">İstifadəçi tərəfindən ləğv edildi.</string>
|
||||
<string name="hint_length">Uzunluq</string>
|
||||
<string name="error_hardware_key_unsupported">Aparat-təchizat açarı dəstəklənmir.</string>
|
||||
<string name="generate_password">Şifrə yarat</string>
|
||||
<string name="password">Şifrə</string>
|
||||
<string name="file_browser">Fayl meneceri</string>
|
||||
<string name="hint_pass">Şifrə</string>
|
||||
<string name="show_uuid_title">UUID-ni göstər</string>
|
||||
<string name="show_uuid_summary">Şifrə və ya şifrə qrupuna bağlı UUID-ni göstər</string>
|
||||
<string name="list_groups_show_number_entries_summary">Qrupdaki şifrələrin sayını göstər</string>
|
||||
<string name="list_size_title">Listdəki faylların həcmi</string>
|
||||
<string name="list_size_summary">Element listindəki mətnin ölçüsü</string>
|
||||
<string name="creating_database">Məlumat bazası yaradılır …</string>
|
||||
<string name="loading_database">Məlumat bazası yüklənir …</string>
|
||||
<string name="lowercase">Kiçik hərf</string>
|
||||
<string name="about">Haqqında</string>
|
||||
<string name="menu_change_key_settings">Ana açarı dəyişdir</string>
|
||||
<string name="copy_field">%1$s nüsxələndi</string>
|
||||
<string name="menu_form_filling_settings">Forum doldurma</string>
|
||||
<string name="menu_form_filling_settings_summary">Klaviatura, avtomatik douldurma, mübadilə buferi</string>
|
||||
<string name="menu_advanced_unlock_settings">Cihaz kilidini aç</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometrik, cihaz şəxsiyyətini təyin edən məlumatlar</string>
|
||||
<string name="menu_security_settings_summary">Şifrələmə, açar yaratma funskiyası</string>
|
||||
<string name="menu_master_key_settings">Ana açar parametrləri</string>
|
||||
<string name="settings">Parametrlər</string>
|
||||
<string name="menu_app_settings">Tətbiq parametrləri</string>
|
||||
<string name="menu_app_settings_summary">Axtar, kilidlə, tarixçə, xüsusiyyətlər</string>
|
||||
<string name="menu_database_settings">Məlumat bazası parametrləri</string>
|
||||
<string name="menu_database_settings_summary">Meta məlumatlar, zibil qutusu, şablonlar, tarixçə</string>
|
||||
<string name="menu_security_settings">Təhlükəsizlik parametrləri</string>
|
||||
<string name="menu_paste">Mubadilə buferindən əlavə et</string>
|
||||
<string name="menu_delete">Sil</string>
|
||||
<string name="menu_cancel">Ləğv et</string>
|
||||
<string name="menu_hide_password">Şifrəni gizlət</string>
|
||||
<string name="menu_lock">Məlumat bazasını kilidlə</string>
|
||||
<string name="menu_save_database">Məlumatları yadda saxla</string>
|
||||
<string name="menu_merge_database">Məlumatları birləşdir</string>
|
||||
<string name="menu_reload_database">Məlumatları yenidən yüklə</string>
|
||||
<string name="menu_merge_from">... -dan birləşdir</string>
|
||||
<string name="menu_save_copy_to">Bir nüsxəsini burada ... yadda saxla</string>
|
||||
<string name="menu_open">Aç</string>
|
||||
<string name="menu_search">Axtar</string>
|
||||
<string name="menu_showpass">Şifrəni göstər</string>
|
||||
<string name="menu_donate">İanə et</string>
|
||||
<string name="master_key_settings_summary">Dəyişiklik, yenilənmə</string>
|
||||
<string name="menu_edit">Düzəliş et</string>
|
||||
<string name="menu_copy">Nüsxələ</string>
|
||||
<string name="menu_move">Köçür</string>
|
||||
<string name="remember_hardware_key_title">Aparat-təchizat açarlarını xatırla</string>
|
||||
<string name="remember_keyfile_locations_title">Açar faylın yerini xatırla</string>
|
||||
<string name="remember_keyfile_locations_summary">Açar faylların saxlanıldığı yeri unutma</string>
|
||||
<string name="show_recent_files_title">Ən son faylları göstər</string>
|
||||
<string name="hide_broken_locations_title">Zədələnmiş məlumat bazası linklərini gizlət</string>
|
||||
<string name="show_recent_files_summary">Ən son məlumat bazalarının yerini göstər</string>
|
||||
<string name="export_app_properties_title">Tətbiqin parametrlərini ixrac et</string>
|
||||
<string name="export_app_properties_summary">Tətbiqin parametrlərini ixrac etmək üçün bir fayl yaradın</string>
|
||||
<string name="description_app_properties">Tətbiq parametrlərini idarə etmək üçün KeePassDX xüsusiyyətləri</string>
|
||||
<string name="success_import_app_properties">Tətbiqin parametrləri idxal edildi</string>
|
||||
<string name="success_export_app_properties">Tətbiqin parametrləri ixrac edildi</string>
|
||||
<string name="encryption_explanation">Bütün malumatlar üçün istifadə olunan məlumat bazası şifrələmə alqoritması</string>
|
||||
<string name="do_not_kill_app">Tətbiqi bağlamayın …</string>
|
||||
<string name="space">Boşluq</string>
|
||||
<string name="filter">Filter</string>
|
||||
<string name="sort_ascending">Öncə ən aşağı</string>
|
||||
<string name="sort_groups_before">Öncə qruplar</string>
|
||||
<string name="sort_recycle_bin_bottom">Aşağıdakı zibil qutusu</string>
|
||||
<string name="sort_db">Təbii sıralama</string>
|
||||
<string name="sort_title">Başlıq</string>
|
||||
<string name="sort_creation_time">Yaradılma</string>
|
||||
<string name="sort_last_modify_time">Dəyişiklik</string>
|
||||
<string name="search">Axtar</string>
|
||||
<string name="underline">Altdan xətt</string>
|
||||
<string name="uppercase">Böyük hərf</string>
|
||||
<string name="warning">Xəbərdarlıq</string>
|
||||
<string name="error_import_app_properties">Tətbiqin parametrlərinin idxalı zamanı xəta baş verdi.</string>
|
||||
<string name="error_export_app_properties">Tətbiqin parametrləri idxal edilən zaman xəta baş verdi.</string>
|
||||
<string name="root">Kök</string>
|
||||
<string name="sort_menu">Çeşidlə</string>
|
||||
<string name="sort_username">İstifadəçi adı</string>
|
||||
<string name="sort_last_access_time">Giriş</string>
|
||||
<string name="special">Özəl</string>
|
||||
<string name="unsupported_db_version">Dəstəklənməyən məlumat bazas versiyası.</string>
|
||||
<string name="merge_success">Birləşdirmə uğurla tamamlandı</string>
|
||||
<string name="warning_copy_permission">Mübadilə buferi bildiriş funksiyası üçün bildiriş icazəsinə ehtiyyac var.</string>
|
||||
<string name="later">Sonra</string>
|
||||
<string name="ask">Soruş</string>
|
||||
<string name="configure">Kofiqurasiya et</string>
|
||||
<string name="keystore_not_accessible">Açar ehtiyyatı düzgün formada başladılmadı.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Cihaz kilidini açma linki</string>
|
||||
<string name="database_history">Tarixçə</string>
|
||||
<string name="advanced_unlock_scanning_error">Cihaz kilidini açma xətası: %1$s</string>
|
||||
<string name="warning_database_info_reloaded">Məlumat bazasını yenidən yükləmək lokal olaraq modifikasiya olunmuş faylları siləcəkdir.</string>
|
||||
<string name="warning_database_revoked">Fayla giriş fayl meneceri tərəfindən ləğv edildi, məlumat bazasını bağlayın və onu olduğu yerdən yenidən açın.</string>
|
||||
<string name="warning_exact_alarm">Siz tətəbiqin zəngli saatdan istifadə etməsinə icazə verməmisiniz. Nəticədə, taymer tələb edən funksiyalar dəqiq bir zamanda işləməyəckdir.</string>
|
||||
<string name="warning_keyfile_integrity">Android, məlumatlarını anında dəyişdirə biləcəyindən faylın heşi qaranti edilməyib. Doğru bütünlük üçün fayl əlavəsini .bin olaraq dəyişin.</string>
|
||||
<string name="permission">İcazə</string>
|
||||
<string name="version_label">Versiya %1$s</string>
|
||||
<string name="build_label">Nüvə%1$s</string>
|
||||
<string name="configure_biometric">Biometrik və ya cihaz şəxsiyyəti ilə doğrulama məlumatları tapılmadı.</string>
|
||||
<string name="biometric_security_update_required">Biometrik təhlükəsizlik yenilənməsi lazımdır.</string>
|
||||
<string name="unlock_and_link_biometric">Cihaz kilid açma linki</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Cihaz kilidini tanıma</string>
|
||||
<string name="encrypted_value_stored">Şifrələnmiş şifrə ehtiyyata alındı</string>
|
||||
<string name="advanced_unlock_not_recognized">Cihaz kilidini açmaq üçün barmaq izi tanınmadı</string>
|
||||
<string name="unavailable">Mövcud deyil</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Şifrəni yazın və sonra bu düyməyə basın.</string>
|
||||
<string name="properties">Xüsusiyyətlər</string>
|
||||
<string name="menu_appearance_settings">Görünüş</string>
|
||||
<string name="menu_appearance_settings_summary">Tema, rəng və atributlar</string>
|
||||
<string name="biometric">Biometriya</string>
|
||||
<string name="device_credential">Cihazın şəxsiyyətini təsdiq edən məlumatları</string>
|
||||
<string name="general">Ümumi</string>
|
||||
<string name="autofill">Avtomatik doldurma</string>
|
||||
<string name="autofill_service_name">KeePassDX avtomatik doldurma formu</string>
|
||||
<string name="autofill_sign_in_prompt">KeePassDX ile giriş edin</string>
|
||||
<string name="education_entry_new_field_title">Xüsusi bölmələr əlavə edin</string>
|
||||
<string name="education_add_attachment_title">Qoşma əlavə edin</string>
|
||||
<string name="advanced_unlock_explanation_summary">Məlumat bazasını daha asan açmaq üçün cihazın kilid açma funksiyasından istifadə edin</string>
|
||||
<string name="device_credential_unlock_enable_summary">Məlumat bazasını açmaq üçün cihaz şəxsiyyət məlumatlarından istifadə etməyə imkan verir</string>
|
||||
<string name="education_add_attachment_summary">Önəmli xarici məlumatları yadda saxlamaq üçün şifrənizə (qeyd) qoşma əlavə edin.</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Müvəqqəti kilid açma</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Cihazın kilid açma müddəti bitdi</string>
|
||||
<string name="unavailable_feature_version">Bu cihazda Andoird %1$s versiyası var, lakin %2$svə ya daha sonrakı versiya lazımdır.</string>
|
||||
<string name="path">Yol</string>
|
||||
<string name="unavailable_feature_hardware">Lazımi aparat-təchizat tapılmadı.</string>
|
||||
<string name="max_history_size_title">Maksimum həcm</string>
|
||||
<string name="templates_group_uuid_title">Şablonlar qrupu</string>
|
||||
<string name="max_history_items_title">Maskimum sayı</string>
|
||||
<string name="max_history_size_summary">Hər şifrəyə görə tarixçə həcmini limitlə</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">Ana açarın dəyişdirilməsini tövsiyə et (gün)</string>
|
||||
<string name="settings_database_force_changing_master_key_title">Yeniləməyə məcbur et</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_title">Bir sonrakı səfərə yeniləməyə məcbur et</string>
|
||||
<string name="settings_database_force_changing_master_key_summary">Ana açarın dəyişdirilməsini tələb et (gün)</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Bir sonrakı səfərə ana açarın dəyişdirilməsini tələb et (tək səfərlik)</string>
|
||||
<string name="keyboard_notification_entry_summary">Şifrə mövcud olanda bildirişi göstər</string>
|
||||
<string name="keyboard_notification_entry_content_text">%1$s</string>
|
||||
<string name="keyboard_appearance_category">Görünüş</string>
|
||||
<string name="keyboard_theme_title">Klaviatura teması</string>
|
||||
<string name="keyboard_change">Klaviaturanı dəyişdir</string>
|
||||
<string name="keyboard_keys_category">Açarlar</string>
|
||||
<string name="keyboard_key_sound_title">Düyməyə toxunulduğunda səs çıxart</string>
|
||||
<string name="education_unlock_summary">Məlumat bazanızın şifrəsini açmaq üçün şifrə və\\və ya açar faylı daxil edin.\n\nMəlumat bazası faylını hər dəfə dəyişəndən sonra etibarlı bir yerdə ehtiyat üçün nüsxələyin.</string>
|
||||
<string name="biometric_unlock_enable_title">Biometrik kilid açma</string>
|
||||
<string name="biometric_unlock_enable_summary">Məlumat bazasını açmaq üçün biometrikləri skan etməyə imkan verir</string>
|
||||
<string name="device_credential_unlock_enable_title">Cihaz şəxsiyyət məlumatları ilə kilid açma</string>
|
||||
<string name="biometric_auto_open_prompt_title">Avtomatik açma istəyi</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Məlumat bazası ondan istifadə ediləcək şəkildə quraşdırılıbsa, cihaz kilidini avtomatik olaraq tələb et</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Cihaz kilidini açmaq üçün hər hansısa şifrələnmiş məzmunu saxlamayın</string>
|
||||
<string name="biometric_delete_all_key_title">Şifrələnmiş açarları silin</string>
|
||||
<string name="unavailable_feature_text">Bu funksiya işləmədi.</string>
|
||||
<string name="file_name">Fayl adı</string>
|
||||
<string name="assign_master_key">Ana açar təyin edin</string>
|
||||
<string name="data">Məlumat</string>
|
||||
<string name="database_data_compression_title">Məlumat sıxışdırma</string>
|
||||
<string name="database_data_compression_summary">Məlumat sıxışdırma məlumat bazasının həcmini azaldır</string>
|
||||
<string name="database_data_remove_unlinked_attachments_title">Əlaqəsiz məlumatları sil</string>
|
||||
<string name="recycle_bin_title">Zibil qutusu istifadəsi</string>
|
||||
<string name="recycle_bin_summary">Qrup və qeydləri (şifrə) silməzdən öncə \"Zibil qutusuna\" köçür</string>
|
||||
<string name="recycle_bin_group_title">Zibil qutusu qrupu</string>
|
||||
<string name="templates_group_enable_title">Şablonlardan istifadə</string>
|
||||
<string name="templates_group_enable_summary">Şifrə məlumatlarındakı xanaları doldurmaq üçün dinamik şablonlardan istifadə edin</string>
|
||||
<string name="settings_database_recommend_changing_master_key_title">Yeniləməyi tövsiyə et</string>
|
||||
<string name="allow_copy_password_summary">Şifrələrin və qorunan məlumatların mübadilə buferinə nüsxələnməsinə icazə ver</string>
|
||||
<string name="allow_copy_password_warning">Xəbərdarlıq: Mübadilə buferi bütün tətbiqlər tərəfindən istifadə olunur. Əgər həssas məlumatlar nüsxələnibsə, digər tətbiqlər onu bərpa edə bilər.</string>
|
||||
<string name="enable">Aktiv et</string>
|
||||
<string name="disable">Deaktiv et</string>
|
||||
<string name="notification">Bildiriş</string>
|
||||
<string name="clear_clipboard_notification_title">Tətbiqi bağlayarkən sil</string>
|
||||
<string name="database_name_title">Məlumat bazasının adı</string>
|
||||
<string name="database_description_title">Məlumat bazasının açıqlaması</string>
|
||||
<string name="database_default_username_title">Standart (susmaya görə) istifadəçi adı</string>
|
||||
<string name="database_custom_color_title">Xüsusi məlumat bazası rəngi</string>
|
||||
<string name="database_version_title">Məlumat bazası versiyası</string>
|
||||
<string name="text_appearance">Mətn</string>
|
||||
<string name="application_appearance">İnterfeys</string>
|
||||
<string name="other">Digər</string>
|
||||
<string name="compression">Sıxışdırma</string>
|
||||
<string name="compression_none">Heç biri</string>
|
||||
<string name="compression_gzip">Gzip</string>
|
||||
<string name="recycle_bin">Zibil qutusu</string>
|
||||
<string name="templates">Şablonlar</string>
|
||||
<string name="keyboard">Klaviatura</string>
|
||||
<string name="magic_keyboard_title">Magikeyboard</string>
|
||||
<string name="device_keyboard_setting_title">Cihaz klaviatura parametrləri</string>
|
||||
<string name="keyboard_name">Magikeyboard</string>
|
||||
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
|
||||
<string name="keyboard_setting_label">Magikeyboard parametrləri</string>
|
||||
<string name="keyboard_entry_category">Şifrə</string>
|
||||
<string name="keyboard_selection_entry_title">Şifrə seçimi</string>
|
||||
<string name="keyboard_notification_entry_title">Bildiriş məlumatı</string>
|
||||
<string name="keyboard_save_search_info_title">Paylaşılan məlumatları yadda saxla</string>
|
||||
<string name="keyboard_notification_entry_clear_close_title">Tətbiqi bağlayarkən təmizlə</string>
|
||||
<string name="keyboard_notification_entry_clear_close_summary">Bildirişi bağlayarkən məlumat bazasını bağla</string>
|
||||
<string name="keyboard_entry_timeout_title">Taymaut</string>
|
||||
<string name="keyboard_notification_entry_content_title_text">Şifrə</string>
|
||||
<string name="keyboard_notification_entry_content_title">%1$s Magikeyboard-da istifadə edilə bilər</string>
|
||||
<string name="keyboard_key_vibrate_title">Düyməyə toxunulduğunda titrət</string>
|
||||
<string name="education_setup_OTP_title">Birdəfəlik şifrə (OTP) təyin edin</string>
|
||||
<string name="education_unlock_title">Məlaumat bazasının şifrəsini açın</string>
|
||||
<string name="education_read_only_title">Məlumat bazasını dəyişiklik edilməsinə qarşı qoruyun</string>
|
||||
<string name="education_field_copy_title">Bölməni (sahəni) nüsxələyin</string>
|
||||
<string name="education_field_copy_summary">Nüsxələnmiş bölmələr (sahələr) istənilən yerə nüsxələnə bilər.\n\nÜntünlük verdiyiniz form doldurma metodunu seçin.</string>
|
||||
<string name="education_lock_title">Məlumat bazasını kilidləyin</string>
|
||||
<string name="html_text_donation">Azadlığımızı qorumaq və daima aktiv olmağınız üçün sizin <strong>yardımınıza güvənirik.</strong></string>
|
||||
<string name="html_text_feature_generosity">Bu <strong>görünüş stili</strong>sizin əliaçıqlığınız sayəsində mövuddur.</string>
|
||||
<string name="html_text_dev_feature">Bu xüsusiyyət <strong>hazırlıq mərhələsindədir</strong> və tezliklə <strong>istifadə verilməsi üçün sizin <strong>yardımınıza ehtiyyacı var.</string>
|
||||
<string name="html_text_dev_feature_encourage">tərtibatçıları <strong>yeni funksiyalar əlavə etməyə</strong>və <strong>sizin rəylərinizə əsasən </strong>xətaları düzəltməyə həvəsləndirirsiniz.</string>
|
||||
<string name="contribute">Yardım et</string>
|
||||
<string name="unit_kibibyte">KiB</string>
|
||||
<string name="unit_mebibyte">MiB</string>
|
||||
<string name="unit_gibibyte">GiB</string>
|
||||
<string name="style_name_simple">Sadə</string>
|
||||
<string name="save">Yadda saxla</string>
|
||||
<string name="number">Nömrə</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
<string name="personal_identification_number">PİN</string>
|
||||
<string name="international_bank_account_number">İBAN</string>
|
||||
<string name="standard">Standart</string>
|
||||
<string name="warning_sure_add_file">Hər bir halda fayl əlavə edilsinmi?</string>
|
||||
<string name="warning_remove_unlinked_attachment">Əlaqəsiz məlumatların silinməsi məlumat bazanızın həcmini azalda bilər, lakin KeePass modulları üçün olan məlumatları da silə bilər.</string>
|
||||
<string name="warning_sure_remove_data">Hər bir halda bu məlumatlar silinsinmi?</string>
|
||||
<string name="warning_empty_keyfile">Boş bir açar faylı əlavə etmək məsləhət görülmür.</string>
|
||||
<string name="warning_empty_keyfile_explanation">Açar faylın məzmunu heç vaxt dəyişdirilə bilinməməlidir və ən yaxşı halda təsadüfi yaradılmış məlumatlardan ibarət olmalıdır.</string>
|
||||
<string name="warning_database_info_changed">Məlumat bazası faylınızda olan informasiya tətbiq xaricində dəyişdirilib.</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Ən son dəyişikliklərlə məlumat bazasını yenidən yükləyin.</string>
|
||||
<string name="warning_database_notification_permission">Bildiriş icazəsi, məlumat bazasının statusunu göstərməyə və onu əlçatan bir düymə ilə kilidləməyə imkan verir.\n\nƏgər icazəni aktivləşdirməsəniz arxa planda açıq olan məlumat bazası, ön planda başqa bir tətbiq varkən görünməyəcəkdir.</string>
|
||||
<string name="warning_database_info_changed_options">Məlumatları birləşdirin, məlumat bazasını yadda saxlayaraq xarici dəyişikliklərin üzərinə yazın və ya ən son dəyişikliklər ilə onu yenidən yükləyin.</string>
|
||||
<string name="clipboard">Mübadilə buferi</string>
|
||||
<string name="clipboard_explanation_summary">Cihazınızın mübadilə buferindən istifadə edərək şifrə sahələrini (bölmələrini) nüsxələyin</string>
|
||||
<string name="clipboard_notifications_title">Mübadilə buferi bildirişləri</string>
|
||||
<string name="clipboard_notifications_summary">Şifrəni göstərərkən sahələri (bölmə) nüsxələmək üçün mübadilə buferi bildirişlərini göstər</string>
|
||||
<string name="clipboard_warning">Əgər mübadilə buferinin avtomatik silinməsi uğursuz olarsa, onun tarixçəsini əllə silin.</string>
|
||||
<string name="html_text_ad_free">Digər bir çox şifrə menecerlerindən fərqli olaraq, bu tətbiq <strong>reklamsız</strong>,<strong>azad lisenziyaya sahibdir</strong> və hansı versiyanı istifadə etdiyinizdən asılı olmayaraq, şəxsi məlumatlarınızı öz serverlərində toplamır.</string>
|
||||
<string name="advanced_unlock_keystore_warning">Bu xüsusiyyət, şifrələnən şəxsiyyəti təsdiq edən məlumatları cihazın təhlükəsiz açar bazasında saxlayacaqdır.\n\nƏməliyyat sisteminin yerli APİ-nin tətbiqindən asılı olaraq, tam olaraq funksional olmaya bilər.\n\nCihazın istehsalçısı və istifadə etdiyiniz ROM-un tərtibatçısı ilə açar bazasının uyğunluğu və təhlükəsizliyini yoxlayın.</string>
|
||||
<string name="autofill_inline_suggestions_title">Cümlə daxili təkliflər</string>
|
||||
<string name="autofill_inline_suggestions_summary">Birbaşa uyğun olan klaviaturadan avtomatik doldurma təkliflərini göstərməyə çalış</string>
|
||||
<string name="autofill_manual_selection_title">Əllə seçim</string>
|
||||
<string name="autofill_manual_selection_summary">İstifadəçiyə məlumat bazası şifrəsini seçməyə imkan verən seçimi göstər</string>
|
||||
<string name="autofill_save_search_info_title">Axtarış məlumatlarını yadda saxla</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Avtomatik doldurma təklifləri əlavə edildi.</string>
|
||||
<string name="allow_no_password_title">Ana açar olmamasına icazə ver</string>
|
||||
<string name="enable_read_only_summary">Məlumat bazasını standart olaraq yazma-qorumalı (dəyişməz) aç</string>
|
||||
<string name="enable_auto_save_database_title">Məlumat bazasını avtomatik olaraq yadda saxla</string>
|
||||
<string name="reset_education_screens_summary">Bütün təlim məlumatlarını yenidən göstər</string>
|
||||
<string name="reset_education_screens_text">Təlim ipuclarını sıfırlamaq</string>
|
||||
<string name="education_new_node_title">Məlumat bazanıza məlumatlar (fayl) əlavə edin</string>
|
||||
<string name="education_search_summary">Şifrələrinizi geri əldə etmək üçün başlıq, istifadəçi adı və ya digər sahələrin (bölmə) məzmununu daxil et.</string>
|
||||
<string name="education_entry_edit_title">Şifrəyə düzəliş edin</string>
|
||||
<string name="education_generate_password_summary">Şifrənizlə əlaqələndirmək üçün güclü bir şifrə yaradın, anketin kriteriyalarına görə onu asanlıqla müəyyənlşdirin və güvənli şifrəni unutmayın.</string>
|
||||
<string name="education_generate_password_title">Güclü şifrə yaradın</string>
|
||||
<string name="keyboard_previous_lock_title">Məlumat bazasını kilidlə</string>
|
||||
<string name="file_manager_install_description">Məlumat bazası fayllarını yaratmaq, açmaq və yadda saxlamaq üçün ACTION_CREATE_DOCUMENT və ACTION_OPEN_DOCUMENT funksiyalarını həyata keçirə bilən bir fayl meneceri tələb olunur.</string>
|
||||
<string name="content_description_node_children">Şəbəkə nöqtəsinin alt kateqoriyası</string>
|
||||
<string name="content_description_add_node">Şəbəkə nöqtəsi əlavə edin</string>
|
||||
<string name="content_description_repeat_toggle_password_visibility">Şifrənin görünüb-görünməməsinin dəyişdirilməsini təkrarlayın</string>
|
||||
<string name="content_description_nav_header">Naviqasiya başlığı</string>
|
||||
<string name="navigation_drawer_open">Naviqasiya panelini aç</string>
|
||||
<string name="navigation_drawer_close">Naviqasiya panelini bağla</string>
|
||||
<string name="entry_add_field">Sahə (bölmə) əlavə et</string>
|
||||
<string name="content_description_remove_field">Sahəni (bölməni) sil</string>
|
||||
<string name="content_description_keyboard_close_fields">Sahələri (bölmələri) bağla</string>
|
||||
<string name="html_about_licence">KeePassDX©%1$dKunzisoft<strong>açıq mənbəlidir və</strong>və<strong>ondan heç bir reklam yoxdur</strong>.\n<strong>GPLv3</strong>lisenziyasına sahibdir, hər hansısa bir qarantiyası yoxdur.</string>
|
||||
<string name="inherited">İdxal et</string>
|
||||
<string name="auto_type">Avtomatik yazma</string>
|
||||
<string name="auto_type_sequence">Avtomatik yazma sırası</string>
|
||||
<string name="entry_not_found">Şifrə məlumatları tapılmadı.</string>
|
||||
<string name="custom_data">Özəl məlumat</string>
|
||||
<string name="entry_title">Başlıq</string>
|
||||
<string name="entry_setup_otp">Tək səfərlik şifrə təyin et</string>
|
||||
<string name="otp_type">OTP növü</string>
|
||||
<string name="otp_secret">Sirr</string>
|
||||
<string name="otp_period">Müddət (saniyə)</string>
|
||||
<string name="otp_counter">Sayğac</string>
|
||||
<string name="otp_digits">Rəqəmlər</string>
|
||||
<string name="search_filters">Axtarış filterləri</string>
|
||||
<string name="otp_algorithm">Alqoritma</string>
|
||||
<string name="current_group">Hazırki qrup</string>
|
||||
<string name="regex">Müntəzəm ifadə</string>
|
||||
<string name="debit_credit_card">Debet / Kredit Kartı</string>
|
||||
<string name="holder">Sahib</string>
|
||||
<string name="id_card">Səxsiyyət Vəsiqəsi</string>
|
||||
<string name="name">Ad</string>
|
||||
<string name="place_of_issue">Verildiyi yer</string>
|
||||
<string name="date_of_issue">Verildiyi tarix</string>
|
||||
<string name="email">Elektron poçt</string>
|
||||
<string name="email_address">Elektron poçt adresi</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="ssid">SSİD</string>
|
||||
<string name="type">Növ</string>
|
||||
<string name="cryptocurrency">Kripto valyuta pul kisəsi</string>
|
||||
<string name="token">Jeton</string>
|
||||
<string name="private_key">Şəxsi açar</string>
|
||||
<string name="public_key">Ortaq açar</string>
|
||||
<string name="seed">Başlanğıc</string>
|
||||
<string name="account">Hesab</string>
|
||||
<string name="bank">Bank</string>
|
||||
<string name="bank_name">Bank adı</string>
|
||||
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||
<string name="secure_note">Təhlükəsizlik Qeydi</string>
|
||||
<string name="membership">Üzvlük</string>
|
||||
<string name="template">Şablon</string>
|
||||
<string name="version">Versiya</string>
|
||||
<string name="entry_otp">OTP</string>
|
||||
<string name="entry_url">URL</string>
|
||||
<string name="entry_user_name">İstifadəçi adı</string>
|
||||
<string name="error_arc4">Arcfour axın şifrəsi dəstəklənmir.</string>
|
||||
<string name="error_file_not_create">Faylı yaratmaq mümkün olmadə.</string>
|
||||
<string name="error_can_not_handle_uri">Bu URİ-nin KeePassDX-də istifadəsi mümkün olmadı.</string>
|
||||
<string name="case_sensitive">Böyük/kiçik hərf həssaslığı</string>
|
||||
<string name="error_invalid_db">Məlumat bazasını oxumaq mümkün olmadı.</string>
|
||||
<string name="error_invalid_path">Fayl yolunun doğru olduğundan əmin olun.</string>
|
||||
<string name="error_invalid_OTP">Etibarsız gizli OTP.</string>
|
||||
<string name="error_no_name">Ad daxil edin.</string>
|
||||
<string name="error_word_reserved">Bu söz rezerv edilib və istifadəsi mümkün deyil.</string>
|
||||
<string name="error_nokeyfile">Açar faylı seçin.</string>
|
||||
<string name="error_no_hardware_key">Aparat-təchizat açarı seçin.</string>
|
||||
<string name="error_out_of_memory">Bütün məlumat bazanızı yükləyəcək qədər yaddaşda yer yoxdur.</string>
|
||||
<string name="error_XML_malformed">XML xətalı formalaşıb.</string>
|
||||
<string name="error_load_database">Məlumat bazasını yükləmək mümkün olmadı.</string>
|
||||
<string name="error_load_database_KDF_memory">Açarı yükləmək mümkün olmadı. KDF \"Yaddaş İstifadəsini\" azaltmağa çalışın.</string>
|
||||
<string name="error_move_entry_here">Bu şifrəni buraya köçürə bilməzsiniz.</string>
|
||||
<string name="error_copy_entry_here">Bu şifrəni buraya nüsxələyə bilməzsiniz.</string>
|
||||
<string name="error_otp_digits">Jeton %1$d ilə %2$d arası rəqəmlərdən ibarət olmalıdır.</string>
|
||||
<string name="error_otp_type">Mövcud OTP növü bu form tərəfindən tanınmır, onun doğrulaması artıq düzgün şəkildə jeton yaratmaya bilər.</string>
|
||||
<string name="error_string_type">Bu mətn istənilən məlumat (fayl) ilə uyğunlaşmır.</string>
|
||||
<string name="error_registration_read_only">Dəyişməz (yalnız oxuna bilən) məlumat bazasında yeni bir məlumatın yadda saxlanılmasına icazə verilmir.</string>
|
||||
<string name="error_field_name_already_exists">Sahə (bölmə) adı artıq mövcuddur.</string>
|
||||
<string name="error_database_uri_null">Mləlumat bazası URİ-sini geri qaytarmaq olmur.</string>
|
||||
<string name="error_rebuild_list">Listi düzgün şəkildə yenidən hazırlamaq mümkün deyil.</string>
|
||||
<string name="error_file_to_big">Qarşıya yükləməyə çalışdığınız faylın həcmi çox böyükdür.</string>
|
||||
<string name="error_duplicate_file">Fayl məlumatları artıq mövcuddur.</string>
|
||||
<string name="error_upload_file">Fayl məlumatları qarşıya yüklənərkən xəta baş verdi.</string>
|
||||
<string name="error_remove_file">Fayl məlumatlarını silərkən xəta baş verdi.</string>
|
||||
<string name="error_start_database_action">Məlumat bazasında prosses həyata keçirilərkən xəta baş verdi.</string>
|
||||
<string name="error_no_response_from_challenge">Doğrulama istəyindən cavab almaq mümkün deyil.</string>
|
||||
<string name="error_unable_merge_database_kdb">kdb məlumat bazası faylı ilə birləşdirmə etmək mümkün deyil.</string>
|
||||
<string name="invalid_credentials">Şəxsiyyəti təsdiq edən məlumatları oxumaq mümkün olmadı.</string>
|
||||
<string name="invalid_algorithm">Yanlış alqoritma.</string>
|
||||
<string name="invalid_db_same_uuid">%1$s eyni UUİD dəyərinə sahib %2$s artıq mövcuddur.</string>
|
||||
<string name="invalid_db_sig">Məlumat bazasının formatını tanımaq mümkün olmadı.</string>
|
||||
<string name="keyfile_is_empty">Açar faylı boşdur.</string>
|
||||
<string name="length">Uzunluq</string>
|
||||
<string name="hide_password_title">Şifrələri gizlət</string>
|
||||
<string name="hide_password_summary">Şifrələri standart olaraq (***) ilə maskala</string>
|
||||
<string name="colorize_password_title">Şifrələri rəngləndir</string>
|
||||
<string name="colorize_password_summary">Şifrə hərflərini (simvollarını) növə görə rəngləndir</string>
|
||||
<string name="list_entries_show_username_title">İstifadəçi adlarını göstər</string>
|
||||
<string name="list_entries_show_username_summary">Şifrə siyahılarında olan istifadəçi adlarını göstər</string>
|
||||
<string name="list_groups_show_number_entries_title">Şifrələrin sayını göstər</string>
|
||||
<string name="show_otp_token_title">OTP Jetononu göstər</string>
|
||||
<string name="show_otp_token_summary">Şifrələrin siyahısında OTP jetonlarını göstər</string>
|
||||
<string name="menu_keystore_remove_key">Cihaz kilid açma açarını sil</string>
|
||||
<string name="menu_url">URL-ni aç</string>
|
||||
<string name="menu_file_selection_read_only">Yazma qoruması</string>
|
||||
<string name="menu_open_file_read_and_write">Modifikasiya edilə bilən</string>
|
||||
<string name="menu_empty_recycle_bin">Zibil qutusunu boşalt</string>
|
||||
<string name="menu_restore_entry_history">Tarixçəni bərpa et</string>
|
||||
<string name="menu_delete_entry_history">Tarixçəni sil</string>
|
||||
<string name="menu_external_icon">Xarici ikona</string>
|
||||
<string name="minus">Mənfi</string>
|
||||
<string name="never">Heç vaxt</string>
|
||||
<string name="no_results">Axtarılan nəticə tapılmadı</string>
|
||||
<string name="no_url_handler">Bu URL-ni açmaq üçün bir veb brauzer quraşdır.</string>
|
||||
<string name="select_database_file">Mövcud kassanı aç</string>
|
||||
<string name="create_keepass_file">Yeni kassa yarat</string>
|
||||
<string name="auto_focus_search_title">Sürətli axtarış</string>
|
||||
<string name="auto_focus_search_summary">Məlumat bazasını açarkən axtarış tələb et</string>
|
||||
<string name="subdomain_search_title">Alt domendə axtarış</string>
|
||||
<string name="subdomain_search_summary">Veb domenləri, alt domen məhdudiyyətləri ilə arxtarın</string>
|
||||
<string name="progress_create">Yeni məlumat bazası yaradılır …</string>
|
||||
<string name="progress_title">İşləyir …</string>
|
||||
<string name="protection">Qoruma</string>
|
||||
<string name="read_only">Yazma qorumalı</string>
|
||||
<string name="read_only_warning">Fayl menecerinizdən asılı olaraq, KeePassDX cihazınızın yaddaşına yazmasına icazə verilməyə bilər.</string>
|
||||
<string name="contains_duplicate_uuid">Məluamt bazasında təkrarlanan UUİD-lər mövcuddur.</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Təkrarlananlar üçün yeni UUİD-lər yaradaraq problemi həll edib davam et istəyirsinizmi?</string>
|
||||
<string name="search_mode">Axtarış modu</string>
|
||||
<string name="save_mode">Yadda saxlama modu</string>
|
||||
<string name="selection_mode">Seçim modu</string>
|
||||
<string name="registration_mode">Qeydiyyat modu</string>
|
||||
<string name="remember_database_locations_title">Məlumat bazalarının yerlərini xatırlayın</string>
|
||||
<string name="remember_database_locations_summary">Məlumat bazalarının harada saxlanıldığını izlə</string>
|
||||
<string name="remember_hardware_key_summary">Aparat-təchizat açarlarının harada istifadə olunduğunu izlə</string>
|
||||
<string name="hide_broken_locations_summary">Son məlumat bazaları siyahısındakı yararsız linkləri gizlət</string>
|
||||
<string name="import_app_properties_title">Tətbiq parametrlərini idxal et</string>
|
||||
<string name="import_app_properties_summary">Tətbiq parametrlərini idxal etmək üçün fayl seçin</string>
|
||||
<string name="rounds">Transformasiya turları</string>
|
||||
<string name="rounds_explanation">Əlavə şifrələmə turları, brute force hücumlarına qarşı yüksək qoruma təmin edər, lakin yükləmə və yadda saxlama prossesini ciddi şəkildə yavaşladır.</string>
|
||||
<string name="memory_usage">Yaddaş istifadəsi</string>
|
||||
<string name="memory_usage_explanation">Açar yaratma funksiyası tərəfindən istifadə ediləcək yaddaşın miqdarı.</string>
|
||||
<string name="parallelism">Paralellik</string>
|
||||
<string name="kdf_explanation">Şifrələmə alqoritmasının açarını hazırlamaq üçün ana açar, təsadüfi açar yaratma funksiyasından istifadə edilərək çevrilir.</string>
|
||||
<string name="parallelism_explanation">Açar yaratma funksiyası tərəfindən istifadə edilən paralellik dərəcəsi (yəni thread-lərin sayı).</string>
|
||||
<string name="saving_database">Məlumat bazası yadda saxlanılır …</string>
|
||||
<string name="command_execution">Əmr yerinə yetirilir …</string>
|
||||
<string name="warning_no_encryption_key">Şifrələmə açarı olmadan davam edilsinmi?</string>
|
||||
<string name="warning_permanently_delete_nodes">Seçilmiş şəbəkə nöqtələri qalıcı olaraq silinsinmi?</string>
|
||||
<string name="warning_empty_recycle_bin">Zibil qutusundakı bütün şəbəkə nöqtələri qalıcı olaraq silinsinmi?</string>
|
||||
<string name="warning_file_too_big">KeePassDX məlumat bazası sadəcə kiçik köməkçi faylları (PGP açar faylları kimi) ehtiva edə bilər.\n\nMəlumat bazanızın bu yükləməylə həcmi çox arta və performansı aşağı düşə bilər.</string>
|
||||
<string name="warning_replace_file">Bu faylın yüklənməsi mövcud olanı əvəzləyəcəkdir.</string>
|
||||
<string name="warning_password_encoding">Məlumat bazası faylındakı mətn kodlama formatından xaric şifrə hərflərindən (simvol) istifadə etməkdən yayının (tanınmayan hərflər (simvollar) eyni hərfə çevrilir).</string>
|
||||
<string name="warning_database_read_only">Məlumat bazasındakı dəyişiklikləri yadda saxlamaq üçün faylların yazılmasına icazə verin</string>
|
||||
<string name="warning_database_link_revoked">Fayla giriş icazəsi fayl meneceri tərəfindən rədd edildi</string>
|
||||
<string name="warning_database_already_opened">Məlumat bazası artıq açıqdır, yenisi açmaq üçün öncə onu bağlayın</string>
|
||||
<string name="warning_empty_password">Şifrə qoruması olmadan davam edilsinmi?</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Cihazın kilid açma funksiyasından istifadə etsəniz belə, kassanın əsas şəxsiyyət təyin etmə məlumatlarını yenə də xatırlamaq lazımdır.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Cihazın kilid açma funksiyası ilə məlumat bazasının şəxsiyyətini tədiq edən məlumatlarını əldə edin</string>
|
||||
<string name="advanced_unlock_invalid_key">Cihazın kilid açma açarı oxunmadı. Zəhmət olmazsa, onu silin və kilid açma prossesini təkrarlayın.</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Cihaz kilid açma istəyini başlatmaq mümkün deyil.</string>
|
||||
<string name="autofill_explanation_summary">Digər tətbiqlərdə formları (anket) daha sürətli doldurmaq üçün avtomatik doldurma funksiyasını aktiv edin</string>
|
||||
<string name="autofill_select_entry">Şifrə seç .…</string>
|
||||
<string name="set_autofill_service_title">Standart avtomatik doldurma xidmətini təyin edin</string>
|
||||
<string name="autofill_preference_title">Avtomatik doldurmanın parametrləri</string>
|
||||
<string name="password_size_title">Yaradılan şifrə həcmi</string>
|
||||
<string name="password_size_summary">Yaradılan şifrələrin standart həcmini təyin edər</string>
|
||||
<string name="list_password_generator_options_title">Şifrə hərfləri (simvolları)</string>
|
||||
<string name="list_password_generator_options_summary">İcazə verilən şifrə yaratma hərflərini (simvollarını) təyin et</string>
|
||||
<string name="database_opened">Məlumat bazası açıldı</string>
|
||||
<string name="lock">Kilid</string>
|
||||
<string name="lock_database_screen_off_title">Ekran kilidi</string>
|
||||
<string name="lock_database_screen_off_summary">Ekran söndükdən bir neçə saniyə sonra məlumat bazasının kilidləyin</string>
|
||||
<string name="lock_database_back_root_title">Kilidləmək üçün \"Geri\" düyməsinə sıxın</string>
|
||||
<string name="lock_database_back_root_summary">İstifadəçi kök ekranında geri düyməsinə klik etdikdə məlumat bazasını kilidlə</string>
|
||||
<string name="lock_database_show_button_title">Kilid düyməsini göstərin</string>
|
||||
<string name="lock_database_show_button_summary">İstifadəçi interfeysində kilid düyməsini göstərin</string>
|
||||
<string name="content">Məzmun</string>
|
||||
<string name="unlock">Kilidi aç</string>
|
||||
<string name="advanced_unlock">Cihaz kilidini aç</string>
|
||||
<string name="advanced_unlock_tap_delete">Cihaz kilid açma açarlarını silmək üçün toxunun</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">Məzmununu silmədən öncə cihazın kilidini açma istifadə müddəti</string>
|
||||
<string name="advanced_unlock_timeout">Cihaz kilidi açma taymout müddəti</string>
|
||||
<string name="biometric_delete_all_key_summary">Cihaz kilid açma tanıması ilə bağlı bütün şifrəli açarları silin</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Cihaz kilid açma tanıması ilə bağlı bütün şifrəli açarlar silinsinmi?</string>
|
||||
<string name="database_data_remove_unlinked_attachments_summary">Məlumat bazasında olan, lakin şifrəyə bağlı olmayan qoşmaları silin</string>
|
||||
<string name="max_history_items_summary">Hər şifrə başına düşən keçmiş məlumatların (fayl) sayını limitləyin</string>
|
||||
<string name="monospace_font_fields_enable_title">Sahə (bölmə) yazı tipi</string>
|
||||
<string name="monospace_font_fields_enable_summary">Hərflərin (simvol) daha yaxşı görünməsi üçün sahələrdə (bölmə) istifadə olunan fontu dəyişdirin</string>
|
||||
<string name="allow_copy_password_title">Mübadilə buferi güvəni</string>
|
||||
<string name="clear_clipboard_notification_summary">Mübadilə buferinin istifadə müddəti bitdikdə və ya istifadə etməyə başladıqdan sonra bildiriş bağlandığında məlumat bazasını kilidləyin</string>
|
||||
<string name="magic_keyboard_explanation_summary">Şifrə və bütün şəxsiyyət məlumatlarının daxil olduğu özəl klaviaturanı aktivləşdirin</string>
|
||||
<string name="keyboard_selection_entry_summary">KeePassDX-də bir şifrəyə baxarkən, Magikeyboard-da həmin şifrəni göstər</string>
|
||||
<string name="keyboard_save_search_info_summary">Gələcəkdə daha asan istifadələr üçün əl ilə şifrə seçimi edərkən paylaşılan məlumatları yadda saxlamağa çalışın</string>
|
||||
<string name="keyboard_entry_timeout_summary">Klaviatura şifrəsini təmizləmək üçün taym-aut</string>
|
||||
<string name="keyboard_auto_go_action_title">Avtomatik düymə funksiyası (hərəkəti)</string>
|
||||
<string name="keyboard_auto_go_action_summary">\"Sahə\" düyməsinə basdıqdan sonra \"Get\" düyməsi funksiyası (hərəkəti)</string>
|
||||
<string name="keyboard_previous_database_credentials_title">Məlumat bazasının şəxsiyyətini təsdiq edən məlumatların ekranı</string>
|
||||
<string name="select_entry">Şifrə seç</string>
|
||||
<string name="backspace">Backspace (geri silmə)</string>
|
||||
<string name="enter">Enter (daxil et)</string>
|
||||
<string name="autofill_close_database_title">Məlumat bazasını bağla</string>
|
||||
<string name="autofill_close_database_summary">Avtomatik doldurma seçimindən sonra məlumat bazasını bağla</string>
|
||||
<string name="autofill_save_search_info_summary">Gələcəkdə daha asan istifadələr üçün əllə şifrə seçimi edərkən axtarış məlumatlarını yadda saxlamağa çalış</string>
|
||||
<string name="autofill_ask_to_save_data_title">Məlumatları yadda saxlamaq üçün sorğula</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Anket doldurma prossesi tamamlandığında məlumatları yadda saxlamaq üçün sorğula</string>
|
||||
<string name="autofill_application_id_blocklist_title">Tətbiqin bloklama siyahısı</string>
|
||||
<string name="autofill_application_id_blocklist_summary">Tətbiqlərin avtomatik olaraq doldurulmasını əngəlləyən bloklama siyahısı</string>
|
||||
<string name="autofill_web_domain_blocklist_title">Veb domen bloklama siyahısı</string>
|
||||
<string name="autofill_web_domain_blocklist_summary">Veb domenlərin avtomatik olaraq doldurulmasını əngəlləyən bloklama siyahısı</string>
|
||||
<string name="autofill_block">Avtomatik doldurmanı blokla</string>
|
||||
<string name="autofill_block_restart">Bloklamanı aktiv etmək üçün anketin daxil olduğu tətbiqi yenidən başladın.</string>
|
||||
<string name="autofill_read_only_save">Yazma-qorumalı (dəyişməz) olaraq açılan məlumat bazasında yeni məlumatları yadda saxlamağa icazə verilmir.</string>
|
||||
<string name="allow_no_password_summary">Əgər şəxsiyyəti təsdiq edən məlumatlar seçilməyibsə, \"Aç\" düyməsinin sıxılmasına icazə ver</string>
|
||||
<string name="delete_entered_password_title">Şifrəni sil</string>
|
||||
<string name="delete_entered_password_summary">Məlumat bazasına bağlantı cəhdindən sonra daxil edilmiş şifrəni sil</string>
|
||||
<string name="enable_read_only_title">Yazma qorumalı</string>
|
||||
<string name="enable_auto_save_database_summary">Hər önəmli prossesdən sonra məlumat bazasını yadda saxla (\"Modifikasiya edilə bilən\" modda keçərlidir)</string>
|
||||
<string name="enable_keep_screen_on_title">Ekranı açıq saxla</string>
|
||||
<string name="enable_keep_screen_on_summary">Şifrəyə baxarkən və ya redaktə edərkən ekranı açıq saxla</string>
|
||||
<string name="keyboard_previous_database_credentials_summary">Məlumat bazası şəxsiyyətini təsdiq edən məlumatlar ekranında avtomatik olaraq əvvəlki klaviaturaya geri dön</string>
|
||||
<string name="keyboard_previous_search_title">Axtarış ekranı</string>
|
||||
<string name="keyboard_previous_search_summary">Axtarış ekranında avtomatik olaraq əvvəlki klaviaturaya geri dön</string>
|
||||
<string name="keyboard_previous_fill_in_title">Geri dön</string>
|
||||
<string name="keyboard_previous_fill_in_summary">\"Avtomatik funksiya düyməsi\" prossesi həyata keçirildikdən sonra avtomatik olaraq əvvəlki klaviaturaya geri dön</string>
|
||||
<string name="education_validate_entry_title">Şifrəni doğrula</string>
|
||||
<string name="education_validate_entry_summary">Şifrəni doğrulamağı və məlumat bazasını yadda saxlamağı unutmayın.\n\nƏgər avtomatik kilidləmə aktivləşərsə və dəyişiklik etdiyinizi unutsanız, məlumatlarınızı itirmə riskiniz olar.</string>
|
||||
<string name="education_entry_new_field_summary">Əlavə bir sahəni (bölmə) qeydiyyata alın, bir dəyər əlavə edin və istəyə bağlı olaraq onu qoruyun.</string>
|
||||
<string name="education_setup_OTP_summary">İki faktorlu doğrulama (2FA) üçün tələb olunan jetonu yaratmaq üçün bir dəfəlik şifrə menecerini (HOTP / TOTP) təyin edin.</string>
|
||||
<string name="education_read_only_summary">Sessiya üçün açılış modunu dəyişin.\n\n\"Yazma qoruması\" funksiyası, məlumat bazasına istənilməyən dəyişikliklərin qarşısını alır.\n\"Modifikasiya edilə bilmə\" funksiyası, istədiyiniz kimi bütün elementləri əlavə etməyinizə, silmənizə və ya dəyişdirməyinizə icazə verir.</string>
|
||||
<string name="education_lock_summary">Məlumat bazanızı cəld şəkildə kilidləyin, müəyyən müddət sonra və ekran söndükdə tətbiqin onu kilidləməsi üçün təyinatlandıra bilərsiniz.</string>
|
||||
<string name="enable_screenshot_mode_title">Ekran görüntüsü modu</string>
|
||||
<string name="enable_screenshot_mode_summary">Üçüncü tərəf tətbiqlərə bu tətbiqdə ekran görüntüsü qeyd etməyə və almağa icazə ver</string>
|
||||
<string name="enable_education_screens_title">Təlim ipucları</string>
|
||||
<string name="enable_education_screens_summary">Tətbiqin necə işlədiyini öyrənmək üçün elementləri önə çıxarın</string>
|
||||
<string name="reset_education_screens_title">Təlim ipuclarını sıfırla</string>
|
||||
<string name="education_create_database_title">Məlumat bazası faylınızı yaradın</string>
|
||||
<string name="education_create_database_summary">İlk şifrə meneceri faylınızı yaradın.</string>
|
||||
<string name="education_select_database_title">Mövcud məlumat bazasını açın</string>
|
||||
<string name="education_select_database_summary">İstifadəyə davam etmək üçün fayl brauzerinizdən əvvəlki məlumat bazası faylını açın.</string>
|
||||
<string name="education_new_node_summary">Şifrələr rəqəmsal şəxsiyyəti təsdiq edən məlumatları idarə etməyinizə kömək edir.\n\nQruplar (~qovluqlar) məlumat bazasındakı şifrələri düzəltdir.</string>
|
||||
<string name="education_search_title">Şifrələrdə axtarış edin</string>
|
||||
<string name="education_advanced_unlock_title">Cihaz maəlumat bazası kilidini açma</string>
|
||||
<string name="education_advanced_unlock_summary">Məlumat bazanızı daha sürətli açmaq üçün şifrənizi skan edilmiş biometriya və ya cihaz şəxsiyyəti təsdiq edən məlumatlarla əlaqələndirin.</string>
|
||||
<string name="education_entry_edit_summary">Şifrəyə özəl sahələrlə (bölmə) düzəliş edin. Ümumi məlumatlara müxtəlif şifrə sahələri arasında istinad edilə bilər.</string>
|
||||
<string name="education_sort_title">Məlumatları (fayl) sıralayın</string>
|
||||
<string name="education_sort_summary">Şifrə və qrupların necə sıralandığını seçin.</string>
|
||||
<string name="education_donation_title">İştirak et</string>
|
||||
<string name="education_donation_summary">Stabilliyin, təhlükəsizliyin artırılmasına və daha çox funksiyaların əlavə edilməsinə yardım edin.</string>
|
||||
<string name="html_text_buy_pro">Pro versiyasını alaraq, bu <strong>görünüş stilindən</strong>istifadə edə və xüsusilə <strong>ictimai layihələrinin həyata keçirilməsinə yardım etmiş olacaqsınız.</strong></string>
|
||||
<string name="html_text_dev_feature_buy_pro"><strong>Pro</strong>versiyasını alaraq,</string>
|
||||
<string name="html_text_dev_feature_contibute"><strong>Yardım göstərərək</strong>,</string>
|
||||
<string name="html_text_dev_feature_thanks">Yardım etdiyiniz üçün çox sağ olun.</string>
|
||||
<string name="html_text_dev_feature_work_hard">Bu funksiyası tezliklə yayımlamaq üçün çox çaılşırıq.</string>
|
||||
<string name="html_text_dev_feature_upgrade">Yeni versiyaları quraşdıraraq tətbiqi yeni saxlamağı unutmayın.</string>
|
||||
<string name="download">Yüklə</string>
|
||||
<string name="download_attachment">Yüklə%1$s</string>
|
||||
<string name="upload_attachment">%1$sYüklə</string>
|
||||
<string name="download_initialization">Başladılır …</string>
|
||||
<string name="download_progression">Davam edir:%1$d%%</string>
|
||||
<string name="download_finalization">Yekunlaşdırılır…</string>
|
||||
<string name="download_complete">Bitdi!</string>
|
||||
<string name="download_canceled">Ləğv edildi!</string>
|
||||
<string name="unit_byte">B</string>
|
||||
<string name="entropy">Entropiya:%1$s bit</string>
|
||||
<string name="entropy_high">Entropiya: Yüksək</string>
|
||||
<string name="entropy_calculate">Entropiya: Hesabla …</string>
|
||||
<string name="at_least_one_char">Hər birindən ən az bir hərf (simvol)</string>
|
||||
<string name="exclude_ambiguous_chars">Qeyri-müəyyən hərfləri (simvolları) istisna et</string>
|
||||
<string name="consider_chars_filter">Hərfləri (simvolları) nəzərə al</string>
|
||||
<string name="word_separator">Ayırıcı</string>
|
||||
<string name="ignore_chars_filter">Hərfləri (simvolları) nəzərə alma</string>
|
||||
<string name="lower_case">kiçik hərf</string>
|
||||
<string name="upper_case">BÖYÜK HƏRF</string>
|
||||
<string name="title_case">İlk hərflər böyük</string>
|
||||
<string name="character_count">Hərf (simvol) sayı:%1$d</string>
|
||||
<string name="screenshot_mode_banner_text">Ekran görüntüsü modu</string>
|
||||
<string name="style_choose_title">Tətbiq teması</string>
|
||||
<string name="style_choose_summary">Tətbiqdə istifadə olunan tema</string>
|
||||
<string name="style_name_forest">Meşə</string>
|
||||
<string name="style_name_divine">Müqəddəs</string>
|
||||
<string name="style_name_classic">Klassik</string>
|
||||
<string name="style_name_moon">Ay</string>
|
||||
<string name="style_name_sun">Günəş</string>
|
||||
<string name="style_name_reply">Cavab ver</string>
|
||||
<string name="style_name_kunzite">Kunzit</string>
|
||||
<string name="style_name_follow_system">Sistemi izle</string>
|
||||
<string name="style_brightness_title">Tema parlaqlığı</string>
|
||||
<string name="style_brightness_summary">Açıq və ya tünd temaları seç</string>
|
||||
<string name="style_name_light">Açıq</string>
|
||||
<string name="style_name_dark">Tünd</string>
|
||||
<string name="icon_section_standard">Standart</string>
|
||||
<string name="icon_section_custom">Özəl</string>
|
||||
<string name="icon_pack_choose_title">İkona paketi</string>
|
||||
<string name="icon_pack_choose_summary">Tətbiqdə istifadı edilən ikona paketi</string>
|
||||
<string name="show_entry_colors_title">Şifrə rəngləri</string>
|
||||
<string name="show_entry_colors_summary">Şifrələr üçün ön və arxa plan rənglərini göstərir</string>
|
||||
<string name="hide_expired_entries_title">İstifadə müddəti bitən, istifadə olunmayan şifrələri gizlət</string>
|
||||
<string name="hide_expired_entries_summary">İstifadə müddəti bitən şifrələr göstərilmir</string>
|
||||
<string name="keyboard_previous_lock_summary">Məlumat bazasını kilidlədikdən sonra avtomatik olaraq əvvəlki klaviaturaya geri dön</string>
|
||||
<string name="custom_fields">Özəl sahələr (bölmə)</string>
|
||||
<string name="back_to_previous_keyboard">Əvvəlki klaviaturaya geri dön</string>
|
||||
</resources>
|
||||
@@ -27,7 +27,7 @@
|
||||
<string name="menu_showpass">Prikaži lozinku</string>
|
||||
<string name="menu_search">Traži</string>
|
||||
<string name="menu_open">Otvori</string>
|
||||
<string name="menu_save_database">Sačuvaj bazu podataka</string>
|
||||
<string name="menu_save_database">Sačuvaj podatake</string>
|
||||
<string name="menu_lock">Zaključaj bazu podataka</string>
|
||||
<string name="menu_hide_password">Sakrij lozinku</string>
|
||||
<string name="menu_cancel">Otkaži</string>
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="file_not_found_content">Nije moguće pronaći datoteku. Pokušajte ponovo da je otvorite iz svog pregledača datoteka.</string>
|
||||
<string name="field_value">Vrednost polja</string>
|
||||
<string name="field_name">Naziv polja</string>
|
||||
<string name="error_registration_read_only">Čuvanje nove stavke nije dozvoljeno u bazi podataka koja je samo za čitanje</string>
|
||||
<string name="error_registration_read_only">Čuvanje nove stavke nije dozvoljeno u bazi podataka koja je samo za čitanje.</string>
|
||||
<string name="error_string_type">Ovaj tekst se ne podudara sa traženom stavkom.</string>
|
||||
<string name="error_otp_period">Broj sekundi perioda mora biti u opsegu od %1$d do %2$d.</string>
|
||||
<string name="error_otp_digits">Broj cifara tokena mora biti u opsegu od %1$d do %2$d.</string>
|
||||
@@ -100,7 +100,7 @@
|
||||
<string name="error_invalid_OTP">Nevažeća OTP tajna.</string>
|
||||
<string name="error_invalid_path">Proverite da li je putanja ispravna.</string>
|
||||
<string name="error_invalid_db">Nije moguće pročitati bazu podataka.</string>
|
||||
<string name="error_file_not_create">Nije moguće kreirati datoteku</string>
|
||||
<string name="error_file_not_create">Nije moguće kreirati datoteku.</string>
|
||||
<string name="error_can_not_handle_uri">Nije moguće obraditi ovaj URI u keePassDX-u.</string>
|
||||
<string name="error_arc4">Archfour šifrovanje nije podržano.</string>
|
||||
<string name="entry_user_name">Korisničko ime</string>
|
||||
@@ -224,12 +224,12 @@
|
||||
<string name="html_about_contribution">Kako bismo <strong>zadržali našu slobodu</strong>, <strong>ispravljali greške</strong>, <strong>dodavali nove opcije</strong> i <strong>uvek bili aktivni</strong>, računamo na Vaš <strong>doprinos</strong>.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft je <strong>otvorenog koda</strong> i <strong>ne sadrži reklame</strong>.
|
||||
\nPonuđen je onakav kakav jeste, pod <strong>GPLv3</strong> licencom, bez ikakvih garancija.</string>
|
||||
<string name="digits">Cifre</string>
|
||||
<string name="digits">Znamenke</string>
|
||||
<string name="default_checkbox">Koristi kao podrazumevanu bazu podataka</string>
|
||||
<string name="decrypting_db">Dešifrovanje sadržaja baze podataka…</string>
|
||||
<string name="database">Baza podataka</string>
|
||||
<string name="retrieving_db_key">Dohvatanje ključa baze podataka…</string>
|
||||
<string name="select_to_copy">Izabarite kako bi ste kopirali %1$s u međuspremnik</string>
|
||||
<string name="select_to_copy">Izaberite kako bi ste kopirali %1$s u međuspremnik</string>
|
||||
<string name="content_description_keyboard_close_fields">Zatvori polja</string>
|
||||
<string name="content_description_remove_from_list">Obriši</string>
|
||||
<string name="content_description_update_from_list">Ažuriraj</string>
|
||||
@@ -256,7 +256,7 @@
|
||||
<string name="clipboard_timeout">Vreme isteka međuspremnika</string>
|
||||
<string name="clipboard_error_clear">Nije moguće očistiti međuspremnik</string>
|
||||
<string name="clipboard_error">Neki uređaji neće dozvoliti aplikacijama da koriste međuspremnik.</string>
|
||||
<string name="clipboard_cleared">Međuspremnik je očišćena</string>
|
||||
<string name="clipboard_cleared">Međuspremnik je očišćen</string>
|
||||
<string name="clipboard_error_title">Greška međuspremnika</string>
|
||||
<string name="allow">Dozvoli</string>
|
||||
<string name="edit_entry">Izmeni stavku</string>
|
||||
@@ -264,4 +264,153 @@
|
||||
<string name="contact">Kontakt</string>
|
||||
<string name="biometric_security_update_required">Neophodno je ažurirati biometriju.</string>
|
||||
<string name="configure">Podesi</string>
|
||||
<string name="content_description_passphrase_word_count">Broj reči pristupne fraze</string>
|
||||
<string name="passphrase">Dugačka lozinka</string>
|
||||
<string name="filter">Filtar</string>
|
||||
<string name="content_description_hardware_key_checkbox">Polje za potvrdu hardverskog ključa</string>
|
||||
<string name="content_description_entry_background_color">Boja pozadine unosa</string>
|
||||
<string name="name">Ime</string>
|
||||
<string name="error_rebuild_list">Nije moguće pravilno obnoviti listu.</string>
|
||||
<string name="auto_focus_search_title">Brza pretraga</string>
|
||||
<string name="protection">Zaštita</string>
|
||||
<string name="import_app_properties_summary">Izaberite datoteku za uvoz podešavanja aplikacije</string>
|
||||
<string name="rounds">Transformacioni krugovi</string>
|
||||
<string name="content_description_database_color">Boja baze podataka</string>
|
||||
<string name="content_description_entry_foreground_color">Ulazna boja prednjeg plana</string>
|
||||
<string name="debit_credit_card">Debitna/kreditna kartica</string>
|
||||
<string name="place_of_issue">Mjesto izdavanja</string>
|
||||
<string name="date_of_issue">Datum izdavanja</string>
|
||||
<string name="email">Email</string>
|
||||
<string name="email_address">Adresa e-pošte</string>
|
||||
<string name="type">Vrsta</string>
|
||||
<string name="cryptocurrency">Novčanik za kriptovalute</string>
|
||||
<string name="token">Token</string>
|
||||
<string name="public_key">Javni ključ</string>
|
||||
<string name="private_key">Privatni ključ</string>
|
||||
<string name="seed">Tajna fraza</string>
|
||||
<string name="account">Račun</string>
|
||||
<string name="bank_identifier_code">SVIFT / BIC</string>
|
||||
<string name="membership">Članstvo</string>
|
||||
<string name="error_otp_type">Ovaj obrazac ne prepoznaje postojeći tip OTP-a, njegova validacija možda više neće ispravno generisati token.</string>
|
||||
<string name="error_start_database_action">Došlo je do greške pri izvođenju radnje u bazi podataka.</string>
|
||||
<string name="menu_reload_database">Поново учитај податке</string>
|
||||
<string name="no_url_handler">Instalirajte veb pregledač da biste otvorili ovu URL adresu.</string>
|
||||
<string name="select_database_file">Otvorite postojeći trezor</string>
|
||||
<string name="remember_database_locations_summary">Prati gde se čuvaju baze podataka</string>
|
||||
<string name="hide_broken_locations_summary">Sakrijte pokvarene veze na listi nedavnih baza podataka</string>
|
||||
<string name="content_description_otp_information">Informacije o jednokratnoj lozinci</string>
|
||||
<string name="error_upload_file">Došlo je do greške pri otpremanju podataka datoteke.</string>
|
||||
<string name="hint_icon_name">Ime ikone</string>
|
||||
<string name="no_results">Nema rezultata pretrage</string>
|
||||
<string name="memory_usage">Korišćenje memorije</string>
|
||||
<string name="show_recent_files_title">Prikaži nedavne datoteke</string>
|
||||
<string name="show_uuid_title">Prikaži UUID</string>
|
||||
<string name="html_about_privacy"><strong>Ne preuzimaju se nikakvi korisnički podaci</strong>, ova aplikacija se ne povezuje ni na jedan server, radi samo lokalno i u potpunosti poštuje privatnost korisnika.</string>
|
||||
<string name="expired">Isteklo</string>
|
||||
<string name="hardware_key">Hardverski ključ</string>
|
||||
<string name="bank">Banka</string>
|
||||
<string name="bank_name">Ime banke</string>
|
||||
<string name="version">Verzija</string>
|
||||
<string name="error_remove_file">Došlo je do greške pri uklanjanju podataka iz datoteke.</string>
|
||||
<string name="error_challenge_already_requested">Izazov je već zahtevan.</string>
|
||||
<string name="error_hardware_key_unsupported">Hardverski ključ nije podržan.</string>
|
||||
<string name="error_empty_key">Ključ ne može biti prazan.</string>
|
||||
<string name="colorize_password_summary">Obojite znakove lozinke po tipu</string>
|
||||
<string name="show_otp_token_title">Prikaži OTP token</string>
|
||||
<string name="show_uuid_summary">Prikazuje UUID povezan sa unosom ili grupom</string>
|
||||
<string name="menu_merge_from">Sjedini iz …</string>
|
||||
<string name="progress_title">Rad u toku …</string>
|
||||
<string name="export_app_properties_summary">Napravite datoteku za izvoz podešavanja aplikacije</string>
|
||||
<string name="success_export_app_properties">Podešavanja aplikacije su izvezena</string>
|
||||
<string name="root">Koren</string>
|
||||
<string name="rounds_explanation">Dodatne runde šifrovanja pružaju veću zaštitu od napada grube sile, ali zaista mogu usporiti učitavanje i čuvanje.</string>
|
||||
<string name="memory_usage_explanation">Količina memorije koju će koristiti funkcija izvođenja ključa.</string>
|
||||
<string name="space">Razmak</string>
|
||||
<string name="error_unable_merge_database_kdb">Nije moguće spojiti sa kdb datotekom baze podataka.</string>
|
||||
<string name="error_location_unknown">Lokacija baze podataka je nepoznata, radnja baze podataka se ne može izvršiti.</string>
|
||||
<string name="corrupted_file">Oštećena datoteka.</string>
|
||||
<string name="colorize_password_title">Obojite lozinke</string>
|
||||
<string name="show_otp_token_summary">Prikazuje OTP tokene na listi unosa</string>
|
||||
<string name="error_field_name_already_exists">Ime polja već postoji.</string>
|
||||
<string name="menu_merge_database">Objedini podatke</string>
|
||||
<string name="menu_keystore_remove_key">Izbrišite ključ za otključavanje uređaja</string>
|
||||
<string name="subdomain_search_summary">Pretražujte veb domene sa ograničenjima poddomena</string>
|
||||
<string name="export_app_properties_title">Izvezite podešavanja aplikacije</string>
|
||||
<string name="registration_mode">Režim registracije</string>
|
||||
<string name="remember_database_locations_title">Zapamtite lokacije baza podataka</string>
|
||||
<string name="remember_hardware_key_title">Zapamtite hardverske ključeve</string>
|
||||
<string name="remember_hardware_key_summary">Vodi evidenciju o korišćenim hardverskim ključevima</string>
|
||||
<string name="error_import_app_properties">Greška tokom uvoza podešavanja aplikacije.</string>
|
||||
<string name="hide_broken_locations_title">Sakrij neispravne veze baze podataka</string>
|
||||
<string name="import_app_properties_title">Uvezite podešavanja aplikacije</string>
|
||||
<string name="description_app_properties">KeePassDX svojstva za upravljanje podešavanjima aplikacije</string>
|
||||
<string name="show_recent_files_summary">Prikaži lokacije nedavnih baza podataka</string>
|
||||
<string name="success_import_app_properties">Podešavanja aplikacije su uvezena</string>
|
||||
<string name="kdf_explanation">Da bi se generisao ključ za algoritam šifrovanja, glavni ključ se transformiše korišćenjem nasumično slane funkcije izvođenja ključa.</string>
|
||||
<string name="do_not_kill_app">Ne ubijajte aplikaciju…</string>
|
||||
<string name="encryption_explanation">Algoritam šifrovanja baze podataka koji se koristi za sve podatke</string>
|
||||
<string name="command_execution">Izvršavanje komande…</string>
|
||||
<string name="content_description_nav_header">Zaglavlje za navigaciju</string>
|
||||
<string name="navigation_drawer_open">Ploča navigacije otvorena</string>
|
||||
<string name="navigation_drawer_close">Ploča navigacije zatvorena</string>
|
||||
<string name="searchable">Pretraživo</string>
|
||||
<string name="inherited">Nasledi</string>
|
||||
<string name="auto_type_sequence">Automatska sekvenca unosa</string>
|
||||
<string name="tags">Oznake</string>
|
||||
<string name="custom_data">Prilagođeni podaci</string>
|
||||
<string name="search_filters">Filteri za pretragu</string>
|
||||
<string name="current_group">Trenutna grupa</string>
|
||||
<string name="case_sensitive">Osetljivo na velika i mala slova</string>
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="secure_note">Sigurna beleška</string>
|
||||
<string name="error_database_uri_null">URI baze podataka se ne može preuzeti.</string>
|
||||
<string name="read_only_warning">U zavisnosti od vašeg menadžera datoteka, KeePassDX možda neće dozvoliti da upisuje u vašu memoriju.</string>
|
||||
<string name="sort_menu">Sortiraj</string>
|
||||
<string name="auto_type">Automatski unos</string>
|
||||
<string name="save_mode">Režim čuvanja</string>
|
||||
<string name="info">Informacije</string>
|
||||
<string name="waiting_challenge_request">Čeka se zahtev za izazov…</string>
|
||||
<string name="waiting_challenge_response">Čeka se odgovor na izazov…</string>
|
||||
<string name="template_group_name">Predlošci</string>
|
||||
<string name="regex">Regularni izraz</string>
|
||||
<string name="holder">Vlasnik</string>
|
||||
<string name="number">Broj</string>
|
||||
<string name="error_word_reserved">Ova reč je rezervisana i ne može se koristiti.</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
<string name="id_card">Lična karta</string>
|
||||
<string name="wireless">Vi-Fi</string>
|
||||
<string name="ssid">SSID</string>
|
||||
<string name="standard">Standardno</string>
|
||||
<string name="template">Šablon</string>
|
||||
<string name="error_no_hardware_key">Izaberite hardverski ključ.</string>
|
||||
<string name="error_XML_malformed">XML je pogrešno oblikovan.</string>
|
||||
<string name="error_move_group_here">Ovde ne možete premestiti grupu.</string>
|
||||
<string name="error_file_to_big">Datoteka koju pokušavate da otpremite je prevelika.</string>
|
||||
<string name="error_duplicate_file">Podaci o fajlu već postoje.</string>
|
||||
<string name="error_response_already_provided">Odgovor je već dat.</string>
|
||||
<string name="error_no_response_from_challenge">Nije moguće dobiti odgovor na izazov.</string>
|
||||
<string name="error_cancel_by_user">Korisnik je otkazao.</string>
|
||||
<string name="error_driver_required">Potreban je drajver za %1$s.</string>
|
||||
<string name="menu_app_settings_summary">Pretraga, zaključavanje, istorija, svojstva</string>
|
||||
<string name="menu_form_filling_settings_summary">Tastatura, automatsko popunjavanje, klipbord</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometrija, akreditiv uređaja</string>
|
||||
<string name="menu_database_settings_summary">Metapodaci, korpa za otpatke, šabloni, istorija</string>
|
||||
<string name="menu_security_settings_summary">Šifrovanje, funkcija izvođenja ključa</string>
|
||||
<string name="master_key_settings_summary">Promena, obnova</string>
|
||||
<string name="menu_save_copy_to">Sačuvajte kopiju u…</string>
|
||||
<string name="menu_external_icon">Vanjska ikona</string>
|
||||
<string name="create_keepass_file">Napravite novi trezor</string>
|
||||
<string name="auto_focus_search_summary">Zatražite pretragu prilikom otvaranja baze podataka</string>
|
||||
<string name="subdomain_search_title">Pretraga poddomena</string>
|
||||
<string name="progress_create">Pravljenje nove baze podataka…</string>
|
||||
<string name="read_only">Zaštićeno od pisanja</string>
|
||||
<string name="error_export_app_properties">Greška tokom izvoza podešavanja aplikacije.</string>
|
||||
<string name="contains_duplicate_uuid">Baza podataka sadrži duplirane UUID-ove.</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Rešiti problem generisanjem novih UUID-ova za nastavak duplikata?</string>
|
||||
<string name="search_mode">Režim pretrage</string>
|
||||
<string name="selection_mode">Režim izbora</string>
|
||||
<string name="parallelism">Paralelizam</string>
|
||||
<string name="parallelism_explanation">Stepen paralelizma (tj. broj niti) koji koristi funkcija izvođenja ključa.</string>
|
||||
<string name="saving_database">Čuvanje baze podataka…</string>
|
||||
</resources>
|
||||
@@ -52,8 +52,7 @@
|
||||
<string name="select_to_copy">複製%1$s去剪貼簿</string>
|
||||
<string name="default_checkbox">用作預設資料庫</string>
|
||||
<string name="digits">數字</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft;呢個係<strong>冇廣告</strong>嘅<strong>開源</strong>軟件。
|
||||
\n你可以喺遵循<strong>GPL 3</strong>或者更高版本嘅情況下重新發佈,而Kunzisoft對此不帶有任何擔保。</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft;呢個係<strong>冇廣告</strong>嘅<strong>開源</strong>軟件。 \n你可以喺遵循<strong>GPL 3</strong>或者更高版本嘅情況下重新發佈,而Kunzisoft對此不帶有任何擔保。</string>
|
||||
<string name="html_about_privacy"><strong>唔收集用戶資料。</strong>,呢個應用程式唔會連接任何伺服器,只會喺裝置上運作,完全尊重用戶私穩。</string>
|
||||
<string name="html_about_contribution">為程式能夠<strong>保持自主</strong>、<strong>修復漏洞</strong>、<strong>新增功能</strong>同<strong>保持持續開發</strong>,有賴你的<strong>貢獻</strong>。</string>
|
||||
<string name="entry_confpassword">確認密碼</string>
|
||||
@@ -90,7 +89,7 @@
|
||||
<string name="entry_otp">OTP</string>
|
||||
<string name="error_arc4">唔支援Arcfour stream密碼。</string>
|
||||
<string name="error_can_not_handle_uri">KeePassDX 處理唔到呢個網址。</string>
|
||||
<string name="error_file_not_create">新增唔到檔案</string>
|
||||
<string name="error_file_not_create">新增唔到檔案。</string>
|
||||
<string name="error_invalid_db">讀取唔到資料庫。</string>
|
||||
<string name="error_invalid_path">請確保路徑正確。</string>
|
||||
<string name="error_invalid_OTP">無效 OTP 密鑰。</string>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<string name="contribution">Участие</string>
|
||||
<string name="entry_UUID">Идентификатор</string>
|
||||
<string name="entry_history">История</string>
|
||||
<string name="copy_field">%1$s копие</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>
|
||||
@@ -235,8 +235,7 @@
|
||||
<string name="menu_appearance_settings_summary">Теми, цветове, атрибути</string>
|
||||
<string name="download_initialization">Подготвяне…</string>
|
||||
<string name="content_description_entry_background_color">Цвят на фона на запис</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft е приложение с <strong>отворен код</strong> и <strong>без реклами</strong>.
|
||||
\nРазпространява се под лиценза <strong>GPLv3</strong> без каквато и да е гаранция.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft е приложение с <strong>отворен код</strong> и <strong>без реклами</strong>. \nРазпространява се под лиценза <strong>GPLv3</strong> без каквато и да е гаранция.</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Биометрия, удостоверяване</string>
|
||||
<string name="menu_security_settings_summary">Шифроване, функция за извличане на ключ</string>
|
||||
<string name="menu_master_key_settings">Настройки на главната парола</string>
|
||||
@@ -299,7 +298,7 @@
|
||||
<string name="settings_database_force_changing_master_key_title">Принудителна смяна</string>
|
||||
<string name="database_name_title">Име на хранилището</string>
|
||||
<string name="database_description_title">Описание на хранилището</string>
|
||||
<string name="magic_keyboard_title">Magikeyboard</string>
|
||||
<string name="magic_keyboard_title">Настройки на Magikeyboard</string>
|
||||
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
|
||||
<string name="keyboard_entry_category">Запис</string>
|
||||
<string name="keyboard_appearance_category">Външен вид</string>
|
||||
@@ -457,12 +456,12 @@
|
||||
<string name="html_text_dev_feature_upgrade">Не забравяйте да обновявате приложението.</string>
|
||||
<string name="html_text_dev_feature_encourage">вие поощрявате разработчиците да добавят <strong>нови възможности</strong> и да <strong>отстраняват дефекти</strong> според вашите отзиви.</string>
|
||||
<string name="html_text_buy_pro">Купувайки версията Pro ще имате достъп до тази <strong>тема</strong> и особено ще помогнете за <strong>изпълнението на проекти на общността</strong>.</string>
|
||||
<string name="html_text_donation">За да развиваме проекта и да запазим неговата независимост се нуждаем от вашата <strong>поддръжка</strong>.</string>
|
||||
<string name="html_text_donation">Като <strong>допринасяте</strong> за проекта <i>(финансово, с код или преводи)</i> му помагате да живее и процъвтява, а също получавате процедурата за отключване на <strong>темите</strong>.</string>
|
||||
<string name="hint_keyfile">Файл с ключ</string>
|
||||
<string name="invalid_algorithm">Грешен алгоритъм.</string>
|
||||
<string name="description_app_properties">Свойства за управление на настройките на KeePassDX</string>
|
||||
<string name="success_export_app_properties">Настройките на приложението са изнесени</string>
|
||||
<string name="error_export_app_properties">Грешка при изнасяне на настройки</string>
|
||||
<string name="error_export_app_properties">Грешка при изнасяне на настройки.</string>
|
||||
<string name="error_invalid_OTP">Неприемлива тайна за OTP.</string>
|
||||
<string name="error_no_name">Въведете име.</string>
|
||||
<string name="hide_broken_locations_summary">Скрива вече несъществуващи хранилища от списъка с последно отваряните</string>
|
||||
@@ -479,7 +478,7 @@
|
||||
<string name="encryption_explanation">Алгоритъм за шифроване на цялата информация</string>
|
||||
<string name="memory_usage">Използвана памет</string>
|
||||
<string name="error_invalid_path">Уверете се, че пътят е правилен.</string>
|
||||
<string name="error_import_app_properties">Грешка при внасяне на настройки</string>
|
||||
<string name="error_import_app_properties">Грешка при внасяне на настройки.</string>
|
||||
<string name="parallelism">Паралелно изпълняване</string>
|
||||
<string name="success_import_app_properties">Настройките на приложението са внесени</string>
|
||||
<string name="read_only_warning">В зависимост от приложението за управление на файлове, KeePassDX може да няма права да пише в паметта на устройството.</string>
|
||||
@@ -499,7 +498,7 @@
|
||||
<string name="lock_database_screen_off_title">Заключване на екрана</string>
|
||||
<string name="database_data_remove_unlinked_attachments_title">Премахване на несвързани данни</string>
|
||||
<string name="warning_sure_add_file">Добавяне на файла въпреки това?</string>
|
||||
<string name="error_unable_merge_database_kdb">Обединяване от хранилище V1 е невъзможно.</string>
|
||||
<string name="error_unable_merge_database_kdb">Не е възможно обединяване с хранилище във формат KBD.</string>
|
||||
<string name="memory_usage_explanation">Количество памет, използвана от функцията за извличане на ключове.</string>
|
||||
<string name="warning_database_already_opened">Има отворено хранилище, затворете го, за да отворите друго</string>
|
||||
<string name="warning_replace_file">При добавяне на този файл ще бъде заменен вече съществуващ.</string>
|
||||
@@ -509,7 +508,7 @@
|
||||
<string name="merge_success">Обединяването е завършено</string>
|
||||
<string name="configure">Настройка</string>
|
||||
<string name="unavailable">Недостъпно</string>
|
||||
<string name="database_opened">Хранилището е отвоерно</string>
|
||||
<string name="database_opened">Хранилището е отключено</string>
|
||||
<string name="ask">Питане</string>
|
||||
<string name="list_password_generator_options_summary">Задава набора от разрешени знаци за създаване на парола</string>
|
||||
<string name="later">По-късно</string>
|
||||
@@ -572,7 +571,7 @@
|
||||
<string name="error_disallow_no_credentials">Трябва да има зададена най-малко една парола.</string>
|
||||
<string name="error_pass_match">Паролите се различават.</string>
|
||||
<string name="error_string_type">Текстът не съвпада с търсения елемент.</string>
|
||||
<string name="error_registration_read_only">Нов запис не може да бъде добавен в хранилище, отворено само за четене</string>
|
||||
<string name="error_registration_read_only">Нов запис не може да бъде добавен в хранилище, отворено само за четене.</string>
|
||||
<string name="error_start_database_action">Възникна грешка при извършване на действие с хранилището.</string>
|
||||
<string name="keyboard_entry_timeout_title">Време за изчакване</string>
|
||||
<string name="autofill_application_id_blocklist_title">Черен списък на приложения</string>
|
||||
@@ -679,4 +678,11 @@
|
||||
<string name="style_name_light">Светла</string>
|
||||
<string name="style_name_dark">Тъмна</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Презаредете последните промени в хранилището.</string>
|
||||
<string name="generate_keyfile">Създаване на файл с ключ</string>
|
||||
<string name="nodes">Възли</string>
|
||||
<string name="recursive_number_entries_summary">Изчислява броя на всички записи в групата</string>
|
||||
<string name="recursive_number_entries_title">Брой на записите</string>
|
||||
<string name="warning_large_keyfile">Не се препоръчва използването на голям файл с ключ, защото може да попречи на отварянето на хранилището.</string>
|
||||
<string name="hide_templates_summary">Шаблоните не се показват</string>
|
||||
<string name="hide_templates_title">Скриване на шаблоните</string>
|
||||
</resources>
|
||||
@@ -155,8 +155,8 @@
|
||||
<string name="version">সংস্করণ</string>
|
||||
<string name="error_arc4">আর্কফোর স্ট্রিম সাইফার সমর্থিত নয়।</string>
|
||||
<string name="error_can_not_handle_uri">KeePassDX-এ এই URI পরিচালনা করা যায়নি।</string>
|
||||
<string name="error_file_not_create">ফাইল তৈরি করা যায়নি</string>
|
||||
<string name="error_invalid_db">ডাটাবেস পড়া যায়নি.</string>
|
||||
<string name="error_file_not_create">ফাইল তৈরি করা যায়নি।</string>
|
||||
<string name="error_invalid_db">ডাটাবেস পড়া যায়নি।</string>
|
||||
<string name="error_invalid_path">পথ সঠিক কিনা নিশ্চিত করুন।</string>
|
||||
<string name="error_invalid_OTP">অবৈধ OTP গোপন.</string>
|
||||
<string name="error_no_name">একটি নাম লিখুন।</string>
|
||||
@@ -169,7 +169,7 @@
|
||||
<string name="error_copy_entry_here">আপনি এখানে একটি এন্ট্রি কপি করতে পারবেন না.</string>
|
||||
<string name="error_copy_group_here">আপনি এখানে একটি গ্রুপ অনুলিপি করতে পারবেন না.</string>
|
||||
<string name="error_create_database">ডাটাবেস ফাইল তৈরি করতে অক্ষম।</string>
|
||||
<string name="error_create_database_file">এই পাসওয়ার্ড এবং কীফাইল দিয়ে ডাটাবেস তৈরি করতে অক্ষম৷</string>
|
||||
<string name="error_create_database_file">এই পাসওয়ার্ড এবং কীফাইল দিয়ে ডাটাবেস তৈরি করতে অক্ষম৷।</string>
|
||||
<string name="error_move_group_here">আপনি এখানে একটি গ্রুপ সরাতে পারবেন না.</string>
|
||||
<string name="error_otp_type">বিদ্যমান OTP প্রকারটি এই ফর্ম দ্বারা স্বীকৃত নয়, এর বৈধতা আর সঠিকভাবে টোকেন তৈরি করতে পারে না।</string>
|
||||
<string name="error_string_type">এই পাঠ্যটি অনুরোধ করা আইটেমের সাথে মেলে না।</string>
|
||||
@@ -263,8 +263,8 @@
|
||||
<string name="error_rebuild_list">সঠিকভাবে তালিকা পুনর্নির্মাণ করতে অক্ষম.</string>
|
||||
<string name="error_duplicate_file">ফাইল ডেটা ইতিমধ্যেই বিদ্যমান।</string>
|
||||
<string name="error_response_already_provided">প্রতিক্রিয়া ইতিমধ্যে প্রদান করা হয়েছে.</string>
|
||||
<string name="error_driver_required">%1$s এর জন্য ড্রাইভার প্রয়োজন৷</string>
|
||||
<string name="error_unable_merge_database_kdb">একটি ডাটাবেস V1 থেকে মার্জ করতে অক্ষম৷</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="error_hardware_key_unsupported">হার্ডওয়্যার কী সমর্থিত নয়।</string>
|
||||
<string name="error_empty_key">কী খালি হতে পারে না।</string>
|
||||
@@ -337,12 +337,12 @@
|
||||
<string name="menu_empty_recycle_bin">রিসাইকেল বিন খালি করুন</string>
|
||||
<string name="menu_restore_entry_history">ইতিহাস পুনরুদ্ধার করুন</string>
|
||||
<string name="rounds_explanation">অতিরিক্ত এনক্রিপশন রাউন্ডগুলি ব্রুট ফোর্স অ্যাটাকগুলির বিরুদ্ধে উচ্চ সুরক্ষা প্রদান করে, তবে এটি সত্যিই লোড এবং সংরক্ষণকে ধীর করে দিতে পারে।</string>
|
||||
<string name="error_export_app_properties">অ্যাপ্লিকেশন বৈশিষ্ট্য রপ্তানি সময় ত্রুটি</string>
|
||||
<string name="error_export_app_properties">অ্যাপ্লিকেশন বৈশিষ্ট্য রপ্তানি সময় ত্রুটি।</string>
|
||||
<string name="command_execution">কমান্ড কার্যকর করা হচ্ছে…</string>
|
||||
<string name="export_app_properties_title">অ্যাপের বৈশিষ্ট্য রপ্তানি করুন</string>
|
||||
<string name="export_app_properties_summary">অ্যাপের বৈশিষ্ট্য রপ্তানি করতে একটি ফাইল তৈরি করুন</string>
|
||||
<string name="description_app_properties">অ্যাপ সেটিংস পরিচালনা করতে KeePassDX বৈশিষ্ট্য</string>
|
||||
<string name="error_import_app_properties">অ্যাপ বৈশিষ্ট্য আমদানির সময় ত্রুটি</string>
|
||||
<string name="error_import_app_properties">অ্যাপ বৈশিষ্ট্য আমদানির সময় ত্রুটি।</string>
|
||||
<string name="warning_database_already_opened">একটি ডাটাবেস ইতিমধ্যেই খোলা আছে, নতুনটি খুলতে প্রথমে এটি বন্ধ করুন</string>
|
||||
<string name="warning_empty_keyfile_explanation">কীফাইলের বিষয়বস্তু কখনই পরিবর্তন করা উচিত নয় এবং সর্বোত্তম ক্ষেত্রে, এলোমেলোভাবে উৎপন্ন ডেটা থাকা উচিত।</string>
|
||||
<string name="warning_remove_unlinked_attachment">আনলিঙ্ক করা ডেটা মুছে দিলে আপনার ডাটাবেসের আকার কমে যেতে পারে কিন্তু KeePass প্লাগইনগুলির জন্য ব্যবহৃত ডেটাও মুছে যেতে পারে।</string>
|
||||
@@ -354,14 +354,14 @@
|
||||
<string name="waiting_challenge_response">চ্যালেঞ্জের প্রতিক্রিয়ার জন্য অপেক্ষা করা হচ্ছে…</string>
|
||||
<string name="template_group_name">টেমপ্লেট</string>
|
||||
<string name="save">সংরক্ষণ</string>
|
||||
<string name="error_remove_file">ফাইল ডেটা সরানোর সময় একটি ত্রুটি ঘটেছে৷</string>
|
||||
<string name="error_start_database_action">ডাটাবেসে একটি ক্রিয়া সম্পাদন করার সময় একটি ত্রুটি ঘটেছে৷</string>
|
||||
<string name="error_challenge_already_requested">চ্যালেঞ্জ ইতিমধ্যে অনুরোধ করা হয়েছে</string>
|
||||
<string name="error_remove_file">ফাইল ডেটা সরানোর সময় একটি ত্রুটি ঘটেছে৷।</string>
|
||||
<string name="error_start_database_action">ডাটাবেসে একটি ক্রিয়া সম্পাদন করার সময় একটি ত্রুটি ঘটেছে৷।</string>
|
||||
<string name="error_challenge_already_requested">চ্যালেঞ্জ ইতিমধ্যে অনুরোধ করা হয়েছে।</string>
|
||||
<string name="error_otp_secret_key">গোপন কী অবশ্যই বেস 32 ফর্ম্যাটে হতে হবে।</string>
|
||||
<string name="error_otp_counter">কাউন্টার অবশ্যই %1$d এবং %2$d এর মধ্যে হতে হবে।</string>
|
||||
<string name="error_otp_period">সময়কাল %1$d এবং %2$d সেকেন্ডের মধ্যে হতে হবে।</string>
|
||||
<string name="error_otp_digits">টোকেনে %1$d থেকে %2$d সংখ্যা থাকতে হবে।</string>
|
||||
<string name="error_upload_file">ফাইল ডেটা আপলোড করার সময় একটি ত্রুটি ঘটেছে৷</string>
|
||||
<string name="error_upload_file">ফাইল ডেটা আপলোড করার সময় একটি ত্রুটি ঘটেছে৷।</string>
|
||||
<string name="error_save_database">ডাটাবেস সংরক্ষণ করা যায়নি.</string>
|
||||
<string name="parallelism_explanation">কী ডেরিভেশন ফাংশন দ্বারা ব্যবহৃত সমান্তরালতার ডিগ্রি (যেমন থ্রেডের সংখ্যা)।</string>
|
||||
<string name="saving_database">ডাটাবেস সংরক্ষণ করা হচ্ছে…</string>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<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">Es requereix un gestor de fitxers 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="file_manager_install_description">Cal crear un gestor de fitxers que accepti les accions intencionals ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT per 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>
|
||||
@@ -58,7 +58,7 @@
|
||||
<string name="entry_user_name">Nom d’usuari</string>
|
||||
<string name="error_arc4">No s’admet el xifratge de flux Arcfour.</string>
|
||||
<string name="error_can_not_handle_uri">El KeePassDX no pot gestionar aquest URI.</string>
|
||||
<string name="error_file_not_create">No s’ha pogut crear el fitxer</string>
|
||||
<string name="error_file_not_create">No s’ha pogut crear el fitxer.</string>
|
||||
<string name="error_invalid_db">No s’ha pogut llegir la base de dades.</string>
|
||||
<string name="error_invalid_path">Assegureu-vos que el camí és correcte.</string>
|
||||
<string name="error_no_name">Introduïu-hi un nom.</string>
|
||||
@@ -283,7 +283,7 @@
|
||||
<string name="error_rebuild_list">La llista no s\'ha pogut reconstruir correctament.</string>
|
||||
<string name="error_database_uri_null">No es pot recuperar l\'URI de la base de dades.</string>
|
||||
<string name="error_field_name_already_exists">El nom del camp ja existeix.</string>
|
||||
<string name="error_registration_read_only">No es permet desar un element nou en una base de dades de només lectura</string>
|
||||
<string name="error_registration_read_only">No es permet desar un element nou en una base de dades de només lectura.</string>
|
||||
<string name="error_string_type">Aquest text no coincideix amb l\'element sol·licitat.</string>
|
||||
<string name="error_otp_type">L\'OTP existent no està reconegut per aquest formulari, la seva validació ja no pot generar correctament el testimoni.</string>
|
||||
<string name="error_create_database_file">No s’ha pogut crear una base de dades amb aquesta contrasenya i fitxer de clau.</string>
|
||||
@@ -328,7 +328,7 @@
|
||||
<string name="icon_pack_choose_title">Paquet d’icones</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="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>
|
||||
@@ -368,7 +368,7 @@
|
||||
<string name="navigation_drawer_open">El calaix de navegació està obert</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="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>
|
||||
@@ -380,7 +380,7 @@
|
||||
<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="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>
|
||||
@@ -459,7 +459,7 @@
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Us haureu de recordar de la credencial principal de la caixa forta en el cas que feu servir el reconeixement del dispositiu pel desbloqueig.</string>
|
||||
<string name="secure_note">Nota segura</string>
|
||||
<string name="error_file_to_big">El fitxer que esteu intentant pujar és massa gros.</string>
|
||||
<string name="error_challenge_already_requested">El desafiament ja s\'ha sol·licitat</string>
|
||||
<string name="error_challenge_already_requested">El desafiament ja s\'ha sol·licitat.</string>
|
||||
<string name="error_cancel_by_user">S\'ha cancel·lat per l\'usuari.</string>
|
||||
<string name="error_driver_required">Es requereix un controlador per %1$s.</string>
|
||||
<string name="warning_empty_recycle_bin">Voleu suprimir permanentment tots els nodes de la paperera de reciclatge?</string>
|
||||
@@ -563,7 +563,7 @@
|
||||
\nEls grups (carpetes) organitzen entrades a la base de dades.</string>
|
||||
<string name="download_attachment">Baixa %1$s</string>
|
||||
<string name="download_progression">En curs: %1$d%%</string>
|
||||
<string name="download_complete">S\'ha completat.</string>
|
||||
<string name="download_complete">S\'ha completat!</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Extreu la credencial de la base de dades amb les dades de desbloqueig del dispositiu</string>
|
||||
<string name="keyboard">Teclat</string>
|
||||
<string name="magic_keyboard_title">Magikeyboard</string>
|
||||
@@ -591,7 +591,7 @@
|
||||
<string name="remember_keyfile_locations_summary">Fa un seguiment d\'on s\'emmagatzemen els fitxers de claus</string>
|
||||
<string name="hide_broken_locations_title">Amaga els enllaços trencats de la base de dades</string>
|
||||
<string name="autofill_manual_selection_summary">Mostra l\'opció de permetre que l\'usuari seleccioni l\'entrada de la base de dades</string>
|
||||
<string name="download_canceled">S\'ha cancel·lat.</string>
|
||||
<string name="download_canceled">S\'ha cancel·lat!</string>
|
||||
<string name="do_not_kill_app">No matis l\'aplicació…</string>
|
||||
<string name="lock_database_screen_off_title">Bloqueig de pantalla</string>
|
||||
<string name="at_least_one_char">Com a mínim un caràcter de cada</string>
|
||||
@@ -660,8 +660,40 @@
|
||||
<string name="education_unlock_title">Desbloqueja la base de dades</string>
|
||||
<string name="education_setup_OTP_summary">Configureu la gestió de contrasenyes d\'un sol ús (HOTP / TOTP) per generar un testimoni sol·licitat per a l\'autenticació de dos factors (2FA).</string>
|
||||
<string name="education_field_copy_title">Copia un camp</string>
|
||||
<string name="html_text_donation">Per tal de mantenir la nostra llibertat i estar sempre actius, comptem amb la seva <strong>aportació. </strong></string>
|
||||
<string name="html_text_donation">Al <strong>contribuir</strong> al projecte <i>(monetàriament, codi, traducció)</i>, l\'ajudareu a continuar vivint i prosperant, i també podreu optar al procediment de desbloqueig del <strong>tema</strong>.</string>
|
||||
<string name="upload_attachment">Puja %1$s</string>
|
||||
<string name="download_finalization">S\'està finalitzant…</string>
|
||||
<string name="entropy">Entropia: %1$s bit</string>
|
||||
<string name="warning_exact_alarm">No heu permès que l\'aplicació utilitzi una alarma exacta. Com a resultat, les característiques que requereixen un temporitzador no es faran amb un temps exacte.</string>
|
||||
<string name="warning_keyfile_integrity">El hash del fitxer no està garantit perquè Android pot canviar les seves dades al moment. Canvia l\'extensió del fitxer a .bin per a una integritat correcta.</string>
|
||||
<string name="html_text_ad_free">A diferència de moltes aplicacions de gestió de contrasenyes, aquest un és un <strong>programari sense anuncis</strong>, <strong> copyleft i lliure</strong> i no recull dades personals en els seus servidors, no importa quina versió utilitzeu.</string>
|
||||
<string name="education_field_copy_summary">Els camps copiats es poden enganxar en qualsevol lloc.\n\nUtilitza el mètode d\'emplenament de formularis que prefereixis.</string>
|
||||
<string name="generate_keyfile">Genera un fitxer de claus</string>
|
||||
<string name="nodes">Nodes</string>
|
||||
<string name="recursive_number_entries_summary">Calcula recursivament el nombre d\'entrades d\'un grup</string>
|
||||
<string name="warning_large_keyfile">No es recomana afegir un fitxer de claus gran, això pot impedir que s\'obri la base de dades.</string>
|
||||
<string name="education_lock_summary">Bloqueja la base de dades ràpidament, pots configurar l\'aplicació per bloquejar-la al cap d\'un temps, i quan la pantalla s\'apagui.</string>
|
||||
<string name="recursive_number_entries_title">Nombre recursiu d\'entrades</string>
|
||||
<string name="advanced_unlock_keystore_warning">Aquesta característica emmagatzemarà dades de credencials encriptades a l\'espai segur KeyStore del vostre dispositiu.\n\nDepenent de la implementació nativa de l\'API del sistema operatiu, pot no ser completament funcional.\n\nComprova la compatibilitat i seguretat de KeyStore amb el fabricant del teu dispositiu i el creador de la ROM que estàs utilitzant.</string>
|
||||
<string name="kdf_explanation">Per a generar la clau per a l\'algorisme d\'encriptació, la clau mestra es transforma utilitzant una funció de derivació de clau sal aleatòria.</string>
|
||||
<string name="education_validate_entry_summary">Recordeu validar la vostra entrada i desar la vostra base de dades.\n\nSi s\'activa un bloqueig automàtic i t\'oblides que estaves fent una modificació, t\'arrisques a perdre les teves dades.</string>
|
||||
<string name="education_read_only_summary">Canvieu el mode inaugural per a la sessió. \n \n\"Escriu-emparat\" impedeix canvis involuntaris a la base de dades. \n\"Modificable\" us permet afegir, eliminar o modificar tots els elements com vulgueu.</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Torna a carregar la base de dades amb els darrers canvis.</string>
|
||||
<string name="warning_database_notification_permission">El permís de notificació permet mostrar l\'estat de la base de dades i bloquejar-la amb un botó de fàcil accés.\n\nSi no activeu aquest permís, la base de dades oberta en segon pla no serà visible si hi ha una altra aplicació en primer pla.</string>
|
||||
<string name="html_text_buy_pro">En comprar la versió pro, tindreu accés a aquest <strong> estil visual</strong> i sereu ajundant especialment <strong> a la realització de projectes comunitaris.</strong></string>
|
||||
<string name="html_text_dev_feature">Aquesta característica és <strong>en desenvolupament</strong> i requereix que la vostra <strong>contribució</strong> estigui disponible aviat.</string>
|
||||
<string name="style_name_forest">Bosc</string>
|
||||
<string name="style_name_divine">Divina</string>
|
||||
<string name="style_name_classic">Clàssic</string>
|
||||
<string name="style_name_reply">Respondre</string>
|
||||
<string name="style_name_kunzite">Kunzite</string>
|
||||
<string name="style_name_follow_system">Seguiu el sistema</string>
|
||||
<string name="hide_templates_title">Amaga les plantilles</string>
|
||||
<string name="hide_templates_summary">Les plantilles no són mostrades</string>
|
||||
<string name="html_text_dev_feature_encourage">esteu animant a qui desenvolupa a crear <strong>noves funcions</strong> i a <strong>corregir errors</strong> segons les vostres observacions.</string>
|
||||
<string name="style_name_simple">Simple</string>
|
||||
<string name="style_name_moon">Lluna</string>
|
||||
<string name="style_name_sun">Sol</string>
|
||||
<string name="style_name_light">Clar</string>
|
||||
<string name="style_name_dark">Obscur</string>
|
||||
</resources>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
<string name="entry_user_name">Uživatelské jméno</string>
|
||||
<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_file_not_create">Soubor se nepodařilo vytvořit.</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>
|
||||
@@ -266,7 +266,7 @@
|
||||
<string name="html_text_ad_free">Na rozdíl od mnoha aplikací pro správu hesel je tato <strong>bez reklam</strong>, je <strong>svobodný software pod copyleft licencí</strong> a nesbírá žádné osobní údaje na svých serverech bez ohledu na to, jakou verzi používáte.</string>
|
||||
<string name="html_text_buy_pro">Zakoupením varianty \"pro\" získáte přístup k tomuto <strong>vizuálnímu stylu</strong> a hlavně pomůžete <strong>uskutečnění komunitních projektů.</strong></string>
|
||||
<string name="html_text_feature_generosity">Tento <strong>vizuální styl</strong> je k dispozici díky vaší štědrosti.</string>
|
||||
<string name="html_text_donation">Pro zajištění svobody nás všech a pokračování aktivity počítáme s Vaším <strong>přispěním.</strong></string>
|
||||
<string name="html_text_donation"><strong>Přispěním</strong> do projektu <i>(peněžně, kódem, překlady)</i> mu pomůžete žít a prosperovat a dostanete přístup k postupu odemčení <strong>motivů</strong>.</string>
|
||||
<string name="html_text_dev_feature">Tato funkce je <strong>ve vývoji</strong> a potřebuje Váš <strong>příspěvek</strong>, aby byla brzy k dispozici.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">Zakoupením <strong>pro</strong> varianty,</string>
|
||||
<string name="html_text_dev_feature_contibute"><strong>Podpořením vývoje</strong>,</string>
|
||||
@@ -484,10 +484,10 @@
|
||||
<string name="configure_biometric">Žádné přihlašovací ani biometrické údaje nejsou registrovány.</string>
|
||||
<string name="warning_empty_recycle_bin">Trvale odstranit všechny uzly z koše\?</string>
|
||||
<string name="registration_mode">Registrace</string>
|
||||
<string name="save_mode">Uložit</string>
|
||||
<string name="save_mode">Režim ukládání</string>
|
||||
<string name="search_mode">Vyhledávání</string>
|
||||
<string name="error_field_name_already_exists">Jméno kolonky již existuje.</string>
|
||||
<string name="error_registration_read_only">Uložení nové položky v režimu databáze pouze pro čtení není dovoleno</string>
|
||||
<string name="error_registration_read_only">Uložení nové položky v režimu databáze pouze pro čtení není dovoleno.</string>
|
||||
<string name="enter">Enter</string>
|
||||
<string name="backspace">Backspace</string>
|
||||
<string name="select_entry">Vybrat záznam</string>
|
||||
@@ -539,9 +539,9 @@
|
||||
<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 nastavení aplikace došlo k chybě</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="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">Vytvořte soubor pro export nastavení aplikace</string>
|
||||
@@ -649,12 +649,12 @@
|
||||
<string name="html_about_privacy"><strong>Nenačítají se žádná uživatelská data</strong>, tato aplikace se nespojuje s žádnými servery, pracuje pouze lokálně a plně respektuje soukromí uživatelů.</string>
|
||||
<string name="hardware_key">Hardwarový klíč</string>
|
||||
<string name="error_XML_malformed">XML chybný.</string>
|
||||
<string name="error_challenge_already_requested">Výzva byla již vyžádána</string>
|
||||
<string name="error_challenge_already_requested">Výzva byla již vyžádána.</string>
|
||||
<string name="error_response_already_provided">Odpověď byla již poskytnuta.</string>
|
||||
<string name="error_no_response_from_challenge">Odezvu nelze z výzvy obdržet.</string>
|
||||
<string name="error_cancel_by_user">Zrušeno uživatelem.</string>
|
||||
<string name="error_driver_required">Ovladač pro %1$s je nutný.</string>
|
||||
<string name="error_unable_merge_database_kdb">Spojení z databáze V1 nelze provést.</string>
|
||||
<string name="error_unable_merge_database_kdb">Nepodařilo se sloučit s databázovým souborem kdb.</string>
|
||||
<string name="error_hardware_key_unsupported">Hardwarový klíč není podporován.</string>
|
||||
<string name="error_empty_key">Klíč nemůže být prázdný.</string>
|
||||
<string name="enable_screenshot_mode_title">Režim screenshotu</string>
|
||||
@@ -702,4 +702,11 @@
|
||||
<string name="style_name_light">Světlý</string>
|
||||
<string name="style_name_dark">Tmavý</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Znovu načíst databázi s posledními změnami.</string>
|
||||
<string name="nodes">Uzly</string>
|
||||
<string name="generate_keyfile">Vygenerovat klíčový soubor</string>
|
||||
<string name="recursive_number_entries_title">Rekurzivní počet záznamů</string>
|
||||
<string name="recursive_number_entries_summary">Rekurzivně vypočítá počet záznamů ve skupině</string>
|
||||
<string name="warning_large_keyfile">Nedoporučuje se přidávat velký klíčový soubor, mohlo by to zabránit otevření databáze.</string>
|
||||
<string name="hide_templates_title">Skrýt šablony</string>
|
||||
<string name="hide_templates_summary">Šablony nejsou zobrazeny</string>
|
||||
</resources>
|
||||
@@ -58,7 +58,7 @@
|
||||
<string name="entry_user_name">Brugernavn</string>
|
||||
<string name="error_arc4">Arcfour stream cipher er ikke understøttet.</string>
|
||||
<string name="error_can_not_handle_uri">Kunne ikke håndtere denne URI i KeePassDX.</string>
|
||||
<string name="error_file_not_create">Kunne ikke oprette fil</string>
|
||||
<string name="error_file_not_create">Kunne ikke oprette fil.</string>
|
||||
<string name="error_invalid_db">Kunne ikke læse databasen.</string>
|
||||
<string name="error_invalid_path">Sørg for, at stien er korrekt.</string>
|
||||
<string name="error_no_name">Indtast et navn.</string>
|
||||
@@ -441,7 +441,7 @@
|
||||
<string name="autofill_application_id_blocklist_summary">Blokeringsliste der forhindrer automatisk udfyldning af apps</string>
|
||||
<string name="autofill_application_id_blocklist_title">Blokeringsliste for applikation</string>
|
||||
<string name="keyboard_previous_fill_in_summary">Skift automatisk tilbage til det forrige tastatur efter udførelse af \"Automatisk tastehandling\"</string>
|
||||
<string name="keyboard_previous_fill_in_title">Automatisk tastehandling</string>
|
||||
<string name="keyboard_previous_fill_in_title">Skift tilbage</string>
|
||||
<string name="keyboard_previous_database_credentials_summary">Skift automatisk tilbage til det forrige tastatur på databasens legitimationsskærm</string>
|
||||
<string name="keyboard_previous_database_credentials_title">Skærm til databaselegitimationsoplysninger</string>
|
||||
<string name="keyboard_change">Skift tastatur</string>
|
||||
@@ -481,7 +481,7 @@
|
||||
<string name="registration_mode">Registreringstilstand</string>
|
||||
<string name="save_mode">Gem-tilstand</string>
|
||||
<string name="search_mode">Søgetilstand</string>
|
||||
<string name="error_registration_read_only">Det er ikke tilladt at gemme et nyt element i en skrivebeskyttet database</string>
|
||||
<string name="error_registration_read_only">Det er ikke tilladt at gemme et nyt element i en skrivebeskyttet database.</string>
|
||||
<string name="content_description_credentials_information">Legitimationsoplysninger</string>
|
||||
<string name="configure_biometric">Der er ikke tilmeldt biometriske legitimationsoplysninger eller enhedsoplysninger.</string>
|
||||
<string name="education_add_attachment_summary">Overfør en vedhæftet fil til posten for at gemme vigtige eksterne data.</string>
|
||||
@@ -497,12 +497,12 @@
|
||||
<string name="unit_kibibyte">KiB</string>
|
||||
<string name="unit_byte">B</string>
|
||||
<string name="download_canceled">Annulleret!</string>
|
||||
<string name="education_advanced_unlock_title">Avanceret database-oplåsning</string>
|
||||
<string name="education_advanced_unlock_title">Database-oplåsning</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Forslag til autofyld tilføjet.</string>
|
||||
<string name="select_entry">Vælg post</string>
|
||||
<string name="back_to_previous_keyboard">Tilbage til forrige tastatur</string>
|
||||
<string name="custom_fields">Brugerdefinerede felter</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Slet alle krypteringsnøgler relateret til avanceret oplåsningsgenkendelse\?</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Seletealle krypteringsnøgler relateret til enhedsoplåsningsgenkendelse?</string>
|
||||
<string name="advanced_unlock_tap_delete">Tryk for at slette enhedens oplåsningsnøgler</string>
|
||||
<string name="content">Indhold</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Indtast adgangskoden, og klik derefter på denne knap.</string>
|
||||
@@ -542,9 +542,9 @@
|
||||
<string name="temp_advanced_unlock_enable_title">Midlertidig oplåsning af enhed</string>
|
||||
<string name="device_credential">Enhedens legitimation</string>
|
||||
<string name="properties">Egenskaber</string>
|
||||
<string name="error_export_app_properties">Fejl under eksport af app-indstillinger</string>
|
||||
<string name="error_export_app_properties">Fejl under eksport af app-indstillinger.</string>
|
||||
<string name="success_export_app_properties">App-indstillinger eksporteret</string>
|
||||
<string name="error_import_app_properties">Fejl under importering af app-indstillinger</string>
|
||||
<string name="error_import_app_properties">Fejl under importering af app-indstillinger.</string>
|
||||
<string name="success_import_app_properties">App-indstillinger importeret</string>
|
||||
<string name="description_app_properties">KeePassDX-egenskaber til at administrere app-indstillinger</string>
|
||||
<string name="export_app_properties_summary">Opret en fil for at eksportere app-indstillinger</string>
|
||||
@@ -591,7 +591,7 @@
|
||||
<string name="permission">Tilladelse</string>
|
||||
<string name="templates_group_uuid_title">Skabelongruppe</string>
|
||||
<string name="autofill_manual_selection_title">Manuelt valg</string>
|
||||
<string name="enable_keep_screen_on_summary">Hold skærmen tændt, når du ser på posten</string>
|
||||
<string name="enable_keep_screen_on_summary">Hold skærmen tændt, når du læser eller redigere et indlæg</string>
|
||||
<string name="enable_keep_screen_on_title">Hold skærmen tændt</string>
|
||||
<string name="keyboard_previous_search_title">Søgeskærm</string>
|
||||
<string name="keyboard_previous_search_summary">Skift automatisk tilbage til det tidligere tastatur på søgeskærmen</string>
|
||||
@@ -610,7 +610,7 @@
|
||||
<string name="error_location_unknown">Databaseplacering er ukendt, databasehandling kan ikke udføres.</string>
|
||||
<string name="error_hardware_key_unsupported">Hardwarenøgle er ikke understøttet.</string>
|
||||
<string name="error_empty_key">Nøglen må ikke være tom.</string>
|
||||
<string name="error_challenge_already_requested">Der er allerede anmodet om udfordring</string>
|
||||
<string name="error_challenge_already_requested">Der er allerede anmodet om udfordring.</string>
|
||||
<string name="error_no_response_from_challenge">Kan ikke få svaret fra udfordringen.</string>
|
||||
<string name="show_otp_token_title">Vis OTP-token</string>
|
||||
<string name="remember_hardware_key_title">Husk hardwarenøgler</string>
|
||||
@@ -645,8 +645,8 @@
|
||||
<string name="templates_group_enable_summary">Brug dynamiske skabeloner til at udfylde felterne i en post</string>
|
||||
<string name="advanced_unlock_keystore_warning">Denne funktion gemmer krypterede legitimationsdata i den sikre KeyStore på din enhed.
|
||||
\n
|
||||
\nAfhængigt af operativsystemets indbyggede API-implementering er den muligvis ikke fuldt funktionel.
|
||||
\nKontroller KeyStore\'s kompatibilitet og sikkerhed med producenten af din enhed og skaberen af den ROM, du bruger.</string>
|
||||
\nAfhængigt af operativsystemets indbyggede API-implementering er funktionen muligvis ikke fuldt funktionsdygtig.
|
||||
\nKontroller kompatibiliteten og sikkerheden af KeyStore med producenten af din enhed og skaberen af den ROM, du bruger.</string>
|
||||
<string name="entropy">Entropi: %1$s bit</string>
|
||||
<string name="consider_chars_filter">Overvej tegn</string>
|
||||
<string name="html_about_privacy"><strong>Der hentes ingen brugerdata</strong>, denne applikation opretter ikke forbindelse til nogen server, kører kun lokalt og respekterer fuldt ud brugernes privatliv.</string>
|
||||
@@ -685,4 +685,20 @@
|
||||
<string name="menu_app_settings_summary">Søg, lås, historik, egenskaber</string>
|
||||
<string name="later">Senere</string>
|
||||
<string name="menu_appearance_settings_summary">Temaer, farver, attributter</string>
|
||||
<string name="style_name_forest">Skov</string>
|
||||
<string name="style_name_divine">Guddommelig</string>
|
||||
<string name="style_name_classic">Klassisk</string>
|
||||
<string name="style_name_light">Lys</string>
|
||||
<string name="style_name_dark">Mørk</string>
|
||||
<string name="education_validate_entry_title">Bekræft ændring</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Genindlæs databasen med de seneste ændringer.</string>
|
||||
<string name="education_validate_entry_summary">Husk at validere dine indtastede data og sikre, at din database er gemt.
|
||||
\n
|
||||
\nHvis en automatisk lås aktiveres uden, at ændringerne er blevet gemt, kan det resultere i tab af data.</string>
|
||||
<string name="style_name_simple">Simpel</string>
|
||||
<string name="style_name_moon">Måne</string>
|
||||
<string name="style_name_sun">Sol</string>
|
||||
<string name="style_name_reply">Besvar</string>
|
||||
<string name="style_name_kunzite">Kunzite</string>
|
||||
<string name="style_name_follow_system">Følg systemets tilstand</string>
|
||||
</resources>
|
||||
@@ -48,12 +48,12 @@
|
||||
<string name="decrypting_db">Datenbankinhalt wird entschlüsselt …</string>
|
||||
<string name="default_checkbox">Als Standarddatenbank verwenden</string>
|
||||
<string name="digits">Stellen</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft ist <strong>quelloffen</strong> und <strong>ohne Werbung</strong>.\nDie Nutzung der Software erfolgt auf eigene Verantwortung und ohne jegliche Garantie. Die Applikation wird unter den Bedingungen der <strong>GPLv3</strong> lizenziert.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft ist <strong>quelloffen</strong> und <strong>ohne Werbung</strong>. \nDie Nutzung der Software erfolgt auf eigene Verantwortung und ohne jegliche Garantie. Die Applikation wird unter den Bedingungen der <strong>GPLv3</strong> lizenziert.</string>
|
||||
<string name="html_about_contribution">Damit wir <strong>unsere Unabhängigkeit erhalten</strong>, <strong>Fehler beheben</strong>, <strong>Funktionen hinzufügen</strong> und <strong>weiterhin aktiv bleiben</strong> können, zählen wir auf deinen <strong>Beitrag</strong>.</string>
|
||||
<string name="select_database_file">Vorhandene Datenbank öffnen</string>
|
||||
<string name="entry_accessed">Letzter Zugriff</string>
|
||||
<string name="entry_cancel">Abbrechen</string>
|
||||
<string name="entry_notes">Notizen</string>
|
||||
<string name="entry_notes">Hinweise</string>
|
||||
<string name="entry_confpassword">Passwort bestätigen</string>
|
||||
<string name="entry_created">Erstellt</string>
|
||||
<string name="entry_expires">Gültig bis</string>
|
||||
@@ -64,12 +64,12 @@
|
||||
<string name="save">Speichern</string>
|
||||
<string name="entry_title">Titel</string>
|
||||
<string name="entry_url">URL</string>
|
||||
<string name="entry_user_name">Nutzername</string>
|
||||
<string name="entry_user_name">Benutzername</string>
|
||||
<string name="error_arc4">Die RC4/Arcfour-Stromverschlüsselung wird nicht unterstützt.</string>
|
||||
<string name="error_can_not_handle_uri">KeePassDX kann diese URI-Adresse nicht verarbeiten.</string>
|
||||
<string name="error_file_not_create">Datei konnte nicht erstellt werden</string>
|
||||
<string name="error_file_not_create">Datei konnte nicht erstellt werden.</string>
|
||||
<string name="error_invalid_db">Datenbank nicht lesbar.</string>
|
||||
<string name="error_invalid_path">Stelle sicher, dass der Pfad korrekt ist.</string>
|
||||
<string name="error_invalid_path">Bitte sicherstellen, dass der Pfad korrekt ist.</string>
|
||||
<string name="error_no_name">Namen eingeben.</string>
|
||||
<string name="error_nokeyfile">Schlüsseldatei auswählen.</string>
|
||||
<string name="error_out_of_memory">Zu wenig Speicher, um die gesamte Datenbank zu laden.</string>
|
||||
@@ -80,7 +80,7 @@
|
||||
<string name="error_wrong_length">Gib eine positive ganze Zahl in das Feld „Länge“ ein.</string>
|
||||
<string name="field_name">Feldname</string>
|
||||
<string name="field_value">Feldwert</string>
|
||||
<string name="file_not_found_content">Datei nicht gefunden. Versuche sie über den Dateimanager zu öffnen.</string>
|
||||
<string name="file_not_found_content">Datei nicht gefunden. Bitte versuchen, sie über den Dateimanager zu öffnen.</string>
|
||||
<string name="file_browser">Dateimanager</string>
|
||||
<string name="generate_password">Passwort generieren</string>
|
||||
<string name="hint_conf_pass">Passwort bestätigen</string>
|
||||
@@ -124,7 +124,7 @@
|
||||
<string name="progress_title">Bearbeitung läuft …</string>
|
||||
<string name="protection">Schutz</string>
|
||||
<string name="read_only">Schreibgeschützt</string>
|
||||
<string name="read_only_warning">Abhängig von deinem Dateienmanager hat KeePassDX möglicherweise keine Schreibberechtigung.</string>
|
||||
<string name="read_only_warning">Abhängig vom Dateimanager hat KeePassDX möglicherweise keine Schreibberechtigung.</string>
|
||||
<string name="content_description_remove_from_list">Entfernen</string>
|
||||
<string name="root">Start</string>
|
||||
<string name="rounds">Verschlüsselungsrunden</string>
|
||||
@@ -174,7 +174,7 @@
|
||||
<string name="unavailable">Nicht vorhanden</string>
|
||||
<string name="encryption">Verschlüsselung</string>
|
||||
<string name="key_derivation_function">Schlüsselableitungsfunktion</string>
|
||||
<string name="extended_ASCII">Erweiterte ASCII</string>
|
||||
<string name="extended_ASCII">Erweiterter ASCII</string>
|
||||
<string name="allow">Erlauben</string>
|
||||
<string name="error_autofill_enable_service">Dienst für automatisches Ausfüllen kann nicht aktiviert werden.</string>
|
||||
<string name="copy_field">Kopie von %1$s</string>
|
||||
@@ -184,20 +184,20 @@
|
||||
<string name="memory_usage">Arbeitsspeichernutzung</string>
|
||||
<string name="memory_usage_explanation">Arbeitsspeicher, der für die Schlüsselableitung gebraucht wird.</string>
|
||||
<string name="parallelism">Parallelisierung</string>
|
||||
<string name="parallelism_explanation">Grad der Parallelisierung (d.h. Anzahl der Threads), der für die Schlüsselableitung genutzt wird.</string>
|
||||
<string name="parallelism_explanation">Grad der Parallelisierung (d. h. Anzahl der Threads), der für die Schlüsselableitung genutzt wird.</string>
|
||||
<string name="sort_menu">Sortieren</string>
|
||||
<string name="sort_ascending">Aufsteigend ↓</string>
|
||||
<string name="sort_groups_before">Gruppen oben</string>
|
||||
<string name="sort_recycle_bin_bottom">Papierkorb unten</string>
|
||||
<string name="sort_title">Titel</string>
|
||||
<string name="sort_username">Nutzername</string>
|
||||
<string name="sort_username">Benutzername</string>
|
||||
<string name="sort_creation_time">Erstellungsdatum</string>
|
||||
<string name="sort_last_modify_time">Änderungsdatum</string>
|
||||
<string name="sort_last_access_time">Zugriffsdatum</string>
|
||||
<string name="autofill">Automatisches Ausfüllen</string>
|
||||
<string name="autofill_service_name">KeePassDX Auto-Formularausfüllung</string>
|
||||
<string name="autofill_sign_in_prompt">Mit KeePassDX anmelden</string>
|
||||
<string name="set_autofill_service_title">Standard Autofill-Service festlegen</string>
|
||||
<string name="set_autofill_service_title">Standard-Autofill-Service festlegen</string>
|
||||
<string name="autofill_explanation_summary">Automatisches Ausfüllen aktivieren, um Formulare in anderen Apps schnell auszufüllen</string>
|
||||
<string name="autofill_select_entry">Eintrag auswählen …</string>
|
||||
<string name="clipboard">Zwischenablage</string>
|
||||
@@ -226,17 +226,17 @@
|
||||
<string name="education_create_database_title">Datenbankdatei erstellen</string>
|
||||
<string name="education_create_database_summary">Erste Datei zur Passwortverwaltung erstellen.</string>
|
||||
<string name="education_select_database_title">Existierende Datenbank öffnen</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_select_database_summary">Öffnet über den Dateimanager eine früher erstellte Datenbankdatei, um sie weiterzuverwenden.</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.
|
||||
<string name="education_new_node_summary">Einträge helfen, digitale Konten zu verwalten.
|
||||
\n
|
||||
\nGruppen/Ordner gliedern Einträge in der Datenbank.</string>
|
||||
<string name="education_search_title">Einträge durchsuchen</string>
|
||||
<string name="education_search_summary">Titel, Nutzernamen oder Inhalte anderer Felder eingeben, um Passwörter zu finden.</string>
|
||||
<string name="education_search_summary">Titel, Benutzernamen oder Inhalt anderer Felder eingeben, um Passwörter zu finden.</string>
|
||||
<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">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_generate_password_summary">Ein starkes Passwort, das mit dem Eintrag verbunden wird, kann einfach anhand von Formularkriterien festgelegt werden und bitte nicht vergessen dieses 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>
|
||||
@@ -250,10 +250,10 @@
|
||||
<string name="education_sort_summary">Wählen, wie Einträge und Gruppen sortiert werden.</string>
|
||||
<string name="education_donation_title">Mitmachen</string>
|
||||
<string name="education_donation_summary">Mithelfen, um Stabilität und Sicherheit zu verbessern sowie weitere Funktionen zu ermöglichen.</string>
|
||||
<string name="html_text_ad_free">Anders als viele Passwortmanager ist dieser <strong>werbefrei</strong>, <strong>quelloffen</strong>, <strong>freie Copyleft-Software</strong> und keine persönlichen Daten werden auf Servern gesammelt, egal welche Version du verwendest.</string>
|
||||
<string name="html_text_ad_free">Anders als viele Passwortmanager ist dieser <strong>werbefrei</strong>, <strong>quelloffen</strong>, <strong>freie Copyleft-Software</strong> und keine persönlichen Daten werden auf Servern gesammelt, egal welche Version man verwendet.</string>
|
||||
<string name="html_text_buy_pro">Mit dem Kauf der Pro-Version erhältst du Zugriff auf diesen <strong>visuellen Stil</strong> und unterstützt insbesondere <strong>die Umsetzung gemeinschaftlicher Projekte.</strong></string>
|
||||
<string name="html_text_feature_generosity">Dieser <strong>visuelle Stil</strong> ist dank deiner Großzügigkeit verfügbar.</string>
|
||||
<string name="html_text_donation">Um unsere Freiheit zu erhalten und stets aktiv zu bleiben, zählen wir auf deinen <strong>Beitrag.</strong></string>
|
||||
<string name="html_text_donation">Mit <strong>Beitragen</strong> zum Projekt <i>(finanziell, Code, Übersetzung)</i> wird sichergestellt, dass es weiterlebt und gedeiht, und außerdem berechtigt das für den Vorgang der <strong>Design</strong>-Freischaltung.</string>
|
||||
<string name="html_text_dev_feature">Diese Funktion ist <strong>in Entwicklung</strong> und erfordert <strong>deinen Beitrag</strong>, um bald verfügbar zu sein.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">Durch den Kauf der <strong>Pro-Version</strong>,</string>
|
||||
<string name="html_text_dev_feature_contibute">Durch deinen <strong>Beitrag</strong>,</string>
|
||||
@@ -286,9 +286,9 @@
|
||||
\nMit „Änderbar“ lässt sich jedes Element frei bearbeiten, hinzufügen oder löschen.</string>
|
||||
<string name="edit_entry">Eintrag bearbeiten</string>
|
||||
<string name="error_load_database">Die Datenbank konnte nicht geladen werden.</string>
|
||||
<string name="error_load_database_KDF_memory">Laden des Schlüssels fehlgeschlagen. Bitte versuchen, die „Speicherplatznutzung“ von KDF zu verringern.</string>
|
||||
<string name="list_entries_show_username_title">Nutzernamen anzeigen</string>
|
||||
<string name="list_entries_show_username_summary">Nutzernamen in Liste anzeigen</string>
|
||||
<string name="error_load_database_KDF_memory">Laden des Schlüssels fehlgeschlagen. Bitte versuchen, die „Arbeitsspeichernutzung“ der Schlüsselableitungsfunktion zu verringern.</string>
|
||||
<string name="list_entries_show_username_title">Benutzernamen anzeigen</string>
|
||||
<string name="list_entries_show_username_summary">Benutzernamen in Eintragslisten anzeigen</string>
|
||||
<string name="build_label">Build %1$s</string>
|
||||
<string name="keyboard_name">Magikeyboard</string>
|
||||
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
|
||||
@@ -318,7 +318,7 @@
|
||||
<string name="hide_broken_locations_title">Defekte Datenbankverknüpfungen ausblenden</string>
|
||||
<string name="hide_broken_locations_summary">Defekte Verknüpfungen in der Liste der zuletzt verwendeten Datenbanken ausblenden</string>
|
||||
<string name="do_not_kill_app">App nicht beenden …</string>
|
||||
<string name="lock_database_back_root_summary">Datenbank sperren, wenn im Wurzelordner die Zurück-Taste gedrückt wird</string>
|
||||
<string name="lock_database_back_root_summary">Datenbank sperren, wenn auf dem Hauptbildschirm die Taste „Zurück“ gedrückt wird</string>
|
||||
<string name="clear_clipboard_notification_title">Beim Schließen löschen</string>
|
||||
<string name="recycle_bin">Papierkorb</string>
|
||||
<string name="keyboard_selection_entry_title">Eintragsauswahl</string>
|
||||
@@ -382,7 +382,7 @@
|
||||
<string name="menu_security_settings">Sicherheitseinstellungen</string>
|
||||
<string name="menu_master_key_settings">Hauptschlüsseleinstellungen</string>
|
||||
<string name="contains_duplicate_uuid">Die Datenbank enthält doppelte UUIDs.</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Problem lösen, indem neue UUIDs für Duplikate generiert werden um fortzufahren\?</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Problem lösen, indem neue UUIDs für Duplikate generiert werden, um fortzufahren?</string>
|
||||
<string name="database_opened">Datenbank geöffnet</string>
|
||||
<string name="clipboard_explanation_summary">Eintragsfelder mit der Zwischenablage des Geräts kopieren</string>
|
||||
<string name="advanced_unlock_explanation_summary">Geräteentsperrung verwenden, um eine Datenbank einfacher zu öffnen</string>
|
||||
@@ -393,12 +393,12 @@
|
||||
<string name="max_history_size_title">Maximale Größe</string>
|
||||
<string name="max_history_size_summary">Verlaufsumfang pro Eintrag begrenzen</string>
|
||||
<string name="settings_database_recommend_changing_master_key_title">Passwortänderung empfehlen</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">(Nach Tagen) Ändern des Hauptschlüssels empfehlen</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">Ändern des Hauptschlüssels empfehlen (Tage)</string>
|
||||
<string name="settings_database_force_changing_master_key_title">Passwortänderung erzwingen</string>
|
||||
<string name="settings_database_force_changing_master_key_summary">Ändern des Hauptschlüssels erforderlich (Tage)</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_title">Änderung nächstes Mal erzwingen</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Ändern des Hauptschlüssels beim nächsten Mal erfordern (einmalig)</string>
|
||||
<string name="database_default_username_title">Standardnutzername</string>
|
||||
<string name="database_default_username_title">Standardbenutzername</string>
|
||||
<string name="database_custom_color_title">Eigene Datenbankfarbe</string>
|
||||
<string name="compression">Komprimierung</string>
|
||||
<string name="compression_none">Keine</string>
|
||||
@@ -437,7 +437,7 @@
|
||||
<string name="style_name_kunzite">Kunzit</string>
|
||||
<string name="style_name_follow_system">System folgen</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_summary">Einmal-Passwortverwaltung (HOTP/TOTP) einrichten, um Token für Zwei-Faktor-Authentifizierung (2FA) zu erzeugen.</string>
|
||||
<string name="education_setup_OTP_title">OTP einrichten</string>
|
||||
<string name="error_create_database">Die Datenbankdatei kann nicht erstellt werden.</string>
|
||||
<string name="entry_add_attachment">Anhang hinzufügen</string>
|
||||
@@ -448,7 +448,7 @@
|
||||
<string name="autofill_manual_selection_summary">Option zur manuellen Auswahl des Datenbankeintrags anzeigen</string>
|
||||
<string name="lock_database_show_button_summary">Zeigt die Sperrtaste in der Benutzeroberfläche an</string>
|
||||
<string name="lock_database_show_button_title">Sperrtaste anzeigen</string>
|
||||
<string name="autofill_preference_title">Autofüll-Einstellungen</string>
|
||||
<string name="autofill_preference_title">Einstellungen für automatisches Ausfüllen</string>
|
||||
<string name="warning_database_link_revoked">Zugriff auf die Datei durch den Dateimanager widerrufen</string>
|
||||
<string name="error_label_exists">Diese Bezeichnung existiert bereits.</string>
|
||||
<string name="autofill_block_restart">Die das Formular enthaltende App neu starten, um die Sperrung zu aktivieren.</string>
|
||||
@@ -463,7 +463,7 @@
|
||||
<string name="content_description_add_item">Element hinzufügen</string>
|
||||
<string name="filter">Filter</string>
|
||||
<string name="keyboard_change">Tastatur wechseln</string>
|
||||
<string name="keyboard_previous_fill_in_title">Zurück wechseln</string>
|
||||
<string name="keyboard_previous_fill_in_title">Zurückwechseln</string>
|
||||
<string name="keyboard_previous_database_credentials_title">Datenbank-Anmeldebildschirm</string>
|
||||
<string name="keyboard_previous_fill_in_summary">Nach dem Ausführen der automatischen Tastenaktion automatisch zur vorherigen Tastatur wechseln</string>
|
||||
<string name="keyboard_previous_database_credentials_summary">Auf dem Datenbank-Anmeldebildschirm automatisch zur vorherigen Tastatur wechseln</string>
|
||||
@@ -476,16 +476,16 @@
|
||||
<string name="warning_sure_remove_data">Diese Daten trotzdem entfernen\?</string>
|
||||
<string name="warning_remove_unlinked_attachment">Das Entfernen nicht verknüpfter Daten kann die Größe der Datenbank reduzieren, allerdings auch Daten löschen, die von KeePass-Plugins genutzt werden.</string>
|
||||
<string name="warning_replace_file">Das Hinzufügen dieser Datei wird die bestehende Datei ersetzen.</string>
|
||||
<string name="warning_file_too_big">Eine KeePass-Datenbank soll nur kleine Dateien beinhalten (wie z.B. PGP-Schlüsseldateien).
|
||||
<string name="warning_file_too_big">Eine KeePass-Datenbank soll nur kleine Dateien beinhalten (wie z. B. PGP-Schlüsseldateien).
|
||||
\n
|
||||
\nDeine Datenbank könnte mit diesem Anhang sehr groß und leistungsschwach werden.</string>
|
||||
\nMit diesem Anhang könnte die Datenbank sehr groß werden und damit die Leistung beeinträchtigen.</string>
|
||||
<string name="upload_attachment">%1$s hochladen</string>
|
||||
<string name="education_add_attachment_title">Anhang hinzufügen</string>
|
||||
<string name="database_data_remove_unlinked_attachments_summary">Entfernt Anhänge, die in der Datenbank enthalten, aber keinem Eintrag zugeordnet sind</string>
|
||||
<string name="warning_sure_add_file">Datei trotzdem hinzufügen\?</string>
|
||||
<string name="show_uuid_summary">Zeigt die mit einem Eintrag oder einer Gruppe verknüpfte UUID an</string>
|
||||
<string name="show_uuid_title">UUID anzeigen</string>
|
||||
<string name="autofill_read_only_save">Daten speichern ist bei schreibgeschützt geöffneter Datenbank nicht möglich.</string>
|
||||
<string name="autofill_read_only_save">Das Speichern von Daten ist bei einer schreibgeschützt geöffneten Datenbank nicht möglich.</string>
|
||||
<string name="autofill_close_database_title">Datenbank schließen</string>
|
||||
<string name="keyboard_previous_lock_summary">Nach dem Sperren der Datenbank automatisch zur vorherigen Tastatur wechseln</string>
|
||||
<string name="keyboard_previous_lock_title">Datenbank sperren</string>
|
||||
@@ -495,8 +495,8 @@
|
||||
<string name="registration_mode">Registrierungsmodus</string>
|
||||
<string name="save_mode">Speichermodus</string>
|
||||
<string name="search_mode">Suchmodus</string>
|
||||
<string name="error_registration_read_only">Speichern eines neuen Elements in einer schreibgeschützten Datenbank ist unzulässig</string>
|
||||
<string name="autofill_save_search_info_summary">Bei manueller Eintragsauswahl Suchinformationen speichern, für leichtere zukünftige Verwendung</string>
|
||||
<string name="error_registration_read_only">Speichern eines neuen Elements in einer schreibgeschützten Datenbank ist unzulässig.</string>
|
||||
<string name="autofill_save_search_info_summary">Bei manueller Eintragsauswahl Suchinformationen speichern, um sie später leichter verwenden zu können</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Fragen, ob Daten nach Formularausfüllung gespeichert werden sollen</string>
|
||||
<string name="autofill_ask_to_save_data_title">Speichern von Daten abfragen</string>
|
||||
<string name="autofill_save_search_info_title">Suchinformationen speichern</string>
|
||||
@@ -511,7 +511,7 @@
|
||||
<string name="education_advanced_unlock_summary">Eigenes Passwort mit Biometrie- oder Geräteanmeldedaten verknüpfen, um die Datenbank schnell zu entsperren.</string>
|
||||
<string name="education_advanced_unlock_title">Geräteentsperrung der Datenbank</string>
|
||||
<string name="advanced_unlock_timeout">Zeitlimit für Geräteentsperrung</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">Dauer der Geräteentsperrung bis sie zurückgesetzt wird</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">Dauer der Geräteentsperrung, bis sie zurückgesetzt wird</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Ablauf der Geräteentsperrung</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Bei Nutzung der Geräteentsperrung keine verschlüsselten Inhalte speichern</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Zeitlich begrenzte Geräteentsperrung</string>
|
||||
@@ -544,12 +544,12 @@
|
||||
<string name="error_upload_file">Beim Hochladen der Datei ist ein Fehler aufgetreten.</string>
|
||||
<string name="import_app_properties_title">App-Einstellungen importieren</string>
|
||||
<string name="error_start_database_action">Beim Ausführen einer Aktion in der Datenbank ist ein Fehler aufgetreten.</string>
|
||||
<string name="error_otp_type">Der vorhandene OTP-Typ wird von diesem Formular nicht erkannt, seine Validierung erzeugt Token möglicherweise nicht mehr korrekt.</string>
|
||||
<string name="error_otp_type">Der vorhandene OTP-Typ wird von diesem Formular nicht erkannt, seine Validierung kann Token möglicherweise nicht mehr korrekt erzeugen.</string>
|
||||
<string name="content_description_otp_information">Informationen zu Einmalpasswörtern</string>
|
||||
<string name="warning_database_revoked">Auf die Datei kann nicht zugegriffen werden. Bitte die Datenbank schließen und von ihrem Speicherort erneut öffnen.</string>
|
||||
<string name="error_export_app_properties">Fehler beim Exportieren der App-Einstellungen</string>
|
||||
<string name="warning_database_revoked">Auf die Datei kann nicht zugegriffen werden. Bitte die Datenbank schließen und von ihrem Speicherort aus erneut öffnen.</string>
|
||||
<string name="error_export_app_properties">Fehler beim Exportieren der App-Einstellungen.</string>
|
||||
<string name="success_export_app_properties">App-Einstellungen exportiert</string>
|
||||
<string name="error_import_app_properties">Fehler beim Importieren der App-Einstellungen</string>
|
||||
<string name="error_import_app_properties">Fehler beim Importieren der App-Einstellungen.</string>
|
||||
<string name="success_import_app_properties">App-Einstellungen importiert</string>
|
||||
<string name="export_app_properties_summary">Datei zum Exportieren von App-Einstellungen erstellen</string>
|
||||
<string name="export_app_properties_title">App-Einstellungen exportieren</string>
|
||||
@@ -566,13 +566,13 @@
|
||||
<string name="unit_kibibyte">KiB</string>
|
||||
<string name="unit_byte">B</string>
|
||||
<string name="download_canceled">Abgebrochen!</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Autofüll-Vorschläge hinzugefügt.</string>
|
||||
<string name="autofill_inline_suggestions_summary">Falls möglich, Autofüll-Vorschläge direkt auf kompatibler Tastatur anzeigen</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Vorschläge zum automatischen Ausfüllen hinzugefügt.</string>
|
||||
<string name="autofill_inline_suggestions_summary">Falls möglich, Vorschläge zum automatischen Ausfüllen direkt auf kompatibler Tastatur anzeigen</string>
|
||||
<string name="properties">Eigenschaften</string>
|
||||
<string name="description_app_properties">KeePassDX-Eigenschaften zur Verwaltung der App-Einstellungen</string>
|
||||
<string name="secure_note">Sicherer Hinweis</string>
|
||||
<string name="type">Typ</string>
|
||||
<string name="date_of_issue">Datum</string>
|
||||
<string name="date_of_issue">Ausstellungsdatum</string>
|
||||
<string name="place_of_issue">Ausstellungsort</string>
|
||||
<string name="name">Name</string>
|
||||
<string name="id_card">Personalausweis</string>
|
||||
@@ -582,14 +582,14 @@
|
||||
<string name="templates">Vorlagen</string>
|
||||
<string name="templates_group_uuid_title">Vorlagengruppe</string>
|
||||
<string name="templates_group_enable_summary">Dynamische Vorlagen zum Ausfüllen der Felder eines Eintrags verwenden</string>
|
||||
<string name="templates_group_enable_title">Vorlagen-Verwendung</string>
|
||||
<string name="templates_group_enable_title">Verwendung von Vorlagen</string>
|
||||
<string name="version">Version</string>
|
||||
<string name="template">Vorlage</string>
|
||||
<string name="standard">Standard</string>
|
||||
<string name="membership">Mitgliedschaft</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="bank_identifier_code">SWIFT/BIC</string>
|
||||
<string name="bank_name">Bankname</string>
|
||||
<string name="bank_name">Name der Bank</string>
|
||||
<string name="bank">Bank</string>
|
||||
<string name="account">Konto</string>
|
||||
<string name="seed">Seed</string>
|
||||
@@ -626,8 +626,8 @@
|
||||
<string name="search_filters">Suchfilter</string>
|
||||
<string name="current_group">Aktuelle Gruppe</string>
|
||||
<string name="case_sensitive">Groß-/Kleinschreibung beachten</string>
|
||||
<string name="menu_merge_from">Zusammenführen von …</string>
|
||||
<string name="menu_save_copy_to">Kopie speichern unter …</string>
|
||||
<string name="menu_merge_from">Zusammenführen von …</string>
|
||||
<string name="menu_save_copy_to">Kopie speichern unter …</string>
|
||||
<string name="content_description_nav_header">Navigationskopfzeile</string>
|
||||
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
|
||||
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
|
||||
@@ -636,17 +636,18 @@
|
||||
<string name="advanced_unlock_keystore_warning">Diese Funktion speichert verschlüsselte Anmeldedaten im sicheren Schlüsselspeicher dieses Geräts.
|
||||
\n
|
||||
\nJe nach der internen API-Implementierung des Betriebssystems kann sie eingeschränkt sein.
|
||||
\n
|
||||
\nBitte die Kompatibilität und Sicherheit des Schlüsselspeichers vom Gerätehersteller und vom Ersteller der verwendeten ROM abgleichen.</string>
|
||||
<string name="content_description_passphrase_word_count">Passphrasen-Wortanzahl</string>
|
||||
<string name="passphrase">Passphrase</string>
|
||||
<string name="colorize_password_title">Passwörter kolorieren</string>
|
||||
<string name="colorize_password_summary">Koloriere Passwortzeichen nach Typ</string>
|
||||
<string name="colorize_password_title">Passwörter einfärben</string>
|
||||
<string name="colorize_password_summary">Passwortzeichen nach Typ einfärben</string>
|
||||
<string name="keyboard_previous_search_title">Suchbildschirm</string>
|
||||
<string name="keyboard_previous_search_summary">Auf dem Suchbildschirm automatisch zur vorherigen Tastatur wechseln</string>
|
||||
<string name="entropy">Entropie: %1$s Bit</string>
|
||||
<string name="entropy_high">Entropie: Hoch</string>
|
||||
<string name="entropy_calculate">Entropie: Berechnen …</string>
|
||||
<string name="at_least_one_char">Mindestens jedes Zeichen einmal</string>
|
||||
<string name="at_least_one_char">Mindestens ein Zeichen von jedem</string>
|
||||
<string name="consider_chars_filter">Zeichen beinhalten</string>
|
||||
<string name="word_separator">Trennzeichen</string>
|
||||
<string name="ignore_chars_filter">Zeichen ignorieren</string>
|
||||
@@ -663,7 +664,7 @@
|
||||
<string name="waiting_challenge_request">Challenge-Anfrage abwarten …</string>
|
||||
<string name="error_cancel_by_user">Vom Benutzer abgebrochen.</string>
|
||||
<string name="error_driver_required">Treiber für %1$s ist erforderlich.</string>
|
||||
<string name="error_unable_merge_database_kdb">Die Zusammenführung aus einer Datenbank V1 ist nicht möglich.</string>
|
||||
<string name="error_unable_merge_database_kdb">Das Zusammenführen mit einer kdb-Datenbankdatei ist nicht möglich.</string>
|
||||
<string name="error_location_unknown">Der Speicherort der Datenbank ist unbekannt, Datenbankaktion kann nicht ausgeführt werden.</string>
|
||||
<string name="error_hardware_key_unsupported">Der Hardwareschlüssel wird nicht unterstützt.</string>
|
||||
<string name="error_empty_key">Der Schlüssel darf nicht leer sein.</string>
|
||||
@@ -679,7 +680,7 @@
|
||||
<string name="auto_type">Automatische Eingabe</string>
|
||||
<string name="html_about_privacy"><strong>Es werden keine Benutzerdaten ausgelesen</strong>, diese Anwendung stellt keine Verbindung zu einem Server her, arbeitet nur lokal und respektiert vollständig die Privatsphäre der Benutzer.</string>
|
||||
<string name="merge_success">Zusammenführung erfolgreich abgeschlossen</string>
|
||||
<string name="menu_form_filling_settings_summary">Tastatur, Automatisches Ausfüllen, Zwischenablage</string>
|
||||
<string name="menu_form_filling_settings_summary">Tastatur, automatisches Ausfüllen, Zwischenablage</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometrie, Geräteanmeldedaten</string>
|
||||
<string name="menu_database_settings_summary">Metadaten, Papierkorb, Vorlagen, Verlauf</string>
|
||||
<string name="menu_app_settings_summary">Suche, Sperre, Verlauf, Eigenschaften</string>
|
||||
@@ -703,4 +704,11 @@
|
||||
<string name="style_name_light">Hell</string>
|
||||
<string name="style_name_dark">Dunkel</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Die Datenbank mit den letzten Änderungen neu laden.</string>
|
||||
<string name="hide_templates_title">Vorlagen ausblenden</string>
|
||||
<string name="hide_templates_summary">Vorlagen sind ausgeblendet</string>
|
||||
<string name="nodes">Knoten</string>
|
||||
<string name="recursive_number_entries_summary">Berechnet rekursiv die Anzahl der Einträge in einer Gruppe</string>
|
||||
<string name="warning_large_keyfile">Es wird nicht empfohlen, eine große Schlüsseldatei hinzuzufügen, da dies das Öffnen der Datenbank verhindern kann.</string>
|
||||
<string name="recursive_number_entries_title">Rekursive Anzahl der Einträge</string>
|
||||
<string name="generate_keyfile">Schlüsseldatei generieren</string>
|
||||
</resources>
|
||||
@@ -61,7 +61,7 @@
|
||||
<string name="entry_user_name">Όνομα χρήστη</string>
|
||||
<string name="error_arc4">Η ροή κρυπτογράφησης Arcfour δεν υποστηρίζεται.</string>
|
||||
<string name="error_can_not_handle_uri">Το KeePassDX δε μπορεί να χειριστεί αυτή τη διεύθυνση URI.</string>
|
||||
<string name="error_file_not_create">Δεν ήταν δυνατή η δημιουργία αρχείου</string>
|
||||
<string name="error_file_not_create">Δεν ήταν δυνατή η δημιουργία αρχείου.</string>
|
||||
<string name="error_invalid_db">Δεν ήταν δυνατή η ανάγνωση της βάσης δεδομένων.</string>
|
||||
<string name="error_invalid_path">Βεβαιωθείτε ότι η διαδρομή είναι σωστή.</string>
|
||||
<string name="error_no_name">Εισαγάγετε ένα όνομα.</string>
|
||||
@@ -233,7 +233,7 @@
|
||||
<string name="html_text_ad_free">Σε αντίθεση με πολλές άλλες εφαρμογές διαχείρισης κωδικών πρόσβασης, αυτή είναι <strong>χωρίς διαφημίσεις</strong>, <strong>copylefted libre λογισμικό</strong> και δεν συλλέγει προσωπικά δεδομένα στους διακομιστές της, ανεξάρτητα από την έκδοση που χρησιμοποιείτε.</string>
|
||||
<string name="html_text_buy_pro">Με την αγορά της επαγγελματικής έκδοσης, θα έχετε πρόσβαση σε αυτό το <strong>οπτικό στοιχείο</strong> και θα βοηθήσετε ιδιαίτερα την <strong>υλοποίηση ιδεών της κοινότητας.</strong></string>
|
||||
<string name="html_text_feature_generosity">Αυτό το <strong>οπτικό στυλ</strong> είναι διαθέσιμο χάρη στη γενναιοδωρία σας.</string>
|
||||
<string name="html_text_donation">Για να διατηρήσουμε την ελεύθερη έκδοση και να είμαστε πάντα ενεργοί, υπολογίζουμε στην <strong>συνεισφορά σας.</strong></string>
|
||||
<string name="html_text_donation">Με τη <strong>συνεισφορά σας</strong> στο έργο <i>(χρηματικά, κώδικα, μετάφραση)</i>, θα το βοηθήσετε να συνεχίσει να ζει και να ευδοκιμεί και θα είστε επίσης επιλέξιμοι για τη διαδικασία ξεκλειδώματος <strong>θεμάτων </strong> .</string>
|
||||
<string name="html_text_dev_feature">Αυτή η λειτουργία είναι <strong>υπό ανάπτυξη</strong> και απαιτεί την <strong>συνεισφοράς</strong> σας για να είναι σύντομα διαθέσιμη.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">Με την αγορά της έκδοσης <strong>pro</strong>,</string>
|
||||
<string name="html_text_dev_feature_contibute">Με την <strong>συνεισφορά</strong> σας,</string>
|
||||
@@ -485,7 +485,7 @@
|
||||
<string name="registration_mode">Τρόπος εγγραφής</string>
|
||||
<string name="save_mode">Λειτουργία αποθήκευσης</string>
|
||||
<string name="search_mode">Λειτουργία αναζήτησης</string>
|
||||
<string name="error_registration_read_only">Η αποθήκευση ενός νέου αντικειμένου δεν επιτρέπεται σε μια βάση δεδομένων μόνο για ανάγνωση</string>
|
||||
<string name="error_registration_read_only">Η αποθήκευση ενός νέου αντικειμένου δεν επιτρέπεται σε μια βάση δεδομένων μόνο για ανάγνωση.</string>
|
||||
<string name="error_field_name_already_exists">Το όνομα πεδίου υπάρχει ήδη.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Σύνδεσμος για ξεκλείδωμα συσκευής</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Θα πρέπει ακόμα να θυμάστε τα κύρια διαπιστευτήρια της κρύπτης εάν χρησιμοποιείτε την αναγνώριση ξεκλειδώματος συσκευής.</string>
|
||||
@@ -540,9 +540,9 @@
|
||||
<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="error_export_app_properties">Σφάλμα κατά την εξαγωγή ρυθμίσεων εφαρμογής.</string>
|
||||
<string name="success_export_app_properties">Έγινε εξαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="error_import_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>
|
||||
@@ -659,10 +659,10 @@
|
||||
<string name="error_no_response_from_challenge">Δεν είναι δυνατή η λήψη της απάντησης από την πρόκληση.</string>
|
||||
<string name="enable_screenshot_mode_title">Λειτουργία στιγμιότυπου οθόνης</string>
|
||||
<string name="screenshot_mode_banner_text">Λειτουργία στιγμιότυπου οθόνης</string>
|
||||
<string name="error_challenge_already_requested">Η πρόκληση έχει ήδη ζητηθεί</string>
|
||||
<string name="error_challenge_already_requested">Η πρόκληση έχει ήδη ζητηθεί.</string>
|
||||
<string name="error_response_already_provided">Η απάντηση έχει ήδη δοθεί.</string>
|
||||
<string name="error_location_unknown">Η θέση της βάσης δεδομένων είναι άγνωστη, η ενέργεια της βάσης δεδομένων δεν μπορεί να εκτελεστεί.</string>
|
||||
<string name="error_unable_merge_database_kdb">Δεν είναι δυνατή η συγχώνευση από μια βάση δεδομένων V1.</string>
|
||||
<string name="error_unable_merge_database_kdb">Δεν είναι δυνατή η συγχώνευση με μια βάση δεδομένων kdb.</string>
|
||||
<string name="error_empty_key">Το κλειδί δεν μπορεί να είναι κενό.</string>
|
||||
<string name="corrupted_file">Κατεστραμμένο αρχείο.</string>
|
||||
<string name="html_about_privacy"><strong>Δεν ανακτώνται δεδομένα χρήστη</strong>, αυτή η εφαρμογή δεν συνδέεται με κανένα διακομιστή, λειτουργεί μόνο τοπικά και σέβεται πλήρως το απόρρητο των χρηστών.</string>
|
||||
@@ -701,4 +701,11 @@
|
||||
<string name="style_name_kunzite">Κουνζίτης</string>
|
||||
<string name="style_name_follow_system">Όπως το σύστημα</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Επαναφορτώστε τη βάση δεδομένων με τις τελευταίες αλλαγές.</string>
|
||||
<string name="recursive_number_entries_summary">Υπολογίζει αναδρομικά τον αριθμό των καταχωρήσεων σε μια ομάδα</string>
|
||||
<string name="hide_templates_title">Απόκρυψη προτύπων</string>
|
||||
<string name="generate_keyfile">Δημιουργία αρχείου κλειδιού</string>
|
||||
<string name="nodes">Κόμβοι</string>
|
||||
<string name="warning_large_keyfile">Δεν συνιστάται η προσθήκη μεγάλου αρχείου κλειδιού, αυτό μπορεί να εμποδίσει το άνοιγμα της βάσης δεδομένων.</string>
|
||||
<string name="hide_templates_summary">Τα πρότυπα δεν εμφανίζονται</string>
|
||||
<string name="recursive_number_entries_title">Αναδρομικός αριθμός καταχωρήσεων</string>
|
||||
</resources>
|
||||
@@ -33,10 +33,10 @@
|
||||
<string name="encryption">Encryption</string>
|
||||
<string name="contact">Contact</string>
|
||||
<string name="contribution">Contribution</string>
|
||||
<string name="about_description">password</string>
|
||||
<string name="encryption_algorithm">Encryption</string>
|
||||
<string name="about_description">Android implementation of the KeePass password manager</string>
|
||||
<string name="encryption_algorithm">Encryption algorithm</string>
|
||||
<string name="app_timeout">Timeout</string>
|
||||
<string name="app_timeout_summary">database</string>
|
||||
<string name="app_timeout_summary">Idle time before locking the database</string>
|
||||
<string name="application">App</string>
|
||||
<string name="brackets">Brackets</string>
|
||||
<string name="extended_ASCII">Extended ASCII</string>
|
||||
@@ -89,8 +89,7 @@
|
||||
<string name="entry_add_attachment">Add attachment</string>
|
||||
<string name="content_description_remove_field">Remove field</string>
|
||||
<string name="content_description_update_from_list">Update</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft is <strong>open source</strong> and <strong>without advertising</strong>.
|
||||
\nIt is provided as is, under <strong>GPLv3</strong> license, without any warranty.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft is <strong>open source</strong> and <strong>without advertising</strong>. \nIt is provided as is, under <strong>GPLv3</strong> license, without any warranty.</string>
|
||||
<string name="html_about_privacy"><strong>No user data is retrieved</strong>, this application does not connect to any server, works only locally and fully respects the privacy of users.</string>
|
||||
<string name="entry_cancel">Cancel</string>
|
||||
<string name="entry_notes">Notes</string>
|
||||
@@ -100,7 +99,7 @@
|
||||
<string name="otp_period">Period (seconds)</string>
|
||||
<string name="entry_user_name">Username</string>
|
||||
<string name="error_arc4">The Arcfour stream cipher is not supported.</string>
|
||||
<string name="error_file_not_create">Could not create file</string>
|
||||
<string name="error_file_not_create">Could not create file.</string>
|
||||
<string name="error_load_database_KDF_memory">Could not load the key. Try to lower the KDF \"Memory Usage\".</string>
|
||||
<string name="entry_expires">Expires</string>
|
||||
<string name="expired">Expired</string>
|
||||
@@ -178,7 +177,7 @@
|
||||
<string name="error_rounds_too_large">\"Transformation rounds\" too high. Setting to 2147483648.</string>
|
||||
<string name="error_string_key">Each string must have a field name.</string>
|
||||
<string name="error_label_exists">This label already exists.</string>
|
||||
<string name="error_challenge_already_requested">Challenge already requested</string>
|
||||
<string name="error_challenge_already_requested">Challenge already requested.</string>
|
||||
<string name="error_response_already_provided">Response already provided.</string>
|
||||
<string name="error_no_response_from_challenge">Unable to get the response from the challenge.</string>
|
||||
<string name="error_cancel_by_user">Cancelled by user.</string>
|
||||
@@ -224,7 +223,7 @@
|
||||
<string name="list_entries_show_username_title">Show usernames</string>
|
||||
<string name="error_otp_period">Period must be between %1$d and %2$d seconds.</string>
|
||||
<string name="error_string_type">This text does not match the requested item.</string>
|
||||
<string name="error_registration_read_only">Saving a new item is not allowed in a read-only database</string>
|
||||
<string name="error_registration_read_only">Saving a new item is not allowed in a read-only database.</string>
|
||||
<string name="error_otp_digits">Token must contain %1$d to %2$d digits.</string>
|
||||
<string name="error_database_uri_null">Database URI cannot be retrieved.</string>
|
||||
<string name="error_field_name_already_exists">The field name already exists.</string>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<string name="error_no_name">Tajpu nomon.</string>
|
||||
<string name="error_invalid_path">Certigu ke la vojo estas ĝusta.</string>
|
||||
<string name="error_invalid_db">Ne povas legi datumbazon.</string>
|
||||
<string name="error_file_not_create">Ne povas krei dosieron</string>
|
||||
<string name="error_file_not_create">Ne povas krei dosieron.</string>
|
||||
<string name="entry_user_name">Uzantnomo</string>
|
||||
<string name="entry_url">Retadreso</string>
|
||||
<string name="entry_title">Titolo</string>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<string name="homepage">Página de inicio</string>
|
||||
<string name="about_description">Implementación para Android del gestor de contraseñas KeePass</string>
|
||||
<string name="accept">Aceptar</string>
|
||||
<string name="add_entry">Añadir entrada</string>
|
||||
<string name="add_entry">Añadir apunte</string>
|
||||
<string name="add_group">Añadir grupo</string>
|
||||
<string name="encryption_algorithm">Algoritmo de cifrado</string>
|
||||
<string name="app_timeout">Tiempo de espera superado</string>
|
||||
@@ -41,8 +41,7 @@
|
||||
<string name="decrypting_db">Descifrando contenido de la base de datos…</string>
|
||||
<string name="default_checkbox">Utilizar como base de datos por defecto</string>
|
||||
<string name="digits">Dígitos</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft es de <strong>código abierto</strong> y <strong>sin publicidad</strong>.
|
||||
\nSe proporciona tal cual, bajo licencia <strong>GPLv3</strong>, sin ninguna garantía.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft is <strong>código abierto</strong> y <strong>without advertising</strong>. \nIt is provided as is, under <strong>GPLv3</strong> licencia, sin ninguna garantía.</string>
|
||||
<string name="select_database_file">Abrir la caja fuerte existente</string>
|
||||
<string name="entry_accessed">Accedido</string>
|
||||
<string name="entry_cancel">Cancelar</string>
|
||||
@@ -50,31 +49,31 @@
|
||||
<string name="entry_confpassword">Confirmar contraseña</string>
|
||||
<string name="entry_created">Creado</string>
|
||||
<string name="entry_expires">Caduca</string>
|
||||
<string name="entry_keyfile">Archivo clave</string>
|
||||
<string name="entry_keyfile">Cerrojo</string>
|
||||
<string name="entry_modified">Modificada</string>
|
||||
<string name="entry_password">Contraseña</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="entry_title">Título</string>
|
||||
<string name="entry_url">URL</string>
|
||||
<string name="entry_user_name">Nombre de usuario</string>
|
||||
<string name="entry_user_name">Nombre usuario</string>
|
||||
<string name="error_arc4">No se admite el cifrador de flujo Arcfour.</string>
|
||||
<string name="error_can_not_handle_uri">KeePassDX no puede manejar este URI.</string>
|
||||
<string name="error_file_not_create">No se ha podido crear el archivo</string>
|
||||
<string name="error_can_not_handle_uri">No se ha podido gestionar este URI en KeePassDX.</string>
|
||||
<string name="error_file_not_create">No se ha podido crear el archivo.</string>
|
||||
<string name="error_invalid_db">No se ha podido leer la base de datos.</string>
|
||||
<string name="error_invalid_path">Asegúrese de que la ruta es correcta.</string>
|
||||
<string name="error_no_name">Proporcione un nombre.</string>
|
||||
<string name="error_nokeyfile">Seleccione un archivo clave.</string>
|
||||
<string name="error_invalid_path">Asegúrese que la ruta es correcta.</string>
|
||||
<string name="error_no_name">Introduzca un nombre.</string>
|
||||
<string name="error_nokeyfile">Seleccione un archivo de claves.</string>
|
||||
<string name="error_out_of_memory">No hay memoria para cargar toda la base de datos.</string>
|
||||
<string name="error_pass_gen_type">Debe seleccionarse al menos un tipo de generación de contraseñas.</string>
|
||||
<string name="error_pass_match">Las contraseñas no coinciden.</string>
|
||||
<string name="error_rounds_too_large">Rondas de transformación demasiado altas. Establecidas a a 2147483648.</string>
|
||||
<string name="error_rounds_too_large">\"Rondas de transformación\" demasiado altas. Ajuste a 2147483648.</string>
|
||||
<string name="error_wrong_length">Introduzca un número entero positivo en el campo \"Longitud\".</string>
|
||||
<string name="file_browser">Explorador de archivos</string>
|
||||
<string name="generate_password">Generar contraseña</string>
|
||||
<string name="hint_conf_pass">Confirmar contraseña</string>
|
||||
<string name="hint_generated_password">Contraseña generada</string>
|
||||
<string name="hint_group_name">Nombre del grupo</string>
|
||||
<string name="hint_keyfile">Archivo clave</string>
|
||||
<string name="hint_keyfile">Archivo de clave</string>
|
||||
<string name="hint_length">Longitud</string>
|
||||
<string name="password">Contraseña</string>
|
||||
<string name="hint_pass">Contraseña</string>
|
||||
@@ -86,12 +85,12 @@
|
||||
<string name="loading_database">Cargando base de datos…</string>
|
||||
<string name="lowercase">Minúsculas</string>
|
||||
<string name="hide_password_title">Ocultar contraseñas</string>
|
||||
<string name="hide_password_summary">Ocultar contraseñas (***) por defecto</string>
|
||||
<string name="hide_password_summary">Oculta contraseñas (***) por defecto</string>
|
||||
<string name="about">Acerca de</string>
|
||||
<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">Borrar</string>
|
||||
<string name="menu_delete">Eliminar</string>
|
||||
<string name="menu_donate">Donar</string>
|
||||
<string name="menu_edit">Editar</string>
|
||||
<string name="menu_hide_password">Ocultar contraseña</string>
|
||||
@@ -109,19 +108,17 @@
|
||||
<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>
|
||||
<string name="rounds_explanation">Las rondas de cifrado adicionales proporcionan una mayor protección contra los ataques de fuerza bruta, pero pueden ralentizar mucho el cargado y el guardado.</string>
|
||||
<string name="saving_database">Guardando base de datos…</string>
|
||||
<string name="space">Espacio</string>
|
||||
<string name="sort_db">Orden natural</string>
|
||||
<string name="special">Especial</string>
|
||||
<string name="search">Búsqueda</string>
|
||||
<string name="underline">Subrayado</string>
|
||||
<string name="unsupported_db_version">No se admite esta versión de la base de datos.</string>
|
||||
<string name="unsupported_db_version">Versión de base de datos incompatible.</string>
|
||||
<string name="uppercase">Mayúsculas</string>
|
||||
<string name="version_label">Versión %1$s</string>
|
||||
<string name="education_unlock_summary">Introduzca la contraseña y/o el archivo clave para desbloquear su base de datos.
|
||||
\n
|
||||
\nHaga una copia de seguridad de su archivo de base de datos en un lugar seguro después de cada cambio.</string>
|
||||
<string name="education_unlock_summary">Introduzca la contraseña y/o el archivo de clave para desbloquear su base de datos.\n\nRespalde su base de datos en un lugar seguro tras cada cambio.</string>
|
||||
<string-array name="list_size_options">
|
||||
<item>Pequeño</item>
|
||||
<item>Mediano</item>
|
||||
@@ -140,14 +137,14 @@
|
||||
<string name="field_value">Valor del campo</string>
|
||||
<string name="file_not_found_content">No se ha podido encontrar el archivo. Intente volver a abrirlo en el explorador de archivos.</string>
|
||||
<string name="invalid_algorithm">Algoritmo incorrecto.</string>
|
||||
<string name="keyfile_is_empty">El archivo clave está vacío.</string>
|
||||
<string name="keyfile_is_empty">El archivo de clave está vacío.</string>
|
||||
<string name="copy_field">Copia de %1$s</string>
|
||||
<string name="menu_form_filling_settings">Rellenado de formularios</string>
|
||||
<string name="protection">Protección</string>
|
||||
<string name="read_only">Protegida contra escritura</string>
|
||||
<string name="read_only_warning">Dependiendo del administrador de archivos, puede que KeePassDX no permita escribir en su almacenamiento.</string>
|
||||
<string name="read_only_warning">Dependiendo del administrador de archivos, KeePassDX puede no permitir escribir en tu almacenamiento.</string>
|
||||
<string name="encryption_explanation">Algoritmo de cifrado de la base de datos usado para todos los datos</string>
|
||||
<string name="kdf_explanation">Para generar la clave del algoritmo de cifrado, la clave maestra se transforma mediante una función de derivación de claves con una sal aleatoria.</string>
|
||||
<string name="kdf_explanation">Para generar la clave del algoritmo de cifrado, la clave maestra se transforma mediante una función de derivación de claves con sal aleatoria.</string>
|
||||
<string name="memory_usage">Uso de memoria</string>
|
||||
<string name="memory_usage_explanation">Cantidad de memoria que usará la función de derivación de clave.</string>
|
||||
<string name="parallelism">Paralelismo</string>
|
||||
@@ -161,49 +158,49 @@
|
||||
<string name="sort_creation_time">Creación</string>
|
||||
<string name="sort_last_modify_time">Modificación</string>
|
||||
<string name="sort_last_access_time">Acceso</string>
|
||||
<string name="warning">Atención</string>
|
||||
<string name="entry_not_found">No se han podido encontrar los datos de la entrada.</string>
|
||||
<string name="warning_password_encoding">Evite los caracteres de la contraseña fuera del formato de codificación de texto en el archivo de la base de datos (los caracteres no reconocidos se convierten a la misma letra).</string>
|
||||
<string name="warning_empty_password">¿Continuar sin la protección de desbloqueo de contraseña\?</string>
|
||||
<string name="warning">Advertencia</string>
|
||||
<string name="entry_not_found">No se han podido encontrar los datos del apunte.</string>
|
||||
<string name="warning_password_encoding">Evita caracteres de contraseña fuera del formato de codificación de texto en el archivo de base de datos (los caracteres no reconocidos se convierten a la misma letra).</string>
|
||||
<string name="warning_empty_password">¿Continuar sin protección de desbloqueo por contraseña?</string>
|
||||
<string name="warning_no_encryption_key">¿Continuar sin clave de cifrado\?</string>
|
||||
<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="autofill_explanation_summary">Habilite el servicio para rellenar formularios fácilmente desde otras aplicaciones</string>
|
||||
<string name="unavailable">No disponible</string>
|
||||
<string name="menu_appearance_settings">Apariencia</string>
|
||||
<string name="general">General</string>
|
||||
<string name="autofill">Autocompletado</string>
|
||||
<string name="autofill_service_name">Autocompletado de formularios de KeePassDX</string>
|
||||
<string name="autofill_sign_in_prompt">Acceder con KeePassDX</string>
|
||||
<string name="autofill_sign_in_prompt">Iniciar sesión con KeePassDX</string>
|
||||
<string name="set_autofill_service_title">Establecer servicio de autocompletado por defecto</string>
|
||||
<string name="password_size_title">Tamaño de la contraseña generada</string>
|
||||
<string name="password_size_summary">Establece el tamaño predeterminado de las contraseñas generadas</string>
|
||||
<string name="list_password_generator_options_title">Caracteres de contraseña</string>
|
||||
<string name="list_password_generator_options_summary">Establecer los caracteres permitidos del generador de contraseñas</string>
|
||||
<string name="list_password_generator_options_summary">Establece los caracteres permitidos del generador de contraseñas</string>
|
||||
<string name="clipboard">Portapapeles</string>
|
||||
<string name="clipboard_notifications_title">Notificaciones del portapapeles</string>
|
||||
<string name="clipboard_notifications_summary">Mostrar las notificaciones del portapapeles para copiar campos al examinar una entrada</string>
|
||||
<string name="clipboard_notifications_summary">Muestra notificaciones del portapapeles para copiar campos al examinar un apunte</string>
|
||||
<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 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_unlock_enable_summary">Le permite analizar 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">Borrar todas las claves de cifrado relacionadas con el reconocimiento de desbloqueo del dispositivo</string>
|
||||
<string name="biometric_delete_all_key_summary">Borra 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 una nueva caja fuerte</string>
|
||||
<string name="create_keepass_file">Crear una nueva bóveda</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>
|
||||
<string name="monospace_font_fields_enable_summary">Cambiar la fuente de los campos para una mejor visibilidad del carácter</string>
|
||||
<string name="monospace_font_fields_enable_summary">Cambia la tipografía usada en los campos para una mejor visibilidad del carácter</string>
|
||||
<string name="allow_copy_password_title">Portapapeles de confianza</string>
|
||||
<string name="allow_copy_password_summary">Permitir copiar la contraseña de entrada y los campos protegidos al portapapeles</string>
|
||||
<string name="allow_copy_password_summary">Permitir copiar la contraseña de apunte y los campos protegidos al portapapeles</string>
|
||||
<string name="database_name_title">Nombre de la base de datos</string>
|
||||
<string name="database_description_title">Descripción de la base de datos</string>
|
||||
<string name="database_version_title">Versión de la base de datos</string>
|
||||
@@ -211,9 +208,9 @@
|
||||
<string name="application_appearance">Interfaz</string>
|
||||
<string name="other">Otro</string>
|
||||
<string name="keyboard">Teclado</string>
|
||||
<string name="magic_keyboard_title">Teclado mágico</string>
|
||||
<string name="magic_keyboard_explanation_summary">Active un teclado personalizado que llene sus contraseñas y todos los campos de identidad fácilmente</string>
|
||||
<string name="reset_education_screens_title">Restablecer sugerencias didácticas</string>
|
||||
<string name="magic_keyboard_title">Magikeyboard</string>
|
||||
<string name="magic_keyboard_explanation_summary">Activar un teclado personalizado que rellene sus contraseñas y todos los campos de identidad</string>
|
||||
<string name="reset_education_screens_title">Restablecer consejos educativos</string>
|
||||
<string name="reset_education_screens_summary">Mostrar de nuevo toda la información didáctica</string>
|
||||
<string name="reset_education_screens_text">Se restablecieron las sugerencias didácticas</string>
|
||||
<string name="education_create_database_title">Cree su archivo de base de datos</string>
|
||||
@@ -221,48 +218,44 @@
|
||||
<string name="education_select_database_title">Abrir una base de datos existente</string>
|
||||
<string name="education_select_database_summary">Abra su archivo de base de datos anterior desde el explorador de archivos para seguir utilizándolo.</string>
|
||||
<string name="education_new_node_title">Añada elementos a su base de datos</string>
|
||||
<string name="education_new_node_summary">Las entradas ayudan a administrar sus identidades digitales.
|
||||
\n
|
||||
\nLos grupos (~carpetas) organizan las entradas en su base de datos.</string>
|
||||
<string name="education_search_title">Busque registros fácilmente</string>
|
||||
<string name="education_search_summary">Busque entradas por título, nombre de usuario u otros campos para recuperar fácilmente sus contraseñas.</string>
|
||||
<string name="education_entry_edit_title">Editar la entrada</string>
|
||||
<string name="education_entry_edit_summary">Edite la entrada con campos personalizados, puede agregar referencias a los datos de la agrupación entre campos de diferentes entradas.</string>
|
||||
<string name="education_new_node_summary">Los apuntes ayudan a gestionar tus identidades digitales.\n\nLos grupos (~carpetas) organizan las entradas en tu base de datos.</string>
|
||||
<string name="education_search_title">Buscar por apuntes</string>
|
||||
<string name="education_search_summary">Introduzca título, usuario o contenido de otros campos para recuperar sus contraseñas.</string>
|
||||
<string name="education_entry_edit_title">Editar el apunte</string>
|
||||
<string name="education_entry_edit_summary">Edita el apunte con campos personalizados. Los datos pueden estar referenciados entre diferentes campos del apunte.</string>
|
||||
<string name="education_generate_password_title">Crear una contraseña segura</string>
|
||||
<string name="education_generate_password_summary">Genere una contraseña segura para asociarla con su entrada. Defínala fácilmente según los criterios del formulario y no olvides una contraseña poner una contraseña difícil y segura.</string>
|
||||
<string name="education_entry_new_field_title">Agregar campos personalizados</string>
|
||||
<string name="education_entry_new_field_summary">Registre un campo adicional, añada un valor y, opcionalmente, protéjalo.</string>
|
||||
<string name="education_generate_password_summary">Genera una contraseña fuerte para asociarla con su apunte, defínalo fácilmente de acuerdo con el criterio del formulario y no olvide una contraseña segura.</string>
|
||||
<string name="education_entry_new_field_title">Añadir campos personalizados</string>
|
||||
<string name="education_entry_new_field_summary">Registra un campo adicional, añada un valor y, opcionalmente, protégelo.</string>
|
||||
<string name="education_unlock_title">Desbloquee su base de datos</string>
|
||||
<string name="education_field_copy_title">Copia un campo</string>
|
||||
<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_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 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>
|
||||
<string name="education_sort_summary">Elija como son ordenados los apuntes y grupos.</string>
|
||||
<string name="education_donation_title">Participar</string>
|
||||
<string name="education_donation_summary">Participe para aumentar la estabilidad, la seguridad y agregar más funciones.</string>
|
||||
<string name="html_text_ad_free">A diferencia de muchas aplicaciones de gestión de contraseñas, esta <strong>no tiene publicidad</strong>, es <strong>libre, con licencia «copyleft»</strong> y no recopila datos personales en sus servidores, sin importar la versión que use.</string>
|
||||
<string name="html_text_buy_pro">Al comprar la versión pro, tendrá acceso al <strong>estilo visual </strong>y ayudará especialmente a <strong>la realización de proyectos comunitarios.</strong></string>
|
||||
<string name="education_donation_summary">Ayuda a mejorar la estabilidad, la seguridad y a añadir más funciones.</string>
|
||||
<string name="html_text_ad_free">A diferencia de muchas aplicaciones de administración de contraseñas, esta es <strong>sin anuncios</strong>, <strong>software libre de copylefted</strong> y no recopila datos personales en sus servidores, sin importar la versión que use.</string>
|
||||
<string name="html_text_buy_pro">Al comprar la versión Pro, tendrá acceso a este <strong>estilo visual</strong> y ayudará especialmente <strong>la realización de proyectos comunitarios.</strong></string>
|
||||
<string name="html_text_feature_generosity">Este <strong>estilo visual</strong> está disponible gracias a su generosidad.</string>
|
||||
<string name="html_text_donation">Para mantener nuestra libertad y estar siempre vigente, contamos con tu <strong>contribución.</strong></string>
|
||||
<string name="html_text_donation">Al <strong>colaborar</strong> en el proyecto <i>(monetariamente, código, traducción)</i>, ayudará a que siga existiendo y prosperando, y también será la elección para el procedimiento de desbloqueo del <strong>tema</strong>.</string>
|
||||
<string name="html_text_dev_feature">Esta función está <strong>en desarrollo</strong> y requiere de tu <strong>contribución</strong> para estar disponible dentro de poco.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">Al comprar la versión <strong>pro</strong>,</string>
|
||||
<string name="html_text_dev_feature_buy_pro">Al comprar la versión <strong>Pro</strong>,</string>
|
||||
<string name="html_text_dev_feature_contibute">Al <strong>contribuir</strong>,</string>
|
||||
<string name="html_text_dev_feature_encourage">anima a los desarrolladores a crear <strong>nuevas funciones</strong> y a <strong>corregir errores</strong> de acuerdo con sus comentarios.</string>
|
||||
<string name="html_text_dev_feature_encourage">anima a los desarrolladores a crear <strong>nuevas funciones</strong> y a <strong>corregir errores</strong> de acuerdo con sus observaciones.</string>
|
||||
<string name="html_text_dev_feature_thanks">Muchas gracias por su contribución.</string>
|
||||
<string name="html_text_dev_feature_work_hard">Estamos trabajando duro para lanzar esta característica rápidamente.</string>
|
||||
<string name="html_text_dev_feature_upgrade">Recuerde mantener su aplicación actualizada instalando nuevas versiones.</string>
|
||||
<string name="download">Descargar</string>
|
||||
<string name="contribute">Contribuir</string>
|
||||
<string name="style_choose_title">Tema de la aplicación</string>
|
||||
<string name="style_choose_summary">Tema utilizado en la aplicación</string>
|
||||
<string name="icon_pack_choose_title">Seleccione un paquete de iconos</string>
|
||||
<string name="icon_pack_choose_summary">Cambiar el paquete de iconos en la aplicación</string>
|
||||
<string name="edit_entry">Editar entrada</string>
|
||||
<string name="error_load_database">No se pudo cargar la base de datos.</string>
|
||||
<string name="error_load_database_KDF_memory">No se ha podido cargar la clave. Intente disminuir el uso de memoria de KDF.</string>
|
||||
<string name="style_choose_summary">Tema usado en la aplicación</string>
|
||||
<string name="icon_pack_choose_title">Seleccionar un paquete de iconos</string>
|
||||
<string name="icon_pack_choose_summary">Paquete de iconos usado en la aplicación</string>
|
||||
<string name="edit_entry">Editar apunte</string>
|
||||
<string name="error_load_database">No se ha podido cargar la base de datos.</string>
|
||||
<string name="error_load_database_KDF_memory">No se ha podido cargar la clave. Intente reducir el \"Uso de memoria\" del KDF.</string>
|
||||
<string name="list_entries_show_username_title">Mostrar nombres de usuario</string>
|
||||
<string name="list_entries_show_username_summary">Muestra los nombres de usuario en las listas de entrada</string>
|
||||
<string name="menu_copy">Copiar</string>
|
||||
@@ -272,103 +265,100 @@
|
||||
<string name="menu_file_selection_read_only">Protegido contra escritura</string>
|
||||
<string name="menu_open_file_read_and_write">Modificable</string>
|
||||
<string name="build_label">Compilación %1$s</string>
|
||||
<string name="clipboard_warning">Si la eliminación del cortapapeles falla, elimine su historial manualmente.</string>
|
||||
<string name="allow_copy_password_warning">Advertencia: El portapapeles es compartido por todas las aplicaciones. Si se copian datos sensibles, otros programas pueden recuperarlos.</string>
|
||||
<string name="allow_no_password_title">No permitir claves maestras</string>
|
||||
<string name="allow_no_password_summary">Permite pulsar el botón \"Abrir\" si no se seleccionan credenciales</string>
|
||||
<string name="enable_education_screens_title">Sugerencias educativas</string>
|
||||
<string name="enable_education_screens_summary">Destacar elementos para aprender cómo funciona la aplicación</string>
|
||||
<string name="clipboard_warning">Si la eliminación del cortapapeles falla, borre su historial manualmente.</string>
|
||||
<string name="allow_copy_password_warning">Aviso: el portapapeles está compartido por todas las aplicaciones. Si se copian datos confidenciales, otros programas pueden recuperarlos.</string>
|
||||
<string name="allow_no_password_title">Permitir sin clave maestra</string>
|
||||
<string name="allow_no_password_summary">Permite pulsar el botón \"Abrir\" si no son seleccionadas las credenciales</string>
|
||||
<string name="enable_education_screens_title">Consejos educativos</string>
|
||||
<string name="enable_education_screens_summary">Destaca los elementos para aprender cómo funciona la aplicación</string>
|
||||
<string name="enable_read_only_title">Protegida contra escritura</string>
|
||||
<string name="enable_read_only_summary">Abrir la base de datos de solo lectura por defecto</string>
|
||||
<string name="enable_read_only_summary">Abre la base de datos como solo lectura por defecto</string>
|
||||
<string name="education_read_only_title">Proteja la base de datos contra escritura</string>
|
||||
<string name="keyboard_name">Teclado mágico</string>
|
||||
<string name="keyboard_label">Teclado mágico (KeePassDX)</string>
|
||||
<string name="keyboard_setting_label">Configuración del Teclado mágico</string>
|
||||
<string name="keyboard_name">Magikeyboard</string>
|
||||
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
|
||||
<string name="keyboard_setting_label">Configuración de Magikeyboard</string>
|
||||
<string name="keyboard_entry_category">Entrada</string>
|
||||
<string name="keyboard_entry_timeout_title">Tiempo límite</string>
|
||||
<string name="keyboard_entry_timeout_summary">Tiempo límite para vaciar la entrada del teclado</string>
|
||||
<string name="keyboard_notification_entry_title">Información sobre notificación</string>
|
||||
<string name="keyboard_notification_entry_summary">Mostrar una notificación cuando esté disponible una entrada</string>
|
||||
<string name="keyboard_notification_entry_summary">Muestra una notificación cuando esté disponible un apunte</string>
|
||||
<string name="keyboard_notification_entry_content_title_text">Entrada</string>
|
||||
<string name="keyboard_notification_entry_content_title">%1$s disponible en Teclado mágico</string>
|
||||
<string name="keyboard_notification_entry_content_title">%1$s disponible en Magikeyboard</string>
|
||||
<string name="keyboard_notification_entry_content_text">%1$s</string>
|
||||
<string name="keyboard_notification_entry_clear_close_title">Vaciar al cerrar</string>
|
||||
<string name="keyboard_notification_entry_clear_close_summary">Cerrar la base de datos al cerrar la notificación</string>
|
||||
<string name="keyboard_notification_entry_clear_close_summary">Cierra la base de datos al cerrar la notificación</string>
|
||||
<string name="keyboard_appearance_category">Apariencia</string>
|
||||
<string name="keyboard_theme_title">Tema del teclado</string>
|
||||
<string name="keyboard_keys_category">Teclas</string>
|
||||
<string name="keyboard_key_vibrate_title">Vibrar al pulsar tecla</string>
|
||||
<string name="keyboard_key_sound_title">Sonar al pulsar tecla</string>
|
||||
<string name="keyboard_key_vibrate_title">Vibrar al pulsar las teclas</string>
|
||||
<string name="keyboard_key_sound_title">Sonar al pulsar las teclas</string>
|
||||
<string name="selection_mode">Modo de selección</string>
|
||||
<string name="do_not_kill_app">No cierre la aplicación…</string>
|
||||
<string name="lock_database_back_root_summary">Bloquear la base de datos cuando el usuario pulse el botón atrás en la pantalla inicial</string>
|
||||
<string name="clear_clipboard_notification_title">Vaciar al cerrar</string>
|
||||
<string name="clear_clipboard_notification_summary">Bloquear la base de datos cuando expire la duración del portapapeles o cuando se cierre la notificación después de empezar a utilizarla</string>
|
||||
<string name="clear_clipboard_notification_summary">Bloquea la base de datos cuando caduque la duración del portapapeles o se cierre la notificación tras empezar a utilizarla</string>
|
||||
<string name="recycle_bin">Papelera de reciclaje</string>
|
||||
<string name="keyboard_selection_entry_title">Selección de entrada</string>
|
||||
<string name="keyboard_selection_entry_summary">Al ver una entrada en KeePassDX, rellenar con esta el teclado mágico</string>
|
||||
<string name="keyboard_selection_entry_summary">Al visualizar un apunte en KeePassDX, rellena Magikeyboard con ese apunte</string>
|
||||
<string name="delete_entered_password_title">Eliminar contraseña</string>
|
||||
<string name="delete_entered_password_summary">Elimina la contraseña introducida tras un intento de conexión a una base de datos</string>
|
||||
<string name="content_description_open_file">Abrir archivo</string>
|
||||
<string name="content_description_node_children">Nodo heredado</string>
|
||||
<string name="content_description_add_node">Añadir nodo</string>
|
||||
<string name="content_description_add_entry">Añadir entrada</string>
|
||||
<string name="content_description_add_entry">Añadir apunte</string>
|
||||
<string name="content_description_add_group">Añadir grupo</string>
|
||||
<string name="content_description_file_information">Información del archivo</string>
|
||||
<string name="content_description_password_checkbox">Casilla de contraseña</string>
|
||||
<string name="content_description_keyfile_checkbox">Casilla del archivo clave</string>
|
||||
<string name="content_description_entry_icon">Icono de entrada</string>
|
||||
<string name="content_description_keyfile_checkbox">Casilla del cerrojo</string>
|
||||
<string name="content_description_entry_icon">Icono de apunte</string>
|
||||
<string name="entry_password_generator">Generador de contraseñas</string>
|
||||
<string name="content_description_password_length">Longitud de contraseña</string>
|
||||
<string name="entry_add_field">Añadir campo</string>
|
||||
<string name="content_description_remove_field">Eliminar campo</string>
|
||||
<string name="entry_UUID">UUID</string>
|
||||
<string name="error_move_entry_here">No puede mover una entrada aquí.</string>
|
||||
<string name="error_copy_entry_here">No puede copiar una entrada aquí.</string>
|
||||
<string name="error_move_entry_here">No puede mover un apunte aquí.</string>
|
||||
<string name="error_copy_entry_here">No puede copiar un apunte aquí.</string>
|
||||
<string name="list_groups_show_number_entries_title">Mostrar número de entradas</string>
|
||||
<string name="list_groups_show_number_entries_summary">Muestra el número de entradas de un grupo</string>
|
||||
<string name="content_description_background">Fondo</string>
|
||||
<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="error_create_database_file">No se puede crear la base de datos con esta contraseña y este cerrojo.</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 del dispositivo si la base de datos está configurada para utilizarlo</string>
|
||||
<string name="biometric_auto_open_prompt_title">Abrir solicitud automáticamente</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Solicita auto-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.
|
||||
\n
|
||||
\n\"Protegido contra escritura\" evita cambios no deseados en la base de datos.
|
||||
\n\"Modificable\" le permite agregar, eliminar o modificar todos los elementos como desee.</string>
|
||||
<string name="lock_database_back_root_title">Presione \'Atrás\' para bloquear</string>
|
||||
<string name="education_read_only_summary">Cambiar el modo de inicio de la sesión. \n \n\"Protegido contra escritura\" evita cambios involuntarios en la base de datos. \n\"Modificable\" le permite añadir, eliminar o modificar todos los elementos que desee.</string>
|
||||
<string name="lock_database_back_root_title">Presione ‘Atrás’ para bloquear</string>
|
||||
<string name="content_description_repeat_toggle_password_visibility">Repetir conmutación de visibilidad de contraseña</string>
|
||||
<string name="master_key">Clave maestra</string>
|
||||
<string name="security">Seguridad</string>
|
||||
<string name="entry_history">Historial</string>
|
||||
<string name="entry_setup_otp">Establecer contraseña de un solo uso</string>
|
||||
<string name="entry_setup_otp">Fijar contraseña de un solo uso</string>
|
||||
<string name="otp_type">Tipo de contraseña de un solo uso</string>
|
||||
<string name="otp_secret">Secreto</string>
|
||||
<string name="otp_secret">Secreta</string>
|
||||
<string name="otp_period">Período (segundos)</string>
|
||||
<string name="otp_counter">Contador</string>
|
||||
<string name="otp_digits">Dígitos</string>
|
||||
<string name="otp_algorithm">Algoritmo</string>
|
||||
<string name="entry_otp">Contraseña de un solo uso</string>
|
||||
<string name="error_invalid_OTP">Secreto de contraseña de un solo uso inválida.</string>
|
||||
<string name="entry_otp">Contraseña de un solo uso (OTP)</string>
|
||||
<string name="error_invalid_OTP">Secreto de un solo uso no válido.</string>
|
||||
<string name="error_disallow_no_credentials">Se debe establecer al menos una credencial.</string>
|
||||
<string name="error_otp_secret_key">La clave secreta debe estar en formato Base32.</string>
|
||||
<string name="error_otp_counter">El contador debe estar entre %1$d y %2$d.</string>
|
||||
<string name="error_save_database">No se puede guardar la base de datos.</string>
|
||||
<string name="error_string_type">Este texto no coincide con el elemento requerido.</string>
|
||||
<string name="error_create_database">No se puede crear el archivo de la base de datos.</string>
|
||||
<string name="html_about_contribution">Parar lograr <strong>mantener nuestra libertad</strong>, <strong>corregir errores</strong>, <strong>añadir funciones</strong> y <strong>estar siempre activos</strong>, contamos con tu <strong>contribución</strong>.</string>
|
||||
<string name="html_about_contribution">Con el fin de <strong>mantener nuestra libertad</strong>, <strong>corregir errores</strong>, <strong>añadir características</strong> y <strong> para estar siempre activo</strong>, contamos con su <strong>contribución</strong>.</string>
|
||||
<string name="content_description_add_item">Añadir elemento</string>
|
||||
<string name="download_complete">¡Completado!</string>
|
||||
<string name="download_finalization">Finalizando…</string>
|
||||
<string name="download_progression">En curso: %1$d %%</string>
|
||||
<string name="download_progression">En curso: %1$d%%</string>
|
||||
<string name="download_initialization">Inicializando…</string>
|
||||
<string name="download_attachment">Descargar %1$s</string>
|
||||
<string name="enable_auto_save_database_summary">Guardar la base de datos después de cada acción importante (en modo \"Modificable\")</string>
|
||||
<string name="enable_auto_save_database_summary">Guarda la base de datos después de cada acción importante (en modo \"Modificable\")</string>
|
||||
<string name="enable_auto_save_database_title">Guardar base de datos automáticamente</string>
|
||||
<string name="autofill_block">Bloquear autocompletado</string>
|
||||
<string name="keyboard_change">Cambiar teclado</string>
|
||||
@@ -377,21 +367,21 @@
|
||||
<string name="compression_none">Ninguna</string>
|
||||
<string name="compression">Compresión</string>
|
||||
<string name="database_default_username_title">Nombre de usuario predeterminado</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Requerir cambiar la contraseña maestra la próxima vez (una vez)</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Requiere cambiar la clave maestra la próxima vez (una vez)</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_title">Forzar renovación la próxima vez</string>
|
||||
<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_summary">Requiere cambiar la clave 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">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="advanced_unlock_explanation_summary">Utiliza el desbloqueo del dispositivo avanzado 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 de usuario</string>
|
||||
<string name="lock_database_show_button_title">Mostrar botón de bloqueo</string>
|
||||
<string name="autofill_preference_title">Configuración de autocompletado</string>
|
||||
<string name="menu_master_key_settings">Configuración de contraseña maestra</string>
|
||||
<string name="menu_security_settings">Configuración de seguridad</string>
|
||||
<string name="warning_database_read_only">Otorga acceso de escritura para guardar cambios en la base de datos</string>
|
||||
<string name="show_recent_files_summary">Mostrar ubicaciones de bases de datos recientes</string>
|
||||
<string name="warning_database_read_only">Conceder acceso de escritura al archivo para guardar los cambios en la base de datos</string>
|
||||
<string name="show_recent_files_summary">Muestra las ubicaciones de las bases de datos recientes</string>
|
||||
<string name="show_recent_files_title">Mostrar archivos recientes</string>
|
||||
<string name="remember_database_locations_summary">Lleva un registro de dónde se almacenan las bases de datos</string>
|
||||
<string name="remember_database_locations_summary">Realiza un seguimiento de dónde se almacenan las bases de datos</string>
|
||||
<string name="remember_database_locations_title">Recordar ubicaciones de bases de datos</string>
|
||||
<string name="contains_duplicate_uuid">La base de datos contiene UUIDs duplicados.</string>
|
||||
<string name="menu_restore_entry_history">Restaurar historial</string>
|
||||
@@ -409,118 +399,116 @@
|
||||
<string name="error_copy_group_here">No puede copiar un grupo aquí.</string>
|
||||
<string name="database_data_compression_summary">La compresión de datos reduce el tamaño de la base de datos</string>
|
||||
<string name="database_data_compression_title">Compresión de datos</string>
|
||||
<string name="warning_empty_keyfile">No se recomienda agregar un archivo de claves vacío.</string>
|
||||
<string name="warning_empty_keyfile">No se recomienda agregar un archivo de clave vacío.</string>
|
||||
<string name="warning_sure_remove_data">¿Eliminar estos datos de todos modos\?</string>
|
||||
<string name="warning_sure_add_file">¿Agregar el archivo de todos modos\?</string>
|
||||
<string name="warning_replace_file">Al cargar este archivo reemplazará el existente.</string>
|
||||
<string name="warning_replace_file">Al cargar este archivo, se reemplazará el existente.</string>
|
||||
<string name="warning_permanently_delete_nodes">¿Borrar los nodos seleccionados de forma permanente\?</string>
|
||||
<string name="warning_database_link_revoked">El acceso al archivo fue revocado por el administrador de archivos</string>
|
||||
<string name="warning_database_link_revoked">Acceso al archivo revocado por el administrador de archivos</string>
|
||||
<string name="command_execution">Ejecutando el comando…</string>
|
||||
<string name="hide_broken_locations_summary">Ocultar enlaces rotos en la lista de bases de datos recientes</string>
|
||||
<string name="hide_broken_locations_summary">Oculta los enlaces rotos en la lista de bases de datos recientes</string>
|
||||
<string name="hide_broken_locations_title">Ocultar enlaces rotos de la base de datos</string>
|
||||
<string name="remember_keyfile_locations_summary">Lleva un registro de dónde se almacenan los archivos clave</string>
|
||||
<string name="remember_keyfile_locations_title">Recordar ubicaciones de archivos clave</string>
|
||||
<string name="subdomain_search_summary">Buscar dominios web con restricciones de subdominios</string>
|
||||
<string name="remember_keyfile_locations_summary">Mantiene seguimiento de dónde los archivos de claves son almacenados</string>
|
||||
<string name="remember_keyfile_locations_title">Recordar las ubicaciones de los archivos clave</string>
|
||||
<string name="subdomain_search_summary">Busca dominios web con restricciones de subdominios</string>
|
||||
<string name="subdomain_search_title">Búsqueda de subdominio</string>
|
||||
<string name="auto_focus_search_summary">Solicite una búsqueda al abrir una base de datos</string>
|
||||
<string name="auto_focus_search_title">Búsqueda rápida</string>
|
||||
<string name="menu_delete_entry_history">Eliminar historial</string>
|
||||
<string name="error_otp_digits">El token debe contener de %1$d a %2$d dígitos.</string>
|
||||
<string name="error_otp_digits">El código debe contener entre %1$d y %2$d dígitos.</string>
|
||||
<string name="entry_attachments">Adjuntos</string>
|
||||
<string name="entry_add_attachment">Añadir adjunto</string>
|
||||
<string name="content_description_credentials_information">Información de credenciales</string>
|
||||
<string name="database_opened">Base de datos abierta</string>
|
||||
<string name="education_add_attachment_title">Adjuntar</string>
|
||||
<string name="education_add_attachment_summary">Cargue un archivo adjunto a la entrada para guardar datos externos importantes.</string>
|
||||
<string name="education_add_attachment_summary">Suba un archivo adjunto a su apunte para guardar datos externos importantes.</string>
|
||||
<string name="hide_expired_entries_summary">No se muestran las entradas caducadas</string>
|
||||
<string name="warning_remove_unlinked_attachment">La eliminación de datos no vinculados puede disminuir el tamaño de su base de datos, pero también puede eliminar los datos usados por los complementos de KeePass.</string>
|
||||
<string name="warning_file_too_big">Una base de datos de KeePass está pensada para contener solamente archivos utilitarios pequeños (como las claves de PGP).
|
||||
\n
|
||||
\nSi procede con esta carga, la base de datos podría crecer mucho y afectar el rendimiento.</string>
|
||||
<string name="warning_remove_unlinked_attachment">La eliminación de datos no vinculados puede reducir el tamaño de tu base de datos, pero también puede eliminar los datos usados por los complementos de KeePass.</string>
|
||||
<string name="warning_file_too_big">Se supone que una base de datos de KeePass solo contiene pequeños archivos de utilidades (como archivos de claves PGP).\n\nTu base de datos puede llegar a ser muy grande y reducir el rendimiento con esta carga.</string>
|
||||
<string name="recycle_bin_group_title">Grupo de la papelera de reciclaje</string>
|
||||
<string name="filter">Filtrar</string>
|
||||
<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="database_data_remove_unlinked_attachments_summary">Elimina los adjuntos contenidos en la base de datos pero no vinculados a un apunte</string>
|
||||
<string name="database_data_remove_unlinked_attachments_title">Eliminar datos no vinculados</string>
|
||||
<string name="data">Datos</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_delete_all_key_warning">¿Borrar todas las claves de cifrado relacionadas con el reconocimiento de desbloqueo avanzado?</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_summary">No almacenar ningún contenido cifrado para usar el desbloqueo avanzado</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">Pulsa para eliminar las claves de desbloqueo del dispositivo</string>
|
||||
<string name="device_credential_unlock_enable_title">Desbloqueo de credenciales del dispositivo</string>
|
||||
<string name="advanced_unlock_tap_delete">Pulsa para eliminar las teclas de desbloqueo avanzado</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="clipboard_explanation_summary">Copia los campos del apunte 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 ha podido inicializar el aviso de desbloqueo del dispositivo.</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Teclee la contraseña y luego pulse sobre este botón.</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">No se puede inicializar el aviso de desbloqueo avanzado.</string>
|
||||
<string name="advanced_unlock_scanning_error">Error de desbloqueo del dispositivo: %1$s</string>
|
||||
<string name="advanced_unlock_not_recognized">No se reconoció la huella digital para desbloquear el dispositivo</string>
|
||||
<string name="advanced_unlock_not_recognized">No se ha podido reconocer la impresión de desbloqueo avanzado</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_extract_credential_title">Reconocimiento de desbloqueo del dispositivo</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="biometric_security_update_required">Se requiere actualización de seguridad biométrica.</string>
|
||||
<string name="configure_biometric">No se ha inscrito ninguna credencial biométrica o del dispositivo.</string>
|
||||
<string name="warning_empty_keyfile_explanation">El contenido del archivo clave nunca debe modificarse y, en el mejor de los casos, debe contener datos generados al azar.</string>
|
||||
<string name="warning_empty_keyfile_explanation">El contenido del archivo de clave nunca debe modificarse y, en el mejor de los casos, debe contener datos generados al azar.</string>
|
||||
<string name="warning_empty_recycle_bin">¿Borrar permanentemente todos los nodos de la papelera de reciclaje\?</string>
|
||||
<string name="registration_mode">Modo de registro</string>
|
||||
<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">Borrar la clave de desbloqueo del dispositivo</string>
|
||||
<string name="contains_duplicate_uuid_procedure">¿Solucionar el problema generando nuevos UUID para que los duplicados continúen?</string>
|
||||
<string name="menu_keystore_remove_key">Eliminar 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>
|
||||
<string name="max_history_size_summary">Limitar el tamaño del historial por entrada</string>
|
||||
<string name="max_history_items_summary">Limitar el número de elementos del historial por entrada</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 renovación</string>
|
||||
<string name="max_history_size_summary">Limitar el tamaño del historial por apunte</string>
|
||||
<string name="max_history_items_summary">Limitar el número de elementos del historial por apunte</string>
|
||||
<string name="max_history_items_title">Número máximo</string>
|
||||
<string name="device_keyboard_setting_title">Configuración del teclado del dispositivo</string>
|
||||
<string name="database_custom_color_title">Color personalizado de la base de datos</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">Recomendar cambiar la contraseña maestra (días)</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">Recomienda cambiar la clave maestra (días)</string>
|
||||
<string name="notification">Notificación</string>
|
||||
<string name="hide_expired_entries_title">Ocultar las entradas expiradas</string>
|
||||
<string name="upload_attachment">Cargar %1$s</string>
|
||||
<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="hide_expired_entries_title">Ocultar entradas caducadas</string>
|
||||
<string name="upload_attachment">Subir %1$s</string>
|
||||
<string name="education_setup_OTP_summary">Configura la gestión de contraseñas de un solo uso (HOTP / TOTP) para generar un testigo solicitado para la autenticación de dos factores (2FA).</string>
|
||||
<string name="education_setup_OTP_title">Establecer 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 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>
|
||||
<string name="autofill_web_domain_blocklist_title">Lista de bloqueo de los dominios web</string>
|
||||
<string name="autofill_application_id_blocklist_summary">Lista de bloqueo que impide el llenado automático de las aplicaciones</string>
|
||||
<string name="autofill_application_id_blocklist_title">Lista de bloqueo de las aplicaciones</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Solicitar datos de guardado al completar el llenado de un formulario</string>
|
||||
<string name="autofill_ask_to_save_data_title">Pedir que se guarden los datos</string>
|
||||
<string name="autofill_save_search_info_summary">Trate de guardar la información de búsqueda al hacer una selección de entrada manual para facilitar los usos futuros</string>
|
||||
<string name="autofill_save_search_info_title">Guardar la información de la búsqueda</string>
|
||||
<string name="autofill_close_database_summary">Cerrar la base de datos después de una selección de autocompletado</string>
|
||||
<string name="autofill_close_database_title">Cerrar la base de datos</string>
|
||||
<string name="autofill_read_only_save">No se permite guardar datos en una base de datos abierta como de solo lectura.</string>
|
||||
<string name="autofill_block_restart">Reinicia la aplicación que contiene el formulario para activar el bloqueo.</string>
|
||||
<string name="autofill_web_domain_blocklist_summary">Lista de dominios web en los que se impide el autocompletado</string>
|
||||
<string name="autofill_web_domain_blocklist_title">Lista de bloqueo de dominios web</string>
|
||||
<string name="autofill_application_id_blocklist_summary">Lista de aplicaciones en las que se impide el autocompletado</string>
|
||||
<string name="autofill_application_id_blocklist_title">Lista de bloqueo de aplicaciones</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Solicita guardar datos cuando está completado el relleno de un formulario</string>
|
||||
<string name="autofill_ask_to_save_data_title">Preguntar para guardar los datos</string>
|
||||
<string name="autofill_save_search_info_summary">Intenta guardar la información de búsqueda al seleccionar manualmente un apunte para facilitar su uso en el futuro</string>
|
||||
<string name="autofill_save_search_info_title">Guardar información de la búsqueda</string>
|
||||
<string name="autofill_close_database_summary">Cierra la base de datos tras una selección de auto-completado</string>
|
||||
<string name="autofill_close_database_title">Cerrar base de datos</string>
|
||||
<string name="enter">Entrar</string>
|
||||
<string name="backspace">Retroceder</string>
|
||||
<string name="select_entry">Seleccionar la entrada</string>
|
||||
<string name="select_entry">Seleccionar apunte</string>
|
||||
<string name="back_to_previous_keyboard">Volver al teclado anterior</string>
|
||||
<string name="custom_fields">Campos personalizados</string>
|
||||
<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_lock_summary">Auto-volver al teclado anterior tras bloquear la base de datos</string>
|
||||
<string name="keyboard_previous_lock_title">Bloquear base de datos</string>
|
||||
<string name="keyboard_previous_fill_in_summary">Cambiar automáticamente al teclado anterior tras ejecutar \"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_summary">Autovolver 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>
|
||||
<string name="keyboard_save_search_info_summary">Intente guardar la información compartida para su uso en el futuro cuando seleccione entradas manualmente</string>
|
||||
<string name="keyboard_auto_go_action_title">Acción automática de la tecla</string>
|
||||
<string name="keyboard_save_search_info_summary">Intente guardar información compartida cuando realice una selección manual de apunte para utilizar más fácil en el futuro</string>
|
||||
<string name="keyboard_save_search_info_title">Guardar información compartida</string>
|
||||
<string name="show_uuid_summary">Muestra el UUID vinculado a una entrada o a un grupo</string>
|
||||
<string name="show_uuid_title">Mostrar UUID</string>
|
||||
<string name="error_rebuild_list">No se puede reconstruir correctamente la lista.</string>
|
||||
<string name="error_database_uri_null">No se puede recuperar la URI de la base de datos.</string>
|
||||
<string name="autofill_inline_suggestions_summary">Intenta mostrar sugerencias de autocompletado directamente desde un teclado compatible</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Añadidas sugerencias de autocompletado.</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Sugerencias de autocompletado añadidas.</string>
|
||||
<string name="warning_database_revoked">Acceso al archivo revocado por el administrador de archivos, cierra la base de datos y vuelva a abrirla desde su ubicación.</string>
|
||||
<string name="unit_gibibyte">GiB</string>
|
||||
<string name="unit_mebibyte">MiB</string>
|
||||
@@ -530,7 +518,7 @@
|
||||
<string name="warning_database_info_changed_options">Fusionar los datos, sobrescribir las modificaciones externas guardando la base de datos o recargarla con los últimos cambios.</string>
|
||||
<string name="warning_database_info_changed">La información contenida en su archivo de base de datos ha sido modificada fuera de la aplicación.</string>
|
||||
<string name="menu_reload_database">Recargar datos</string>
|
||||
<string name="error_otp_type">El tipo de OTP existente no es reconocido por este formulario, su validación ya no puede generar correctamente el token.</string>
|
||||
<string name="error_otp_type">El tipo de OTP existente no es reconocido por este formulario, es posible que su validación ya no genere correctamente el código.</string>
|
||||
<string name="download_canceled">¡Cancelado!</string>
|
||||
<string name="error_duplicate_file">Los datos del archivo ya existen.</string>
|
||||
<string name="error_upload_file">Se ha producido un error al cargar los datos del archivo.</string>
|
||||
@@ -538,16 +526,16 @@
|
||||
<string name="content_description_otp_information">Información de contraseña de un solo uso</string>
|
||||
<string name="icon_section_custom">Personalizado</string>
|
||||
<string name="icon_section_standard">Estándar</string>
|
||||
<string name="style_brightness_summary">Seleccionar temas oscuros o claros</string>
|
||||
<string name="style_brightness_summary">Selecciona 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 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="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_summary">Crea un archivo para exportar las propiedades 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_summary">Selecciona un archivo para importar las propiedades 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>
|
||||
@@ -572,41 +560,41 @@
|
||||
<string name="cryptocurrency">Cartera de criptomonedas</string>
|
||||
<string name="type">Tipo</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="email_address">Dirección de correo electrónico</string>
|
||||
<string name="email">Correo electrónico</string>
|
||||
<string name="email_address">Dirección de correo-e</string>
|
||||
<string name="email">Correo-e</string>
|
||||
<string name="date_of_issue">Fecha de emisión</string>
|
||||
<string name="place_of_issue">Lugar de emisión</string>
|
||||
<string name="name">Nombre</string>
|
||||
<string name="id_card">Documento de identidad</string>
|
||||
<string name="id_card">Tarjeta de identidad</string>
|
||||
<string name="number">Número</string>
|
||||
<string name="holder">Titular</string>
|
||||
<string name="debit_credit_card">Tarjeta de Crédito / Débito</string>
|
||||
<string name="template_group_name">Plantillas</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||
<string name="token">Token</string>
|
||||
<string name="token">Testigo</string>
|
||||
<string name="ssid">SSID</string>
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
<string name="show_otp_token_summary">Muestra los tokens OTP en la lista de entradas</string>
|
||||
<string name="show_otp_token_title">Mostrar token OTP</string>
|
||||
<string name="show_otp_token_summary">Muestra los códigos OTP en la lista de entradas</string>
|
||||
<string name="show_otp_token_title">Mostrar código OTP</string>
|
||||
<string name="menu_external_icon">Icono externo</string>
|
||||
<string name="autofill_manual_selection_summary">Mostrar opción para permitir al usuario seleccionar la entrada de la base de datos</string>
|
||||
<string name="autofill_manual_selection_summary">Muestra la opción para permitir al usuario seleccionar la entrada de la base de datos</string>
|
||||
<string name="autofill_manual_selection_title">Selección manual</string>
|
||||
<string name="autofill_select_entry">Seleccionar entrada…</string>
|
||||
<string name="hint_icon_name">Nombre del icono</string>
|
||||
<string name="warning_exact_alarm">No ha permitido que la app use una alarma exacta. Como resultado, las funciones que requieren un temporizador no se harán con una hora exacta.</string>
|
||||
<string name="permission">Permiso</string>
|
||||
<string name="content_description_database_color">Color de la base de datos</string>
|
||||
<string name="content_description_entry_foreground_color">Color de primer plano de la entrada</string>
|
||||
<string name="content_description_entry_background_color">Color de fondo de la entrada</string>
|
||||
<string name="content_description_entry_foreground_color">Color de primer plano del apunte</string>
|
||||
<string name="content_description_entry_background_color">Color de fondo del apunte</string>
|
||||
<string name="tags">Etiquetas</string>
|
||||
<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">Mantén la pantalla encendida cuando veas o edites una entrada</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 integridad correcta.</string>
|
||||
<string name="enable_keep_screen_on_title">Mantener pantalla encendida</string>
|
||||
<string name="enable_keep_screen_on_summary">Mantiene la pantalla encendida cuando se visualiza la 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="enable_screenshot_mode_summary">Permite que aplicaciones de terceros graben o tomen pantallazos de la aplicación</string>
|
||||
<string name="show_entry_colors_summary">Muestra los colores de primer y segundo plano de una entrada</string>
|
||||
<string name="show_entry_colors_title">Colores de entrada</string>
|
||||
<string name="menu_merge_database">Fusionar datos</string>
|
||||
@@ -615,53 +603,53 @@
|
||||
<string name="regex">Expresión regular</string>
|
||||
<string name="content_description_nav_header">Cabecera de navegación</string>
|
||||
<string name="navigation_drawer_open">Cajón de navegación abierto</string>
|
||||
<string name="case_sensitive">Sensible a mayúsculas y minúsculas</string>
|
||||
<string name="auto_type_sequence">Secuencia de autocompletado</string>
|
||||
<string name="case_sensitive">Sensible a MAYÚS/minús</string>
|
||||
<string name="auto_type_sequence">Secuencia auto-tecleada</string>
|
||||
<string name="custom_data">Datos personalizados</string>
|
||||
<string name="current_group">Grupo actual</string>
|
||||
<string name="search_filters">Filtros de búsqueda</string>
|
||||
<string name="menu_merge_from">Fusionar desde …</string>
|
||||
<string name="menu_merge_from">Fusionar desde…</string>
|
||||
<string name="menu_save_copy_to">Guardar una copia en…</string>
|
||||
<string name="inherited">Heredar</string>
|
||||
<string name="expired">Caducada</string>
|
||||
<string name="colorize_password_summary">Colorear caracteres de contraseña por tipo</string>
|
||||
<string name="warning_database_already_opened">Ya hay abierta una base de datos, ciérrela antes de abrir otra</string>
|
||||
<string name="exclude_ambiguous_chars">Excluya caracteres ambiguos</string>
|
||||
<string name="consider_chars_filter">Considere caracteres</string>
|
||||
<string name="entropy_calculate">Entropía: calcular…</string>
|
||||
<string name="colorize_password_summary">Colorea los caracteres de contraseña por tipo</string>
|
||||
<string name="warning_database_already_opened">Ya hay abierta una base de datos, ciérrala antes de abrir la nueva</string>
|
||||
<string name="exclude_ambiguous_chars">Excluir caracteres ambiguos</string>
|
||||
<string name="consider_chars_filter">Considerar caracteres</string>
|
||||
<string name="entropy_calculate">Entropía: Calcular…</string>
|
||||
<string name="word_separator">Separador</string>
|
||||
<string name="advanced_unlock_keystore_warning">Esta función almacenará datos de credenciales cifrados en el almacén de claves seguro del dispositivo.
|
||||
\n
|
||||
\nDependiendo de la implementación de la API nativa del sistema operativo, puede que no sea totalmente funcional.
|
||||
\n
|
||||
\nComprueba la compatibilidad y seguridad del KeyStore con el fabricante de tu dispositivo y el creador de la ROM que estés utilizando.</string>
|
||||
<string name="content_description_passphrase_word_count">Recuento de palabras de la frase de paso</string>
|
||||
<string name="content_description_passphrase_word_count">Recuento de palabras de la frase de acceso</string>
|
||||
<string name="passphrase">Frase de acceso</string>
|
||||
<string name="colorize_password_title">Colorear contraseñas</string>
|
||||
<string name="keyboard_previous_search_title">Pantalla de búsqueda</string>
|
||||
<string name="keyboard_previous_search_summary">Volver automáticamente al teclado anterior en la pantalla de búsqueda</string>
|
||||
<string name="keyboard_previous_search_summary">Vuelve automáticamente al teclado anterior en la pantalla de búsqueda</string>
|
||||
<string name="entropy">Entropía: %1$s bit</string>
|
||||
<string name="entropy_high">Entropía: Alta</string>
|
||||
<string name="at_least_one_char">Al menos un carácter desde cada</string>
|
||||
<string name="ignore_chars_filter">Descartar caracteres</string>
|
||||
<string name="at_least_one_char">Al menos un carácter de cada</string>
|
||||
<string name="ignore_chars_filter">Ignorar caracteres</string>
|
||||
<string name="lower_case">minúsculas</string>
|
||||
<string name="upper_case">MAYÚSCULAS</string>
|
||||
<string name="title_case">Tipo Titular</string>
|
||||
<string name="character_count">Conteo de caracteres: %1$d</string>
|
||||
<string name="screenshot_mode_banner_text">Modo captura de pantalla</string>
|
||||
<string name="error_hardware_key_unsupported">La llave física no está soportada.</string>
|
||||
<string name="html_about_privacy"><strong>No se recuperan datos del usuario</strong>, esta aplicación no se conecta a ningún servidor, funciona solo localmente y respeta completamente la privacidad del usuario.</string>
|
||||
<string name="error_unable_merge_database_kdb">Imposible fusionar desde una base de datos V1.</string>
|
||||
<string name="title_case">1ª letra en mayúscula</string>
|
||||
<string name="character_count">Recuento de caracteres: %1$d</string>
|
||||
<string name="screenshot_mode_banner_text">Modo de captura de pantalla</string>
|
||||
<string name="error_hardware_key_unsupported">La llave por hardware no es compatible.</string>
|
||||
<string name="html_about_privacy"><strong>No se recupera ningún dato del usuario</strong>, esta aplicación no se conecta a ningún servidor y funciona solo localmente y respeta plenamente la privacidad de los usuarios.</string>
|
||||
<string name="error_unable_merge_database_kdb">No se puede fusionar con un archivo de base de datos kdb.</string>
|
||||
<string name="error_cancel_by_user">Cancelado por el usuario.</string>
|
||||
<string name="error_no_response_from_challenge">Imposible obtener la respuesta del desafío.</string>
|
||||
<string name="auto_type">Autocompletar</string>
|
||||
<string name="error_no_response_from_challenge">No se puede obtener la respuesta del desafío.</string>
|
||||
<string name="auto_type">Auto-teclear</string>
|
||||
<string name="hardware_key">Llave física</string>
|
||||
<string name="error_no_hardware_key">Seleccione una llave física.</string>
|
||||
<string name="error_XML_malformed">Error en la sintaxis XML.</string>
|
||||
<string name="error_challenge_already_requested">Desafío ya solicitado</string>
|
||||
<string name="error_XML_malformed">XML incorrecto.</string>
|
||||
<string name="error_challenge_already_requested">Desafío ya solicitado.</string>
|
||||
<string name="error_response_already_provided">Respuesta ya recibida.</string>
|
||||
<string name="error_driver_required">Se necesita un controlador para %1$s.</string>
|
||||
<string name="error_location_unknown">La ubicación de la base de datos es desconocida, la acción de la base de datos no se puede realizar.</string>
|
||||
<string name="error_location_unknown">Se desconoce la ubicación de la base de datos, no puede realizar la acción de base de datos.</string>
|
||||
<string name="error_empty_key">La clave no puede estar vacía.</string>
|
||||
<string name="corrupted_file">Archivo dañado.</string>
|
||||
<string name="remember_hardware_key_title">Recordar llaves físicas</string>
|
||||
@@ -669,7 +657,7 @@
|
||||
<string name="content_description_hardware_key_checkbox">Casilla de llave física</string>
|
||||
<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="merge_success">Fusión correctamente realizada</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>
|
||||
@@ -677,9 +665,7 @@
|
||||
<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_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>
|
||||
@@ -688,9 +674,7 @@
|
||||
<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>
|
||||
<string name="education_validate_entry_summary">No olvide validar tu inicio de sesión 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>
|
||||
<string name="style_name_classic">Clásico</string>
|
||||
<string name="style_name_divine">Divino</string>
|
||||
<string name="style_name_forest">Bosque</string>
|
||||
@@ -703,4 +687,11 @@
|
||||
<string name="style_name_light">Claro</string>
|
||||
<string name="style_name_dark">Oscuro</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Recargue la base de datos con los últimos cambios.</string>
|
||||
<string name="nodes">Nodos</string>
|
||||
<string name="recursive_number_entries_summary">Calcula recursivamente el número de entradas en un grupo</string>
|
||||
<string name="warning_large_keyfile">No se recomienda agregar un archivo de clave grande , esto puede impedir que se abra la base de datos.</string>
|
||||
<string name="hide_templates_title">Ocultar plantillas</string>
|
||||
<string name="generate_keyfile">Generar archivo de claves</string>
|
||||
<string name="recursive_number_entries_title">Número recursivo de entradas</string>
|
||||
<string name="hide_templates_summary">Las plantillas no se muestran</string>
|
||||
</resources>
|
||||
@@ -18,4 +18,652 @@
|
||||
<string name="add_entry">Lisa kirje</string>
|
||||
<string name="edit_entry">Muuda kirjet</string>
|
||||
<string name="app_timeout">Aegumine</string>
|
||||
<string name="brackets">Sulud</string>
|
||||
<string name="allow">Luba</string>
|
||||
<string name="clipboard_cleared">Lõikelaud on tühjendatud</string>
|
||||
<string name="content_description_background">Taust</string>
|
||||
<string name="content_description_open_file">Ava fail</string>
|
||||
<string name="content_description_add_entry">Lisa kirje</string>
|
||||
<string name="content_description_add_group">Lisa grupp</string>
|
||||
<string name="content_description_otp_information">Ühekordse salasõna teave</string>
|
||||
<string name="content_description_entry_icon">Kirje ikoon</string>
|
||||
<string name="content_description_database_color">Andmebaasi värv</string>
|
||||
<string name="validate">Valideeri</string>
|
||||
<string name="discard_changes">Kas loobud muudatustest?</string>
|
||||
<string name="discard">Loobu</string>
|
||||
<string name="entry_password_generator">Salasõna generaator</string>
|
||||
<string name="content_description_password_length">Salasõna pikkus</string>
|
||||
<string name="content_description_entry_foreground_color">Kirje esiplaani värv</string>
|
||||
<string name="content_description_entry_background_color">Kirje taustavärv</string>
|
||||
<string name="entry_add_field">Lisa väli</string>
|
||||
<string name="entry_add_attachment">Lisa manus</string>
|
||||
<string name="content_description_remove_field">Eemalda väli</string>
|
||||
<string name="content_description_update_from_list">Uuenda</string>
|
||||
<string name="content_description_remove_from_list">Kustuta</string>
|
||||
<string name="select_to_copy">Vali %1$s kopeerimaks ta lõikelauale</string>
|
||||
<string name="database">Andmebaas</string>
|
||||
<string name="template_group_name">Mallid</string>
|
||||
<string name="decrypting_db">Dekrüpteerime andmebaasi sisu…</string>
|
||||
<string name="digits">Numbrid</string>
|
||||
<string name="entry_cancel">Katkesta</string>
|
||||
<string name="entry_notes">Märkmed</string>
|
||||
<string name="entry_confpassword">Korda salasõna</string>
|
||||
<string name="entry_created">Loodud</string>
|
||||
<string name="entry_expires">Aegub</string>
|
||||
<string name="expired">Aegunud</string>
|
||||
<string name="entry_UUID">UUID</string>
|
||||
<string name="entry_history">Ajalugu</string>
|
||||
<string name="entry_attachments">Manused</string>
|
||||
<string name="entry_keyfile">Võtmefail</string>
|
||||
<string name="entry_modified">Muudetud</string>
|
||||
<string name="searchable">Otsitav</string>
|
||||
<string name="entry_not_found">Ei leidnud kirje sisu.</string>
|
||||
<string name="entry_password">Salasõna</string>
|
||||
<string name="save">Salvesta</string>
|
||||
<string name="entry_title">Pealkiri</string>
|
||||
<string name="otp_period">Kestus (sekundites)</string>
|
||||
<string name="otp_type">Ühekordse salasõna tüüp</string>
|
||||
<string name="otp_digits">Numbrid</string>
|
||||
<string name="search_filters">Otsingufiltrid</string>
|
||||
<string name="current_group">Praegune grupp</string>
|
||||
<string name="otp_algorithm">Algoritm</string>
|
||||
<string name="debit_credit_card">Debeet- / Krediitkaart</string>
|
||||
<string name="version">Versioon</string>
|
||||
<string name="entry_user_name">Kasutajanimi</string>
|
||||
<string name="clipboard_error_title">Lõikelaua viga</string>
|
||||
<string name="clipboard_error">Mõned seadmed ei luba rakendustel kasutada lõikelauda.</string>
|
||||
<string name="content_description_add_node">Lisa sõlm</string>
|
||||
<string name="content_description_node_children">Sõlme järglassõlmed</string>
|
||||
<string name="content_description_file_information">Faili teave</string>
|
||||
<string name="extended_ASCII">Laiendatud ASCII</string>
|
||||
<string name="clipboard_timeout">Lõikelaua sisu aegumine</string>
|
||||
<string name="clipboard_error_clear">Ei saanud tühjendada lõikelauda</string>
|
||||
<string name="content_description_add_item">Lisa üksikasi</string>
|
||||
<string name="content_description_password_checkbox">Salasõna märkeruut</string>
|
||||
<string name="content_description_keyfile_checkbox">Võtmefaili märekruut</string>
|
||||
<string name="content_description_hardware_key_checkbox">Füüsilise võtme märkruut</string>
|
||||
<string name="content_description_credentials_information">Mandaatide info</string>
|
||||
<string name="content_description_nav_header">Navigatsiooni päis</string>
|
||||
<string name="retrieving_db_key">Laadime andmebaasi võtme…</string>
|
||||
<string name="content_description_passphrase_word_count">Sõnu salafraasis</string>
|
||||
<string name="default_checkbox">Kasuta vaikeandmebaasina</string>
|
||||
<string name="entry_accessed">Viimati kasutatud</string>
|
||||
<string name="waiting_challenge_request">Ootame pretensioonipäringut…</string>
|
||||
<string name="waiting_challenge_response">Ootame pretensioonivastust…</string>
|
||||
<string name="number">Kaardinumber</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="id_card">ID kaart</string>
|
||||
<string name="name">Nimi</string>
|
||||
<string name="email">E-post</string>
|
||||
<string name="email_address">E-posti aadress</string>
|
||||
<string name="wireless">WiFi</string>
|
||||
<string name="ssid">SSID</string>
|
||||
<string name="type">Tüüp</string>
|
||||
<string name="cryptocurrency">Krüptoraha rahakott</string>
|
||||
<string name="seed">Seeme</string>
|
||||
<string name="account">Konto</string>
|
||||
<string name="bank">Pank</string>
|
||||
<string name="bank_name">Panga nimi</string>
|
||||
<string name="hardware_key">Füüsiline võti</string>
|
||||
<string name="regex">Regulaaravaldis</string>
|
||||
<string name="holder">Kaardiomanik</string>
|
||||
<string name="place_of_issue">Väljastamise asukoht</string>
|
||||
<string name="date_of_issue">Väljastamise päev</string>
|
||||
<string name="auto_type">Automaatne sisestus</string>
|
||||
<string name="auto_type_sequence">Automaatse sisestuse järjestus</string>
|
||||
<string name="public_key">Avalik võti</string>
|
||||
<string name="private_key">Privaatvõti</string>
|
||||
<string name="tags">Sildid</string>
|
||||
<string name="custom_data">Kohandatud andmed</string>
|
||||
<string name="entry_setup_otp">Võta kasutusele ühekordne salasõna</string>
|
||||
<string name="otp_secret">Saladus</string>
|
||||
<string name="otp_counter">Loendur</string>
|
||||
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="standard">Standard</string>
|
||||
<string name="template">Mall</string>
|
||||
<string name="error_invalid_db">Andmebaasi lugemine ei õnnestunud.</string>
|
||||
<string name="error_no_name">Sisesta nimi.</string>
|
||||
<string name="error_nokeyfile">Vali võtmefail.</string>
|
||||
<string name="error_pass_match">Salasõnad ei klapi.</string>
|
||||
<string name="error_create_database">Andmebaasifaili loomine ei õnnestunud.</string>
|
||||
<string name="entry_url">URL</string>
|
||||
<string name="error_file_not_create">Faili loomine ei õnnestunud.</string>
|
||||
<string name="entry_otp">Ühekordne salasõna</string>
|
||||
<string name="clipboard_timeout_summary">Lõikelauale kopeeritud andmete hoidmise aeg (kui sinu seade sellist võimalust toetab)</string>
|
||||
<string name="content_description_keyboard_close_fields">Sulge väljad</string>
|
||||
<string name="case_sensitive">Tõstutundlik</string>
|
||||
<string name="error_no_hardware_key">Vali raudvaraline võti.</string>
|
||||
<string name="error_out_of_memory">Pole piisavat mälu kogu sinu andmebaasi laadimiseks.</string>
|
||||
<string name="error_XML_malformed">Vigane XML.</string>
|
||||
<string name="error_load_database">Andmebaasi laadimine ei õnnestunud.</string>
|
||||
<string name="error_label_exists">Selline silt on juba olemas.</string>
|
||||
<string name="secure_note">Turvaline märge</string>
|
||||
<string name="membership">Liikmelisus</string>
|
||||
<string name="error_can_not_handle_uri">KeePassDX ei oska töödelda seda võrguaadressi.</string>
|
||||
<string name="error_invalid_path">Palun kontrolli, et asukoht on õige.</string>
|
||||
<string name="error_move_entry_here">Kirjet ei saa siia tõsta.</string>
|
||||
<string name="error_copy_entry_here">Kirjet ei saa siia kopeerida.</string>
|
||||
<string name="error_copy_group_here">Gruppi ei saa siia kopeerida.</string>
|
||||
<string name="error_create_database_file">Selle salasõna ja võtmefailiga ei saa andmebaasi luua.</string>
|
||||
<string name="error_save_database">Andmebaasi salvestamine ei õnnestunud.</string>
|
||||
<string name="passphrase">Salafraas</string>
|
||||
<string name="error_field_name_already_exists">Selline väljanimi on juba olemas.</string>
|
||||
<string name="error_file_to_big">Fail, mida sa proovid üles laadida, on liiga suur.</string>
|
||||
<string name="error_upload_file">Faili andmete üleslaadimisel tekkis viga.</string>
|
||||
<string name="error_duplicate_file">Faili andmed on juba olemas.</string>
|
||||
<string name="error_remove_file">Faili andmete eemaldamisel tekkis viga.</string>
|
||||
<string name="error_start_database_action">Andmebaasiga toimingu tegemisel tekkis viga.</string>
|
||||
<string name="error_hardware_key_unsupported">Raudvaraline võti pole toetatud.</string>
|
||||
<string name="field_name">Välja nimi</string>
|
||||
<string name="field_value">Välja väärtus</string>
|
||||
<string name="file_not_found_content">Faili ei õnnestunud leida. Proovi teda avada failihalduriga.</string>
|
||||
<string name="file_browser">Failihaldur</string>
|
||||
<string name="generate_password">Loo salasõna</string>
|
||||
<string name="hint_conf_pass">Kinnita salasõna</string>
|
||||
<string name="hint_generated_password">Loodud salasõna</string>
|
||||
<string name="error_empty_key">Võti ei tohi olla tühi.</string>
|
||||
<string name="error_invalid_OTP">Vigane OTP salasõna.</string>
|
||||
<string name="error_move_group_here">Gruppi ei saa siia tõsta.</string>
|
||||
<string name="error_word_reserved">See sõna on reserveeritud muuks kasutuseks ning sa ei saa teda pruukida.</string>
|
||||
<string name="rounds">Iteratsioonide kordi</string>
|
||||
<string name="error_otp_period">Ajavahemik peab jääma %1$d ja %2$d vahele.</string>
|
||||
<string name="length">Pikkus</string>
|
||||
<string name="token">Tunnusluba</string>
|
||||
<string name="corrupted_file">Vigane või katkine fail.</string>
|
||||
<string name="hint_pass">Salasõna</string>
|
||||
<string name="education_generate_password_title">Loo tugev salasõna</string>
|
||||
<string name="content_description_repeat_toggle_password_visibility">Lülita salasõna nähtavus korduvalt sisse/välja</string>
|
||||
<string name="build_label">Kompileerimise viide: %1$s</string>
|
||||
<string name="error_load_database_KDF_memory">Võtit ei leidunud. Proovi vähendada seadistust KDFi „Mälukasutus“.</string>
|
||||
<string name="file_manager_install_description">Andmebaasifailide loomiseks, avamiseks ja salvestamiseks on vajalik failihalduri olemasolu, mis oskaks kasutada ACTION_CREATE_DOCUMENT ja ACTION_OPEN_DOCUMENT päringuid.</string>
|
||||
<string name="navigation_drawer_open">Menüü on avatud</string>
|
||||
<string name="navigation_drawer_close">Menüü on suletud</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft on <strong>avatud lähtekoodiga</strong> ja <strong>reklaamivaba</strong>. \nSeda programmi levitatakse ilma igasuguse garantiita ning ta on litsentseeritud <strong>GPLv3</strong> alusel.</string>
|
||||
<string name="html_about_privacy"><strong>See rakendus ei laadi kasutajate andmeid</strong>, ei loo ühendust ühegi serveriga, töötab nutiseadmes ainult kohalikus režiimis ja täies mahus austab kasutajate privaatsust.</string>
|
||||
<string name="html_about_contribution"><strong>Meie vabaduse säilitamiseks</strong>, <strong>vigade parandamiseks</strong>, <strong>uue funktsionaalsuse lisamiseks</strong> ning <strong>et olla alati tänapäevane</strong>, me tõsiselt arvestame sinu <strong>kaastöö ja osalemisega</strong>.</string>
|
||||
<string name="inherited">Päri</string>
|
||||
<string name="error_arc4">Arcfouri jadašiffer pole toetatud.</string>
|
||||
<string name="error_wrong_length">Väljale „Pikkus“ sisesta positiivne täisarv.</string>
|
||||
<string name="error_pass_gen_type">Vähemalt üks salasõna loomise tüüp peab olema valitud.</string>
|
||||
<string name="error_rounds_too_large">Iteratsioonide kordade arv on liiga suur. Muudame väärtuseks 2147483648.</string>
|
||||
<string name="error_string_key">Igal tekstil peab olema väljanimi.</string>
|
||||
<string name="error_otp_secret_key">Salavõti peab olema base32 vormingus.</string>
|
||||
<string name="error_otp_counter">Loendur peab olema vahemikus %1$d kuni %2$d.</string>
|
||||
<string name="error_otp_digits">Tunnusloas peab olema %1$d kuni %2$d numbrit.</string>
|
||||
<string name="hint_group_name">Grupi nimi</string>
|
||||
<string name="hint_icon_name">Ikooni nimi</string>
|
||||
<string name="hint_keyfile">Võtmefail</string>
|
||||
<string name="hint_length">Pikkus</string>
|
||||
<string name="password">Salasõna</string>
|
||||
<string name="hide_password_title">Peida salasõnad</string>
|
||||
<string name="hide_password_summary">Vakimisi peida salasõnad (***) maski taha</string>
|
||||
<string name="colorize_password_title">Värvi salasõnad</string>
|
||||
<string name="error_registration_read_only">Uue kirje salvestamine pole võimalik andmebaasis, milles on vaid lugemisõigus.</string>
|
||||
<string name="error_database_uri_null">Andmebaasi ühtset ressursiidentifikaatorit ei õnnestu laadida.</string>
|
||||
<string name="error_rebuild_list">Loendi korrektne uuesti loomine ei õnnestu.</string>
|
||||
<string name="invalid_algorithm">Vale algoritm.</string>
|
||||
<string name="invalid_db_same_uuid">%1$s sama UUIDga %2$s on juba olemas.</string>
|
||||
<string name="invalid_db_sig">Andmebaasi vormingut ei õnnestu tuvastada.</string>
|
||||
<string name="keyfile_is_empty">Võtmefail on tühi.</string>
|
||||
<string name="colorize_password_summary">Värvi salasõnas leiduvad tähed ja märgid tüübi alusel</string>
|
||||
<string name="list_entries_show_username_title">Näita kasutajanimesid</string>
|
||||
<string name="list_entries_show_username_summary">Kasutajanimede kuvamine sisendiloendites</string>
|
||||
<string name="list_groups_show_number_entries_title">Näita kirjete arvu</string>
|
||||
<string name="show_uuid_title">Näita UUID\'d</string>
|
||||
<string name="show_uuid_summary">Näita kirje või grupiga seotud UUID\'d</string>
|
||||
<string name="menu_hide_password">Peida salasõna</string>
|
||||
<string name="menu_showpass">Näita salasõna</string>
|
||||
<string name="error_cancel_by_user">Katkestatud kasutaja poolt.</string>
|
||||
<string name="error_driver_required">%1$s draiver on vajalik.</string>
|
||||
<string name="generate_keyfile">Loo võtmefail</string>
|
||||
<string name="nodes">Sõlmed</string>
|
||||
<string name="list_groups_show_number_entries_summary">Näita kirjete arvu grupis</string>
|
||||
<string name="recursive_number_entries_title">Rekursiivne kirjete arv</string>
|
||||
<string name="recursive_number_entries_summary">Näita kirjete arvu grupis ja alamgruppides rekursiivselt</string>
|
||||
<string name="menu_edit">Muuda</string>
|
||||
<string name="menu_copy">Kopeeri</string>
|
||||
<string name="menu_move">Teisalda</string>
|
||||
<string name="menu_lock">Lukusta andmebaas</string>
|
||||
<string name="menu_save_database">Salvesta andmed</string>
|
||||
<string name="menu_merge_database">Mesti andmed</string>
|
||||
<string name="menu_open">Ava</string>
|
||||
<string name="menu_search">Otsi</string>
|
||||
<string name="menu_reload_database">Laadi andmed uuesti</string>
|
||||
<string name="menu_delete">Kustuta</string>
|
||||
<string name="menu_paste">Aseta</string>
|
||||
<string name="menu_cancel">Katkesta</string>
|
||||
<string name="error_unable_merge_database_kdb">Mestimine teise kdb andmebaasifailiga ei õnnestu.</string>
|
||||
<string name="error_location_unknown">Andmebaasi asukoht pole teada ja toimingut andmebaasiga ei saa teha.</string>
|
||||
<string name="menu_empty_recycle_bin">Tühjenda prügikast</string>
|
||||
<string name="menu_restore_entry_history">Taasta ajalugu</string>
|
||||
<string name="menu_delete_entry_history">Kustuta ajalugu</string>
|
||||
<string name="menu_external_icon">Väline ikoon</string>
|
||||
<string name="minus">Miinus</string>
|
||||
<string name="export_app_properties_summary">Rakenduse seadistuste importimiseks loo fail</string>
|
||||
<string name="list_size_title">Loendite suurus</string>
|
||||
<string name="list_size_summary">Teksti suurus loendites</string>
|
||||
<string name="creating_database">Loome salasõnade andmebaasi…</string>
|
||||
<string name="loading_database">Laadime salasõnade andmebaasi…</string>
|
||||
<string name="lowercase">väiketähed</string>
|
||||
<string name="about">Rakenduse teave</string>
|
||||
<string name="menu_change_key_settings">Muuda peavõtit</string>
|
||||
<string name="copy_field">%1$s koopia</string>
|
||||
<string name="settings">Seadistused</string>
|
||||
<string name="menu_app_settings">Rakenduse seadistused</string>
|
||||
<string name="menu_app_settings_summary">Otsing, lukustus, ajalugu, omadused</string>
|
||||
<string name="menu_form_filling_settings">Vormide täitmine</string>
|
||||
<string name="menu_form_filling_settings_summary">Klahvistik, automaattäide, lõikelaud</string>
|
||||
<string name="menu_advanced_unlock_settings">Seadme lukustuse eemaldamine</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biomeetriline, nutiseadme reeglitega</string>
|
||||
<string name="menu_database_settings">Andmebaasi seadistused</string>
|
||||
<string name="menu_database_settings_summary">Metateave, prügikast, mallid, ajalugu</string>
|
||||
<string name="menu_security_settings">Turvalisuse seadistused</string>
|
||||
<string name="menu_security_settings_summary">Krüptimine, võtmetuletuse funktsioon</string>
|
||||
<string name="master_key_settings_summary">Muutmine, uuendamine</string>
|
||||
<string name="menu_donate">Toeta meid rahaliselt</string>
|
||||
<string name="menu_url">Ava võrguaadress</string>
|
||||
<string name="menu_file_selection_read_only">Kirjutuskaitstud</string>
|
||||
<string name="menu_open_file_read_and_write">Muudetav</string>
|
||||
<string name="never">Ei iialgi</string>
|
||||
<string name="no_results">Otsingul pole tulemusi</string>
|
||||
<string name="no_url_handler">Selle võrguaadressi avamiseks paigalda veebibrauser.</string>
|
||||
<string name="auto_focus_search_title">Kiirotsing</string>
|
||||
<string name="import_app_properties_title">Impordi rakenduse seadistused</string>
|
||||
<string name="import_app_properties_summary">Rakenduse seadistuste importimiseks vali fail</string>
|
||||
<string name="export_app_properties_title">Ekspordi rakenduse seadistused</string>
|
||||
<string name="success_export_app_properties">Rakenduse seadistused on eksporditud</string>
|
||||
<string name="error_export_app_properties">Rakenduse seadistuste eksportimisel tekkis viga.</string>
|
||||
<string name="root">Juurkaust</string>
|
||||
<string name="memory_usage">Mälukasutus</string>
|
||||
<string name="error_string_type">See tekst ei vasta päringule.</string>
|
||||
<string name="menu_master_key_settings">Peavõtme seadistused</string>
|
||||
<string name="menu_merge_from">Mesti siit…</string>
|
||||
<string name="menu_save_copy_to">Salvesta koopia siia…</string>
|
||||
<string name="menu_keystore_remove_key">Kustuta seadmelukustuse eemaldamise võti</string>
|
||||
<string name="select_database_file">Ava olemasolev salasõnalaegas</string>
|
||||
<string name="create_keepass_file">Loo uus salasõnalaegas</string>
|
||||
<string name="remember_database_locations_title">Jäta meelde andmebaaside asukohad</string>
|
||||
<string name="remember_database_locations_summary">Selle eelistusega jäetakse meelde kasutatud andmebaaside asukohad</string>
|
||||
<string name="remember_keyfile_locations_title">Jäta meelde võtmefailide asukohad</string>
|
||||
<string name="remember_keyfile_locations_summary">Selle eelistusega jäetakse meelde kasutatud võtmefailide asukohad</string>
|
||||
<string name="remember_hardware_key_title">Jäta raudvaralised võtmed meelde</string>
|
||||
<string name="remember_hardware_key_summary">Selle eelistusega peetakse arvet kasutatud raudvaraliste võtmete osas</string>
|
||||
<string name="show_recent_files_title">Näita hiljutisi faile</string>
|
||||
<string name="show_recent_files_summary">Näita hiljuti kasutatud andmebaaside asukohti</string>
|
||||
<string name="hide_broken_locations_title">Peida katkised andmebaaside lingid</string>
|
||||
<string name="hide_broken_locations_summary">Peida hiljutikasutatud andmebaaside loendist need kirjed, mille lingid enam ei toimi</string>
|
||||
<string name="success_import_app_properties">Rakenduse seadistused on imporditud</string>
|
||||
<string name="error_import_app_properties">Viga rakenduse seadistuste importimisel.</string>
|
||||
<string name="description_app_properties">KeePassDX võimalused rakenduse seadistuste haldamiseks</string>
|
||||
<string name="encryption_explanation">Salasõnalaeka andmebaasi puhul kasutatud krüptoalgoritm</string>
|
||||
<string name="kdf_explanation">Krüptoalgoritmi jaoks võtme loomisel peavõtit muudetakse võtetuletusfunktsiooniga, mis kasutab juhuslikke soolaterakesi.</string>
|
||||
<string name="memory_usage_explanation">Võtmetuletusfunktsiooni poolt kasutatud mälumaht.</string>
|
||||
<string name="parallelism">Rööpsus</string>
|
||||
<string name="saving_database">Salvestan andmebaasi…</string>
|
||||
<string name="command_execution">Käivitan käsku…</string>
|
||||
<string name="do_not_kill_app">Palun ära sulge rakendust…</string>
|
||||
<string name="space">Ruum</string>
|
||||
<string name="sort_ascending">Kasvavalt ↓</string>
|
||||
<string name="sort_groups_before">Grupid esmalt</string>
|
||||
<string name="sort_recycle_bin_bottom">Prügikast viimasena</string>
|
||||
<string name="sort_title">Pealkirja alusel</string>
|
||||
<string name="sort_creation_time">Loomise aja alusel</string>
|
||||
<string name="sort_last_modify_time">Muutmise aja alusel</string>
|
||||
<string name="sort_last_access_time">Viimati kasutamise aja alusel</string>
|
||||
<string name="version_label">Versioon: %1$s</string>
|
||||
<string name="configure">Seadista</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Sa pead igal juhul oma salasõnalaeka salasõna meeles pidama - seda ka siis, kui kasutad muid seadmes leiduvaid lukustuse eemaldamise võimalusi.</string>
|
||||
<string name="file_name">Failinimi</string>
|
||||
<string name="path">Asukoht</string>
|
||||
<string name="assign_master_key">Seadista peavõti</string>
|
||||
<string name="data">Andmed</string>
|
||||
<string name="database_data_compression_title">Andmete pakkimine</string>
|
||||
<string name="database_data_compression_summary">Andmete pakkimine vähendab andmebaasi suurust ja andmeruumi kasutust</string>
|
||||
<string name="database_data_remove_unlinked_attachments_title">Eemalda linkimata andmed</string>
|
||||
<string name="database_data_remove_unlinked_attachments_summary">Sellega eemaldad andmebaasis leiduvad andmed, mis pole seotud ühegi kirjega</string>
|
||||
<string name="download">Laadi alla</string>
|
||||
<string name="download_complete">Allalaaditud!</string>
|
||||
<string name="download_canceled">Katkestatud!</string>
|
||||
<string name="unit_byte">B</string>
|
||||
<string name="unit_kibibyte">KiB</string>
|
||||
<string name="unit_mebibyte">MiB</string>
|
||||
<string name="unit_gibibyte">GiB</string>
|
||||
<string name="entropy">Entroopia: %1$s bitti</string>
|
||||
<string name="entropy_high">Entroopia: kõrge</string>
|
||||
<string name="entropy_calculate">Entroopia: arvutame…</string>
|
||||
<string name="style_choose_title">Rakenduse kujundus</string>
|
||||
<string name="style_choose_summary">Rakenduses kasutatav valmiskujundus</string>
|
||||
<string name="style_name_forest">Mets</string>
|
||||
<string name="style_name_divine">Jumalik</string>
|
||||
<string name="style_name_classic">Klassikaline</string>
|
||||
<string name="style_name_simple">Lihtne</string>
|
||||
<string name="style_name_moon">Kuu</string>
|
||||
<string name="style_name_sun">Päike</string>
|
||||
<string name="style_name_reply">Vastus</string>
|
||||
<string name="style_name_kunzite">Kunzite</string>
|
||||
<string name="style_name_follow_system">Kasuta süsteemi kujundust</string>
|
||||
<string name="style_brightness_title">Kujunduse eredus</string>
|
||||
<string name="style_brightness_summary">Vali heleda või tumeda kujunduse vahel</string>
|
||||
<string name="style_name_light">Hele kujundus</string>
|
||||
<string name="icon_section_standard">Standardne</string>
|
||||
<string name="icon_section_custom">Sinu valitud</string>
|
||||
<string name="icon_pack_choose_title">Ikoonikomplekt</string>
|
||||
<string name="icon_pack_choose_summary">Vali rakenduses kasutatav ikoonikomplekt</string>
|
||||
<string name="hide_templates_title">Peida mallid</string>
|
||||
<string name="hide_templates_summary">Mallid jäävad näitamata</string>
|
||||
<string name="error_autofill_enable_service">Automaattäite teenuse sisselülitamine ei õnnestunud.</string>
|
||||
<string name="rounds_explanation">Täiendavad iteratsioonid parandavad kaitset võimaliku jõuründe korral, kuid aeglustavad märgatavalt salasõnalaeka andmebaasi laadimist ja salvestamist.</string>
|
||||
<string name="sort_username">Kasutajanime alusel</string>
|
||||
<string name="parallelism_explanation">Rööpsuse määr (ehk protsessorilõimede arv), mida võtmetuletusfunktsioon kasutab.</string>
|
||||
<string name="style_name_dark">Tume kujundus</string>
|
||||
<string name="filter">Filter</string>
|
||||
<string name="sort_menu">Järjesta</string>
|
||||
<string name="sort_db">Loomulikus järjekorras</string>
|
||||
<string name="contribute">Osale</string>
|
||||
<string name="download_attachment">Laadi %1$s alla</string>
|
||||
<string name="upload_attachment">Laadi %1$s üles</string>
|
||||
<string name="download_initialization">Alustan allalaadimist…</string>
|
||||
<string name="download_progression">Allalaadimise kulg: %1$d%%</string>
|
||||
<string name="download_finalization">Lõpetan allalaadimist…</string>
|
||||
<string name="show_entry_colors_title">Värvid sisestamisel</string>
|
||||
<string name="show_entry_colors_summary">Tausta- ja esiplaani värvid andmete sisestamise ajal</string>
|
||||
<string name="hide_expired_entries_title">Peida aegunud kirjed</string>
|
||||
<string name="hide_expired_entries_summary">Andmebaasis leiduvad aegunud kirjed jäävad näitamata</string>
|
||||
<string name="auto_focus_search_summary">Andmebaasi avamisel alusta otsinguga</string>
|
||||
<string name="subdomain_search_title">Alamdomeeni otsing</string>
|
||||
<string name="subdomain_search_summary">Otsi võrgudomeene alamdomeeni piiranguga</string>
|
||||
<string name="progress_create">Loome uue salasõnade andmebaasi…</string>
|
||||
<string name="progress_title">Töötlen…</string>
|
||||
<string name="read_only">Kirjutuskaitstud</string>
|
||||
<string name="read_only_warning">Sõltuvalt sinu kasutatavast failihaldurist ei pruugi KeePassDXl olla õigust andmeruumis salvestada.</string>
|
||||
<string name="contains_duplicate_uuid">Salasõnade andmebaasis on topelt-UUIDsd.</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Selle vea saad lahendada luues topelt-UUIDde asemele uued väärtused. Kas jätkame?</string>
|
||||
<string name="search_mode">Otsinguviis</string>
|
||||
<string name="save_mode">Salvestusviis</string>
|
||||
<string name="selection_mode">Valikuviis</string>
|
||||
<string name="registration_mode">Registreerimisviis</string>
|
||||
<string name="invalid_credentials">Salasõna või võtmefaili ei õnnestunud lugeda.</string>
|
||||
<string name="protection">Kaitse</string>
|
||||
<string name="underline">Allajoonitud</string>
|
||||
<string name="search">Otsi</string>
|
||||
<string name="unsupported_db_version">Mittetoetatud andmebaasi versioon.</string>
|
||||
<string name="uppercase">Suurtähed</string>
|
||||
<string name="warning">Hoiatus</string>
|
||||
<string name="warning_password_encoding">Väldi tähemärke, mis pole kasutusel andmebaasifaili kooditabelis (tundmatud tähemärgid muudetakse samaks täheks).</string>
|
||||
<string name="warning_database_read_only">Andmebaasimuudatuste salvestamiseks luba kirjutusõigused</string>
|
||||
<string name="warning_database_link_revoked">Failihaldur keelas ligipääsu failile</string>
|
||||
<string name="warning_database_already_opened">Üks andmebaas on juba avatud, enne uue avamist esmalt sulge eelmine andmebaas</string>
|
||||
<string name="warning_no_encryption_key">Kas jätkame ilma krüptivõtmeta?</string>
|
||||
<string name="warning_empty_recycle_bin">Kas kustutame kõik prügikastis asuvad sõlmed jäädavalt?</string>
|
||||
<string name="warning_sure_add_file">Kas ikkagi lisame faili?</string>
|
||||
<string name="warning_replace_file">Selle faili üleslaadimine asendab olemasoleva faili.</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Laadi andmebaas uuesti koos viimaste muudatustega.</string>
|
||||
<string name="warning_database_info_reloaded">Andmebaasi uuesti laadimine kustutab võimalikud kohalikud muudatused.</string>
|
||||
<string name="database_history">Ajalugu</string>
|
||||
<string name="properties">Omadused</string>
|
||||
<string name="menu_appearance_settings">Välimus</string>
|
||||
<string name="menu_appearance_settings_summary">Välimus, värvid, omadused</string>
|
||||
<string name="html_text_dev_feature_upgrade">Ära unusta paigaldada viimaseid versioone ja tagada, et rakendus on alati uuendatud.</string>
|
||||
<string name="at_least_one_char">Vähemalt üks tähemärk igast</string>
|
||||
<string name="exclude_ambiguous_chars">Välista mitmetähenduslikud tähemärgid</string>
|
||||
<string name="consider_chars_filter">Arvesta tähemärkidega</string>
|
||||
<string name="word_separator">Eraldaja</string>
|
||||
<string name="ignore_chars_filter">Eira tähemärke</string>
|
||||
<string name="lower_case">väiketähed</string>
|
||||
<string name="upper_case">SUURTÄHED</string>
|
||||
<string name="title_case">Esimesed Suurtähed</string>
|
||||
<string name="character_count">Tähemärkide arv: %1$d</string>
|
||||
<string name="screenshot_mode_banner_text">Ekraanitõmmise režiim</string>
|
||||
<string name="error_disallow_no_credentials">Vähemalt üks autentimise vahend peab olema sisestatud.</string>
|
||||
<string name="warning_permanently_delete_nodes">Kas kustutame valitud sõlmed jäädavalt?</string>
|
||||
<string name="show_otp_token_title">Näita ühekordse salasõna tunnusluba</string>
|
||||
<string name="show_otp_token_summary">Näita ühekordse salasõna tunnuslube kirjete loendis</string>
|
||||
<string name="compression">Pakkimine</string>
|
||||
<string name="compression_gzip">Gzip</string>
|
||||
<string name="recycle_bin">Prügikast</string>
|
||||
<string name="templates">Mallid</string>
|
||||
<string name="keyboard">Klahvistik</string>
|
||||
<string name="select_entry">Vali kirje</string>
|
||||
<string name="education_setup_OTP_summary">Ühekordsete salasõnade (HOTP / TOTP) kasutuselevõtmine tunnuslubade loomiseks kaksikautentimise (2FA) jaoks.</string>
|
||||
<string name="error_otp_type">See vorm ei suuda korrektselt tuvastada ühekordse salasõna tüüpi ja seetõttu ja seetõttu ka korrektse tunnusloa loomine ei toimi.</string>
|
||||
<string name="compression_none">Puudub</string>
|
||||
<string name="warning_empty_password">Kas soovid jätkata ilma salasõna-põhise lukustuse eemaldamise kaitseta?</string>
|
||||
<string name="warning_sure_remove_data">Kas eemaldame need andmed ikkagi?</string>
|
||||
<string name="warning_empty_keyfile">Tühja võtmefaili lisamine pole turvakaalutlustel hea mõte.</string>
|
||||
<string name="warning_large_keyfile">Liiga suure võtmefaili lisamine pole hea mõte - see võib tekitada olukorra, kus andmebaasi ei saa avada.</string>
|
||||
<string name="warning_empty_keyfile_explanation">Võtmefaili sisu ei tohiks kunagi muutuda ning ideaalis peaks ta koosnema juhuslikult loodud andmetest.</string>
|
||||
<string name="warning_database_info_changed">Sinu andmebaasis leiduvat teavet on muutnud väline rakendus.</string>
|
||||
<string name="warning_copy_permission">Selleks, et lõikelauaga seotud teavitused toimiks, peavad rakendusel olema teavituste saatmise õigused.</string>
|
||||
<string name="ask">Küsi</string>
|
||||
<string name="merge_success">Mestimine õnnestus</string>
|
||||
<string name="biometric_security_update_required">Vajalik on biomeetrilise turvalisuse uuendus.</string>
|
||||
<string name="encrypted_value_stored">Krüptitud salasõna on salvestatud</string>
|
||||
<string name="advanced_unlock_scanning_error">Viga seadme lukustuse eemaldamisel: %1$s</string>
|
||||
<string name="advanced_unlock_not_recognized">Ei õnnestunud tuvastada lukustuse eemaldamiseks vajalikku tunnust</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Seadme lukustuse eemaldamise päringu käivitamine ei õnnestu.</string>
|
||||
<string name="biometric">Biomeetriline</string>
|
||||
<string name="device_credential">Seadme autentimine</string>
|
||||
<string name="autofill">Automaattäide</string>
|
||||
<string name="general">Üldist</string>
|
||||
<string name="password_size_title">Loodud salasõna suurus</string>
|
||||
<string name="password_size_summary">Määratle loodavate salasõnade vaikimisi suuruse</string>
|
||||
<string name="list_password_generator_options_summary">Määratle loodavates salasõnades lubatud tähemärgid</string>
|
||||
<string name="lock_database_screen_off_title">Ekraanilukustus</string>
|
||||
<string name="lock_database_screen_off_summary">Mõni sekund peale ekraani väljalülitumist lukusta andmebaas</string>
|
||||
<string name="lock_database_back_root_title">Vajuta nuppu „Tagasi“</string>
|
||||
<string name="lock_database_show_button_title">Näita lukustuse nuppu</string>
|
||||
<string name="lock_database_back_root_summary">Lukusta andmebaas peale juurkaustas „Tagasi“ nupu klõpsimist</string>
|
||||
<string name="allow_copy_password_title">Lõikelaua usaldamine</string>
|
||||
<string name="allow_copy_password_summary">Luba sisestatud salasõna ja kaitstud väljade kopeerimise lõikelauale</string>
|
||||
<string name="education_unlock_title">Eemalda oma andmebaasi lukustus</string>
|
||||
<string name="education_unlock_summary">Oma andmebaasi lukustuse eemaldamiseks sisesta oma salasõna ja/või lukufail.\n\nPeale iga muudatust tee andmebaasifailist varukoopia mõnda turvalisse kohta.</string>
|
||||
<string name="education_read_only_title">Lisa oma andmebaasile kirjutuskaitse</string>
|
||||
<string name="html_text_dev_feature_thanks">Suur tänu kaastöö eest.</string>
|
||||
<string name="permission">Õigused</string>
|
||||
<string name="configure_biometric">Ühtegi biomeetrilist ega seadmekohast autentimist pole kasutusel.</string>
|
||||
<string name="warning_database_info_changed_options">Sa võid kas andmed mestida, kirjutada välised muudatused üle või laadida viimased välised muudatused.</string>
|
||||
<string name="unlock_and_link_biometric">Seadme lukustuse eemaldamise link</string>
|
||||
<string name="later">Hiljem</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Sisesta salasõna ja siis klõpsi seda nuppu.</string>
|
||||
<string name="html_text_dev_feature_work_hard">Me näeme hoolega vaeva, et see funktsionaalsus leiduks üsna pea mõnes rakenduse järgmises versioonis.</string>
|
||||
<string name="list_password_generator_options_title">Tähemärgid salasõnas</string>
|
||||
<string name="allow_copy_password_warning">Hoiatus: süsteemiülene lõikelaud on kõikide rakenduste kasutuses. Kui sa kopeerid sinna delikaatseid andmeid, siis muu tarkvara võib seda seal näha. Kui sa kasutad KDE Connecti või muud lõikelaua jagamise teenust, siis sõltuvalt seadistustest võivad need delikaatsed andmed olla nähtavad ka muudes seadmetes.</string>
|
||||
<string name="warning_database_revoked">Failihaldur on blokeerinud ligipääsu failile. Sulge andmebaas ja ava ta uuesti oma asukohast.</string>
|
||||
<string name="autofill_sign_in_prompt">Logi sisse KeePassDX abil</string>
|
||||
<string name="autofill_service_name">KeePassDXi automaattäite teenus</string>
|
||||
<string name="autofill_explanation_summary">Täitmaks andmevorme teistes rakenduses, luba automaattäite teenus</string>
|
||||
<string name="autofill_select_entry">Vali kirje…</string>
|
||||
<string name="set_autofill_service_title">Vali vaikimisi kasutatav automaattäite teenus</string>
|
||||
<string name="autofill_preference_title">Automaattäite teenuse seadistused</string>
|
||||
<string name="database_opened">Andmebaas on avatud</string>
|
||||
<string name="clipboard">Lõikelaud</string>
|
||||
<string name="clipboard_explanation_summary">Kopeeri kirjeid kasutades oma nutiseadme lõikelauda</string>
|
||||
<string name="clipboard_notifications_title">Lõikelaua teavitused</string>
|
||||
<string name="clipboard_notifications_summary">Kirje vatamisel näita väljade kopeerimiseks lõikelaua teavitusi</string>
|
||||
<string name="lock">Lukk</string>
|
||||
<string name="clipboard_warning">Kui lõikelaua automaatne kustutamine ei toimi, siis palun kustuta tema sisu käsitsi.</string>
|
||||
<string name="lock_database_show_button_summary">Liideses kuvame luku ikooni</string>
|
||||
<string name="content">Sisu</string>
|
||||
<string name="unavailable_feature_hardware">Vastavat riistavara ei leidunud.</string>
|
||||
<string name="unavailable_feature_version">Nutiseadmes on operatsioonisüsteemiks Android %1$s, aga vaja oleks versiooni %2$s või hilisemat.</string>
|
||||
<string name="recycle_bin_title">Prügikasti kasutus</string>
|
||||
<string name="recycle_bin_summary">Enne kustutamist viska kõik grupid ja kirjed gruppi nimega „Prügikast“</string>
|
||||
<string name="recycle_bin_group_title">Grupp Prügikast</string>
|
||||
<string name="templates_group_enable_title">Mallide kasutus</string>
|
||||
<string name="templates_group_enable_summary">Kirje väljade täitmisel kasuta dünaamilisi malle</string>
|
||||
<string name="templates_group_uuid_title">Mallide grupp</string>
|
||||
<string name="max_history_items_title">Suurim ajalookirjete arv</string>
|
||||
<string name="max_history_size_title">Suurim ajalookirjete maht</string>
|
||||
<string name="max_history_size_summary">Piira kirjekohast ajalookirjete mahtu</string>
|
||||
<string name="settings_database_recommend_changing_master_key_title">Soovitatav uuendus</string>
|
||||
<string name="max_history_items_summary">Piira kirjekohast ajalookirjete arvu</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">Soovita üldsalasõna muutmist (näidatud päevade järel)</string>
|
||||
<string name="settings_database_force_changing_master_key_summary">Sunni üldsalasõna muutmist (näidatud päevade järel)</string>
|
||||
<string name="settings_database_force_changing_master_key_title">Sunnitud uuendus</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_title">Sunnitud uuendus järgmisel korral</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Sunni üldsalasõna muutmist järgmisel kasutuskorral (üks kord)</string>
|
||||
<string name="monospace_font_fields_enable_title">Väljade kirjetüüp</string>
|
||||
<string name="enable">Võta kasutusele</string>
|
||||
<string name="disable">Eemalda kasutuselt</string>
|
||||
<string name="notification">Teavitus</string>
|
||||
<string name="clear_clipboard_notification_title">Kustuta sulgemisel</string>
|
||||
<string name="database_name_title">Salasõnade andmebaasi nimi</string>
|
||||
<string name="database_description_title">Salasõnade andmebaasi kirjeldus</string>
|
||||
<string name="clear_clipboard_notification_summary">Kui lõikelaua jaoks lubatud kestus aegub või sulged teavituse kasutamiseks, siis lukusta andmebaas</string>
|
||||
<string name="database_default_username_title">Vakimisi kasutajanimi</string>
|
||||
<string name="database_custom_color_title">Sinu valitud värv aalasõnade andmebaasile</string>
|
||||
<string name="database_version_title">Salasõnade andmebaasi versioon</string>
|
||||
<string name="text_appearance">Tekst</string>
|
||||
<string name="application_appearance">Kasutajaliides</string>
|
||||
<string name="other">Muud</string>
|
||||
<string name="monospace_font_fields_enable_summary">Parema loetavuse huvides muuda väljadel kasutatavat kirjatüüpi</string>
|
||||
<string name="education_lock_title">Lukusta andmebaas</string>
|
||||
<string name="education_lock_summary">Võid seadistada andmebaasi automaatse lukustuse mingi aja möödumisel või ekraanilukustuse käivitumisel ning lihtsalt teha seda vastvast ikoonist.</string>
|
||||
<string name="education_sort_title">Objektide järjestus</string>
|
||||
<string name="warning_exact_alarm">Kuna sa pole lubanud rakendusel kasutada täpset äratust, siis kõik äratustest sõltuvad ajalised funktsionaalsused saavad toimuma ebatäpselt.</string>
|
||||
<string name="unavailable_feature_text">Seda funktsionaalsust ei õnnestunud käivitada.</string>
|
||||
<string name="autofill_application_id_blocklist_summary">Selles loendis olevad rakendused ei tohi kasutada automaattäite teenust</string>
|
||||
<string name="autofill_block">Keela automaattäite teenus</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Küsi peale sisestusvormi täitmist, kas vormi andmed peaks salvestama</string>
|
||||
<string name="autofill_application_id_blocklist_title">Keelatud rakenduste loend</string>
|
||||
<string name="autofill_block_restart">Keelamise jõustamiseks käivita antud sisendvormiga rakendus uuesti.</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Automaattäite soovitused on lisatud.</string>
|
||||
<string name="autofill_read_only_save">Kui andmebaas on avatud ainult lugemiseks, siis andmete salvestamine pole võimalik.</string>
|
||||
<string name="delete_entered_password_summary">Kustutab salasõna, mis oli kasutusel andmebaasiga ühenduse loomise ajal</string>
|
||||
<string name="enable_read_only_summary">Vaikimisi ava andmebaas vaid lugemiseks</string>
|
||||
<string name="enable_screenshot_mode_summary">Luba teistel rakendusel teha sellest rakendusest ekraanitõmmist või salvestada tema ekraanivaadet</string>
|
||||
<string name="autofill_close_database_title">Sulge andmebaas</string>
|
||||
<string name="autofill_close_database_summary">Peale automaattäite kasutamist sulega andmebaas</string>
|
||||
<string name="autofill_inline_suggestions_title">Otsetäite soovitused</string>
|
||||
<string name="autofill_inline_suggestions_summary">Proovi kuvada automaattäite soovitusi, kui klahvistik sellist võimalust toetab</string>
|
||||
<string name="autofill_manual_selection_title">Käsitsi valik</string>
|
||||
<string name="autofill_manual_selection_summary">Võimalda kasutaval käsitsi valida andmebaasi kirjet</string>
|
||||
<string name="autofill_save_search_info_title">Salvesta otsingud</string>
|
||||
<string name="autofill_save_search_info_summary">Hilisema mugavama kasutamise nimel proovi käsitsi valiku puhul salvestada otsinguteavet</string>
|
||||
<string name="autofill_ask_to_save_data_title">Küsi, kas salvestada andmeid</string>
|
||||
<string name="autofill_web_domain_blocklist_title">Keelatud veebidomeenide loend</string>
|
||||
<string name="autofill_web_domain_blocklist_summary">Selles loendis olevad domeenid ei tohi kasutada automaattäite teenust</string>
|
||||
<string name="allow_no_password_title">Ära kasuta peavõtit</string>
|
||||
<string name="allow_no_password_summary">Kui kasutajanimi või salasõna pole valitud, siis võimaldab klõpsida „Ava“ nuppu</string>
|
||||
<string name="delete_entered_password_title">Kustuta salasõna</string>
|
||||
<string name="enable_read_only_title">Kirjutuskaitstud</string>
|
||||
<string name="enable_screenshot_mode_title">Ekraanitõmmiste lubamine</string>
|
||||
<string name="enable_education_screens_title">Koolitusvihjed</string>
|
||||
<string name="enable_education_screens_summary">Õppimaks, kuidas rakendus toimib, tõsta esile kasutajaliidese elemente</string>
|
||||
<string name="reset_education_screens_title">Lähtesta koolitusvihjed</string>
|
||||
<string name="reset_education_screens_summary">Luba näidata kogu koolitusteavet uuesti</string>
|
||||
<string name="reset_education_screens_text">Koolitusvihjed on lähtestatud</string>
|
||||
<string name="enable_auto_save_database_title">Salvesta andmebaas automaatselt</string>
|
||||
<string name="enable_auto_save_database_summary">Salvesta andmebaas automaatselt peale iga olulist tegevust (kui „Muudetav“ režiim on kasutusel)</string>
|
||||
<string name="enable_keep_screen_on_title">Hoia ekraan sisselülitatuna</string>
|
||||
<string name="enable_keep_screen_on_summary">Kirje vaatamisel või muutmisel hoia ekraan sisselülitatuna</string>
|
||||
<string name="education_create_database_title">Loo oma salasõnade andmebaas</string>
|
||||
<string name="education_select_database_title">Ava olemasolev salasõnade andmebaas</string>
|
||||
<string name="education_new_node_summary">Sinu digitaalsed identiteedid on vormistatud kirjetena.\n\nÜlevaatlikkuse mõttes saad neid rühmitada gruppidena (kaustadena).</string>
|
||||
<string name="education_create_database_summary">Loo oma esimene andmebaasifail, mis on mõeldud salasõnade halduseks.</string>
|
||||
<string name="education_select_database_summary">Ava varemloodud andmebaasifail, mis on mõeldud salasõnade halduseks.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Link seadme lukustuse eemaldamisele</string>
|
||||
<string name="unlock">Eemalda lukustus</string>
|
||||
<string name="advanced_unlock_tap_delete">Seadme lukustuse eemaldamise võtmete kustutamiseks klõpsi</string>
|
||||
<string name="advanced_unlock_explanation_summary">Andmebaasi mugavamaks avamiseks kasuta nutiseadme lukustuse eemaldamise võimalusi</string>
|
||||
<string name="device_credential_unlock_enable_title">Lukustuse eemaldamine nutiseadme autentimisega</string>
|
||||
<string name="biometric_unlock_enable_title">Biomeetriline lukustuse eemaldamine</string>
|
||||
<string name="biometric_unlock_enable_summary">Saad andmebaasi avamiseks kasutada nutiseadme biomeetrilise autentimise võimalusi</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Seadme lukustuse eemaldamise aegumine</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">Lukustuse eemaldamise kestus enne kui tema sisu kustutatakse</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Ära salvesta mitte mingit krüptitud sisu nutiseadme lukustuse eemaldamiseks</string>
|
||||
<string name="advanced_unlock_timeout">Seadme lukustuse eemaldamise ajalõpp</string>
|
||||
<string name="device_credential_unlock_enable_summary">Saad andmebaasi avamiseks kasutada nutiseadme tavaautentimise võimalusi</string>
|
||||
<string name="biometric_auto_open_prompt_title">Ava viip automaatselt</string>
|
||||
<string name="biometric_delete_all_key_summary">Kustuta kõik krüptovõtmed, mis on kasutusel nutiseadme-põhise autentimise alusel andmebaasi lukustuse eemaldamisega</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Kas kustutame kõik krüptovõtmed, mis on kasutusel nutiseadme-põhise autentimise alusel andmebaasi lukustuse eemaldamisega?</string>
|
||||
<string name="biometric_delete_all_key_title">Kustuta krüptovõtmed</string>
|
||||
<string name="education_advanced_unlock_title">Nutiseadme-põhine andmebaasi lukustuse eemaldamine</string>
|
||||
<string name="education_new_node_title">Lisa kirjeid andmebaasi</string>
|
||||
<string name="education_search_title">Otsi kirjete seast</string>
|
||||
<string name="education_search_summary">Vajaliku salasõna otsimiseks kasuta pealkirja, kasutajanime või muid kirje välju.</string>
|
||||
<string name="education_add_attachment_title">Manuste lisamine</string>
|
||||
<string name="education_add_attachment_summary">Kui soovid kirjesse kaasata väliseid olulisi andmeid, siis saad seda teha manuse lisamise abil.</string>
|
||||
<string name="education_sort_summary">Vali kirjete ja gruppide järjestamise viis.</string>
|
||||
<string name="education_donation_title">Osale</string>
|
||||
<string name="education_donation_summary">Aita parandada rakenduse töökindlust ja turvalisust ning lisada uusi funktsionaalsuseid.</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Seadme lukustuse ajutine eemaldamine</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Kui andmebaas on seadistatud kasutama nutiseadme-põhist lukustuse eemaldamist, siis ava autentimisvaade automaatselt</string>
|
||||
<string name="education_field_copy_title">Välja kopeerimine</string>
|
||||
<string name="education_field_copy_summary">Kopeeritud väljade sisu saad asetada kõikjale.\n\nVäljade täitmiseks kasuta meetodist, mis sulle sobib. Ära unusta kopeeritud saalsõna lõikelaualt kustutada.</string>
|
||||
<string name="unavailable">Pole saadaval</string>
|
||||
<string name="error_challenge_already_requested">Autentimispäring on juba esitatud.</string>
|
||||
<string name="error_response_already_provided">Autentimisvastus on juba antud.</string>
|
||||
<string name="error_no_response_from_challenge">Autentimisvastust ei õnnestu autentimispäringust tuletada.</string>
|
||||
<string name="warning_database_notification_permission">Teevituste saatmise õigused võimaldavad sulle kuvada andmebaasi olekut ning lukustada seda lihtsalt ligipääsetvast nupust.\n\nKui sa seda õigust ei anna, siis taustal olev andmebaas pole nähtav, kui mõni muu rakendus on parasjagu esiplaanil.</string>
|
||||
<string name="warning_keyfile_integrity">Kuna Android saab seda faili lennult muuta, siis tema räsiväärtus pole garanteeritud. Korraliku andmetervikluse tagamiseks muuda .bin faili laiendiks.</string>
|
||||
<string name="warning_file_too_big">KeePassi andmebaas peaks sisaldama vaid väikseid manuseid (näiteks PGP võtmefaile).\n\nSelle faili lisamisega võib sinu andmebaas minna väga mahukaks ja sellega väheneb kasutusjõudlus ja -kiirus.</string>
|
||||
<string name="keystore_not_accessible">Võtmehoidla pole korrektselt valmendatud.</string>
|
||||
<string name="special">Eriteave</string>
|
||||
<string name="warning_remove_unlinked_attachment">Linkimata andmete eemaldamine võib vähendada andmebaasi suurust, aga samaga võivad kaduda ka andmed, mida kasutavad KeePassi lisamoodulid.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Seadmekohane lukustuse eemaldamine</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Ava andmebaas kasutades nutiseadme-põhist autentimist</string>
|
||||
<string name="advanced_unlock_invalid_key">Seadme lukustuse eemaldamise võtit ei õnnestu lugeda. Palun kustuta ta ja korda lukustuse eemaldamist tuvastamise alusel.</string>
|
||||
<string name="advanced_unlock">Nutiseadme-põhine lukustuse eemaldamine</string>
|
||||
<string name="magic_keyboard_title">Maagiklahvistik</string>
|
||||
<string name="device_keyboard_setting_title">Nutiseadme klahvistiku seadistused</string>
|
||||
<string name="keyboard_entry_category">Sisestus</string>
|
||||
<string name="keyboard_selection_entry_title">Sisestuse valik</string>
|
||||
<string name="magic_keyboard_explanation_summary">Lülita sisse kohandatud klahvistik, mis eeltäidab sinu saalsõnad ja muud olulised väljad</string>
|
||||
<string name="keyboard_label">Maagiklahvistik (KeePassDX)</string>
|
||||
<string name="keyboard_name">Maagiklahvistik (Magikeyboard)</string>
|
||||
<string name="keyboard_setting_label">Maagiklahvistiku seadistused</string>
|
||||
<string name="keyboard_notification_entry_title">Teavituste info</string>
|
||||
<string name="keyboard_notification_entry_summary">Kui kirje on saadaval, siis näita teavitust</string>
|
||||
<string name="keyboard_save_search_info_title">Salvesta jagatud teave</string>
|
||||
<string name="keyboard_notification_entry_clear_close_title">Sulgemisel kustuta</string>
|
||||
<string name="keyboard_notification_entry_clear_close_summary">Teavituse sulgemisel sulge ka andmebaas</string>
|
||||
<string name="keyboard_save_search_info_summary">Hilisema mugava kasutamise jaoks proovi käsitsi sisestamisel salvestada jagatud teavet</string>
|
||||
<string name="keyboard_selection_entry_summary">Kui vaatad mõnda kirjet rakenduses KeePassDX, siis edasta selle kirje andmed Maagiklahvistikule</string>
|
||||
<string name="keyboard_notification_entry_content_title">%1$s on Maagiklahvistikus saadaval</string>
|
||||
<string name="keyboard_entry_timeout_title">Aegumine</string>
|
||||
<string name="keyboard_entry_timeout_summary">Aeg, peale mida kirje kustub klahvistikus</string>
|
||||
<string name="keyboard_notification_entry_content_title_text">Sisestus</string>
|
||||
<string name="keyboard_notification_entry_content_text">%1$s</string>
|
||||
<string name="keyboard_appearance_category">Välimus</string>
|
||||
<string name="keyboard_theme_title">Klahvistiku kujundus</string>
|
||||
<string name="keyboard_auto_go_action_title">Automaatne võtmetoiming</string>
|
||||
<string name="keyboard_keys_category">Klahvid</string>
|
||||
<string name="keyboard_auto_go_action_summary">„Jätka“ võtme toiming pärast „Väli“ võtme vajutamist</string>
|
||||
<string name="keyboard_key_vibrate_title">Värin võtmevajutusel</string>
|
||||
<string name="keyboard_key_sound_title">Kuuldavad võtmevajutused</string>
|
||||
<string name="keyboard_change">Klahvistiku vahetamine</string>
|
||||
<string name="keyboard_previous_database_credentials_title">Andmebaasi autentimise vaade</string>
|
||||
<string name="keyboard_previous_database_credentials_summary">Lülita andmebaasi salasõna vaatest automaatselt tagasi eelmisele klahvistikule</string>
|
||||
<string name="keyboard_previous_search_title">Otsinguvaade</string>
|
||||
<string name="keyboard_previous_search_summary">Lülita otsinguvaatest automaatselt tagasi eelmisele klahvistikule</string>
|
||||
<string name="keyboard_previous_fill_in_title">Tagasilülitamine</string>
|
||||
<string name="back_to_previous_keyboard">Tagasi eelmise klahvistiku juurde</string>
|
||||
<string name="custom_fields">Kohandatud väljad</string>
|
||||
<string name="keyboard_previous_lock_title">Andmebaasi lukustamine</string>
|
||||
<string name="keyboard_previous_lock_summary">Peale andmebaasi lukustamist lülita automaatselt tagasi eelmisele klahvistikule</string>
|
||||
<string name="education_advanced_unlock_summary">Andmebaasi lukustuse kiireks eemaldamiseks seo oma andmebaasi salasõna nutiseadme biomeetrilise või tavatuvastusega.</string>
|
||||
<string name="education_entry_edit_title">Kirje muutmine</string>
|
||||
<string name="education_entry_edit_summary">Võid kirjele lisada omaloodud välju ning ka neid omavahel siduda.</string>
|
||||
<string name="education_generate_password_summary">Sisestusvormil leiduvate eelmistuste alusel saad antud kirje jaoks luua tugeva salasõna ning seda andmebaasis hoides tagad, et korralik salasõna ei unune.</string>
|
||||
<string name="education_validate_entry_title">Kirje kontrollimine ja salvestamine</string>
|
||||
<string name="education_entry_new_field_title">Omaloodud väljade lisamine</string>
|
||||
<string name="education_entry_new_field_summary">Registreeri täiendav väli, lisa sinna sisu ning soovi korral ka kaitse seda.</string>
|
||||
<string name="html_text_buy_pro">Kui ostaksid, Pro-versiooni, siis saad võimaluse kasutada seda <strong>välimust</strong> ja aitad oluliselt määral <strong>kogukonna projekte realiseerida.</strong></string>
|
||||
<string name="html_text_feature_generosity">See <strong>välimus </strong> on saadaval tänu sinu heldusele.</string>
|
||||
<string name="html_text_dev_feature">Hetkel on see funktsionaalsus <strong>veel arendusjärgus</strong> ja vajab lähiajal saadaval olemiseks sinu <strong>panust</strong>.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">Ostes <strong>Pro-versiooni</strong>,</string>
|
||||
<string name="html_text_dev_feature_contibute">või <strong>tehes kaastööd</strong>,</string>
|
||||
<string name="html_text_dev_feature_encourage">julgustad sa arendajaid lisama <strong>uusi funktsionaalsusi</strong> ja <strong>parandama vigu</strong> vastavalt sinu vihjetele.</string>
|
||||
<string name="backspace">Tagasisammuklahv (Backspace)</string>
|
||||
<string name="education_setup_OTP_title">Seadista ühekordne salasõna</string>
|
||||
<string name="enter">Sisestusklahv (Enter)</string>
|
||||
<string name="education_validate_entry_summary">Ära unusta kirje sisu kontrollida ja salvestada.\n\nKui automaatne lukustus käivitub ja sa unustad, et muutmine oli pooleli, siis võid kaotada oma muudatused.</string>
|
||||
<string name="html_text_ad_free">Erinevalt paljudest teistest salasõnahalduritest, on meie oma <strong>reklaamivaba</strong> ja <strong>avatud lähtekoodiga vaba tarkvara</strong>, mis ei kogu kasutajate isiklikke andmeid oma serveritesse ja seda kõikide versioonide puhul.</string>
|
||||
<string name="html_text_donation"><strong>Aidates kaasa</strong> selle projekti tegevusele <i>(rahaliselt, koodi kirjutades või tõlkides)</i>, aitad kogu ettevõtmisel areneda ning soovi korral võid kasutada ka <strong>seda kujundust</strong>.</string>
|
||||
<string name="advanced_unlock_keystore_warning">See funktsionaalsus salvestab krüptitud salasõnad ja kasutajanimed sinu nutiseadme turvalises võtmehoidlas.\n\nSõltuvalt sinu nutiseadme operatsioonisüstemi konkreetsest implementatsioonist, ei pruugi see lahendus siiski täismahus toimida.\n\nPalun kontrolli oma seadme võtmehoidla (KeyStore) ühilduvust ja turvalisust tootjalt ja/või tarkvara loojalt.</string>
|
||||
<string name="keyboard_previous_fill_in_summary">Peale tegevust „Automaatne võtmetoiming“ lülita automaatselt tagasi eelmisele klahvistikule</string>
|
||||
<string name="education_read_only_summary">Saad juhtida sessioonil kasutatavat avamisviisi.\n\n„Kirjutuskaitstud“ tagab, et juhuslike muudatustega ei läheks andmeid kaotsi.\n„Muudetav“ võimaldab sul lisada, kustutada või muuta kõiki andmebaasi kirjeid.</string>
|
||||
</resources>
|
||||
@@ -45,7 +45,7 @@
|
||||
<string name="digits">Digituak</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft <strong>kode irekiko</strong> eta <strong>iragarki gabekoa da</strong>.
|
||||
\n<strong>GPLv3</strong> lizentziapean banatu da, hori dela eta ez dakar inolako bermerik.</string>
|
||||
<string name="select_database_file">Ireki aurrez sortutako datu-basea</string>
|
||||
<string name="select_database_file">Ireki aurrez sortutako kutxa gotorra</string>
|
||||
<string name="entry_accessed">Atzituta</string>
|
||||
<string name="entry_cancel">Utzi</string>
|
||||
<string name="entry_notes">Iruzkinak</string>
|
||||
@@ -62,7 +62,7 @@
|
||||
<string name="entry_user_name">Erabiltzaile-izena</string>
|
||||
<string name="error_arc4">Ez dago euskarririk Arcfour fluxu-zifraketarako.</string>
|
||||
<string name="error_can_not_handle_uri">Ezin izan da KeePassDXen URI hau kudeatu.</string>
|
||||
<string name="error_file_not_create">Ezin izan da fitxategia sortu</string>
|
||||
<string name="error_file_not_create">Ezin izan da fitxategia sortu.</string>
|
||||
<string name="error_invalid_db">Ezin izan da datu-basea irakurri.</string>
|
||||
<string name="error_invalid_path">Egiaztatu bide-izena zuzena dela.</string>
|
||||
<string name="error_no_name">Sartu izena.</string>
|
||||
@@ -138,7 +138,7 @@
|
||||
</string-array>
|
||||
<string name="security">Segurtasuna</string>
|
||||
<string name="contact">Harremanetarako</string>
|
||||
<string name="contribution">Ekarpen</string>
|
||||
<string name="contribution">Diru-laguntza</string>
|
||||
<string name="master_key">Gako nagusia</string>
|
||||
<string name="edit_entry">Sarrera editatu</string>
|
||||
<string name="key_derivation_function">Gakoaren eratorpen funtzioa</string>
|
||||
@@ -242,7 +242,7 @@
|
||||
<string name="error_otp_secret_key">Gako sekretuak Base32 formatuan egon behar du.</string>
|
||||
<string name="error_otp_period">Periodoak %1$d eta%2$d segundo bitartekoa izan behar du.</string>
|
||||
<string name="error_string_type">Testu hau ez dator bat eskatutako elementuarekin.</string>
|
||||
<string name="error_registration_read_only">Ezin da elementu bat gehitu irakurketa soileko datu-basean</string>
|
||||
<string name="error_registration_read_only">Ezin da elementu bat gehitu irakurketa soileko datu-basean.</string>
|
||||
<string name="error_otp_counter">Kontagailuak %1$d eta %2$d artean egon behar du.</string>
|
||||
<string name="error_load_database">Ezin izan da datu-basea kargatu.</string>
|
||||
<string name="html_about_contribution"><strong> Gure askatasuna mantentzeko </strong>, <strong>bugak konpontzeko </strong>, <strong> ezaugarriak konpontzeko </strong> eta <strong> beti aktibo egoteko</strong>, zure <strong> ekarpenen</strong> zain gaude.</string>
|
||||
@@ -281,7 +281,7 @@
|
||||
<string name="education_create_database_summary">Sortu zure lehen pasahaitz kudeatzaile fitxategia.</string>
|
||||
<string name="education_new_node_title">Gehitu elementuak zure datu-basera</string>
|
||||
<string name="reset_education_screens_text">Berrezarri hezkuntza-pistak</string>
|
||||
<string name="export_app_properties_summary">Sortu fitxategia aplikazioaren propietateak esportatzeko</string>
|
||||
<string name="export_app_properties_summary">Sortu fitxategia aplikazioaren ezarpenak esportatzeko</string>
|
||||
<string name="max_history_items_summary">Mugatu historial elementu kopurua sarrera bakoitzeko</string>
|
||||
<string name="max_history_size_title">Tamaina maximoa</string>
|
||||
<string name="clear_clipboard_notification_summary">Blokeatu datu-basea arbelaren iraupena amaitzean edo jakinarazpena ixtean erabiltzen hasi ondoren</string>
|
||||
@@ -300,7 +300,7 @@
|
||||
<string name="education_search_title">Bilatu sarreren artean</string>
|
||||
<string name="file_not_found_content">Ezin izan da fitxategia aurkitu. Saiatu zure fitxategi nabigatzailetik berriro irekitzen.</string>
|
||||
<string name="menu_save_database">Datuak gorde</string>
|
||||
<string name="success_export_app_properties">Aplikazioaren ezaugarriak esportatuta</string>
|
||||
<string name="success_export_app_properties">Aplikazioaren ezarpenak esportatuta</string>
|
||||
<string name="monospace_font_fields_enable_summary">Aldatu eremuen iturria karaktereen ikusgarritasuna hobetzeko</string>
|
||||
<string name="allow_copy_password_summary">Baimendu sarrera pasahitza eta babestutako eremuak arbelean kopiatzea</string>
|
||||
<string name="allow_copy_password_warning">Abisua: Arbela aplikazio guztiek partekatzen dute. Datu sentikorrak kopiatzen badira, beste software batek berreskura ditzake.</string>
|
||||
@@ -326,12 +326,12 @@
|
||||
<string name="error_duplicate_file">Fitxategiko datuak jadanik existitzen dira.</string>
|
||||
<string name="error_remove_file">Fitxategiko datuak ezabatzean errorea gertatu da.</string>
|
||||
<string name="error_start_database_action">Errorea gertatu da datu-basean akzio bat egitean.</string>
|
||||
<string name="error_challenge_already_requested">Erronka eskatuta dago</string>
|
||||
<string name="error_challenge_already_requested">Erronka eskatuta dago.</string>
|
||||
<string name="error_response_already_provided">Jaso da erantzuna.</string>
|
||||
<string name="error_no_response_from_challenge">Ezinezkoa da erronkaren erantzuna jasotzea.</string>
|
||||
<string name="error_cancel_by_user">Erabiltzaileak bertan behera utzita.</string>
|
||||
<string name="error_driver_required">Kontrolagailu bat behar da %1$srentzat.</string>
|
||||
<string name="error_unable_merge_database_kdb">Ezinezkoa da V1 datu-basetik fusionatzea.</string>
|
||||
<string name="error_unable_merge_database_kdb">Ezinezkoa da kdb datu-base fitxategitik fusionatzea.</string>
|
||||
<string name="error_location_unknown">Datu-basearen kokalekua ezezaguna da, ezin da datu-basearen akzioa bete.</string>
|
||||
<string name="error_hardware_key_unsupported">Gako-fisikoa ez da onartzen.</string>
|
||||
<string name="error_empty_key">Gakoak ezin du hutsik egon.</string>
|
||||
@@ -347,7 +347,7 @@
|
||||
<string name="menu_merge_from">Fusionatu hemendik…</string>
|
||||
<string name="menu_save_copy_to">Gorde kopia hemen…</string>
|
||||
<string name="menu_delete_entry_history">Ezabatu historiala</string>
|
||||
<string name="menu_keystore_remove_key">Kendu gakoa desblokeo aurreratutik</string>
|
||||
<string name="menu_keystore_remove_key">Ezabatu gailuaren desblokeo gakoa</string>
|
||||
<string name="menu_file_selection_read_only">Idazketaren aurka babestua</string>
|
||||
<string name="menu_restore_entry_history">Berrezarri historiala</string>
|
||||
<string name="auto_focus_search_summary">Eskatu bilaketa bat datu-base bat irekitzean</string>
|
||||
@@ -364,11 +364,11 @@
|
||||
<string name="remember_hardware_key_summary">Erabilitako hardware-gakoen segimendua egiten du</string>
|
||||
<string name="show_recent_files_summary">Erakusti azken datu-baseen kokapena</string>
|
||||
<string name="hide_broken_locations_title">Ezkutatu datu-baseetara hautsitako estekak</string>
|
||||
<string name="import_app_properties_title">Inportatu aplikazio baten ezaugarriak</string>
|
||||
<string name="import_app_properties_summary">Hautatu fitxategia aplikazioaren ezaugarriak inportatzeko</string>
|
||||
<string name="success_import_app_properties">Inportatutako aplikazioen ezaugarriak</string>
|
||||
<string name="error_import_app_properties">Errorea aplikazioaren ezaugarriak inportatzean</string>
|
||||
<string name="error_export_app_properties">Errorea aplikazioaren ezaugarriak esportatzean</string>
|
||||
<string name="import_app_properties_title">Inportatu aplikazioaren ezarpenak</string>
|
||||
<string name="import_app_properties_summary">Hautatu fitxategia aplikazioaren ezarpenak inportatzeko</string>
|
||||
<string name="success_import_app_properties">Aplikazioen ezarpenak inportatu dira</string>
|
||||
<string name="error_import_app_properties">Errorea aplikazioaren ezarpenak inportatzean.</string>
|
||||
<string name="error_export_app_properties">Errorea aplikazioaren ezarpenak esportatzean.</string>
|
||||
<string name="memory_usage">Memoria erabilpena</string>
|
||||
<string name="parallelism_explanation">Gakoaren eratorpen funtzioak erabilitako paralelismo gradua (adb. hari kopurua).</string>
|
||||
<string name="command_execution">Komandoa exekutatzen…</string>
|
||||
@@ -416,14 +416,14 @@
|
||||
<string name="read_only">Idazketaren aurka babestua</string>
|
||||
<string name="subdomain_search_title">Azpi-domeinu bilaketa</string>
|
||||
<string name="auto_focus_search_title">Bilaketa azkarra</string>
|
||||
<string name="create_keepass_file">Sortu datu-base berria</string>
|
||||
<string name="create_keepass_file">Sortu kutxa gotor berria</string>
|
||||
<string name="menu_empty_recycle_bin">Hustu zakarrontzia</string>
|
||||
<string name="menu_open_file_read_and_write">Editagarri</string>
|
||||
<string name="menu_copy">Kopiatu</string>
|
||||
<string name="menu_security_settings">Segurtasun ezarpenak</string>
|
||||
<string name="menu_cancel">Deuseztu</string>
|
||||
<string name="menu_paste">Itsatsi</string>
|
||||
<string name="menu_advanced_unlock_settings">Desblokeatze aurreratua</string>
|
||||
<string name="menu_advanced_unlock_settings">Gailu blokeatzailea</string>
|
||||
<string name="list_groups_show_number_entries_summary">Talde bateko sarrera kopurua erakusten du</string>
|
||||
<string name="invalid_db_same_uuid">%1$sk %2$sren UUID bera du.</string>
|
||||
<string name="sort_ascending">Baxuena lehenbizi↓</string>
|
||||
@@ -474,7 +474,7 @@
|
||||
<string name="enable_education_screens_summary">Nabarmendu elementuak aplikazioak nola funtzionatzen duen ikasteko</string>
|
||||
<string name="reset_education_screens_summary">Erakutsi hezkuntza informazioa berriro</string>
|
||||
<string name="education_select_database_title">Ireki aurrez existitzen den datu-basea</string>
|
||||
<string name="export_app_properties_title">Esportatu aplikazioaren ezaugarriak</string>
|
||||
<string name="export_app_properties_title">Esportatu aplikazioaren ezarpenak</string>
|
||||
<string name="kdf_explanation">Zifraketa algoritmorako gakoa sortzeko, gako nagusia itxuraldatu egiten da eratorpen funtzio eta ausazko gatz baten bidez.</string>
|
||||
<string name="keyboard_previous_search_title">Bilaketa pantaila</string>
|
||||
<string name="autofill_manual_selection_summary">Erabiltzaileari datu-baseko sarrera hautatzeko aukera erakutsi</string>
|
||||
@@ -486,14 +486,14 @@
|
||||
<string name="warning_keyfile_integrity">Ezin da fitxategiaren hasha bermatu Androidek aldaketak egin ditzakeelako sortu ahala. Aldatu fitxategiaren luzapena .binera integritate zuzen baterako.</string>
|
||||
<string name="warning_database_info_changed_options">Fusionatu datuak, gain idatzi kanpo aldaketak datu-basean gordez edo birkargatu azken aldaketekin.</string>
|
||||
<string name="warning_exact_alarm">Ez diozu aplikazioari alarma zehatz bat erabiltzen utzi, Hori dela eta, tenporizadore bat behar dituzten ezaugarriak ez dira ordu zehatz batean egingo.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Zure pasahitz-nagusia gogoratu behar duzu desblokeo aurreratuko ezagutzea erabili arren.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Zure kutxa gotorraren pasahitz-nagusia gogoratu behar duzu naiz eta desblokeo aurreratuko ezagutzea erabili arren.</string>
|
||||
<string name="encrypted_value_stored">Zifratutako pasahitza gordeta</string>
|
||||
<string name="unavailable">Datu-base honek ez du biltegiratuta kredentzialik.</string>
|
||||
<string name="advanced_unlock_scanning_error">Desblokeatze aurreratuko errorea: %1$s</string>
|
||||
<string name="advanced_unlock_scanning_error">Gailuaren desblokeatze errorea: %1$s</string>
|
||||
<string name="menu_appearance_settings">Itxura</string>
|
||||
<string name="autofill_sign_in_prompt">KeePassDXekin erregistratu</string>
|
||||
<string name="autofill_explanation_summary">Gaitu betetze automatikoa beste aplikazioetako formularioak errez betetzeko</string>
|
||||
<string name="advanced_unlock">Desblokeo aurreratua</string>
|
||||
<string name="advanced_unlock">Gailua desblokeatu</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Ezabatu ezagutze desblokeo aurreratuaren zifraketa gako guztiak\?</string>
|
||||
<string name="path">Bidea</string>
|
||||
<string name="keyboard_auto_go_action_summary">\"Aurrera\" teklaren akzioa \"Eremu\" tekla zapaltzean</string>
|
||||
@@ -505,12 +505,12 @@
|
||||
<string name="permission">Baimena</string>
|
||||
<string name="build_label">Konpilazio bertsioa%1$s</string>
|
||||
<string name="database_history">Historiala</string>
|
||||
<string name="advanced_unlock_tap_delete">Ukitu desblokeatze aurreratuko gakoak ezabatzeko</string>
|
||||
<string name="advanced_unlock_tap_delete">Ukitu gailua desblokeatzeko gakoak ezabatzeko</string>
|
||||
<string name="file_name">Fitxategiaren izena</string>
|
||||
<string name="recycle_bin_group_title">Zakarrontziaren taldea</string>
|
||||
<string name="assign_master_key">Esleitu gako nagusia</string>
|
||||
<string name="icon_pack_choose_summary">Aplikazioak erabilitako ikono paketea</string>
|
||||
<string name="advanced_unlock_invalid_key">Ezin da irakurri desblokeatze aurreratuko gakoa. Mesedez ezabatu ezatu eta errepikatu desblokeatze prozedura.</string>
|
||||
<string name="advanced_unlock_invalid_key">Ezin da irakurri desblokeatze gakoa. Mesedez ezabatu ezatu eta errepikatu desblokeatze prozedura.</string>
|
||||
<string name="device_credential_unlock_enable_title">Gailuaren kredentzialen desblokeoa</string>
|
||||
<string name="advanced_unlock_keystore_warning">Ezaugarri honek zifratutako kredentzialen informazioa zure gailuaren KeyStorean gordeko ditu.
|
||||
\n
|
||||
@@ -530,8 +530,8 @@
|
||||
<string name="show_entry_colors_title">Sarrerako koloreak</string>
|
||||
<string name="show_entry_colors_summary">Erakutsi sarreraren aurreko eta atzeko planoen koloreak</string>
|
||||
<string name="hide_expired_entries_summary">Iraungitako sarrerak ez dira erakusten</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Ireki datu-basea desblokeo aurreratuko ezagutzearekin</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Atera datu-baseko kredentzialak desblokeo aurreratuko datuekin</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Gailuaren desblokeo ezagutza</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Atera datu-baseko kredentzialak desblokeo datuekin</string>
|
||||
<string name="education_setup_OTP_summary">Ezarri erabilera bakarreko pasahitzen kudeaketa (HOTP/TOTP) bi faktoreko autentifikazioak (2FA) eskatzen duen tokena sortzeko.</string>
|
||||
<string name="education_read_only_summary">Aldatu saioaren irekiera modua.
|
||||
\n
|
||||
@@ -553,9 +553,9 @@
|
||||
<string name="warning_database_already_opened">Dagoeneko datu-base bat irekita dago, itxi ezazu beste bat ireki ahal izateko</string>
|
||||
<string name="warning_permanently_delete_nodes">Ezabatu betiko hautatutako nodoak\?</string>
|
||||
<string name="warning_sure_add_file">Gehitu fitxategia edonola ere\?</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Ez gorde zifratutako edukirik desblokeatze aurreratua erabiltzeko</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Desblokeatze aurreratuaren iraungitzea</string>
|
||||
<string name="advanced_unlock_timeout">Desblokeatze aurreratua erabiltzeko denbora muga</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Ez gorde zifratutako edukirik gailu desblokeatzea erabiltzeko</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Gailu desblokeatzearen iraungitzea</string>
|
||||
<string name="advanced_unlock_timeout">Gailu desblokeatzea erabiltzeko denbora muga</string>
|
||||
<string name="lock">Blokeatu</string>
|
||||
<string name="html_text_donation">Gure askatasuna mantentzeko eta beti aktibo egoteko, aintzat dugu zure <strong>ekarpena.</strong></string>
|
||||
<string name="education_read_only_title">Babestu zure datu-basea idazketen aurka</string>
|
||||
@@ -576,8 +576,8 @@
|
||||
<string name="warning_database_read_only">Eman idazketa baimena datu-basean aldaketak gordetzeko</string>
|
||||
<string name="warning_password_encoding">Saihestu kodetze formatutik kanpoko karaktereak datu-baseko pasahitz fitxategietan (ezagutzen ez diren karaktereak letra berarengatik ordezten dira).</string>
|
||||
<string name="warning_database_revoked">Fitxategirako atzipena baliogabetu du fitxategi kudeatzaileak, itxi datu-basea eta berriro ireki ezazu bere lokalizaziotik.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Desblokeo aurreratuko ezagutzea</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Ezin izan da hasieratu desblokeatze aurreratuko menua.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Gailuaren desblokeorako esteka</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Ezin izan da hasieratu gailuaren desblokeatze menua.</string>
|
||||
<string name="set_autofill_service_title">Lehenetsi betetze automatiko zerbitzua</string>
|
||||
<string name="content">Edukia</string>
|
||||
<string name="education_advanced_unlock_title">Datu-basearen desblokeatze automatikoa</string>
|
||||
@@ -594,14 +594,14 @@
|
||||
<string name="lock_database_back_root_summary">Blokeatu datu-basea erabiltzaileak atzera botoia sakatzen duenean hasierako pantailan</string>
|
||||
<string name="lock_database_show_button_title">Erakutsi blokeatzeko botoia</string>
|
||||
<string name="lock_database_show_button_summary">Blokeatzeko botoia erakusten du interfazean</string>
|
||||
<string name="advanced_unlock_explanation_summary">Erabili desblokeatze aurreratua datu-base bat errazago irekitzeko</string>
|
||||
<string name="advanced_unlock_explanation_summary">Erabili gailu desblokeatzea datu-base bat errazago irekitzeko</string>
|
||||
<string name="biometric_unlock_enable_title">Desblokeo biometrikoa</string>
|
||||
<string name="biometric_unlock_enable_summary">Zure datu biometrikoak eskaneatzen uzten dizu datu-basea irekitzeko</string>
|
||||
<string name="device_credential_unlock_enable_summary">Zure gailuaren kredentzialak datu-basea irekitzeko erabiltzen uzten dizu</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Automatikoki eskatu desblokeatze aurreratua datu-basea horrela erabiltzeko prestatu bada</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Denboraz mugatutako desblokeatze aurreratua</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Automatikoki eskatu gailu desblokeatzea datu-basea horrela erabiltzeko prestatu bada</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Denboraz mugatutako gailu desblokeatze</string>
|
||||
<string name="biometric_delete_all_key_title">Ezabatu zifraketa gakoak</string>
|
||||
<string name="biometric_delete_all_key_summary">Ezabatu ezagutze desblokeo aurreratuaren zifraketa gako guztiak</string>
|
||||
<string name="biometric_delete_all_key_summary">Ezabatu gailu desblokeoari lotutako zifraketa gako guztiak</string>
|
||||
<string name="unavailable_feature_text">Ezin izan da ezaugarri hau hasieratu.</string>
|
||||
<string name="unavailable_feature_version">Gailuak Android %1$srekin funtzionatzen du, baina %2$s edo ondorengoak behar ditu.</string>
|
||||
<string name="unavailable_feature_hardware">Ezin izan da dagokion hardwarea aurkitu.</string>
|
||||
@@ -619,7 +619,7 @@
|
||||
<string name="education_unlock_title">Desblokeatu zure datu-basea</string>
|
||||
<string name="autofill_preference_title">Betetze automatikoaren ezarpenak</string>
|
||||
<string name="biometric_security_update_required">Segurtasun biometrikoko eguneraketa behar da.</string>
|
||||
<string name="advanced_unlock_not_recognized">Ezin izan da errekonozitu desblokeatze aurreratuko aztarna</string>
|
||||
<string name="advanced_unlock_not_recognized">Ezin izan da errekonozitu desblokeatze aztarna</string>
|
||||
<string name="biometric">Biometria</string>
|
||||
<string name="device_credential">Gailuaren kredentzialak</string>
|
||||
<string name="general">Orokor</string>
|
||||
@@ -668,4 +668,19 @@
|
||||
<string name="download_canceled">Bertan behera utzi da!</string>
|
||||
<string name="character_count">Karaktere kopurua:%1$d</string>
|
||||
<string name="download_progression">Oraingoz egindakoa:%1$d%%</string>
|
||||
<string name="info">Info</string>
|
||||
<string name="menu_app_settings_summary">Bilatu, blokeoatu, historiala,ezaugarriak</string>
|
||||
<string name="menu_form_filling_settings_summary">Teklatua,beteze automatikoa,arbela</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometria, gailuaren egiztagiria</string>
|
||||
<string name="menu_database_settings_summary">Metadatuak, zakarrontzia, txantilioiak, historiala</string>
|
||||
<string name="menu_security_settings_summary">Zifraketa, gakoen deribazio funtzioa</string>
|
||||
<string name="master_key_settings_summary">Aldaketa,berriztapena</string>
|
||||
<string name="warning_copy_permission">Jakinarazpen baimena behar da arbelaren jakinarazpen funtziorako.</string>
|
||||
<string name="unlock_and_link_biometric">Gailua desblokeatzeko esteka</string>
|
||||
<string name="menu_appearance_settings_summary">Gaiak,koloreak,atributuak</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Birkargatu datu-basea azken aldaketekin.</string>
|
||||
<string name="later">Beranduago</string>
|
||||
<string name="ask">Galdetu</string>
|
||||
<string name="configure">Konfiguratu</string>
|
||||
<string name="unlock">Desblokeatu</string>
|
||||
</resources>
|
||||
@@ -144,18 +144,18 @@
|
||||
<string name="error_rounds_too_large">\"دور تحول\" بیش از حد بالا است. تنظیم به 2147483648.</string>
|
||||
<string name="error_pass_match">رمزهای عبور با هم مطابقت نمی کنند.</string>
|
||||
<string name="error_disallow_no_credentials">حداقل یک اعتبار نامه باید تعیین شود.</string>
|
||||
<string name="error_pass_gen_type">حداقل یک نوع تولید رمز عبور باید انتخاب شود</string>
|
||||
<string name="error_pass_gen_type">حداقل یک نوع تولید رمز عبور باید انتخاب شود.</string>
|
||||
<string name="error_load_database_KDF_memory">نميتونستم کليد رو بار کنم سعی کنید KDF \"استفاده از حافظه\" را پایین بیاورید.</string>
|
||||
<string name="error_load_database">پایگاه داده شما را نمی توان بارگذاری کرد</string>
|
||||
<string name="error_load_database">پایگاه داده شما را نمی توان بارگذاری کرد.</string>
|
||||
<string name="error_out_of_memory">هیچ حافظه ای برای بارگذاری کل پایگاه داده خود را.</string>
|
||||
<string name="error_nokeyfile">یک فایل کلید را انتخاب کنید.</string>
|
||||
<string name="error_no_name">نامی را وارد کنید.</string>
|
||||
<string name="error_invalid_OTP">راز OTP نامعتبر.</string>
|
||||
<string name="error_invalid_path">مطمئن شوید که مسیر درست است</string>
|
||||
<string name="error_invalid_path">مطمئن شوید که مسیر درست است.</string>
|
||||
<string name="error_invalid_db">نمی توانست پایگاه داده را بخواند.</string>
|
||||
<string name="error_file_not_create">نمی تواند پرونده ایجاد کند</string>
|
||||
<string name="error_file_not_create">نمی تواند پرونده ایجاد کند.</string>
|
||||
<string name="error_can_not_handle_uri">نمی تواند این URI در KeePassDX رسیدگی کند.</string>
|
||||
<string name="error_arc4">رمز جریان Arcfour پشتیبانی نمی شود</string>
|
||||
<string name="error_arc4">رمز جریان Arcfour پشتیبانی نمی شود.</string>
|
||||
<string name="entry_user_name">نام کاربری</string>
|
||||
<string name="entry_url">آدرس</string>
|
||||
<string name="entry_otp">otp</string>
|
||||
@@ -262,9 +262,9 @@
|
||||
\n
|
||||
\nممکن است پایگاه داده شما بسیار بزرگ شود و با این بارگذاری عملکرد را کاهش دهید.</string>
|
||||
<string name="warning_empty_recycle_bin">آیا همه کلید ها از سطل بازیافت به طور دائم حذف می شوند؟</string>
|
||||
<string name="error_export_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="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>
|
||||
@@ -285,7 +285,7 @@
|
||||
<string name="error_rebuild_list">نمی توان لیست را به درستی بازسازی کرد.</string>
|
||||
<string name="error_database_uri_null">URI پایگاه داده بازیابی نمی شود.</string>
|
||||
<string name="error_field_name_already_exists">نام فیلد از قبل موجود است.</string>
|
||||
<string name="error_registration_read_only">ذخیره یک مورد جدید در پایگاه داده \"فقط خواندنی\" مجاز نیست</string>
|
||||
<string name="error_registration_read_only">ذخیره یک مورد جدید در پایگاه داده \"فقط خواندنی\" مجاز نیست.</string>
|
||||
<string name="error_otp_type">نوع OTP موجود توسط این فرم شناخته نمی شود ، اعتبار آن ممکن است دیگر توکن را به درستی تولید نکند.</string>
|
||||
<string name="id_card">ID Card</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<string name="digits">Numerot</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft on <strong>avointa lähdekoodia</strong> ja <strong>mainokseton</strong>.
|
||||
\nSe tarjotaan sellaisenaan <strong>GPLv3</strong> lisenssillä ja ilman takuuta.</string>
|
||||
<string name="select_database_file">Avaa olemassaoleva salasanatietokanta</string>
|
||||
<string name="select_database_file">Avaa olemassaoleva tietokanta</string>
|
||||
<string name="entry_accessed">Käytetty</string>
|
||||
<string name="entry_cancel">Peruuta</string>
|
||||
<string name="entry_notes">Kommentit</string>
|
||||
@@ -61,7 +61,7 @@
|
||||
<string name="entry_user_name">Käyttäjänimi</string>
|
||||
<string name="error_arc4">Arcfour stream cipher ei ole tuettu.</string>
|
||||
<string name="error_can_not_handle_uri">KeePassDX ei osaa käsitellä tätä osoitetta.</string>
|
||||
<string name="error_file_not_create">Tiedoston luonti epäonnistui</string>
|
||||
<string name="error_file_not_create">Tiedoston luonti epäonnistui.</string>
|
||||
<string name="error_invalid_db">Tietokantaa ei pystytty lukemaan.</string>
|
||||
<string name="error_invalid_path">Varmista että polku on oikein.</string>
|
||||
<string name="error_no_name">Anna nimi.</string>
|
||||
@@ -90,7 +90,7 @@
|
||||
<string name="length">Pituus</string>
|
||||
<string name="list_size_title">Ryhmälistan pituus</string>
|
||||
<string name="list_size_summary">Tekstin koko ryhmälistauksessa</string>
|
||||
<string name="loading_database">Ladataan salasanatietokantaa…</string>
|
||||
<string name="loading_database">Ladataan tietokantaa…</string>
|
||||
<string name="lowercase">pienet kirjaimet</string>
|
||||
<string name="hide_password_title">Piilota salasana</string>
|
||||
<string name="hide_password_summary">Piilota salasanat oletuksena</string>
|
||||
@@ -102,7 +102,7 @@
|
||||
<string name="menu_donate">Lahjoita</string>
|
||||
<string name="menu_edit">Muokkaa</string>
|
||||
<string name="menu_hide_password">Piilota salasana</string>
|
||||
<string name="menu_lock">Lukitse salasanatietokanta</string>
|
||||
<string name="menu_lock">Lukitse tietokanta</string>
|
||||
<string name="menu_open">Avaa</string>
|
||||
<string name="menu_search">Etsi</string>
|
||||
<string name="menu_showpass">Näytä salasana</string>
|
||||
@@ -181,12 +181,12 @@
|
||||
<string name="content_description_background">Tausta</string>
|
||||
<string name="lock_database_show_button_summary">Näyttää lukitusnäppäimen käyttöilittymässä</string>
|
||||
<string name="lock_database_show_button_title">Näytä lukitusnäppäin</string>
|
||||
<string name="lock_database_back_root_summary">Lukitse salasanatietokanta kun käyttäjä painaa takaisin-painiketta aloitusnäytössä</string>
|
||||
<string name="lock_database_back_root_summary">Lukitse tietokanta käyttäjän painaessa takaisin-painiketta aloitusnäytössä</string>
|
||||
<string name="lock_database_back_root_title">Paina \'Takaisin\' lukitaksesi</string>
|
||||
<string name="clipboard_warning">Jos automaattinen leikepöydän poistaminen epäonnistuu, poista sen historia manuaalisesti.</string>
|
||||
<string name="clipboard_explanation_summary">Kopioi kentät käyttäen laitteesi leikepöytää</string>
|
||||
<string name="clipboard">Leikepöytä</string>
|
||||
<string name="database_opened">Salasanatietokanta aukaistu</string>
|
||||
<string name="database_opened">Tietokanta avattu</string>
|
||||
<string name="autofill_preference_title">Automaattisen täytön asetukset</string>
|
||||
<string name="autofill_explanation_summary">Ota käyttöön automaattinen täyttö täyttääksesi lomakkeita nopeasti muissa sovelluksissa</string>
|
||||
<string name="menu_appearance_settings">Ulkonäkö</string>
|
||||
@@ -200,7 +200,7 @@
|
||||
<string name="do_not_kill_app">Älä sammuta sovellusta…</string>
|
||||
<string name="command_execution">Suoritetaan komentoa…</string>
|
||||
<string name="hide_broken_locations_summary">Piilota rikkinäiset linkit viimeaikasista salasanatietokannoista</string>
|
||||
<string name="hide_broken_locations_title">Piilota rikkinäiset salasanatietokantalinkit</string>
|
||||
<string name="hide_broken_locations_title">Piilota rikkinäiset tietokantalinkit</string>
|
||||
<string name="show_recent_files_summary">Näytä viimeaikaisten salasanatietokantojen sijainnit</string>
|
||||
<string name="menu_open_file_read_and_write">Muokattava</string>
|
||||
<string name="magic_keyboard_title">Magi-näppäimistö</string>
|
||||
@@ -223,7 +223,7 @@
|
||||
<string name="unavailable_feature_hardware">Vastaavaa laitteistoa ei löydetty.</string>
|
||||
<string name="unavailable_feature_version">Android versiosi %1$s ei vastaa vaadittuun minimiversioon %2$s.</string>
|
||||
<string name="unavailable_feature_text">Tätä ominaisuutta ei pystytty avaamaan.</string>
|
||||
<string name="lock_database_screen_off_summary">Lukitse salasanatietokanta, kun näyttö on sammunut</string>
|
||||
<string name="lock_database_screen_off_summary">Lukitse tietokanta muutama sekunti näytön sammusen jälkeen</string>
|
||||
<string name="lock_database_screen_off_title">Näytön lukitus</string>
|
||||
<string name="lock">Lukko</string>
|
||||
<string name="clipboard_notifications_summary">Ota käyttöön leikepöytäilmoitukset kopioidaksesi kenttiä, kun katsot tietuetta</string>
|
||||
@@ -264,19 +264,19 @@
|
||||
<string name="remember_database_locations_title">Tallenna salasatietokantojen sijainti</string>
|
||||
<string name="selection_mode">Valintatila</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Ratkaise ongelma generoimalla uudet UUID:t kaksoiskappaleilla jatkaaksesi\?</string>
|
||||
<string name="contains_duplicate_uuid">Salasanatietokanta sisältää kaksoiskappale UUID:ta.</string>
|
||||
<string name="contains_duplicate_uuid">Tietokanta sisältää päällekkäisiä UUID-tunnuksia.</string>
|
||||
<string name="read_only_warning">Riippuen tiedostoselaimestasi, KeePassDX:llä ei välttämättä ole oikeuksia kirjoittaa muistiin.</string>
|
||||
<string name="read_only">Kirjoitussuojattu</string>
|
||||
<string name="subdomain_search_summary">Hae verkkodomaineja alidomainrajoituksilla</string>
|
||||
<string name="subdomain_search_title">Alidomainhaku</string>
|
||||
<string name="auto_focus_search_summary">Pyydä haku, salasanatietokantaa avattaessa</string>
|
||||
<string name="auto_focus_search_summary">Pyydä haku tietokantaa avattaessa</string>
|
||||
<string name="auto_focus_search_title">Pikahaku</string>
|
||||
<string name="create_keepass_file">Luo uusi salasanatietokanta</string>
|
||||
<string name="create_keepass_file">Luo uusi tietokanta</string>
|
||||
<string name="menu_delete_entry_history">Poista historia</string>
|
||||
<string name="menu_restore_entry_history">Palauta historia</string>
|
||||
<string name="menu_empty_recycle_bin">Tyhjennä roskakori</string>
|
||||
<string name="menu_file_selection_read_only">Kirjoitussuojattu</string>
|
||||
<string name="menu_save_database">Tallenna salasanatietokanta</string>
|
||||
<string name="menu_save_database">Tallenna tietokanta</string>
|
||||
<string name="menu_cancel">Peruuta</string>
|
||||
<string name="menu_paste">Liitä</string>
|
||||
<string name="menu_move">Siirrä</string>
|
||||
@@ -286,7 +286,7 @@
|
||||
<string name="menu_advanced_unlock_settings">Edistynyt lukituksen avaaminen</string>
|
||||
<string name="menu_form_filling_settings">Lomakkeen täyttö</string>
|
||||
<string name="copy_field">Kopio %1$s:sta</string>
|
||||
<string name="creating_database">Luodaan salasanatietokantaa…</string>
|
||||
<string name="creating_database">Luodaan tietokantaa…</string>
|
||||
<string name="list_groups_show_number_entries_summary">Näytä tietueiden määrä ryhmässä</string>
|
||||
<string name="list_groups_show_number_entries_title">Näytä tietueiden määrä</string>
|
||||
<string name="list_entries_show_username_summary">Näytä käyttäjänimet tietuelistoissa</string>
|
||||
@@ -307,4 +307,136 @@
|
||||
<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>
|
||||
<string name="content_description_passphrase_word_count">Salalauseen sanamäärä</string>
|
||||
<string name="content_description_database_color">Tietokannan väri</string>
|
||||
<string name="html_about_privacy"><strong>Käyttäjätietoja ei haeta</strong>, tämä sovellus ei muodosta yhteyttä mihinkään palvelimeen, toimii vain paikallisesti ja kunnioittaa täysin käyttäjien yksityisyyttä.</string>
|
||||
<string name="regex">Säännöllinen lauseke</string>
|
||||
<string name="template_group_name">Mallit</string>
|
||||
<string name="navigation_drawer_open">Navigointivedin auki</string>
|
||||
<string name="inherited">Peri</string>
|
||||
<string name="auto_type_sequence">Automaattisen kirjoituksen sekvenssi</string>
|
||||
<string name="search_filters">Hakusuodattimet</string>
|
||||
<string name="auto_type">Automaattinen kirjoitus</string>
|
||||
<string name="content_description_hardware_key_checkbox">Laitteistoavain-valintaruutu</string>
|
||||
<string name="content_description_entry_background_color">Merkinnän taustaväri</string>
|
||||
<string name="content_description_nav_header">Navigointiotsikko</string>
|
||||
<string name="expired">Vanhentunut</string>
|
||||
<string name="waiting_challenge_response">Odotetaan haasteen vastausta…</string>
|
||||
<string name="navigation_drawer_close">Navigointivedin suljettu</string>
|
||||
<string name="waiting_challenge_request">Odotetaan haastepyyntöä…</string>
|
||||
<string name="hardware_key">Laitteistoavain</string>
|
||||
<string name="searchable">Haettavissa</string>
|
||||
<string name="tags">Tagit</string>
|
||||
<string name="custom_data">Mukautettu tieto</string>
|
||||
<string name="current_group">Nykyinen ryhmä</string>
|
||||
<string name="warning_database_notification_permission">Ilmoituslupa antaa sinun näyttää tietokannan tilan ja lukita sen helposti saatavilla olevalla painikkeella.\n\nJos et aktivoi tätä lupaa, taustalla oleva avoin tietokanta ei ole näkyvissä, jos etualalla on toinen sovellus.</string>
|
||||
<string name="content_description_otp_information">Kertakäyttösalasanan tiedot</string>
|
||||
<string name="content_description_credentials_information">Tunnustiedot</string>
|
||||
<string name="error_driver_required">Ajuri kohteelle %1$s vaaditaan.</string>
|
||||
<string name="content_description_entry_foreground_color">Merkinnän etualan väri</string>
|
||||
<string name="case_sensitive">Merkkikokoriippuvainen</string>
|
||||
<string name="error_upload_file">Virhe tiedostoa ladattaessa.</string>
|
||||
<string name="error_rebuild_list">Ei voi kunnolla uudelleenrakentaa listaa.</string>
|
||||
<string name="id_card">Henkilökortti</string>
|
||||
<string name="secure_note">Turvallinen muistiinpano</string>
|
||||
<string name="error_duplicate_file">Tiedoston tiedot ovat jo olemassa.</string>
|
||||
<string name="error_start_database_action">Virhe suorittaessa toimintoa tietokannalla.</string>
|
||||
<string name="debit_credit_card">Pankki- tai luottokortti</string>
|
||||
<string name="number">Numero</string>
|
||||
<string name="date_of_issue">Myöntämispäivämäärä</string>
|
||||
<string name="email">Sähköposti</string>
|
||||
<string name="email_address">Sähköpostiosoite</string>
|
||||
<string name="ssid">SSID</string>
|
||||
<string name="colorize_password_title">Väritä salasanat</string>
|
||||
<string name="colorize_password_summary">Väritä salasanan merkit tyypin mukaan</string>
|
||||
<string name="show_otp_token_title">Näytä OTP-valtuutus</string>
|
||||
<string name="hint_icon_name">Kuvakkeen nimi</string>
|
||||
<string name="show_otp_token_summary">Näyttää OTP-valtuutukset merkintöjen luettelossa</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
<string name="holder">Haltija</string>
|
||||
<string name="type">Tyyppi</string>
|
||||
<string name="error_XML_malformed">XML on epämuodostunut.</string>
|
||||
<string name="place_of_issue">Myöntämispaikka</string>
|
||||
<string name="error_cancel_by_user">Käyttäjä perui.</string>
|
||||
<string name="membership">Jäsenyys</string>
|
||||
<string name="standard">Standardi</string>
|
||||
<string name="template">Pohja</string>
|
||||
<string name="version">Versio</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="show_uuid_title">Näytä UUID</string>
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="public_key">Julkinen avain</string>
|
||||
<string name="private_key">Salainen avain</string>
|
||||
<string name="error_word_reserved">Tämä sana on varattu eikä sitä voi käyttää.</string>
|
||||
<string name="error_otp_type">Olemassaolevaa OTP-tyyppiä ei ole tunnistettu tällä lomakkeella, ja sen validointi ei välttämättä enää tuota oikein tokenia.</string>
|
||||
<string name="show_uuid_summary">Näyttää tietueen tai ryhmän UUID-tunnisteen</string>
|
||||
<string name="generate_keyfile">Luo avaintiedosto</string>
|
||||
<string name="nodes">Solmut</string>
|
||||
<string name="recursive_number_entries_title">Rekursiivinen määrä merkintöjä</string>
|
||||
<string name="recursive_number_entries_summary">Laskee rekursiivisesti ryhmän merkintöjen määrän</string>
|
||||
<string name="name">Nimi</string>
|
||||
<string name="cryptocurrency">Kryptolompakko</string>
|
||||
<string name="token">Token</string>
|
||||
<string name="seed">Siemenarvo</string>
|
||||
<string name="account">Käyttäjätili</string>
|
||||
<string name="bank">Pankki</string>
|
||||
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="error_no_hardware_key">Valitse laitteistoavain.</string>
|
||||
<string name="error_label_exists">Merkintä on jo olemassa.</string>
|
||||
<string name="error_move_group_here">Ryhmää ei voi siirtää tänne.</string>
|
||||
<string name="error_field_name_already_exists">Kenttänimi on jo olemassa.</string>
|
||||
<string name="error_database_uri_null">Tietokannan URI-osoitetta ei voi palauttaa.</string>
|
||||
<string name="error_file_to_big">Lataamasi tiedosto on liian suuri.</string>
|
||||
<string name="error_remove_file">Virhe poistaessa tiedoston tietoja.</string>
|
||||
<string name="error_challenge_already_requested">Haaste on jo pyydetty</string>
|
||||
<string name="error_response_already_provided">Vastaus on jo annettu.</string>
|
||||
<string name="error_no_response_from_challenge">Vastausta haasteeseen ei voitu saada.</string>
|
||||
<string name="error_unable_merge_database_kdb">Ei voitu yhdistää kdb-tietokantatiedostoon</string>
|
||||
<string name="error_location_unknown">Tietokannan sijainti ei ole tiedossa, tietokannan toimintaa ei voida suorittaa.</string>
|
||||
<string name="error_hardware_key_unsupported">Laitteistoavainta ei tueta.</string>
|
||||
<string name="error_empty_key">Avain ei voi olla tyhjä.</string>
|
||||
<string name="corrupted_file">Korruptoitunut tiedosto.</string>
|
||||
<string name="passphrase">Salalause</string>
|
||||
<string name="error_registration_read_only">Uuden tietueen tallentaminen ei ole sallittua, kun tietokanta on vain lukutilassa</string>
|
||||
<string name="bank_name">Pankin nimi</string>
|
||||
<string name="warning_permanently_delete_nodes">Poista pysyvästi valitut solmut?</string>
|
||||
<string name="warning_database_info_changed">Tietokantatiedoston sisältämää tietoa on muutettu sovelluksen ulkopuolella.</string>
|
||||
<string name="menu_external_icon">Ulkoinen kuvake</string>
|
||||
<string name="search_mode">Hakutila</string>
|
||||
<string name="menu_reload_database">Lataa tiedot uudelleen</string>
|
||||
<string name="menu_merge_from">Yhdistä …</string>
|
||||
<string name="menu_save_copy_to">Kopioi …</string>
|
||||
<string name="menu_merge_database">Yhdistä tietoja</string>
|
||||
<string name="menu_keystore_remove_key">Poista avain laitteen avaamiseen</string>
|
||||
<string name="warning_empty_keyfile">Tyhjän avaintiedoston lisääminen ei ole suositeltavaa.</string>
|
||||
<string name="menu_app_settings_summary">Haku, lukitus, historia, oninaisuudet</string>
|
||||
<string name="menu_form_filling_settings_summary">Näppäimistö, automaattinen täyttö, leikepöytä</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometria, laitevaltuutus</string>
|
||||
<string name="menu_database_settings_summary">Metadata, roskakori, pohjat, historia</string>
|
||||
<string name="menu_security_settings_summary">Salaus, avaimen johtamisfunktio</string>
|
||||
<string name="master_key_settings_summary">Muutos, uudistus</string>
|
||||
<string name="remember_hardware_key_title">Muista laitteistoavaimet</string>
|
||||
<string name="remember_hardware_key_summary">Seuraa käytettyjä laitteistoavaimia</string>
|
||||
<string name="import_app_properties_title">Tuo sovellusasetukset</string>
|
||||
<string name="import_app_properties_summary">Valitse tiedosto tuodaksesi sovellusasetukset</string>
|
||||
<string name="error_import_app_properties">Virhe sovellusasetuksia tuodessa</string>
|
||||
<string name="filter">Suodatin</string>
|
||||
<string name="warning_database_already_opened">Sulje avoinna oleva tietokanta ennen uuden avaamista</string>
|
||||
<string name="warning_empty_recycle_bin">Poista pysyvästi kaikki solmut roskakorista?</string>
|
||||
<string name="warning_replace_file">Tämän tiedoston lataaminen korvaa nykyisen.</string>
|
||||
<string name="warning_file_too_big">Keepass-tietokannan tulisi sisältää vain pieniä aputiedostoja (kuten PGP-avaintiedostoja).\n\nTietokannastasi voi tulla hyvin suuri ja suorituskyky voi heiketä tämän latauksen seurauksena.</string>
|
||||
<string name="warning_sure_add_file">Lisää tiedosto joka tapauksessa?</string>
|
||||
<string name="warning_remove_unlinked_attachment">Linkittämättömien tietojen poistaminen voi pienentää tietokannan kokoa, mutta se voi myös poistaa KeePass-liitännäisten käyttämiä tietoja.</string>
|
||||
<string name="warning_sure_remove_data">Poistetaanko tiedot joka tapauksessa?</string>
|
||||
<string name="warning_large_keyfile">Ei ole suositeltavaa lisätä suurta avantiedostos, sillä se voi estää tietokantaa avautumasta.</string>
|
||||
<string name="warning_empty_keyfile_explanation">Avaintiedoston sisältöä ei tulisi koskaan muuttaa, ja parhaassa tapauksessa sen tulisi sisältää satunnaisesti tuotettua tietoa.</string>
|
||||
<string name="save_mode">Tallennustila</string>
|
||||
<string name="registration_mode">Rekisteröintitila</string>
|
||||
<string name="export_app_properties_summary">Luo tiedosto, johon sovellusasetukset viedään</string>
|
||||
<string name="export_app_properties_title">Vie sovellusasetukset</string>
|
||||
<string name="description_app_properties">KeePassDX ominaisuudet sovellusasetusten hallintaan</string>
|
||||
<string name="success_import_app_properties">Sovellusasetukset tuotu</string>
|
||||
<string name="error_export_app_properties">Virhe sovellusasetuksia viedessä</string>
|
||||
<string name="success_export_app_properties">Sovellusasetukset tuotu</string>
|
||||
</resources>
|
||||
@@ -75,8 +75,7 @@
|
||||
<string name="content_description_update_from_list">I-update</string>
|
||||
<string name="content_description_keyboard_close_fields">Isara ang mga field</string>
|
||||
<string name="select_to_copy">Piliin para kopyahin ang %1$s sa clipboard</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Ang Kunzisoft ay <strong>open source</strong> at <strong>walang advertising</strong>.
|
||||
\nIbinigay ito nang as is, sa ilalim <strong>GPLv3</strong> na lisensya, nang walang anumang warranty.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Ang Kunzisoft ay <strong>open source</strong> at <strong>walang advertising</strong>. \nIbinigay ito nang as is, sa ilalim <strong>GPLv3</strong> na lisensya, nang walang anumang warranty.</string>
|
||||
<string name="html_about_privacy"><strong>Walang user data ay kinukuha</strong>, ang aplikasyon na ito ay hindi kumokonekta sa anumang server, gumanagana ng lokal at ganap na ginagalang ang pagkapribado ng mga gumagamit.</string>
|
||||
<string name="html_about_contribution">Para <strong>panatilihin ang aming kalayaan</strong>, <strong>ayusin ang mga bug</strong>, <strong>magdagdag ng mga feature</strong> at <strong>maging palaging aktibo</strong>, umaasa kami sa iyong <strong>kontribusyon</strong>.</string>
|
||||
<string name="entry_accessed">Na-access</string>
|
||||
@@ -102,7 +101,7 @@
|
||||
<string name="error_otp_counter">Dapat nasa pagitan ng %1$d at %2$d ang counter.</string>
|
||||
<string name="error_otp_period">Dapat nasa pagitan ng %1$d at %2$d na segundo ang period.</string>
|
||||
<string name="error_otp_digits">Dapat maglaman ng %1$d hanggang %2$d na digit ang token.</string>
|
||||
<string name="error_registration_read_only">Hindi pinapayagan ang pag-save ng bagong item sa read-only na database</string>
|
||||
<string name="error_registration_read_only">Hindi pinapayagan ang pag-save ng bagong item sa read-only na database.</string>
|
||||
<string name="error_no_response_from_challenge">Hindi makuha ang tugon mula sa challenge.</string>
|
||||
<string name="error_driver_required">Kinakailangan ang driver para sa %1$s.</string>
|
||||
<string name="error_unable_merge_database_kdb">Hindi maisama mula sa database V1.</string>
|
||||
@@ -159,7 +158,7 @@
|
||||
<string name="entry_user_name">Username</string>
|
||||
<string name="error_arc4">Hindi sinusuportahan ang Arcfour stream cipher.</string>
|
||||
<string name="error_can_not_handle_uri">Hindi ma-handle ang URI na ito sa KeePassDX.</string>
|
||||
<string name="error_file_not_create">Hindi magawa ang file</string>
|
||||
<string name="error_file_not_create">Hindi magawa ang file.</string>
|
||||
<string name="error_invalid_db">Hindi mabasa ang database.</string>
|
||||
<string name="error_invalid_path">Siguraduhing tama ang path.</string>
|
||||
<string name="error_invalid_OTP">Hindi wastong OTP secret.</string>
|
||||
@@ -194,7 +193,7 @@
|
||||
<string name="error_start_database_action">May naganap na error habang nagsasagawa ng pagkilos sa database.</string>
|
||||
<string name="error_remove_file">May naganap na error habang tinatanggal ang file data.</string>
|
||||
<string name="error_upload_file">May naganap na error habang ina-upload ang file data.</string>
|
||||
<string name="error_challenge_already_requested">Hiniling na ang challenge</string>
|
||||
<string name="error_challenge_already_requested">Hiniling na ang challenge.</string>
|
||||
<string name="error_response_already_provided">Ibinigay na ang tugon.</string>
|
||||
<string name="error_cancel_by_user">Kinansela ng user.</string>
|
||||
<string name="error_hardware_key_unsupported">Hindi sinusuportahan ang hardware key.</string>
|
||||
@@ -279,4 +278,36 @@
|
||||
<string name="select_database_file">Magbukas ng umiiral na vault</string>
|
||||
<string name="create_keepass_file">Gumawa ng bagong vault</string>
|
||||
<string name="auto_focus_search_title">Mabilis na paghahanap</string>
|
||||
<string name="auto_focus_search_summary">Humiling ng paghahanap kapag bumubukas ng database</string>
|
||||
<string name="subdomain_search_title">Subdomain na paghahanap</string>
|
||||
<string name="subdomain_search_summary">Maghanap ng mga web domain gamit ang mga constraint ng subdomain</string>
|
||||
<string name="progress_create">Gumagawa ng bagong database…</string>
|
||||
<string name="progress_title">Nagtatrabaho…</string>
|
||||
<string name="read_only">Naka-write protect</string>
|
||||
<string name="contains_duplicate_uuid">Nalalaman ng mga duplicate na UUID ang database.</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Lutasin ang problema sa pamamagitan ng pag-generate ng mga bagong UUID sa mga duplicate para magpatuloy?</string>
|
||||
<string name="save_mode">Mode ng pag-save</string>
|
||||
<string name="remember_keyfile_locations_summary">Sinusubaybayan kung saan naka-imbak ang mga keyfile</string>
|
||||
<string name="remember_hardware_key_title">Tandaan ang mga hardware key</string>
|
||||
<string name="show_recent_files_title">Ipakita ang mga kamakailang file</string>
|
||||
<string name="show_recent_files_summary">Pinapakita ang mga lokasyon ng mga kamakailang database</string>
|
||||
<string name="hide_broken_locations_title">Itago ang mga sirang link ng database</string>
|
||||
<string name="import_app_properties_title">I-import ang mga setting ng app</string>
|
||||
<string name="import_app_properties_summary">Pumili ng file upang i-import ang mga setting ng app</string>
|
||||
<string name="export_app_properties_title">I-export ang mga setting ng app</string>
|
||||
<string name="export_app_properties_summary">Gumawa ng file para i-export ang mga setting ng app</string>
|
||||
<string name="search_mode">Mode ng paghahanap</string>
|
||||
<string name="selection_mode">Mode ng pagpili</string>
|
||||
<string name="registration_mode">Mode ng pagrehistro</string>
|
||||
<string name="remember_database_locations_summary">Sinusubaybayan kung saan naka-imbak ang mga database</string>
|
||||
<string name="remember_keyfile_locations_title">Tandaan ang mga lokasyon ng keyfile</string>
|
||||
<string name="remember_hardware_key_summary">Sinusubaybayan ang mga ginamit na hardware key</string>
|
||||
<string name="hide_broken_locations_summary">Itago ang mga sirang link sa listahan ng mga kamakailang database</string>
|
||||
<string name="read_only_warning">Depende sa iyong file manager, hindi maaring pinapayagan ang KeePassDX na mag-write sa iyong storage.</string>
|
||||
<string name="protection">Proteksyon</string>
|
||||
<string name="remember_database_locations_title">Tandaan ang mga lokasyon ng database</string>
|
||||
<string name="description_app_properties">Mga property ng KeePassDX para ipamahala ang mga setting ng app</string>
|
||||
<string name="success_import_app_properties">Na-import ang mga setting ng app</string>
|
||||
<string name="error_import_app_properties">Error habang nagi-import ng mga setting ng app.</string>
|
||||
<string name="success_export_app_properties">Na-export ang mga setting ng app</string>
|
||||
</resources>
|
||||
@@ -65,7 +65,7 @@
|
||||
<string name="entry_user_name">Nom d’utilisateur</string>
|
||||
<string name="error_arc4">Le chiffrement de flux Arcfour n’est pas pris en charge.</string>
|
||||
<string name="error_can_not_handle_uri">Impossible de gérer cette URI dans KeePassDX.</string>
|
||||
<string name="error_file_not_create">Impossible de créer le fichier</string>
|
||||
<string name="error_file_not_create">Impossible de créer le fichier.</string>
|
||||
<string name="error_invalid_db">Impossible de lire la base de données.</string>
|
||||
<string name="error_invalid_path">Vérifier la validité du chemin d’accès.</string>
|
||||
<string name="error_no_name">Saisir un nom.</string>
|
||||
@@ -245,7 +245,7 @@
|
||||
<string name="html_text_ad_free">Contrairement à beaucoup d’applications de gestion de mots de passe, cette application est <strong>sans publicité</strong>, <strong>libre sous licence copyleft</strong> et ne collecte pas de données personnelles sur ses serveurs, peu importe la version que vous utilisez.</string>
|
||||
<string name="html_text_buy_pro">En achetant la version pro, vous aurez accès à ce <strong>style visuelle</strong> et vous aiderez notamment <strong>la réalisation de projets communautaires.</strong></string>
|
||||
<string name="html_text_feature_generosity">Ce <strong>style visuel</strong> est disponible grâce à votre générosité.</string>
|
||||
<string name="html_text_donation">Afin de garder notre liberté et d’être toujours actifs, nous comptons sur votre <strong>contribution.</strong></string>
|
||||
<string name="html_text_donation">En <strong>contribuant</strong> au projet <i>(financièrement, code, traduction)</i>, vous l\'aiderez à continuer à vivre et à prospérer, et vous serez également éligible à la procédure de déblocage du <strong>theme</strong>.</string>
|
||||
<string name="html_text_dev_feature">Cette fonctionnalité est <strong>en cours de développement</strong> et nécessite votre <strong>contribution</strong> pour être bientôt disponible.</string>
|
||||
<string name="html_text_dev_feature_buy_pro">En achetant la version <strong>pro</strong>,</string>
|
||||
<string name="html_text_dev_feature_contibute">En <strong>contribuant</strong>,</string>
|
||||
@@ -320,7 +320,7 @@
|
||||
<string name="keyboard_previous_fill_in_title">Changement précédent</string>
|
||||
<string name="keyboard_previous_fill_in_summary">Revenir automatiquement au clavier précédent après avoir exécuté \"Action de touche automatique\"</string>
|
||||
<string name="selection_mode">Mode sélection</string>
|
||||
<string name="do_not_kill_app">Ne pas tuer l\'application…</string>
|
||||
<string name="do_not_kill_app">Ne pas fermer l\'application…</string>
|
||||
<string name="lock_database_back_root_title">Appuyer sur \"Retour\" pour verrouiller</string>
|
||||
<string name="lock_database_back_root_summary">Verrouille la base de données lorsque l’utilisateur clique sur le bouton retour de l’écran racine</string>
|
||||
<string name="clear_clipboard_notification_title">Suppression à la fermeture</string>
|
||||
@@ -501,7 +501,7 @@
|
||||
<string name="registration_mode">Mode enregistrement</string>
|
||||
<string name="save_mode">Mode sauvegarde</string>
|
||||
<string name="search_mode">Mode recherche</string>
|
||||
<string name="error_registration_read_only">L’enregistrement d’un nouvel élément n’est pas autorisé dans une base de données en lecture seule</string>
|
||||
<string name="error_registration_read_only">L’enregistrement d’un nouvel élément n’est pas autorisé dans une base de données en lecture seule.</string>
|
||||
<string name="error_field_name_already_exists">Le nom du champ existe déjà.</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Supprimer toutes les clés de chiffrement liées à la reconnaissance de déverrouillage de l\'appareil \?</string>
|
||||
<string name="device_credential_unlock_enable_summary">Vous permet d\'utiliser les informations d\'identification de votre appareil pour ouvrir la base de données</string>
|
||||
@@ -556,9 +556,9 @@
|
||||
<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 paramètres de l\'application</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="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 paramètres de l\'application</string>
|
||||
@@ -605,7 +605,7 @@
|
||||
<string name="hint_icon_name">Nom de l\'icône</string>
|
||||
<string name="content_description_database_color">Couleur de la base de données</string>
|
||||
<string name="content_description_entry_foreground_color">Couleur de premier plan de l\'entrée</string>
|
||||
<string name="permission">Permission</string>
|
||||
<string name="permission">Autorisation</string>
|
||||
<string name="warning_exact_alarm">Vous n\'avez pas autorisé l\'application à utiliser une alarme exacte. Par conséquent, les fonctions nécessitant une minuterie ne seront pas effectuées avec une heure exacte.</string>
|
||||
<string name="content_description_entry_background_color">Couleur d\'arrière plan de l\'entrée</string>
|
||||
<string name="tags">Étiquettes</string>
|
||||
@@ -639,6 +639,7 @@
|
||||
<string name="advanced_unlock_keystore_warning">Cette fonction permet de stocker des données d\'identification chiffrées dans le KeyStore sécurisé de votre appareil.
|
||||
\n
|
||||
\nSelon l\'implémentation de l\'API native du système d\'exploitation, il se peut qu\'elle ne soit pas entièrement fonctionnelle.
|
||||
\n
|
||||
\nVérifiez la compatibilité et la sécurité du KeyStore auprès du fabricant de votre appareil et du créateur de la ROM que vous utilisez.</string>
|
||||
<string name="content_description_passphrase_word_count">Nombre de mots</string>
|
||||
<string name="keyboard_previous_search_title">Écran de recherche</string>
|
||||
@@ -675,12 +676,12 @@
|
||||
<string name="content_description_hardware_key_checkbox">Case à cocher de clé matérielle</string>
|
||||
<string name="waiting_challenge_request">En attente de la requête de challenge…</string>
|
||||
<string name="waiting_challenge_response">En attente de la réponse de challenge…</string>
|
||||
<string name="error_challenge_already_requested">Challenge déjà demandé</string>
|
||||
<string name="error_challenge_already_requested">Challenge déjà demandé.</string>
|
||||
<string name="error_response_already_provided">Réponse déjà fournie.</string>
|
||||
<string name="error_no_response_from_challenge">Impossible d\'obtenir la réponse du challenge.</string>
|
||||
<string name="error_cancel_by_user">Annulé par l\'utilisateur.</string>
|
||||
<string name="error_driver_required">Le pilote pour %1$s est nécessaire.</string>
|
||||
<string name="error_unable_merge_database_kdb">Impossible de fusionner à partir d\'une base de données V1.</string>
|
||||
<string name="error_unable_merge_database_kdb">Impossible de fusionner à partir d\'un fichier de base de données kdb.</string>
|
||||
<string name="merge_success">Fusion terminée avec succès</string>
|
||||
<string name="info">Info</string>
|
||||
<string name="menu_app_settings_summary">Recherche, verrouillage, historique, propriétés</string>
|
||||
@@ -698,4 +699,11 @@
|
||||
\n
|
||||
\nSi un verrouillage automatique est activé et que vous oubliez que vous étiez en train d\'effectuer une modification, vous risquez de perdre vos données.</string>
|
||||
<string name="warning_database_info_changed_options_read_only">Recharger la base de données avec les dernières modifications.</string>
|
||||
<string name="generate_keyfile">Générer un fichier clé</string>
|
||||
<string name="nodes">Nœuds</string>
|
||||
<string name="recursive_number_entries_title">Nombre d\'entrées récursif</string>
|
||||
<string name="recursive_number_entries_summary">Calcule récursivement le nombre d\'entrées dans un groupe</string>
|
||||
<string name="warning_large_keyfile">Il n\'est pas recommandé d\'ajouter un fichier clé volumineux, car cela pourrait empêcher l\'ouverture de la base de données.</string>
|
||||
<string name="hide_templates_title">Cacher les gabarits</string>
|
||||
<string name="hide_templates_summary">Les gabarits ne sont pas affichés</string>
|
||||
</resources>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user