Compare commits

...

121 Commits
1.05e ... 1.06f

Author SHA1 Message Date
Philipp Crocoll
135d7ebda5 keep old keyboard dialog for Android <= 8, fix bugs with keyboard labels, release 1.06f 2018-09-10 09:51:53 +02:00
Philipp Crocoll
337297e3e0 manifest for 1.06d 2018-08-28 20:54:56 +02:00
Philipp Crocoll
26def9805f avoid potential OutOfBounds exception 2018-08-28 20:47:50 +02:00
Philipp Crocoll
5429876cde fix potential NullPointerExceptions 2018-08-28 05:39:28 +02:00
Philipp Crocoll
d13b2d236b manifest for 1.06c 2018-08-27 12:14:07 +02:00
Philipp Crocoll
9dce637d22 fix potential crash in FileSelectActivity 2018-08-27 12:06:04 +02:00
Philipp Crocoll
dbb291fb86 implement a new way to select additional fields in the keyboard, closes https://github.com/PhilippC/keepass2android/issues/377 2018-08-27 11:18:46 +02:00
Philipp Crocoll
bc2dc1b2e9 manifest for 1.06b 2018-08-23 07:01:36 +02:00
PhilippC
2d9429d688 Merge pull request #514 from PhilippC/l10n_master
New Crowdin translations
2018-08-21 20:35:40 +02:00
PhilippC
62f3ff1902 New translations strings.xml (German) 2018-08-21 20:32:04 +02:00
PhilippC
36735cdfbe New translations strings.xml (Chinese Traditional) 2018-08-21 20:31:51 +02:00
PhilippC
f57db90d7b New translations strings.xml (Portuguese, Brazilian) 2018-08-21 20:31:23 +02:00
Philipp Crocoll
97aec23384 Merge branch 'master' of https://github.com/PhilippC/keepass2android 2018-08-21 20:27:59 +02:00
PhilippC
eb3bcf04ea Merge pull request #467 from PhilippC/l10n_master
New Crowdin translations
2018-08-21 20:27:13 +02:00
PhilippC
40626ba708 New translations strings.xml (Chinese Simplified) 2018-08-21 20:23:42 +02:00
PhilippC
882597365b New translations strings.xml (Portuguese) 2018-08-21 20:23:16 +02:00
PhilippC
6b456c2f57 New translations strings.xml (German) 2018-08-21 19:41:08 +02:00
PhilippC
515ae57e88 New translations strings.xml (French) 2018-08-21 19:41:04 +02:00
PhilippC
9cc9d6ab66 New translations strings.xml (Croatian) 2018-08-21 19:40:55 +02:00
PhilippC
40b4fd210a New translations strings.xml (Chinese Traditional) 2018-08-21 19:40:53 +02:00
PhilippC
2ce2d0efab New translations strings.xml (Portuguese, Brazilian) 2018-08-21 19:40:24 +02:00
PhilippC
97a863293d New translations strings.xml (Polish) 2018-08-21 19:40:20 +02:00
PhilippC
d45426a4c1 New translations strings.xml (Persian) 2018-08-21 19:40:17 +02:00
Philipp Crocoll
d5a49db782 Prevent users from accidentally opening the local backup, closes #479 2018-08-21 19:34:22 +02:00
Philipp Crocoll
4b393f412c avoid exception with new Keyboard dialog on some devices 2018-08-21 07:25:31 +02:00
Philipp Crocoll
8cc77fbe1d hide password input fields from accessibility services 2018-08-20 16:56:20 +02:00
PhilippC
673632bd92 Merge pull request #487 from mohammadnaseri/master
Password should be invisible to the accessibility services: fixed for entering online storage credentials
2018-08-20 16:47:08 +02:00
Philipp Crocoll
d2b9a5d1a9 Merge branch 'master' of https://github.com/PhilippC/keepass2android 2018-08-20 16:45:34 +02:00
Philipp Crocoll
2bc46b0a0e fix a local build issue 2018-08-20 16:44:32 +02:00
Philipp Crocoll
74200daf90 finish transition to custom activity as dialog instead of using AlertDialog which is no longer working in Android P, closes #377 2018-08-20 16:44:23 +02:00
Philipp Crocoll
b89c127df4 try to introduce an activity as dialog for string selection, not yet working 2018-08-20 15:44:22 +02:00
Philipp Crocoll
67bbbb2097 handle empty initialPath in sftp dialog to close #499 2018-08-18 06:08:08 +02:00
PhilippC
c6ddf0de87 New translations strings.xml (Vietnamese) 2018-08-16 19:10:06 +02:00
Philipp Crocoll
0ef73952b1 fix crash when no FingerprintManager is available, fixes #474 2018-08-15 04:47:38 +02:00
PhilippC
0e02a3aeee New translations strings.xml (Croatian) 2018-08-12 16:00:05 +02:00
Mohammad Naseri
1558a7c386 Password should be invisible to the accessibility services 2018-08-03 12:38:48 +02:00
PhilippC
b72becd328 New translations strings.xml (Swedish) 2018-08-03 11:40:06 +02:00
PhilippC
df2ac8e203 New translations strings.xml (Portuguese) 2018-07-26 12:00:09 +02:00
PhilippC
c6c230002c New translations strings.xml (Portuguese) 2018-07-26 11:50:06 +02:00
PhilippC
885503b5fa New translations strings.xml (Persian) 2018-07-24 21:10:10 +02:00
PhilippC
40fd91257e New translations strings.xml (Vietnamese) 2018-07-23 13:40:11 +02:00
PhilippC
02ece3cf41 New translations strings.xml (Chinese Simplified) 2018-07-23 13:40:08 +02:00
PhilippC
901c879647 New translations strings.xml (Catalan) 2018-07-23 13:40:05 +02:00
PhilippC
990a73f4a4 New translations strings.xml (Chinese Traditional) 2018-07-23 13:31:16 +02:00
PhilippC
73169d339d New translations strings.xml (Croatian) 2018-07-23 13:31:14 +02:00
PhilippC
265b86c031 New translations strings.xml (Czech) 2018-07-23 13:31:11 +02:00
PhilippC
7c29c23015 New translations strings.xml (Danish) 2018-07-23 13:31:08 +02:00
PhilippC
538e579477 New translations strings.xml (Dutch) 2018-07-23 13:31:06 +02:00
PhilippC
73db5f55e2 New translations strings.xml (Finnish) 2018-07-23 13:31:02 +02:00
PhilippC
31a9980343 New translations strings.xml (French) 2018-07-23 13:31:00 +02:00
PhilippC
02c50f510f New translations strings.xml (Galician) 2018-07-23 13:30:57 +02:00
PhilippC
3541ee0512 New translations strings.xml (German) 2018-07-23 13:30:54 +02:00
PhilippC
e72821ba1e New translations strings.xml (Greek) 2018-07-23 13:30:51 +02:00
PhilippC
3af00871a5 New translations strings.xml (Hebrew) 2018-07-23 13:30:48 +02:00
PhilippC
22fe4ca790 New translations strings.xml (Bulgarian) 2018-07-23 13:30:46 +02:00
PhilippC
72d0570c15 New translations strings.xml (Hungarian) 2018-07-23 13:30:43 +02:00
PhilippC
62e0cc0867 New translations strings.xml (Italian) 2018-07-23 13:30:40 +02:00
PhilippC
8987480491 New translations strings.xml (Japanese) 2018-07-23 13:30:38 +02:00
PhilippC
70bb4c2478 New translations strings.xml (Korean) 2018-07-23 13:30:35 +02:00
PhilippC
cf079a6be4 New translations strings.xml (Portuguese, Brazilian) 2018-07-23 13:30:33 +02:00
PhilippC
f153cdcba1 New translations strings.xml (Russian) 2018-07-23 13:30:30 +02:00
PhilippC
4e048240c5 New translations strings.xml (Serbian (Cyrillic)) 2018-07-23 13:30:27 +02:00
PhilippC
c098bb1ca0 New translations strings.xml (Slovak) 2018-07-23 13:30:24 +02:00
PhilippC
e02ded734c New translations strings.xml (Slovenian) 2018-07-23 13:30:22 +02:00
PhilippC
e721f29f5a New translations strings.xml (Spanish) 2018-07-23 13:30:19 +02:00
PhilippC
f763d5f936 New translations strings.xml (Swedish) 2018-07-23 13:30:17 +02:00
PhilippC
a3368eb557 New translations strings.xml (Turkish) 2018-07-23 13:30:14 +02:00
PhilippC
b5758347c2 New translations strings.xml (Ukrainian) 2018-07-23 13:30:11 +02:00
PhilippC
775a6d92aa New translations strings.xml (Indonesian) 2018-07-23 13:30:09 +02:00
PhilippC
2ab5995177 New translations strings.xml (Basque) 2018-07-23 13:30:06 +02:00
PhilippC
f6e847d43f New translations strings.xml (Portuguese) 2018-07-23 13:28:28 +02:00
PhilippC
cac2ca3d18 New translations strings.xml (Polish) 2018-07-23 13:28:26 +02:00
PhilippC
d1e870cee0 New translations strings.xml (Persian) 2018-07-23 13:28:24 +02:00
PhilippC
ca0f65767b New translations strings.xml (Norwegian Nynorsk) 2018-07-23 13:28:22 +02:00
PhilippC
7968bfc262 New translations strings.xml (Norwegian Bokmal) 2018-07-23 13:28:19 +02:00
PhilippC
ed4bbe9814 New translations strings.xml (Romanian) 2018-07-23 13:28:16 +02:00
PhilippC
6e83eb6da2 New translations strings.xml (Arabic) 2018-07-23 13:28:14 +02:00
PhilippC
00949b6135 Update Crowdin configuration file 2018-07-23 11:37:54 +02:00
Philipp Crocoll
f3a857f26f Merge branch 'master' of https://github.com/PhilippC/keepass2android 2018-07-23 11:00:38 +02:00
PhilippC
4bd03372aa Update Crowdin configuration file 2018-07-23 10:36:20 +02:00
Philipp Crocoll
dcc589c57a Changelog for 1.06 2018-07-23 10:29:55 +02:00
Philipp Crocoll
3018ec8cf0 update translations from crowdin 2018-07-23 10:29:48 +02:00
Philipp Crocoll
c452a66a4f don't try to use samsung api if Fingprint Unlock with Android API is set up, should fix #126 2018-07-23 10:07:30 +02:00
Philipp Crocoll
7a860f8564 fix #460 ("Lookup entry with "%1$s"") 2018-07-20 21:44:29 +02:00
Philipp Crocoll
94f6f4bdff fix string error 2018-07-16 13:07:43 +02:00
Philipp Crocoll
a627dac4b7 remove internal YubiChallenge activity in favor of ykdroid (allows to reduce required permissions) 2018-07-16 13:07:29 +02:00
Philipp Crocoll
848b6862be harmonize wording for caching, closes #86 2018-07-13 06:47:48 +02:00
Philipp Crocoll
d181575e93 improve wording for file caching at more places (see discussion in #86) 2018-07-12 21:23:06 +02:00
Philipp Crocoll
778775055f suggest to enable fingerprint if hardware is detected but fingerprint unlock not configured, closes #426 and closes #355 2018-07-12 06:44:02 +02:00
Philipp Crocoll
22ccda8d34 Merge branch 'master' of https://github.com/PhilippC/keepass2android 2018-07-12 05:29:08 +02:00
Philipp Crocoll
c5fc6fd72e manifest for next release 2018-07-12 05:28:59 +02:00
Philipp Crocoll
c8a4978b5f improve wording for file caching, considering that this is also used for the offline version (see discussion in #86) 2018-07-12 05:27:01 +02:00
PhilippC
9e88f8c884 Merge pull request #449 from pp3345/ykdroid-keyboard-configuration
Mark keyboard configuration changes as handled in PasswordActivity
2018-07-10 22:25:06 +02:00
Yussuf Khalil
2e543bf4d3 Mark keyboard configuration changes as handled in PasswordActivity
This is required to avoid screen flickering due to recreation of the
activity when the ykDroid overlay is presented.
2018-07-10 19:30:08 +02:00
Philipp Crocoll
caf42d423f make sure the underlying stream is only written when the write transaction is commited. Avoids corrupted files when cancelling Yubichallenge during saving (#4) 2018-07-09 12:34:21 +02:00
Philipp Crocoll
dc39f874ac fix potential null reference exception when displaying error message 2018-07-09 12:27:29 +02:00
Philipp Crocoll
d1c7a124cf don't return empty strings for filename without path and ext in content storage, fixes #446 2018-07-09 11:03:10 +02:00
Philipp Crocoll
8ec17ce9a6 add timeout to fix #444 2018-07-09 10:22:44 +02:00
Philipp Crocoll
012af35e87 fix potential crash in SearchProvider, fixes #429 2018-07-03 19:38:59 +02:00
Philipp Crocoll
78bd1f4a5d update translations from crowdin, activates KeepassXC-challenge-response for all languages, add Changelog for 1.06-pre1 2018-07-02 12:54:25 +02:00
Philipp Crocoll
4477158182 editing groups was not possible, fixed. fixes #434 2018-07-02 12:10:28 +02:00
Philipp Crocoll
6e96021047 allow to use ykDroid instead of built-in activity 2018-07-02 12:03:32 +02:00
Philipp Crocoll
48f57eea66 fix bug with progress dialog not disappearing somtimes 2018-07-02 12:01:47 +02:00
Philipp Crocoll
4b6cfefaf3 Merge branch '1.05b' 2018-06-30 22:14:03 +02:00
Philipp Crocoll
0e34cc7f26 change manifest version to 1.06-pre 2018-06-30 22:13:16 +02:00
Philipp Crocoll
27fb2870ab check if file is trashed, do not load trashed files, fixes #165 2018-06-30 22:13:00 +02:00
Philipp Crocoll
ee6b7c4fe0 Merge branch 'master' of https://github.com/PhilippC/keepass2android 2018-06-30 21:45:13 +02:00
Philipp Crocoll
0464cecde5 add roundIcon property for app, now round icon should work on Android 7 2018-06-30 21:21:48 +02:00
Philipp Crocoll
b237259599 fix incorrect folder icon (fixes #433) 2018-06-30 21:10:56 +02:00
Philipp Crocoll
8c379739f0 refactoring of ProgressTask and OnFinish classes, allowing to access the currently active activity from the task handlers. This fixes #33 and is required to correctly manage the activity recreation caused by the NFC activity coming to foreground with KeepassXC challenge (#4) 2018-06-26 13:44:48 +02:00
Philipp Crocoll
4fb8db982c add missing calls to base.OnActivityResult() in *EditActivity, leading to errors saving with YubiChallenge (#4). 2018-06-25 13:24:22 +02:00
Philipp Crocoll
921b50b642 add NFC permission to debug manifest also 2018-06-25 13:23:34 +02:00
Philipp Crocoll
031332e8ab re-add KeepassXC-style challenge response support 2018-06-25 13:23:24 +02:00
Philipp Crocoll
f03ccced8d Merge branch 'master' into 1.05b 2018-06-25 12:21:34 +02:00
Philipp Crocoll
51973d225c switch to suggested Native TLS implementation and HttpClient stack (https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/http-stack?tabs=windows) 2018-06-23 13:08:32 +02:00
Philipp Crocoll
a59666e752 workaround to fix #420, based on https://stackoverflow.com/questions/28411153/jsch-suppressed-java-lang-classnotfoundexception-lorg-ietf-jgss-oid/28965796#28965796 and https://github.com/zeapo/Android-Password-Store/issues/49 2018-06-23 13:03:51 +02:00
PhilippC
8259191e50 Merge pull request #415 from jakseb/docfix
Fix broken links to screenshots in documentation
2018-06-23 12:08:44 +02:00
Sebastian Jakubiak
82f28bfc8c Update links to screenshots in docs
Fixes #366 and #396
2018-06-16 11:04:02 +02:00
Philipp Crocoll
a1d6347db3 create own YubiChallenge activity 2018-05-28 10:39:09 +02:00
PhilippC
e66a8a0b21 Merge pull request #367 from gacelperfinian/patch-1
Updated Documentation.md to GitHub-flavoured MarkDown
2018-05-07 10:56:10 +02:00
Gacel Perfinian
186fa35f70 Updated Documentation.md to GitHub-flavoured MarkDown
Changes:
- Changed last bullet in **What you should know and think about** into two bullet points due to change 2.
- Changed MarkDown so it renders correctly on GitHub Parser.
- Changed wording into bullet 2.2 to emphasise storing any second-factor authentication (if any was used).
2018-05-04 14:13:02 +08:00
142 changed files with 9020 additions and 1869 deletions

6
crowdin.yml Normal file
View File

@@ -0,0 +1,6 @@
files:
- source: src/keepass2android/Resources/values/strings.xml
translation: >-
/src/keepass2android/Resources/values-%two_letters_code%/%original_file_name%
translate_attributes: '0'
content_segmentation: '0'

View File

@@ -7,11 +7,12 @@ If you think something is missing in the documentation, please create an issue a
If you store important information using Keepass2Android, you should know a little bit about what's going on:
* Keepass2Android stores your password in an encrypted file. It is *your responsibility* to backup this file regularly and safely.
* There is no way for anyone, including the app's author, to access the information stored in your password database without
** having the database file
** knowing the master password (and additional second factor if you chose one)
This means that **if you forget the master password, your database is lost**! So make sure you remember the password. You might also want to think about:
** What happens if I have an accident? Should any trusted person be able to access my database?
** What happens if my phone gets lost or stolen? Do I know how to recover my database from a backup or the cloud?
* having the database file
* knowing the master password (and additional second factor if you chose one)
This means that **if you forget the master password, your database is lost**! So make sure you remember the password and retain any second factor method (if one is used).
* You might also want to think about:
* What happens if I have an accident? Should any trusted person be able to access my database?
* What happens if my phone gets lost or stolen? Do I know how to recover my database from a backup or the cloud?
# Getting started

View File

@@ -4,28 +4,28 @@
on how to set up a Keepass 2 database with Yubikey/OTP protection.<br>
<br>
After successful setup you should have the database file, e.g. yubi.kdbx, and the OTP auxiliary file, e.g. yubi.otp.xml, both in the same folder.<br>
<a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767825"><img title="OTPAuxFile" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767826" alt="OTPAuxFile" width="513" height="40" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<a href="How to use Keepass2Android with YubiKey NEO_OTPAuxFile_2.png"><img title="OTPAuxFile" src="How to use Keepass2Android with YubiKey NEO_OTPAuxFile_thumb.png" alt="OTPAuxFile" width="513" height="40" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<p>Make sure you make <strong>both files</strong> available to Keepass2Android, e.g. by placing them both in your Dropbox.</p>
<p>Now you should check your NDEF setup of the Yubikey NEO. Therefore, go to the Tools menu in the Yubico Personalization Utility. Select the same slot as used for OTPs with Keepass 2. The default setting for NDEF type and payload should work. If you experience
problems, you may use the configuration as shown in this screenshot or simply press the &ldquo;Reset&rdquo; button:</p>
<p><a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767911"><img title="image" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767912" alt="image" width="760" height="622" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<p><a href="How to use Keepass2Android with YubiKey NEO_image_2.png"><img title="image" src="How to use Keepass2Android with YubiKey NEO_image_thumb.png" alt="image" width="760" height="622" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<p><br>
<br>
In Keepass2Android, select &quot;Open file&quot; and locate your database file, e.g. yubi.kdbx.<br>
<br>
In the password screen under &quot;Select master key type&quot; select &quot;Password &#43; OTP&quot;.</p>
<p><a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767913"><img title="Screenshot_2013-12-13-06-38-50" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767914" alt="Screenshot_2013-12-13-06-38-50" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<p><a href="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-38-50_2.png"><img title="Screenshot_2013-12-13-06-38-50" src="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-38-50_thumb.png" alt="Screenshot_2013-12-13-06-38-50" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<p>Click &quot;Load auxiliary OTP file&quot;. This is required to load the information how many OTPs must be entered. As loading the file might require user action in some cases, this is not performed automatically.<br>
<a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767915"><img title="Screenshot_2013-12-13-06-38-12" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767916" alt="Screenshot_2013-12-13-06-38-12" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a><br>
<a href="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-38-12_2.png"><img title="Screenshot_2013-12-13-06-38-12" src="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-38-12_thumb.png" alt="Screenshot_2013-12-13-06-38-12" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a><br>
After loading the OTP auxiliary file, you should see a few text fields for entering the OTPs. Now swipe your YubiKey NEO at the back of your Android device. If you have multiple apps which can handle NFC actions, you might be prompted to select which app to
use. Select Keepass2Android in this case. Swipe your YubiKey again until all OTP fields are filled. Note: You don't need to select the next text field, this is done automatically!<br>
<a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767917"><img title="Screenshot_2013-12-13-06-38-36" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767918" alt="Screenshot_2013-12-13-06-38-36" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a><br>
<a href="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-38-36_2.png"><img title="Screenshot_2013-12-13-06-38-36" src="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-38-36_thumb.png" alt="Screenshot_2013-12-13-06-38-36" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a><br>
Don't forget to also enter your password and click OK. You will see the &ldquo;Saving auxiliary OTP file&hellip;&rdquo; dialog. Note that there is some encryption envolved which is probably fast on your PC but might take some time on your mobile device. You
can reduce the look-ahead window length to speed this up.<br>
<a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767919"><img title="Screenshot_2013-12-13-06-39-47" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=keepass2android&DownloadId=767920" alt="Screenshot_2013-12-13-06-39-47" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<a href="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-39-47_2.png"><img title="Screenshot_2013-12-13-06-39-47" src="How to use Keepass2Android with YubiKey NEO_Screenshot_2013-12-13-06-39-47_thumb.png" alt="Screenshot_2013-12-13-06-39-47" width="204" height="360" border="0" style="padding-top:0px; padding-left:0px; display:inline; padding-right:0px; border:0px"></a></p>
<h2>&nbsp;</h2>
<h2>A note about offline access</h2>
<p>If your database is stored in the cloud or on the web, you can still access it if you have enabled file caching (which is on by default). With OTPs, this becomes a little bit more complicated: If you repeatedly open your datbase while being offline, the
OTP counter stored on the Yubikey will be increased. Don&rsquo;t forget to synchronize the database (which will also synchronize the OTP auxiliary file) as soon as possible to avoid problems with accessing your database on other devices! If you often need
to open the database while you&rsquo;re offline, consider increasing the look-ahead window length!</p>
</div><div class="ClearBoth"></div>
</div><div class="ClearBoth"></div>

View File

@@ -26,6 +26,7 @@
android:hint="@string/http_auth_dialog_password"
android:inputType="textPassword"
android:paddingTop="10dp"
android:paddingBottom="20dp" />
android:paddingBottom="20dp"
android:importantForAccessibility="no" />
</LinearLayout>

View File

@@ -10,6 +10,7 @@ using Android.OS;
using Android.Provider;
using Java.IO;
using KeePassLib.Serialization;
using KeePassLib.Utility;
using Console = System.Console;
namespace keepass2android.Io
@@ -77,8 +78,9 @@ namespace keepass2android.Io
public string GetFilenameWithoutPathAndExt(IOConnectionInfo ioc)
{
return "";
}
return UrlUtil.StripExtension(
UrlUtil.GetFileName(ioc.Path));
}
public bool RequiresCredentials(IOConnectionInfo ioc)
{

View File

@@ -345,57 +345,7 @@ namespace keepass2android.Io
private class CachedWriteTransaction: IWriteTransaction
{
private class CachedWriteMemoryStream : MemoryStream
{
private readonly IOConnectionInfo ioc;
private readonly CachingFileStorage _cachingFileStorage;
private readonly bool _useFileTransaction;
private bool _closed;
public CachedWriteMemoryStream(IOConnectionInfo ioc, CachingFileStorage cachingFileStorage, bool useFileTransaction)
{
this.ioc = ioc;
_cachingFileStorage = cachingFileStorage;
_useFileTransaction = useFileTransaction;
}
public override void Close()
{
if (_closed) return;
//write file to cache:
//(note: this might overwrite local changes. It's assumed that a sync operation or check was performed before
string hash;
using (var hashingStream = new HashingStreamEx(File.Create(_cachingFileStorage.CachedFilePath(ioc)), true, new SHA256Managed()))
{
Position = 0;
CopyTo(hashingStream);
hashingStream.Close();
hash = MemUtil.ByteArrayToHexString(hashingStream.Hash);
}
File.WriteAllText(_cachingFileStorage.VersionFilePath(ioc), hash);
//update file on remote. This might overwrite changes there as well, see above.
Position = 0;
if (_cachingFileStorage.IsCached(ioc))
{
//if the file already is in the cache, it's ok if writing to remote fails.
_cachingFileStorage.TryUpdateRemoteFile(this, ioc, _useFileTransaction, hash);
}
else
{
//if not, we don't accept a failure (e.g. invalid credentials would always remain a problem)
_cachingFileStorage.UpdateRemoteFile(this, ioc, _useFileTransaction, hash);
}
base.Close();
_closed = true;
}
}
private readonly IOConnectionInfo _ioc;
private readonly bool _useFileTransaction;
@@ -429,17 +379,48 @@ namespace keepass2android.Io
public Stream OpenFile()
{
_memoryStream = new CachedWriteMemoryStream(_ioc, _cachingFileStorage, _useFileTransaction);
_memoryStream = new MemoryStream();
return _memoryStream;
}
public void CommitWrite()
{
//the transaction is committed in the stream's Close
_committed = true;
_memoryStream.Close();
//write file to cache:
//(note: this might overwrite local changes. It's assumed that a sync operation or check was performed before
byte[] output = _memoryStream.ToArray();
string hash;
using (var hashingStream = new HashingStreamEx(File.Create(_cachingFileStorage.CachedFilePath(_ioc)), true, new SHA256Managed()))
{
hashingStream.Write(output, 0, output.Length);
hashingStream.Close();
hash = MemUtil.ByteArrayToHexString(hashingStream.Hash);
}
File.WriteAllText(_cachingFileStorage.VersionFilePath(_ioc), hash);
//create another memory stream which is open for reading again
MemoryStream openMemStream = new MemoryStream(output);
//update file on remote. This might overwrite changes there as well, see above.
if (_cachingFileStorage.IsCached(_ioc))
{
//if the file already is in the cache, it's ok if writing to remote fails.
_cachingFileStorage.TryUpdateRemoteFile(openMemStream, _ioc, _useFileTransaction, hash);
}
else
{
//if not, we don't accept a failure (e.g. invalid credentials would always remain a problem)
_cachingFileStorage.UpdateRemoteFile(openMemStream, _ioc, _useFileTransaction, hash);
}
openMemStream.Dispose();
}
}
}
public IWriteTransaction OpenWriteTransaction(IOConnectionInfo ioc, bool useFileTransaction)

View File

@@ -30,8 +30,12 @@ namespace keepass2android
readonly IKp2aApp _app;
private readonly Handler _handler;
private string _message = "";
private string _submessage;
public ProgressDialogStatusLogger() {
public String SubMessage => _submessage;
public String Message => _message;
public ProgressDialogStatusLogger() {
}
@@ -56,6 +60,7 @@ namespace keepass2android
public void UpdateSubMessage(String submessage)
{
_submessage = submessage;
if (_app != null && _progressDialog != null && _handler != null)
{
_handler.Post(() =>

View File

@@ -25,39 +25,107 @@ namespace keepass2android
/// <summary>
/// Class to run a task while a progress dialog is shown
/// </summary>
public class ProgressTask {
private readonly Handler _handler;
public class ProgressTask
{
//for handling Activity recreation situations, we need access to the currently active task. It must hold that there is no more than one active task.
private static ProgressTask _currentTask = null;
public static void SetNewActiveActivity(Activity activeActivity)
{
if (_currentTask != null)
{
_currentTask.ActiveActivity = activeActivity;
}
}
public static void RemoveActiveActivity(Activity activity)
{
if ((_currentTask != null) && (_currentTask._activeActivity == activity))
_currentTask.ActiveActivity = null;
}
public Activity ActiveActivity
{
get { return _activeActivity; }
private set
{
_activeActivity = value;
if (_task != null)
_task.ActiveActivity = _activeActivity;
if (_activeActivity != null)
{
SetupProgressDialog(_app);
_progressDialog.Show();
}
}
}
private readonly Handler _handler;
private readonly RunnableOnFinish _task;
private readonly IProgressDialog _progressDialog;
private IProgressDialog _progressDialog;
private readonly IKp2aApp _app;
private Thread _thread;
private Activity _activeActivity;
private ProgressDialogStatusLogger _progressDialogStatusLogger;
public ProgressTask(IKp2aApp app, Context ctx, RunnableOnFinish task) {
public ProgressTask(IKp2aApp app, Activity activity, RunnableOnFinish task)
{
_activeActivity = activity;
_task = task;
_handler = app.UiThreadHandler;
_app = app;
// Show process dialog
_progressDialog = app.CreateProgressDialog(ctx);
_progressDialog.SetTitle(_app.GetResourceString(UiStringKey.progress_title));
_progressDialog.SetMessage("Initializing...");
// Set code to run when this is finished
_task.OnFinishToRun = new AfterTask(task.OnFinishToRun, _handler, _progressDialog);
_task.SetStatusLogger(new ProgressDialogStatusLogger(_app, _handler, _progressDialog));
SetupProgressDialog(app);
// Set code to run when this is finished
_task.OnFinishToRun = new AfterTask(activity, task.OnFinishToRun, _handler, this);
_task.SetStatusLogger(_progressDialogStatusLogger);
}
public void Run() {
// Show process dialog
_progressDialog.Show();
private void SetupProgressDialog(IKp2aApp app)
{
string currentMessage = "Initializing...";
string currentSubmessage = "";
if (_progressDialogStatusLogger != null)
{
currentMessage = _progressDialogStatusLogger.Message;
currentSubmessage = _progressDialogStatusLogger.SubMessage;
}
if (_progressDialog != null)
{
var pd = _progressDialog;
app.UiThreadHandler.Post(() =>
{
pd.Dismiss();
});
}
// Show process dialog
_progressDialog = app.CreateProgressDialog(_activeActivity);
_progressDialog.SetTitle(_app.GetResourceString(UiStringKey.progress_title));
_progressDialogStatusLogger = new ProgressDialogStatusLogger(_app, _handler, _progressDialog);
_progressDialogStatusLogger.UpdateMessage(currentMessage);
_progressDialogStatusLogger.UpdateSubMessage(currentSubmessage);
}
public void Run(bool allowOverwriteCurrentTask = false)
{
if ((!allowOverwriteCurrentTask) && (_currentTask != null))
throw new Exception("Cannot start another ProgressTask while ProgressTask is already running! " + _task.GetType().Name + "/" + _currentTask._task.GetType().Name);
_currentTask = this;
// Show process dialog
_progressDialog.Show();
// Start Thread to Run task
_thread = new Thread(_task.Run);
_thread.Start();
}
public void JoinWorkerThread()
@@ -66,11 +134,11 @@ namespace keepass2android
}
private class AfterTask : OnFinish {
readonly IProgressDialog _progressDialog;
readonly ProgressTask _progressTask;
public AfterTask (OnFinish finish, Handler handler, IProgressDialog pd): base(finish, handler)
public AfterTask (Activity activity, OnFinish finish, Handler handler, ProgressTask pt): base(activity, finish, handler)
{
_progressDialog = pd;
_progressTask = pt;
}
public override void Run() {
@@ -79,17 +147,22 @@ namespace keepass2android
if (Handler != null) //can be null in tests
{
// Remove the progress dialog
Handler.Post(delegate { _progressDialog.Dismiss(); });
Handler.Post(delegate
{
_progressTask._progressDialog.Dismiss();
});
}
else
{
_progressDialog.Dismiss();
_progressTask._progressDialog.Dismiss();
}
_currentTask = null;
}
}
}
}

View File

@@ -18,8 +18,8 @@ namespace keepass2android
private readonly IKp2aApp _app;
public CheckDatabaseForChanges(Context context, IKp2aApp app, OnFinish finish)
: base(finish)
public CheckDatabaseForChanges(Activity context, IKp2aApp app, OnFinish finish)
: base(context, finish)
{
_context = context;
_app = app;

View File

@@ -21,7 +21,6 @@ using System.IO;
using System.Runtime.Serialization;
using System.Security.Cryptography;
using System.Text;
using Android.Content;
using Java.Lang;
using KeePassLib;
using KeePassLib.Keys;
@@ -218,7 +217,7 @@ namespace keepass2android
}
public void SaveData(Context ctx) {
public void SaveData() {
KpDatabase.UseFileTransactions = _app.GetBooleanPreference(PreferenceKey.UseFileTransactions);
using (IWriteTransaction trans = _app.GetFileStorage(Ioc).OpenWriteTransaction(Ioc, KpDatabase.UseFileTransactions))

View File

@@ -11,12 +11,12 @@ namespace keepass2android
{
public class SynchronizeCachedDatabase: RunnableOnFinish
{
private readonly Context _context;
private readonly Activity _context;
private readonly IKp2aApp _app;
private SaveDb _saveDb;
public SynchronizeCachedDatabase(Context context, IKp2aApp app, OnFinish finish)
: base(finish)
public SynchronizeCachedDatabase(Activity context, IKp2aApp app, OnFinish finish)
: base(context, finish)
{
_context = context;
_app = app;
@@ -59,7 +59,7 @@ namespace keepass2android
if (cachingFileStorage.HasLocalChanges(ioc))
{
//conflict! need to merge
_saveDb = new SaveDb(_context, _app, new ActionOnFinish((success, result) =>
_saveDb = new SaveDb(_context, _app, new ActionOnFinish(ActiveActivity, (success, result, activity) =>
{
if (!success)
{

View File

@@ -16,41 +16,37 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll.
*/
using System;
using Android.App;
using Android.OS;
namespace keepass2android
{
public class ActionOnFinish: OnFinish
{
public delegate void ActionToPerformOnFinsh(bool success, String message);
public delegate void ActionToPerformOnFinsh(bool success, String message, Activity activeActivity);
readonly ActionToPerformOnFinsh _actionToPerform;
public ActionOnFinish(ActionToPerformOnFinsh actionToPerform) : base(null, null)
public ActionOnFinish(Activity activity, ActionToPerformOnFinsh actionToPerform) : base(activity, null, null)
{
_actionToPerform = actionToPerform;
}
public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, OnFinish finish) : base(finish)
public ActionOnFinish(Activity activity, ActionToPerformOnFinsh actionToPerform, OnFinish finish) : base(activity, finish)
{
_actionToPerform = actionToPerform;
}
public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, Handler handler) : base(handler)
{
_actionToPerform = actionToPerform;
}
public override void Run()
{
if (Message == null)
Message = "";
if (Handler != null)
{
Handler.Post(() => {_actionToPerform(Success, Message);});
Handler.Post(() => {_actionToPerform(Success, Message, ActiveActivity);});
}
else
_actionToPerform(Success, Message);
_actionToPerform(Success, Message, ActiveActivity);
base.Run();
}
}

View File

@@ -15,6 +15,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
*/
using Android.App;
using Android.Content;
using KeePassLib;
@@ -29,20 +30,20 @@ namespace keepass2android
private readonly IKp2aApp _app;
private readonly PwEntry _entry;
private readonly PwGroup _parentGroup;
private readonly Context _ctx;
private readonly Activity _ctx;
public static AddEntry GetInstance(Context ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish) {
public static AddEntry GetInstance(Activity ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish) {
return new AddEntry(ctx, app, entry, parentGroup, finish);
}
protected AddEntry(Context ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish):base(finish) {
protected AddEntry(Activity ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish):base(ctx, finish) {
_ctx = ctx;
_parentGroup = parentGroup;
_app = app;
_entry = entry;
_onFinishToRun = new AfterAdd(app.GetDb(), entry, OnFinishToRun);
_onFinishToRun = new AfterAdd(ctx, app.GetDb(), entry, OnFinishToRun);
}
@@ -68,7 +69,7 @@ namespace keepass2android
private readonly Database _db;
private readonly PwEntry _entry;
public AfterAdd(Database db, PwEntry entry, OnFinish finish):base(finish) {
public AfterAdd(Activity activity, Database db, PwEntry entry, OnFinish finish):base(activity, finish) {
_db = db;
_entry = entry;

View File

@@ -16,6 +16,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
*/
using System;
using Android.App;
using Android.Content;
using KeePassLib;
@@ -34,16 +35,16 @@ namespace keepass2android
internal PwGroup Group;
internal PwGroup Parent;
protected bool DontSave;
readonly Context _ctx;
readonly Activity _ctx;
public static AddGroup GetInstance(Context ctx, IKp2aApp app, string name, int iconid, PwUuid groupCustomIconId, PwGroup parent, OnFinish finish, bool dontSave) {
public static AddGroup GetInstance(Activity ctx, IKp2aApp app, string name, int iconid, PwUuid groupCustomIconId, PwGroup parent, OnFinish finish, bool dontSave) {
return new AddGroup(ctx, app, name, iconid, groupCustomIconId, parent, finish, dontSave);
}
private AddGroup(Context ctx, IKp2aApp app, String name, int iconid, PwUuid groupCustomIconId, PwGroup parent, OnFinish finish, bool dontSave)
: base(finish)
private AddGroup(Activity ctx, IKp2aApp app, String name, int iconid, PwUuid groupCustomIconId, PwGroup parent, OnFinish finish, bool dontSave)
: base(ctx, finish)
{
_ctx = ctx;
_name = name;
@@ -53,7 +54,7 @@ namespace keepass2android
DontSave = dontSave;
_app = app;
_onFinishToRun = new AfterAdd(this, OnFinishToRun);
_onFinishToRun = new AfterAdd(ctx, this, OnFinishToRun);
}
@@ -76,7 +77,7 @@ namespace keepass2android
private class AfterAdd : OnFinish {
readonly AddGroup _addGroup;
public AfterAdd(AddGroup addGroup,OnFinish finish): base(finish) {
public AfterAdd(Activity activity, AddGroup addGroup,OnFinish finish): base(activity, finish) {
_addGroup = addGroup;
}

View File

@@ -18,6 +18,7 @@ This file is part of Keepass2Android, Copyright 2016 Philipp Crocoll. This file
using System;
using System.Collections.Generic;
using System.Linq;
using Android.App;
using Android.Content;
using KeePassLib;
using KeePassLib.Security;
@@ -128,10 +129,10 @@ namespace keepass2android
}
private readonly IKp2aApp _app;
private readonly Context _ctx;
private readonly Activity _ctx;
public AddTemplateEntries(Context ctx, IKp2aApp app, OnFinish finish)
: base(finish)
public AddTemplateEntries(Activity ctx, IKp2aApp app, OnFinish finish)
: base(ctx, finish)
{
_ctx = ctx;
_app = app;
@@ -358,7 +359,7 @@ namespace keepass2android
private readonly Database _db;
private readonly List<PwEntry> _entries;
public AfterAdd(Database db, List<PwEntry> entries, OnFinish finish):base(finish) {
public AfterAdd(Activity activity, Database db, List<PwEntry> entries, OnFinish finish):base(activity, finish) {
_db = db;
_entries = entries;

View File

@@ -16,7 +16,7 @@ namespace keepass2android.database.edit
{
public class CopyEntry: AddEntry
{
public CopyEntry(Context ctx, IKp2aApp app, PwEntry entry, OnFinish finish)
public CopyEntry(Activity ctx, IKp2aApp app, PwEntry entry, OnFinish finish)
: base(ctx, app, CreateCopy(entry, app), entry.ParentGroup, finish)
{
}

View File

@@ -16,6 +16,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
*/
using System.Collections.Generic;
using Android.App;
using Android.Content;
using KeePassLib;
using KeePassLib.Cryptography.KeyDerivation;
@@ -31,19 +32,19 @@ namespace keepass2android
private readonly IOConnectionInfo _ioc;
private readonly bool _dontSave;
private readonly Context _ctx;
private readonly Activity _ctx;
private readonly IKp2aApp _app;
private CompositeKey _key;
public CreateDb(IKp2aApp app, Context ctx, IOConnectionInfo ioc, OnFinish finish, bool dontSave): base(finish) {
public CreateDb(IKp2aApp app, Activity ctx, IOConnectionInfo ioc, OnFinish finish, bool dontSave): base(ctx, finish) {
_ctx = ctx;
_ioc = ioc;
_dontSave = dontSave;
_app = app;
}
public CreateDb(IKp2aApp app, Context ctx, IOConnectionInfo ioc, OnFinish finish, bool dontSave, CompositeKey key)
: base(finish)
public CreateDb(IKp2aApp app, Activity ctx, IOConnectionInfo ioc, OnFinish finish, bool dontSave, CompositeKey key)
: base(ctx, finish)
{
_ctx = ctx;
_ioc = ioc;

View File

@@ -17,6 +17,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using System.Collections.Generic;
using Android.App;
using Android.Content;
using KeePassLib;
using KeePassLib.Interfaces;
@@ -28,8 +29,8 @@ namespace keepass2android
private readonly PwEntry _entry;
private UiStringKey _statusMessage;
public DeleteEntry(Context ctx, IKp2aApp app, PwEntry entry, OnFinish finish):base(finish, app) {
Ctx = ctx;
public DeleteEntry(Activity activiy, IKp2aApp app, PwEntry entry, OnFinish finish):base(activiy, finish, app) {
Ctx = activiy;
Db = app.GetDb();
_entry = entry;

View File

@@ -17,6 +17,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using System.Collections.Generic;
using Android.App;
using Android.Content;
using KeePassLib;
@@ -28,10 +29,10 @@ namespace keepass2android
private PwGroup _group;
protected bool DontSave;
public DeleteGroup(Context ctx, IKp2aApp app, PwGroup group, OnFinish finish)
: base(finish, app)
public DeleteGroup(Activity activity, IKp2aApp app, PwGroup group, OnFinish finish)
: base(activity, finish, app)
{
SetMembers(ctx, app, group, false);
SetMembers(activity, app, group, false);
}
/*
public DeleteGroup(Context ctx, Database db, PwGroup group, Activity act, OnFinish finish, bool dontSave)
@@ -44,9 +45,9 @@ namespace keepass2android
SetMembers(ctx, db, group, null, dontSave);
}
*/
private void SetMembers(Context ctx, IKp2aApp app, PwGroup group, bool dontSave)
private void SetMembers(Activity activity, IKp2aApp app, PwGroup group, bool dontSave)
{
base.SetMembers(ctx, app.GetDb());
base.SetMembers(activity, app.GetDb());
_group = group;
DontSave = dontSave;

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using Android.App;
using Android.Content;
using KeePassLib;
using KeePassLib.Interfaces;
@@ -11,11 +12,11 @@ namespace keepass2android
private readonly List<IStructureItem> _elementsToDelete;
private readonly bool _canRecycle;
public DeleteMultipleItems(Context ctx, Database db, List<IStructureItem> elementsToDelete, OnFinish finish, IKp2aApp app)
: base(finish, app)
public DeleteMultipleItems(Activity activity, Database db, List<IStructureItem> elementsToDelete, OnFinish finish, IKp2aApp app)
: base(activity, finish, app)
{
_elementsToDelete = elementsToDelete;
SetMembers(ctx, db);
SetMembers(activity, db);
//determine once. The property is queried for each delete operation, but might return false
//after one entry/group is deleted (and thus in recycle bin and thus can't be recycled anymore)

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Android.App;
using Android.Content;
using KeePassLib;
@@ -7,8 +8,8 @@ namespace keepass2android
{
public abstract class DeleteRunnable : RunnableOnFinish
{
protected DeleteRunnable(OnFinish finish, IKp2aApp app)
: base(finish)
protected DeleteRunnable(Activity activity, OnFinish finish, IKp2aApp app)
: base(activity, finish)
{
App = app;
}
@@ -17,11 +18,11 @@ namespace keepass2android
protected Database Db;
protected Context Ctx;
protected Activity Ctx;
protected void SetMembers(Context ctx, Database db)
protected void SetMembers(Activity activity, Database db)
{
Ctx = ctx;
Ctx = activity;
Db = db;
}
@@ -209,7 +210,7 @@ namespace keepass2android
Android.Util.Log.Debug("KP2A", "Calling PerformDelete..");
PerformDelete(touchedGroups, permanentlyDeletedGroups);
_onFinishToRun = new ActionOnFinish((success, message) =>
_onFinishToRun = new ActionOnFinish(ActiveActivity,(success, message, activity) =>
{
if (success)
{

View File

@@ -16,6 +16,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
*/
using System;
using Android.App;
using Android.Content;
using KeePassLib;
@@ -32,10 +33,10 @@ namespace keepass2android
private readonly PwIcon _iconId;
private readonly PwUuid _customIconId;
internal PwGroup Group;
readonly Context _ctx;
readonly Activity _ctx;
public EditGroup(Context ctx, IKp2aApp app, String name, PwIcon iconid, PwUuid customIconId, PwGroup group, OnFinish finish)
: base(finish)
public EditGroup(Activity ctx, IKp2aApp app, String name, PwIcon iconid, PwUuid customIconId, PwGroup group, OnFinish finish)
: base(ctx, finish)
{
_ctx = ctx;
_name = name;
@@ -44,7 +45,7 @@ namespace keepass2android
_customIconId = customIconId;
_app = app;
_onFinishToRun = new AfterEdit(this, OnFinishToRun);
_onFinishToRun = new AfterEdit(ctx, this, OnFinishToRun);
}
@@ -64,8 +65,8 @@ namespace keepass2android
private class AfterEdit : OnFinish {
readonly EditGroup _editGroup;
public AfterEdit(EditGroup editGroup, OnFinish finish)
: base(finish)
public AfterEdit(Activity ctx, EditGroup editGroup, OnFinish finish)
: base(ctx, finish)
{
_editGroup = editGroup;
}

View File

@@ -16,6 +16,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
*/
using System;
using Android.App;
namespace keepass2android
{
@@ -23,7 +24,7 @@ namespace keepass2android
public abstract class FileOnFinish : OnFinish {
private String _filename = "";
protected FileOnFinish(FileOnFinish finish):base(finish) {
protected FileOnFinish(Activity activity, FileOnFinish finish):base(activity, finish) {
}
public string Filename

View File

@@ -20,6 +20,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Android.App;
using KeePassLib;
using KeePassLib.Keys;
using KeePassLib.Serialization;
@@ -35,7 +36,7 @@ namespace keepass2android
private readonly bool _rememberKeyfile;
IDatabaseFormat _format;
public LoadDb(IKp2aApp app, IOConnectionInfo ioc, Task<MemoryStream> databaseData, CompositeKey compositeKey, String keyfileOrProvider, OnFinish finish): base(finish)
public LoadDb(Activity activity, IKp2aApp app, IOConnectionInfo ioc, Task<MemoryStream> databaseData, CompositeKey compositeKey, String keyfileOrProvider, OnFinish finish): base(activity, finish)
{
_app = app;
_ioc = ioc;

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using Android.App;
using Android.Content;
using KeePassLib;
using KeePassLib.Interfaces;
@@ -12,10 +13,10 @@ namespace keepass2android.database.edit
{
private readonly List<IStructureItem> _elementsToMove;
private readonly PwGroup _targetGroup;
private readonly Context _ctx;
private readonly Activity _ctx;
private readonly IKp2aApp _app;
public MoveElements(List<IStructureItem> elementsToMove, PwGroup targetGroup, Context ctx, IKp2aApp app, OnFinish finish) : base(finish)
public MoveElements(List<IStructureItem> elementsToMove, PwGroup targetGroup, Activity ctx, IKp2aApp app, OnFinish finish) : base(ctx, finish)
{
_elementsToMove = elementsToMove;
_targetGroup = targetGroup;
@@ -82,7 +83,7 @@ namespace keepass2android.database.edit
}
_onFinishToRun = new ActionOnFinish((success, message) =>
_onFinishToRun = new ActionOnFinish(ActiveActivity, (success, message, activity) =>
{
if (!success)
{ // Let's not bother recovering from a failure.

View File

@@ -16,6 +16,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
*/
using System;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Widget;
@@ -31,27 +32,47 @@ namespace keepass2android
protected OnFinish BaseOnFinish;
protected Handler Handler;
private ProgressDialogStatusLogger _statusLogger = new ProgressDialogStatusLogger(); //default: no logging but not null -> can be used whenever desired
private Activity _activeActivity;
public ProgressDialogStatusLogger StatusLogger
public ProgressDialogStatusLogger StatusLogger
{
get { return _statusLogger; }
set { _statusLogger = value; }
}
public Activity ActiveActivity
{
get { return _activeActivity; }
set
{
_activeActivity = value;
if (BaseOnFinish != null)
{
BaseOnFinish.ActiveActivity = value;
}
}
}
protected OnFinish(Handler handler) {
protected OnFinish(Activity activeActivity, Handler handler)
{
ActiveActivity = activeActivity;
BaseOnFinish = null;
Handler = handler;
}
protected OnFinish(OnFinish finish, Handler handler) {
protected OnFinish(Activity activeActivity, OnFinish finish, Handler handler)
{
ActiveActivity = activeActivity;
BaseOnFinish = finish;
Handler = handler;
}
protected OnFinish(OnFinish finish) {
protected OnFinish(Activity activeActivity, OnFinish finish)
{
ActiveActivity = activeActivity;
BaseOnFinish = finish;
Handler = null;
}
@@ -86,7 +107,7 @@ namespace keepass2android
{
if ( !String.IsNullOrEmpty(message) ) {
Kp2aLog.Log("OnFinish message: "+message);
Toast.MakeText(ctx, message, ToastLength.Long).Show();
Toast.MakeText(ctx ?? Application.Context, message, ToastLength.Long).Show();
}
}
}

View File

@@ -15,6 +15,8 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
using Android.App;
using Android.Content;
namespace keepass2android
{
@@ -23,8 +25,11 @@ namespace keepass2android
protected OnFinish _onFinishToRun;
public ProgressDialogStatusLogger StatusLogger = new ProgressDialogStatusLogger(); //default: empty but not null
private Activity _activeActivity;
protected RunnableOnFinish(OnFinish finish) {
protected RunnableOnFinish(Activity activeActivity, OnFinish finish)
{
_activeActivity = activeActivity;
_onFinishToRun = finish;
}
@@ -34,7 +39,18 @@ namespace keepass2android
set { _onFinishToRun = value; }
}
protected void Finish(bool result, String message, Exception exception = null) {
public Activity ActiveActivity
{
get { return _activeActivity; }
set
{
_activeActivity = value;
if (_onFinishToRun != null)
_onFinishToRun.ActiveActivity = _activeActivity;
}
}
protected void Finish(bool result, String message, Exception exception = null) {
if ( OnFinishToRun != null ) {
OnFinishToRun.SetResult(result, message, exception);
OnFinishToRun.Run();
@@ -56,7 +72,7 @@ namespace keepass2android
StatusLogger = status;
}
abstract public void Run();
public abstract void Run();
}
}

View File

@@ -18,6 +18,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using System.IO;
using System.Security.Cryptography;
using Android.App;
using Android.Content;
using Android.OS;
using Java.Lang;
@@ -42,8 +43,8 @@ namespace keepass2android
private readonly Context _ctx;
private Thread _workerThread;
public SaveDb(Context ctx, IKp2aApp app, OnFinish finish, bool dontSave)
: base(finish)
public SaveDb(Activity ctx, IKp2aApp app, OnFinish finish, bool dontSave)
: base(ctx, finish)
{
_ctx = ctx;
_app = app;
@@ -58,8 +59,8 @@ namespace keepass2android
/// <param name="finish"></param>
/// <param name="dontSave"></param>
/// <param name="streamForOrigFile">Stream for reading the data from the (changed) original location</param>
public SaveDb(Context ctx, IKp2aApp app, OnFinish finish, bool dontSave, Stream streamForOrigFile)
: base(finish)
public SaveDb(Activity ctx, IKp2aApp app, OnFinish finish, bool dontSave, Stream streamForOrigFile)
: base(ctx, finish)
{
_ctx = ctx;
_app = app;
@@ -67,8 +68,8 @@ namespace keepass2android
_streamForOrigFile = streamForOrigFile;
}
public SaveDb(Context ctx, IKp2aApp app, OnFinish finish)
: base(finish)
public SaveDb(Activity ctx, IKp2aApp app, OnFinish finish)
: base(ctx, finish)
{
_ctx = ctx;
_app = app;
@@ -248,7 +249,7 @@ namespace keepass2android
private void PerformSaveWithoutCheck(IFileStorage fileStorage, IOConnectionInfo ioc)
{
StatusLogger.UpdateSubMessage("");
_app.GetDb().SaveData(_ctx);
_app.GetDb().SaveData();
_app.GetDb().LastFileVersion = fileStorage.GetCurrentFileVersionFast(ioc);
}

View File

@@ -15,6 +15,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
using Android.App;
using Android.Content;
using KeePassLib;
using KeePassLib.Keys;
@@ -27,9 +28,9 @@ namespace keepass2android
private readonly String _keyfile;
private readonly IKp2aApp _app;
private readonly bool _dontSave;
private readonly Context _ctx;
private readonly Activity _ctx;
public SetPassword(Context ctx, IKp2aApp app, String password, String keyfile, OnFinish finish): base(finish) {
public SetPassword(Activity ctx, IKp2aApp app, String password, String keyfile, OnFinish finish): base(ctx, finish) {
_ctx = ctx;
_app = app;
_password = password;
@@ -37,8 +38,8 @@ namespace keepass2android
_dontSave = false;
}
public SetPassword(Context ctx, IKp2aApp app, String password, String keyfile, OnFinish finish, bool dontSave)
: base(finish)
public SetPassword(Activity ctx, IKp2aApp app, String password, String keyfile, OnFinish finish, bool dontSave)
: base(ctx, finish)
{
_ctx = ctx;
_app = app;
@@ -72,7 +73,7 @@ namespace keepass2android
pm.MasterKey = newKey;
// Save Database
_onFinishToRun = new AfterSave(previousKey, previousMasterKeyChanged, pm, OnFinishToRun);
_onFinishToRun = new AfterSave(ActiveActivity, previousKey, previousMasterKeyChanged, pm, OnFinishToRun);
SaveDb save = new SaveDb(_ctx, _app, OnFinishToRun, _dontSave);
save.SetStatusLogger(StatusLogger);
save.Run();
@@ -83,7 +84,7 @@ namespace keepass2android
private readonly DateTime _previousKeyChanged;
private readonly PwDatabase _db;
public AfterSave(CompositeKey backup, DateTime previousKeyChanged, PwDatabase db, OnFinish finish): base(finish) {
public AfterSave(Activity activity, CompositeKey backup, DateTime previousKeyChanged, PwDatabase db, OnFinish finish): base(activity, finish) {
_previousKeyChanged = previousKeyChanged;
_backup = backup;
_db = db;

View File

@@ -15,6 +15,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
*/
using Android.App;
using Android.Content;
using KeePassLib;
@@ -23,13 +24,13 @@ namespace keepass2android
public class UpdateEntry : RunnableOnFinish {
private readonly IKp2aApp _app;
private readonly Context _ctx;
private readonly Activity _ctx;
public UpdateEntry(Context ctx, IKp2aApp app, PwEntry oldE, PwEntry newE, OnFinish finish):base(finish) {
public UpdateEntry(Activity ctx, IKp2aApp app, PwEntry oldE, PwEntry newE, OnFinish finish):base(ctx, finish) {
_ctx = ctx;
_app = app;
_onFinishToRun = new AfterUpdate(oldE, newE, app, finish);
_onFinishToRun = new AfterUpdate(ctx, oldE, newE, app, finish);
}
@@ -45,7 +46,7 @@ namespace keepass2android
private readonly PwEntry _updatedEntry;
private readonly IKp2aApp _app;
public AfterUpdate(PwEntry backup, PwEntry updatedEntry, IKp2aApp app, OnFinish finish):base(finish) {
public AfterUpdate(Activity activity, PwEntry backup, PwEntry updatedEntry, IKp2aApp app, OnFinish finish):base(activity, finish) {
_backup = backup;
_updatedEntry = updatedEntry;
_app = app;

View File

@@ -312,6 +312,8 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
String driveId = path.getGDriveId();
logDebug("id"+driveId);
File file = driveService.files().get(driveId).execute();
if (file.getLabels().getTrashed())
throw new FileNotFoundException(path.getDisplayName() + " is trashed!");
logDebug("...done.");
return file;
}

View File

@@ -322,6 +322,9 @@ public class SftpStorage extends JavaFileStorageBase {
UserInfo ui = new SftpUserInfo(ci.password);
session.setUserInfo(ui);
session.setConfig("PreferredAuthentications",
"password,publickey");
session.connect();
Channel channel = session.openChannel("sftp");

View File

@@ -46,7 +46,8 @@
android:inputType="textPassword"
android:singleLine="true"
android:text=""
android:hint="@string/hint_pass" />
android:hint="@string/hint_pass"
android:importantForAccessibility="no" />
<TextView android:id="@+id/initial_dir"
android:layout_width="wrap_content"

View File

@@ -33,6 +33,7 @@
android:inputType="textPassword"
android:singleLine="true"
android:text="$T3st17$"
android:hint="@string/hint_pass" />
android:hint="@string/hint_pass"
android:importantForAccessibility="no" />
</LinearLayout>

View File

@@ -18,5 +18,9 @@
android:name="android.accessibilityservice"
android:resource="@xml/accserviceconfig" />
</service-->
<activity android:excludeFromRecents="true"
android:taskAffinity=""
android:theme="@android:style/Theme.Dialog"
android:name=".Kp2aDialog"></activity>
</application>
</manifest>

View File

@@ -10,20 +10,18 @@ public class KeyboardData
public static List<StringForTyping> availableFields = new ArrayList<StringForTyping>();
public static String entryName;
public static String entryId;
public static int kp2aFieldIndex = 0;
public static boolean hasData()
{
return !TextUtils.isEmpty(entryId);
}
public static boolean bla2()
{
return !TextUtils.isEmpty(entryId);
}
public static void clear()
{
availableFields.clear();
entryName = entryId = "";
kp2aFieldIndex = 0;
}
}

View File

@@ -1,6 +1,10 @@
package keepass2android.kbbridge;
import java.util.ArrayList;
import java.util.HashMap;
import keepass2android.softkeyboard.IKeyboardService;
import keepass2android.softkeyboard.KP2AKeyboard;
public class KeyboardDataBuilder {
private ArrayList<StringForTyping> availableFields = new ArrayList<StringForTyping>();
@@ -16,5 +20,8 @@ public class KeyboardDataBuilder {
public void commit()
{
KeyboardData.availableFields = this.availableFields;
KeyboardData.kp2aFieldIndex = 0;
if (KP2AKeyboard.CurrentlyRunningService != null)
KP2AKeyboard.CurrentlyRunningService.onNewData();
}
}

View File

@@ -0,0 +1,9 @@
package keepass2android.softkeyboard;
import keepass2android.kbbridge.StringForTyping;
public interface IKeyboardService
{
void commitStringForTyping(StringForTyping stringForTyping);
void onNewData();
}

View File

@@ -17,6 +17,7 @@
package keepass2android.softkeyboard;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
@@ -27,21 +28,26 @@ import android.content.SharedPreferences.Editor;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.graphics.drawable.BitmapDrawable;
import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.Keyboard;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Build;
import android.os.Debug;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.text.ClipboardManager;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.PrintWriterPrinter;
import android.util.Printer;
import android.view.Gravity;
import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
import android.view.View;
@@ -54,7 +60,9 @@ import android.view.inputmethod.ExtractedTextRequest;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import keepass2android.kbbridge.KeyboardData;
import keepass2android.kbbridge.StringForTyping;
import keepass2android.softkeyboard.LatinIMEUtil.RingCharBuffer;
@@ -64,18 +72,24 @@ import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
/**
* Input method implementation for Qwerty'ish keyboard.
*/
public class KP2AKeyboard extends InputMethodService
implements LatinKeyboardBaseView.OnKeyboardActionListener,
IKeyboardService,
SharedPreferences.OnSharedPreferenceChangeListener {
public static IKeyboardService CurrentlyRunningService;
private static String get_KEEPASS2ANDROID_KEYBOARD_CLEARED(Context ctx)
{
return ctx.getPackageName()+".keyboard_cleared";
@@ -311,6 +325,7 @@ public class KP2AKeyboard extends InputMethodService
@Override
public void onCreate() {
CurrentlyRunningService = this;
LatinImeLogger.init(this);
KeyboardSwitcher.init(this);
super.onCreate();
@@ -330,6 +345,8 @@ public class KP2AKeyboard extends InputMethodService
}
mReCorrectionEnabled = prefs.getBoolean(PREF_RECORRECTION_ENABLED,
getResources().getBoolean(R.bool.default_recorrection_enabled));
Log.d("KP2AK","finding plugin dicts...");
PluginManager.getPluginDictionaries(getApplicationContext());
@@ -358,7 +375,7 @@ public class KP2AKeyboard extends InputMethodService
// register to receive ringer mode changes for silent mode
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
registerReceiver(mReceiver, filter);
registerReceiver(mSilentModeReceiver, filter);
prefs.registerOnSharedPreferenceChangeListener(this);
@@ -467,12 +484,14 @@ public class KP2AKeyboard extends InputMethodService
if (mContactsDictionary != null) {
mContactsDictionary.close();
}*/
unregisterReceiver(mReceiver);
unregisterReceiver(mSilentModeReceiver);
unregisterReceiver(mPluginManager);
unregisterReceiver(mClearKeyboardReceiver);
LatinImeLogger.commit();
LatinImeLogger.onDestroy();
CurrentlyRunningService = null;
super.onDestroy();
}
@@ -502,6 +521,7 @@ public class KP2AKeyboard extends InputMethodService
mOrientation = conf.orientation;
reloadKeyboards();
}
updateKp2aKeyLabels();
mConfigurationChanging = true;
super.onConfigurationChanged(conf);
mConfigurationChanging = false;
@@ -526,6 +546,7 @@ public class KP2AKeyboard extends InputMethodService
mKeyboardSwitcher.setKeyboardMode(
KeyboardSwitcher.MODE_TEXT, 0);
}
updateKp2aKeyLabels();
return mKeyboardSwitcher.getInputView();
}
@@ -687,6 +708,7 @@ public class KP2AKeyboard extends InputMethodService
attribute.imeOptions);
}
}
updateKp2aKeyLabels();
}
private void updateShowKp2aMode() {
@@ -1065,6 +1087,7 @@ public class KP2AKeyboard extends InputMethodService
private void reloadKeyboards() {
mKeyboardSwitcher.setLanguageSwitcher(mLanguageSwitcher);
mKeyboardSwitcher.makeKeyboards(true);
updateKp2aKeyLabels();
}
private void commitTyped(InputConnection inputConnection) {
@@ -1254,6 +1277,9 @@ public class KP2AKeyboard extends InputMethodService
case LatinKeyboardView.KEYCODE_OPTIONS:
onOptionKeyPressed();
break;
case LatinKeyboardView.KEYCODE_KP2A_NEXTFIELDS:
onKp2aNextFieldsPressed();
break;
case LatinKeyboardView.KEYCODE_KP2A:
onKp2aKeyPressed();
break;
@@ -1342,28 +1368,95 @@ public class KP2AKeyboard extends InputMethodService
}
private void onKp2aPasswordKeyPressed() {
commitStringForTyping(findStringForTyping("Password"));
commitStringForTyping(KeyboardData.availableFields.get(KeyboardData.kp2aFieldIndex+1));
}
private StringForTyping findStringForTyping(String key) {
for (StringForTyping s: keepass2android.kbbridge.KeyboardData.availableFields)
{
if (key.equals(s.key))
{
return s;
}
}
//found nothing: return empty struct:
return new StringForTyping();
}
private void onKp2aUserKeyPressed() {
commitStringForTyping(findStringForTyping("UserName"));
commitStringForTyping(KeyboardData.availableFields.get(KeyboardData.kp2aFieldIndex));
}
private void onKp2aKeyPressed() {
private void onKp2aNextFieldsPressed()
{
List<StringForTyping> availableFields = keepass2android.kbbridge.KeyboardData.availableFields;
if (KeyboardData.kp2aFieldIndex >= availableFields.size()-2)
{
KeyboardData.kp2aFieldIndex = 0;
}
else if (KeyboardData.kp2aFieldIndex == availableFields.size()-3)
{
KeyboardData.kp2aFieldIndex++;
}
else
KeyboardData.kp2aFieldIndex += 2;
updateKp2aKeyLabels();
}
String makeShort(String input, int lineLength)
{
String result = input;
if (input.length() > lineLength)
{
result = input.substring(0,lineLength-1)+"";
}
return result;
}
private void updateKp2aKeyLabels() {
if ((mKeyboardSwitcher.getInputView() != null)
&& (mKeyboardSwitcher.getInputView().getKeyboard() != null))
{
for (Keyboard.Key key : mKeyboardSwitcher.getInputView().getKeyboard().getKeys()) {
boolean isFirstKey = false;
boolean isSecondKey = false;
for (int code : key.codes) {
if (code == -201)
isFirstKey = true;
if (code == -202)
isSecondKey = true;
}
int fieldIndex = -1;
if (isFirstKey) {
fieldIndex = KeyboardData.kp2aFieldIndex;
}
if (isSecondKey) {
fieldIndex = KeyboardData.kp2aFieldIndex + 1;
}
if (fieldIndex >= 0) {
key.label = "";
if (fieldIndex < KeyboardData.availableFields.size()) {
String displayName = "";
StringForTyping fieldData = KeyboardData.availableFields.get(fieldIndex);
if (fieldData != null) {
displayName = makeShort(fieldData.displayName, 10);
if ("Password".equals(fieldData.key))
displayName = getString(R.string.kp2a_password); //might be a shorter variant
if ("UserName".equals(fieldData.key))
displayName = getString(R.string.kp2a_user); //might be a shorter variant
}
key.label = displayName;
}
}
}
mKeyboardSwitcher.getInputView().invalidateAllKeys();
}
}
private void onKp2aKeyPressed() {
if ((mKeyboardSwitcher.getKeyboardMode() == KeyboardSwitcher.MODE_KP2A)
|| (!mKp2aEnableSimpleKeyboard)
|| (!keepass2android.kbbridge.KeyboardData.hasData()))
@@ -1376,132 +1469,149 @@ public class KP2AKeyboard extends InputMethodService
setCandidatesViewShown(false);
}
private void showKp2aDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String title = "Keepass2Android";
List<StringForTyping> availableFields = keepass2android.kbbridge.KeyboardData.availableFields;
final EditorInfo attribute = getCurrentInputEditorInfo();
Log.d("KP2AK", "hint: "+attribute.hintText);
Log.d("KP2AK", "field name: "+attribute.fieldName);
Log.d("KP2AK", "label: "+attribute.label);
attribute.dump(new Printer() {
@Override
public void println(String x) {
Log.d("KP2AK", x);
}
},"");
final ArrayList<StringForTyping> items = new ArrayList<StringForTyping>();
for (StringForTyping entry : availableFields)
{
Log.d("KP2AK", entry.displayName);
items.add(entry.clone());
}
StringForTyping openOrChangeEntry = new StringForTyping();
if (keepass2android.kbbridge.KeyboardData.entryName == null)
{
openOrChangeEntry.displayName = openOrChangeEntry.key = getString(R.string.open_entry);
}
else
{
openOrChangeEntry.displayName = openOrChangeEntry.key = getString(R.string.change_entry);
}
openOrChangeEntry.value = "KP2ASPECIAL_SelectEntryTask";
items.add(openOrChangeEntry);
final String clientPackageName = attribute.packageName;
if ((clientPackageName != null) && (clientPackageName != ""))
{
StringForTyping searchEntry = new StringForTyping();
try
{
searchEntry.key = searchEntry.displayName
= getString(R.string.open_entry_for_app, clientPackageName);
}
catch (java.util.FormatFlagsConversionMismatchException e) //buggy crowdin support for Arabic?
{
android.util.Log.e("KP2A", "Please report this error to crocoapps@gmail.com");
android.util.Log.e("KP2A", e.toString());
private void openOverlaySettings() {
final Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Log.e(TAG, e.getMessage());
}
}
searchEntry.key = searchEntry.displayName
= "Search entry for app";
}
searchEntry.value = "KP2ASPECIAL_SearchUrlTask";
items.add(searchEntry);
}
builder.setTitle(title);
private void showKp2aDialog()
{
boolean androidP = android.os.Build.VERSION.SDK_INT >= 28;
//due to a change in Android P, showing the dialog as dialog does not work (only visible
// above the keyboard, not above the target application). Use an activity here.
// However, this is not perfect as it has another behavior regarding which task is
// in foreground, e.g. Chrome closes the IME when the activity is brought up which causes
// trouble entering data. So we still use the dialog in previous android versions.
if (androidP)
{
final EditorInfo attribute = getCurrentInputEditorInfo();
final String clientPackageName = attribute.packageName;
CharSequence[] itemNames = new CharSequence[items.size()];
int i=0;
for (StringForTyping sft: items)
itemNames[i++] = sft.displayName;
builder.setItems(itemNames,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Intent i = new Intent(this, Kp2aDialog.class);
i.putExtra("clientPackageName", clientPackageName);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
else
{
Log.d("KP2AK", "clicked item: " + items.get(item).key);
if (items.get(item).value.startsWith("KP2ASPECIAL")) {
//change entry
Log.d("KP2AK", "clicked item: " + items.get(item).value);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String title = "Keepass2Android";
List<StringForTyping> availableFields = keepass2android.kbbridge.KeyboardData.availableFields;
String packageName = getApplicationContext().getPackageName();
Intent startKp2aIntent = getPackageManager().getLaunchIntentForPackage(packageName);
if (startKp2aIntent != null)
{
startKp2aIntent.addCategory(Intent.CATEGORY_LAUNCHER);
startKp2aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
String value = items.get(item).value;
String taskName = value.substring("KP2ASPECIAL_".length());
startKp2aIntent.putExtra("KP2A_APPTASK", taskName);
if (taskName.equals("SearchUrlTask"))
{
startKp2aIntent.putExtra("UrlToSearch", "androidapp://"+clientPackageName);
}
startActivity(startKp2aIntent);
} else Log.w("KP2AK", "didn't find intent for "+packageName);
} else {
StringForTyping theItem = items.get(item);
commitStringForTyping(theItem);
}
}
final EditorInfo attribute = getCurrentInputEditorInfo();
attribute.dump(new Printer() {
});
@Override
public void println(String x) {
Log.d("KP2AK", x);
builder.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
}
}, "");
final ArrayList<StringForTyping> items = new ArrayList<StringForTyping>();
for (StringForTyping entry : availableFields) {
items.add(entry.clone());
}
// Create the AlertDialog
AlertDialog dialog = builder.create();
Window window = dialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
lp.token = inputView.getWindowToken();
lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
window.setAttributes(lp);
window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
dialog.show();
StringForTyping openOrChangeEntry = new StringForTyping();
if (keepass2android.kbbridge.KeyboardData.entryName == null) {
openOrChangeEntry.displayName = openOrChangeEntry.key = getString(R.string.open_entry);
} else {
openOrChangeEntry.displayName = openOrChangeEntry.key = getString(R.string.change_entry);
}
openOrChangeEntry.value = "KP2ASPECIAL_SelectEntryTask";
items.add(openOrChangeEntry);
final String clientPackageName = attribute.packageName;
if ((clientPackageName != null) && (clientPackageName != "")) {
StringForTyping searchEntry = new StringForTyping();
try {
searchEntry.key = searchEntry.displayName
= getString(R.string.open_entry_for_app, new Object[]{clientPackageName});
} catch (java.util.FormatFlagsConversionMismatchException e) //buggy crowdin support for Arabic?
{
android.util.Log.e("KP2A", "Please report this error to crocoapps@gmail.com");
android.util.Log.e("KP2A", e.toString());
searchEntry.key = searchEntry.displayName
= "Search entry for app";
}
searchEntry.value = "KP2ASPECIAL_SearchUrlTask";
items.add(searchEntry);
}
builder.setTitle(title);
CharSequence[] itemNames = new CharSequence[items.size()];
int i = 0;
for (StringForTyping sft : items)
itemNames[i++] = sft.displayName;
builder.setItems(itemNames,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (items.get(item).value.startsWith("KP2ASPECIAL")) {
//change entry
String packageName = getApplicationContext().getPackageName();
Intent startKp2aIntent = getPackageManager().getLaunchIntentForPackage(packageName);
if (startKp2aIntent != null) {
startKp2aIntent.addCategory(Intent.CATEGORY_LAUNCHER);
startKp2aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
String value = items.get(item).value;
String taskName = value.substring("KP2ASPECIAL_".length());
startKp2aIntent.putExtra("KP2A_APPTASK", taskName);
if (taskName.equals("SearchUrlTask")) {
startKp2aIntent.putExtra("UrlToSearch", "androidapp://" + clientPackageName);
}
startActivity(startKp2aIntent);
} else Log.w("KP2AK", "didn't find intent for " + packageName);
} else {
StringForTyping theItem = items.get(item);
commitStringForTyping(theItem);
}
}
});
builder.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
// Create the AlertDialog
AlertDialog dialog = builder.create();
Window window = dialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
lp.token = inputView.getWindowToken();
lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
window.setAttributes(lp);
window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
dialog.show();
}
}
private void commitStringForTyping(StringForTyping theItem) {
public void commitStringForTyping(StringForTyping theItem) {
if ((mKp2aRememberAutoFill) && (!TextUtils.isEmpty(getCurrentInputEditorInfo().hintText)))
{
@@ -1517,12 +1627,17 @@ public class KP2AKeyboard extends InputMethodService
Log.d("KP2AK", "committing text for " + theItem.key);
commitKp2aString(theItem.value, getCurrentInputEditorInfo());
}
public void onText(CharSequence text) {
@Override
public void onNewData() {
updateKp2aKeyLabels();
}
public void onText(CharSequence text) {
InputConnection ic = getCurrentInputConnection();
if (ic == null) return;
if (text == null)
@@ -1821,6 +1936,7 @@ public class KP2AKeyboard extends InputMethodService
}
setCandidatesViewShown(true);
updateInputViewShown();
updateKp2aKeyLabels();
postUpdateSuggestions();
}
});
@@ -2358,13 +2474,26 @@ public class KP2AKeyboard extends InputMethodService
// receive ringer mode changes to detect silent mode
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
private BroadcastReceiver mSilentModeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateRingerMode();
}
};
private BroadcastReceiver mCommitForTypingReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
StringForTyping stringForTyping = new StringForTyping();
stringForTyping.key = intent.getStringExtra("key");
stringForTyping.value = intent.getStringExtra("value");
KP2AKeyboard.this.commitStringForTyping(stringForTyping);
}
};
// update flags for silent mode
private void updateRingerMode() {
if (mAudioManager == null) {

View File

@@ -0,0 +1,129 @@
package keepass2android.softkeyboard;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.util.Printer;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import keepass2android.kbbridge.StringForTyping;
public class Kp2aDialog extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
setContentView(R.layout.activity_kp2a_dialog);
ListView listview = ((ListView)findViewById(R.id.mylist));
final String clientPackageName = getIntent().getStringExtra("clientPackageName");
final ArrayList<StringForTyping> items = new ArrayList<StringForTyping>();
StringForTyping openOrChangeEntry = new StringForTyping();
if (keepass2android.kbbridge.KeyboardData.entryName == null)
{
openOrChangeEntry.displayName = openOrChangeEntry.key = getString(R.string.open_entry);
}
else
{
openOrChangeEntry.displayName = openOrChangeEntry.key = getString(R.string.change_entry);
}
openOrChangeEntry.value = "KP2ASPECIAL_SelectEntryTask";
items.add(openOrChangeEntry);
if ((clientPackageName != null) && (clientPackageName != ""))
{
StringForTyping searchEntry = new StringForTyping();
try
{
searchEntry.key = searchEntry.displayName
= getString(R.string.open_entry_for_app, new Object[]{clientPackageName});
}
catch (java.util.FormatFlagsConversionMismatchException e) //buggy crowdin support for Arabic?
{
android.util.Log.e("KP2A", "Please report this error to crocoapps@gmail.com");
android.util.Log.e("KP2A", e.toString());
searchEntry.key = searchEntry.displayName
= "Search entry for app";
}
searchEntry.value = "KP2ASPECIAL_SearchUrlTask";
items.add(searchEntry);
}
String[] itemNames = new String[items.size()];
int i=0;
for (StringForTyping sft: items)
itemNames[i++] = sft.displayName;
listview.setAdapter(new ArrayAdapter<String>(this,
R.layout.kp2a_textview,
itemNames));
listview.setClickable(true);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int item, long l) {
Log.d("KP2AK", "clicked item: " + items.get(item).key);
if (items.get(item).value.startsWith("KP2ASPECIAL")) {
//change entry
Log.d("KP2AK", "clicked item: " + items.get(item).value);
String packageName = getApplicationContext().getPackageName();
Intent startKp2aIntent = getPackageManager().getLaunchIntentForPackage(packageName);
if (startKp2aIntent != null)
{
startKp2aIntent.addCategory(Intent.CATEGORY_LAUNCHER);
startKp2aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
String value = items.get(item).value;
String taskName = value.substring("KP2ASPECIAL_".length());
startKp2aIntent.putExtra("KP2A_APPTASK", taskName);
if (taskName.equals("SearchUrlTask"))
{
startKp2aIntent.putExtra("UrlToSearch", "androidapp://"+clientPackageName);
}
startActivity(startKp2aIntent);
} else Log.w("KP2AK", "didn't find intent for "+packageName);
} else {
StringForTyping theItem = items.get(item);
KP2AKeyboard.CurrentlyRunningService.commitStringForTyping(theItem);
}
Kp2aDialog.this.finish();
}
});
findViewById(R.id.button_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Kp2aDialog.this.finish();
}
});
}
}

View File

@@ -43,6 +43,7 @@ public class LatinKeyboardView extends LatinKeyboardBaseView {
static final int KEYCODE_KP2A_ALPHA = -203;
static final int KEYCODE_KP2A_SWITCH = -204;
static final int KEYCODE_KP2A_LOCK = -205;
static final int KEYCODE_KP2A_NEXTFIELDS = -206;
private Keyboard mPhoneKeyboard;

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="12dp">
<Button
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginTop="19dp"
android:text="@string/cancel" />
<ListView
android:id="@+id/mylist"
android:layout_above="@id/button_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
tools:context="keepass2android.softkeyboard.Kp2aDialog">
</ListView>
</RelativeLayout>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:paddingTop="6dip"
android:paddingBottom="6dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp" />

View File

@@ -8,7 +8,7 @@
<string name="kp2a_password">密码</string>
<string name="kp2a_prefs">输入凭据设置</string>
<string name="kp2a_auto_fill">自动填充已启用</string>
<string name="kp2a_auto_fill_summary">进入一个空白字段时自动填充文字,如果 Keepass2Android 是激活键盘,且有一个相匹配字段的提示文本</string>
<string name="kp2a_auto_fill_summary">填充区域为空白、键盘有待输入条目、且有字段匹配填充区域的提示文本时,自动将其填入</string>
<string name="kp2a_remember_auto_fill">记忆字段提示文本</string>
<string name="kp2a_remember_auto_fill_summary">如果通过手动选择 Keepass2Android 填充字段,请记住哪个字段在对应字段中输入。该字段是后来由其提示文本重新检测到。</string>
<string name="kp2a_simple_keyboard">简易键盘</string>

View File

@@ -35,6 +35,7 @@
<integer name="key_kp2a_alpha">-203</integer>
<integer name="key_kp2a_switch">-204</integer>
<integer name="key_kp2a_lock">-205</integer>
<integer name="key_kp2a_nextfields">-206</integer>
</resources>

View File

@@ -376,6 +376,7 @@
<!-- Title for Latin keyboard debug settings activity / dialog -->
<string name="english_ime_debug_settings" translatable="false">Android keyboard Debug settings</string>
<string name="prefs_debug_mode" translatable="false">Debug Mode</string>
<string name="kp2a_nextfields"><![CDATA[>]]></string>
</resources>

View File

@@ -12,32 +12,37 @@
<Key
android:codes="@integer/key_kp2a_alpha"
android:keyLabel="@string/label_alpha_key"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true"
android:keyEdgeFlags="left" />
<Key
android:codes="@integer/key_kp2a_user"
android:keyLabel="@string/kp2a_user"
android:keyWidth="25%p"
android:keyWidth="22%p"
/>
<Key
android:codes="@integer/key_kp2a_pass"
android:keyLabel="@string/kp2a_password"
android:keyWidth="15%p"
android:keyWidth="12%p"
/>
<Key
android:codes="@integer/key_kp2a_nextfields"
android:keyLabel="@string/kp2a_nextfields"
android:keyWidth="8%p"
/>
<Key
android:codes="@integer/key_kp2a"
android:keyIcon="@drawable/sym_keyboard_kp2a"
android:iconPreview="@drawable/sym_keyboard_feedback_kp2a"
android:popupKeyboard="@xml/popup_kp2a"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true" />
<Key
android:codes="@integer/key_delete"
android:keyIcon="@drawable/sym_keyboard_delete"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true"
android:isRepeatable="true"
/>

View File

@@ -12,32 +12,37 @@
<Key
android:codes="@integer/key_kp2a_alpha"
android:keyLabel="@string/label_alpha_key"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true"
android:keyEdgeFlags="left" />
<Key
android:codes="@integer/key_kp2a_user"
android:keyLabel="@string/kp2a_user"
android:keyWidth="20%p"
android:keyWidth="19%p"
/>
<Key
android:codes="@integer/key_kp2a_pass"
android:keyLabel="@string/kp2a_password"
android:keyWidth="20%p"
android:keyWidth="19%p"
/>
<Key
android:codes="@integer/key_kp2a_nextfields"
android:keyLabel="@string/kp2a_nextfields"
android:keyWidth="8%p"
/>
<Key
android:codes="@integer/key_kp2a"
android:keyIcon="@drawable/sym_keyboard_kp2a"
android:iconPreview="@drawable/sym_keyboard_feedback_kp2a"
android:popupKeyboard="@xml/popup_kp2a"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true" />
<Key
android:codes="@integer/key_delete"
android:keyIcon="@drawable/sym_keyboard_delete"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true"
android:isRepeatable="true"
/>

View File

@@ -12,32 +12,37 @@
<Key
android:codes="@integer/key_kp2a_alpha"
android:keyLabel="@string/label_alpha_key"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true"
android:keyEdgeFlags="left" />
<Key
android:codes="@integer/key_kp2a_user"
android:keyLabel="@string/kp2a_user"
android:keyWidth="20%p"
/>
android:keyWidth="19%p"
/>
<Key
android:codes="@integer/key_kp2a_pass"
android:keyLabel="@string/kp2a_password"
android:keyWidth="20%p"
/>
android:keyWidth="19%p"
/>
<Key
android:codes="@integer/key_kp2a_nextfields"
android:keyLabel="@string/kp2a_nextfields"
android:keyWidth="8%p"
/>
<Key
android:codes="@integer/key_kp2a"
android:keyIcon="@drawable/sym_bkeyboard_kp2a"
android:iconPreview="@drawable/sym_keyboard_feedback_kp2a"
android:popupKeyboard="@xml/popup_kp2a"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isModifier="true" />
<Key
android:codes="@integer/key_delete"
android:keyIcon="@drawable/sym_bkeyboard_delete"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:keyWidth="12%p"
android:keyWidth="10%p"
android:isRepeatable="true"
/>
<Key

View File

@@ -13,7 +13,7 @@
<string name="afc_cmd_grid_view">Ruudukkonäkymä</string>
<string name="afc_cmd_home">Etusivu</string>
<string name="afc_cmd_list_view">Luettelonäkymä</string>
<string name="afc_cmd_new_folder">Uusi kansio&#8230;</string>
<string name="afc_cmd_new_folder">Uusi kansio</string>
<string name="afc_cmd_select_all_files">Valitse kaikki tiedostot</string>
<string name="afc_cmd_select_all_folders">Valitse kaikki kansiot</string>
<string name="afc_cmd_sort">Lajittele&#8230;</string>
@@ -23,8 +23,8 @@
<string name="afc_hint_folder_name">kansion nimi</string>
<string name="afc_hint_save_as_filename">tiedostonimi</string>
<string name="afc_hint_search">haku</string>
<string name="afc_msg_app_doesnot_have_permission_to_create_files">Sovelluksella ei ole oikeutta luoda tiedostoja/kansioita</string>
<string name="afc_msg_app_doesnot_have_permission_to_delete_files">Sovelluksella ei ole oikeutta poistaa tiedostoja/kansioita</string>
<string name="afc_msg_app_doesnot_have_permission_to_create_files">Sovelluksella ei ole oikeutta luoda tiedostoja / kansioita</string>
<string name="afc_msg_app_doesnot_have_permission_to_delete_files">Sovelluksella ei ole oikeutta poistaa tiedostoja / kansioita</string>
<string name="afc_msg_cancelled">Peruutettu</string>
<string name="afc_msg_cannot_connect_to_file_provider_service">Ei voida yhdistää tiedoston tarjoavaan palveluun</string>
<string name="afc_msg_cannot_create_new_folder_here">Uutta kansiota ei voi luoda tänne</string>
@@ -46,7 +46,7 @@
<string name="afc_pmsg_max_file_count_allowed">...liikaa tiedostoja, maksimimäärä on %1$,d</string>
<string name="afc_pmsg_unknown_error">Tuntematon virhe: %1$s</string>
<string name="afc_root">Juuri</string>
<string name="afc_title_advanced_selection">Valitse...</string>
<string name="afc_title_advanced_selection">Valitse</string>
<string name="afc_title_confirmation">Vahvista</string>
<string name="afc_title_date">Pvm.</string>
<string name="afc_title_error">Virhe</string>

View File

@@ -22,8 +22,12 @@ namespace keepass2android
{
public class CancelDialog : Dialog {
public CancelDialog(Context context): base(context) {
}
protected readonly Activity _activity;
public CancelDialog(Activity activity): base(activity)
{
_activity = activity;
}
public bool Canceled { get; private set; }

View File

@@ -36,14 +36,13 @@ namespace keepass2android
var chalIntent = Activity.TryGetYubichallengeIntentOrPrompt(challenge64, true);
if (chalIntent == null)
throw new Exception("YubiChallenge not installed.");
Activity.StartActivityForResult(chalIntent, _requestCode);
{
Error = Activity.GetString(Resource.String.NoChallengeApp);
}
else
{
Activity.StartActivityForResult(chalIntent, _requestCode);
}
});
while ((Response == null) && (Error == null))

View File

@@ -26,8 +26,9 @@ namespace keepass2android
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, Android.Resource.Style.ThemeHoloLightDialog));
builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title));
List<string> changeLog = new List<string>{
ctx.GetString(Resource.String.ChangeLog_1_05),
ctx.GetString(Resource.String.ChangeLog_1_06),
ctx.GetString(Resource.String.ChangeLog_1_05),
ctx.GetString(Resource.String.ChangeLog_1_04b),
ctx.GetString(Resource.String.ChangeLog_1_04),
ctx.GetString(Resource.String.ChangeLog_1_03),

View File

@@ -411,15 +411,15 @@ namespace keepass2android
}
else
{
var task = new CreateNewFilename(new ActionOnFinish((success, messageOrFilename) =>
var task = new CreateNewFilename(this, new ActionOnFinish(this, (success, messageOrFilename, activity) =>
{
if (!success)
{
Toast.MakeText(this, messageOrFilename, ToastLength.Long).Show();
Toast.MakeText(activity, messageOrFilename, ToastLength.Long).Show();
return;
}
_ioc = new IOConnectionInfo { Path = ConvertFilenameToIocPath(messageOrFilename) };
UpdateIocView();
((CreateDatabaseActivity)activity)?.UpdateIocView();
}), filename);
@@ -471,7 +471,7 @@ namespace keepass2android
private readonly IOConnectionInfo _ioc;
public LaunchGroupActivity(IOConnectionInfo ioc, CreateDatabaseActivity activity)
: base(null)
: base(activity, null)
{
_activity = activity;
_ioc = ioc;

View File

@@ -1,4 +1,5 @@
using System;
using Android.App;
using KeePassLib.Serialization;
namespace keepass2android
@@ -7,8 +8,8 @@ namespace keepass2android
{
private readonly string _filename;
public CreateNewFilename(OnFinish finish, string filename)
: base(finish)
public CreateNewFilename(Activity activity, OnFinish finish, string filename)
: base(activity,finish)
{
_filename = filename;
}

View File

@@ -218,14 +218,18 @@ namespace keepass2android
}
//update the Entry output in the App database and notify the CopyToClipboard service
App.Kp2a.GetDb().LastOpenedEntry.OutputStrings.Set(key, new ProtectedString(isProtected, value));
Intent updateKeyboardIntent = new Intent(this, typeof(CopyToClipboardService));
updateKeyboardIntent.SetAction(Intents.UpdateKeyboard);
updateKeyboardIntent.PutExtra(KeyEntry, Entry.Uuid.ToHexString());
StartService(updateKeyboardIntent);
//notify plugins
NotifyPluginsOnModification(Strings.PrefixString+key);
if (App.Kp2a.GetDb()?.LastOpenedEntry != null)
{
App.Kp2a.GetDb().LastOpenedEntry.OutputStrings.Set(key, new ProtectedString(isProtected, value));
Intent updateKeyboardIntent = new Intent(this, typeof(CopyToClipboardService));
updateKeyboardIntent.SetAction(Intents.UpdateKeyboard);
updateKeyboardIntent.PutExtra(KeyEntry, Entry.Uuid.ToHexString());
StartService(updateKeyboardIntent);
//notify plugins
NotifyPluginsOnModification(Strings.PrefixString + key);
}
}
private void AddPluginAction(string pluginPackage, string fieldId, string popupItemId, string displayText, int iconId, Bundle bundleExtra)
@@ -1052,7 +1056,7 @@ namespace keepass2android
internal void AddUrlToEntry(string url, Action finishAction)
internal void AddUrlToEntry(string url, Action<EntryActivity> finishAction)
{
PwEntry initialEntry = Entry.CloneDeep();
@@ -1080,10 +1084,10 @@ namespace keepass2android
//save the entry:
ActionOnFinish closeOrShowError = new ActionOnFinish((success, message) =>
ActionOnFinish closeOrShowError = new ActionOnFinish(this, (success, message, activity) =>
{
OnFinish.DisplayMessage(this, message);
finishAction();
finishAction((EntryActivity)activity);
});

View File

@@ -413,20 +413,20 @@ namespace keepass2android
RunnableOnFinish runnable;
ActionOnFinish closeOrShowError = new ActionOnFinish((success, message) => {
ActionOnFinish closeOrShowError = new ActionOnFinish(this, (success, message, activity) => {
if (success)
{
Finish();
activity.Finish();
} else
{
OnFinish.DisplayMessage(this, message);
OnFinish.DisplayMessage(activity, message);
}
});
ActionOnFinish afterAddEntry = new ActionOnFinish((success, message) =>
ActionOnFinish afterAddEntry = new ActionOnFinish(this, (success, message, activity) =>
{
if (success)
_appTask.AfterAddNewEntry(this, newEntry);
_appTask.AfterAddNewEntry((EntryEditActivity)activity, newEntry);
},closeOrShowError);
if ( State.IsNew ) {
@@ -713,6 +713,7 @@ namespace keepass2android
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
switch (resultCode)
{
case (Result)ResultOkIconPicker:

View File

@@ -119,11 +119,11 @@ namespace keepass2android
}
else
{
var task = new CreateNewFilename(new ActionOnFinish((success, messageOrFilename) =>
var task = new CreateNewFilename(this, new ActionOnFinish(this, (success, messageOrFilename, activity) =>
{
if (!success)
{
Toast.MakeText(this, messageOrFilename, ToastLength.Long).Show();
Toast.MakeText(activity, messageOrFilename, ToastLength.Long).Show();
return;
}
ExportTo(new IOConnectionInfo { Path = ConvertFilenameToIocPath(messageOrFilename) });
@@ -162,15 +162,15 @@ namespace keepass2android
private void ExportTo(IOConnectionInfo ioc)
{
var exportDb = new ExportDb(App.Kp2a, new ActionOnFinish(delegate(bool success, string message)
{
if (!success)
Toast.MakeText(this, message, ToastLength.Long).Show();
else
Toast.MakeText(this, GetString(Resource.String.export_database_successful), ToastLength.Long).Show();
Finish();
}
), _ffp[_fileFormatIndex], ioc);
var exportDb = new ExportDb(this, App.Kp2a, new ActionOnFinish(this, (success, message, activity) =>
{
if (!success)
Toast.MakeText(activity, message, ToastLength.Long).Show();
else
Toast.MakeText(activity, GetString(Resource.String.export_database_successful), ToastLength.Long).Show();
activity.Finish();
}
), _ffp[_fileFormatIndex], ioc);
ProgressTask pt = new ProgressTask(App.Kp2a, this, exportDb);
pt.Run();
}
@@ -196,7 +196,7 @@ namespace keepass2android
private readonly FileFormatProvider _fileFormat;
private IOConnectionInfo _targetIoc;
public ExportDb(IKp2aApp app, OnFinish onFinish, FileFormatProvider fileFormat, IOConnectionInfo targetIoc) : base(onFinish)
public ExportDb(Activity activity, IKp2aApp app, OnFinish onFinish, FileFormatProvider fileFormat, IOConnectionInfo targetIoc) : base(activity, onFinish)
{
_app = app;
this._fileFormat = fileFormat;

View File

@@ -65,7 +65,9 @@ namespace keepass2android
string user = dlgContents.FindViewById<EditText>(Resource.Id.sftp_user).Text;
string password = dlgContents.FindViewById<EditText>(Resource.Id.sftp_password).Text;
string initialPath = dlgContents.FindViewById<EditText>(Resource.Id.sftp_initial_dir).Text;
string sftpPath = new Keepass2android.Javafilestorage.SftpStorage().BuildFullPath(host, port, initialPath, user,
if (string.IsNullOrEmpty(initialPath))
initialPath = "/";
string sftpPath = new Keepass2android.Javafilestorage.SftpStorage().BuildFullPath(host, port, initialPath, user,
password);
onStartBrowse(sftpPath);
});

View File

@@ -34,7 +34,7 @@ namespace keepass2android
public FingerprintManager FingerprintManager
{
get { return (FingerprintManager) Context.GetSystemService(Context.FingerprintService); }
get { return Context.GetSystemService(Context.FingerprintService) as FingerprintManager; }
}
public KeyguardManager KeyguardManager
@@ -265,6 +265,11 @@ namespace keepass2android
_iv = Base64.Decode(PreferenceManager.GetDefaultSharedPreferences(context).GetString(GetIvPrefKey(prefKey), null), 0);
}
public static bool IsSetUp(Context context, string prefKey)
{
return PreferenceManager.GetDefaultSharedPreferences(context).GetString(GetIvPrefKey(prefKey), null) != null;
}
public override bool Init()
{
Kp2aLog.Log("FP: Init for Dec");

View File

@@ -223,7 +223,7 @@ namespace keepass2android
if (requestCode == FingerprintPermissionRequestCode && grantResults[0] == Permission.Granted)
{
FingerprintModule fpModule = new FingerprintModule(this);
if (!fpModule.FingerprintManager.IsHardwareDetected)
if (fpModule.FingerprintManager == null || (!fpModule.FingerprintManager.IsHardwareDetected))
{
//seems like not all Samsung Devices (e.g. Note 4) don't support the Android 6 fingerprint API
if (!TrySetupSamsung())

View File

@@ -230,11 +230,8 @@ namespace keepass2android
{
//yes
ProgressTask pt = new ProgressTask(App.Kp2a, this,
new AddTemplateEntries(this, App.Kp2a, new ActionOnFinish(
delegate
{
StartAddEntry();
})));
new AddTemplateEntries(this, App.Kp2a, new ActionOnFinish(this,
(success, message, activity) => ((GroupActivity)activity)?.StartAddEntry())));
pt.Run();
},
(o, args) =>

View File

@@ -53,6 +53,7 @@ namespace keepass2android
{ Resource.Id.cancel_insert_element, 20 },
{ Resource.Id.insert_element, 20 },
//only use the same id if elements can be shown simultaneously!
{ Resource.Id.fingerprint_infotext, 12 },
{ Resource.Id.autofill_infotext, 11 },
{ Resource.Id.notification_info_android8_infotext, 10 },
{ Resource.Id.infotext, 9 },
@@ -239,6 +240,7 @@ namespace keepass2android
AppTask.StartInGroupActivity(this);
AppTask.SetupGroupBaseActivityButtons(this);
UpdateFingerprintInfo();
UpdateAutofillInfo();
UpdateAndroid8NotificationInfo();
UpdateInfotexts();
@@ -441,7 +443,33 @@ namespace keepass2android
}
};
}
if (FindViewById(Resource.Id.info_dont_show_fingerprint_again) != null)
{
FindViewById(Resource.Id.info_dont_show_fingerprint_again).Click += (sender, args) =>
{
_prefs.Edit().PutBoolean(fingerprintinfohidden_prefskey, true).Commit();
UpdateFingerprintInfo();
};
}
if (FindViewById(Resource.Id.hide_fingerprint_info) != null)
{
FindViewById(Resource.Id.hide_fingerprint_info).Click += (sender, args) =>
{
_prefs.Edit().PutBoolean(fingerprintinfohidden_prefskey + App.Kp2a.GetDb().CurrentFingerprintPrefKey, true).Commit();
UpdateFingerprintInfo();
};
}
if (FindViewById(Resource.Id.enable_fingerprint) != null)
{
FindViewById(Resource.Id.enable_fingerprint).Click += (sender, args) =>
{
StartActivity(typeof(FingerprintSetupActivity));
};
}
if (FindViewById(Resource.Id.info_dont_show_autofill_again) != null)
{
@@ -565,6 +593,7 @@ namespace keepass2android
}
const string autofillservicewasenabled_prefskey = "AutofillServiceWasEnabled";
const string fingerprintinfohidden_prefskey = "fingerprintinfohidden_prefskey";
private void UpdateAutofillInfo()
{
@@ -594,6 +623,33 @@ namespace keepass2android
UpdateBottomBarElementVisibility(Resource.Id.autofill_infotext, canShowAutofillInfo);
}
private void UpdateFingerprintInfo()
{
bool canShowFingerprintInfo = false;
bool disabledForDatabase = _prefs.GetBoolean(fingerprintinfohidden_prefskey + App.Kp2a.GetDb().CurrentFingerprintPrefKey, false);
bool disabledForAll = _prefs.GetBoolean(fingerprintinfohidden_prefskey, false);
if (!disabledForAll && !disabledForDatabase)
{
FingerprintModule fpModule = new FingerprintModule(this);
if (fpModule.FingerprintManager != null && fpModule.FingerprintManager.IsHardwareDetected)
{
FingerprintUnlockMode um;
Enum.TryParse(_prefs.GetString(Database.GetFingerprintModePrefKey(App.Kp2a.GetDb().Ioc), ""), out um);
canShowFingerprintInfo = um == FingerprintUnlockMode.Disabled;
}
}
if (canShowFingerprintInfo)
{
RegisterInfoTextDisplay("FingerprintSuggestion"); //this ensures that we don't show the general info texts too soon
}
UpdateBottomBarElementVisibility(Resource.Id.fingerprint_infotext, canShowFingerprintInfo);
}
protected void UpdateBottomBarElementVisibility(int resourceId, bool canShow)
{
if (canShow)
@@ -616,7 +672,13 @@ namespace keepass2android
var moveElement = new MoveElements(elementsToMove.ToList(), Group, this, App.Kp2a, new ActionOnFinish((success, message) => { StopMovingElements(); if (!String.IsNullOrEmpty(message)) Toast.MakeText(this, message, ToastLength.Long).Show(); }));
var moveElement = new MoveElements(elementsToMove.ToList(), Group, this, App.Kp2a, new ActionOnFinish(this,
(success, message, activity) =>
{
((GroupBaseActivity)activity)?.StopMovingElements();
if (!String.IsNullOrEmpty(message))
Toast.MakeText(activity, message, ToastLength.Long).Show();
}));
var progressTask = new ProgressTask(App.Kp2a, this, moveElement);
progressTask.Run();
@@ -867,8 +929,8 @@ namespace keepass2android
{
private readonly IOConnectionInfo _ioc;
public SyncOtpAuxFile(IOConnectionInfo ioc)
: base(null)
public SyncOtpAuxFile(Activity activity, IOConnectionInfo ioc)
: base(activity,null)
{
_ioc = ioc;
}
@@ -900,19 +962,19 @@ namespace keepass2android
{
var filestorage = App.Kp2a.GetFileStorage(App.Kp2a.GetDb().Ioc);
RunnableOnFinish task;
OnFinish onFinish = new ActionOnFinish((success, message) =>
OnFinish onFinish = new ActionOnFinish(this, (success, message, activity) =>
{
if (!String.IsNullOrEmpty(message))
Toast.MakeText(this, message, ToastLength.Long).Show();
Toast.MakeText(activity, message, ToastLength.Long).Show();
// Tell the adapter to refresh it's list
BaseAdapter adapter = (BaseAdapter)ListAdapter;
adapter.NotifyDataSetChanged();
BaseAdapter adapter = (BaseAdapter)((GroupBaseActivity)activity)?.ListAdapter;
adapter?.NotifyDataSetChanged();
if (App.Kp2a.GetDb().OtpAuxFileIoc != null)
{
var task2 = new SyncOtpAuxFile(App.Kp2a.GetDb().OtpAuxFileIoc);
new ProgressTask(App.Kp2a, this, task2).Run();
var task2 = new SyncOtpAuxFile(this, App.Kp2a.GetDb().OtpAuxFileIoc);
new ProgressTask(App.Kp2a, activity, task2).Run(true);
}
});
@@ -982,33 +1044,28 @@ namespace keepass2android
public class RefreshTask : OnFinish
{
readonly GroupBaseActivity _act;
public RefreshTask(Handler handler, GroupBaseActivity act)
: base(handler)
: base(act, handler)
{
_act = act;
}
public override void Run()
{
if (Success)
{
_act.RefreshIfDirty();
((GroupBaseActivity)ActiveActivity)?.RefreshIfDirty();
}
else
{
DisplayMessage(_act);
DisplayMessage(ActiveActivity);
}
}
}
public class AfterDeleteGroup : OnFinish
{
readonly GroupBaseActivity _act;
public AfterDeleteGroup(Handler handler, GroupBaseActivity act)
: base(handler)
: base(act, handler)
{
_act = act;
}
@@ -1016,13 +1073,13 @@ namespace keepass2android
{
if (Success)
{
_act.RefreshIfDirty();
((GroupBaseActivity)ActiveActivity)?.RefreshIfDirty();
}
else
{
Handler.Post(() =>
{
Toast.MakeText(_act, "Unrecoverable error: " + Message, ToastLength.Long).Show();
Toast.MakeText(ActiveActivity, "Unrecoverable error: " + Message, ToastLength.Long).Show();
});
App.Kp2a.LockDatabase(false);

View File

@@ -27,7 +27,7 @@ using KeePassLib.Utility;
namespace keepass2android
{
[Activity(Label = "@string/app_name", Theme = "@style/Dialog")]
public class GroupEditActivity : LifecycleDebugActivity
public class GroupEditActivity : LifecycleAwareActivity
{
public const String KeyParent = "parent";
public const String KeyName = "name";
@@ -73,7 +73,7 @@ namespace keepass2android
i.PutExtra(KeyParent, parent.Uuid.ToHexString());
i.PutExtra(KeyGroupUuid, groupToEdit.Uuid.ToHexString());
act.StartActivityForResult(i, 0);
act.StartActivityForResult(i, GroupEditActivity.RequestCodeGroupEdit);
}
protected override void OnCreate (Bundle savedInstanceState)
@@ -144,7 +144,8 @@ namespace keepass2android
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
switch ((int)resultCode)
base.OnActivityResult(requestCode, resultCode, data);
switch ((int)resultCode)
{
case EntryEditActivity.ResultOkIconPicker:
_selectedIconId = data.Extras.GetInt(IconPickerActivity.KeyIconId, (int) PwIcon.Key);

View File

@@ -74,7 +74,7 @@ namespace keepass2android
/// </summary>
[Activity(Label = AppNames.AppName, MainLauncher = false, Theme = "@style/MyTheme_Blue")]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "android.intent.category.LAUNCHER", "android.intent.category.MULTIWINDOW_LAUNCHER" })]
public class KeePass : LifecycleDebugActivity, IDialogInterfaceOnDismissListener
public class KeePass : LifecycleAwareActivity, IDialogInterfaceOnDismissListener
{
public const Result ExitNormal = Result.FirstUser;
public const Result ExitLock = Result.FirstUser+1;

View File

@@ -24,15 +24,15 @@ using Android.Support.V7.App;
namespace keepass2android
{
public abstract class LifecycleDebugActivity : AppCompatActivity
public abstract class LifecycleAwareActivity : AppCompatActivity
{
protected LifecycleDebugActivity (IntPtr javaReference, JniHandleOwnership transfer)
protected LifecycleAwareActivity (IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
{
}
protected LifecycleDebugActivity()
protected LifecycleAwareActivity()
{
}
@@ -63,6 +63,7 @@ namespace keepass2android
protected override void OnStart()
{
ProgressTask.SetNewActiveActivity(this);
base.OnStart();
Kp2aLog.Log(ClassName+".OnStart");
}
@@ -90,7 +91,8 @@ namespace keepass2android
{
base.OnStop();
Kp2aLog.Log(ClassName+".OnStop");
}
ProgressTask.RemoveActiveActivity(this);
}
}
}

View File

@@ -27,7 +27,7 @@ namespace keepass2android
/// <summary>
/// Base class for activities. Notifies the TimeoutHelper whether the app is active or not.
/// </summary>
public class LockingActivity : LifecycleDebugActivity {
public class LockingActivity : LifecycleAwareActivity {
public LockingActivity (IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
@@ -123,12 +123,13 @@ namespace keepass2android
}
public Intent TryGetYubichallengeIntentOrPrompt(byte[] challenge, bool promptToInstall)
{
Intent chalIntent = new Intent("com.yubichallenge.NFCActivity.CHALLENGE");
Intent chalIntent = new Intent("net.pp3345.ykdroid.intent.action.CHALLENGE_RESPONSE");
chalIntent.PutExtra("challenge", challenge);
chalIntent.PutExtra("slot", 2);
IList<ResolveInfo> activities = PackageManager.QueryIntentActivities(chalIntent, 0);
IList<ResolveInfo> activities = PackageManager.QueryIntentActivities(chalIntent, 0);
bool isIntentSafe = activities.Count > 0;
if (isIntentSafe)
{
@@ -137,14 +138,22 @@ namespace keepass2android
if (promptToInstall)
{
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.SetMessage(Resource.String.YubiChallengeNotInstalled);
string message = GetString(Resource.String.NoChallengeApp) + " " + GetString(Resource.String.PleaseInstallApp, new Java.Lang.Object[]{"ykDroid"});
Intent yubichalIntent = new Intent("com.yubichallenge.NFCActivity.CHALLENGE");
IList<ResolveInfo> yubichallengeactivities = PackageManager.QueryIntentActivities(yubichalIntent, 0);
bool hasYubichallenge = yubichallengeactivities.Count > 0;
if (hasYubichallenge)
message += " " + GetString(Resource.String.AppOutdated, new Java.Lang.Object[] {"YubiChallenge"});
b.SetMessage(message);
b.SetPositiveButton(Android.Resource.String.Ok,
delegate { Util.GotoUrl(this, GetString(Resource.String.MarketURL) + "com.yubichallenge"); });
delegate { Util.GotoUrl(this, GetString(Resource.String.MarketURL) + "net.pp3345.ykdroid"); });
b.SetNegativeButton(Resource.String.cancel, delegate { });
b.Create().Show();
}
return null;
}
}
}
}

View File

@@ -310,7 +310,7 @@ namespace keepass2android
Handler handler = new Handler();
OnFinish onFinish = new AfterLoad(handler, this, _ioConnection);
_performingLoad = true;
LoadDb task = new LoadDb(App.Kp2a, _ioConnection, _loadDbFileTask, compositeKey, _keyFileOrProvider, onFinish);
LoadDb task = new LoadDb(this, App.Kp2a, _ioConnection, _loadDbFileTask, compositeKey, _keyFileOrProvider, onFinish);
_loadDbFileTask = null; // prevent accidental re-use
new ProgressTask(App.Kp2a, this, task).Run();
}
@@ -1453,7 +1453,7 @@ namespace keepass2android
LoadDb task = (KeyProviderType == KeyProviders.Otp)
? new SaveOtpAuxFileAndLoadDb(App.Kp2a, _ioConnection, _loadDbFileTask, compositeKey, _keyFileOrProvider,
onFinish, this)
: new LoadDb(App.Kp2a, _ioConnection, _loadDbFileTask, compositeKey, _keyFileOrProvider, onFinish);
: new LoadDb(this, App.Kp2a, _ioConnection, _loadDbFileTask, compositeKey, _keyFileOrProvider, onFinish);
_loadDbFileTask = null; // prevent accidental re-use
SetNewDefaultFile();
@@ -2028,7 +2028,7 @@ namespace keepass2android
readonly PasswordActivity _act;
private readonly IOConnectionInfo _ioConnection;
public AfterLoad(Handler handler, PasswordActivity act, IOConnectionInfo ioConnection):base(handler)
public AfterLoad(Handler handler, PasswordActivity act, IOConnectionInfo ioConnection):base(act, handler)
{
_act = act;
_ioConnection = ioConnection;
@@ -2172,7 +2172,7 @@ namespace keepass2android
private readonly PasswordActivity _act;
public SaveOtpAuxFileAndLoadDb(IKp2aApp app, IOConnectionInfo ioc, Task<MemoryStream> databaseData, CompositeKey compositeKey, string keyfileOrProvider, OnFinish finish, PasswordActivity act) : base(app, ioc, databaseData, compositeKey, keyfileOrProvider, finish)
public SaveOtpAuxFileAndLoadDb(IKp2aApp app, IOConnectionInfo ioc, Task<MemoryStream> databaseData, CompositeKey compositeKey, string keyfileOrProvider, OnFinish finish, PasswordActivity act) : base(act, app, ioc, databaseData, compositeKey, keyfileOrProvider, finish)
{
_act = act;
}

View File

@@ -58,7 +58,7 @@
</intent-filter>
</activity>
<activity android:configChanges="orientation" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<activity android:configChanges="orientation|keyboard|keyboardHidden" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />

View File

@@ -11,7 +11,7 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:configChanges="keyboardHidden|orientation" android:label="@string/app_name" android:theme="@style/MyTheme" android:name="keepass2android.PasswordActivity">
<activity android:configChanges="orientation|keyboard|keyboardHidden" android:label="@string/app_name" android:theme="@style/MyTheme" android:name="keepass2android.PasswordActivity">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />

View File

@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="119"
android:versionName="1.05e"
android:versionCode="127"
android:versionName="1.06f"
package="keepass2android.keepass2android"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="26" />
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher" android:label="KP2A entry search" android:name="keepass2android.keepass2android.permission.KP2aInternalSearch" android:protectionLevel="signature" />
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
<application android:label="keepass2android" android:icon="@mipmap/ic_launcher_online">
<application android:label="keepass2android"
android:icon="@mipmap/ic_launcher_online"
android:roundIcon="@mipmap/ic_launcher_online_round"
>
<activity android:name="com.dropbox.core.android.AuthActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboard">
<intent-filter>
<data android:scheme="db-i8shu7v1hgh7ynt" />
@@ -59,7 +62,7 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:configChanges="orientation" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<activity android:configChanges="orientation|keyboard|keyboardHidden" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />

View File

@@ -43,7 +43,7 @@
</intent-filter>
</activity>
<activity android:configChanges="orientation" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<activity android:configChanges="orientation|keyboard|keyboardHidden" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />

View File

@@ -37,7 +37,7 @@ namespace keepass2android
WindowSoftInputMode = SoftInput.AdjustResize,
MainLauncher = false,
Theme = "@style/MyTheme_Blue")]
public class QuickUnlock : LifecycleDebugActivity, IFingerprintAuthCallback
public class QuickUnlock : LifecycleAwareActivity, IFingerprintAuthCallback
{
private IOConnectionInfo _ioc;
private QuickUnlockBroadcastReceiver _intentReceiver;
@@ -261,7 +261,7 @@ namespace keepass2android
_fingerprintIdentifier = new FingerprintDecryption(fpModule, App.Kp2a.GetDb().CurrentFingerprintPrefKey, this,
App.Kp2a.GetDb().CurrentFingerprintPrefKey);
}
if (_fingerprintIdentifier == null)
if ((_fingerprintIdentifier == null) && (!FingerprintDecryption.IsSetUp(this, App.Kp2a.GetDb().CurrentFingerprintPrefKey)))
{
try
{
@@ -277,12 +277,15 @@ namespace keepass2android
catch (Exception)
{
Kp2aLog.Log("trying Samsung Fingerprint API...failed.");
FindViewById<ImageButton>(Resource.Id.fingerprintbtn).Visibility = ViewStates.Gone;
_fingerprintIdentifier = null;
return false;
}
}
btn.Tag = GetString(Resource.String.fingerprint_unlock_hint);
if (_fingerprintIdentifier == null)
{
FindViewById<ImageButton>(Resource.Id.fingerprintbtn).Visibility = ViewStates.Gone;
return false;
}
btn.Tag = GetString(Resource.String.fingerprint_unlock_hint);
if (_fingerprintIdentifier.Init())
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -139,7 +139,8 @@ android:paddingRight="16dp"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:focusable="true"
android:focusableInTouchMode="true" />
android:focusableInTouchMode="true"
android:importantForAccessibility="no"/>
<ImageButton
android:id="@+id/fingerprintbtn"

View File

@@ -108,7 +108,8 @@ android:layout_height="wrap_content">
android:hint="@string/hint_pass"
android:inputType="textPassword"
android:singleLine="true"
android:typeface="monospace" />
android:typeface="monospace"
android:importantForAccessibility="no" />
<!-- Confirm Password -->
<EditText
android:id="@+id/entry_confpassword"
@@ -119,7 +120,8 @@ android:layout_height="wrap_content">
android:hint="@string/hint_conf_pass"
android:inputType="textPassword"
android:singleLine="true"
android:typeface="monospace" />
android:typeface="monospace"
android:importantForAccessibility="no"/>
</RelativeLayout>

View File

@@ -74,7 +74,8 @@
android:paddingTop="0dp"
android:singleLine="true"
android:inputType="textPassword"
android:hint="password" />
android:hint="password"
android:importantForAccessibility="no"/>
</android.support.design.widget.TextInputLayout>
<LinearLayout
android:layout_width="wrap_content"
@@ -110,7 +111,8 @@
android:paddingTop="0dp"
android:singleLine="true"
android:inputType="textPassword"
android:hint="confirm password" />
android:hint="confirm password"
android:importantForAccessibility="no"/>
</LinearLayout>
</LinearLayout>
<!-- URL -->

View File

@@ -27,7 +27,7 @@
android:id="@+id/group_name_vdots"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:src="@drawable/vdots"
android:src="@drawable/vdots_bright"
android:gravity="right|bottom"
android:layout_alignParentRight="true"
android:paddingTop="4sp"/>

View File

@@ -56,7 +56,8 @@
android:inputType="textPassword"
android:text=""
android:singleLine="true"
android:hint="@string/hint_pass" />
android:hint="@string/hint_pass"
android:importantForAccessibility="no"/>
<TextView android:id="@+id/initial_dir"
android:layout_width="wrap_content"

View File

@@ -85,6 +85,57 @@
android:text="@string/dont_show_again"
style="@style/BottomBarButton" />
</LinearLayout>
<LinearLayout
android:id="@+id/fingerprint_infotext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="vertical">
<TextView android:id="@+id/myinfotext" android:text="@string/enable_fingerprint_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_margin="6dp"
android:layout_marginBottom="2dp"
/>
<RelativeLayout
android:id="@+id/fingerprint_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:baselineAligned="false">
<Button
android:id="@+id/enable_fingerprint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:paddingTop="4dp"
android:text="@string/yes"
style="@style/BottomBarButton" />
<Button
android:id="@+id/hide_fingerprint_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:paddingTop="4dp"
android:text="@string/no"
style="@style/BottomBarButton" />
</RelativeLayout>
<Button
android:id="@+id/info_dont_show_fingerprint_again"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/dont_show_again"
style="@style/BottomBarButton" />
</LinearLayout>
<LinearLayout
android:id="@+id/notification_info_android8_infotext"
android:layout_width="match_parent"

View File

@@ -36,7 +36,8 @@
android:inputType="textPassword"
android:singleLine="true"
android:text=""
android:hint="@string/hint_pass" />
android:hint="@string/hint_pass"
android:importantForAccessibility="no"/>

View File

@@ -37,7 +37,8 @@
android:inputType="textPassword"
android:singleLine="true"
android:text=""
android:hint="@string/hint_pass" />
android:hint="@string/hint_pass"
android:importantForAccessibility="no"/>

View File

@@ -153,7 +153,8 @@
android:singleLine="true"
android:inputType="textPassword"
android:fontFamily="sans-serif"
android:hint="@string/hint_login_pass" />
android:hint="@string/hint_login_pass"
android:importantForAccessibility="no"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -22,4 +22,13 @@
android:paddingRight="0dp"
android:paddingLeft="0dp" />
<Switch
android:id="@+id/local_backups_switch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/show_local_backups"
android:checked="false"
android:textColor="#fff"
android:gravity="left"/>
</LinearLayout>

View File

@@ -46,7 +46,8 @@
android:layout_height="wrap_content"
android:inputType="textPassword"
android:singleLine="true"
android:hint="@string/hint_pass" />
android:hint="@string/hint_pass"
android:importantForAccessibility="no"/>
<TextView android:id="@+id/initial_dir"
android:layout_width="wrap_content"

View File

@@ -66,7 +66,7 @@
<string name="entry_is_available">متوفر</string>
<string name="not_possible_im_picker">لا يمكن فتح صندوق الحوار لتحديد طريقة الإدخال. يرجى تفعيل لوحة المفاتيح يدويًا.</string>
<string name="please_activate_keyboard">يرجى تفعيل لوحة مفاتيح Keepass2Android في إعدادات النظام.</string>
<string name="creating_db_key">إنشاء مفتاح قاعدة البيانات&#8230;</string>
<string name="creating_db_key">إنشاء مفتاح قاعدة البيانات</string>
<string name="current_group">المجموعة الحالية</string>
<string name="current_group_root">المجموعة الحالية: الأساس</string>
<string name="database">قاعدة البيانات</string>
@@ -104,7 +104,7 @@
<string name="entry_expires">انتهاء الصلاحية</string>
<string name="entry_group_name">اسم المجموعة</string>
<string name="entry_keyfile">ملف المفتاح (اختياري)</string>
<string name="keyfile_heading">ملف مفتاح</string>
<string name="keyfile_heading">ملف المفتاح</string>
<string name="entry_modified">معدل</string>
<string name="entry_password">كلمة السر</string>
<string name="entry_save">حفظ</string>
@@ -157,7 +157,7 @@
<string name="length">الطول</string>
<string name="list_size_title">حجم قائمة المجموعات</string>
<string name="list_size_summary">حجم النص في قائمة المجموعات</string>
<string name="loading_database">جاري تحميل قاعدة البيانات&#8230;</string>
<string name="loading_database">جاري تحميل قاعدة البيانات</string>
<string name="lowercase">حروف صغيرة</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">حجب كلمة السر</string>
@@ -201,10 +201,11 @@
<string name="master_key_type">اختر نوع المفتاح الرئيسي:</string>
<string name="progress_create">إنشاء قاعدة بيانات جديدة...</string>
<string name="create_database">إنشاء قاعدة بيانات</string>
<string name="progress_title">جاري العمل&#8230;</string>
<string name="progress_title">جاري العمل</string>
<string name="remember_keyfile_summary">تذكر موقع ملف المفتاح</string>
<string name="remember_keyfile_title">حفظ ملف المفتاح</string>
<string name="remove_from_filelist">حذف</string>
<string name="edit">تعديل</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">البداية</string>
<string name="KeyDerivFunc">طريقة اشتقاق المفتاح</string>
@@ -215,8 +216,8 @@
<string name="argon2parallelism">التوازي لـ Argon2</string>
<string name="database_name">اسم قاعدة البيانات</string>
<string name="default_username">اسم المستخدم الافتراضي للقيود الجديدة</string>
<string name="saving_database">جاري حفظ قاعدة البيانات&#8230;</string>
<string name="exporting_database">جاري تصدير قاعدة البيانات&#8230;</string>
<string name="saving_database">جاري حفظ قاعدة البيانات</string>
<string name="exporting_database">جاري تصدير قاعدة البيانات</string>
<string name="export_database_successful">تم تصدير قاعدة البيانات بنجاح!</string>
<string name="space">فراغ</string>
<string name="search_label">بحث</string>
@@ -230,7 +231,7 @@
<string name="search_hint">البحث عن ماذا</string>
<string name="search_results">نتائج البحث</string>
<string name="search_in">البحث في</string>
<string name="select_other_entry">حدد قيدًا آخر</string>
<string name="select_other_entry">اختر مُدخل آخر</string>
<string name="select_group_then_add">افتح المجموعة المطلوبة، ثم اضغط على \"%1$s\"!</string>
<string name="insert_element_here">أدخل هنا</string>
<string name="twofish">تشفير Twofish</string>
@@ -317,11 +318,9 @@
<string name="NoDonationReminder_title">لا تطلب التبرع مطلقاً</string>
<string name="NoDonationReminder_summary">لن أعطيك قرشاً أو أني تبرعت مسبقاُ. لا تطلب التبرع، ولا حتى في عيد ميلاد المطور.</string>
<string name="UseOfflineCache_title">التخزين المؤقت لقاعدة بيانات</string>
<string name="UseOfflineCache_summary">الاحتفاظ بنسخة ملفات قاعدة البيانات البعيدة في مجلد ذاكرة التخزين المؤقت للتطبيق. هذا يسمح باستخدام قواعد البيانات البعيد حتى عندما تكون غير متصل.</string>
<string name="AcceptAllServerCertificates_title">شهادات SSL</string>
<string name="AcceptAllServerCertificates_summary">حدد السلوك عند فشل التحقق من صحة الشهادة. ملاحظة: يمكنك تثبيت شهادات على الجهاز الخاص بك إذا فشل التحقق من صحة الشهادة!</string>
<string name="ClearOfflineCache_title">مسح ذاكرة التخزين المؤقت؟</string>
<string name="ClearOfflineCache_question">سيؤدي هذا إلى حذف كافة ملفات قاعدة البيانات المخزنة مؤقتاً. سيتم فقدان أية تغييرات قمت بها بدون اتصال ولم يتم مزامنتها بعد! هل تريد المتابعة؟</string>
<string name="CheckForFileChangesOnSave_title">التحقق من التعديلات</string>
<string name="CheckForFileChangesOnSave_summary">التحقق مما إذا تم تعديل الملف خارجيًا قبل حفظ التغييرات.</string>
<string name="CheckForDuplicateUuids_title">التحقق من وجود معرفات (UUIDs) مكررة</string>
@@ -361,49 +360,34 @@
<string name="suggest_improvements">اقترح أو صوت على التحسينات</string>
<string name="rate_app">قيّم هذا التطبيق</string>
<string name="translate_app">ترجم KP2A</string>
<string name="AddingEntry">جاري إضافة قيد&#8230;</string>
<string name="AddingGroup">جاري إضافة مجموعة&#8230;</string>
<string name="DeletingEntry">جاري حذف القيد&#8230;</string>
<string name="DeletingGroup">جاري حذف المجموعة&#8230;</string>
<string name="DeletingItems">جاري حذف العناصر&#8230;</string>
<string name="SettingPassword">جاري تعيين كلمة مرور&#8230;</string>
<string name="UndoingChanges">جاري التراجع عن التغييرات&#8230;</string>
<string name="TransformingKey">جاري تحويل المفتاح الرئيسي&#8230;</string>
<string name="DecodingDatabase">جاري فك تشفير قاعدة البيانات&#8230;</string>
<string name="ParsingDatabase">جاري تحليل قاعدة البيانات&#8230;</string>
<string name="CheckingTargetFileForChanges">جاري التحقق من وجود تغييرات في الملف الهدف&#8230;</string>
<string name="AddingEntry">جاري إضافة قيد</string>
<string name="AddingGroup">جاري إضافة مجموعة</string>
<string name="DeletingEntry">جاري حذف القيد</string>
<string name="DeletingGroup">جاري حذف المجموعة</string>
<string name="DeletingItems">جاري حذف العناصر</string>
<string name="SettingPassword">جاري تعيين كلمة مرور</string>
<string name="UndoingChanges">جاري التراجع عن التغييرات</string>
<string name="TransformingKey">جاري تحويل المفتاح الرئيسي</string>
<string name="DecodingDatabase">جاري فك تشفير قاعدة البيانات</string>
<string name="ParsingDatabase">جاري تحليل قاعدة البيانات</string>
<string name="CheckingTargetFileForChanges">جاري التحقق من وجود تغييرات في الملف الهدف</string>
<string name="TitleSyncQuestion">دمج التغييرات؟</string>
<string name="MessageSyncQuestion">تم تعديل ملف قاعدة البيانات خارجياً. هل تريد تحميل ودمج التغييرات قبل الحفظ؟ حدد \"لا\" إذا كنت ترغب في الكتابة فوق التغييرات الخارجية.</string>
<string name="SynchronizingDatabase">جاري دمج التغييرات&#8230;</string>
<string name="SynchronizingDatabase">جاري دمج التغييرات</string>
<string name="YesSynchronize">نعم، ادمج التغييرات</string>
<string name="NoOverwrite">لا، اكتب فوق التغييرات</string>
<string name="UseOfflineMode">العمل دون اتصال</string>
<string name="UseOnlineMode">العمل على الإنترنت</string>
<string name="UseOfflineMode_Info">تجنب أي تعامل مع شبكة الاتصال باستخدام نسخة من الملف في ذاكرة التخزين المؤقت المحلية. التغييرات يتم تخزينها في ذاكرة التخزين المؤقت المحلية فقط، وسيتم رفعها فقط عند التبديل إلى وضع الاتصال بالانترنت.</string>
<string name="InOfflineMode">العمل دون اتصال.</string>
<string name="SynchronizingCachedDatabase">جاري مزامنة قاعدة البيانات المخزنة مؤقتاً&#8230;</string>
<string name="DownloadingRemoteFile">جاري تحميل الملف البعيد&#8230;</string>
<string name="UploadingFile">جاري رفع الملف&#8230;</string>
<string name="RestoringRemoteFile">جاري استعادة الملف البعيد&#8230;</string>
<string name="SynchronizingCachedDatabase">جاري مزامنة قاعدة البيانات المخزنة مؤقتاً…</string>
<string name="FilesInSync">الملفات في تزامن.</string>
<string name="SynchronizedDatabaseSuccessfully">تمت مزامنة قاعدة البيانات بنجاح!</string>
<string name="CheckingDatabaseForChanges">جاري التحقق من التغييرات في قاعدة البيانات&#8230;</string>
<string name="CouldNotSaveToRemote">تعذر الحفظ إلى الملف البعيد: %1$s. حاول مرة أخرى أو استخدم قائمة المزامنة عند توفر الاتصال مرة أخرى.</string>
<string name="CouldNotLoadFromRemote">تعذر فتح الملف البعيد: %1$s. تم تحميل الملف من ذاكرة التخزين المؤقت المحلية. لا يزال بإمكانك إجراء تغييرات في قاعدة البيانات ومزامنتها في وقت لاحق.</string>
<string name="UpdatedRemoteFileOnLoad">تم تحديث الملف البعيد.</string>
<string name="NotifyOpenFromLocalDueToConflict">تم فتح الملف المحلي بسبب تعارض مع التغييرات في الملف البعيد. استخدام قائمة المزامنة للدمج.</string>
<string name="LoadedFromRemoteInSync">تمت مزامنة الملف البعيد وذاكرة التخزين المؤقت.</string>
<string name="UpdatedCachedFileOnLoad">تم تحديث نسخة ذاكرة التخزين المؤقت المحلية من %1$s.</string>
<string name="CheckingDatabaseForChanges">جاري التحقق من التغييرات في قاعدة البيانات</string>
<string name="RemoteDatabaseUnchanged">لم يتم اكتشاف أية تغييرات.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">تم تحديث ملف \"كلمة السر أحادية الاستخدام\" المخزن مؤقتاً: العداد البعيد كان أعلى.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">تم تحديث ملف \"كلمة السر أحادية الاستخدام\" المخزن بعيدًا: العداد المحلي كان أعلى.</string>
<string name="SynchronizingOtpAuxFile">جاري مزامنة ملف \"كلمة السر أحادية الاستخدام\"&#8230;</string>
<string name="SynchronizingOtpAuxFile">جاري مزامنة ملف \"كلمة السر أحادية الاستخدام\"</string>
<string name="database_file">ملف قاعدة البيانات</string>
<string name="otp_aux_file">ملف \"كلمة السر أحادية الاستخدام\"</string>
<string name="ErrorOcurred">حدث خطأ:</string>
<string name="DuplicateUuidsError">قاعدة البيانات معطوبة: تم العثور على معرفات مكررة. (هل قمت بالحفظ بواسطة Minikeepass؟) يرجى إعادة الاستيراد إلى قاعدة بيانات جديدة مع برنامج Keepass2 الخاص بأجهزة سطح المكتب وحدد \'إنشاء معرفات جديدة\'.</string>
<string name="DuplicateUuidsErrorAdditional">يمكنك تعطيل رسالة الخطأ هذه في الإعدادات/إعدادات التطبيق/التعامل مع الملفات/التحقق من المعرفات (UUIDs) المكررة. الرجاء ملاحظة أنه قد يواجهك سلوك غير متوقع. من المستحسن إصلاح قاعدة البيانات.</string>
<string name="synchronize_database_menu">جاري مزامنة قاعدة البيانات&#8230;</string>
<string name="synchronize_database_menu">جاري مزامنة قاعدة البيانات</string>
<string name="CannotMoveGroupHere">لا يمكن نقل المجموعة إلى هذه المجموعة.</string>
<string name="donate_question">اليوم هو مهرجان أكتوبر! إذا أعجبك Keepass2Android ألن يكون اليوم مناسبا لتشتري لي بيرة؟</string>
<string name="donate_bday_question">10 مايو؟ إنه عيد ميلادي! إذا أعجبك هذا التطبيق، لما لا ترسل لي بعض التحايا إلى جانب هدية عيد ميلاد صغيرة؟ هذا سيسعدني كثيرًا! :-)</string>
@@ -450,10 +434,9 @@
<string name="hint_key_file">اختر إذا كنت تريد استخدام ملف المفتاح بالإضافة إلى كلمة المرور الرئيسية:</string>
<string name="use_key_file">استخدم ملف المفتاح</string>
<string name="error_adding_keyfile">حدث خطأ أثناء إضافة ملف المفتاح!</string>
<string name="init_otp">تحميل الملف الخارجي الخاص بكلمة المرور لمرة واحدة OTP&#8230;</string>
<string name="init_otp">تحميل الملف الخارجي الخاص بكلمة المرور لمرة واحدة OTP</string>
<string name="otp_explanation">(12345) emad.</string>
<string name="otp_hint">كلمة مرور مؤقتة %1$d</string>
<string name="YubiChallengeNotInstalled">تعذر العثور على تطبيق يمكنه التعامل مع هذا التحدي. يرجى تثبيت تطبيق يوبيتشالينج Yubichallenge من متجر Google Play.</string>
<string name="CouldntLoadOtpAuxFile">تعذر تحميل الملف الخارجي الخاص ب \"كلمة المرور لمرة واحدة\" OTP!</string>
<string name="CouldntLoadOtpAuxFile_Hint">الرجاء استخدام ألأضافة \"أوتبكييبروف\" OtpKeyProv في KeePass 2.x (نسخة PC) لتمكين قاعدة بياناتك مناستخدام \"كلمة المرور لمرة واحدة\" OTP !</string>
<string name="otp_discarded_because_no_db">الرجاء تحديد قاعدة البيانات أولاً. سيتم تجاهل كلمة المرور لمرة واحدة لدواعي ألأمان.</string>
@@ -464,7 +447,7 @@
<string name="CouldntParseOtpSecret">حدث خطأ أثناء تحليل سر كلمة المرور المؤقتة!</string>
<string name="OtpKeyError">فشل إنشاء مفتاح كلمة المرور المؤقتة! تأكد من إدخالك كلمات المرور الصحيحة.</string>
<string name="ErrorUpdatingOtpAuxFile">خطأ أثناء تحديث الملف الخارجي الخاص بكلمة المرور أحادية الاستخدام!</string>
<string name="SavingOtpAuxFile">جاري حفظ الملف الخارجي الخاص بكلمة المرور أحادية الاستخدام&#8230;</string>
<string name="SavingOtpAuxFile">جاري حفظ الملف الخارجي الخاص بكلمة المرور أحادية الاستخدام</string>
<string name="bad_resp">إجابة السؤال غير صحيحة.</string>
<string name="CouldntLoadChalAuxFile">تعذر تحميل الملف الخارجي الخاص بالسؤال!</string>
<string name="CouldntLoadChalAuxFile_Hint">من فضلك استعمل ملحق KeeChallenge فالنّسخة 2.0 من KeePass للحاسوب، وذلك لإعداد قاعدة البيانات من أجل استعمال نظام تحدّي/استجابة (Challenge-response)!</string>
@@ -474,7 +457,7 @@
<string name="TrayTotp_SettingsField_title">اسم الحقل \"إعدادات TOTP\"</string>
<string name="TrayTotp_SettingsField_summary">أدخل اسمًا لحقل \"إعدادات TrayTotp\" هنا.</string>
<string name="TrayTotp_prefs">TrayTotp</string>
<string name="loading">جاري التحميل&#8230;</string>
<string name="loading">جاري التحميل</string>
<string name="plugins">الإضافات</string>
<string name="plugin_packagename">اسم الحزمة:</string>
<string name="plugin_description">الوصف (لم يتم التأكيد):</string>
@@ -546,6 +529,7 @@
<string name="CorruptDatabaseHelp">
الملف معطوب.\n
هنا هي بعض التلميحات التي قد تساعد على تشخيص المسألة: \n إن قمت بنسخ الملف عبر USB (وضع الخطة المتوسطة الأجل)، الرجاء المحاولة مرة أخرى باستخدام أدوات مثل MyPhoneExplorer. الخطة المتوسطة الأجل تقتطع الملفات في بعض الحالات. \n • إذا تعذر عليك فتح الملف من نفس الموقع على جهاز الكمبيوتر الخاص بك، فمن المحتمل جداً أن الملف معطوب فعلا. الرجاء استخدام نسخة احتياطية من قاعدة البيانات. إذا كنت تفترض أن Keepass2Android قد أتلف الملف، الرجاء الاتصال بالمساعدة. \n • إذا تمكنت من فتح الملف على جهاز الكمبيوتر الخاص بك، الرجاء الاتصال بالمساعدة. يمكنك محاولة حفظه باستخدام إعدادات مختلفة (مثلا، غير مضغوط) على جهاز الكمبيوتر وإعادة محاولة فتحه في Keepass2Android. </string>
<string name="DbQuicklockedChannel_name">QuickUnlock</string>
<string name="ErrorReportTitle">Keepass2Android : حدث خطأ.</string>
<string name="ErrorReportText">حدث خطأ غير متوقع أثناء تشغيل Keepass2Android. الرجاء مساعدتنا في حل هذه المشكلة بالسماح للتطبيق بإرسال التقارير عن الأخطاء.</string>
<string name="ErrorReportPromise">لا تحتوي تقارير الأخطاء أبدا على أي محتويات من قاعدة البيانات الخاصة بك ولا على كلمة السر الرئيسية. يمكنك تعطيلها في إعدادات التطبيق.</string>
@@ -673,6 +657,7 @@
<item>كلمة السر + سر \"كلمة السر أحادية الاستخدام\" (وضع الاسترجاع)</item>
<item>كلمة السر + إجابة السؤال الشخصي</item>
<item>كلمة السر + سر إجابة السؤال الشخصي (وضع الاسترجاع)</item>
<item>Password + Challenge-Response for Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>تجاهل فشل التحقق من صحة الشهادة</item>

View File

@@ -307,11 +307,9 @@
<string name="NoDonateOption_summary">Тази настройка е за дарители. Тя е достъпна след използване на Keepass2Android за известно време.</string>
<string name="NoDonateOption_question">Без дарения това приложение не може да съществува и няма да се подобрява непрекъснато! Ако сте все още не сте дарили, моля обмислете да го направите сега.</string>
<string name="UseOfflineCache_title">Кеширане на базатаданни</string>
<string name="UseOfflineCache_summary">Запази копие на отдалечената база данни в кеф папката. Това позволява да се използва отдалечена база данни когато сте офлайн.</string>
<string name="AcceptAllServerCertificates_title">SSL сертификати</string>
<string name="AcceptAllServerCertificates_summary">Дефинирайте поведението когато сертифицирането пропадне. Бел.: вие можете да инсталирате сертификати ако валидирането пропадне!</string>
<string name="ClearOfflineCache_title">Изчисване на кеша?</string>
<string name="ClearOfflineCache_question">Това ще изтрие всички кефирани бази данни. Всички промени докато сте били офлайн които не са синхронизиране ще бъдат изгубени! Продължаване?</string>
<string name="CheckForFileChangesOnSave_title">Провери за промени</string>
<string name="CheckForFileChangesOnSave_summary">Проверява дали файлът е променен външно преди записване на промените.</string>
<string name="CheckForDuplicateUuids_title">Проверка за дублирани UUID</string>
@@ -352,8 +350,6 @@
<string name="MessageSyncQuestion">Файлът на базата данни беше променен външно. Искате ли да заредите и да обедините промените преди записване? Изберете \"не\" ако искате да замените външните промени.</string>
<string name="SynchronizingDatabase">Добавя промените&#8230;</string>
<string name="NoOverwrite">Не, презапиши</string>
<string name="UseOfflineMode">Работа офлайн</string>
<string name="UseOnlineMode">Работа онлайн</string>
<string name="SynchronizedDatabaseSuccessfully">Базата данни е синхронизирана успешно!</string>
<string name="DuplicateUuidsError">Базата данни е повредена: дубликат идентификатори намерени. (Знаете запишете с Minikeepass?) Моля да импортирате отново в нова база данни с Keepass 2 за PC и изберете \"Създай нов ИД\".</string>
<string name="DuplicateUuidsErrorAdditional">Можете да забраните това съобщение за грешка в приложението настройки/настройки/файл обработка/проверка за дублирани UUID. Моля, обърнете внимание, че е възможно да имате неочаквано поведение. Препоръчително е да се определи на базата данни.</string>

View File

@@ -0,0 +1,399 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--Generated by crowdin.net-->
<resources>
<string name="about_feedback">Отзив</string>
<string name="about_homepage">Уеб страница</string>
<string name="AboutText">Keepass2Android е мениджър за пароли който осигурява достъп четене/записване до KeePass 2.x база данни на Android.</string>
<string name="CreditsText">Потребителският интерфейс е базиран на KeepassDroid създаден от Brian Pellin. Кода действие на базите данни е базиран на KeePass на Dominik Reichl. Робота Android е репродукция или модифициран от разработения и споделен от Google и се използва в съответствие с лиценза Creative Commons 3.0 Attribution License.</string>
<string name="CreditsTextSFTP">SFTP поддръжка се осъществява чрез използване на библиотеката на JSch под BSD лиценз, създаден от JCraft, Inc.</string>
<string name="accept">Приемам</string>
<string name="deny">Отказано</string>
<string name="add_entry">Добавям запис</string>
<string name="edit_entry">Редактиране на запис</string>
<string name="add_url_entry">Създавам запис от страница</string>
<string name="add_group">Добавям група</string>
<string name="add_group_title">Добавям Група</string>
<string name="edit_group_title">Редактирам Група</string>
<string name="algorithm">Алгоритъм</string>
<string name="algorithm_colon">Алгоритъм</string>
<string name="app_name">Keepass2Android</string>
<string name="short_app_name">KP2A</string>
<string name="app_name_nonet">Keepass2Android Офлайн</string>
<string name="short_app_name_nonet">KP2A Офлайн</string>
<string name="app_timeout">Времето за изчакване на приложението изтече</string>
<string name="app_timeout_summary">Време за заключване на базата данни, когато приложение е неактивно.</string>
<string name="kill_app_label">Спиране на процеса на приложението</string>
<string name="show_kill_app">Бутон-Затваряне</string>
<string name="show_kill_app_summary">Покажи бутон за спиране на приложението в екрана за парола (за параноични потребители)</string>
<string name="application">Приложение</string>
<string name="application_settings">Настройки на приложението</string>
<string name="ShowGroupnameInSearchResult_title">Показване на името на групата в резултата от търсенето</string>
<string name="ShowGroupnameInSearchResult_resume">Показване на името на групата под заглавието в резултатите от търсенето. Полезно е, ако няколко записа имат едно и също име.</string>
<string name="NavigationToGroupCompleted_message">Групата за показване е: %1$s</string>
<string name="ShowGroupInEntry_title">Покажи името на групата във вид на запис</string>
<string name="unknown_uri_scheme">Съжалявам! Keepass2Android не може да обработи върнатите URI %1$s. Свържете се с разработчика!</string>
<string name="Entry_singular">Един запис</string>
<string name="Entry_plural">%1$d записи</string>
<string name="IconSet_title">Набор икони</string>
<string name="IconSet_install">Търси още... </string>
<string name="security_prefs">Сигурност</string>
<string name="display_prefs">Покажи</string>
<string name="password_access_prefs">Достъп до въведените пароло</string>
<string name="QuickUnlock_prefs">Бързо отключване</string>
<string name="FileHandling_prefs">Работа с файлове</string>
<string name="keyboard_prefs">Клавиатура</string>
<string name="export_prefs">Експортиране на база данни...</string>
<string name="fingerprint_prefs">Отключване с отпечатък</string>
<string name="import_db_prefs">Импортиране на БД във вътрешна папка</string>
<string name="import_keyfile_prefs">Импортирай ключ от вътрешна папка</string>
<string name="keyboardswitch_prefs">Превключване на клавиатурата</string>
<string name="OnlyAvailableForLocalFiles">Достъпно само за локални файлове.</string>
<string name="FileIsInInternalDirectory">Файлът се съхранява във вътрешна папка</string>
<string name="DatabaseFileMoved">База данни файлът е копиран във вътрешна папка. Натиснете Ok, за да отворите ново местоположение. Забележка: Не забравяйте редовно да експортирате базата данни на безопасно място</string>
<string name="KeyfileMoved">Keyfile е копиран във вътрешна папка. Уверете се, че имате бекъп преди да го изтриете от текущото му място!</string>
<string name="KeyfileMoveRequiresRememberKeyfile">Не можете да използвате вътрешна папка ако key файла не е запомнен. Променете настройките на сигурността.</string>
<string name="unlock_database_button">Отключване</string>
<string name="unlock_database_title">Отключи базата данни</string>
<string name="brackets">Скоби</string>
<string name="cancel">Прекъсни</string>
<string name="ClearClipboard">Клиброда е изчистен.</string>
<string name="clipboard_timeout">Времето за изчакване на клипборда изтече</string>
<string name="clipboard_timeout_summary">Време за изчистване на клипборда преди копиране на потребителско име или парола</string>
<string name="copy_username">Изберете за да копиране потребителското име в клипборда</string>
<string name="copy_password">Изберете за да копирате парола в клипборда</string>
<string name="available_through_keyboard">Въвеждането е възможно чрез KP2A клавиатурата</string>
<string name="entry_is_available">е наличен</string>
<string name="not_possible_im_picker">Невъзможно отваряне на диалог за избиране на метод за въвеждане. Моля активирайте клавиатурата ръчно.</string>
<string name="please_activate_keyboard">Моля активирайте клавиатурата на Keepass2Android във вашата системни настройки.</string>
<string name="creating_db_key">Създаване на ключ на базата данни…</string>
<string name="current_group">Настояща Група</string>
<string name="current_group_root">Настояща Група: Главна</string>
<string name="database">Базаданни</string>
<string name="digits">Цифри</string>
<string name="disclaimer_formal">Keepass2Android е с АБСОЛЮТНО НИКАКВИ ГАРАНЦИИ. Това е свободен софтуер и вие сте свободни да го разпространявате при условията на GPL врсия 2 и по-късни.</string>
<string name="ellipsis">\u2026</string>
<string name="copy_to_clipboard">Копиране в клипборда</string>
<string name="fingerprint_hint">Сензор за докосване</string>
<string name="fingerprint_description">Потвърди отпечатъка за продължение</string>
<string name="fingerprint_fatal">Не може да настрои отключването с отпечатък:</string>
<string name="fingerprint_not_recognized">Не разпознат. Опитайте пак</string>
<string name="fingerprint_success">Разпознат</string>
<string name="fingerprint_os_error">Отпечатъка изисква Android 6.0 или по нов. </string>
<string name="fingerprint_hardware_error">Нямате устройство за отпечатък. </string>
<string name="fingerprint_no_enrolled">Нямате запазени пръстови отпечатъци на това устройство. Моля посетете състемните настройки.</string>
<string name="disable_fingerprint_unlock">Изключи отключването с отпечатък</string>
<string name="enable_fingerprint_unlock">Разреши отключването с отпечатък</string>
<string name="enable_fingerprint_quickunlock">Включи Отключване с Пръстов Отпечатък при Бързо Отключване</string>
<string name="fingerprint_unlock_hint">Докоснете сензора за отключване на базата данни</string>
<string name="fingerprint_reenable">Моля активирайте повторно отключването с пръстов отпечатък за новата главна парола.</string>
<string name="enable_fingerprint_unlock_Info">
Това ще запише вашата главна парола криптирана с Android Keystore и защитена с пръстовия ви отпечатък. Можете да отключите само с вашия отпечатък. </string>
<string name="enable_fingerprint_quickunlock_Info">Позволява да използвате пръстов отпечатък вместо QuickUnlock код. Не изисква да запазва каквато и да е информация свързана с вашата главна парола.</string>
<string name="enter_filename">Въведете име на файла на базаданни</string>
<string name="entry_accessed">Достъп до</string>
<string name="entry_cancel">Прекъсни</string>
<string name="entry_comment">Бележки</string>
<string name="entry_tags">Тагове</string>
<string name="entry_override_url">Замени URL</string>
<string name="entry_confpassword">Потвърди паролата</string>
<string name="entry_created">Създаден</string>
<string name="entry_expires">Изтича</string>
<string name="entry_group_name">Име на група</string>
<string name="entry_keyfile">Ключов файл (незадължителен)</string>
<string name="entry_modified">Модифициран</string>
<string name="entry_password">Парола</string>
<string name="entry_save">Запази</string>
<string name="entry_title">Име</string>
<string name="entry_url">URL</string>
<string name="entry_user_name">Потребителско име</string>
<string name="entry_extra_strings">Допълнителни низ полета</string>
<string name="entry_binaries">Прикачени файлове</string>
<string name="error_can_not_handle_uri">Keepass2Android не може да обработи този uri.</string>
<string name="error_could_not_create_group">Грешка при създаване на група.</string>
<string name="error_could_not_create_parent">Не може да се създаде директория.</string>
<string name="error_database_exists">Този файл вече съществува.</string>
<string name="error_database_settinoverrgs">Не можа да определи настройките на базата данни.</string>
<string name="error_failed_to_launch_link">Неуспешно отваряне на линк.</string>
<string name="error_filename_required">Изисква се име на файл.</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>
<string name="error_nopass">Изисква се парола или ключов файл.</string>
<string name="error_pass_gen_type">Трябва да бъде избран поне един вид генератор за парола</string>
<string name="error_pass_match">Паролите не съвпадат.</string>
<string name="error_rounds_not_number">Кръга трябва да бъде число.</string>
<string name="error_param_not_number">Въведения параметър трябва да бъде число.</string>
<string name="error_title_required">Изисква се заглавие.</string>
<string name="error_wrong_length">Въведете положително число в полето \"дължина\"</string>
<string name="FileNotFound">Файлът не е намерен.</string>
<string name="file_browser">Файл браузър</string>
<string name="generate_password">Генериране на парола</string>
<string name="group">Група</string>
<string name="hint_comment">бележки</string>
<string name="hint_conf_pass">Потвърди паролата</string>
<string name="hint_generated_password">генерира парола</string>
<string name="hint_group_name">Име на група</string>
<string name="hint_keyfile">Ключов файл</string>
<string name="hint_length">Дължина</string>
<string name="hint_pass">парола</string>
<string name="hint_login_pass">Парола</string>
<string name="hint_title">Име</string>
<string name="hint_url">url</string>
<string name="hint_override_url">замени url</string>
<string name="hint_tags">таг1, таг2</string>
<string name="hint_username">потребителско име</string>
<string name="InvalidPassword">Невалидна парола или ключов файл.</string>
<string name="invalid_algorithm">Невалиден алгоритъм.</string>
<string name="invalid_db_sig">Формат на базата данни не се разпознава.</string>
<string name="keyfile_does_not_exist">Файла на ключа не съществува.</string>
<string name="no_keyfile_selected">Няма избран ключов файл.</string>
<string name="keyfile_is_empty">Файла с ключа е празен.</string>
<string name="length">Дължина</string>
<string name="list_size_title">Размер на груповия списък</string>
<string name="list_size_summary">Размер на текстра в груповия списък</string>
<string name="loading_database">Зареждане на базата данни…</string>
<string name="lowercase">Малки букви</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Маска за паролата</string>
<string name="maskpass_summary">Скрий паролите по подразбиране</string>
<string name="menu_about">За</string>
<string name="menu_change_key">Смяна на главния ключ</string>
<string name="menu_copy_pass">Копирай парола</string>
<string name="menu_copy_user">Копирай потребителско име</string>
<string name="menu_create">Създай</string>
<string name="menu_app_settings">Настройки</string>
<string name="menu_db_settings">Настройка на базата данни</string>
<string name="menu_delete">Изтриване</string>
<string name="menu_copy">Създаване на дубликат</string>
<string name="menu_move">Премести в друга група</string>
<string name="menu_move_light">Премести</string>
<string name="menu_navigate">Отиди в родителската група</string>
<string name="menu_donate">Дарете бира...</string>
<string name="menu_edit">Редактиране</string>
<string name="menu_hide_password">Скрий парола</string>
<string name="menu_lock">Заключи базата данни</string>
<string name="menu_open">Отвори</string>
<string name="menu_close">Затвори</string>
<string name="menu_rename">Преименувай</string>
<string name="menu_search">Търсене</string>
<string name="menu_search_advanced">Сложно търсене</string>
<string name="menu_url">Отиди на страницата</string>
<string name="menu_change_db">Смени базата данни…</string>
<string name="menu_show_all">Покажи всички полета</string>
<string name="minus">Минус</string>
<string name="never">Никога</string>
<string name="yes">Да</string>
<string name="no">Не</string>
<string name="no_keys">Няма въведени записи в базата данни или групата.</string>
<string name="no_results">Търсенето не даде резултати</string>
<string name="no_url_handler">Няма доставчик за тази страница.</string>
<string name="open_recent">Отвори последната база данни (кликни за да се отвори)</string>
<string name="omitbackup_title">Не търси в бекъпа и кошчето</string>
<string name="omitbackup_summary">Пропусни \'Backup\' и Recycle Bin групите от търсенето</string>
<string name="pass_filename">Име на KeePass файл за базата данни</string>
<string name="password_title">Въведете паролата на базата данни</string>
<string name="master_key_type">Изберете вид на главния ключ:</string>
<string name="progress_create">Създаване на нова база данни…</string>
<string name="create_database">Създаване на база данни</string>
<string name="progress_title">В процес на работа…</string>
<string name="remember_keyfile_summary">Запомни пътя до ключовия файл</string>
<string name="remember_keyfile_title">Запази ключов файл</string>
<string name="remove_from_filelist">Премахване</string>
<string name="edit">Редактиране</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">Главен</string>
<string name="rounds">Шифрован кръг</string>
<string name="rounds_explaination">По-високо криптиране на кръга осигурява допълнителна защита срещу атаки с груба сила, но може да забави зареждането и записването.</string>
<string name="database_name">Име на базата данни</string>
<string name="default_username"> Потребителско име по подразбиране за нови записи</string>
<string name="saving_database">Записване на база данни...</string>
<string name="exporting_database">Експортиране на база данни...</string>
<string name="export_database_successful">Базата данни е експортирана!</string>
<string name="space">Пространство</string>
<string name="search_label">Търсене</string>
<string name="show_password">Покажи паролата</string>
<string name="sort_menu">Сортирай по...</string>
<string name="sort_name">Сортиране по име</string>
<string name="sort_db">Сортирай по дата на създаване</string>
<string name="sort_moddate">Сортирай по дата на модификация</string>
<string name="sort_default">Запази ред по подразбиране</string>
<string name="special">Специални</string>
<string name="search_hint">Търси</string>
<string name="search_results">Резултати от търсенето</string>
<string name="search_in">Търсене в</string>
<string name="select_other_entry">Изберете друг запис</string>
<string name="select_group_then_add">Отворете желаната група, след което натиснете \"%1$s\"!</string>
<string name="insert_element_here">Вмъкни тук</string>
<string name="twofish">Twofish</string>
<string name="underline">Подчертаване</string>
<string name="unsupported_db_version">Неподдържана версия на базата данни.</string>
<string name="uppercase">Главни букви</string>
<string name="warning_read_only">Sd картата е само за четене. Може да не успеете да запазите промените във вашата база данни.</string>
<string name="warning_unmounted">Sd картата не е монтирана в момента на вашето устройство. Вие няма да можете да заредите или да създадете вашата база данни.</string>
<string name="version_label">Версия</string>
<string name="version_history">Хронология на версиите</string>
<string name="author">Keepass2Android е разработена от Philipp Crocoll.</string>
<string name="further_authors">Благодарение на девелопера %1$s.</string>
<string name="designers">Благодарение на иконата и оформлението дизайн вноски от %1$s.</string>
<string name="credit_plugin1">Twofish шифър плъгина за Keepass е разработен от Скот Грийнбърг и е включен в KP2A.</string>
<string name="credit_android_filechooser">Android-filechooser е разработена от Хай бизони</string>
<string name="credit_keyboard">KP2A клавиатурата се основава на Gingerbread клавиатурата от андроида отворен източник на проект и използва плъгин мениджър кода от клавиатурата на хакер от Клаус Weidner.</string>
<string name="please_note">Моля, обърнете внимание</string>
<string name="contributors">Сътрудници</string>
<string name="regular_expression">Регулярен израз</string>
<string name="TanExpiresOnUse_title">Тан изтича на използване</string>
<string name="TanExpiresOnUse_summary">Отбележи TAN записите с изтекъл срок при използването им</string>
<string name="ShowUsernameInList_title">Показвано име в списъка</string>
<string name="ShowUsernameInList_summary">Показване на потребителските имена под заглавията. Полезно за няколко сметки или TAN-а</string>
<string name="RememberRecentFiles_title">Запомни базите данни</string>
<string name="RememberRecentFiles_summary">Запомни последно отваряните бази данни ги показвай в екрана на отворената база данни.</string>
<string name="kp2a_findUrl">Keepass2Android: Намери парола</string>
<string name="excludeExpiredEntries">Изключи изтеклите записи</string>
<string name="search_options">Опции</string>
<string name="caseSensitive">Има разлика за голям-малък шрифт</string>
<string name="start_open_file">Отваряне на файл...</string>
<string name="start_create">Създаване на нова база данни...</string>
<string name="start_open_url">Отваряне на URL...</string>
<string name="start_create_import">Импортира файл в нова база данни</string>
<string name="enter_filename_details_url">Пълен URL адрес трябва да се зададе, включително протокол като http://.</string>
<string name="enter_filename_details_create_import">Файла за импортиране ще бъде избран в следващата стъпка.</string>
<string name="enable_quickunlock">Включете опцията \"Бързо отключване\"</string>
<string name="QuickUnlock_label">Въведете последните %1$d символа от вашата парола:</string>
<string name="QuickUnlock_button">Бързо отключване!</string>
<string name="QuickUnlock_lockButton">Затвори базата данни</string>
<string name="QuickUnlockDefaultEnabled_title">Включи Бързо отключване по подразбиране</string>
<string name="QuickUnlockDefaultEnabled_summary">Определя дали Бързо отключване е включено по подразбиране или не.</string>
<string name="ViewDatabaseSecure_title">Защити показването на базата данни</string>
<string name="ViewDatabaseSecure_summary">Ако е включено, снимките на екрана са блокирани и превюто на програмата не се показва в текущите работещи приложения</string>
<string name="QuickUnlockIconHidden_title">Скрий иконата за Бързо отключване</string>
<string name="QuickUnlockIconHidden_summary">Бързо отключване за съжаление не работи без да се показва нотификационна икона. Изберете тази опция за да използвате прозрачна икона.</string>
<string name="QuickUnlockIconHidden16_title">Скрий иконата за Бързо отключване</string>
<string name="QuickUnlockIconHidden16_summary">QuickUnlock изисква уведомяване за да работи правилно. Изберете тази опция за показване на уведомление без икона.</string>
<string name="QuickUnlockLength_title">Дължина на ключа за Бързо отключване</string>
<string name="QuickUnlockLength_summary">Максимален брой знаци използвани като парола за Бързо отключване.</string>
<string name="QuickUnlock_fail">Бързо отключване НЕУСПЕШНО: невярна парола!</string>
<string name="BinaryDirectory_title">Папка с приложени файлове</string>
<string name="BinaryDirectory_summary">Папка където се записват приложените файлове.</string>
<string name="SaveAttachmentDialog_title">Запази приложен файл</string>
<string name="SaveAttachmentDialog_text">Моля изберете къде да се запише приложения файл.</string>
<string name="SaveAttachmentDialog_save">Запази в SD картата</string>
<string name="SaveAttachmentDialog_open">Запази в кеша и отвори</string>
<string name="SaveAttachment_doneMessage">Файла е запазен в %1$s.</string>
<string name="SaveAttachment_Failed">Не може да запази приложения файл в %1$s.</string>
<string name="AddUrlToEntryDialog_title">Запомни текста за търсене?</string>
<string name="AddUrlToEntryDialog_text">Искате ли да съхраните търсения текст \"%1$s\" в избрания запис, за да го намерите автоматично следващия път?</string>
<string name="error_invalid_expiry_date">Невалиден формат за дата/време за изтекла дата!</string>
<string name="error_string_key">Име на полето е задължително за всеки стринг.</string>
<string name="field_name">Име на полето</string>
<string name="field_value">Съдържание на полето</string>
<string name="protection">Защитено поле</string>
<string name="add_binary">Добави приложен файл...</string>
<string name="add_extra_string">Въведи допълнителен стринг</string>
<string name="delete_extra_string">Изтрий допълнителен стринг</string>
<string name="database_loaded_quickunlock_enabled">%1$s: Заключена. Бързо отключване е включено.</string>
<string name="database_loaded_unlocked">%1$s: Отключена.</string>
<string name="credentials_dialog_title">Въведете потребителско име и парола за връзка със сървъра</string>
<string name="UseFileTransactions_title">Транзакция на файлове</string>
<string name="UseFileTransactions_summary">Използвай тракзакция на файлове за записване на бази данни</string>
<string name="LockWhenScreenOff_title">Заключи когато изкл.екрана</string>
<string name="LockWhenScreenOff_summary">Заключи базата данни когато се изкл.екрана.</string>
<string name="ClearPasswordOnLeave_title">Изчиства въведената главна парола</string>
<string name="ClearPasswordOnLeave_summary">Изчиства въведената главна парола ако напуснете екрана без отключване на базата данни</string>
<string name="LockWhenNavigateBack_title">Заключване при излизане от приложението</string>
<string name="LockWhenNavigateBack_summary">Заключване на базата данни при излизане от приложението чрез натискане на бутона за връщане назад.</string>
<string name="NoDonateOption_title">Скрий опцията за дарения</string>
<string name="NoDonateOption_summary">Тази настройка е за дарители. Тя е достъпна след използване на Keepass2Android за известно време.</string>
<string name="NoDonateOption_question">Без дарения това приложение не може да съществува и няма да се подобрява непрекъснато! Ако сте все още не сте дарили, моля обмислете да го направите сега.</string>
<string name="UseOfflineCache_title">Кеширане на базатаданни</string>
<string name="AcceptAllServerCertificates_title">SSL сертификати</string>
<string name="AcceptAllServerCertificates_summary">Дефинирайте поведението когато сертифицирането пропадне. Бел.: вие можете да инсталирате сертификати ако валидирането пропадне!</string>
<string name="ClearOfflineCache_title">Изчисване на кеша?</string>
<string name="CheckForFileChangesOnSave_title">Провери за промени</string>
<string name="CheckForFileChangesOnSave_summary">Проверява дали файлът е променен външно преди записване на промените.</string>
<string name="CheckForDuplicateUuids_title">Проверка за дублирани UUID</string>
<string name="CheckForDuplicateUuids_summary">Проверете дали файлът на базата данни е повреден от наличието на множество записи със същия ИД. Това може да доведе до неочаквано поведение.</string>
<string name="ShowCopyToClipboardNotification_title">Уведомления от клипборда</string>
<string name="ShowCopyToClipboardNotification_summary">Направи достъпни чрез лентата за уведомление и клипборда потребителското име и парола. Пазете се прехващачи на пароли!</string>
<string name="ShowSeparateNotifications_title">Отделни уведомления</string>
<string name="ShowSeparateNotifications_summary">Показвай отделни съобщения за копиране на потребителско име и парола към clipboard и активиране от клавиатурата.</string>
<string name="OpenKp2aKeyboardAutomatically_title">Превключване на клавиатурата</string>
<string name="OpenKp2aKeyboardAutomatically_summary">Отвори диалог за избор на клавиатура когато стойност е налична през KP2A клавиатура след търсене от браузъра.</string>
<string name="OpenKp2aKeyboardAutomaticallyOnlyAfterSearch_title">Автоматично превключване само след търсене</string>
<string name="ShowUnlockedNotification_summary">Показвай иконка за уведомяване когато базата данни е отключена.</string>
<string name="PreloadDatabaseEnabled_title">Презарежда файла с базата данни</string>
<string name="AskOverwriteBinary_yes">Презаписване</string>
<string name="AskOverwriteBinary_no">Преименувай</string>
<string name="AttachFailed">Неуспешно добавяне на прикачен файл.</string>
<string name="RecycleBin">Кошче</string>
<string name="AskDeletePermanentlyEntry">Искате ли да изтриете този елемент окончателно? Натиснете не за рециклиране.</string>
<string name="AskDeletePermanentlyGroup">Искате ли да изтриете този елемент окончателно? Натиснете не за рециклиране.</string>
<string name="AskDeletePermanentlyItems">Искате ли да изтриете избрания елемент завинаги? Натиснете Не за възстановяване.</string>
<string name="AskDeletePermanentlyEntryNoRecycle">Искате ли да изтриете избрания елемент завинаги?</string>
<string name="AskDeletePermanentlyGroupNoRecycle">Искате ли да изтриете тази група завинаги?</string>
<string name="AskDeletePermanently_title">Изтриване завинаги?</string>
<string name="AskReloadFile_title">Презареди файла?</string>
<string name="AskReloadFile">Файла който е отворен в момента е променен от друга програма. Искате ли да го презареди?</string>
<string name="AskDiscardChanges_title">Отхвърляне на промените?</string>
<string name="rate_app">Оценете това приложение</string>
<string name="translate_app">Превод на KP2A</string>
<string name="AddingEntry">Добавяне на запис…</string>
<string name="AddingGroup">Добавяне на група…</string>
<string name="DeletingEntry">Изтриване на запис…</string>
<string name="DeletingGroup">Изтриване на група…</string>
<string name="DeletingItems">Изтриване на елементи…</string>
<string name="SettingPassword">Задаване на парола…</string>
<string name="UndoingChanges">Отмяна на промените…</string>
<string name="DecodingDatabase">Декодиране на базата данни…</string>
<string name="TitleSyncQuestion">Обедини и съхрани промените?</string>
<string name="MessageSyncQuestion">Файлът на базата данни беше променен външно. Искате ли да заредите и да обедините промените преди записване? Изберете \"не\" ако искате да замените външните промени.</string>
<string name="SynchronizingDatabase">Добавя промените…</string>
<string name="NoOverwrite">Не, презапиши</string>
<string name="SynchronizedDatabaseSuccessfully">Базата данни е синхронизирана успешно!</string>
<string name="DuplicateUuidsError">Базата данни е повредена: дубликат идентификатори намерени. (Знаете запишете с Minikeepass?) Моля да импортирате отново в нова база данни с Keepass 2 за PC и изберете \"Създай нов ИД\".</string>
<string name="DuplicateUuidsErrorAdditional">Можете да забраните това съобщение за грешка в приложението настройки/настройки/файл обработка/проверка за дублирани UUID. Моля, обърнете внимание, че е възможно да имате неочаквано поведение. Препоръчително е да се определи на базата данни.</string>
<string name="synchronize_database_menu">Синхронизиране на базата данни...</string>
<string name="CannotMoveGroupHere">Може да преместите група към тази група.</string>
<string name="donate_question">Днес тя е Октоберфест! Ако ви харесва Keepass2Android: днес няма да бъде един добър ден да ми купи една бира?</string>
<string name="donate_bday_question">10 май? Това е моят рожден ден! Ако ви харесва този ап, защо не ми изпратите някои рожден ден Поздрави заедно с малък подарък за рождения ден? Това наистина ще ме направи щастлив! :-)</string>
<string name="donate_missedbday_question">О ти пропусна моя рожден ден на 10 май! Ако ви харесва този ап, защо не да ми изпратите някои рожден ден поздравления и малко подарък? Все още не е твърде късно, за да ме направи щастлив! :-)</string>
<string name="ok_donate">Кажи ми повече!</string>
<string name="no_thanks">Не, не ми харесва толкова много</string>
<string name="hint_sftp_host">host (ex: 192.168.0.1)</string>
<string name="hint_sftp_port">порт</string>
<string name="initial_directory">Начална директория (по избор):</string>
<string name="enter_sftp_login_title">Въведете SFTP входните данни:</string>
<string name="select_storage_type">Изберете типа на съхранение:</string>
<string name="filestoragename_file">Локален файл</string>
<string name="filestoragename_androidget">Получи от трети партия app</string>
<string name="filestoragename_androidsend">Изпрати на трети партия app</string>
<string name="filestoragename_ftp">FTP</string>
<string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_dropbox">Dropbox</string>
<string name="filestoragename_dropboxKP2A">Dropbox (KP2A папка)</string>
<string name="filestoragehelp_dropboxKP2A">Ако не искате да дадете KP2A достъп до пълен живея, можете да изберете тази опция. Тя ще поиска достъп само до папката приложения/Keepass2Android. Това е особено подходящ, когато създавате нова база данни. Ако вече имате база данни, щракнете върху тази опция, за да създаде папката, след което поставете вашия файл в папката (от вашия компютър) и след това изберете тази опция отново за отваряне на файла.</string>
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_sftp">SFTP (SSH прехвърляне на файлове)</string>
<string name="filestorage_setup_title">Файла достъп инициализация</string>
<string name="database_location">Database местоположение</string>
<string name="help_database_location">Можете да съхранявате вашата база данни локално на вашето устройство Android или в облака (не офлайн версия само). Keepass2Android предоставя базата данни, дори ако сте офлайн. Тъй като базата данни е сигурно криптирани с AES 256 bit криптиране, никой няма да може да получите достъп до паролите ви освен вас. Препоръчваме да изберете Dropbox: тя е достъпна на всичките ви устройства и дори дава гръб на предишни версии на файлове.</string>
<string name="hint_database_location">Изберете къде искате да съхранявате в базата данни:</string>
<string name="button_change_location">Промяна на местоположението</string>
<string name="master_password">Главна парола</string>
<string name="help_master_password">Вашата база данни е шифрована с парола, въведете тук. Изберете сигурна парола за да се запази базата данни безопасно! Съвет: Съставляват едно изречение или две и въведете първите букви на думите като парола. Включете препинателни знаци.</string>
<string name="loading">Зареждане…</string>
<string name="TemplateField_IdCard_Name">Име</string>
<string name="DbQuicklockedChannel_name">Бързо отключване</string>
<string-array name="clipboard_timeout_options">
<item>30 seconds</item>
<item>1 minute</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>15 minutes</item>
<item>30 minutes</item>
<item>1 hour</item>
<item>Никога</item>
</string-array>
</resources>

View File

@@ -67,7 +67,7 @@
<string name="entry_is_available">està disponible</string>
<string name="not_possible_im_picker">No s\'ha pogut obrir el quadre de diàleg per seleccionar el mètode d\'entrada. Si us plau activi teclat manualment.</string>
<string name="please_activate_keyboard">Si us plau permeti el teclat Keepass2Android en la configuració del sistema.</string>
<string name="creating_db_key">Creant clau de base de dades&#8230;</string>
<string name="creating_db_key">Creant clau de base de dades</string>
<string name="current_group">Grup actual</string>
<string name="current_group_root">Grup actual: Arrel</string>
<string name="database">Base de dades</string>
@@ -162,7 +162,7 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="length">Longitud</string>
<string name="list_size_title">Mida de la llista de grups</string>
<string name="list_size_summary">Mida del text a la llista de grups</string>
<string name="loading_database">Carregant base de dades&#8230;</string>
<string name="loading_database">Carregant base de dades</string>
<string name="lowercase">Minúscules</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Emmascara contrasenya</string>
@@ -204,9 +204,9 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="pass_filename">Nom de base de dades KeePass</string>
<string name="password_title">Introdueix contrasenya de la base de dades</string>
<string name="master_key_type">Seleccioneu el tipus de clau mestra:</string>
<string name="progress_create">Creant nova base de dades&#8230;</string>
<string name="progress_create">Creant nova base de dades</string>
<string name="create_database">Crear base de dades</string>
<string name="progress_title">Treballant&#8230;</string>
<string name="progress_title">Treballant</string>
<string name="remember_keyfile_summary">Recorda la localització d\'arxius clau</string>
<string name="remember_keyfile_title">Guarda arxiu clau</string>
<string name="remove_from_filelist">Elimina</string>
@@ -221,8 +221,8 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="argon2parallelism">Paral·lelisme per a Argó 2</string>
<string name="database_name">Nom de la base de dades</string>
<string name="default_username">Nom d\'usuari per defecte per noves entrades</string>
<string name="saving_database">Guardant la base de dades&#8230;</string>
<string name="exporting_database">Exportant la base de dades&#8230;</string>
<string name="saving_database">Guardant la base de dades</string>
<string name="exporting_database">Exportant la base de dades</string>
<string name="export_database_successful">Base de dades exportada amb èxit!</string>
<string name="space">Espai</string>
<string name="search_label">Cerca</string>
@@ -329,7 +329,6 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="NoDonationReminder_title">No demanar mai donació</string>
<string name="NoDonationReminder_summary">Jo no li donaria un cèntim o ja he fet donació. No demanar donació, ni tan sols a l\'aniversari de l\'autor.</string>
<string name="UseOfflineCache_title">Posant en memòria cau la base de dades</string>
<string name="UseOfflineCache_summary">Manté una còpia de la base de dades remota en el directori de memòria cau de l\'aplicació. Això permet utilitzar bases de dades remotes fins i tot quan esteu fora de línia.</string>
<string name="CreateBackups_title">Còpia de seguretat local</string>
<string name="CreateBackups_summary">Crea una còpia local després de carregar correctament una base de dades.</string>
<string name="UpdatingBackup">Actualitzar la còpia de seguretat local...</string>
@@ -337,7 +336,6 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="AcceptAllServerCertificates_title">Certificats SSL</string>
<string name="AcceptAllServerCertificates_summary">Defineix el comportament quan fracassa validació de certificat. Nota: podeu instal·lar certificats en el dispositiu si fracassa la validació!</string>
<string name="ClearOfflineCache_title">Neteja la memòria cau?</string>
<string name="ClearOfflineCache_question">Se suprimiran tots els arxius de base de dades en memòria cau. Els canvis que heu realitzat mentre sou fora de línia i que encara no han estat sincronitzat es perdran! Voleu continuar?</string>
<string name="CheckForFileChangesOnSave_title">Comprovar per modificacions</string>
<string name="CheckForFileChangesOnSave_summary">Comprovar si l\'arxiu va ser modificat externament abans de desar els canvis.</string>
<string name="CheckForDuplicateUuids_title">Comprovar per duplicats de UUIDs</string>
@@ -371,7 +369,7 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="AskOverwriteBinary">Voleu sobreescriure el binari existent amb el mateix nom?</string>
<string name="AskOverwriteBinary_title">Voleu sobreescriure binari existent?</string>
<string name="AskOverwriteBinary_yes">Sobreescriure</string>
<string name="AskOverwriteBinary_no">Canvia el nom</string>
<string name="AskOverwriteBinary_no">Reanomena</string>
<string name="AttachFailed">No s\'ha pogut afegir el fitxer adjunt.</string>
<string name="RecycleBin">Paperera de reciclatge</string>
<string name="AskDeletePermanentlyEntry">Voleu suprimir permanentment aquesta entrada? Prem No per reciclar.</string>
@@ -388,49 +386,42 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="suggest_improvements">Suggerir o votar per millores</string>
<string name="rate_app">Valora aquesta app</string>
<string name="translate_app">Traduir KP2A</string>
<string name="AddingEntry">Afegir entrada&#8230;</string>
<string name="AddingGroup">Afegir grup&#8230;</string>
<string name="DeletingEntry">Suprimint l\'entrada&#8230;</string>
<string name="DeletingGroup">Suprimint grup&#8230;</string>
<string name="DeletingItems">Esborrant elements&#8230;</string>
<string name="SettingPassword">Fixar contrasenya&#8230;</string>
<string name="UndoingChanges">Desfer els canvis&#8230;</string>
<string name="TransformingKey">Transformant la clau mestra&#8230;</string>
<string name="DecodingDatabase">Descodificant la base de dades&#8230;</string>
<string name="ParsingDatabase">Anàlisi de base de dades&#8230;</string>
<string name="CheckingTargetFileForChanges">Comprovació fitxer de destinació per canvis&#8230;</string>
<string name="AddingEntry">Afegir entrada</string>
<string name="AddingGroup">Afegir grup</string>
<string name="DeletingEntry">Suprimint l\'entrada</string>
<string name="DeletingGroup">Suprimint grup</string>
<string name="DeletingItems">Esborrant elements</string>
<string name="SettingPassword">Fixar contrasenya</string>
<string name="UndoingChanges">Desfer els canvis</string>
<string name="TransformingKey">Transformant la clau mestra</string>
<string name="DecodingDatabase">Descodificant la base de dades</string>
<string name="ParsingDatabase">Anàlisi de base de dades</string>
<string name="CheckingTargetFileForChanges">Comprovació fitxer de destinació per canvis</string>
<string name="TitleSyncQuestion">Combina els canvis?</string>
<string name="MessageSyncQuestion">L\'arxiu de base de dades es va modificar externament. Voleu carregar i fusionar els canvis abans de desar? Seleccioneu No si voleu sobreescriure els canvis externs.</string>
<string name="SynchronizingDatabase">Fusionant canvis&#8230;</string>
<string name="SynchronizingDatabase">Fusionant canvis</string>
<string name="YesSynchronize">Sí, fusionar</string>
<string name="NoOverwrite">No, sobreescriure</string>
<string name="UseOfflineMode">Treballa fora de línia</string>
<string name="UseOnlineMode">Treball en línia</string>
<string name="UseOfflineMode_Info">Evitar qualsevol tràfic de xarxa mitjançant la còpia de la memòria cau local de l\'arxiu. Els canvis s\'emmagatzemen a la memòria cau local només i es només es pugen en canviar a mode en línia.</string>
<string name="InOfflineMode">Treballar fora de línia.</string>
<string name="SynchronizingCachedDatabase">Sincronitzar la base de dades en memòria cau&#8230;</string>
<string name="DownloadingRemoteFile">Descarregar fitxer remot&#8230;</string>
<string name="UploadingFile">Carregant arxiu&#8230;</string>
<string name="RestoringRemoteFile">Restaurant fitxer remot&#8230;</string>
<string name="UseOfflineMode">Treballar només en memòria cau interna</string>
<string name="UseOnlineMode">Sincronitza la còpia de la memòria cau amb l\'origen</string>
<string name="UseOfflineMode_Info">La base de dades es carrega de la memòria cau interna. Els canvis s\'emmagatzemen a la memòria cau interna i només es sincronitzaran quan es seleccioni Sincronitzar la còpia cau amb l\'origen.</string>
<string name="InOfflineMode">Treballant només a la memòria cau interna.</string>
<string name="SynchronizingCachedDatabase">Sincronitzar la base de dades en memòria cau</string>
<string name="UploadingFile">Desa el fitxer…</string>
<string name="RestoringRemoteFile">Restaurant el fitxer d\'origen…</string>
<string name="FilesInSync">Els arxius estan sincronitzats.</string>
<string name="SynchronizedDatabaseSuccessfully">Base de dades se sincronitzada amb èxit!</string>
<string name="CheckingDatabaseForChanges">Comprovació de la base de dades per canvis&#8230;</string>
<string name="CouldNotSaveToRemote">No s\'ha pogut desar a remot: %1$s. Torneu a desar o utilitzeu el menú sincronitza quan la connexió remota estigui disponible una altra vegada.</string>
<string name="CouldNotLoadFromRemote">No es pot obrir remot: %1$s. Carregat el fitxer de memòria cau local. Encara podeu fer canvis a la base de dades i sincronitzar-los més tard.</string>
<string name="UpdatedRemoteFileOnLoad">Actualitzat fitxer remot.</string>
<string name="NotifyOpenFromLocalDueToConflict">Obert arxiu local degut al conflicte amb els canvis en el fitxer remot. Fes servir menú de Sincronitzar per fusionar.</string>
<string name="LoadedFromRemoteInSync">Fitxer remot i memòria cau estan sincronitzats.</string>
<string name="UpdatedCachedFileOnLoad">Actualitzat la còpia de la memòria cau local de %1$s.</string>
<string name="CheckingDatabaseForChanges">Comprovació de la base de dades per canvis</string>
<string name="UpdatedRemoteFileOnLoad">Fitxer origen actualitzat.</string>
<string name="UpdatedCachedFileOnLoad">Actualitza la còpia de la memòria cau interna de %1$s.</string>
<string name="RemoteDatabaseUnchanged">No s\'han detectat canvis.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Actualitzada memòria cau del fitxer auxiliar OTP: Comptador remot era més alt.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Actualitzada memòria cau del fitxer auxiliar OTP: Comptador local era més alt.</string>
<string name="SynchronizingOtpAuxFile">S\'estan sincronitzant els fitxers auxiliars OTP&#8230;</string>
<string name="SynchronizingOtpAuxFile">S\'estan sincronitzant els fitxers auxiliars OTP</string>
<string name="database_file">l\'arxiu de base de dades</string>
<string name="otp_aux_file">Arxiu auxiliar OTP</string>
<string name="ErrorOcurred">Sha produït un error:</string>
<string name="DuplicateUuidsError">Base de dades és corrupte: identificadors duplicats trobats. (Vols guardar-ho amb Minikeepass?) Si us plau, torneu a importar a una nova base de dades amb Keepass 2 per a PC i seleccioneu \"Crea un nou ID\".</string>
<string name="DuplicateUuidsErrorAdditional">Podeu desactivar aquest missatge d\'error en Configuració/Configuració d\'aplicacions/Gestor d\'arxius/Comprova UUIDS duplicats. Tingueu en compte que vostè pot experimentar comportaments inesperats. Es recomana arreglar la base de dades.</string>
<string name="synchronize_database_menu">Sincronitzar la base de dades&#8230;</string>
<string name="synchronize_database_menu">Sincronitzar la base de dades</string>
<string name="CannotMoveGroupHere">No es pot desplaçar el grup a aquest grup.</string>
<string name="donate_question">Avui és Oktoberfest! Si t\'agrada Keepass2Android: no seria avui un bon dia per comprar-me una cervesa?</string>
<string name="donate_bday_question">10 de maig? És el meu aniversari! Si t\'agrada aquest aplicació, per què no enviar-me algunes salutacions d\'aniversari amb un petit regal? Això realment em faria feliç! :-)</string>
@@ -475,10 +466,9 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="hint_key_file">Trieu si voleu utilitzar un arxiu clau a més de la contrasenya mestra:</string>
<string name="use_key_file">Fes servir la clau</string>
<string name="error_adding_keyfile">Error en afegir l\'arxiu clau!</string>
<string name="init_otp">Càrrega arxiu OTP auxiliar&#8230;</string>
<string name="init_otp">Càrrega arxiu OTP auxiliar</string>
<string name="otp_explanation">Introduïu la següent Contrasenya-d\'un-sol-us (One-time-passwords OTPs). Llisca la teva Yubikey NEO al darrere el seu dispositiu per entrar mitjançant NFC.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">No puc trobar un aplicació que pugui manegar el desafiament. Si us plau instal·la Yubichallenge del Google Play.</string>
<string name="CouldntLoadOtpAuxFile">No s\'ha pogut carregar el fitxer OTP auxiliar!</string>
<string name="CouldntLoadOtpAuxFile_Hint">Si us plau, utilitzeu el connector OtpKeyProv de KeePass 2. x (PC) per configurar la base de dades per usar amb OTPs!</string>
<string name="otp_discarded_because_no_db">Seleccioneu primer de base de dades. OTP es descarta per motius de seguretat.</string>
@@ -489,7 +479,9 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="CouldntParseOtpSecret">Error passant OTP secret!</string>
<string name="OtpKeyError">No ha pogut crear la clau OTP! Assegureu-vos que ha introduït els OTPs correctes.</string>
<string name="ErrorUpdatingOtpAuxFile">Error actualitzant fitxer OTP auxiliar!</string>
<string name="SavingOtpAuxFile">Salvant arxiu OTP auxiliar&#8230;</string>
<string name="SavingOtpAuxFile">Salvant arxiu OTP auxiliar</string>
<string name="PleaseInstallApp">Si us plau instal·la %1$s des de Google Play.</string>
<string name="AppOutdated">%1$s ja no és compatible.</string>
<string name="bad_resp">La resposta de desafiament és incorrecte.</string>
<string name="CouldntLoadChalAuxFile">No s\'ha pogut carregar el fitxer de repte auxiliar!</string>
<string name="CouldntLoadChalAuxFile_Hint">Utilitzeu el connector KeeChallenge de KeePass 2. x (PC) per configurar la base de dades per al seu ús amb repte-resposta!</string>
@@ -503,7 +495,7 @@ Això emmagatzemarà la contrasenya mestra d\'aquest
<string name="DebugLog_title">Fitxer de registre d\'ús</string>
<string name="DebugLog_summary">Escriure sortida de la app a un arxiu de registre local</string>
<string name="DebugLog_send">Envia els registres de depuració...</string>
<string name="loading">Carregant&#8230;</string>
<string name="loading">Carregant</string>
<string name="plugins">Connectors</string>
<string name="plugin_packagename">Nom del paquet:</string>
<string name="plugin_description">Descripció (no verificat):</string>
@@ -591,7 +583,7 @@ Arxiu està corrupte. \n
• si encara pots obrir l\'arxiu en el seu PC, contacteu amb suport. Podria intentar guardar-lo amb diferents configuracions (p. ex. descomprimit) en el PC i provar a obrir-lo de nou en Keepass2Android. </string>
<string name="DbUnlockedChannel_name">Base de dades desbloquejada</string>
<string name="DbUnlockedChannel_desc">Notificació sobre la base de dades que s\'està desbloquejant</string>
<string name="DbQuicklockedChannel_name">DesbloqueigRàpid</string>
<string name="DbQuicklockedChannel_name">Desbloqueig ràpid</string>
<string name="DbQuicklockedChannel_desc">Notificació sobre la base de dades bloquejada amb DesbloqueigRàpid</string>
<string name="EntryChannel_name">Notificacions de les entrades</string>
<string name="EntryChannel_desc">Notificació per simplificar l\'accés a l\'entrada seleccionada actualment.</string>
@@ -909,6 +901,7 @@ Revisió inicial per al públic
<item>Contrasenya + OTP secret (mode de recuperació)</item>
<item>Contrasenya + repte-resposta</item>
<item>Contrasenya + resposta repte secret (mode de recuperació)</item>
<item>Contrasenya + Repte-Resposta per Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Ignora els errors de validació de certificat</item>
@@ -923,6 +916,7 @@ Revisió inicial per al públic
<string name="show_autofill_help">Mostra l\'ajuda de l\'emplenament automàtic</string>
<string name="autofill_sign_in_prompt">Omplir amb Keepass2Android</string>
<string name="invalid_link_association">No es pot associar amb el domini web %1$s amb l\'app %2$s</string>
<string name="enable_fingerprint_hint">Keepass2Android ha detectat disponibilitat d\'ús d\'empremtes dactilars. Voleu permetre l\'ús de l\'empremta per obrir aquesta base de dades?</string>
<string name="understand">Ho entenc</string>
<string name="dont_show_again">No mostrar de nou</string>
<string name="masterkey_infotext_head">Recordes la teva contrasenya mestra?</string>

View File

@@ -67,7 +67,7 @@
<string name="entry_is_available">je k dispozici</string>
<string name="not_possible_im_picker">Nepodařilo se otevřít dialog pro výběr metody zadávání dat. Aktivujte klávesnici ručně.</string>
<string name="please_activate_keyboard">Prosím, povolte klávesnici Keepass2Android v nastavení systému.</string>
<string name="creating_db_key">Vytvářím klíč k databázi&#8230;</string>
<string name="creating_db_key">Vytvářím klíč k databázi</string>
<string name="current_group">Aktuální skupina</string>
<string name="current_group_root">Aktuální skupina: Kořen</string>
<string name="database">Databáze</string>
@@ -162,7 +162,7 @@
<string name="length">Délka</string>
<string name="list_size_title">Velikost seznamu skupin</string>
<string name="list_size_summary">Velikost textu v seznamu skupin</string>
<string name="loading_database">Načítám databázi&#8230;</string>
<string name="loading_database">Načítám databázi</string>
<string name="lowercase">Malá písmena</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Skrýt heslo</string>
@@ -204,13 +204,13 @@
<string name="pass_filename">Název souboru KeePass databáze</string>
<string name="password_title">Zadejte heslo do databáze</string>
<string name="master_key_type">Vyberte typ hlavního klíče:</string>
<string name="progress_create">Vytvářím novou databázi&#8230;</string>
<string name="progress_create">Vytvářím novou databázi</string>
<string name="create_database">Vytvořit databázi</string>
<string name="progress_title">Pracuji&#8230;</string>
<string name="progress_title">Pracuji</string>
<string name="remember_keyfile_summary">Pamatovat si umístění klíčových souborů</string>
<string name="remember_keyfile_title">Uložit klíčový soubor</string>
<string name="remove_from_filelist">Odstranit</string>
<string name="edit">Upravit</string>
<string name="edit">Změnit</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">Kořen</string>
<string name="KeyDerivFunc">Funkce pro odvození klíče</string>
@@ -221,8 +221,8 @@
<string name="argon2parallelism">Paralelismus pro Argon 2</string>
<string name="database_name">Jméno databáze</string>
<string name="default_username">Výchozí uživatelské jméno pro nové položky</string>
<string name="saving_database">Ukládám databázi&#8230;</string>
<string name="exporting_database">Exportování databáze&#8230;</string>
<string name="saving_database">Ukládám databázi</string>
<string name="exporting_database">Exportování databáze</string>
<string name="export_database_successful">Databáze byla úspěšně exportována!</string>
<string name="space">Mezera</string>
<string name="search_label">Hledat</string>
@@ -329,7 +329,7 @@
<string name="NoDonationReminder_title">Nikdy se neptat na darování</string>
<string name="NoDonationReminder_summary">Nedám ti ani korunu, případně jsem už jsem daroval. Neptej se na darování, ani v den autorových narozenin.</string>
<string name="UseOfflineCache_title">Ukládání databáze do mezipaměti</string>
<string name="UseOfflineCache_summary">Ukládat kopií vzdálených databázových souborů v adresáři aplikace. Toto umožňuje používat vzdálené databáze i v offline režimu.</string>
<string name="UseOfflineCache_summary">Uchovat kopii databázových souborů v dočasném úložišti aplikace. To umožňuje používat databáze, i když databázový soubor není dostupný.</string>
<string name="CreateBackups_title">Místní zálohy</string>
<string name="CreateBackups_summary">Vytvoř místní zálohu po úspěšném načtení databáze.</string>
<string name="UpdatingBackup">Aktualizuji místní zálohu...</string>
@@ -337,7 +337,7 @@
<string name="AcceptAllServerCertificates_title">SSL certifikáty</string>
<string name="AcceptAllServerCertificates_summary">Definujte chování při neúspěšném ověření certifikátu. Poznámka: pokud ověření selže, můžete nainstalovat certifikáty do vašeho zařízení.</string>
<string name="ClearOfflineCache_title">Vyčistit mezipaměť?</string>
<string name="ClearOfflineCache_question">Tímto odstraníte všechny soubory v mezipaměti. Veškeré změny, které jste provedli v době bez internetového připojení a nebyly dosud synchronizovány, budou ztraceny! Chcete pokračovat?</string>
<string name="ClearOfflineCache_question">Tato akce odstraní všechny databázové soubory v dočasné paměti aplikace. Veškeré změny, které jste provedli v době bez internetového připojení a nebyly dosud synchronizovány, budou ztraceny! Chcete pokračovat?</string>
<string name="CheckForFileChangesOnSave_title">Kontrola změn</string>
<string name="CheckForFileChangesOnSave_summary">Před uložením zkontrolovat, zda byl soubor změněn na jiném zařízení.</string>
<string name="CheckForDuplicateUuids_title">Kontrolovat duplikátní UUID</string>
@@ -388,49 +388,49 @@
<string name="suggest_improvements">Navrhnout nebo hlasovat pro vylepšení</string>
<string name="rate_app">Ohodnoťte tuto aplikaci</string>
<string name="translate_app">Přeložit KP2A</string>
<string name="AddingEntry">Přidávám položku&#8230;</string>
<string name="AddingGroup">Přidávám skupinu&#8230;</string>
<string name="DeletingEntry">Mažu položku&#8230;</string>
<string name="DeletingGroup">Mažu skupinu&#8230;</string>
<string name="DeletingItems">Mazání elementů&#8230;</string>
<string name="SettingPassword">Nastavuji heslo&#8230;</string>
<string name="UndoingChanges">Vracím změny&#8230;</string>
<string name="TransformingKey">Transformace hlavního klíče&#8230;</string>
<string name="DecodingDatabase">Dekóduji databázi&#8230;</string>
<string name="ParsingDatabase">Analýza databáze&#8230;</string>
<string name="CheckingTargetFileForChanges">Kontroluji změny v cílovém souboru&#8230;</string>
<string name="AddingEntry">Přidávám položku</string>
<string name="AddingGroup">Přidávám skupinu</string>
<string name="DeletingEntry">Mažu položku</string>
<string name="DeletingGroup">Mažu skupinu</string>
<string name="DeletingItems">Mazání elementů</string>
<string name="SettingPassword">Nastavuji heslo</string>
<string name="UndoingChanges">Vracím změny</string>
<string name="TransformingKey">Transformace hlavního klíče</string>
<string name="DecodingDatabase">Dekóduji databázi</string>
<string name="ParsingDatabase">Analýza databáze</string>
<string name="CheckingTargetFileForChanges">Kontroluji změny v cílovém souboru</string>
<string name="TitleSyncQuestion">Sloučit změny?</string>
<string name="MessageSyncQuestion">Databáze byla změněna v jiném zařízení. Chcete před uložením nahrát a sloučit změny? Vyberte možnost Ne, pokud chcete přepsat změny provedené v jiném zařízení.</string>
<string name="SynchronizingDatabase">Slučování změn&#8230;</string>
<string name="SynchronizingDatabase">Slučování změn</string>
<string name="YesSynchronize">Ano, sloučit</string>
<string name="NoOverwrite">Ne, přepsat</string>
<string name="UseOfflineMode">Pracovat offline</string>
<string name="UseOnlineMode">Pracovat online</string>
<string name="UseOfflineMode_Info">Vyhněte se jakémukoliv síťovému provozu při používání lokální kopie souboru v místní mezipaměti. Změny se ukládají pouze do lokální mezipaměti a budou nahrány při přepnutí zpět do režimu online.</string>
<string name="InOfflineMode">Práce v režimu offline.</string>
<string name="SynchronizingCachedDatabase">Synchronizuji databázi v mezipaměti&#8230;</string>
<string name="DownloadingRemoteFile">Stahuji vzdálený soubor&#8230;</string>
<string name="UploadingFile">Nahrávám soubor&#8230;</string>
<string name="RestoringRemoteFile">Obnovuji vzdálený soubor&#8230;</string>
<string name="UseOfflineMode">Pracovat pouze v dočasné paměti aplikace</string>
<string name="UseOnlineMode">Synchronizovat kopii databáze v dočasné paměti aplikace se zdrojovou databázi</string>
<string name="UseOfflineMode_Info">Databáze je načtena z vnitřní dočasné paměti. Změny jsou ukládány pouze v dočasné paměti aplikace a budou synchronizovány pouze při výběru Synchronizovat dočasnou kopii se zdrojovou databázi.</string>
<string name="InOfflineMode">Pracovat pouze v dočasné paměti aplikace.</string>
<string name="SynchronizingCachedDatabase">Synchronizuji databázi v mezipaměti</string>
<string name="DownloadingRemoteFile">Načítání zdrojového souboru…</string>
<string name="UploadingFile">Uložit soubor…</string>
<string name="RestoringRemoteFile">Probíhá obnovení zdrojového souboru…</string>
<string name="FilesInSync">Soubory jsou synchronizovány.</string>
<string name="SynchronizedDatabaseSuccessfully">Databáze úspěšně synchronizována!</string>
<string name="CheckingDatabaseForChanges">Kontrola změn v databázi&#8230;</string>
<string name="CouldNotSaveToRemote">Nelze uložit na vzdálený: %1$s. Uložte znovu nebo použijte nabídku synchronizovat, až bude vzdálené připojení opět k dispozici.</string>
<string name="CouldNotLoadFromRemote">Nelze otevřít ze vzdáleného umístění: %1$s. Načítám soubor z místní mezipaměti. Stále můžete provádět změny v databázi a synchronizovat později.</string>
<string name="UpdatedRemoteFileOnLoad">Vzdálený soubor byl aktualizován.</string>
<string name="NotifyOpenFromLocalDueToConflict">Otevřen místní soubor kvůli kolizi se změnami ve vzdáleném souboru. Proveďte sloučení pomocí nabídky synchronizace.</string>
<string name="LoadedFromRemoteInSync">Vzdálený soubor a soubor v místní mezipaměti jsou synchronizovány.</string>
<string name="UpdatedCachedFileOnLoad">Aktualizována kopie v místní mezipaměti %1$s.</string>
<string name="CheckingDatabaseForChanges">Kontrola změn v databázi</string>
<string name="CouldNotSaveToRemote">Nelze uložit do cílového souboru: %1$s. Uložte znovu nebo použijte nabídku Synchronizovat, až bude vzdálené připojení opět k dispozici.</string>
<string name="CouldNotLoadFromRemote">Nelze získat přístup k zdrojovému souboru: %1$s. Byl načten soubor z dočasné paměti aplikace, stále můžete provádět změny v databázi a později je synchronizovat.</string>
<string name="UpdatedRemoteFileOnLoad">Aktualizovaný zdrojový soubor.</string>
<string name="NotifyOpenFromLocalDueToConflict">Otevřen místní soubor kvůli kolizi se změnami ve vzdáleném souboru. Proveďte sloučení změn pomocí nabídky Synchronizace.</string>
<string name="LoadedFromRemoteInSync">Zdrojový soubor a soubor v v dočasné paměti aplikace jsou synchronizovány.</string>
<string name="UpdatedCachedFileOnLoad">Aktualizována kopie v dočasné paměti aplikace %1$s.</string>
<string name="RemoteDatabaseUnchanged">Nebyly zjištěny žádné změny.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Aktualizován pomocný OTP soubor v mezipaměti: vzdálený čítač byl vyšší.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Aktualizován vzdálený pomocný OTP soubor: místní čítač byl vyšší.</string>
<string name="SynchronizingOtpAuxFile">Synchronizace pomocného OTP souboru&#8230;</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Aktualizován dočasný pomocný OTP soubor: zdrojový čítač l vyšší hodnotu.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Aktualizován zdrojový pomocný OTP soubor: lokální dočasný čítač l vyšší hodnotu.</string>
<string name="SynchronizingOtpAuxFile">Synchronizace pomocného OTP souboru</string>
<string name="database_file">databázový soubor</string>
<string name="otp_aux_file">Pomocný OTP soubor</string>
<string name="ErrorOcurred">Došlo k chybě:</string>
<string name="DuplicateUuidsError">Databáze je poškozena: duplicitní ID nalezeny. (Provedli jste uložení pomocí Minikeepass?) Importujte databázi do nového souboru pomocí Keepass 2 na PC a zvolte možnost \'Vytvořit nové ID\' \".</string>
<string name="DuplicateUuidsErrorAdditional">Tuto chybovou zprávu můžete vypnout v Nastavení/Aplikace/Zpracování souborů/Kontrolovat duplikátní UUID. Při tomto můžete zaznamenat neočekávané chování aplikace. Je doporučeno provést opravu databáze.</string>
<string name="synchronize_database_menu">Synchronizovat databázi&#8230;</string>
<string name="synchronize_database_menu">Synchronizovat databázi</string>
<string name="CannotMoveGroupHere">Skupinu nelze přesunout do této skupiny.</string>
<string name="donate_question">Dnes je Oktoberfest! Pokud se vám líbí Keepass2Android, nebyl by dnes dobrý den koupit mi pivo?</string>
<string name="donate_bday_question">10. května? To jsou mé narozeniny! Pokud se vám líbí tato aplikace, proč mi nepošlete nějaké blahopřání k narozeninám a malý dárek? Opravdu by mi to udělalo radost! :-)</string>
@@ -475,21 +475,23 @@
<string name="hint_key_file">Zvolte, pokud chcete použít klíčový soubor spolu s hlavním heslem:</string>
<string name="use_key_file">Použít klíčový soubor</string>
<string name="error_adding_keyfile">Chyba při přidávání klíčového souboru!</string>
<string name="init_otp">Otevřít pomocný soubor OTP&#8230;</string>
<string name="init_otp">Otevřít pomocný soubor OTP</string>
<string name="otp_explanation">Zadejte další jednorázová hesla (OTP). Přejeďte po zadní straně vašeho Yubikey NEO zařízení pro vložení pomocí NFC.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">Nelze najít aplikaci, která dokáže zpracovat tuto výzvu. Prosím, nainstalujte Yubichallenge z Google Play.</string>
<string name="CouldntLoadOtpAuxFile">Nelze načíst pomocný soubor OTP!</string>
<string name="CouldntLoadOtpAuxFile_Hint">Použijte OtpKeyProv plugin v KeePass 2.x (PC) pro konfiguraci databáze pro použití s OTP!</string>
<string name="otp_discarded_because_no_db">Prosím nejprve vyberte databázi. OTP je z bezpečnostních důvodů vyřazen.</string>
<string name="otp_discarded_no_space">OTP vstup vyřazen: všechna jednorázová hesla již byla použita!</string>
<string name="otp_discarded_because_db_open">Nejprve zavřete databázi. OTP je vyřazen.</string>
<string name="otps_pending">(Jedno nebo více OTP je již k dispozici)</string>
<string name="otpsecret_hint">OTP heslo (např. 01 23 ab cd&#8230;)</string>
<string name="otpsecret_hint">OTP heslo (např. 01 23 ab cd)</string>
<string name="CouldntParseOtpSecret">Chyba při analýze OTP hesla!</string>
<string name="OtpKeyError">Nepodařilo se vytvořit OTP klíč! Zkontrolujte, zda že jste zadali správné OTP.</string>
<string name="ErrorUpdatingOtpAuxFile">Chyba při aktualizaci pomocného souboru OTP!</string>
<string name="SavingOtpAuxFile">Ukládám pomocný soubor OTP&#8230;</string>
<string name="SavingOtpAuxFile">Ukládám pomocný soubor OTP</string>
<string name="NoChallengeApp">Nepodařilo se najít aplikaci pro obsloužení výzvy.</string>
<string name="PleaseInstallApp">Nainstalujte si prosím %1$s z Google Play.</string>
<string name="AppOutdated">%1$s již není podporován.</string>
<string name="bad_resp">Odpověď na výzvu není správná.</string>
<string name="CouldntLoadChalAuxFile">Nelze načíst pomocný soubor výzvy!</string>
<string name="CouldntLoadChalAuxFile_Hint">Použijte zásuvný modul KeeChallenge v KeePass 2.x (PC) pro konfiguraci databáze k používání s odpověďmi na výzvy!</string>
@@ -503,7 +505,7 @@
<string name="DebugLog_title">Použít protokolovací soubor</string>
<string name="DebugLog_summary">Ulož výstup aplikace do lokálního souboru</string>
<string name="DebugLog_send">Pošli soubor s ladícími informacemi...</string>
<string name="loading">Probíhá načítání&#8230;</string>
<string name="loading">Nahrávám…</string>
<string name="plugins">Zásuvné moduly</string>
<string name="plugin_packagename">Název balíčku:</string>
<string name="plugin_description">Popis (není ověřen):</string>
@@ -547,7 +549,7 @@
<string name="DefaultTemplate">Standardní položka</string>
<string name="TemplateGroupName">Šablony</string>
<string name="TemplateTitle_IdCard">Identifikační karta</string>
<string name="TemplateField_IdCard_Name">Jméno</string>
<string name="TemplateField_IdCard_Name">Název</string>
<string name="TemplateField_IdCard_PlaceOfIssue">Místo vydání</string>
<string name="TemplateField_IdCard_IssueDate">Datum vydání</string>
<string name="TemplateTitle_EMail">E-Mail</string>
@@ -605,6 +607,14 @@
<string name="ErrorReportAsk">Dotázat se po chybě</string>
<string name="ErrorReportPrefTitle">Odeslat zprávu o chybách</string>
<string name="ShowKeyboardDuringFingerprintAuth">Zobrazit softwarovou klávesnici pro zadávání hesla pokud je čtečka otisků prstů aktivní.</string>
<string name="ChangeLog_1_06">
Verze 1.06\n
* Změna na ykDroid místo YubiChallenge pro Yubikey Výzva-Odpověď.\n
* Implementována podpora pro Výzva-Odpověď typu KeepassXC. Poznámka: Databáze musí být ve formátu KDBX4!\n
* Odmítání načtení souborů z Google Drive přesunutých do koše\n
* Změna implementace TLS pro FTPS, přidán workaround pro JSch bug pro servery podporující gssapi-with-mic\n
* Opravy chyb\n
</string>
<string name="ChangeLog_1_05">
Verze 1.05\n
* Použití kanálů upozornění pro Android 8. Toto umožní nastavení skrz nastavení systému.\n
@@ -902,6 +912,7 @@ První veřejné vydání
<item>Heslo + OTP heslo (režim obnovení)</item>
<item>Heslo + Odpověď výzvy</item>
<item>Heslo + Odpověď výzvy (režim obnovení)</item>
<item>Heslo + Výzva-Odpověď pro Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Ignorovat neúspěšné ověření certifikátu</item>
@@ -916,6 +927,7 @@ První veřejné vydání
<string name="show_autofill_help">Ukázat nápovědu automatického doplňování</string>
<string name="autofill_sign_in_prompt">Doplnit s Keepass2Android</string>
<string name="invalid_link_association">Nedaří se spojit doménu %1$s s aplikací %2$s</string>
<string name="enable_fingerprint_hint">Keepass2Android nalezl hardwarovou čtečku otisků prstů. Chcete pro tuto databázi povolit odemykání pomocí otisku prstu?</string>
<string name="understand">Rozumím</string>
<string name="dont_show_again">Vícekrát neukazuj</string>
<string name="masterkey_infotext_head">Pamatujete si Vaše hlavní heslo?</string>

View File

@@ -67,7 +67,7 @@
<string name="entry_is_available">er tilgængelig</string>
<string name="not_possible_im_picker">Kunne ikke åbne dialogboksen for valg af inputmetode. Aktiver venligst tastaturet manuelt.</string>
<string name="please_activate_keyboard">Aktiver venligst Keepass2Android-tastaturet i systemindstillingerne.</string>
<string name="creating_db_key">Opretter databasenøgle&#8230;</string>
<string name="creating_db_key">Opretter databasenøgle</string>
<string name="current_group">Aktuel gruppe</string>
<string name="current_group_root">Aktuel gruppe: Roden</string>
<string name="database">Database</string>
@@ -159,7 +159,7 @@ Gå venligst til systemindstillinger først.</string>
<string name="length">Længde</string>
<string name="list_size_title">Gruppeliste størrelse</string>
<string name="list_size_summary">Tekststørrelse i gruppelisten</string>
<string name="loading_database">Indlæser database&#8230;</string>
<string name="loading_database">Indlæser database</string>
<string name="lowercase">Små bogstaver</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Skjul adgangskode</string>
@@ -201,13 +201,13 @@ Gå venligst til systemindstillinger først.</string>
<string name="pass_filename">KeePass database filnavn</string>
<string name="password_title">Angiv database adgangskode</string>
<string name="master_key_type">Vælg type af hovednøgle:</string>
<string name="progress_create">Opretter ny database&#8230;</string>
<string name="progress_create">Opretter ny database</string>
<string name="create_database">Opret database</string>
<string name="progress_title">Arbejder&#8230;</string>
<string name="progress_title">Arbejder</string>
<string name="remember_keyfile_summary">Husker placeringen af nøglefiler</string>
<string name="remember_keyfile_title">Gem nøglefil</string>
<string name="remove_from_filelist">Fjern</string>
<string name="edit">Ret</string>
<string name="edit">Rediger</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">Rod</string>
<string name="KeyDerivFunc">Nøgleafledningsfunktion</string>
@@ -218,8 +218,8 @@ Gå venligst til systemindstillinger først.</string>
<string name="argon2parallelism">Parallelisme for Argon 2</string>
<string name="database_name">Databasenavn</string>
<string name="default_username">Standardbrugernavn for nye poster</string>
<string name="saving_database">Gemmer database&#8230;</string>
<string name="exporting_database">Eksporterer database&#8230;</string>
<string name="saving_database">Gemmer database</string>
<string name="exporting_database">Eksporterer database</string>
<string name="export_database_successful">Database eksporteret med succes!</string>
<string name="space">Mellemrum</string>
<string name="search_label">Søg</string>
@@ -326,7 +326,6 @@ Gå venligst til systemindstillinger først.</string>
<string name="NoDonationReminder_title">Bed aldrig nogensinde om at donere</string>
<string name="NoDonationReminder_summary">Jeg vil ikke give dem en krone; eller jeg har allerede doneret. Bed ikke om en donation, ikke engang på skribentens fødselsdag.</string>
<string name="UseOfflineCache_title">Databasemellemlager</string>
<string name="UseOfflineCache_summary">Gem en kopi af fjerndatabasefiler i programmets mellemlager. Dette gør det muligt at bruge eksterne databaser selv når de er offline.</string>
<string name="CreateBackups_title">Lokale sikkerhedskopier</string>
<string name="CreateBackups_summary">Opret en lokal sikkerhedskopi, efter at du vellykket har hentet en database.</string>
<string name="UpdatingBackup">Opdaterer lokal sikkerhedskopi…</string>
@@ -334,7 +333,6 @@ Gå venligst til systemindstillinger først.</string>
<string name="AcceptAllServerCertificates_title">SSL-certifikater</string>
<string name="AcceptAllServerCertificates_summary">Definer adfærden, når certifikatvalidering mislykkes. Bemærk: Du kan installere certifikater på din enhed, hvis validering mislykkes!</string>
<string name="ClearOfflineCache_title">Slet samling?</string>
<string name="ClearOfflineCache_question">Dette vil slette alle mellemlagrede databasefiler. Eventuelle ændringer, du har foretaget mens de er offline, som endnu ikke er synkroniseret, vil gå tabt! Vil du fortsætte?</string>
<string name="CheckForFileChangesOnSave_title">Kontroller for ændringer</string>
<string name="CheckForFileChangesOnSave_summary">Kontroller, om filen er blevet ændret eksternt, før du gemmer ændringer.</string>
<string name="CheckForDuplicateUuids_title">Kontroller for UUID-dubletter</string>
@@ -368,7 +366,7 @@ Gå venligst til systemindstillinger først.</string>
<string name="AskOverwriteBinary">Vil du overskrive det eksisterende binære, med samme navn?</string>
<string name="AskOverwriteBinary_title">Overskriv eksisterende binære?</string>
<string name="AskOverwriteBinary_yes">Overskriv</string>
<string name="AskOverwriteBinary_no">Navneskifte</string>
<string name="AskOverwriteBinary_no">Omdøb</string>
<string name="AttachFailed">Den vedhæftede fil kunne ikke indlæses.</string>
<string name="RecycleBin">Papirkurv</string>
<string name="AskDeletePermanentlyEntry">Vil du slette denne post permanent? Vælg Nej for at bruge papirkurven.</string>
@@ -385,49 +383,34 @@ Gå venligst til systemindstillinger først.</string>
<string name="suggest_improvements">Forslå eller stem for forbedringer</string>
<string name="rate_app">Bedøm denne app</string>
<string name="translate_app">Oversæt KP2A</string>
<string name="AddingEntry">Tilføj post&#8230;</string>
<string name="AddingGroup">Tilføj gruppe&#8230;</string>
<string name="DeletingEntry">Sletter emne&#8230;</string>
<string name="DeletingGroup">Sletter gruppe&#8230;</string>
<string name="DeletingItems">Sletter elementer&#8230;</string>
<string name="SettingPassword">Adgangskode for indstillinger&#8230;</string>
<string name="UndoingChanges">Fortryd ændringer&#8230;</string>
<string name="TransformingKey">Transformering af hovednøgle&#8230;</string>
<string name="DecodingDatabase">Afkodning af database&#8230;</string>
<string name="ParsingDatabase">Fortolker database&#8230;</string>
<string name="CheckingTargetFileForChanges">Kontrollerer målfil for ændringer&#8230;</string>
<string name="AddingEntry">Tilføj post</string>
<string name="AddingGroup">Tilføj gruppe</string>
<string name="DeletingEntry">Sletter emne</string>
<string name="DeletingGroup">Sletter gruppe</string>
<string name="DeletingItems">Sletter elementer</string>
<string name="SettingPassword">Adgangskode for indstillinger</string>
<string name="UndoingChanges">Fortryd ændringer</string>
<string name="TransformingKey">Transformering af hovednøgle</string>
<string name="DecodingDatabase">Afkodning af database</string>
<string name="ParsingDatabase">Fortolker database</string>
<string name="CheckingTargetFileForChanges">Kontrollerer målfil for ændringer</string>
<string name="TitleSyncQuestion">Flette ændringer?</string>
<string name="MessageSyncQuestion">Databasefilen blev ændret eksternt. Vil du indlæse og flette ændringerne før du gemmer? Vælg Nej, hvis du vil overskrive de eksterne ændringer.</string>
<string name="SynchronizingDatabase">Flet ændringer&#8230;</string>
<string name="SynchronizingDatabase">Flet ændringer</string>
<string name="YesSynchronize">Ja, flet</string>
<string name="NoOverwrite">Nej, overskriv</string>
<string name="UseOfflineMode">Arbejd offline</string>
<string name="UseOnlineMode">Arbejd online</string>
<string name="UseOfflineMode_Info">Undgå al netværkstrafik ved at bruge den lokale kopi af filen. Ændringer gemmes kun i det lokale mellemlager og vil kun blive uploadet, når du skifter tilbage til online-tilstand.</string>
<string name="InOfflineMode">Arbejder offline.</string>
<string name="SynchronizingCachedDatabase">Synkroniserer cache kopien af databasen&#8230;</string>
<string name="DownloadingRemoteFile">Henter fil fra netværket&#8230;</string>
<string name="UploadingFile">Uploader fil&#8230;</string>
<string name="RestoringRemoteFile">Genopretter fil fra netværket&#8230;</string>
<string name="SynchronizingCachedDatabase">Synkroniserer cache kopien af databasen…</string>
<string name="FilesInSync">Filerne er ajour.</string>
<string name="SynchronizedDatabaseSuccessfully">Succesfuld synkronisering af database!</string>
<string name="CheckingDatabaseForChanges">Kontrollerer databasen for ændringer&#8230;</string>
<string name="CouldNotSaveToRemote">Kunne ikke gemme filen på netværket: %1$s. Gem igen eller brug menuen Synkroniser når netværket er tilgængeligt igen.</string>
<string name="CouldNotLoadFromRemote">Kunne ikke åbne filen fra netværket: %1$s. Hentede filen fra den lokale cache. Du kan stadigvæk foretage ændringer i databasen og synkronisere den senere.</string>
<string name="UpdatedRemoteFileOnLoad">Opdaterede filen fra netværket.</string>
<string name="NotifyOpenFromLocalDueToConflict">Åbnede den lokale fil på grund af modstridende ændringer i filen på netværket. Brug menupunktet Synkroniser til at sammenflette.</string>
<string name="LoadedFromRemoteInSync">Filen på netværket og cachen er ajour.</string>
<string name="UpdatedCachedFileOnLoad">Opdaterede den lokale cache kopi af %1$s.</string>
<string name="CheckingDatabaseForChanges">Kontrollerer databasen for ændringer</string>
<string name="RemoteDatabaseUnchanged">Der blev ikke fundet nogen ændringer.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Opdaterede OTP hjælp filen: Filen fra netværkets tæller var større.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Opdaterede OTP hjælp filen fra netværket: Den lokale tæller var større.</string>
<string name="SynchronizingOtpAuxFile">Synkroniserer OTP hjælp filen&#8230;</string>
<string name="SynchronizingOtpAuxFile">Synkroniserer OTP hjælp filen</string>
<string name="database_file">databasefilen</string>
<string name="otp_aux_file">OTP hjælp fil</string>
<string name="ErrorOcurred">Der opstod en fejl:</string>
<string name="DuplicateUuidsError">Databasen er beskadiget: Dubletter af nøgleværdier fundet. (Har du gemt med Minikeepass?) Importer venligst til en ny database igen med Keepass 2 til PC og vælg \'Opret nye ID\'er\'.</string>
<string name="DuplicateUuidsErrorAdditional">Du kan deaktivere denne fejlmeddelelse i Indstillinger/Programindstillinger/Filhåndtering/Kontroller for UUID-dubletter. Vær opmærksom på at programmet kan opføre sig uventet. Det anbefales at reparere databasen.</string>
<string name="synchronize_database_menu">Synkroniserer databasen&#8230;</string>
<string name="synchronize_database_menu">Synkroniserer databasen</string>
<string name="CannotMoveGroupHere">Kan ikke flytte gruppen til denne gruppe.</string>
<string name="donate_question">I dag er det Oktoberfest! Ville i dag ikke være en god dag at købe mig en øl, hvis du kan lide Keepass2Android?</string>
<string name="donate_bday_question">Den 10. maj? Det er min fødselsdag! Hvad med at sende mig nogle fødselsdagshilsener sammen med en lille fødselsdagsgave, hvis du kan lide dette program? Det ville virkelig gøre mig glad! :-)</string>
@@ -472,21 +455,22 @@ Gå venligst til systemindstillinger først.</string>
<string name="hint_key_file">Vælg, hvis du vil bruge en nøglefil ud over dit hovedadgangskode:</string>
<string name="use_key_file">Brug nøgle fil</string>
<string name="error_adding_keyfile">Fejl under tilføjelse af nøglefilen!</string>
<string name="init_otp">Indlæs OTP-hjælpefil&#8230;</string>
<string name="init_otp">Indlæs OTP-hjælpefil</string>
<string name="otp_explanation">Indtast de næste En-Gangs-Adgangskoder (OTP\'er). Stryg din Yubikey NEO på bagsiden af din enhed for at indtaste via NFC.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">Kunne ikke finde en app, der kan klare udfordringen. Installer Yubichallenge fra Google Play.</string>
<string name="CouldntLoadOtpAuxFile">Kunne ikke indlæse OTP-hjælpefil!</string>
<string name="CouldntLoadOtpAuxFile_Hint">Brug venligst OtpKeyProv plugin\'en i KeePass 2.x (PC) til at konfigurere din database til brug med OTP\'er!</string>
<string name="otp_discarded_because_no_db">Vælg venligst databasen først. OTP er kasseret af sikkerhedsmæssige årsager.</string>
<string name="otp_discarded_no_space">OTP kasseret: Alle OTP\'er er allerede indtastet!</string>
<string name="otp_discarded_because_db_open">Luk venligst databasen først. OTP er kasseret.</string>
<string name="otps_pending">(En eller flere OTP\'er er allerede tilgængelige)</string>
<string name="otpsecret_hint">OTP-hemmelighed (f.eks. 01 23 ab cd&#8230;)</string>
<string name="otpsecret_hint">OTP-hemmelighed (f.eks. 01 23 ab cd)</string>
<string name="CouldntParseOtpSecret">Fejl ved analyse af OTP-hemmelighed!</string>
<string name="OtpKeyError">Kunne ikke oprette OTP-nøgle! Vær sikker på, at du har indtastet de korrekte OTP\'er.</string>
<string name="ErrorUpdatingOtpAuxFile">Fejl ved opdatering af OTP-hjælpefil!</string>
<string name="ErrorUpdatingChalAuxFile">Fejl ved opdatering af OTP-hjælpefil!</string>
<string name="DebugLog_title">Brug logfil</string>
<string name="loading">Indlæser…</string>
<string name="plugin_web">Find plug-ins på nettet</string>
<string name="plugin_scopes">Scopes</string>
<string name="query_credentials_for_url">%1$s anmoder om adgangsoplysninger for %2$s.</string>
@@ -550,7 +534,7 @@ Filen er beskadiget.\n
<item>15 minutes</item>
<item>30 minutes</item>
<item>1 hour</item>
<item>Never</item>
<item>Aldrig</item>
</string-array>
<string-array name="list_size_options">
<item>Lille</item>

View File

@@ -146,7 +146,7 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="hint_keyfile">Schlüsseldatei</string>
<string name="hint_length">Länge</string>
<string name="hint_pass">Passwort</string>
<string name="hint_login_pass">Passwort</string>
<string name="hint_login_pass">Kennwort</string>
<string name="hint_title">Name</string>
<string name="hint_url">Webadresse</string>
<string name="hint_override_url">Override URL</string>
@@ -161,7 +161,7 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="length">Länge</string>
<string name="list_size_title">Größe der Gruppenliste</string>
<string name="list_size_summary">Schriftgröße in der Gruppenliste</string>
<string name="loading_database">Lade Datenbank&#8230;</string>
<string name="loading_database">Lade Datenbank</string>
<string name="lowercase">Kleinbuchstaben</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Kennwort ausblenden</string>
@@ -208,7 +208,7 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="progress_title">In Bearbeitung\u2026</string>
<string name="remember_keyfile_summary">Schlüsseldatei anlegen und ihr Speicherort merken</string>
<string name="remember_keyfile_title">Schlüsseldatei speichern</string>
<string name="remove_from_filelist">Löschen</string>
<string name="remove_from_filelist">Entfernen</string>
<string name="edit">Bearbeiten</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">Start</string>
@@ -221,7 +221,7 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="database_name">Datenbankname</string>
<string name="default_username">Standard-Benutzername für neue Einträge</string>
<string name="saving_database">Speichere Datenbank\u2026</string>
<string name="exporting_database">Datenbank exportieren&#8230;</string>
<string name="exporting_database">Datenbank exportieren</string>
<string name="export_database_successful">Datenbank erfolgreich exportiert!</string>
<string name="space">Leerzeichen</string>
<string name="search_label">Suchen</string>
@@ -328,15 +328,16 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="NoDonationReminder_title">Nie um eine Spende bitten</string>
<string name="NoDonationReminder_summary">Ich werde keinen Cent spenden oder habe bereits gespendet. Bitte niemals um eine Spende, nicht einmal am Geburtstag des Autors.</string>
<string name="UseOfflineCache_title">Datenbank-Caching</string>
<string name="UseOfflineCache_summary">Speichere eine Kopie der Remote-Datenbank-Dateien im Cache-Verzeichnis der App. Das erlaubt die Nutzung von Remote-Datenbanken auch wenn du offline bist.</string>
<string name="UseOfflineCache_summary">Bewahrt eine Kopie der Datenbankdateien im Ordner des Anwendungszwischenspeicher auf. Dies ermöglicht die Verwendung von Datenbanken, auch wenn die Datenbankdatei nicht zugänglich ist.</string>
<string name="CreateBackups_title">Lokale Backups</string>
<string name="CreateBackups_summary">Erstelle eine lokale Sicherungskopie der Datenbank, nachdem diese erfolgreich geladen wurde.</string>
<string name="UpdatingBackup">Aktualisiere lokale Sicherungskopie...</string>
<string name="LocalBackupOf">Lokale Sicherung von %1$s</string>
<string name="show_local_backups">Lokale Backups anzeigen</string>
<string name="AcceptAllServerCertificates_title">SSL-Zertifikate</string>
<string name="AcceptAllServerCertificates_summary">Bestimme das Verhalten, wenn Zertifikate nicht validiert werden können. Hinweis: du kannst auf deinem Android-Gerät Root-Zertifikate installieren, damit die Validierung gelingt!</string>
<string name="ClearOfflineCache_title">Cache löschen?</string>
<string name="ClearOfflineCache_question">Alle Datenbank-Dateien im Cache werden gelöscht. Nicht synchronisierte Änderungen, die du offline gemacht hast, gehen verloren! Fortfahren?</string>
<string name="ClearOfflineCache_question">Dadurch werden alle zwischengespeicherten Datenbankdateien gelöscht. Alle Änderungen, die Sie ohne Zugriff auf die Quelldatenbank vorgenommen haben und die noch nicht synchronisiert wurden, gehen verloren! Dennoch fortfahren?</string>
<string name="CheckForFileChangesOnSave_title">Auf Änderungen prüfen</string>
<string name="CheckForFileChangesOnSave_summary">Vor dem Speichern prüfen, ob die Datei von außerhalb geändert wurde.</string>
<string name="CheckForDuplicateUuids_title">Prüfe auf doppelte UUIDs</string>
@@ -387,49 +388,49 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="suggest_improvements">Verbesserungen vorschlagen</string>
<string name="rate_app">Diese App bewerten</string>
<string name="translate_app">KP2A übersetzen</string>
<string name="AddingEntry">Füge Eintrag hinzu&#8230;</string>
<string name="AddingGroup">Füge Gruppe hinzu&#8230;</string>
<string name="DeletingEntry">Lösche Eintrag&#8230;</string>
<string name="DeletingGroup">Lösche Gruppe&#8230;</string>
<string name="DeletingItems">Lösche Elemente&#8230;</string>
<string name="SettingPassword">Setze Passwort&#8230;</string>
<string name="UndoingChanges">Nehme Änderungen zurück&#8230;</string>
<string name="TransformingKey">Führe Schlüsseltransformationen durch&#8230;</string>
<string name="DecodingDatabase">Entschlüssele Datenbank&#8230;</string>
<string name="ParsingDatabase">Lese Datenbank ein&#8230;</string>
<string name="CheckingTargetFileForChanges">Prüfe ob Zieldatei geändert wurde&#8230;</string>
<string name="AddingEntry">Füge Eintrag hinzu</string>
<string name="AddingGroup">Füge Gruppe hinzu</string>
<string name="DeletingEntry">Lösche Eintrag</string>
<string name="DeletingGroup">Lösche Gruppe</string>
<string name="DeletingItems">Lösche Elemente</string>
<string name="SettingPassword">Setze Passwort</string>
<string name="UndoingChanges">Nehme Änderungen zurück</string>
<string name="TransformingKey">Führe Schlüsseltransformationen durch</string>
<string name="DecodingDatabase">Entschlüssele Datenbank</string>
<string name="ParsingDatabase">Lese Datenbank ein</string>
<string name="CheckingTargetFileForChanges">Prüfe ob Zieldatei geändert wurde</string>
<string name="TitleSyncQuestion">Änderungen zusammenführen?</string>
<string name="MessageSyncQuestion">Die Datenbankdatei wurde von außerhalb geändert. Sollen diese Änderungen geladen und mit den in Keepass2Android gemachten Änderungen zusammengeführt werden, bevor die Datenbank gespeichert wird? Wähle Nein, um die externen Änderungen zu überschreiben.</string>
<string name="SynchronizingDatabase">Führe Änderungen zusammen&#8230;</string>
<string name="SynchronizingDatabase">Führe Änderungen zusammen</string>
<string name="YesSynchronize">Ja, zusammenführen</string>
<string name="NoOverwrite">Nein, überschreiben</string>
<string name="UseOfflineMode">Offline arbeiten</string>
<string name="UseOnlineMode">Online arbeiten</string>
<string name="UseOfflineMode_Info">Verwende die lokale Datenbankkopie um Netzwerkverkehr zu vermeiden. Änderungen werden lokal gespeichert und erst hochgeladen wenn der Online-Modus wieder aktiviert wird.</string>
<string name="InOfflineMode">Offline arbeiten.</string>
<string name="SynchronizingCachedDatabase">Synchronisiere gecachte Datenbank&#8230;</string>
<string name="DownloadingRemoteFile">Lade Remote-Datei herunter&#8230;</string>
<string name="UploadingFile">Lade Datei hoch&#8230;</string>
<string name="RestoringRemoteFile">Stelle Remote-Datei wieder her&#8230;</string>
<string name="UseOfflineMode">Nur internen Zwischenspeicher verwenden</string>
<string name="UseOnlineMode">Zwischengespeicherte Kopie mit der Quelldatei synchronisieren</string>
<string name="UseOfflineMode_Info">Datenbank wird vom internen Cache geladen. Änderungen werden nur im internen Cache gespeichert und nur synchronisiert, wenn eine Datenbanksynchronisierung manuell ausgewählt wird.</string>
<string name="InOfflineMode">Nur internen Zwischenspeicher verwenden.</string>
<string name="SynchronizingCachedDatabase">Synchronisiere gecachte Datenbank</string>
<string name="DownloadingRemoteFile">Quelldatei wird geladen …</string>
<string name="UploadingFile">Datei speichern …</string>
<string name="RestoringRemoteFile">Quelldatei wird wiederhergestellt …</string>
<string name="FilesInSync">Remote- und Cache-Dateien sind identisch.</string>
<string name="SynchronizedDatabaseSuccessfully">Datenbank erfolgreich synchronisiert!</string>
<string name="CheckingDatabaseForChanges">Prüfe auf Änderungen der Datenbank&#8230;</string>
<string name="CouldNotSaveToRemote">Konnte Datei nicht auf dem Server speichern: %1$s. Speichere später erneut or nutze das Synchronisieren-Menü wenn die Internetverbindung wieder besteht.</string>
<string name="CouldNotLoadFromRemote">Konnte Datei nicht vom Server laden: %1$s. Datei wird aus lokalem Cache geladen. Du kannst Änderungen an der Datenbank vornehmen und sie später synchronisieren.</string>
<string name="UpdatedRemoteFileOnLoad">Remote-Datei aktualisiert.</string>
<string name="NotifyOpenFromLocalDueToConflict">Datei aus lokalem Cache geladen wegen Konflikt mit Änderungen in der Remote-Datei. Nutze das Synchronisierungsmenü zum Zusammenführen.</string>
<string name="LoadedFromRemoteInSync">Remote-Datei und Cache stimmen überein.</string>
<string name="UpdatedCachedFileOnLoad">Die lokale zwischengespeicherte Kopie von %1$s wurde aktualisiert.</string>
<string name="CheckingDatabaseForChanges">Prüfe auf Änderungen der Datenbank</string>
<string name="CouldNotSaveToRemote">Quelldatei konnte nicht gespeichert werden: %1$s. Erneut speichern oder verwenden Sie das Menü „Synchronisieren”, sobald die Datei wieder verfügbar ist.</string>
<string name="CouldNotLoadFromRemote">Auf die Quelldatei konnte nicht zugegriffen werden: %1$s. Datei wurde aus dem internen Zwischenspeicher geladen. Sie können weiterhin Änderungen in der Datenbank vornehmen und diese später synchronisieren.</string>
<string name="UpdatedRemoteFileOnLoad">Aktualisierte Quelldatei.</string>
<string name="NotifyOpenFromLocalDueToConflict">Intern geöffnete Datei aus dem Zwischenspeicher aufgrund von Konflikten mit Änderungen in der Quelldatei. Verwenden Sie das Menü „Synchronisieren zum Zusammenführen.</string>
<string name="LoadedFromRemoteInSync">Quelldatei und Zwischenspeicher wurden synchronisiert.</string>
<string name="UpdatedCachedFileOnLoad">Die intern zwischengespeicherte Kopie von %1$s wurde aktualisiert.</string>
<string name="RemoteDatabaseUnchanged">Keine Änderungen gefunden.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Die lokale OTP-Hilfsdatei wurde aktualisiert: Der Zähler am Server war höher.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Die OTP-Hilfsdatei wurde am Server aktualisiert: Der lokale Zähler war höher.</string>
<string name="SynchronizingOtpAuxFile">Synchronisiere OTP-Hilfsdatei&#8230;</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Die zwischengespeicherte OTP-Hilfsdatei wurde aktualisiert: Der Quellenzähler war höher.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Die zwischengespeicherte OTP-Hilfsdatei wurde aktualisiert: Der lokale Zähler war höher.</string>
<string name="SynchronizingOtpAuxFile">Synchronisiere OTP-Hilfsdatei</string>
<string name="database_file">Datenbankdatei</string>
<string name="otp_aux_file">OTP-Hilfsdatei</string>
<string name="ErrorOcurred">Ein Fehler ist aufgetreten:</string>
<string name="DuplicateUuidsError">Datenbank ist korrupt: IDs kommen mehrfach vor. (Hast du mit Minikeepass gespeichert?) Bitte am PC mit Keepass 2 in eine neue Datenbank re-importieren und \'Neue IDs erstellen\' auswählen.</string>
<string name="DuplicateUuidsErrorAdditional">Diese Fehlermeldung kann unter Einstellungen/Anwendungs-Einstellungen/Umgang mit Dateien/Prüfe auf doppelte UUIDs deaktiviert werden. Bitte beachten: Dies kann zu unerwartetem Verhalten führen. Es wird empfohlen, die Datenbank zu reparieren.</string>
<string name="synchronize_database_menu">Datenbank synchronisieren&#8230;</string>
<string name="synchronize_database_menu">Datenbank synchronisieren</string>
<string name="CannotMoveGroupHere">Kann Gruppe nicht hierher verschieben.</string>
<string name="donate_question">Heute ist Oktoberfest! Wenn dir Keepass2Android gefällt: Wäre heute nicht ein guter Tag, um mir ein Bier zu spendieren?</string>
<string name="donate_bday_question">10. Mai? Heute ist mein Geburtstag! Wenn du diese App magst, warum schickst du mir nicht ein paar Geburtstagsgrüße zusammen mit einem kleinen Geburtstagsgeschenk? Das würde mich wirklich freuen :-)</string>
@@ -474,25 +475,27 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="hint_key_file">Wähle, ob du eine Schlüsseldatei zusätzlich zum Hauptpasswort nutzen möchtest:</string>
<string name="use_key_file">Schlüsseldatei benutzen</string>
<string name="error_adding_keyfile">Fehler beim Hinzufügen der Schlüsseldatei!</string>
<string name="init_otp">OTP-Hilfsdatei laden&#8230;</string>
<string name="init_otp">OTP-Hilfsdatei laden</string>
<string name="otp_explanation">Nächste One-Time-Passwörter (OTPs) eingeben. Halten deinen YubiKey NEO hinten an dein Gerät um über NFC einzugeben.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">Es wurde keine App gefunden, die die Challenge behandeln kann. Bitte installiere Yubichallenge von Google Play.</string>
<string name="CouldntLoadOtpAuxFile">Konnte OTP-Hilfsdatei nicht laden!</string>
<string name="CouldntLoadOtpAuxFile_Hint">Bitte nutze das OtpKeyProv-Plugin in Keepass 2.x a PC um deine Datenbank zur Verwendung von One-Time-Passwords einzureichten!</string>
<string name="otp_discarded_because_no_db">Bitte erst Datenbank laden. OTP wird aus Sicherheitsgründen verworfen.</string>
<string name="otp_discarded_no_space">OTP verworfen. Alle OTPs bereits eingegeben!</string>
<string name="otp_discarded_because_db_open">Bitte zuerst die aktuelle Datenbank schließen. OTP wird verworfen.</string>
<string name="otps_pending">(Ein oder mehrere OTPs bereits verfügbar)</string>
<string name="otpsecret_hint">OTP Secret (z.B. 01 23 ab cd&#8230;)</string>
<string name="otpsecret_hint">OTP Secret (z.B. 01 23 ab cd)</string>
<string name="CouldntParseOtpSecret">Fehler beim Parsen des OTP-Secrets!</string>
<string name="OtpKeyError">Fehler beim Erstellen des OTP-Schlüssels! Bitte stelle sicher, dass du die richtigen OTPs eingegeben hast.</string>
<string name="ErrorUpdatingOtpAuxFile">Fehler beim Aktualisieren der OTP-Hilfsdatei!</string>
<string name="SavingOtpAuxFile">Speichere OTP-Hilfsdatei&#8230;</string>
<string name="SavingOtpAuxFile">Speichere OTP-Hilfsdatei</string>
<string name="NoChallengeApp">Es konnte keine App gefunden werden, die diese Anforderung erfüllt.</string>
<string name="PleaseInstallApp">Bitte installiere %1$s von Google Play.</string>
<string name="AppOutdated">%1$s wird nicht mehr unterstützt.</string>
<string name="bad_resp">The Challenge-Antwort ist falsch.</string>
<string name="CouldntLoadChalAuxFile">Die externe Challenge-Datei konnte nicht geladen werden!</string>
<string name="CouldntLoadChalAuxFile_Hint">Bitte verwende das KeeChallenge-Plugin in KeePass 2.x (PC) um die Datenbank für die Verwendung von Challenge-Response zu konfigurieren!</string>
<string name="ErrorUpdatingChalAuxFile">Fehler bei der Aktualisierung der externen OTP-Datei!</string>
<string name="ErrorUpdatingChalAuxFile">Fehler beim Aktualisieren der OTP-Hilfsdatei!</string>
<string name="TrayTotp_SeedField_title">TOTP-Seed-Feldname</string>
<string name="TrayTotp_SeedField_summary">Wenn du das Keepass 2-Plugin \"TrayTotp\" nicht mit Standard-Einstellungen verwendest, gib den Feldnamen für das Seed-Feld entsprechend der Einstellungen am PC an.</string>
<string name="TrayTotp_SettingsField_title">Feldname für TOTP-Einstellungen</string>
@@ -502,7 +505,7 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="DebugLog_title">Log-Datei benutzen</string>
<string name="DebugLog_summary">Ausgabe der Anwendung in eine lokale Log-Datei schreiben</string>
<string name="DebugLog_send">Debug-Log senden...</string>
<string name="loading">Lade&#8230;</string>
<string name="loading">Lade</string>
<string name="plugins">Plug-ins</string>
<string name="plugin_packagename">Paketname:</string>
<string name="plugin_description">Beschreibung (nicht überprüft):</string>
@@ -546,7 +549,7 @@ Mit dieser Option wird das Masterpasswort verschlüsselt im Android-Keystore auf
<string name="DefaultTemplate">Standardeintrag</string>
<string name="TemplateGroupName">Vorlagen</string>
<string name="TemplateTitle_IdCard">Ausweis</string>
<string name="TemplateField_IdCard_Name">Name</string>
<string name="TemplateField_IdCard_Name">Titel</string>
<string name="TemplateField_IdCard_PlaceOfIssue">Ausstellungsort</string>
<string name="TemplateField_IdCard_IssueDate">Ausstellungsdatum</string>
<string name="TemplateTitle_EMail">E-Mail</string>
@@ -600,6 +603,13 @@ Anbei einige Hinweise, die bei der Diagnose des Problems helfen können:\n
<string name="ErrorReportAsk">Nach Fehler fragen</string>
<string name="ErrorReportPrefTitle">Fehlerbericht senden</string>
<string name="ShowKeyboardDuringFingerprintAuth">Zeige Bildschirmtastatur zur Passworteingabe während Fingerabdruckerkennung aktiv ist.</string>
<string name="ChangeLog_1_06">
Version 1.06\n
* Wechsel zu ykDroid statt YubiChallenge als App für Yubikey Challenge-Response.\n
* Unterstützung für KeepassXC-style Challenge-Response implementiert. Hinweis: Datenbankformat muss KDBX4 sein!\n
* Auf Google Drive gelöschte Dateien werden nicht mehr geladen.\n
* TLS-Implementierung für FTPS gewechselt, Workaround wegen eines JSch-Bugs integriert (betrifft Server, die gssapi-with-mic unterstützen)\n
* Fehler behoben\n </string>
<string name="ChangeLog_1_05">
Version 1.05\n
• Verwendung von Benachrichtigungskanälen in Android 8. So können Benachrichtigungen über die Systemeinstellungen konfiguriert werden.\n
@@ -906,6 +916,7 @@ Erstes öffentliches Release</string>
<item>Kennwort + OTP Secret (Recovery-Modus)</item>
<item>Passwort + Challenge-Response</item>
<item>Passwort + Challenge-Response-Secret (Recovery-Modus)</item>
<item>Passwort + Challenge-Response für Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Fehler bei Zertifikatsvalidierung ignorieren</item>
@@ -920,6 +931,7 @@ Erstes öffentliches Release</string>
<string name="show_autofill_help">Autofill-Hilfe anzeigen</string>
<string name="autofill_sign_in_prompt">Mit Keepass2Android ausfüllen</string>
<string name="invalid_link_association">Webdomain %1$s konnte nicht mit App %2$s in Verbindung gebracht werden</string>
<string name="enable_fingerprint_hint">Keepass2Android hat einen Fingerabdrucksensor gefunden. Möchtest du das Entsperren mit Fingerabdruck für diese Datenbank aktivieren?</string>
<string name="understand">Ich verstehe</string>
<string name="dont_show_again">Nicht erneut anzeigen</string>
<string name="masterkey_infotext_head">Kennst du dein Master-Passwort?</string>

View File

@@ -67,7 +67,7 @@
<string name="entry_is_available">είναι διαθέσιμο</string>
<string name="not_possible_im_picker">Αδύνατο το άνοιγμα διαλόγου για επιλογή μεθόδου εισαγωγής. Ενεργοποιήστε το πληκτρολόγιο με μη αυτόματο τρόπο.</string>
<string name="please_activate_keyboard">Ενεργοποιήστε το πληκτρολόγιο Keepass2Android στις ρυθμίσεις συστήματος.</string>
<string name="creating_db_key">Δημιουργία κλειδιού βάσης δεδομένων&#8230;</string>
<string name="creating_db_key">Δημιουργία κλειδιού βάσης δεδομένων</string>
<string name="current_group">Τρέχουσα ομάδα</string>
<string name="current_group_root">Τρέχουσα ομάδα: Ρίζα</string>
<string name="database">Βάση δεδομένων</string>
@@ -99,7 +99,7 @@
<string name="enable_fingerprint_quickunlock_Info">Επιτρέπει αυθεντικοποίηση με δακτυλικό αποτύπωμα αντί του κωδικού QuickUnlock. Δεν απαιτεί αποθήκευση πληροφορίας σχετικά με το βασικό συνθηματικό.</string>
<string name="enter_filename">Δώστε όνομα αρχείου της βάσης δεδομένων</string>
<string name="entry_accessed">Προσπελάστηκε</string>
<string name="entry_cancel">Άκυρο</string>
<string name="entry_cancel">Ακύρωση</string>
<string name="entry_comment">Σημειώσεις</string>
<string name="entry_tags">Ετικέτες</string>
<string name="entry_override_url">Παράκαμψη URL</string>
@@ -161,7 +161,7 @@
<string name="length">Μήκος</string>
<string name="list_size_title">Μέγεθος λίστας ομάδας</string>
<string name="list_size_summary">Μέγεθος κειμένου στη λίστα ομάδας</string>
<string name="loading_database">Φόρτωση βάσης δεδομένων&#8230;</string>
<string name="loading_database">Φόρτωση βάσης δεδομένων</string>
<string name="lowercase">Πεζά</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Μάσκα συνθηματικού</string>
@@ -203,9 +203,9 @@
<string name="pass_filename">Όνομα αρχείου βάσης δεδομένων KeePass</string>
<string name="password_title">Εισάγετε συνθηματικό βάσης δεδομένων</string>
<string name="master_key_type">Επιλέξτε τύπο πρωτεύοντος κλειδιού:</string>
<string name="progress_create">Δημιουργία νέας βάσης δεδομένων&#8230;</string>
<string name="progress_create">Δημιουργία νέας βάσης δεδομένων</string>
<string name="create_database">Δημιουργία βάσης δεδομένων</string>
<string name="progress_title">Σε λειτουργία&#8230;</string>
<string name="progress_title">Σε λειτουργία</string>
<string name="remember_keyfile_summary">Απομνημονεύει τη θέση των αρχείων κλειδιού.</string>
<string name="remember_keyfile_title">Αποθήκευση αρχείου κλειδιού</string>
<string name="remove_from_filelist">Κατάργηση</string>
@@ -220,8 +220,8 @@
<string name="argon2parallelism">Παραλληλισμός για Argon 2</string>
<string name="database_name">Όνομα βάσης δεδομένων</string>
<string name="default_username">Προεπιλεγμένο όνομα χρήστη για νέες εγγραφές</string>
<string name="saving_database">Αποθήκευση βάσης δεδομένων&#8230;</string>
<string name="exporting_database">Εξαγωγή βάσης δεδομένων&#8230;</string>
<string name="saving_database">Αποθήκευση βάσης δεδομένων</string>
<string name="exporting_database">Εξαγωγή βάσης δεδομένων</string>
<string name="export_database_successful">Η βάση δεδομένων εξήχθηκε με επιτυχία!</string>
<string name="space">Διάστημα</string>
<string name="search_label">Αναζήτηση</string>
@@ -328,7 +328,7 @@
<string name="NoDonationReminder_title">Μην ζητάς προσφορά</string>
<string name="NoDonationReminder_summary">Δε δίνω δυάρα ή έχω ήδη κάνει προσφορά. Μη ζητάς προσφορά, ούτε καν στα γενέθλια του κατασκευαστή.</string>
<string name="UseOfflineCache_title">Προσωρινή αποθήκευση βάσης δεδομένων</string>
<string name="UseOfflineCache_summary">Διατηρεί αντίγραφο των απομακρυσμένων αρχείων βάσεων δεδομένων στο φάκελο προσωρινής αποθήκευσης της εφαρμογής. Αυτό επιτρέπει τη χρησιμοποίηση απομακρυσμένων βάσεων δεδομένων ακόμα και όταν είναι εκτός σύνδεσης.</string>
<string name="UseOfflineCache_summary">Διατήρηση αντιγράφου των αρχείων της βάσης δεδομένων στο φάκελο cache της εφαρμογής. Επιτρέπει τη χρήση των βάσεων δεδομένων ακόμη και όταν δεν είναι προσπελάσιμα.</string>
<string name="CreateBackups_title">Τοπικά αντίγραφα</string>
<string name="CreateBackups_summary">Δημιουργία τοπικού αντιγράφου μετά την επιτυχή φόρτωση της βάσης δεδομένων</string>
<string name="UpdatingBackup">Ενημέρωση τοπικού αντιγράφου...</string>
@@ -336,7 +336,7 @@
<string name="AcceptAllServerCertificates_title">Πιστοποιητικά SSL</string>
<string name="AcceptAllServerCertificates_summary">Καθορίστε τη συμπεριφορά αν αποτύχει η επικύρωση πιστοποιητικού. Σημείωση: μπορείτε να εγκαταστήσετε πιστοποιητικά στη συσκευή σας, εάν αποτύχει η επικύρωση!</string>
<string name="ClearOfflineCache_title">Εκκαθάριση προσωρινής μνήμης;</string>
<string name="ClearOfflineCache_question">Διαγραφή όλων των αρχείων προσωρινής αποθήκευσης βάσεων δεδομένων. Τυχόν αλλαγές που κάνατε εκτός σύνδεσης και δεν έχουν συγχρονιστεί, θα χαθούν! Συνέχεια;</string>
<string name="ClearOfflineCache_question">Διαγράφει όλα τα αρχεία βάσεων δεδομένων στην cache. Αλλαγές που έγιναν όσο δεν υπήρχε πρόσβαση στην πηγαία βάση δεδομένων και δεν έχουν συγχρονιστεί, θα χαθούν. Συνέχεια;</string>
<string name="CheckForFileChangesOnSave_title">Έλεγχος για τροποποιήσεις</string>
<string name="CheckForFileChangesOnSave_summary">Έλεγχος αν το αρχείο τροποποιήθηκε εξωτερικά πριν την αποθήκευση αλλαγών.</string>
<string name="CheckForDuplicateUuids_title">Έλεγχος για διπλότυπα αναγνωριστικά</string>
@@ -387,49 +387,49 @@
<string name="suggest_improvements">Προτείνετε ή ψηφίστε για βελτιώσεις</string>
<string name="rate_app">Βαθμολογήστε αυτή την εφαρμογή</string>
<string name="translate_app">Μετάφραση KP2A</string>
<string name="AddingEntry">Προσθήκη καταχώρισης&#8230;</string>
<string name="AddingGroup">Προσθήκη ομάδας&#8230;</string>
<string name="DeletingEntry">Διαγραφή καταχώρισης&#8230;</string>
<string name="DeletingGroup">Διαγραφή ομάδας&#8230;</string>
<string name="DeletingItems">Διαγραφή στοιχείων&#8230;</string>
<string name="SettingPassword">Καταχώριση συνθηματικού&#8230;</string>
<string name="UndoingChanges">Αναίρεση αλλαγών&#8230;</string>
<string name="TransformingKey">Μετατροπή πρωτεύοντος κλειδιού&#8230;</string>
<string name="DecodingDatabase">Αποκωδικοποίηση βάσης δεδομένων&#8230;</string>
<string name="ParsingDatabase">Αναγνώριση βάσης δεδομένων&#8230;</string>
<string name="CheckingTargetFileForChanges">Έλεγχος του αρχείου προορισμού για αλλαγές&#8230;</string>
<string name="AddingEntry">Προσθήκη καταχώρισης</string>
<string name="AddingGroup">Προσθήκη ομάδας</string>
<string name="DeletingEntry">Διαγραφή καταχώρισης</string>
<string name="DeletingGroup">Διαγραφή ομάδας</string>
<string name="DeletingItems">Διαγραφή στοιχείων</string>
<string name="SettingPassword">Καταχώριση συνθηματικού</string>
<string name="UndoingChanges">Αναίρεση αλλαγών</string>
<string name="TransformingKey">Μετατροπή πρωτεύοντος κλειδιού</string>
<string name="DecodingDatabase">Αποκωδικοποίηση βάσης δεδομένων</string>
<string name="ParsingDatabase">Αναγνώριση βάσης δεδομένων</string>
<string name="CheckingTargetFileForChanges">Έλεγχος του αρχείου προορισμού για αλλαγές</string>
<string name="TitleSyncQuestion">Συγχώνευση αλλαγών;</string>
<string name="MessageSyncQuestion">Το αρχείο βάσης δεδομένων τροποποιήθηκε εξωτερικά. Θέλετε να φορτώσετε και να συγχωνεύσετε τις αλλαγές πριν από την αποθήκευση; Επιλέξτε Όχι αν θέλετε να αγνοήσετε τις εξωτερικές αλλαγές.</string>
<string name="SynchronizingDatabase">Συγχώνευση αλλαγών&#8230;</string>
<string name="SynchronizingDatabase">Συγχώνευση αλλαγών</string>
<string name="YesSynchronize">Ναι, συγχώνευση</string>
<string name="NoOverwrite">Οχι, αντικατάσταση</string>
<string name="UseOfflineMode">Εργασία χωρίς σύνδεση</string>
<string name="UseOnlineMode">Εργασία με σύνδεση</string>
<string name="UseOfflineMode_Info">Αποφύγετε οποιαδήποτε κίνηση του δικτύου, χρησιμοποιώντας τοπικό αντίγραφο του αρχείου. Οι αλλαγές αποθηκεύονται στη τοπικά στη μνήμη cache μόνον και θα μεταφερθούν κατά τη μετάβαση σε λειτουργία σύνδεσης.</string>
<string name="InOfflineMode">Εργασία χωρίς σύνδεση.</string>
<string name="SynchronizingCachedDatabase">Συγχρονισμός προσωρινού αντίγραφου βάσης δεδομένων&#8230;</string>
<string name="DownloadingRemoteFile">Λήψη απομακρυσμένού αρχείου&#8230;</string>
<string name="UploadingFile">Ανέβασμα αρχείου&#8230;</string>
<string name="RestoringRemoteFile">Αποκατάσταση απομακρυσμένου αρχείου&#8230;</string>
<string name="UseOfflineMode">Λειτουργία στην τοπική cache μόνον </string>
<string name="UseOnlineMode">Συγχρονισμός του αντιγράφου της cache με την πηγή</string>
<string name="UseOfflineMode_Info">Η βάση δεδομένων φορτώνεται από την cache. Οι αλλαγές αποθηκεύονται μόνο στην cache και θα συγχρονιστούν όταν επιλέξετε Συγχρονισμός.</string>
<string name="InOfflineMode">Λειτουργία στην cache μόνον</string>
<string name="SynchronizingCachedDatabase">Συγχρονισμός προσωρινού αντίγραφου βάσης δεδομένων</string>
<string name="DownloadingRemoteFile">Φόρτωση αρχείου πηγής...</string>
<string name="UploadingFile">Αποθήκευση αρχείου...</string>
<string name="RestoringRemoteFile">Επαναφορά αρχείου πηγής...</string>
<string name="FilesInSync">Τα αρχεία είναι συγχρονισμένα.</string>
<string name="SynchronizedDatabaseSuccessfully">Η βάση δεδομένων συγχρονίστηκε με επιτυχία!</string>
<string name="CheckingDatabaseForChanges">Έλεγχος βάσης δεδομένων για αλλαγές&#8230;</string>
<string name="CouldNotSaveToRemote">Αποτυχία αποθήκευσης απομακρυσμένα: %1$s. Αποθηκεύστε ξανά ή χρησιμοποιήστε το μενού Συγχρονισμός, όταν η απομακρυσμένη σύνδεση είναι και πάλι διαθέσιμη.</string>
<string name="CouldNotLoadFromRemote">Αποτυχία ανοίγματος απομακρυσμένης: %1$s. Το αρχείο φορτώθηκε από την τοπική μνήμη. Μπορείτε να κάνετε αλλαγές στη βάση δεδομένων και να τη συγχρονίσετε αργότερα.</string>
<string name="UpdatedRemoteFileOnLoad">Ενημέρωση του απομακρυσμένου αρχείου.</string>
<string name="NotifyOpenFromLocalDueToConflict">Άνοιγμα τοπικού αρχείου εξαιτίας σύγκρουσης με αλλαγές στο απομακρυσμένο αρχείο. Χρησιμοποιήστε το μενού Συγχρονισμός για συγχώνευση.</string>
<string name="LoadedFromRemoteInSync">Το απομακρυσμένο αρχείο και το αντίγραφο στην προσωρινή μνήμη είναι συγχρονισμένα.</string>
<string name="UpdatedCachedFileOnLoad">Ενημερώνεται το τοπικό αντίγραφο του %1$s cache.</string>
<string name="CheckingDatabaseForChanges">Έλεγχος βάσης δεδομένων για αλλαγές</string>
<string name="CouldNotSaveToRemote">Αδυναμία αποθήκευσης του αρχείου πηγής %1$s. Δοκιμάστε ξανά ή χρησιμοποιήστε το μενού Συγχρονισμός όταν το αρχείο είναι διαθέσιμο.</string>
<string name="CouldNotLoadFromRemote">Αδυναμία προσπέλασης του αρχείου πηγής %1$s. Φορτώθηκε το αρχείο από την cache. Μπορείτε να κάνετε αλλαγές στη βάση δεδομένων και να τις συγχρονίσετε αργότερα.</string>
<string name="UpdatedRemoteFileOnLoad">Ενημερώθηκε το αρχείο πηγής.</string>
<string name="NotifyOpenFromLocalDueToConflict">Άνοιγμα τοπικού αρχείου εξαιτίας σύγκρουσης με αλλαγές στο αρχείο πηγής. Χρησιμοποιήστε το μενού Συγχρονισμός για συγχώνευση.</string>
<string name="LoadedFromRemoteInSync">Αρχείο πηγής και cache συγχρονίστηκαν. </string>
<string name="UpdatedCachedFileOnLoad">Ενημερώθηκε το αρχείο %1$s στην cache.</string>
<string name="RemoteDatabaseUnchanged">Δεν εντοπίστηκαν αλλαγές.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Ενημερώθηκε το βοηθητικό αρχείο OTP στην προσωρινή μνήμη: ο απομακρυσμένος μετρητής ήταν υψηλότερος.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Ενημερώθηκε η απομακρυσμένη έκδοση του βοηθητικού αρχείου OTP: ο τοπικός μετρητής ήταν υψηλότερος.</string>
<string name="SynchronizingOtpAuxFile">Συγχρονισμός βοηθητικού αρχείου OTP&#8230;</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Ενημερώθηκε το βοηθητικό αρχείο OTP στην cache: Ο μετρητής στην πηγή ήταν υψηλότερος.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Ενημερώθηκε το βοηθητικό αρχείο OTP στην πηγή: Ο τοπικός μετρητής ήταν υψηλότερος.</string>
<string name="SynchronizingOtpAuxFile">Συγχρονισμός βοηθητικού αρχείου OTP</string>
<string name="database_file">αρχείο βάσης δεδομένων</string>
<string name="otp_aux_file">Βοηθητικό αρχείο OTP</string>
<string name="ErrorOcurred">Προέκυψε ένα σφάλμα:</string>
<string name="DuplicateUuidsError">Κατεστραμμένη βάση δεδομένων: βρέθηκαν διπλότυπα αναγνωριστικά. (Μήπως αποθηκεύσατε με Minikeepass;) Εισάγετε ξανά σε νέα βάση δεδομένων με Keepass 2 για PC και επιλέξτε \'Δημιουργία νέων αναγνωριστικών\'.</string>
<string name="DuplicateUuidsErrorAdditional">Μπορείτε να απενεργοποιήσετε αυτό το μήνυμα σφάλματος από Ρυθμίσεις / Εφαρμογή / Χειρισμός αρχείων / Έλεγχος για διπλότυπα αναγνωριστικά. Ενδέχεται να αντιμετωπίσετε απροσδόκητη συμπεριφορά. Συνιστάται να επιδιορθώσετε τη βάση δεδομένων.</string>
<string name="synchronize_database_menu">Συγχρονισμός βάσης δεδομένων&#8230;</string>
<string name="synchronize_database_menu">Συγχρονισμός βάσης δεδομένων</string>
<string name="CannotMoveGroupHere">Δεν είναι δυνατό να μετακινήσετε την ομάδα σε αυτήν την ομάδα.</string>
<string name="donate_question">Σήμερα, είναι Oktoberfest! Αν σας αρέσει το Keepass2Android σήμερα θα ήταν μια καλή μέρα για να μου αγοράσετε μια μπύρα!</string>
<string name="donate_bday_question">10η Μαΐου; Είναι τα γενέθλιά μου! Αν σας αρέσει αυτή η εφαρμογή, γιατί δεν μου στέλνετε ένα μικρό δώρο γενεθλίων; Αυτό πραγματικά θα με κάνει ευτυχισμένο! :-)</string>
@@ -474,10 +474,9 @@
<string name="hint_key_file">Επιλέξτε αν θέλετε να χρησιμοποιήσετε ένα αρχείο κλειδιού, εκτός από το κύριο συνθηματικό:</string>
<string name="use_key_file">Χρήση αρχείου κλειδιού</string>
<string name="error_adding_keyfile">Παρουσιάστηκε σφάλμα κατά την προσθήκη του αρχείου κλειδιού!</string>
<string name="init_otp">Φόρτωση βοηθητικού αρχείου OTP&#8230;</string>
<string name="init_otp">Φόρτωση βοηθητικού αρχείου OTP</string>
<string name="otp_explanation">Εισάγετε τα επόμενα συνθηματικά μοναδικής χρήσης (OTP). Σαρώστε το ΝΕΟ Yubikey στο πίσω μέρος της συσκευής σας να εισέλθετε μέσω NFC.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">Δεν βρέθηκε εφαρμογή που μπορεί να χειριστεί την πρόκληση. Εγκαταστήσετε το Yubichallenge από το Google Play.</string>
<string name="CouldntLoadOtpAuxFile">Δεν ήταν δυνατή η φόρτωση του βοηθητικού αρχείου OTP!</string>
<string name="CouldntLoadOtpAuxFile_Hint">Χρησιμοποιήστε το πρόσθετο OtpKeyProv σε KeePass 2.x (PC) για να ρυθμίσετε τη βάση δεδομένων για χρήση με OTP!</string>
<string name="otp_discarded_because_no_db">Επιλέξτε πρώτα την βάση δεδομένων. Το OTP απορρίπτεται για λόγους ασφαλείας.</string>
@@ -488,10 +487,13 @@
<string name="CouldntParseOtpSecret">Σφάλμα κατά την αναγνώριση μυστικού OTP!</string>
<string name="OtpKeyError">Απέτυχε η δημιουργία κλειδιού OTP! Βεβαιωθείτε ότι έχετε εισάγει σωστά OTP.</string>
<string name="ErrorUpdatingOtpAuxFile">Σφάλμα ενημέρωσης βοηθητικού αρχείου OTP!</string>
<string name="SavingOtpAuxFile">Αποθηκεύεται το βοηθητικό αρχείο OTP&#8230;</string>
<string name="bad_resp">Εσφαλμένη απόκριση στο ερώτημα.</string>
<string name="CouldntLoadChalAuxFile">Δεν ήταν δυνατή η φόρτωση του βοηθητικού αρχείου ερωτήματος!</string>
<string name="CouldntLoadChalAuxFile_Hint">Χρησιμοποιήστε το πρόσθετο KeeChallenge σε KeePass 2.x (PC) για να ρυθμίσετε τη βάση δεδομένων για χρήση με ερώτημα-απόκριση!</string>
<string name="SavingOtpAuxFile">Αποθηκεύεται το βοηθητικό αρχείο OTP</string>
<string name="NoChallengeApp">Δεν βρέθηκε εφαρμογή που μπορεί να χειριστεί την πρόκληση.</string>
<string name="PleaseInstallApp">Παρακαλώ εγκαταστήσετε %1$s από το Google Play.</string>
<string name="AppOutdated">Το %1$s δεν υποστηρίζεται πλέον.</string>
<string name="bad_resp">Εσφαλμένη απόκριση στην πρόκληση.</string>
<string name="CouldntLoadChalAuxFile">Δεν ήταν δυνατή η φόρτωση του βοηθητικού αρχείου πρόκλησης!</string>
<string name="CouldntLoadChalAuxFile_Hint">Χρησιμοποιήστε το πρόσθετο KeeChallenge σε KeePass 2.x (PC) για να ρυθμίσετε τη βάση δεδομένων για χρήση με Πρόκληση-Απόκριση!</string>
<string name="ErrorUpdatingChalAuxFile">Σφάλμα ενημέρωσης βοηθητικού αρχείου OTP!</string>
<string name="TrayTotp_SeedField_title">Όνομα πεδίου για seed του TOTP</string>
<string name="TrayTotp_SeedField_summary">Εάν χρησιμοποιείτε το πρόσθετο \"TrayTotp\" του Keepass 2 με μη προεπιλεγμένες ρυθμίσεις, πληκτρολογήστε το όνομα του πεδίου για το πεδίο seed σύμφωνα με τις ρυθμίσεις στον υπολογιστή.</string>
@@ -502,7 +504,7 @@
<string name="DebugLog_title">Χρήση αρχείου καταχώρησης</string>
<string name="DebugLog_summary">Καταγραφή στοιχείων εφαρμογής σε τοπικό αρχείο καταχώρησης</string>
<string name="DebugLog_send">Αποστολή αρχείων καταγραφής εκσφαλμάτωσης...</string>
<string name="loading">Φόρτωση&#8230;</string>
<string name="loading">Φόρτωση</string>
<string name="plugins">Πρόσθετα</string>
<string name="plugin_packagename">Όνομα πακέτου:</string>
<string name="plugin_description">Περιγραφή (χωρίς επαλήθευση):</string>
@@ -602,6 +604,11 @@
<string name="ErrorReportAsk">Ερώτηση μετά από σφάλμα</string>
<string name="ErrorReportPrefTitle">Αποστολή αναφοράς σφαλμάτων</string>
<string name="ShowKeyboardDuringFingerprintAuth">Προβάλει το πληκτρολόγιο για εισαγωγή συνθηματικού όταν είναι ενεργή η σάρωση δακτυλικού αποτυπώματος.</string>
<string name="ChangeLog_1_06">Έκδοση 1.06\n
* Χρήση του ykDroid αντί του YubiChallenge ως εφαρμογή για Yubikey Πρόκληση-Απόκριση.\n
* Υλοποίηση υποστήριξης για KeepassXC-style Challenge-Response. Σημείωση: Το φορμάτ της βάσης δεδομένων πρέπει να είναι KDBX4!\n * Άρνηση φόρτωσης πεταμένων αρχείων από το Google Drive\n
* Αλλαγή της υλοποίησης TLS για το FTPS, προσθήκη λύσης του σφάλματος JSch για εξυπηρετητές που υποστηρίζουν gssapi-with-mic\n
* Διορθώσεις σφαλμάτων\n</string>
<string name="ChangeLog_1_05">
Έκδοση 1.05\n
* Χρήση ειδοποιήσεων του Android 8, που επιτρέπει προσαρμογή μέσω των ρυθμίσεων συστήματος\n
@@ -716,7 +723,7 @@
Έκδοση 0.9.7\n
* Υποστήριξη εγγραφής για βάσεις δεδομένων Keepass 1 (kdb) (σε beta!)\n
* Καλύτερη εναλλαγή πληκτρολογίου (λειτουργεί σε μη root συσκευές)\n
* υποστήριξη του KeeChallenge με ερωτήματα μεταβλητού μήκους\n
* υποστήριξη του KeeChallenge με αποκρίσεις μεταβλητού μήκους\n
* απαγορεύει τη λήψη screenshots των οθονών QuickUnlock και συνθηματικού\n
* ανάστροφη ταξινόμηση κατά ημερομηνία τροποποίησης (τώρα φθίνουσα)\n
* διορθώσεις σφαλμάτων: προβολή σημειώσεων ενημερώνεται σωστά μετά από αλλαγές, προβολή συνθηματικού αποκρύπτει το συνθηματικό σε όλες τις συσκευές, απαγορεύει τη διπλή εισαγωγή καταχώρισης, διόρθωση στην προειδοποίηση διπλότυπων αναγνωριστικών ακόμα και μετά την επιδιόρθωση της βάσης δεδομένων\n </string>
@@ -908,8 +915,9 @@ Initial public release
<item>Συνθηματικό + αρχείο κλειδιού</item>
<item>Συνθηματικό + OTP</item>
<item>Συνθηματικό + μυστικό OTP (λειτουργία ανάκτησης)</item>
<item>Συνθηματικό + Ερώτημα-Απάντηση</item>
<item>Συνθηματικό + μυστικό Ερώτημα-Απάντηση (λειτουργία ανάκτησης)</item>
<item>Συνθηματικό + Πρόκληση-Απόκριση</item>
<item>Συνθηματικό + μυστική Πρόκληση-Απόκριση (λειτουργία ανάκτησης)</item>
<item>Συνθηματικό + Πρόκληση-Απόκριση για το Keypass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Παράβλεψη αποτυχιών επικύρωσης πιστοποιητικού</item>
@@ -924,6 +932,7 @@ Initial public release
<string name="show_autofill_help">Εμφάνιση βοήθειας Αυτόματης συμπλήρωσης</string>
<string name="autofill_sign_in_prompt">Συμπλήρωση με Keepass2Android</string>
<string name="invalid_link_association">Δεν σχετίζεται το web domain %1$s με την εφαρμογή %2$s</string>
<string name="enable_fingerprint_hint">Το Keepass2Android ανίχνευσε εξοπλισμό δακτυλικού αποτυπώματος. Θέλετε να ενεργοποιήσετε το ξεκλείδωμα με δακτυλικό αποτύπωμα για αυτή τη βάση δεδομένων;</string>
<string name="understand">Καταλαβαίνω</string>
<string name="dont_show_again">Να μην εμφανιστεί ξανά</string>
<string name="masterkey_infotext_head">Θυμάστε το κύριο συνθηματικό σας;</string>

View File

@@ -67,7 +67,7 @@
<string name="entry_is_available">está disponible</string>
<string name="not_possible_im_picker">No se puede abrir el cuadro de diálogo para seleccionar el método de entrada. Por favor, active el teclado manualmente.</string>
<string name="please_activate_keyboard">Por favor habilita el teclado de Keepass2Android en la configuración del sistema.</string>
<string name="creating_db_key">Creando clave de la base de datos&#8230;</string>
<string name="creating_db_key">Creando clave de la base de datos</string>
<string name="current_group">Grupo actual</string>
<string name="current_group_root">Grupo actual: Root</string>
<string name="database">Base de datos</string>
@@ -106,7 +106,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="entry_expires">Caducidad</string>
<string name="entry_group_name">Nombre del Grupo</string>
<string name="entry_keyfile">Archivo de clave (opcional)</string>
<string name="keyfile_heading">Archivo de clave</string>
<string name="keyfile_heading">Archivo llave</string>
<string name="entry_modified">Modificado</string>
<string name="entry_password">Contraseña</string>
<string name="entry_save">Guardar</string>
@@ -159,7 +159,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="length">Longitud</string>
<string name="list_size_title">Tamaño de la lista de Grupo</string>
<string name="list_size_summary">Tamaño del texto de la lista de grupo</string>
<string name="loading_database">Cargando base de datos&#8230;</string>
<string name="loading_database">Cargando base de datos</string>
<string name="lowercase">Minúsculas</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Ocultar contraseña</string>
@@ -201,9 +201,9 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="pass_filename">Nombre de archivo de base de datos de KeePass</string>
<string name="password_title">Introduzca la contraseña de la base de datos</string>
<string name="master_key_type">Seleccione el tipo de llave maestra:</string>
<string name="progress_create">Creando nueva base de datos&#8230;</string>
<string name="progress_create">Creando nueva base de datos</string>
<string name="create_database">Crear base de datos</string>
<string name="progress_title">Trabajando&#8230;</string>
<string name="progress_title">Trabajando</string>
<string name="remember_keyfile_summary">Recordar la ubicación de archivos de clave</string>
<string name="remember_keyfile_title">Guardar archivo clave</string>
<string name="remove_from_filelist">Borrar</string>
@@ -218,8 +218,8 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="argon2parallelism">Paralelismo para Argon 2</string>
<string name="database_name">Nombre de la base de datos</string>
<string name="default_username">Nombre de usuario predeterminado para nuevas entradas</string>
<string name="saving_database">Guardando base de datos&#8230;</string>
<string name="exporting_database">Exportando base de datos&#8230;</string>
<string name="saving_database">Guardando base de datos</string>
<string name="exporting_database">Exportando base de datos</string>
<string name="export_database_successful">Base de datos exportada con éxito!</string>
<string name="space">Espacio</string>
<string name="search_label">Buscar</string>
@@ -280,7 +280,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="ViewDatabaseSecure_summary">Si se encuentra activado, no se permiten realizar tomas de plantallas y no se muestra el thumbnail de la app en la lista de applicaciones recientes.</string>
<string name="QuickUnlockIconHidden_title">Ocultar el icono de QuickUnlock</string>
<string name="QuickUnlockIconHidden_summary">QuickUnlock lamentablemente no funciona sin mostrar un icono de notificación. Seleccione esta opción para utilizar un icono transparente.</string>
<string name="QuickUnlockIconHidden16_title">Ocultar icono de QuickUnlock</string>
<string name="QuickUnlockIconHidden16_title">Ocultar el icono de QuickUnlock</string>
<string name="QuickUnlockIconHidden16_summary">QuickUnlock requiere una notificación para funcionar correctamente. Seleccione esta opción para mostrar la notificación sin icono.</string>
<string name="QuickUnlockLength_title">Longitud de la clave QuickUnlock</string>
<string name="QuickUnlockLength_summary">Número máximo de caracteres que se utiliza para la contraseña QuickUnlock.</string>
@@ -326,7 +326,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="NoDonationReminder_title">No solicitar nunca una donación</string>
<string name="NoDonationReminder_summary">No le voy a dar un céntimo o ya he donado. No solicitar una donación, ni en el cumpleaños del autor.</string>
<string name="UseOfflineCache_title">Caché de base de datos</string>
<string name="UseOfflineCache_summary">Mantiene una copia de los archivos de base de datos remota en el directorio del caché de la aplicación. Esto permite utilizar bases de datos remotas sin conexión a internet.</string>
<string name="UseOfflineCache_summary">Mantener una copia de los ficheros de base de datos en el directorio caché de la aplicación. Esto permite usar las bases de datos incluso cuando el fichero no esté accesible.</string>
<string name="CreateBackups_title">Copias de seguridad locales</string>
<string name="CreateBackups_summary">Crear una copia de local después de cargar con éxito una base de datos.</string>
<string name="UpdatingBackup">Actualizando copia de seguridad local...</string>
@@ -334,7 +334,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="AcceptAllServerCertificates_title">Certificados SSL</string>
<string name="AcceptAllServerCertificates_summary">Definir el comportamiento cuando falla la validación de un certificado. Nota: puedes instalar certificados en tu dispositivo si la validación falla!</string>
<string name="ClearOfflineCache_title">¿Limpiar Cache?</string>
<string name="ClearOfflineCache_question">Esto borrará todos los archivos de base de datos en caché. ¡Se perderán los cambios que hizo estando fuera de línea que todavía no se ha sincronizado! ¿Continuar?</string>
<string name="ClearOfflineCache_question">Esto borrará todos los ficheros de base de datos cacheados. ¡Cualquier cambio que hubieras hecho mientras no tuvieras acceso a la base de datos fuentes y que no se hubiera sincronizado se perderá! ¿Continuar?</string>
<string name="CheckForFileChangesOnSave_title">Comprobar modificaciones</string>
<string name="CheckForFileChangesOnSave_summary">Compruebe si el archivo fue modificado externamente antes de guardar los cambios.</string>
<string name="CheckForDuplicateUuids_title">Buscar UUIDs duplicados</string>
@@ -368,7 +368,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="AskOverwriteBinary">¿Desea sobrescribir el binario existente con el mismo nombre?</string>
<string name="AskOverwriteBinary_title">¿Sobrescribir binario existente?</string>
<string name="AskOverwriteBinary_yes">Sobrescribir</string>
<string name="AskOverwriteBinary_no">Renombrar</string>
<string name="AskOverwriteBinary_no">Renombar</string>
<string name="AttachFailed">Error al agregar el archivo adjunto.</string>
<string name="RecycleBin">Papelera de reciclaje</string>
<string name="AskDeletePermanentlyEntry">¿Deseas eliminar esta entrada de forma permanente? Presiona No para mover a la Papelera de reciclaje.</string>
@@ -385,49 +385,49 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="suggest_improvements">Sugerir o votar para mejoras</string>
<string name="rate_app">Calificar esta aplicación</string>
<string name="translate_app">Traducir KP2A</string>
<string name="AddingEntry">Añadiendo entrada&#8230;</string>
<string name="AddingGroup">Añadiendo grupo&#8230;</string>
<string name="DeletingEntry">Eliminando entrada&#8230;</string>
<string name="DeletingGroup">Eliminando grupo&#8230;</string>
<string name="DeletingItems">Eliminando elementos&#8230;</string>
<string name="SettingPassword">Estableciendo contraseña&#8230;</string>
<string name="UndoingChanges">Descartando cambios&#8230;</string>
<string name="TransformingKey">Transformación de llave maestra&#8230;</string>
<string name="DecodingDatabase">Decodificando base de datos&#8230;</string>
<string name="ParsingDatabase">Análisis de base de datos&#8230;</string>
<string name="CheckingTargetFileForChanges">Comprobando el archivo de destino por si hay cambios&#8230;</string>
<string name="AddingEntry">Añadiendo entrada</string>
<string name="AddingGroup">Añadiendo grupo</string>
<string name="DeletingEntry">Eliminando entrada</string>
<string name="DeletingGroup">Eliminando grupo</string>
<string name="DeletingItems">Eliminando elementos</string>
<string name="SettingPassword">Estableciendo contraseña</string>
<string name="UndoingChanges">Descartando cambios</string>
<string name="TransformingKey">Transformación de llave maestra</string>
<string name="DecodingDatabase">Decodificando base de datos</string>
<string name="ParsingDatabase">Análisis de base de datos</string>
<string name="CheckingTargetFileForChanges">Comprobando el archivo de destino por si hay cambios</string>
<string name="TitleSyncQuestion">¿Combinar cambios?</string>
<string name="MessageSyncQuestion">El archivo de base de datos fue modificado externamente. ¿Quieres cargar y combinar los cambios antes de guardar? Seleccione No si desea sobrescribir los cambios externos.</string>
<string name="SynchronizingDatabase">Combinando cambios&#8230;</string>
<string name="SynchronizingDatabase">Combinando cambios</string>
<string name="YesSynchronize">Si, combinar</string>
<string name="NoOverwrite">No, sobreescribir</string>
<string name="UseOfflineMode">Trabajar sin conexión</string>
<string name="UseOnlineMode">Trabajar con conexíon</string>
<string name="UseOfflineMode_Info">Evitar cualquier tráfico de red usando la copia local del archivo. Los cambios se almacenan en la memoria local y se cargarán cuando se vuelva al modo con conexión.</string>
<string name="InOfflineMode">Trabajar sin conexión.</string>
<string name="SynchronizingCachedDatabase">Sincronización de base de datos en caché&#8230;</string>
<string name="DownloadingRemoteFile">Descargando archivo remoto&#8230;</string>
<string name="UploadingFile">Cargando archivo&#8230;</string>
<string name="RestoringRemoteFile">Restaurando archivo remoto&#8230;</string>
<string name="UseOfflineMode">Trabajar con caché interna sólo</string>
<string name="UseOnlineMode">Sincronizar la copia caché con la fuente</string>
<string name="UseOfflineMode_Info">Se ha cargado la base de datos de la caché interna. Los cambios se almacenan en la caché interna sólo y sólamente se sincronizarán cuando seleccione Sincronizar copia caché con fuente.</string>
<string name="InOfflineMode">Trabajando con la cache interna sólo.</string>
<string name="SynchronizingCachedDatabase">Sincronización de base de datos en caché</string>
<string name="DownloadingRemoteFile">Cargando fichero fuente…</string>
<string name="UploadingFile">Guardar archivo…</string>
<string name="RestoringRemoteFile">Restaurando archivo origen…</string>
<string name="FilesInSync">Los archivos están sincronizados.</string>
<string name="SynchronizedDatabaseSuccessfully">¡Base de datos sincronizada correctamente!</string>
<string name="CheckingDatabaseForChanges">Comprobando la base de datos por si hay cambios&#8230;</string>
<string name="CouldNotSaveToRemote">No se pudo salvar al remoto: %1$s. Guarde de nuevo o utilice el menú Sincronizar cuando conexión remota esté disponible de nuevo.</string>
<string name="CouldNotLoadFromRemote">No se pudo abrir del remoto: %1$s. Se ha cargado el archivo de la memoria caché local. Aun puede hacer cambios en la base de datos y sincronizarlos posteriormente.</string>
<string name="UpdatedRemoteFileOnLoad">Archivo remoto actualizado.</string>
<string name="NotifyOpenFromLocalDueToConflict">Se ha abierto el archivo local debido a un conflicto con los cambios en el archivo remoto. Use el Menú Sincronizar para combinarlos.</string>
<string name="LoadedFromRemoteInSync">Memoria caché y archivos remotos están sincronizandos.</string>
<string name="UpdatedCachedFileOnLoad">Copia caché local de %1$s actualizada.</string>
<string name="CheckingDatabaseForChanges">Comprobando la base de datos por si hay cambios</string>
<string name="CouldNotSaveToRemote">No se puedo guardar fichero fuente: %1$s. Salve de nuevo o use el menú Sincronizar cuando el fichero vuelva a estar accesible.</string>
<string name="CouldNotLoadFromRemote">No se pudo acceder al fichero fuente: %1$s. Fichero cargado desde la caché interna. Todavía puedes hacer cambios en la base de datos y sincronizar más tarde.</string>
<string name="UpdatedRemoteFileOnLoad">Archivo fuente actualizado.</string>
<string name="NotifyOpenFromLocalDueToConflict">Abierto el archivo cacheado internamente debido a conflicto con los cambios en el archivo fuente. Use el menú Sincronizar para combinar.</string>
<string name="LoadedFromRemoteInSync">Ficheros fuente y cache estan sincronizados.</string>
<string name="UpdatedCachedFileOnLoad">Actualizada copia de caché interna de %1$s.</string>
<string name="RemoteDatabaseUnchanged">No se han detectado cambios.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Archivo auxiliar OTP en caché actualizado: el contador remoto fue mayor.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Archivo auxiliar OTP en caché actualizado: el contador local fue mayor.</string>
<string name="SynchronizingOtpAuxFile">Sincronizando archivo auxiliar OTP&#8230;</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">Actualizado fichero auxiliar OTP cacheado: Contador fuente era superior.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">Actualizado fichero auxiliar de fuente OTP: Contador local era superior.</string>
<string name="SynchronizingOtpAuxFile">Sincronizando archivo auxiliar OTP</string>
<string name="database_file">base de datos</string>
<string name="otp_aux_file">Archivo auxiliar OTP</string>
<string name="ErrorOcurred">Se ha producido un error:</string>
<string name="DuplicateUuidsError">Base de datos corupta: Se han encontrado indices duplicados. (Se guardó con Minikeepass?) Por favor, volver a importar en una base de datos nueva con Keepass 2 para PC y elegir \'crear indices nuevos\'.</string>
<string name="DuplicateUuidsErrorAdditional">Puede deshabilitar este mensaje de error en Configuración/Configuración de la Aplicación/Manejo de archivos/Buscar UUIDs duplicados. Por favor tenga en cuenta que es posible que experimente un comportamiento inesperado. Se recomienda reparar la base de datos.</string>
<string name="synchronize_database_menu">Sincronizar base de datos&#8230;</string>
<string name="synchronize_database_menu">Sincronizar base de datos</string>
<string name="CannotMoveGroupHere">No se puede mover el grupo a este grupo.</string>
<string name="donate_question">¡Hoy es Oktoberfest! Si te gusta Keepass2Android: ¿no sería un buen día para invitarme a una cerveza?</string>
<string name="donate_bday_question">¿10 de mayo? Es mi cumpleaños! Si te gusta esta aplicación, ¿por qué no enviarme una felicitación de cumpleaños junto con un pequeño regalo de cumpleaños? Esto realmente me haría feliz! :-)</string>
@@ -472,10 +472,9 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="hint_key_file">Elija si desea utilizar un archivo llave además su contraseña maestra:</string>
<string name="use_key_file">Usar el archivo llave</string>
<string name="error_adding_keyfile">¡Error al añadir el archivo llave!</string>
<string name="init_otp">Cargar archivo auxiliar de OTP&#8230;</string>
<string name="init_otp">Cargar archivo auxiliar de OTP</string>
<string name="otp_explanation">Introduzca la siguiente contraseña de único uso (OTPs). Pase su Yubikey NEO en la parte trasera de su dispositivo para introducirse a través de NFC.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">No se pudo encontrar una aplicación que puede manejar el desafío. Por favor, instale el Yubichallenge de Google Play.</string>
<string name="CouldntLoadOtpAuxFile">No se pudo cargar el archivo auxiliar de OTP!</string>
<string name="CouldntLoadOtpAuxFile_Hint">Por favor utilice el plugin OtpKeyProv en KeePass 2.x (PC) para configurar la base de datos para su uso con OTPs!</string>
<string name="otp_discarded_because_no_db">Primero seleccione base de datos. OTP es descartada por razones de seguridad.</string>
@@ -486,7 +485,10 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="CouldntParseOtpSecret">Error al analizar el secreto OTP!</string>
<string name="OtpKeyError">Error al crear la clave OTP. Asegúrese de que ha introducido las OTPs correctas.</string>
<string name="ErrorUpdatingOtpAuxFile">¡Error actualizando el archivo OTP auxiliar!</string>
<string name="SavingOtpAuxFile">Guardando el archivo auxiliar OTP&#8230;</string>
<string name="SavingOtpAuxFile">Guardando el archivo auxiliar OTP</string>
<string name="NoChallengeApp">No se pudo encontrar una aplicación que puede manejar el desafio.</string>
<string name="PleaseInstallApp">Por favor instale %1$s desde Google Play.</string>
<string name="AppOutdated">%1$s ya no está soportado.</string>
<string name="bad_resp">La respuesta correspondiente al desafío es incorrecta.</string>
<string name="CouldntLoadChalAuxFile">No se pudo cargar el archivo auxiliar de desafío!</string>
<string name="CouldntLoadChalAuxFile_Hint">Por favor utilice el plugin KeeChallenge en KeePass 2.x (PC) para configurar la base de datos para su uso con el protocolo desafío-respuesta!</string>
@@ -500,7 +502,7 @@ mediante la autenticación de huellas dactilares. Esto permite desbloquear la ba
<string name="DebugLog_title">Usar el archivo de registro</string>
<string name="DebugLog_summary">Escribir salida de app a fichero local de log</string>
<string name="DebugLog_send">Enviar registro de depuración...</string>
<string name="loading">Cargando&#8230;</string>
<string name="loading">Cargando</string>
<string name="plugins">Plug-ins</string>
<string name="plugin_packagename">Nombre del paquete:</string>
<string name="plugin_description">Descripción (no verificada):</string>
@@ -600,6 +602,14 @@ El Archivo está dañado. \n
<string name="ErrorReportAsk">Preguntar después del error</string>
<string name="ErrorReportPrefTitle">Enviar informe de errores</string>
<string name="ShowKeyboardDuringFingerprintAuth">Mostrar teclado para entrada de contraseña estando activada la exploración de huella digital.</string>
<string name="ChangeLog_1_06">
Versión 1.06\n
* Cambio a ykDroid en lugar de YubiChallenge como aplicación para Desafio-Respuesta Yubikey.\n
* Implementado soporte para Desafio-Respuesta estilo KeepassXC. Nota: Formato de base de datos debe ser KDBX4!\n
* Evitar cargar ficheros en papelera de Google Drive\n
* Cambiada implmementación TLS por FTPS, añadida solución alternativa al error JSch con servidores soportando gssapi-with-mic\n
* correción de errores\n
</string>
<string name="ChangeLog_1_05">
Versión 1.05\n
* Uso de canales de notificación para Android 8, que permite la configuración a través de los ajustes del sistema\n
@@ -920,6 +930,7 @@ Publicación inicial</string>
<item>Contraseña + secreto OTP (modo de recuperación)</item>
<item>Contraseña + desafío-respuesta</item>
<item>Contraseña + secreto de desafío-respuesta (modo de recuperación)</item>
<item>Contraseña + Desafio-Respuesta para Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Ignorar errores de validación de certificado</item>
@@ -934,6 +945,7 @@ Publicación inicial</string>
<string name="show_autofill_help">Mostrar ayuda de Autocompletado</string>
<string name="autofill_sign_in_prompt">Completar con Keepass2Android</string>
<string name="invalid_link_association">No se pudo asociar el dominio web %1$s con la app %2$s</string>
<string name="enable_fingerprint_hint">Keepass2Android ha detectado hardware de huellas dactilares. ¿Desea activar desbloqueo de esta base de datos mediante huella digital?</string>
<string name="understand">Entiendo</string>
<string name="dont_show_again">No volver a mostrar</string>
<string name="masterkey_infotext_head">¿Recuerda su contraseña maestra?</string>

View File

@@ -51,7 +51,7 @@
<string name="clipboard_timeout">Arbelaren dembora-muga</string>
<string name="clipboard_timeout_summary">Erabiltzaile-izena edo pasahitza kopiatu eta gero arbela garbitzeko denbora-muga</string>
<string name="entry_is_available">eskuragarri dago</string>
<string name="creating_db_key">Datu-basearen gakoa sortzen&#8230;</string>
<string name="creating_db_key">Datu-basearen gakoa sortzen</string>
<string name="current_group">Uneko taldea</string>
<string name="current_group_root">Uneko taldea: Erroa</string>
<string name="database">Datu-basea</string>
@@ -129,7 +129,7 @@
<string name="length">Luzera</string>
<string name="list_size_title">Talde zerrendaren tamaina</string>
<string name="list_size_summary">Talde-zerrendaren testuaren tamaina</string>
<string name="loading_database">Datu-basea kargatzen&#8230;</string>
<string name="loading_database">Datu-basea kargatzen</string>
<string name="lowercase">Hizki xeheak</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Maskaratu pasahitza</string>
@@ -165,12 +165,13 @@
<string name="pass_filename">KeePass datu-basearen fitxategi-izena</string>
<string name="password_title">Idatzi datu-basearen pashitza</string>
<string name="master_key_type">Hautatu gako nagusi mota:</string>
<string name="progress_create">Datu-base berria sortzen&#8230;</string>
<string name="progress_create">Datu-base berria sortzen</string>
<string name="create_database">Sortu datu-basea</string>
<string name="progress_title">Lanean&#8230;</string>
<string name="progress_title">Lanean</string>
<string name="remember_keyfile_summary">Gako fitxategien kokalekua gogoratzen du</string>
<string name="remember_keyfile_title">Gorde gako-fitxategia</string>
<string name="remove_from_filelist">Kendu</string>
<string name="edit">Editatu</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">Erroa</string>
<string name="rounds">Zifratze errondak</string>
@@ -178,8 +179,8 @@
<string name="rounds_hint">errondak</string>
<string name="argon2memory">Argon 2rentzako memoria (bytetan)</string>
<string name="database_name">Datu-basearen izena</string>
<string name="saving_database">Datu-basea gordetzen&#8230;</string>
<string name="exporting_database">Datu-basea esportatzen&#8230;</string>
<string name="saving_database">Datu-basea gordetzen</string>
<string name="exporting_database">Datu-basea esportatzen</string>
<string name="export_database_successful">Datu-basea ongi esportatu da!</string>
<string name="space">Espazioa</string>
<string name="search_label">Bilatu</string>
@@ -271,35 +272,28 @@
<string name="suggest_improvements">Proposatu edo bozkatu hobekuntzak</string>
<string name="rate_app">Baloratu aplikazio hau</string>
<string name="translate_app">Itzuli KP2A</string>
<string name="AddingEntry">Sarrera gehitzen&#8230;</string>
<string name="AddingGroup">Taldea gehitzen&#8230;</string>
<string name="DeletingEntry">Sarrera ezabatzen&#8230;</string>
<string name="DeletingGroup">Taldea ezabatzen&#8230;</string>
<string name="DeletingItems">Elementuak ezabatzen&#8230;</string>
<string name="SettingPassword">Pasahitza ezartzen&#8230;</string>
<string name="UndoingChanges">Aldaketak desegiten&#8230;</string>
<string name="TransformingKey">Gako nagusia transformatzen&#8230;</string>
<string name="DecodingDatabase">Datu-basea deskodetzen&#8230;</string>
<string name="ParsingDatabase">Datu-basea analizatzen&#8230;</string>
<string name="AddingEntry">Sarrera gehitzen</string>
<string name="AddingGroup">Taldea gehitzen</string>
<string name="DeletingEntry">Sarrera ezabatzen</string>
<string name="DeletingGroup">Taldea ezabatzen</string>
<string name="DeletingItems">Elementuak ezabatzen</string>
<string name="SettingPassword">Pasahitza ezartzen</string>
<string name="UndoingChanges">Aldaketak desegiten</string>
<string name="TransformingKey">Gako nagusia transformatzen</string>
<string name="DecodingDatabase">Datu-basea deskodetzen</string>
<string name="ParsingDatabase">Datu-basea analizatzen</string>
<string name="TitleSyncQuestion">Bateratu aldaketak?</string>
<string name="SynchronizingDatabase">Aldaketak bateratzen&#8230;</string>
<string name="SynchronizingDatabase">Aldaketak bateratzen</string>
<string name="YesSynchronize">Bai, bateratu</string>
<string name="NoOverwrite">Ez, gainidatzi</string>
<string name="UseOfflineMode">Egin lan deskonektatua</string>
<string name="UseOnlineMode">Egin lan sarean</string>
<string name="InOfflineMode">Egin lan deskonektatuta.</string>
<string name="SynchronizingCachedDatabase">Katxeatutako datu-basea sinkronizatzen&#8230;</string>
<string name="DownloadingRemoteFile">Urruneko fitxategia deskargatzen&#8230;</string>
<string name="UploadingFile">Fitxategia igotzen&#8230;</string>
<string name="RestoringRemoteFile">Urruneko fitxategia berreskuratzen&#8230;</string>
<string name="SynchronizingCachedDatabase">Katxeatutako datu-basea sinkronizatzen…</string>
<string name="FilesInSync">Fitxategiak sinkronizatuta daude</string>
<string name="CheckingDatabaseForChanges">Datu-basean aldaketarik dagoen egiaztatzen&#8230;</string>
<string name="UpdatedRemoteFileOnLoad">Igo urruneko fitxategia.</string>
<string name="CheckingDatabaseForChanges">Datu-basean aldaketarik dagoen egiaztatzen</string>
<string name="RemoteDatabaseUnchanged">Ez da aldaketarik antzeman.</string>
<string name="database_file">datu-basearen fitxategia</string>
<string name="otp_aux_file">OTP fitxategi lagungarria</string>
<string name="ErrorOcurred">Errore bat gertatu da:</string>
<string name="synchronize_database_menu">Sinkronizatu datu-basea&#8230;</string>
<string name="synchronize_database_menu">Sinkronizatu datu-basea</string>
<string name="CannotMoveGroupHere">Ezin da taldea talde honetara ekarri.</string>
<string name="ok_donate">Kontatu gehiago!</string>
<string name="no_thanks">Ez, ez dut hain gustuko</string>
@@ -331,13 +325,13 @@
<string name="key_file">Gako-fitxategia</string>
<string name="use_key_file">Erabili gako-fitxategia</string>
<string name="error_adding_keyfile">Errorea gako-fitxategia gehitzean!</string>
<string name="init_otp">Kargatu OTP fitxategi lagungarria&#8230;</string>
<string name="init_otp">Kargatu OTP fitxategi lagungarria</string>
<string name="otp_hint">OTP %1$d</string>
<string name="otpsecret_hint">OTP sekretua (adib. 01 23 ab cd&#8230;)</string>
<string name="SavingOtpAuxFile">OTP fitxategi lagungarria gordetzen&#8230;</string>
<string name="otpsecret_hint">OTP sekretua (adib. 01 23 ab cd)</string>
<string name="SavingOtpAuxFile">OTP fitxategi lagungarria gordetzen</string>
<string name="TrayTotp_SettingsField_title">TOTP ezarpenen eremu-izena</string>
<string name="TrayTotp_prefs">TrayTotp</string>
<string name="loading">Kargatzen&#8230;</string>
<string name="loading">Kargatzen</string>
<string name="plugins">Pluginak</string>
<string name="plugin_packagename">Paketearen izena:</string>
<string name="plugin_description">Deskripzioa (egiaztatu gabe):</string>
@@ -383,6 +377,7 @@
<string name="AskAddTemplatesTitle">Gehitu txantiloiak?</string>
<string name="AskAddTemplatesMessage">Keepass2Androidek E-posta kontuen, Haririk gabeko sareen pasahitzen, ohar seguruen eta abarren txantiloiak ditu. Zure datu-basera gehitu nahi dituzu? Ezetz aukeratzen baduzu geroago ere gehitu ditzakezu datu-basearen ezarpenetan.</string>
<string name="Continue">Jarraitu</string>
<string name="DbQuicklockedChannel_name">QuickUnlock</string>
<string name="ErrorReportTitle">Keepass2Android: Errore bat gertatu da.</string>
<string name="ErrorReportEnable">Gaitu</string>
<string name="ErrorReportDisable">Desgaitu</string>
@@ -466,6 +461,7 @@
<item>Password + OTP secret (recovery mode)</item>
<item>Pasahitza + Galdera-erantzuna</item>
<item>Password + Challenge-Response secret (recovery mode)</item>
<item>Password + Challenge-Response for Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Ignore certificate validation failures</item>

View File

@@ -4,8 +4,8 @@
<resources>
<string name="about_feedback">ﺑﺎﺯﺧﻮﺭﺩ</string>
<string name="about_homepage">صفحهٔ نخست</string>
<string name="AboutText">برنامهٔ Keepass2Android یک برنامهٔ مدیریت گذرواژه است که دسترسی خواندنی/نوشتنی به پایگاه‌های دادهٔ KeePass 2.x را در اندروید فراهم می‌کند.</string>
<string name="CreditsText">این رابط کاربری بر اساس نسخه‌ای از KeepassDroid ساختهٔ پِلین بِرِین ایجاد شده است. کدهای لازم برای کار با پایگاه داده بر اساس کدهای KeePass ساختهٔ دامینیک رایکل ایجاد شده است. ربات اندروید بازتولید یا تغییریافتهٔ کاری است که گوگل ساخته و به‌اشتراک گذاشته است و ما بر اساس بندهای اجازه‌نامهٔ Creative Commons 3.0 از آن استفاده کرده‌ایم.</string>
<string name="AboutText">برنامهٔ Keepass2Android یک برنامهٔ مدیریت گذرواژه است که دسترسی خواندنی/نوشتنی به پایگاه‌داده‌های KeePass 2.x را در اندروید فراهم می‌کند.</string>
<string name="CreditsText">این رابط کاربری بر اساس نسخه‌ای از KeepassDroid ساختهٔ پِلین بِرِین ایجاد شده است. کدهای لازم برای کار با پایگاهداده بر اساس کدهای KeePass ساختهٔ دامینیک رایکل ایجاد شده است. ربات اندروید بازتولید یا تغییریافتهٔ کاری است که گوگل ساخته و به‌اشتراک گذاشته است و ما بر اساس بندهای اجازه‌نامهٔ Creative Commons 3.0 از آن استفاده کرده‌ایم.</string>
<string name="CreditsTextSFTP">پشتیبانی از SFTP با استفاده از کتابخانهٔ JSch ساختهٔ شرکت
JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="CreditsIcons">نماد چکش را جان کَزِرتا ساخته است (از Noun Project). نماد پنگوئن را آدریانو اِمِریک ساخته است (از Noun Project). نماد پر را جُون تِستا ساخته است (از Noun Project). نماد سیب را اِیوا رَوئل ساخته است (از Noun Project). نماد تصویر از اینجاست https://icons8.com/icon/5570/Picture.</string>
@@ -24,7 +24,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="app_name_nonet">Keepass2Android آفلاین</string>
<string name="short_app_name_nonet">KP2A آفلاین</string>
<string name="app_timeout">مهلت برنامه</string>
<string name="app_timeout_summary">اگر با برنامه کار نکنید پس از این مدت‌زمان پایگاه داده قفل می‌شود.</string>
<string name="app_timeout_summary">اگر با برنامه کار نکنید پس از این مدت‌زمان پایگاهداده قفل می‌شود.</string>
<string name="kill_app_label">بستن کامل برنامه</string>
<string name="show_kill_app">دکمهٔ بستن</string>
<string name="show_kill_app_summary">در صفحهٔ نمایش گذرواژه دکمه‌ای برای بستن کامل برنامه اضافه می‌کند (برای کاربران بدگمان)</string>
@@ -47,18 +47,18 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="QuickUnlock_prefs">زودگشایی</string>
<string name="FileHandling_prefs">فایل‌گردانی</string>
<string name="keyboard_prefs">صفحه‌کلید</string>
<string name="export_prefs">صدور پایگاه داده...</string>
<string name="export_prefs">صدور پایگاهداده...</string>
<string name="fingerprint_prefs">قفل‌گشایی با اثرانگشت</string>
<string name="import_db_prefs">واردکردن پایگاه داده به پوشهٔ داخلی</string>
<string name="import_db_prefs">واردکردن پایگاهداده به پوشهٔ داخلی</string>
<string name="import_keyfile_prefs">واردکردن فایل کلید به پوشهٔ داخلی</string>
<string name="keyboardswitch_prefs">تعویض صفحه‌کلید</string>
<string name="OnlyAvailableForLocalFiles">فقط برای فایل‌های محلی است.</string>
<string name="FileIsInInternalDirectory">فایل در پوشهٔ داخلی ذخیره شد.</string>
<string name="DatabaseFileMoved">فایل پایگاه داده در پوشهٔ داخلی کپی شد. دکمهٔ تأیید را بزنید تا فایل از محل جدید باز شود. توجه: فراموش نکنید که به‌طور منظم فایل پایگاه داده را در محلی امن ذخیره کنید!</string>
<string name="DatabaseFileMoved">فایل پایگاهداده در پوشهٔ داخلی کپی شد. دکمهٔ تأیید را بزنید تا فایل از محل جدید باز شود. توجه: فراموش نکنید که به‌طور منظم فایل پایگاهداده را در محلی امن ذخیره کنید!</string>
<string name="KeyfileMoved">فایل کلید به پوشهٔ داخلی کپی شد. قبل از اینکه از مکان کنونی پاکش کنید حواستان باشد که در مکانی امن یک کپی از این فایل داشته باشید!</string>
<string name="KeyfileMoveRequiresRememberKeyfile">وقتی مکان فایل کلید ذخیره نمی‌شود نمی‌توان از پوشهٔ داخلی استفاده کرد. تنظیمات امنیتی را تغیر دهید.</string>
<string name="unlock_database_button">بگشا</string>
<string name="unlock_database_title">قفل‌گشایی پایگاه داده</string>
<string name="unlock_database_title">قفل‌گشایی پایگاهداده</string>
<string name="brackets">پرانتزها</string>
<string name="cancel">لغو</string>
<string name="ClearClipboard">بریده‌دان پاک شد.</string>
@@ -70,7 +70,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="entry_is_available">موجود است</string>
<string name="not_possible_im_picker">بازکردن منو برای انتخاب روش ورودی ناموفق بود. لطفاً صفحه‌کلید را به‌صورت دستی فعال کنید.</string>
<string name="please_activate_keyboard">لطفاً صفحه‌کلید Keepass2Android را در تنظیمات سیستم خود فعال کنید.</string>
<string name="creating_db_key">در حال ایجاد کلید پایگاه داده&#8230;</string>
<string name="creating_db_key">در حال ایجاد کلید پایگاهداده&#8230;</string>
<string name="current_group">گروه جاری</string>
<string name="current_group_root">گروه جاری: ریشه</string>
<string name="database">پایگاه داده</string>
@@ -89,15 +89,15 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="disable_fingerprint_unlock">غیر‌فعال‌کردن قفل‌گشایی با اثرانگشت</string>
<string name="enable_fingerprint_unlock">فعال‌کردن قفل‌گشایی کامل با اثرانگشت</string>
<string name="enable_fingerprint_quickunlock">فعال‌کردن قفل‌گشایی با اثرانگشت برای زودگشایی</string>
<string name="fingerprint_unlock_hint">برای قفل‌گشایی پایگاه داده حسگر را لمس کنید</string>
<string name="fingerprint_unlock_hint">برای قفل‌گشایی پایگاهداده حسگر را لمس کنید</string>
<string name="fingerprint_unlock_failed">قفل‌گشایی با اثرانگشت ناموفق بود. سیستم‌عامل اندروید کلید رمزگشایی را نامعتبر کرده. این مسئله معمولاً وقتی اتفاق می‌افتد که اثرانگشت جدیدی ثبت شده یا تنظیمات امنیتی تغییر کرده باشد. </string>
<string name="fingerprint_disabled_wrong_masterkey">قفل‌گشایی پایگاه داده ناموفق بود: کلید ترکیبی نامعتبر. قفل‌گشایی با اثرانگشت غیرفعال شد زیرا ظاهراً شاه‌رمز ذخیره‌شده، دیگر معتبر نیست. </string>
<string name="fingerprint_disabled_wrong_masterkey">قفل‌گشایی پایگاهداده ناموفق بود: کلید ترکیبی نامعتبر. قفل‌گشایی با اثرانگشت غیرفعال شد زیرا ظاهراً شاه‌رمز ذخیره‌شده، دیگر معتبر نیست. </string>
<string name="fingerprint_reenable">لطفاً قفل‌گشایی با اثرانگشت را برای شاه‌رمز جدید مجدداً فعال کنید.</string>
<string name="fingerprint_reenable2">لطفاً ابتدا با گذرواژه‌تان قفل را باز کنید و سپس قفل‌گشایی با اثرانگشت را در تنظیمات پایگاه داده فعال کنید.</string>
<string name="fingerprint_reenable2">لطفاً ابتدا با گذرواژه‌تان قفل را باز کنید و سپس قفل‌گشایی با اثرانگشت را در تنظیمات پایگاهداده فعال کنید.</string>
<string name="FingerprintInitFailed">راه‌اندازی حسگر اثرانگشت ناموفق بود. </string>
<string name="enable_fingerprint_unlock_Info">شاه‌رمز شما را در این دستگاه ذخیره می‌کند. گذرواژه با استفاده از ذخیره‌گاه کلید اندروید رمزگذاری و با اعتبارسنجی اثرانگشتی محافظت می‌شود.</string>
<string name="enable_fingerprint_quickunlock_Info">می‌توانید از احراز هویت اثرانگشتی به‌جای کد زودگشایی استفاده کنید. هیچ‌گونه داده‌ای که مربوط به شاه‌رمزتان باشد، ذخیره نمی‌کند.</string>
<string name="enter_filename">نام فایل پایگاه داده را وارد کنید</string>
<string name="enter_filename">نام فایل پایگاهداده را وارد کنید</string>
<string name="entry_accessed">تاریخ دسترسی</string>
<string name="entry_cancel">لغو</string>
<string name="entry_comment">یادداشت</string>
@@ -121,11 +121,11 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="error_could_not_create_group">ساخت گروه ناموفق بود.</string>
<string name="error_could_not_create_parent">ساخت پوشهٔ والد ناموفق بود.</string>
<string name="error_database_exists">این فایل از پیش وجود دارد.</string>
<string name="error_database_settinoverrgs">شناسایی تنظیمات پایگاه داده ناموفق بود.</string>
<string name="error_database_settinoverrgs">شناسایی تنظیمات پایگاهداده ناموفق بود.</string>
<string name="error_failed_to_launch_link">بازگشایی لینک ناموفق بود.</string>
<string name="error_filename_required">نوشتن نام فایل ضروری است.</string>
<string name="error_file_not_create">ساخت فایل ناموفق بود</string>
<string name="error_invalid_db">پایگاه دادهٔ نامعتبر.</string>
<string name="error_invalid_db">پایگاهدادهٔ نامعتبر.</string>
<string name="error_invalid_path">مسیر نامعتبر.</string>
<string name="error_no_name">نوشتن نام ضروری است.</string>
<string name="error_nopass">یک گذرواژه یا فایل کلید لازم است.</string>
@@ -154,14 +154,14 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="hint_username">نام کاربری</string>
<string name="InvalidPassword">گذرواژه یا فایل کلید نامعتبر.</string>
<string name="invalid_algorithm">الگوریتم نامعتبر.</string>
<string name="invalid_db_sig">قالب پایگاه داده شناخته نشد.</string>
<string name="invalid_db_sig">قالب پایگاهداده شناخته نشد.</string>
<string name="keyfile_does_not_exist">فایل کلید وجود ندارد.</string>
<string name="no_keyfile_selected">هیچ فایل کلیدی انتخاب نشده.</string>
<string name="keyfile_is_empty">فایل کلید خالی است.</string>
<string name="length">طول</string>
<string name="list_size_title">اندازهٔ لیست گروه</string>
<string name="list_size_summary">اندازهٔ متن در لیست گروه</string>
<string name="loading_database">در حال بارگذاری پایگاه داده&#8230;</string>
<string name="loading_database">در حال بارگذاری پایگاهداده&#8230;</string>
<string name="lowercase">حروف کوچک</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">پنهان‌کردن گذرواژه</string>
@@ -181,7 +181,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="menu_donate">حمایت کنید...</string>
<string name="menu_edit">ویرایش</string>
<string name="menu_hide_password">گذرواژه را پنهان کن</string>
<string name="menu_lock">قفل‌کردن پایگاه داده</string>
<string name="menu_lock">قفل‌کردن پایگاهداده</string>
<string name="menu_open">باز‌کردن</string>
<string name="menu_close">بستن</string>
<string name="menu_rename">تغییر نام</string>
@@ -194,17 +194,17 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="never">هرگز</string>
<string name="yes">بله</string>
<string name="no">خير</string>
<string name="no_keys">هیچ مدخلی در پایگاه داده یا گروه وجود ندارد.</string>
<string name="no_keys">هیچ مدخلی در پایگاهداده یا گروه وجود ندارد.</string>
<string name="no_results">چیزی پیدا نشد</string>
<string name="no_url_handler">گرداننده‌ای برای این url وجود ندارد.</string>
<string name="open_recent">بازکردن آخرین پایگاه داده (لمس کنید تا باز شود)</string>
<string name="open_recent">بازکردن آخرین پایگاهداده (لمس کنید تا باز شود)</string>
<string name="omitbackup_title">در مدخل‌های پشتیبان و سطل بازیافت نگرد</string>
<string name="omitbackup_summary">چیزی از گروه‌های پشتیبان و سطل بازیافت در نتایج جست‌وجو نباشد</string>
<string name="pass_filename">نام فایل پایگاه دادهٔ KeePass</string>
<string name="password_title">گذرواژهٔ پایگاه داده را وارد کنید</string>
<string name="pass_filename">نام فایل پایگاهدادهٔ KeePass</string>
<string name="password_title">گذرواژهٔ پایگاهداده را وارد کنید</string>
<string name="master_key_type">نوع شاه‌کلید را انتخاب کنید:</string>
<string name="progress_create">در حال ساخت پایگاه دادهٔ جدید&#8230;</string>
<string name="create_database">ساخت پایگاه داده</string>
<string name="progress_create">در حال ساخت پایگاهدادهٔ جدید&#8230;</string>
<string name="create_database">ساخت پایگاهداده</string>
<string name="progress_title">در حال پردازش&#8230;</string>
<string name="remember_keyfile_summary">مکان فایل‌های کلید را به‌خاطر می‌سپارد</string>
<string name="remember_keyfile_title">ذخیره‌سازی فایل کلید</string>
@@ -218,11 +218,11 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="rounds_hint">دورها</string>
<string name="argon2memory">حافظه برای آرگون ۲ (بایت)</string>
<string name="argon2parallelism">موازی‌سازی برای آرگون ۲</string>
<string name="database_name">نام پایگاه داده</string>
<string name="database_name">نام پایگاهداده</string>
<string name="default_username">نام کاربری پیشفرض برای مدخل‌های جدید</string>
<string name="saving_database">در حال ذخیره‌سازی پایگاه داده&#8230;</string>
<string name="exporting_database">در حال صادرکردن پایگاه داده&#8230;</string>
<string name="export_database_successful">پایگاه داده با موفقیت صادر شد!</string>
<string name="saving_database">در حال ذخیره‌سازی پایگاهداده&#8230;</string>
<string name="exporting_database">در حال صادرکردن پایگاهداده&#8230;</string>
<string name="export_database_successful">پایگاهداده با موفقیت صادر شد!</string>
<string name="space">فاصله</string>
<string name="search_label">جست‌وجو</string>
<string name="show_password">نمایش گذرواژه</string>
@@ -240,10 +240,10 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="insert_element_here">اینجا بگذار</string>
<string name="twofish">Twofish</string>
<string name="underline">خط زیر</string>
<string name="unsupported_db_version">نسخهٔ پشتیبانی‌نشده از پایگاه داده.</string>
<string name="unsupported_db_version">نسخهٔ پشتیبانی‌نشده از پایگاهداده.</string>
<string name="uppercase">حروف بزرگ</string>
<string name="warning_read_only">اکنون کارت حافظه فقط-خواندنی است. شاید نتوانید تغییرات را در پایگاه داده ذخیره کنید.</string>
<string name="warning_unmounted">کارت SD بر روی دستگاهتان بار نشده. نمی‌توانید پایگاه داده‌تان را بارگذاری یا ایجاد کنید.</string>
<string name="warning_read_only">اکنون کارت حافظه فقط-خواندنی است. شاید نتوانید تغییرات را در پایگاهداده ذخیره کنید.</string>
<string name="warning_unmounted">کارت SD بر روی دستگاهتان بار نشده. نمی‌توانید پایگاهداده‌تان را بارگذاری یا ایجاد کنید.</string>
<string name="version_label">نسخه</string>
<string name="version_history">تاریخچهٔ نسخه‌ها</string>
<string name="author">توسعه‌دهندهٔ Keepass2Android فیلیپ کُروکُل است.</string>
@@ -259,16 +259,16 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="TanExpiresOnUse_summary">کدهای TAN پس از یک بار استفاده منقضی شود</string>
<string name="ShowUsernameInList_title">نمایش نام کاربری در لیست</string>
<string name="ShowUsernameInList_summary">نام‌های کاربری زیر عنوان مدخل نشان داده شود. مواقعی که چند حساب یا چند TAN وجود دارد، سودمند است.</string>
<string name="RememberRecentFiles_title">پایگاه‌های داده را به خاطر بسپار</string>
<string name="RememberRecentFiles_summary">پایگاه‌های داده‌ای که تازگی باز شدند را به خاطر بسپار و آن‌ها را در کادر بازکردن پایگاه داده نشان بده.</string>
<string name="RememberRecentFiles_title">پایگاه‌دادهها را به خاطر بسپار</string>
<string name="RememberRecentFiles_summary">پایگاه‌داده‌هایی که به‌تازگی باز شدهاند را به خاطر بسپار و آن‌ها را در کادر بازکردن پایگاهداده نشان بده.</string>
<string name="kp2a_findUrl">Keepass2Android: یافتن گذرواژه</string>
<string name="excludeExpiredEntries">مدخل‌های منقضی را شامل نشود</string>
<string name="search_options">گزینه‌ها</string>
<string name="caseSensitive">حساس به حالت حروف</string>
<string name="start_open_file">بازکردن فایل...</string>
<string name="start_create">ساخت پایگاه دادهٔ جدید...</string>
<string name="start_create">ساخت پایگاهدادهٔ جدید...</string>
<string name="start_open_url">بازکردن URL...</string>
<string name="start_create_import">واردکردن فایل در یک پایگاه دادهٔ جدید...</string>
<string name="start_create_import">واردکردن فایل در یک پایگاهدادهٔ جدید...</string>
<string name="enter_filename_details_url">نشانی اینترنتی را کامل بنویسید و با ذکر پروتکل آن مثلاً http://.</string>
<string name="enter_filename_details_create_import">فایل واردشونده را در در مرحلهٔ بعدی انتخاب می‌کنید.</string>
<string name="enable_quickunlock">زودگشایی فعال باشد</string>
@@ -278,7 +278,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="QuickUnlock_lockButton">بستن پایگاه داده</string>
<string name="QuickUnlockDefaultEnabled_title">زودگشایی به‌صورت پیشفرض فعال باشد</string>
<string name="QuickUnlockDefaultEnabled_summary">مشخص می‌کند زودگشایی به‌صورت پیشفرض فعال است یا خیر.</string>
<string name="ViewDatabaseSecure_title">محافظت از صفحهٔ نمایش پایگاه داده</string>
<string name="ViewDatabaseSecure_title">محافظت از صفحهٔ نمایش پایگاهداده</string>
<string name="ViewDatabaseSecure_summary">اگر فعال باشد عکس‌گرفتن از صفحه غیرفعال می‌شود و هیچ تصویری از برنامه در فهرست برنامه‌های اخیر باقی نمی‌ماند.</string>
<string name="QuickUnlockIconHidden_title">پنهان‌کردن نماد زودگشایی</string>
<string name="QuickUnlockIconHidden_summary">متأسفانه زودگشایی بدون نشان‌دادن آیکون در اعلانات کار نمی‌کند. این گزینه را انتخاب کنید تا از یک آیکون شفاف استفاده شود.</string>
@@ -317,13 +317,13 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="database_loaded_unlocked">%1$s: قفل نیست.</string>
<string name="credentials_dialog_title">اطلاعات اعتبارنامهٔ میزبان را وارد کنید</string>
<string name="UseFileTransactions_title">تراکنش‌های فایلی</string>
<string name="UseFileTransactions_summary">از تراکنش‌های فایلی برای نوشتن پایگاه‌های داده استفاده کن</string>
<string name="UseFileTransactions_summary">از تراکنش‌های فایلی برای نوشتن پایگاه‌دادهها استفاده کن</string>
<string name="LockWhenScreenOff_title">با خاموش‌شدنِ صفحه، قفل شود</string>
<string name="LockWhenScreenOff_summary">وقتی نمایشگر خاموش شد پایگاه داده قفل شود.</string>
<string name="LockWhenScreenOff_summary">وقتی نمایشگر خاموش شد پایگاهداده قفل شود.</string>
<string name="ClearPasswordOnLeave_title">پاک‌کردن شاه‌رمز واردشده</string>
<string name="ClearPasswordOnLeave_summary">اگر بدون گشودن قفل پایگاه داده، صفحه را ترک کردم شاه‌رمز واردشده پاک شود.</string>
<string name="ClearPasswordOnLeave_summary">اگر بدون گشودن قفل پایگاهداده، صفحه را ترک کردم شاه‌رمز واردشده پاک شود.</string>
<string name="LockWhenNavigateBack_title">با رفتن از برنامه قفل شود</string>
<string name="LockWhenNavigateBack_summary">هنگامی که با زدن کلید برگشت برنامه را ترک کردم، پایگاه داده قفل شود.</string>
<string name="LockWhenNavigateBack_summary">هنگامی که با زدن کلید برگشت برنامه را ترک کردم، پایگاهداده قفل شود.</string>
<string name="ActivateSearchViewOnStart_title">تمرکز روی فیلد جستجو هنگام شروع</string>
<string name="ActivateSearchViewOnStart_summary">هنگام جستجوی مدخل‌ها یا پس از قفل‌گشایی پایگاه، فیلد جستجو فعال می‌شود</string>
<string name="NoDonateOption_title">مخفی‌کردن گزینهٔ هدیه</string>
@@ -331,20 +331,18 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="NoDonateOption_question">بدون حمایت‌های شما این برنامه نمی‌پاید و پیوسته بهتر نمی‌شود! اگر هنوز حمایت نکرده‌اید لطفاً هم‌اکنون دست‌به‌کار شوید.</string>
<string name="NoDonationReminder_title">دیگر هیچ‌وقت درخواست حمایت نکن</string>
<string name="NoDonationReminder_summary">چندرغاز هم نمی‌دهم یا قبلاً حمایت کرده‌ام. حتی روز تولد سازندهٔ برنامه هم درخواست هدیه نکن.</string>
<string name="UseOfflineCache_title">پایگاه داده در نهانگاه</string>
<string name="UseOfflineCache_summary">نسخه‌ای از فایل‌های پایگاه دادهٔ دوردست را در پوشهٔ cache برنامه نگه دار. با این کار حتی وقتی که آفلاینید امکان استفاده از پایگاه دادهٔ دوردست را خواهید داشت.</string>
<string name="UseOfflineCache_title">پایگاهداده در نهانگاه</string>
<string name="CreateBackups_title">پشتیبان‌های محلی</string>
<string name="CreateBackups_summary">پس از بارگذاری موفقیت‌آمیز پایگاه داده، یک نسخهٔ پشتیبان از آن روی دستگاه ایجاد می‌شود.</string>
<string name="CreateBackups_summary">پس از بارگذاری موفقیت‌آمیز پایگاهداده، یک نسخهٔ پشتیبان از آن روی دستگاه ایجاد می‌شود.</string>
<string name="UpdatingBackup">به‌روزآوری پشتیبان محلی...</string>
<string name="LocalBackupOf">پشتیبان محلی از %1$s</string>
<string name="AcceptAllServerCertificates_title">گواهی‌های SSL</string>
<string name="AcceptAllServerCertificates_summary">در صورتی که اعتبارسنجی گواهی ناموفق بود، برنامه چگونه رفتار کند؟ توجه: اگر اعتبارسنجی ناموفق باشد می‌توانید خودتان گواهی‌ها را روی دستگاه نصب کنید!</string>
<string name="ClearOfflineCache_title">نهانگاه (cache) پاک شود؟</string>
<string name="ClearOfflineCache_question">با این کار همهٔ فایل‌های پایگاه دادهٔ نهانگاهی پاک می‌شود. هر تغییری که در زمان آفلاین‌بودن انجام داده باشید و هنوز همگام نشده باشد از بین خواهد رفت! ادامه می‌دهید؟</string>
<string name="CheckForFileChangesOnSave_title">بررسی تغییرات</string>
<string name="CheckForFileChangesOnSave_summary">قبل از ذخیره‌سازی بررسی کن آیا فایل بیرون از برنامه تغییر کرده یا خیر.</string>
<string name="CheckForDuplicateUuids_title">بررسی UUIDهای تکراری</string>
<string name="CheckForDuplicateUuids_summary">بررسی اینکه آیا فایل پایگاه داده با داشتن چندین مدخل هم‌شناسه خراب شده یا خیر. این مسئله می‌تواند رفتار غیرمنتظره‌ای به‌بار آورد.</string>
<string name="CheckForDuplicateUuids_summary">بررسی اینکه آیا فایل پایگاهداده با داشتن چندین مدخل هم‌شناسه خراب شده یا خیر. این مسئله می‌تواند رفتار غیرمنتظره‌ای به‌بار آورد.</string>
<string name="ShowCopyToClipboardNotification_title">اعلانات بریده‌دان</string>
<string name="ShowCopyToClipboardNotification_summary">دسترسی به نام کاربری و گذرواژه را از طریق نوار اعلان و بریده‌دان ممکن می‌کند. حواستان باشد گیر برنامه‌های رمزدزد نیفتید!</string>
<string name="ShowSeparateNotifications_title">اعلانات جداگانه</string>
@@ -364,13 +362,13 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="AutoSwitchBackKeyboard_title">برگشت صفحه‌کلید به حالت قبل</string>
<string name="AutoSwitchBackKeyboard_summary">وقتی مدخلی باز نیست، صفحه‌کلید قبلی فعال شود.</string>
<string name="ShowUnlockedNotification_title">آیکون اعلان وقتی قفل نیست</string>
<string name="ShowUnlockedNotification_summary">وقتی قفل پایگاه داده باز است یک اعلان نشان بده.</string>
<string name="ShowUnlockedNotification_summary">وقتی قفل پایگاهداده باز است یک اعلان نشان بده.</string>
<string name="IconVisibilityInfo_Android8_text">اندروید ۸ رفتار جدیدی را برای اعلان‌ها ارائه کرده است. اگر می‌خواهید آیکون اعلانات Keepass2Android را مخفی کنید، لطفاً آن را از طریق تنظیمات سیستم پیکربندی کنید. اهمیت دستهٔ اعلان را روی کمترین تنظیم کنید.</string>
<string name="IconVisibilityInfo_Android8_btnSettings">بازکردن تنظیمات</string>
<string name="DontCare">مهم نیست</string>
<string name="DocumentAccessRevoked">فایل برای Keepass2Android قابل‌دسترسی نیست. یا حذف شده یا اینکه اجازهٔ دسترسی به آن ستانده شده است. لطفاً آن را مجدداً باز کنید؛ مثلاً از «تغییر پایگاه داده» استفاده کنید.</string>
<string name="PreloadDatabaseEnabled_title">پیش‌بارگذاری فایل پایگاه داده</string>
<string name="PreloadDatabaseEnabled_summary">هنگام واردکردن گذرواژه، بارگذاری یا دانلود فایل پایگاه داده را در پس‌زمینه شروع کن.</string>
<string name="DocumentAccessRevoked">فایل برای Keepass2Android قابل‌دسترسی نیست. یا حذف شده یا اینکه اجازهٔ دسترسی به آن ستانده شده است. لطفاً آن را مجدداً باز کنید؛ مثلاً از «تغییر پایگاهداده» استفاده کنید.</string>
<string name="PreloadDatabaseEnabled_title">پیش‌بارگذاری فایل پایگاهداده</string>
<string name="PreloadDatabaseEnabled_summary">هنگام واردکردن گذرواژه، بارگذاری یا دانلود فایل پایگاهداده را در پس‌زمینه شروع کن.</string>
<string name="AskOverwriteBinary">به‌جای فایل موجود با همان نام نوشته شود؟</string>
<string name="AskOverwriteBinary_title">جایگزین فایل موجود شود؟</string>
<string name="AskOverwriteBinary_yes">جایگزینی</string>
@@ -402,41 +400,26 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="SettingPassword">در حال تنظیم گذرواژه&#8230;</string>
<string name="UndoingChanges">در حال خنثی‌کردن تغییرات&#8230;</string>
<string name="TransformingKey">در حال تبدیل شاه‌کلید&#8230;</string>
<string name="DecodingDatabase">در حال رمزگشایی پایگاه داده&#8230;</string>
<string name="ParsingDatabase">در حال خواندن پایگاه داده&#8230;</string>
<string name="DecodingDatabase">در حال رمزگشایی پایگاهداده&#8230;</string>
<string name="ParsingDatabase">در حال خواندن پایگاهداده&#8230;</string>
<string name="CheckingTargetFileForChanges">در حال بررسی تغییرات در فایل هدف&#8230;</string>
<string name="TitleSyncQuestion">تغییرات ادغام شود؟</string>
<string name="MessageSyncQuestion">فایل پایگاه داده بیرون از برنامه تغییر کرده است. مایلید پیش از ذخیره‌سازی، تغییرات را بارگذاری و ادغام کنیم؟ اگر می‌خواهید روی تغییراتی که بیرون برنامه انجام شده ذخیره کنید خیر را انتخاب کنید.</string>
<string name="MessageSyncQuestion">فایل پایگاهداده بیرون از برنامه تغییر کرده است. مایلید پیش از ذخیره‌سازی، تغییرات را بارگذاری و ادغام کنیم؟ اگر می‌خواهید روی تغییراتی که بیرون برنامه انجام شده ذخیره کنید خیر را انتخاب کنید.</string>
<string name="SynchronizingDatabase">در حال ادغام تغییرات&#8230;</string>
<string name="YesSynchronize">بله، ادغام کن</string>
<string name="NoOverwrite">خیر، به‌جای آن ذخیره کن</string>
<string name="UseOfflineMode">کار در حالت آفلاین</string>
<string name="UseOnlineMode">کار در حالت آنلاین</string>
<string name="UseOfflineMode_Info">پرهیز از هرگونه تبادل در شبکه با استفاده از نسخهٔ محلی فایل در نهانگاه. تغییرات صرفاً در نهانگاه محلی ذخیره می‌شود و فقط وقتی که به حالت آنلاین برگردید آپلود می‌شود.</string>
<string name="InOfflineMode">در حالت آفلاین است.</string>
<string name="SynchronizingCachedDatabase">در حال همگام‌سازی پایگاه دادهٔ نهانگاهی&#8230;</string>
<string name="DownloadingRemoteFile">در حال دانلود فایل از دوردست&#8230;</string>
<string name="UploadingFile">در حال آپلود فایل&#8230;</string>
<string name="RestoringRemoteFile">در حال بازیابی فایل‌ها از دوردست&#8230;</string>
<string name="SynchronizingCachedDatabase">در حال همگام‌سازی پایگاه‌دادهٔ نهانگاهی&#8230;</string>
<string name="FilesInSync">فایل‌ها همگام هستند.</string>
<string name="SynchronizedDatabaseSuccessfully">پایگاه داده با موفقیت همگام شد!</string>
<string name="CheckingDatabaseForChanges">در حال بررسی تغییرات پایگاه داده&#8230;</string>
<string name="CouldNotSaveToRemote">ذخیره‌سازی در دوردست انجام نشد: %1$s. مجدداً ذخیره کنید یا وقتی اتصال با دوردست برقرار شد از منوی همگام‌سازی استفاده کنید.</string>
<string name="CouldNotLoadFromRemote">بازگشایی از دوردست انجام نشد: %1$s. فایل از نهانگاه محلی بارگذاری شد. باز می‌توانید در پایگاه داده تغییرات ایجاد کنید و بعداً آن‌ها را همگام سازید.</string>
<string name="UpdatedRemoteFileOnLoad">فایل دوردست به‌روز شد.</string>
<string name="NotifyOpenFromLocalDueToConflict">به‌سبب تداخل با تغییرات فایل دوردست، فایلی که در نهانگاه محلی موجود بود باز شد. برای ادغام از منوی همگام‌سازی استفاده کنید.</string>
<string name="LoadedFromRemoteInSync">فایل دوردست و نسخهٔ نهانگاهی همگام شدند.</string>
<string name="UpdatedCachedFileOnLoad">نسخهٔ نهانگاهی %1$s در دستگاه به‌روز شد.</string>
<string name="SynchronizedDatabaseSuccessfully">پایگاهداده با موفقیت همگام شد!</string>
<string name="CheckingDatabaseForChanges">در حال بررسی تغییرات پایگاهداده&#8230;</string>
<string name="RemoteDatabaseUnchanged">تغییری نکرده.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">فایل کمکی OTP در نهانگاه به‌روز شد: شمارندهٔ دوردست بالاتر بود.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">فایل کمکی OTP در دوردست به‌روز شد: شمارندهٔ محلی بالاتر بود.</string>
<string name="SynchronizingOtpAuxFile">در حال همگام‌سازی فایل کمکی OTP&#8230;</string>
<string name="database_file">فایل پایگاه داده</string>
<string name="database_file">فایل پایگاهداده</string>
<string name="otp_aux_file">فایل کمکی OTP</string>
<string name="ErrorOcurred">خطایی رخ داد:</string>
<string name="DuplicateUuidsError">پایگاه داده خراب است: شناسه‌های تکراری پیدا شد. (با Minikeepass ذخیره کردید؟) لطفاً مجدداً با استفاده از نسخهٔ کامپیوتری Keepass 2 آن را در پایگاه دادهٔ جدیدی وارد کنید و سپس گزینهٔ «ساخت شناسه‌های جدید» را برگزینید.</string>
<string name="DuplicateUuidsErrorAdditional">این پیغام خطا از طریق تنظیمات/تنظیمات برنامه/فایل‌گردانی/بررسی UUIDهای تکراری غیرفعال می‌شود. لطفاً توجه کنید که با این کار ممکن است رفتار غیرمنتظره‌ای از برنامه سر بزند. بهتر است مشکل پایگاه داده را حل کنید.</string>
<string name="synchronize_database_menu">در حال همگام‌سازی پایگاه داده&#8230;</string>
<string name="DuplicateUuidsError">پایگاهداده خراب است: شناسه‌های تکراری پیدا شد. (با Minikeepass ذخیره کردید؟) لطفاً مجدداً با استفاده از نسخهٔ کامپیوتری Keepass 2 آن را در پایگاهدادهٔ جدیدی وارد کنید و سپس گزینهٔ «ساخت شناسه‌های جدید» را برگزینید.</string>
<string name="DuplicateUuidsErrorAdditional">این پیغام خطا از طریق تنظیمات/تنظیمات برنامه/فایل‌گردانی/بررسی UUIDهای تکراری غیرفعال می‌شود. لطفاً توجه کنید که با این کار ممکن است رفتار غیرمنتظره‌ای از برنامه سر بزند. بهتر است مشکل پایگاهداده را حل کنید.</string>
<string name="synchronize_database_menu">در حال همگام‌سازی پایگاهداده&#8230;</string>
<string name="CannotMoveGroupHere">نمی‌توان گروه را در این گروه قرار داد.</string>
<string name="donate_question">از Keepass2Android راضی هستید؟ مرا به یک فنجان قهوه مهمان کنید.</string>
<string name="donate_bday_question">دهم ماه می؟ امروز تولدم است!
@@ -464,34 +447,33 @@ mycloud.me.com/webdav/ )</string>
<string name="filestoragename_owncloud">OwnCloud</string>
<string name="filestoragename_dropbox">Dropbox</string>
<string name="filestoragename_dropboxKP2A">Dropbox (پوشه KP2A)</string>
<string name="filestoragehelp_dropboxKP2A">اگر می‌خواهید DropBoxتان به‌طور کامل در دسترس KP2A نباشد، این گزینه را انتخاب کنید. با این کار فقط دسترسی به پوشهٔ Apps/Keepass2Android را درخواست می‌کند. این گزینه مخصوصاً مناسب زمانی است که پایگاه دادهٔ جدیدی می‌سازید. اگر هم‌اکنون یک پایگاه داده دارید، این گزینه را انتخاب کنید تا پوشه را بسازید، سپس فایل را درون آن پوشه قرار دهید (از کامپیوترتان) و سپس دوباره این گزینه را انتخاب کنید تا فایل باز شود.</string>
<string name="filestoragehelp_dropboxKP2A">اگر می‌خواهید DropBoxتان به‌طور کامل در دسترس KP2A نباشد، این گزینه را انتخاب کنید. با این کار فقط دسترسی به پوشهٔ Apps/Keepass2Android را درخواست می‌کند. این گزینه مخصوصاً مناسب زمانی است که پایگاهدادهٔ جدیدی می‌سازید. اگر هم‌اکنون یک پایگاهداده دارید، این گزینه را انتخاب کنید تا پوشه را بسازید، سپس فایل را درون آن پوشه قرار دهید (از کامپیوترتان) و سپس دوباره این گزینه را انتخاب کنید تا فایل باز شود.</string>
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_sftp">SFTP (انتقال فایل به‌روش SSH)</string>
<string name="filestoragename_content">گزینشگر فایل سیستم</string>
<string name="filestorage_setup_title">راه‌اندازی دسترسی به فایل</string>
<string name="database_location">محل پایگاه داده</string>
<string name="help_database_location">می‌توانید پایگاه داده را به‌صورت محلی یعنی روی دستگاه اندروید خود یا روی ابر (فقط نسخهٔ غیرآفلاین) ذخیره کنید. Keepass2Android حتی در زمان آفلاین‌بودن هم پایگاه داده را در اختیارتان می‌گذارد. چون پایگاه داده با استفاده از روش رمزنگاری AES 256 bit ایمن می‌شود، کسی جز خودتان امکان دست‌یابی به گذرواژه‌های شما را نخواهد داشت. پیشنهاد می‌کنیم DropBox را برگزینید، زیرا روی همهٔ دستگاه‌هایتان به آن دسترسی دارید و نیز فایل پشتیبان نسخه‌های قدیمی فایلتان را نگه می‌دارد.</string>
<string name="hint_database_location">ذخیره‌گاه پایگاه داده را مشخص کنید:</string>
<string name="help_database_location">می‌توانید پایگاهداده را به‌صورت محلی یعنی روی دستگاه اندروید خود یا روی ابر (فقط نسخهٔ غیرآفلاین) ذخیره کنید. Keepass2Android حتی در زمان آفلاین‌بودن هم پایگاهداده را در اختیارتان می‌گذارد. چون پایگاهداده با استفاده از روش رمزنگاری AES 256 bit ایمن می‌شود، کسی جز خودتان امکان دست‌یابی به گذرواژه‌های شما را نخواهد داشت. پیشنهاد می‌کنیم DropBox را برگزینید، زیرا روی همهٔ دستگاه‌هایتان به آن دسترسی دارید و نیز فایل پشتیبان نسخه‌های قدیمی فایلتان را نگه می‌دارد.</string>
<string name="hint_database_location">ذخیره‌گاه پایگاهداده را مشخص کنید:</string>
<string name="button_change_location">تغییر محل</string>
<string name="help_quickunlock">اگر فعال باشد، Keepass2Android حتی در زمان قفل‌بودن پایگاه داده در پس‌زمینه باز می‌ماند و بعداً می‌توانید با واردکردن بخش کوتاهی از شاه‌رمز، پایگاه داده را قفل‌گشایی کنید.</string>
<string name="help_quickunlock">اگر فعال باشد، Keepass2Android حتی در زمان قفل‌بودن پایگاهداده در پس‌زمینه باز می‌ماند و بعداً می‌توانید با واردکردن بخش کوتاهی از شاه‌رمز، پایگاهداده را قفل‌گشایی کنید.</string>
<string name="master_password">شاه‌رمز</string>
<string name="help_master_password">پایگاه داده با شاه‌رمزی که اینجا می‌نویسید رمزگذاری می‌شود. یک گذرواژهٔ قوی انتخاب کنید تا پایگاه داده امن بماند! راهنمایی: یک یا دو جمله بسازید و از حروف اول کلمه‌ها برای ساخت شاه‌رمز استفاده کنید. علائم نگارشی را هم به‌کار ببرید.</string>
<string name="hint_master_password">یک شاه‌رمز برای محافظت از پایگاه داده انتخاب کنید:</string>
<string name="help_master_password">پایگاهداده با شاه‌رمزی که اینجا می‌نویسید رمزگذاری می‌شود. یک گذرواژهٔ قوی انتخاب کنید تا پایگاهداده امن بماند! راهنمایی: یک یا دو جمله بسازید و از حروف اول کلمه‌ها برای ساخت شاه‌رمز استفاده کنید. علائم نگارشی را هم به‌کار ببرید.</string>
<string name="hint_master_password">یک شاه‌رمز برای محافظت از پایگاهداده انتخاب کنید:</string>
<string name="key_file">فایل کلید</string>
<string name="help_key_file">فایل کلید در اصل گذرواژه‌ای است که در یک فایل ذخیره شده. فایل‌های کلید معمولاً قوی‌تر از شاه‌رمز هستند؛ زیرا کلید می‌تواند بسیار پیچیده‌تر باشد، هرچند محفوظ نگه‌داشتن آن هم دشوارتر است. اگر پایگاه داده‌تان را روی ابر ذخیره می‌کنید، فایل کلید را هم آنجا کنارش نگذارید! اگر این کار را بکنید کاملاً بی‌استفاده می‌شود! مهم: بعد از اینکه پایگاه داده ساخته شد، محتوای فایل کلید را تغییر ندهید!</string>
<string name="help_key_file">فایل کلید در اصل گذرواژه‌ای است که در یک فایل ذخیره شده. فایل‌های کلید معمولاً قوی‌تر از شاه‌رمز هستند؛ زیرا کلید می‌تواند بسیار پیچیده‌تر باشد، هرچند محفوظ نگه‌داشتن آن هم دشوارتر است. اگر پایگاهداده‌تان را روی ابر ذخیره می‌کنید، فایل کلید را هم آنجا کنارش نگذارید! اگر این کار را بکنید کاملاً بی‌استفاده می‌شود! مهم: بعد از اینکه پایگاهداده ساخته شد، محتوای فایل کلید را تغییر ندهید!</string>
<string name="hint_key_file">در صورتی انتخاب کنید که بخواهید علاوه بر شاه‌رمزتان از یک فایل کلید هم استفاده کنید:</string>
<string name="use_key_file">استفاده از فایل کلید</string>
<string name="error_adding_keyfile">هنگام افزودن فایل کلید خطایی رخ داد!</string>
<string name="init_otp">بارگذاری فایل کمکی OTP&#8230;</string>
<string name="otp_explanation">رمزهای یک‌بارمصرف (OTP) بعدی را وارد کنید. یوبیکی‌نئو را پشت دستگاهتان بکشید تا از طریق NFC وارد شود.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="YubiChallengeNotInstalled">برنامه‌ای پیدا نشد که بتواند کار لازم را انجام دهد. لطفاً برنامهٔ Yubichallenge را از گوگل‌پلی نصب کنید.</string>
<string name="CouldntLoadOtpAuxFile">بارگذاری فایل کمکی OTP ناموفق بود!</string>
<string name="CouldntLoadOtpAuxFile_Hint">لطفاً با استفاده از افزونهٔ OtpKeyProv در نسخهٔ کامپیوتری نرم‌افزار KeePass 2.x پایگاه داده‌تان را برای کار با رمزهای یک‌بارمصرف (OTP) آماده کنید!</string>
<string name="otp_discarded_because_no_db">لطفاً اول پایگاه داده را انتخاب کنید. به‌دلایل امنیتی رمز یک‌بارمصرف از درجهٔ اعتبار افتاد.</string>
<string name="CouldntLoadOtpAuxFile_Hint">لطفاً با استفاده از افزونهٔ OtpKeyProv در نسخهٔ کامپیوتری نرم‌افزار KeePass 2.x پایگاهداده‌تان را برای کار با رمزهای یک‌بارمصرف (OTP) آماده کنید!</string>
<string name="otp_discarded_because_no_db">لطفاً اول پایگاهداده را انتخاب کنید. به‌دلایل امنیتی رمز یک‌بارمصرف از درجهٔ اعتبار افتاد.</string>
<string name="otp_discarded_no_space">رمز یک‌بارمصرف از اعتبار افتاد: همهٔ رمزهای یک‌بارمصرف وارد شده!</string>
<string name="otp_discarded_because_db_open">لطفاً ابتدا پایگاه داده را ببندید. رمز یک‌بارمصرف از اعتبار افتاده.</string>
<string name="otp_discarded_because_db_open">لطفاً ابتدا پایگاهداده را ببندید. رمز یک‌بارمصرف از اعتبار افتاده.</string>
<string name="otps_pending">( یک یا چند رمز یک‌بارمصرف وجود دارد)</string>
<string name="otpsecret_hint">رمزینهٔ OTP (مثلاً 01 23 ab cd&#8230;)</string>
<string name="CouldntParseOtpSecret">خطا هنگام تجزیه‌کردن رمزینهٔ OTP!</string>
@@ -500,10 +482,10 @@ mycloud.me.com/webdav/ )</string>
<string name="SavingOtpAuxFile">در حال ذخیره‌سازی فایل OTP کمکی&#8230;</string>
<string name="bad_resp">پاسخ اسم شب نادرست است.</string>
<string name="CouldntLoadChalAuxFile">بارگذاری فایل کمکی اسم شب ناموفق بود!</string>
<string name="CouldntLoadChalAuxFile_Hint">لطفاً با استفاده از افزونهٔ KeeChallenge در نسخهٔ کامپیوتری KeePass 2.x پایگاه داده‌تان را برای کار با پاسخ اسم شب آماده کنید!</string>
<string name="CouldntLoadChalAuxFile_Hint">لطفاً با استفاده از افزونهٔ KeeChallenge در نسخهٔ کامپیوتری KeePass 2.x پایگاهداده‌تان را برای کار با پاسخ اسم شب (challenge-response) آماده کنید!</string>
<string name="ErrorUpdatingChalAuxFile">خطا هنگام به‌روزرسانی فایل کمکی OTP!</string>
<string name="TrayTotp_SeedField_title">نام فیلد TOTP Seed</string>
<string name="TrayTotp_SeedField_summary">اگر در Keepass 2 از افزونهٔ TrayTotp استفاده می‌کنید و تنظیمات پیشفرض افزونه را تغییر داده‌اید، نام فیلد seed را مطابق آنچه روی کامپیوتر وارد کرده‌اید اینجا بنویسید.</string>
<string name="TrayTotp_SeedField_summary">اگر در Keepass 2 از افزونهٔ TrayTotp استفاده می‌کنید و تنظیمات پیشفرض افزونه را تغییر داده‌اید، نام فیلد خوراک (seed) را مطابق آنچه روی کامپیوتر وارد کرده‌اید اینجا بنویسید.</string>
<string name="TrayTotp_SettingsField_title">نام فیلد تنظیمات TOTP</string>
<string name="TrayTotp_SettingsField_summary">نام فیلد تنظیمات TrayTotp را بنویسید.</string>
<string name="TrayTotp_prefs">TrayTotp</string>
@@ -526,8 +508,8 @@ mycloud.me.com/webdav/ )</string>
%2$s</string>
<string name="query_credentials">درخواست اعتبارنامه از سوی %1$s. لطفاً یک مدخل را انتخاب کنید.</string>
<string name="plugin_enabled_checkbox">فعال</string>
<string name="SCOPE_DATABASE_ACTIONS_title">اعلانات کار با پایگاه داده</string>
<string name="SCOPE_DATABASE_ACTIONS_explanation">افزونه از باز، بسته یا ذخیره‌شدن پایگاه داده آگاه می‌شود.</string>
<string name="SCOPE_DATABASE_ACTIONS_title">اعلانات کار با پایگاهداده</string>
<string name="SCOPE_DATABASE_ACTIONS_explanation">افزونه از باز، بسته یا ذخیره‌شدن پایگاهداده آگاه می‌شود.</string>
<string name="SCOPE_CURRENT_ENTRY_title">دادگان مدخل جاری</string>
<string name="SCOPE_CURRENT_ENTRY_explanation">افزونه همهٔ دادگان مربوط به مدخل جاری را دریافت می‌کند و می‌تواند پیشنهاد انجام کاری را بدهد و ظاهر آن را تغییر دهد.</string>
<string name="SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_title">یافتن اعتبارنامهٔ خود</string>
@@ -538,19 +520,19 @@ mycloud.me.com/webdav/ )</string>
<string name="CertificateWarning">هشدار: اعتبارسنجی گواهینامهٔ میزبان ناموفق بود: %1$s. گواهی ریشه‌ای مناسب را روی دستگاهتان نصب کنید یا تنظیمات را ببینید!</string>
<string name="CertificateFailure">هشدار: اعتبارسنجی گواهینامهٔ میزبان ناموفق بود. گواهی ریشه‌ای مناسب را روی دستگاهتان نصب کنید یا تنظیمات را ببینید!</string>
<string name="export_fileformats_title">قالب فایل را انتخاب کنید</string>
<string name="killed_by_os">متأسفم! سیستم‌عامل اندروید Keepass2Android را کُشت! به‌دلایل امنیتی، Keepass2Android اعتبارنامهٔ انتخاب‌شده را روی حافظه نگه نداشت، بنابراین باید پایگاه داده را مجدداً باز کنید. توجه: این مشکل نباید رخ بدهد، مگر خیلی به‌ندرت. اگر اتفاق افتاد، لطفاً به نشانی ایمیل crocoapps@gmail.com به من گزارش بدهید.</string>
<string name="killed_by_os">متأسفم! سیستم‌عامل اندروید Keepass2Android را کُشت! به‌دلایل امنیتی، Keepass2Android اعتبارنامهٔ انتخاب‌شده را روی حافظه نگه نداشت، بنابراین باید پایگاهداده را مجدداً باز کنید. توجه: این مشکل نباید رخ بدهد، مگر خیلی به‌ندرت. اگر اتفاق افتاد، لطفاً به نشانی ایمیل crocoapps@gmail.com به من گزارش بدهید.</string>
<string name="FileIsTemporarilyAvailable">فایل فقط به‌صورت موقت در دسترس Keepass2Android است.</string>
<string name="FileIsReadOnly">فایلی که انتخاب کرده‌اید فقط-خواندنی است.</string>
<string name="FileIsReadOnlyOnKitkat">به‌سبب محدودیت‌هایی که اندروید ۴٫۴‎+ دارد، Keepass2Android فقط می‌تواند این فایل را بخواند.</string>
<string name="CopyFileRequired">برای استفاده از آن، باید آن را به مکان دیگری کپی کنید.</string>
<string name="CopyFileRequiredForEditing">برای ویرایش آن، باید آن را به مکان دیگری کپی کنید.</string>
<string name="ClickOkToSelectLocation">خُب را انتخاب کنید تا محل کپی‌کردن فایل را برگزینید.</string>
<string name="FileReadOnlyTitle">پایگاه داده فقط-خواندنی است</string>
<string name="FileReadOnlyMessagePre">برنامهٔ Keepass2Android پایگاه دادهٔ جاری را در حالت فقط-خواندنی باز کرده است.</string>
<string name="ReadOnlyReason_PreKitKat">ظاهراً فایل را در یک برنامهٔ خارجی باز کرده‌اید. با این کار نوشتن در فایل ممکن نیست. اگر قصد دارید در پایگاه داده تغییرات بدهید، لطفاً پایگاه داده را ببندید و تغییردادن پایگاه داده را انتخاب کنید. سپس در صورت امکان به‌کمک یکی از گزینه‌های موجود فایل را باز کنید.</string>
<string name="ReadOnlyReason_ReadOnlyFlag">شاخص فقط-خواندنی فعال است. اگر می‌خواهید در پایگاه داده تغییرات بدهید، شاخص را غیرفعال کنید.</string>
<string name="ReadOnlyReason_ReadOnlyKitKat">به‌سبب محدودیت‌های جدید اندروید کیت‌کت، نوشتن ممکن نیست. اگر قصد دارید در پایگاه داده تغییرات بدهید، پایگاه داده را ببندید و تغییردادن پایگاه داده را انتخاب کنید. سپس به‌وسیلهٔ انتخابگر فایل اندروید فایل را برگزینید.</string>
<string name="ReadOnlyReason_LocalBackup">پشتیبان‌ها را نمی‌توانید ویرایش کنید، اما می‌توانید از طریق تنظیمات پایگاه داده - صادرکردن پایگاه داده، پشتیبان را به مکان دیگری صادر کنید که بتوانید از آنجا بازش کنید. در این صورت پایگاه مجدداً قابل‌ویرایش خواهد شد.</string>
<string name="FileReadOnlyTitle">پایگاهداده فقط-خواندنی است</string>
<string name="FileReadOnlyMessagePre">برنامهٔ Keepass2Android پایگاهدادهٔ جاری را در حالت فقط-خواندنی باز کرده است.</string>
<string name="ReadOnlyReason_PreKitKat">ظاهراً فایل را در یک برنامهٔ خارجی باز کرده‌اید. با این کار نوشتن در فایل ممکن نیست. اگر قصد دارید در پایگاهداده تغییرات بدهید، لطفاً پایگاهداده را ببندید و تغییردادن پایگاهداده را انتخاب کنید. سپس در صورت امکان به‌کمک یکی از گزینه‌های موجود فایل را باز کنید.</string>
<string name="ReadOnlyReason_ReadOnlyFlag">شاخص فقط-خواندنی فعال است. اگر می‌خواهید در پایگاهداده تغییرات بدهید، شاخص را غیرفعال کنید.</string>
<string name="ReadOnlyReason_ReadOnlyKitKat">به‌سبب محدودیت‌های جدید اندروید کیت‌کت، نوشتن ممکن نیست. اگر قصد دارید در پایگاهداده تغییرات بدهید، پایگاهداده را ببندید و تغییردادن پایگاهداده را انتخاب کنید. سپس به‌وسیلهٔ انتخابگر فایل اندروید فایل را برگزینید.</string>
<string name="ReadOnlyReason_LocalBackup">پشتیبان‌ها را نمی‌توانید ویرایش کنید، اما می‌توانید از طریق تنظیمات پایگاهداده - صادرکردن پایگاهداده، پشتیبان را به مکان دیگری صادر کنید که بتوانید از آنجا بازش کنید. در این صورت پایگاه مجدداً قابل‌ویرایش خواهد شد.</string>
<string name="AddCustomIcon">افزودن آیکون از فایل...</string>
<string name="CopyingFile">در حال کپی‌کردن فایل...</string>
<string name="DuplicateTitle">کپی</string>
@@ -573,21 +555,21 @@ mycloud.me.com/webdav/ )</string>
<string name="TemplateTitle_Membership">عضویت</string>
<string name="ChangeLog_title">گزارش تغییرات</string>
<string name="AskAddTemplatesTitle">الگو اضافه شود؟</string>
<string name="AskAddTemplatesMessage">در Keepass2Android یک‌سری مدخل‌های الگو برای حساب ایمیل، گذرواژهٔ وای‌فای، یادداشت محرمانه و... وجود دارد. مایلید این‌ها را به پایگاه داده اضافه کنید؟ اگر خیر را انتخاب کردید، بعداً می‌توانید از طریق تنظیمات پایگاه داده آن‌ها را اضافه کنید.</string>
<string name="AddTemplates_pref">افزودن الگوها به پایگاه داده</string>
<string name="AskAddTemplatesMessage">در Keepass2Android یک‌سری مدخل‌های الگو برای حساب ایمیل، گذرواژهٔ وای‌فای، یادداشت محرمانه و... وجود دارد. مایلید این‌ها را به پایگاهداده اضافه کنید؟ اگر خیر را انتخاب کردید، بعداً می‌توانید از طریق تنظیمات پایگاهداده آن‌ها را اضافه کنید.</string>
<string name="AddTemplates_pref">افزودن الگوها به پایگاهداده</string>
<string name="PreviewWarning">لطفا توجه کنید! این یک نسخهٔ پیش‌نمایش است و احتمالاً نقایصی دارد! اگر با *هر* رفتار ناخواسته‌ای مواجه شدید، لطفاً به من بگویید (از طریق ایمیل یا گروه آزمایشگران نسخهٔ آزمایشی در گوگل+).</string>
<string name="Continue">ادامه</string>
<string name="NoFilenameWarning">URI واردشده شبیه به نام فایل نیست. مطمئنید که یک فایل معتبر است؟</string>
<string name="FirstInvalidCompositeKeyError">کلید ترکیبی نامعتبر! لطفا مجدداً تلاش کنید.</string>
<string name="RepeatedInvalidCompositeKeyHelp">کلید ترکیبی نامعتبر! لطفاً گام‌های زیر را امتحان کنید تا پایگاه داده قفل‌گشایی شود:\n
<string name="RepeatedInvalidCompositeKeyHelp">کلید ترکیبی نامعتبر! لطفاً گام‌های زیر را امتحان کنید تا پایگاهداده قفل‌گشایی شود:\n
• اطمینان حاصل کنید که گذرواژه را درست نوشته باشید. روی نماد چشم بزنید تا گذرواژه نمایان شود.\n
• اطمینان حاصل کنید که نوع گذرواژه را درست انتخاب کرده باشید. مطمئن شوید همانی باشد که هنگام ساختن پایگاه داده انتخاب کرده بودید.\n
• اطمینان حاصل کنید پایگاه دادهٔ درست را انتخاب کرده باشید.
• اطمینان حاصل کنید که نوع گذرواژه را درست انتخاب کرده باشید. مطمئن شوید همانی باشد که هنگام ساختن پایگاهداده انتخاب کرده بودید.\n
• اطمینان حاصل کنید پایگاهدادهٔ درست را انتخاب کرده باشید.
</string>
<string name="HintLocalBackupInvalidCompositeKey">
\n
• راهنما: اگر فکر می‌کنید شاید فایل پایگاه داده خراب شده باشد یا اگر پس از ویرایش، شاه‌کلید آن را فراموش کرده‌اید، می‌توانید آخرین نسخه‌ای را که با موفقیت باز کرده‌اید امتحان کنید. برای این منظور روی «%1$s» بزنید و پشتیبان محلی را انتخاب کنید.</string>
• راهنما: اگر فکر می‌کنید شاید فایل پایگاهداده خراب شده باشد یا اگر پس از ویرایش، شاه‌کلید آن را فراموش کرده‌اید، می‌توانید آخرین نسخه‌ای را که با موفقیت باز کرده‌اید امتحان کنید. برای این منظور روی «%1$s» بزنید و پشتیبان محلی را انتخاب کنید.</string>
<string name="HintLocalBackupOtherError">
\n
• راهنما: Keepass2Android آخرین نسخه‌ای از فایل که باموفقیت باز کرده بودید را در حافظهٔ داخلی ذخیره کرده است. با زدن روی «%1$s» و انتخاب پشتیبان محلی می‌توانید آن را باز کنید.
@@ -597,19 +579,19 @@ mycloud.me.com/webdav/ )</string>
چند راهنمایی که کمکتان می‌کند مشکل را تشخیص دهید:\n
• اگر فایل را از طریق اتصال USB منتقل کرده‌اید (حالت MTP) لطفاً مجدداً با ابزارهایی مانند MyPhoneExplorer امتحان کنید. حالت MTP در شرایط خاصی فایل‌ها را ناقص می‌کند.\n
• اگر از همان پوشه روی کامپیوتر نمی‌توانید فایل را باز کنید، به احتمال زیاد فایل واقعاً خراب شده است. در این صورت لطفاً از فایل پشتیبان پایگاه داده استفاده کنید. اگر فکر می‌کنید که Keepass2Android فایل را خراب کرده، با بخش پشتیبانی تماس بگیرید.\n
• اگر هنوز می‌توانید فایل را روی کامپیوتر باز کنید، لطفاً با بخش پشتیبانی تماس بگیرید. همچنین می‌توانید فایل را با تنظیمات مختلف روی کامپیوتر ذخیره کنید (مثلا زیپ‌نشده) و ببینید آیا در Keepass2Android باز می‌شود.
• اگر از همان پوشه روی کامپیوتر نمی‌توانید فایل را باز کنید، بهاحتمال زیاد فایل واقعاً خراب شده است. در این صورت لطفاً از فایل پشتیبان پایگاهداده استفاده کنید. اگر فکر می‌کنید که Keepass2Android فایل را خراب کرده، با بخش پشتیبانی تماس بگیرید.\n
• اگر هنوز می‌توانید فایل را روی کامپیوتر باز کنید، لطفاً با بخش پشتیبانی تماس بگیرید. همچنین می‌توانید فایل را با تنظیمات مختلف روی کامپیوتر ذخیره کنید (مثلا زیپ‌نشده) و سپس ببینید آیا در Keepass2Android باز می‌شود.
</string>
<string name="DbUnlockedChannel_name">پایگاه داده قفل‌گشایی شد</string>
<string name="DbUnlockedChannel_desc">اعلان دربارهٔ بازشدن قفل پایگاه داده</string>
<string name="DbUnlockedChannel_name">پایگاهداده قفل‌گشایی شد</string>
<string name="DbUnlockedChannel_desc">اعلان دربارهٔ بازشدن قفل پایگاهداده</string>
<string name="DbQuicklockedChannel_name">زودگشایی</string>
<string name="DbQuicklockedChannel_desc">اعلان دربارهٔ بازشدن قفل پایگاه داده به‌روش زودگشایی</string>
<string name="DbQuicklockedChannel_desc">اعلان دربارهٔ بازشدن قفل پایگاهداده به‌روش زودگشایی</string>
<string name="EntryChannel_name">اعلانات مدخل</string>
<string name="EntryChannel_desc">اعلان برای سهولت دسترسی به مدخلی که اکنون انتخاب شده است.</string>
<string name="ErrorReportTitle">Keepass2Android: خطایی رخ داد.</string>
<string name="ErrorReportText">هنگام اجرای Keepass2Android خطای غیرمنتظره‌ای رخ داد. با اجازه‌دادن به برنامه برای ارسال گزارش‌های خطا کمک کنید تا این عیب را برطرف کنیم.</string>
<string name="ErrorReportPromise">گزارش‌های خطا هرگز شامل محتویات پایگاه دادهٔ شما یا شاه‌رمز نیست. از طریق تنظیمات برنامه می‌توانید آن‌ها را غیرفعال کنید.</string>
<string name="ErrorReportPromise">گزارش‌های خطا هرگز شامل محتویات پایگاهدادهٔ شما یا شاه‌رمز نیست. از طریق تنظیمات برنامه می‌توانید آن‌ها را غیرفعال کنید.</string>
<string name="ErrorReportEnable">فعال‌کردن</string>
<string name="ErrorReportDisable">غیرفعال کردن</string>
<string name="ErrorReportAsk">پرسش بعد از خطا</string>
@@ -684,7 +666,7 @@ mycloud.me.com/webdav/ )</string>
<item>هرگز</item>
</string-array>
<string-array name="export_fileformat_options">
<item>پایگاه دادهٔ Keepass 2 (.kdbx)</item>
<item>پایگاهدادهٔ Keepass 2 (.kdbx)</item>
<item>Keepass 2 XML (رمزنگاری‌نشده) (.xml)</item>
<item>Keepass CSV (رمزنگاری‌نشده) (.csv)</item>
</string-array>
@@ -715,6 +697,7 @@ mycloud.me.com/webdav/ )</string>
<item>گذرواژه + رمزینهٔ OTP (حالت بازیابی)</item>
<item>گذرواژه + اسم شب</item>
<item>گذرواژه + رمزینهٔ اسم شب (حالت بازیابی)</item>
<item>Password + Challenge-Response for Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>شکست‌های اعتبارسنجی گواهینامه را نادیده بگیرد</item>
@@ -736,7 +719,7 @@ mycloud.me.com/webdav/ )</string>
<string name="understand">فهمیدم</string>
<string name="dont_show_again">دوباره نشان نده</string>
<string name="masterkey_infotext_head">آیا شاه‌کلیدتان را به خاطر دارید؟</string>
<string name="masterkey_infotext_main">دقت کنید که بدون شاه‌کلید نمی‌توانید پایگاه دادهٔ خود را باز کنید و هیچ راهی هم برای «بازنشانی» شاه‌کلید وجود ندارد.</string>
<string name="masterkey_infotext_main">دقت کنید که بدون شاه‌کلید نمی‌توانید پایگاهدادهٔ خود را باز کنید و هیچ راهی هم برای «بازنشانی» شاه‌کلید وجود ندارد.</string>
<string name="masterkey_infotext_fingerprint_note">همچنین توجه بفرمایید که قفل‌گشایی با اثرانگشت طوری است که شاه‌کلید شما در ذخیره‌گاه امن اندروید ذخیره می‌شود. این ذخیره‌گاه ممکن است هر آن توسط سیستم‌عامل اندروید پاک‌سازی شود؛ مثلاً زمانی که اثرانگشت جدیدی در تنظیمات سیستم اضافه کنید. بنابراین به اثرانگشتتان اکتفا نکنید، بلکه شاه‌کلیدتان را به یاد بسپارید، لطفاً!</string>
<string name="backup_infotext_head">آیا از پایگاه‌داده‌تان پشتیبان گرفته شده؟</string>
<string name="backup_infotext_main">برنامهٔ Keepass2Android گذرواژه‌هایتان را در یک فایل و در مکانی به‌انتخاب شما ذخیره می‌کند. اگر دستگاهتان گم یا دزدیده شود، آیا مطمئن هستید که هنوز به فایل دسترسی خواهید داشت؟ اگر فایل خراب یا پاک شود چطور؟ لطفاً اطمینان حاصل کنید که همیشه یک پشتیبان به‌روز در مکانی امن داشته باشید!</string>

View File

@@ -0,0 +1,762 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--Generated by crowdin.net-->
<resources>
<string name="about_feedback">ﺑﺎﺯﺧﻮﺭﺩ</string>
<string name="about_homepage">صفحهٔ نخست</string>
<string name="AboutText">برنامهٔ Keepass2Android یک برنامهٔ مدیریت گذرواژه است که دسترسی خواندنی/نوشتنی به پایگاه‌داده‌های KeePass 2.x را در اندروید فراهم می‌کند.</string>
<string name="CreditsText">این رابط کاربری بر اساس نسخه‌ای از KeepassDroid ساختهٔ پِلین بِرِین ایجاد شده است. کدهای لازم برای کار با پایگاه‌داده بر اساس کدهای KeePass ساختهٔ دامینیک رایکل ایجاد شده است. ربات اندروید بازتولید یا تغییریافتهٔ کاری است که گوگل ساخته و به‌اشتراک گذاشته است و ما بر اساس بندهای اجازه‌نامهٔ Creative Commons 3.0 از آن استفاده کرده‌ایم.</string>
<string name="CreditsTextSFTP">پشتیبانی از SFTP با استفاده از کتابخانهٔ JSch ساختهٔ شرکت
JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="CreditsIcons">نماد چکش را جان کَزِرتا ساخته است (از Noun Project). نماد پنگوئن را آدریانو اِمِریک ساخته است (از Noun Project). نماد پر را جُون تِستا ساخته است (از Noun Project). نماد سیب را اِیوا رَوئل ساخته است (از Noun Project). نماد تصویر از اینجاست https://icons8.com/icon/5570/Picture.</string>
<string name="accept">قبول</string>
<string name="deny">رد کن</string>
<string name="add_entry">افزودن مدخل</string>
<string name="edit_entry">ویرایش مدخل</string>
<string name="add_url_entry">ساخت مدخل برای نشانی اینترنتی (URL)</string>
<string name="add_group">افزودن گروه</string>
<string name="add_group_title">افزودن گروه</string>
<string name="edit_group_title">ویرایش گروه</string>
<string name="algorithm">الگوریتم</string>
<string name="algorithm_colon">الگوریتم</string>
<string name="app_name">Keepass2Android</string>
<string name="short_app_name">KP2A</string>
<string name="app_name_nonet">Keepass2Android آفلاین</string>
<string name="short_app_name_nonet">KP2A آفلاین</string>
<string name="app_timeout">مهلت برنامه</string>
<string name="app_timeout_summary">اگر با برنامه کار نکنید پس از این مدت‌زمان پایگاه‌داده قفل می‌شود.</string>
<string name="kill_app_label">بستن کامل برنامه</string>
<string name="show_kill_app">دکمهٔ بستن</string>
<string name="show_kill_app_summary">در صفحهٔ نمایش گذرواژه دکمه‌ای برای بستن کامل برنامه اضافه می‌کند (برای کاربران بدگمان)</string>
<string name="application">برنامه</string>
<string name="application_settings">تنظیمات برنامه</string>
<string name="ShowGroupnameInSearchResult_title">نمایش نام گروه در نتیجهٔ جست‌وجو</string>
<string name="ShowGroupnameInSearchResult_resume">نام گروه را زیر عنوان مدخل در نتایج جست‌وجو نشان می‌دهد. هنگامی که چندین مدخل همنام وجود دارد سودمند است.</string>
<string name="NavigationToGroupCompleted_message">در حال دیدن این گروه هستید: %1$s</string>
<string name="ShowGroupInEntry_title">نمایش نام گروه در نمای مدخل‌ها</string>
<string name="unknown_uri_scheme">متأسفم! Keepass2Android در کار با این URI ناموفق بود:\n
%1$s\n
لطفاً با توسعه‌دهنده تماس بگیرید!</string>
<string name="Entry_singular">یک مدخل</string>
<string name="Entry_plural">%1$d مدخل</string>
<string name="IconSet_title">مجموعه آیکون</string>
<string name="IconSet_install">بیشتر پیدا کنید...</string>
<string name="security_prefs">امنیت</string>
<string name="display_prefs">نمایش</string>
<string name="password_access_prefs">دسترسی به گذرواژه</string>
<string name="QuickUnlock_prefs">زودگشایی</string>
<string name="FileHandling_prefs">فایل‌گردانی</string>
<string name="keyboard_prefs">صفحه‌کلید</string>
<string name="export_prefs">صدور پایگاه‌داده...</string>
<string name="fingerprint_prefs">قفل‌گشایی با اثرانگشت</string>
<string name="import_db_prefs">واردکردن پایگاه‌داده به پوشهٔ داخلی</string>
<string name="import_keyfile_prefs">واردکردن فایل کلید به پوشهٔ داخلی</string>
<string name="keyboardswitch_prefs">تعویض صفحه‌کلید</string>
<string name="OnlyAvailableForLocalFiles">فقط برای فایل‌های محلی است.</string>
<string name="FileIsInInternalDirectory">فایل در پوشهٔ داخلی ذخیره شد.</string>
<string name="DatabaseFileMoved">فایل پایگاه‌داده در پوشهٔ داخلی کپی شد. دکمهٔ تأیید را بزنید تا فایل از محل جدید باز شود. توجه: فراموش نکنید که به‌طور منظم فایل پایگاه‌داده را در محلی امن ذخیره کنید!</string>
<string name="KeyfileMoved">فایل کلید به پوشهٔ داخلی کپی شد. قبل از اینکه از مکان کنونی پاکش کنید حواستان باشد که در مکانی امن یک کپی از این فایل داشته باشید!</string>
<string name="KeyfileMoveRequiresRememberKeyfile">وقتی مکان فایل کلید ذخیره نمی‌شود نمی‌توان از پوشهٔ داخلی استفاده کرد. تنظیمات امنیتی را تغیر دهید.</string>
<string name="unlock_database_button">بگشا</string>
<string name="unlock_database_title">قفل‌گشایی پایگاه‌داده</string>
<string name="brackets">پرانتزها</string>
<string name="cancel">لغو</string>
<string name="ClearClipboard">بریده‌دان پاک شد.</string>
<string name="clipboard_timeout">مهلت بریده‌دان</string>
<string name="clipboard_timeout_summary">پس از کپی‌کردن نام کاربری و گذرواژه تا این مدت در بریده‌دان باقی می‌مانند و سپس پاک می‌شوند</string>
<string name="copy_username">برای کپی‌کردن نام کاربری انتخاب کنید</string>
<string name="copy_password">برای کپی‌کردن گذرواژه انتخاب کنید</string>
<string name="available_through_keyboard">ورودی با صفحه‌کلید KP2A در دسترس است</string>
<string name="entry_is_available">موجود است</string>
<string name="not_possible_im_picker">بازکردن منو برای انتخاب روش ورودی ناموفق بود. لطفاً صفحه‌کلید را به‌صورت دستی فعال کنید.</string>
<string name="please_activate_keyboard">لطفاً صفحه‌کلید Keepass2Android را در تنظیمات سیستم خود فعال کنید.</string>
<string name="creating_db_key">در حال ایجاد کلید پایگاه‌داده…</string>
<string name="current_group">گروه جاری</string>
<string name="current_group_root">گروه جاری: ریشه</string>
<string name="database">پایگاه داده</string>
<string name="digits">ارقام</string>
<string name="disclaimer_formal">برنامهٔ Keepass2Android هیچ‌گونه ضمانتی ندارد. این نرم‌افزار رایگان است و از لطف شماست که آن را تحت شرایط GPL نسخهٔ ۲ یا بالاتر بازپخش کنید.</string>
<string name="ellipsis">\u2026</string>
<string name="copy_to_clipboard">کپی‌کردن در بریده‌دان</string>
<string name="fingerprint_hint">حسگر را لمس کنید</string>
<string name="fingerprint_description">برای ادامه، اثرانگشت را تایید کنید</string>
<string name="fingerprint_fatal">راه‌اندازی قفل‌گشایی با اثرانگشت ناموفق بود:</string>
<string name="fingerprint_not_recognized">اثرانگشت شناسایی نشد. دوباره تلاش کنید.</string>
<string name="fingerprint_success">اثرانگشت شناخته شد</string>
<string name="fingerprint_os_error">قفل‌گشایی با اثرانگشت به اندروید ۶٫۰ یا بالاتر نیاز دارد.</string>
<string name="fingerprint_hardware_error">سخت‌افزاری برای شناسایی اثرانگشت پیدا نشد.</string>
<string name="fingerprint_no_enrolled">هیچ اثرانگشتی در این دستگاه ثبت نکرده‌اید. لطفاً ابتدا به تنظیمات سیستم بروید.</string>
<string name="disable_fingerprint_unlock">غیر‌فعال‌کردن قفل‌گشایی با اثرانگشت</string>
<string name="enable_fingerprint_unlock">فعال‌کردن قفل‌گشایی کامل با اثرانگشت</string>
<string name="enable_fingerprint_quickunlock">فعال‌کردن قفل‌گشایی با اثرانگشت برای زودگشایی</string>
<string name="fingerprint_unlock_hint">برای قفل‌گشایی پایگاه‌داده حسگر را لمس کنید</string>
<string name="fingerprint_unlock_failed">قفل‌گشایی با اثرانگشت ناموفق بود. سیستم‌عامل اندروید کلید رمزگشایی را نامعتبر کرده. این مسئله معمولاً وقتی اتفاق می‌افتد که اثرانگشت جدیدی ثبت شده یا تنظیمات امنیتی تغییر کرده باشد. </string>
<string name="fingerprint_disabled_wrong_masterkey">قفل‌گشایی پایگاه‌داده ناموفق بود: کلید ترکیبی نامعتبر. قفل‌گشایی با اثرانگشت غیرفعال شد زیرا ظاهراً شاه‌رمز ذخیره‌شده، دیگر معتبر نیست. </string>
<string name="fingerprint_reenable">لطفاً قفل‌گشایی با اثرانگشت را برای شاه‌رمز جدید مجدداً فعال کنید.</string>
<string name="fingerprint_reenable2">لطفاً ابتدا با گذرواژه‌تان قفل را باز کنید و سپس قفل‌گشایی با اثرانگشت را در تنظیمات پایگاه‌داده فعال کنید.</string>
<string name="FingerprintInitFailed">راه‌اندازی حسگر اثرانگشت ناموفق بود. </string>
<string name="enable_fingerprint_unlock_Info">شاه‌رمز شما را در این دستگاه ذخیره می‌کند. گذرواژه با استفاده از ذخیره‌گاه کلید اندروید رمزگذاری و با اعتبارسنجی اثرانگشتی محافظت می‌شود.</string>
<string name="enable_fingerprint_quickunlock_Info">می‌توانید از احراز هویت اثرانگشتی به‌جای کد زودگشایی استفاده کنید. هیچ‌گونه داده‌ای که مربوط به شاه‌رمزتان باشد، ذخیره نمی‌کند.</string>
<string name="enter_filename">نام فایل پایگاه‌داده را وارد کنید</string>
<string name="entry_accessed">تاریخ دسترسی</string>
<string name="entry_cancel">لغو</string>
<string name="entry_comment">یادداشت</string>
<string name="entry_tags">برچسب‌ها</string>
<string name="entry_override_url">URL چیره</string>
<string name="entry_confpassword">تکرار گذرواژه</string>
<string name="entry_created">ایجاد شد</string>
<string name="entry_expires">تاریخ انقضا</string>
<string name="entry_group_name">نام گروه</string>
<string name="entry_keyfile">فایل کلید (اختیاری)</string>
<string name="keyfile_heading">فایل کلید</string>
<string name="entry_modified">تاریخ تغییر</string>
<string name="entry_password">گذرواژه</string>
<string name="entry_save">ذخیره</string>
<string name="entry_title">نام</string>
<string name="entry_url">URL</string>
<string name="entry_user_name">نام کاربری</string>
<string name="entry_extra_strings">فیلدهای رشته‌ای بیشتر</string>
<string name="entry_binaries">پیوست‌های فایلی</string>
<string name="error_can_not_handle_uri">برنامهٔ Keepass2Android این URI را پشتیبانی نمی‌کند.</string>
<string name="error_could_not_create_group">ساخت گروه ناموفق بود.</string>
<string name="error_could_not_create_parent">ساخت پوشهٔ والد ناموفق بود.</string>
<string name="error_database_exists">این فایل از پیش وجود دارد.</string>
<string name="error_database_settinoverrgs">شناسایی تنظیمات پایگاه‌داده ناموفق بود.</string>
<string name="error_failed_to_launch_link">بازگشایی لینک ناموفق بود.</string>
<string name="error_filename_required">نوشتن نام فایل ضروری است.</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>
<string name="error_nopass">یک گذرواژه یا فایل کلید لازم است.</string>
<string name="error_pass_gen_type">دست‌کم باید یک شیوهٔ ساخت گذرواژه را انتخاب کنید</string>
<string name="error_pass_match">گذرواژه‌ها یکی نیستند.</string>
<string name="error_rounds_not_number">تعداد دورها باید عدد باشد.</string>
<string name="error_param_not_number">پارامتر باید عددی باشد.</string>
<string name="error_title_required">نوشتن عنوان ضروری است.</string>
<string name="error_wrong_length">در فیلد طول یک عدد صحیح وارد کنید</string>
<string name="FileNotFound">فایل پیدا نشد.</string>
<string name="file_browser">مرورگر فایل</string>
<string name="generate_password">ساخت گذرواژه</string>
<string name="group">گروه</string>
<string name="hint_comment">یادداشت</string>
<string name="hint_conf_pass">تأیید گذرواژه</string>
<string name="hint_generated_password">گذرواژهٔ تولیدی</string>
<string name="hint_group_name">نام گروه</string>
<string name="hint_keyfile">فایل کلید</string>
<string name="hint_length">طول</string>
<string name="hint_pass">گذرواژه</string>
<string name="hint_login_pass">گذرواژه</string>
<string name="hint_title">نام</string>
<string name="hint_url">URL</string>
<string name="hint_override_url">نشانی چیره</string>
<string name="hint_tags">برچسب۱, برچسب۲</string>
<string name="hint_username">نام کاربری</string>
<string name="InvalidPassword">گذرواژه یا فایل کلید نامعتبر.</string>
<string name="invalid_algorithm">الگوریتم نامعتبر.</string>
<string name="invalid_db_sig">قالب پایگاه‌داده شناخته نشد.</string>
<string name="keyfile_does_not_exist">فایل کلید وجود ندارد.</string>
<string name="no_keyfile_selected">هیچ فایل کلیدی انتخاب نشده.</string>
<string name="keyfile_is_empty">فایل کلید خالی است.</string>
<string name="length">طول</string>
<string name="list_size_title">اندازهٔ لیست گروه</string>
<string name="list_size_summary">اندازهٔ متن در لیست گروه</string>
<string name="loading_database">در حال بارگذاری پایگاه‌داده…</string>
<string name="lowercase">حروف کوچک</string>
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">پنهان‌کردن گذرواژه</string>
<string name="maskpass_summary">به‌طور پیشفرض گذرواژه‌ها را مخفی کن</string>
<string name="menu_about">درباره</string>
<string name="menu_change_key">تغییر شاه‌کلید</string>
<string name="menu_copy_pass">کپی گذرواژه</string>
<string name="menu_copy_user">کپی نام کاربری</string>
<string name="menu_create">ساختن</string>
<string name="menu_app_settings">تنظيمات</string>
<string name="menu_db_settings">تنظیمات پایگاه داده</string>
<string name="menu_delete">حذف</string>
<string name="menu_copy">ایجاد تکراری</string>
<string name="menu_move">به گروه دیگری منتقل کن</string>
<string name="menu_move_light">انتقال</string>
<string name="menu_navigate">گروهش را باز کن</string>
<string name="menu_donate">حمایت کنید...</string>
<string name="menu_edit">ویرایش</string>
<string name="menu_hide_password">گذرواژه را پنهان کن</string>
<string name="menu_lock">قفل‌کردن پایگاه‌داده</string>
<string name="menu_open">باز‌کردن</string>
<string name="menu_close">بستن</string>
<string name="menu_rename">تغییر نام</string>
<string name="menu_search">جست‌وجو</string>
<string name="menu_search_advanced">جست‌وجوی پیشرفته</string>
<string name="menu_url">برو به نشانی</string>
<string name="menu_change_db">تغییر پایگاه داده</string>
<string name="menu_show_all">نمایش همهٔ مدخل‌ها</string>
<string name="minus">منها</string>
<string name="never">هرگز</string>
<string name="yes">بله</string>
<string name="no">خير</string>
<string name="no_keys">هیچ مدخلی در پایگاه‌داده یا گروه وجود ندارد.</string>
<string name="no_results">چیزی پیدا نشد</string>
<string name="no_url_handler">گرداننده‌ای برای این url وجود ندارد.</string>
<string name="open_recent">بازکردن آخرین پایگاه‌داده (لمس کنید تا باز شود)</string>
<string name="omitbackup_title">در مدخل‌های پشتیبان و سطل بازیافت نگرد</string>
<string name="omitbackup_summary">چیزی از گروه‌های پشتیبان و سطل بازیافت در نتایج جست‌وجو نباشد</string>
<string name="pass_filename">نام فایل پایگاه‌دادهٔ KeePass</string>
<string name="password_title">گذرواژهٔ پایگاه‌داده را وارد کنید</string>
<string name="master_key_type">نوع شاه‌کلید را انتخاب کنید:</string>
<string name="progress_create">در حال ساخت پایگاه‌دادهٔ جدید…</string>
<string name="create_database">ساخت پایگاه‌داده</string>
<string name="progress_title">در حال پردازش…</string>
<string name="remember_keyfile_summary">مکان فایل‌های کلید را به‌خاطر می‌سپارد</string>
<string name="remember_keyfile_title">ذخیره‌سازی فایل کلید</string>
<string name="remove_from_filelist">حذف</string>
<string name="edit">ویرایش</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">ریشه</string>
<string name="KeyDerivFunc">تابع استخراج کلید</string>
<string name="rounds">دورهای رمزنگاری</string>
<string name="rounds_explaination">با افزایش دورهای رمزنگاری، قدرت محافظت در برابر حملات جست‌وجوی فراگیر بیشتر می‌شود، اما می‌تواند بارگیری و ذخیره‌سازی را به‌شدت کُند کند.</string>
<string name="rounds_hint">دورها</string>
<string name="argon2memory">حافظه برای آرگون ۲ (بایت)</string>
<string name="argon2parallelism">موازی‌سازی برای آرگون ۲</string>
<string name="database_name">نام پایگاه‌داده</string>
<string name="default_username">نام کاربری پیشفرض برای مدخل‌های جدید</string>
<string name="saving_database">در حال ذخیره‌سازی پایگاه‌داده…</string>
<string name="exporting_database">در حال صادرکردن پایگاه‌داده…</string>
<string name="export_database_successful">پایگاه‌داده با موفقیت صادر شد!</string>
<string name="space">فاصله</string>
<string name="search_label">جست‌وجو</string>
<string name="show_password">نمایش گذرواژه</string>
<string name="sort_menu">ترتیب بر اساس...</string>
<string name="sort_name">ترتیب بر اساس نام</string>
<string name="sort_db">ترتیب بر اساس تاریخ ساخت</string>
<string name="sort_moddate">ترتیب بر اساس تاریخ تغییر</string>
<string name="sort_default">حفظ چینش پیشفرض</string>
<string name="special">ویژه</string>
<string name="search_hint">دنبال چه می‌گردید</string>
<string name="search_results">نتایج جست‌وجو</string>
<string name="search_in">جست‌وجو در</string>
<string name="select_other_entry">انتخاب مدخل دیگر</string>
<string name="select_group_then_add">گروه دلخواهتان را باز کنید و سپس «%1$s» را بزنید!</string>
<string name="insert_element_here">اینجا بگذار</string>
<string name="twofish">Twofish</string>
<string name="underline">خط زیر</string>
<string name="unsupported_db_version">نسخهٔ پشتیبانی‌نشده از پایگاه‌داده.</string>
<string name="uppercase">حروف بزرگ</string>
<string name="warning_read_only">اکنون کارت حافظه فقط-خواندنی است. شاید نتوانید تغییرات را در پایگاه‌داده ذخیره کنید.</string>
<string name="warning_unmounted">کارت SD بر روی دستگاهتان بار نشده. نمی‌توانید پایگاه‌داده‌تان را بارگذاری یا ایجاد کنید.</string>
<string name="version_label">نسخه</string>
<string name="version_history">تاریخچهٔ نسخه‌ها</string>
<string name="author">توسعه‌دهندهٔ Keepass2Android فیلیپ کُروکُل است.</string>
<string name="further_authors">با سپاس از مشارکت %1$s در کدنویسی.</string>
<string name="designers">با سپاس از مشارکت %1$s در طراحی آیکون و چیدمان.</string>
<string name="credit_plugin1">افزونهٔ Twofish Cipher برای KeePass را اِسکات گرینبِرگ ساخته و در KP2A گنجانده شده است.</string>
<string name="credit_android_filechooser">انتخابگر فایل اندروید را های بایسُون ساخته است</string>
<string name="credit_keyboard">صفحه‌کلید KP2A بر پایهٔ صفحه‌کلید Gingerbread است که از سوی پروژهٔ متن‌باز اندروید ارائه شده و از کدهای Plugin Manager از صفحه‌کلید Hacker ساختهٔ کِلاوس وایدنر استفاده می‌کند.</string>
<string name="please_note">لطفا توجه کنید</string>
<string name="contributors">مشارکت‌کنندگان</string>
<string name="regular_expression">عبارت باقاعده</string>
<string name="TanExpiresOnUse_title">کد TAN یکبارمصرف است</string>
<string name="TanExpiresOnUse_summary">کدهای TAN پس از یک بار استفاده منقضی شود</string>
<string name="ShowUsernameInList_title">نمایش نام کاربری در لیست</string>
<string name="ShowUsernameInList_summary">نام‌های کاربری زیر عنوان مدخل نشان داده شود. مواقعی که چند حساب یا چند TAN وجود دارد، سودمند است.</string>
<string name="RememberRecentFiles_title">پایگاه‌داده‌ها را به خاطر بسپار</string>
<string name="RememberRecentFiles_summary">پایگاه‌داده‌هایی که به‌تازگی باز شده‌اند را به خاطر بسپار و آن‌ها را در کادر بازکردن پایگاه‌داده نشان بده.</string>
<string name="kp2a_findUrl">Keepass2Android: یافتن گذرواژه</string>
<string name="excludeExpiredEntries">مدخل‌های منقضی را شامل نشود</string>
<string name="search_options">گزینه‌ها</string>
<string name="caseSensitive">حساس به حالت حروف</string>
<string name="start_open_file">بازکردن فایل...</string>
<string name="start_create">ساخت پایگاه‌دادهٔ جدید...</string>
<string name="start_open_url">بازکردن URL...</string>
<string name="start_create_import">واردکردن فایل در یک پایگاه‌دادهٔ جدید...</string>
<string name="enter_filename_details_url">نشانی اینترنتی را کامل بنویسید و با ذکر پروتکل آن مثلاً http://.</string>
<string name="enter_filename_details_create_import">فایل واردشونده را در در مرحلهٔ بعدی انتخاب می‌کنید.</string>
<string name="enable_quickunlock">زودگشایی فعال باشد</string>
<string name="QuickUnlock_label">%1$d حرف پایانی گذرواژه‌تان را بنویسید:</string>
<string name="QuickUnlock_label_secure">کد زودگشایی را وارد کنید:</string>
<string name="QuickUnlock_button">زود بگشا!</string>
<string name="QuickUnlock_lockButton">بستن پایگاه داده</string>
<string name="QuickUnlockDefaultEnabled_title">زودگشایی به‌صورت پیشفرض فعال باشد</string>
<string name="QuickUnlockDefaultEnabled_summary">مشخص می‌کند زودگشایی به‌صورت پیشفرض فعال است یا خیر.</string>
<string name="ViewDatabaseSecure_title">محافظت از صفحهٔ نمایش پایگاه‌داده</string>
<string name="ViewDatabaseSecure_summary">اگر فعال باشد عکس‌گرفتن از صفحه غیرفعال می‌شود و هیچ تصویری از برنامه در فهرست برنامه‌های اخیر باقی نمی‌ماند.</string>
<string name="QuickUnlockIconHidden_title">پنهان‌کردن نماد زودگشایی</string>
<string name="QuickUnlockIconHidden_summary">متأسفانه زودگشایی بدون نشان‌دادن آیکون در اعلانات کار نمی‌کند. این گزینه را انتخاب کنید تا از یک آیکون شفاف استفاده شود.</string>
<string name="QuickUnlockIconHidden16_title">پنهان‌کردن نماد زودگشایی</string>
<string name="QuickUnlockIconHidden16_summary">برای اینکه زودگشایی درست کار کند، باید یک اعلان نشان بدهد. این گزینه را برگزینید تا اعلان بدون آیکون باشد.</string>
<string name="QuickUnlockLength_title">طول کلید زودگشایی</string>
<string name="QuickUnlockLength_summary">بیشترین تعداد حروفی که برای گذرواژهٔ زودگشا استفاده می‌شود.</string>
<string name="QuickUnlockHideLength_title">پنهان‌کردن طول کد زودگشایی</string>
<string name="QuickUnlockHideLength_summary">اگر فعال باشد، طول کد زودگشایی در صفحهٔ زودگشایی نشان داده نمی‌شود.</string>
<string name="QuickUnlock_fail">زودگشایی ناموفق بود: گذرواژه اشتباه است!</string>
<string name="BinaryDirectory_title">پوشهٔ پیوست‌های فایلی</string>
<string name="BinaryDirectory_summary">پوشه‌ای که پیوست‌ها در آن ذخیره می‌شود.</string>
<string name="SaveAttachmentDialog_title">ذخیرهٔ پیوست</string>
<string name="SaveAttachmentDialog_text">لطفاً محل ذخیره‌سازی پیوست را انتخاب کنید.</string>
<string name="SaveAttachmentDialog_save">ذخیره در کارت SD</string>
<string name="SaveAttachmentDialog_open">در نهانگاه ذخیره و سپس باز شود</string>
<string name="ShowAttachedImage">عکس را با نمایشگر داخلی نشان بده</string>
<string name="SaveAttachment_doneMessage">فایل ذخیره شد. در:\n
%1$s
</string>
<string name="SaveAttachment_Failed">ذخیره‌سازی فایل در\n
%1$s\n
ناموفق بود.</string>
<string name="AddUrlToEntryDialog_title">متن جست‌وجو ذخیره شود؟</string>
<string name="AddUrlToEntryDialog_text">مایلید عبارت جست‌وجوی «%1$s» را در این مدخل ذخیره کنید تا در دفعات بعدی به‌صورت خودکار پیدا شود؟</string>
<string name="error_invalid_expiry_date">قالب تاریخ/ساعت برای تاریخ انقضا نامعتبر است!</string>
<string name="error_string_key">نوشتن نام فیلد برای هر رشته اجباری است.</string>
<string name="error_string_duplicate_key">نام فیلد نباید تکراری باشد (%1$s).</string>
<string name="field_name">نام فیلد</string>
<string name="field_value">مقدار فیلد</string>
<string name="protection">فیلد محافظت‌شده</string>
<string name="add_binary">افزودن پیوست فایلی</string>
<string name="add_extra_string">افزودن رشتهٔ اضافی</string>
<string name="delete_extra_string">حذف‌کردن رشتهٔ اضافی</string>
<string name="database_loaded_quickunlock_enabled">%1$s: قفل شد. زودگشایی فعال شد.</string>
<string name="database_loaded_unlocked">%1$s: قفل نیست.</string>
<string name="credentials_dialog_title">اطلاعات اعتبارنامهٔ میزبان را وارد کنید</string>
<string name="UseFileTransactions_title">تراکنش‌های فایلی</string>
<string name="UseFileTransactions_summary">از تراکنش‌های فایلی برای نوشتن پایگاه‌داده‌ها استفاده کن</string>
<string name="LockWhenScreenOff_title">با خاموش‌شدنِ صفحه، قفل شود</string>
<string name="LockWhenScreenOff_summary">وقتی نمایشگر خاموش شد پایگاه‌داده قفل شود.</string>
<string name="ClearPasswordOnLeave_title">پاک‌کردن شاه‌رمز واردشده</string>
<string name="ClearPasswordOnLeave_summary">اگر بدون گشودن قفل پایگاه‌داده، صفحه را ترک کردم شاه‌رمز واردشده پاک شود.</string>
<string name="LockWhenNavigateBack_title">با رفتن از برنامه قفل شود</string>
<string name="LockWhenNavigateBack_summary">هنگامی که با زدن کلید برگشت برنامه را ترک کردم، پایگاه‌داده قفل شود.</string>
<string name="ActivateSearchViewOnStart_title">تمرکز روی فیلد جستجو هنگام شروع</string>
<string name="ActivateSearchViewOnStart_summary">هنگام جستجوی مدخل‌ها یا پس از قفل‌گشایی پایگاه، فیلد جستجو فعال می‌شود</string>
<string name="NoDonateOption_title">مخفی‌کردن گزینهٔ هدیه</string>
<string name="NoDonateOption_summary">این گزینه مخصوص حامیان است. پس از مدتی که از Keepass2Android استفاده کنید فعال می‌شود.</string>
<string name="NoDonateOption_question">بدون حمایت‌های شما این برنامه نمی‌پاید و پیوسته بهتر نمی‌شود! اگر هنوز حمایت نکرده‌اید لطفاً هم‌اکنون دست‌به‌کار شوید.</string>
<string name="NoDonationReminder_title">دیگر هیچ‌وقت درخواست حمایت نکن</string>
<string name="NoDonationReminder_summary">چندرغاز هم نمی‌دهم یا قبلاً حمایت کرده‌ام. حتی روز تولد سازندهٔ برنامه هم درخواست هدیه نکن.</string>
<string name="UseOfflineCache_title">پایگاه‌داده در نهانگاه</string>
<string name="UseOfflineCache_summary">نسخه‌ای از فایل‌های پایگاه‌داده را در پوشهٔ نهانگاهی برنامه نگه دارید. بدین ترتیب حتی اگر فایل اصلی پایگاه‌داده در دسترس نباشد می‌توانید از آن استفاده کنید.</string>
<string name="CreateBackups_title">پشتیبان‌های محلی</string>
<string name="CreateBackups_summary">پس از بارگذاری موفقیت‌آمیز پایگاه‌داده، یک نسخهٔ پشتیبان از آن روی دستگاه ایجاد می‌شود.</string>
<string name="UpdatingBackup">به‌روزآوری پشتیبان محلی...</string>
<string name="LocalBackupOf">پشتیبان محلی از %1$s</string>
<string name="AcceptAllServerCertificates_title">گواهی‌های SSL</string>
<string name="AcceptAllServerCertificates_summary">در صورتی که اعتبارسنجی گواهی ناموفق بود، برنامه چگونه رفتار کند؟ توجه: اگر اعتبارسنجی ناموفق باشد می‌توانید خودتان گواهی‌ها را روی دستگاه نصب کنید!</string>
<string name="ClearOfflineCache_title">نهانگاه (cache) پاک شود؟</string>
<string name="ClearOfflineCache_question">همهٔ پایگاه‌داده‌ها از نهانگاه (cache) پاک می‌شود. همهٔ تغییراتی که زمان دسترسی‌نداشتن به فایل اصلی پایگاه انجام داده‌اید و هنوز همگام‌سازی نشده باشد از دست خواهد رفت! ادامه می‌دهید؟</string>
<string name="CheckForFileChangesOnSave_title">بررسی تغییرات</string>
<string name="CheckForFileChangesOnSave_summary">قبل از ذخیره‌سازی بررسی کن آیا فایل بیرون از برنامه تغییر کرده یا خیر.</string>
<string name="CheckForDuplicateUuids_title">بررسی UUIDهای تکراری</string>
<string name="CheckForDuplicateUuids_summary">بررسی اینکه آیا فایل پایگاه‌داده با داشتن چندین مدخل هم‌شناسه خراب شده یا خیر. این مسئله می‌تواند رفتار غیرمنتظره‌ای به‌بار آورد.</string>
<string name="ShowCopyToClipboardNotification_title">اعلانات بریده‌دان</string>
<string name="ShowCopyToClipboardNotification_summary">دسترسی به نام کاربری و گذرواژه را از طریق نوار اعلان و بریده‌دان ممکن می‌کند. حواستان باشد گیر برنامه‌های رمزدزد نیفتید!</string>
<string name="ShowSeparateNotifications_title">اعلانات جداگانه</string>
<string name="ShowSeparateNotifications_summary">برای کپی‌کردن نام کاربری و گذرواژه در بریده‌دان و فعال‌کردن صفحه‌کلید اعلانات جداگانه‌ای نشان بده.</string>
<string name="AccServiceAutoFill_prefs">سرویس دسترس‌پذیری تکمیل خودکار</string>
<string name="AutoFill_prefs">سرویس تکمیل خودکار</string>
<string name="ShowKp2aKeyboardNotification_title">اعلان صفحه‌کلید KP2A</string>
<string name="ShowKp2aKeyboardNotification_summary">مدخل به‌طور کامل از طریق صفحه‌کلید KP2A در دسترس باشد (توصیه می‌شود).</string>
<string name="OpenKp2aKeyboardAutomatically_title">تغییر صفحه‌کلید</string>
<string name="OpenKp2aKeyboardAutomatically_summary">پس از جست‌وجو در مرورگر اگر ورود اطلاعات مدخل از طریق صفحه‌کلید KP2A ممکن بود کادر انتخاب صفحه‌کلید را نشان بده.</string>
<string name="kp2a_switch_rooted">تغییر خودکار صفحه‌کلید</string>
<string name="kp2a_switch_rooted_summary">با بازشدن مدخل، به‌صورت خودکار صفحه‌کلید KP2A فعال شود. برای این کار لازم است افزونهٔ KeyboardSwap فعال باشد یا اینکه دستگاه روت شده باشد و برنامهٔ Secure Settings با ماژول System+ نصب باشد. </string>
<string name="get_keyboardswap">نصب افزونهٔ KeyboardSwap</string>
<string name="get_keyboardswap_summary">با این افزونه بدون نیاز به روت صفحه‌کلید KP2A را فعال کنید. نیازمند ADB. </string>
<string name="OpenKp2aKeyboardAutomaticallyOnlyAfterSearch_title">تغییر خودکار فقط بعد از جست‌وجو</string>
<string name="OpenKp2aKeyboardAutomaticallyOnlyAfterSearch_summary">فقط زمانی صفحه‌کلید KP2A به‌صورت خودکار فعال شود که از قابلیت اشتراک‌گذاری URL استفاده کرده باشم (نه وقتی که مدخلی را با روش دیگری باز می‌کنم)</string>
<string name="AutoSwitchBackKeyboard_title">برگشت صفحه‌کلید به حالت قبل</string>
<string name="AutoSwitchBackKeyboard_summary">وقتی مدخلی باز نیست، صفحه‌کلید قبلی فعال شود.</string>
<string name="ShowUnlockedNotification_title">آیکون اعلان وقتی قفل نیست</string>
<string name="ShowUnlockedNotification_summary">وقتی قفل پایگاه‌داده باز است یک اعلان نشان بده.</string>
<string name="IconVisibilityInfo_Android8_text">اندروید ۸ رفتار جدیدی را برای اعلان‌ها ارائه کرده است. اگر می‌خواهید آیکون اعلانات Keepass2Android را مخفی کنید، لطفاً آن را از طریق تنظیمات سیستم پیکربندی کنید. اهمیت دستهٔ اعلان را روی کمترین تنظیم کنید.</string>
<string name="IconVisibilityInfo_Android8_btnSettings">بازکردن تنظیمات</string>
<string name="DontCare">مهم نیست</string>
<string name="DocumentAccessRevoked">فایل برای Keepass2Android قابل‌دسترسی نیست. یا حذف شده یا اینکه اجازهٔ دسترسی به آن ستانده شده است. لطفاً آن را مجدداً باز کنید؛ مثلاً از «تغییر پایگاه‌داده» استفاده کنید.</string>
<string name="PreloadDatabaseEnabled_title">پیش‌بارگذاری فایل پایگاه‌داده</string>
<string name="PreloadDatabaseEnabled_summary">هنگام واردکردن گذرواژه، بارگذاری یا دانلود فایل پایگاه‌داده را در پس‌زمینه شروع کن.</string>
<string name="AskOverwriteBinary">به‌جای فایل موجود با همان نام نوشته شود؟</string>
<string name="AskOverwriteBinary_title">جایگزین فایل موجود شود؟</string>
<string name="AskOverwriteBinary_yes">جایگزینی</string>
<string name="AskOverwriteBinary_no">تغییر نام</string>
<string name="AttachFailed">افزودن فایل پیوست ناموفق بود.</string>
<string name="RecycleBin">سطل بازیافت</string>
<string name="AskDeletePermanentlyEntry">این مدخل را برای همیشه حذف می‌کنید؟
خیر را انتخاب کنید تا برگشت‌پذیر باشد.</string>
<string name="AskDeletePermanentlyGroup">این گروه را برای همیشه حذف می‌کنید؟
خیر را انتخاب کنید تا برگشت‌پذیر باشد.</string>
<string name="AskDeletePermanentlyItems">موارد انتخاب‌شده را برای همیشه حذف می‌کنید؟
خیر را انتخاب کنید تا برگشت‌پذیر باشد.</string>
<string name="AskDeletePermanentlyEntryNoRecycle">این مدخل را برای همیشه حذف می‌کنید؟</string>
<string name="AskDeletePermanentlyGroupNoRecycle">این گروه را برای همیشه حذف می‌کنید؟</string>
<string name="AskDeletePermanentlyItemsNoRecycle">موارد انتخاب‌شده را برای همیشه حذف می‌کنید؟</string>
<string name="AskDeletePermanently_title">برای همیشه حذف می‌کنید؟</string>
<string name="AskReloadFile_title">بارگذاری مجدد فایل؟</string>
<string name="AskReloadFile">فایلی که هم‌اکنون باز است به‌وسیلهٔ برنامهٔ دیگری تغییر کرده. مجدداً بارگذاری شود؟</string>
<string name="AskDiscardChanges">واقعاً تغییراتی که دادید را ذخیره نمی‌کنید؟ (دکمهٔ ذخیره در بالای فرم قرار دارد.)</string>
<string name="AskDiscardChanges_title">تغییرات از بین برود؟</string>
<string name="suggest_improvements">برای توسعه و پیشرفت برنامه، رأی یا پیشنهاد بدهید</string>
<string name="rate_app">به این برنامه امتیاز بدهید</string>
<string name="translate_app">KP2A را ترجمه کنید</string>
<string name="AddingEntry">افزودن مدخل...</string>
<string name="AddingGroup">افزودن گروه…</string>
<string name="DeletingEntry">حذف مدخل…</string>
<string name="DeletingGroup">در حال حذف گروه…</string>
<string name="DeletingItems">در حال حذف موارد…</string>
<string name="SettingPassword">در حال تنظیم گذرواژه…</string>
<string name="UndoingChanges">در حال خنثی‌کردن تغییرات…</string>
<string name="TransformingKey">در حال تبدیل شاه‌کلید…</string>
<string name="DecodingDatabase">در حال رمزگشایی پایگاه‌داده…</string>
<string name="ParsingDatabase">در حال خواندن پایگاه‌داده…</string>
<string name="CheckingTargetFileForChanges">در حال بررسی تغییرات در فایل هدف…</string>
<string name="TitleSyncQuestion">تغییرات ادغام شود؟</string>
<string name="MessageSyncQuestion">فایل پایگاه‌داده بیرون از برنامه تغییر کرده است. مایلید پیش از ذخیره‌سازی، تغییرات را بارگذاری و ادغام کنیم؟ اگر می‌خواهید روی تغییراتی که بیرون برنامه انجام شده ذخیره کنید خیر را انتخاب کنید.</string>
<string name="SynchronizingDatabase">در حال ادغام تغییرات…</string>
<string name="YesSynchronize">بله، ادغام کن</string>
<string name="NoOverwrite">خیر، به‌جای آن ذخیره کن</string>
<string name="UseOfflineMode">کار فقط با نهانگاه داخلی</string>
<string name="UseOnlineMode">همگام‌سازی نسخهٔ نهانگاهی و فایل اصلی</string>
<string name="UseOfflineMode_Info">پایگاه‌داده از نهانگاه (cache) بار شده است. تغییرات فقط در نهانگاه داخلی ذخیره می‌شود. برای ذخیرهٔ تغییرات در فایل اصلی حتماً گزینهٔ «همگام‌سازی نسخهٔ نهانگاهی و فایل اصلی» را انتخاب کنید.</string>
<string name="InOfflineMode">در حال کار با فقط نسخهٔ نهانگاهی.</string>
<string name="SynchronizingCachedDatabase">در حال همگام‌سازی پایگاه‌دادهٔ نهانگاهی…</string>
<string name="DownloadingRemoteFile">در حال بارگذاری فایل اصلی…</string>
<string name="UploadingFile">ذخیرهٔ فایل…</string>
<string name="RestoringRemoteFile">در حال بازیابی فایل اصلی…</string>
<string name="FilesInSync">فایل‌ها همگام هستند.</string>
<string name="SynchronizedDatabaseSuccessfully">پایگاه‌داده با موفقیت همگام شد!</string>
<string name="CheckingDatabaseForChanges">در حال بررسی تغییرات پایگاه‌داده…</string>
<string name="CouldNotSaveToRemote">ذخیره‌سازی در فایل اصلی انجام نشد:
%1$s
مجدداً ذخیره کنید یا وقتی به فایل اصلی دسترسی داشتید از منوی همگام‌سازی استفاده کنید.</string>
<string name="CouldNotLoadFromRemote">دسترسی به فایل اصلی ممکن نیست:
%1$s
فایل موجود در نهانگاه داخلی باز شد. هنوز هم می‌توانید در پایگاه‌داده تغییراتی بدهید و بعداً فایل اصلی را با آن همگام کنید.</string>
<string name="UpdatedRemoteFileOnLoad">فایل اصلی به‌روز شد.</string>
<string name="NotifyOpenFromLocalDueToConflict">به‌سبب تعارض تغییرات با فایل اصلی، فایلی که در نهانگاه داخلی موجود بود باز شد. برای ادغام تغییرات از منوی همگام‌سازی استفاده کنید.</string>
<string name="LoadedFromRemoteInSync">فایل اصلی و نسخهٔ نهانگاهی همگام شدند.</string>
<string name="UpdatedCachedFileOnLoad">نسخهٔ نهانگاهی %1$s در دستگاه به‌روز شد.</string>
<string name="RemoteDatabaseUnchanged">تغییری نکرده.</string>
<string name="ResolvedCacheConflictByUsingRemoteOtpAux">فایل کمکی OTP در نهانگاه به‌روز شد: شمارندهٔ فایل اصلی بالاتر بود.</string>
<string name="ResolvedCacheConflictByUsingLocalOtpAux">فایل کمکی OTP برای فایل اصلی به‌روز شد: شمارندهٔ محلی بالاتر بود.</string>
<string name="SynchronizingOtpAuxFile">در حال همگام‌سازی فایل کمکی OTP…</string>
<string name="database_file">فایل پایگاه‌داده</string>
<string name="otp_aux_file">فایل کمکی OTP</string>
<string name="ErrorOcurred">خطایی رخ داد:</string>
<string name="DuplicateUuidsError">پایگاه‌داده خراب است: شناسه‌های تکراری پیدا شد. (با Minikeepass ذخیره کردید؟) لطفاً مجدداً با استفاده از نسخهٔ کامپیوتری Keepass 2 آن را در پایگاه‌دادهٔ جدیدی وارد کنید و سپس گزینهٔ «ساخت شناسه‌های جدید» را برگزینید.</string>
<string name="DuplicateUuidsErrorAdditional">این پیغام خطا از طریق تنظیمات/تنظیمات برنامه/فایل‌گردانی/بررسی UUIDهای تکراری غیرفعال می‌شود. لطفاً توجه کنید که با این کار ممکن است رفتار غیرمنتظره‌ای از برنامه سر بزند. بهتر است مشکل پایگاه‌داده را حل کنید.</string>
<string name="synchronize_database_menu">در حال همگام‌سازی پایگاه‌داده…</string>
<string name="CannotMoveGroupHere">نمی‌توان گروه را در این گروه قرار داد.</string>
<string name="donate_question">از Keepass2Android راضی هستید؟ مرا به یک فنجان قهوه مهمان کنید.</string>
<string name="donate_bday_question">دهم ماه می؟ امروز تولدم است!
اگر از این برنامه راضی هستید دست‌به‌کار شوید و پیام تبریکتان را با هدیه‌ای کوچک برایم بفرستید. خیلی خوشحال می‌شوم، باور کنید! :)</string>
<string name="donate_missedbday_question">تولدم دهم ماه می بود، از دستش دادید! ولی اگر از این برنامه راضی هستید، هنوز هم می‌توانید تبریک خودتان را با هدیه‌ای برایم بفرستید. برای خوشحال‌کردنم دیر نشده! :)</string>
<string name="ok_donate">بیشتر توضیح بده!</string>
<string name="no_thanks">نه، خیلی خوشم نمی‌آید</string>
<string name="enter_http_login_title">اطلاعات ورود به WebDav را وارد کنید:</string>
<string name="hint_http_url">نشانی اینترنتی پوشه یا فایل ( مثال:
mycloud.me.com/webdav/ )</string>
<string name="enter_owncloud_login_title">اطلاعات ورود به OwnCloud را وارد کنید:</string>
<string name="hint_owncloud_url">نشانی اینترنتی OwnCloud (مثال: owncloud.me.com)</string>
<string name="hint_sftp_host">میزبان (مثال: 192.168.0.1)</string>
<string name="hint_sftp_port">درگاه</string>
<string name="initial_directory">پوشهٔ آغازین (اختیاری):</string>
<string name="enter_sftp_login_title">اطلاعات ورود به SFTP را وارد کنید:</string>
<string name="enter_ftp_login_title">اطلاعات ورود به FTP را وارد کنید:</string>
<string name="select_storage_type">نوع ذخیره‌گاه را مشخص کنید:</string>
<string name="filestoragename_file">فایل محلی</string>
<string name="filestoragename_androidget">دریافت از برنامهٔ سوم</string>
<string name="filestoragename_androidsend">فرستادن به برنامهٔ سوم</string>
<string name="filestoragename_ftp">FTP</string>
<string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_owncloud">OwnCloud</string>
<string name="filestoragename_dropbox">Dropbox</string>
<string name="filestoragename_dropboxKP2A">Dropbox (پوشه KP2A)</string>
<string name="filestoragehelp_dropboxKP2A">اگر می‌خواهید DropBoxتان به‌طور کامل در دسترس KP2A نباشد، این گزینه را انتخاب کنید. با این کار فقط دسترسی به پوشهٔ Apps/Keepass2Android را درخواست می‌کند. این گزینه مخصوصاً مناسب زمانی است که پایگاه‌دادهٔ جدیدی می‌سازید. اگر هم‌اکنون یک پایگاه‌داده دارید، این گزینه را انتخاب کنید تا پوشه را بسازید، سپس فایل را درون آن پوشه قرار دهید (از کامپیوترتان) و سپس دوباره این گزینه را انتخاب کنید تا فایل باز شود.</string>
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_sftp">SFTP (انتقال فایل به‌روش SSH)</string>
<string name="filestoragename_content">گزینشگر فایل سیستم</string>
<string name="filestorage_setup_title">راه‌اندازی دسترسی به فایل</string>
<string name="database_location">محل پایگاه داده</string>
<string name="help_database_location">می‌توانید پایگاه‌داده را به‌صورت محلی یعنی روی دستگاه اندروید خود یا روی ابر (فقط نسخهٔ غیرآفلاین) ذخیره کنید. Keepass2Android حتی در زمان آفلاین‌بودن هم پایگاه‌داده را در اختیارتان می‌گذارد. چون پایگاه‌داده با استفاده از روش رمزنگاری AES 256 bit ایمن می‌شود، کسی جز خودتان امکان دست‌یابی به گذرواژه‌های شما را نخواهد داشت. پیشنهاد می‌کنیم DropBox را برگزینید، زیرا روی همهٔ دستگاه‌هایتان به آن دسترسی دارید و نیز فایل پشتیبان نسخه‌های قدیمی فایلتان را نگه می‌دارد.</string>
<string name="hint_database_location">ذخیره‌گاه پایگاه‌داده را مشخص کنید:</string>
<string name="button_change_location">تغییر محل</string>
<string name="help_quickunlock">اگر فعال باشد، Keepass2Android حتی در زمان قفل‌بودن پایگاه‌داده در پس‌زمینه باز می‌ماند و بعداً می‌توانید با واردکردن بخش کوتاهی از شاه‌رمز، پایگاه‌داده را قفل‌گشایی کنید.</string>
<string name="master_password">شاه‌رمز</string>
<string name="help_master_password">پایگاه‌داده با شاه‌رمزی که اینجا می‌نویسید رمزگذاری می‌شود. یک گذرواژهٔ قوی انتخاب کنید تا پایگاه‌داده امن بماند! راهنمایی: یک یا دو جمله بسازید و از حروف اول کلمه‌ها برای ساخت شاه‌رمز استفاده کنید. علائم نگارشی را هم به‌کار ببرید.</string>
<string name="hint_master_password">یک شاه‌رمز برای محافظت از پایگاه‌داده انتخاب کنید:</string>
<string name="key_file">فایل کلید</string>
<string name="help_key_file">فایل کلید در اصل گذرواژه‌ای است که در یک فایل ذخیره شده. فایل‌های کلید معمولاً قوی‌تر از شاه‌رمز هستند؛ زیرا کلید می‌تواند بسیار پیچیده‌تر باشد، هرچند محفوظ نگه‌داشتن آن هم دشوارتر است. اگر پایگاه‌داده‌تان را روی ابر ذخیره می‌کنید، فایل کلید را هم آنجا کنارش نگذارید! اگر این کار را بکنید کاملاً بی‌استفاده می‌شود! مهم: بعد از اینکه پایگاه‌داده ساخته شد، محتوای فایل کلید را تغییر ندهید!</string>
<string name="hint_key_file">در صورتی انتخاب کنید که بخواهید علاوه بر شاه‌رمزتان از یک فایل کلید هم استفاده کنید:</string>
<string name="use_key_file">استفاده از فایل کلید</string>
<string name="error_adding_keyfile">هنگام افزودن فایل کلید خطایی رخ داد!</string>
<string name="init_otp">بارگذاری فایل کمکی OTP…</string>
<string name="otp_explanation">رمزهای یک‌بارمصرف (OTP) بعدی را وارد کنید. یوبیکی‌نئو را پشت دستگاهتان بکشید تا از طریق NFC وارد شود.</string>
<string name="otp_hint">OTP %1$d</string>
<string name="CouldntLoadOtpAuxFile">بارگذاری فایل کمکی OTP ناموفق بود!</string>
<string name="CouldntLoadOtpAuxFile_Hint">لطفاً با استفاده از افزونهٔ OtpKeyProv در نسخهٔ کامپیوتری نرم‌افزار KeePass 2.x پایگاه‌داده‌تان را برای کار با رمزهای یک‌بارمصرف (OTP) آماده کنید!</string>
<string name="otp_discarded_because_no_db">لطفاً اول پایگاه‌داده را انتخاب کنید. به‌دلایل امنیتی رمز یک‌بارمصرف از درجهٔ اعتبار افتاد.</string>
<string name="otp_discarded_no_space">رمز یک‌بارمصرف از اعتبار افتاد: همهٔ رمزهای یک‌بارمصرف وارد شده!</string>
<string name="otp_discarded_because_db_open">لطفاً ابتدا پایگاه‌داده را ببندید. رمز یک‌بارمصرف از اعتبار افتاده.</string>
<string name="otps_pending">( یک یا چند رمز یک‌بارمصرف وجود دارد)</string>
<string name="otpsecret_hint">رمزینهٔ OTP (مثلاً 01 23 ab cd…)</string>
<string name="CouldntParseOtpSecret">خطا هنگام تجزیه‌کردن رمزینهٔ OTP!</string>
<string name="OtpKeyError">ساخت کلید OTP ناموفق بود! مطمئن شوید OTPها را درست وارد کرده باشید.</string>
<string name="ErrorUpdatingOtpAuxFile">خطا هنگام به‌روزرسانی فایل کمکی OTP!</string>
<string name="SavingOtpAuxFile">در حال ذخیره‌سازی فایل OTP کمکی…</string>
<string name="NoChallengeApp">برنامه‌ای برای کار با چالش پیدا نشد.</string>
<string name="PleaseInstallApp">لطفاً %1$s را از گوگل‌پلی نصب کنید.</string>
<string name="AppOutdated">%1$s دیگر پشتیبانی نمی‌شود.</string>
<string name="bad_resp">پاسخ چالش نادرست است.</string>
<string name="CouldntLoadChalAuxFile">بارگذاری فایل چالش کمکی ناموفق بود!</string>
<string name="CouldntLoadChalAuxFile_Hint">لطفاً با استفاده از افزونهٔ KeeChallenge در نسخهٔ کامپیوتری KeePass 2.x پایگاه‌داده‌تان را برای کار با احراز هویت چالش-پاسخ (challenge-response) آماده کنید!</string>
<string name="ErrorUpdatingChalAuxFile">خطا هنگام به‌روزرسانی فایل کمکی OTP!</string>
<string name="TrayTotp_SeedField_title">نام فیلد TOTP Seed</string>
<string name="TrayTotp_SeedField_summary">اگر در Keepass 2 از افزونهٔ TrayTotp استفاده می‌کنید و تنظیمات پیشفرض افزونه را تغییر داده‌اید، نام فیلد خوراک (seed) را مطابق آنچه روی کامپیوتر وارد کرده‌اید اینجا بنویسید.</string>
<string name="TrayTotp_SettingsField_title">نام فیلد تنظیمات TOTP</string>
<string name="TrayTotp_SettingsField_summary">نام فیلد تنظیمات TrayTotp را بنویسید.</string>
<string name="TrayTotp_prefs">TrayTotp</string>
<string name="DebugLog_prefs_prefs">فایل گزارش برای عیب‌یابی</string>
<string name="DebugLog_title">استفاده از فایل گزارش</string>
<string name="DebugLog_summary">خروجی برنامه در یک فایل گزارش روی دستگاه نوشته می‌شود</string>
<string name="DebugLog_send">ارسال گزارش عیب‌یابی...</string>
<string name="loading">در حال بارگیری…</string>
<string name="plugins">افزونه‌ها</string>
<string name="plugin_packagename">نام بسته:</string>
<string name="plugin_description">توضیحات (تأیید نشده):</string>
<string name="plugin_author">سازنده (تأیید نشده):</string>
<string name="plugin_enabled">فعال</string>
<string name="plugin_disabled">غیرفعال</string>
<string name="plugin_web">یافتن افزونه در اینترنت</string>
<string name="plugin_scopes">آزادی عمل</string>
<string name="not_enabled">فعال نیست</string>
<string name="query_credentials_for_url">درخواست اعتبارنامه از سوی %1$s\n
برای\n
%2$s</string>
<string name="query_credentials">درخواست اعتبارنامه از سوی %1$s. لطفاً یک مدخل را انتخاب کنید.</string>
<string name="plugin_enabled_checkbox">فعال</string>
<string name="SCOPE_DATABASE_ACTIONS_title">اعلانات کار با پایگاه‌داده</string>
<string name="SCOPE_DATABASE_ACTIONS_explanation">افزونه از باز، بسته یا ذخیره‌شدن پایگاه‌داده آگاه می‌شود.</string>
<string name="SCOPE_CURRENT_ENTRY_title">دادگان مدخل جاری</string>
<string name="SCOPE_CURRENT_ENTRY_explanation">افزونه همهٔ دادگان مربوط به مدخل جاری را دریافت می‌کند و می‌تواند پیشنهاد انجام کاری را بدهد و ظاهر آن را تغییر دهد.</string>
<string name="SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_title">یافتن اعتبارنامهٔ خود</string>
<string name="SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_explanation">افزونه اجازه دارد اعتبارنامهٔ متناظر با بستهٔ نرم‌افزاری خودش را بیابد.</string>
<string name="SCOPE_QUERY_CREDENTIALS_title">یافتن اعتبارنامه</string>
<string name="SCOPE_QUERY_CREDENTIALS_explanation">افزونه اجازه دارد اعتبارنامهٔ وب‌سایت‌ها یا برنامه‌های درخواستی شما را بیابد.</string>
<string name="get_regular_version">انواع بیشتری از ذخیره‌گاه‌ها را دریافت کنید</string>
<string name="CertificateWarning">هشدار: اعتبارسنجی گواهینامهٔ میزبان ناموفق بود: %1$s. گواهی ریشه‌ای مناسب را روی دستگاهتان نصب کنید یا تنظیمات را ببینید!</string>
<string name="CertificateFailure">هشدار: اعتبارسنجی گواهینامهٔ میزبان ناموفق بود. گواهی ریشه‌ای مناسب را روی دستگاهتان نصب کنید یا تنظیمات را ببینید!</string>
<string name="export_fileformats_title">قالب فایل را انتخاب کنید</string>
<string name="killed_by_os">متأسفم! سیستم‌عامل اندروید Keepass2Android را کُشت! به‌دلایل امنیتی، Keepass2Android اعتبارنامهٔ انتخاب‌شده را روی حافظه نگه نداشت، بنابراین باید پایگاه‌داده را مجدداً باز کنید. توجه: این مشکل نباید رخ بدهد، مگر خیلی به‌ندرت. اگر اتفاق افتاد، لطفاً به نشانی ایمیل crocoapps@gmail.com به من گزارش بدهید.</string>
<string name="FileIsTemporarilyAvailable">فایل فقط به‌صورت موقت در دسترس Keepass2Android است.</string>
<string name="FileIsReadOnly">فایلی که انتخاب کرده‌اید فقط-خواندنی است.</string>
<string name="FileIsReadOnlyOnKitkat">به‌سبب محدودیت‌هایی که اندروید ۴٫۴‎+ دارد، Keepass2Android فقط می‌تواند این فایل را بخواند.</string>
<string name="CopyFileRequired">برای استفاده از آن، باید آن را به مکان دیگری کپی کنید.</string>
<string name="CopyFileRequiredForEditing">برای ویرایش آن، باید آن را به مکان دیگری کپی کنید.</string>
<string name="ClickOkToSelectLocation">خُب را انتخاب کنید تا محل کپی‌کردن فایل را برگزینید.</string>
<string name="FileReadOnlyTitle">پایگاه‌داده فقط-خواندنی است</string>
<string name="FileReadOnlyMessagePre">برنامهٔ Keepass2Android پایگاه‌دادهٔ جاری را در حالت فقط-خواندنی باز کرده است.</string>
<string name="ReadOnlyReason_PreKitKat">ظاهراً فایل را در یک برنامهٔ خارجی باز کرده‌اید. با این کار نوشتن در فایل ممکن نیست. اگر قصد دارید در پایگاه‌داده تغییرات بدهید، لطفاً پایگاه‌داده را ببندید و تغییردادن پایگاه‌داده را انتخاب کنید. سپس در صورت امکان به‌کمک یکی از گزینه‌های موجود فایل را باز کنید.</string>
<string name="ReadOnlyReason_ReadOnlyFlag">شاخص فقط-خواندنی فعال است. اگر می‌خواهید در پایگاه‌داده تغییرات بدهید، شاخص را غیرفعال کنید.</string>
<string name="ReadOnlyReason_ReadOnlyKitKat">به‌سبب محدودیت‌های جدید اندروید کیت‌کت، نوشتن ممکن نیست. اگر قصد دارید در پایگاه‌داده تغییرات بدهید، پایگاه‌داده را ببندید و تغییردادن پایگاه‌داده را انتخاب کنید. سپس به‌وسیلهٔ انتخابگر فایل اندروید فایل را برگزینید.</string>
<string name="ReadOnlyReason_LocalBackup">پشتیبان‌ها را نمی‌توانید ویرایش کنید، اما می‌توانید از طریق تنظیمات پایگاه‌داده - صادرکردن پایگاه‌داده، پشتیبان را به مکان دیگری صادر کنید که بتوانید از آنجا بازش کنید. در این صورت پایگاه مجدداً قابل‌ویرایش خواهد شد.</string>
<string name="AddCustomIcon">افزودن آیکون از فایل...</string>
<string name="CopyingFile">در حال کپی‌کردن فایل...</string>
<string name="DuplicateTitle">کپی</string>
<string name="DefaultTemplate">مدخل استاندارد</string>
<string name="TemplateGroupName">الگوها</string>
<string name="TemplateTitle_IdCard">کارت شناسائی</string>
<string name="TemplateField_IdCard_Name">نام</string>
<string name="TemplateField_IdCard_PlaceOfIssue">محل صدور</string>
<string name="TemplateField_IdCard_IssueDate">تاریخ صدور</string>
<string name="TemplateTitle_EMail">ایمیل</string>
<string name="TemplateField_EMail_EMail">نشانی ایمیل</string>
<string name="TemplateTitle_WLan">شبکهٔ بی‌سیم</string>
<string name="TemplateTitle_Notes">یادداشت امن</string>
<string name="TemplateField_WLan_SSID">SSID</string>
<string name="TemplateField_Number">عدد</string>
<string name="TemplateField_CreditCard_CVV">CVV</string>
<string name="TemplateField_CreditCard_PIN">پین</string>
<string name="TemplateField_CreditCard_Owner">صاحب کارت</string>
<string name="TemplateTitle_CreditCard">کارت اعتباری</string>
<string name="TemplateTitle_Membership">عضویت</string>
<string name="ChangeLog_title">گزارش تغییرات</string>
<string name="AskAddTemplatesTitle">الگو اضافه شود؟</string>
<string name="AskAddTemplatesMessage">در Keepass2Android یک‌سری مدخل‌های الگو برای حساب ایمیل، گذرواژهٔ وای‌فای، یادداشت محرمانه و... وجود دارد. مایلید این‌ها را به پایگاه‌داده اضافه کنید؟ اگر خیر را انتخاب کردید، بعداً می‌توانید از طریق تنظیمات پایگاه‌داده آن‌ها را اضافه کنید.</string>
<string name="AddTemplates_pref">افزودن الگوها به پایگاه‌داده</string>
<string name="PreviewWarning">لطفا توجه کنید! این یک نسخهٔ پیش‌نمایش است و احتمالاً نقایصی دارد! اگر با *هر* رفتار ناخواسته‌ای مواجه شدید، لطفاً به من بگویید (از طریق ایمیل یا گروه آزمایشگران نسخهٔ آزمایشی در گوگل+).</string>
<string name="Continue">ادامه</string>
<string name="NoFilenameWarning">URI واردشده شبیه به نام فایل نیست. مطمئنید که یک فایل معتبر است؟</string>
<string name="FirstInvalidCompositeKeyError">کلید ترکیبی نامعتبر! لطفا مجدداً تلاش کنید.</string>
<string name="RepeatedInvalidCompositeKeyHelp">کلید ترکیبی نامعتبر! لطفاً گام‌های زیر را امتحان کنید تا پایگاه‌داده قفل‌گشایی شود:\n
&#8226; اطمینان حاصل کنید که گذرواژه را درست نوشته باشید. روی نماد چشم بزنید تا گذرواژه نمایان شود.\n
&#8226; اطمینان حاصل کنید که نوع گذرواژه را درست انتخاب کرده باشید. مطمئن شوید همانی باشد که هنگام ساختن پایگاه‌داده انتخاب کرده بودید.\n
&#8226; اطمینان حاصل کنید پایگاه‌دادهٔ درست را انتخاب کرده باشید.
</string>
<string name="HintLocalBackupInvalidCompositeKey">
\n
&#8226; راهنما: اگر فکر می‌کنید شاید فایل پایگاه‌داده خراب شده باشد یا اگر پس از ویرایش، شاه‌کلید آن را فراموش کرده‌اید، می‌توانید آخرین نسخه‌ای را که با موفقیت باز کرده‌اید امتحان کنید. برای این منظور روی «%1$s» بزنید و فایل پشتیبان محلی را انتخاب کنید.</string>
<string name="HintLocalBackupOtherError">
\n
• راهنما: Keepass2Android آخرین نسخه‌ای از فایل که باموفقیت باز کرده بودید را در حافظهٔ داخلی ذخیره کرده است. با زدن روی «%1$s» و انتخاب فایل پشتیبان محلی می‌توانید آن را باز کنید.
</string>
<string name="CorruptDatabaseHelp">
فایل خراب شده است.\n
چند راهنمایی که کمکتان می‌کند مشکل را تشخیص دهید:\n
• اگر فایل را از طریق اتصال USB منتقل کرده‌اید (حالت MTP) لطفاً مجدداً با ابزارهایی مانند MyPhoneExplorer امتحان کنید. حالت MTP در شرایط خاصی فایل‌ها را ناقص می‌کند.\n
• اگر از همان پوشه روی کامپیوتر نمی‌توانید فایل را باز کنید، به‌احتمال زیاد فایل واقعاً خراب شده است. در این صورت لطفاً از فایل پشتیبان پایگاه‌داده استفاده کنید. اگر فکر می‌کنید که Keepass2Android فایل را خراب کرده، با بخش پشتیبانی تماس بگیرید.\n
• اگر هنوز می‌توانید فایل را روی کامپیوتر باز کنید، لطفاً با بخش پشتیبانی تماس بگیرید. همچنین می‌توانید فایل را با تنظیمات مختلف روی کامپیوتر ذخیره کنید (مثلا زیپ‌نشده) و سپس ببینید آیا در Keepass2Android باز می‌شود.
</string>
<string name="DbUnlockedChannel_name">پایگاه‌داده قفل‌گشایی شد</string>
<string name="DbUnlockedChannel_desc">اعلان دربارهٔ بازشدن قفل پایگاه‌داده</string>
<string name="DbQuicklockedChannel_name">زودگشایی</string>
<string name="DbQuicklockedChannel_desc">اعلان دربارهٔ بازشدن قفل پایگاه‌داده به‌روش زودگشایی</string>
<string name="EntryChannel_name">اعلانات مدخل</string>
<string name="EntryChannel_desc">اعلان برای سهولت دسترسی به مدخلی که اکنون انتخاب شده است.</string>
<string name="ErrorReportTitle">Keepass2Android: خطایی رخ داد.</string>
<string name="ErrorReportText">هنگام اجرای Keepass2Android خطای غیرمنتظره‌ای رخ داد. با اجازه‌دادن به برنامه برای ارسال گزارش‌های خطا کمک کنید تا این عیب را برطرف کنیم.</string>
<string name="ErrorReportPromise">گزارش‌های خطا هرگز شامل محتویات پایگاه‌دادهٔ شما یا شاه‌رمز نیست. از طریق تنظیمات برنامه می‌توانید آن‌ها را غیرفعال کنید.</string>
<string name="ErrorReportEnable">فعال‌کردن</string>
<string name="ErrorReportDisable">غیرفعال کردن</string>
<string name="ErrorReportAsk">پرسش بعد از خطا</string>
<string name="ErrorReportPrefTitle">ارسال گزارش‌های خطا</string>
<string name="ShowKeyboardDuringFingerprintAuth">اگر اسکن اثرانگشت فعال بود، برای واردکردن گذرواژه صفحه‌کلید نرم‌افزاری را نشان بده.</string>
<string name="ChangeLog_1_06">
نسخهٔ ۱٫۰۶\n
*استفاده از برنامهٔ ykDroid به‌جای YubiChallenge برای چالش-پاسخ یوبی‌کی.\n
*پشتیبانی از چالش-پاسخ به‌سبک KeepassXC. توجه: قالب پایگاه‌داده باید KDBX4 باشد!\n
*فایل‌های زباله‌دان گوگل‌درایو بارگیری نمی‌شود.\n
*تعویض پیاده‌سازی TLS برای FTPS و افزودن راهکاری برای باگ JSch با میزبان‌های پشتیبانی‌کننده از gssapi-with-mic\n
*رفع اشکال‌ها\n
</string>
<string name="ChangeLog_1_05">
نسخهٔ ۱٫۰۵\n
* به‌کارگیری کانال‌های اعلان برای اندروید ۸ که پیکربندی از طریق تنظیمات سیستم را میسر می‌کند\n
* نمایش آیکون مدخل در اعلان\n
* استفاده از آیکون‌های سازگار با اندروید ۸، آیکون گرد برنامه برای اندروید ۷\n
* امکان فعال‌شدن جستجو پس از قفل‌گشایی (تنظیمات را ببینید)\n
* تغییر شیوهٔ نوشتن فایل‌ها از طریق Storage Access Framework، رفع مشکلاتی در به‌روزرسانی فایل‌های گوگل‌درایو زمانی که با انتخابگر فایل سیستم باز می‌شد\n
* افزودن متون راهنما برای پیشگیری از یک‌سری کژبرداشت‌های شایع\n
* تهیهٔ پشتیبان‌های محلی از پایگاه‌هایی که با موفقیت باز شده‌اند، به‌منظور کاهش خطر از دست رفتن اطلاعات\n
* به‌روزرسانی JSch برای پشتیبانی از سایفرهای SSH جدیدتر\n
* امکان ویرایش تنظیمات اتصال، مثلاً هنگامی که گذرواژهٔ WebDav تغییر کرد\n
* پشتیبانی از حالت گذرواژهٔ ثابت یوبی‌کی نئو\n
* امکان غیرفعال‌سازی پیشنهاد تکمیل خودکار\n
* رفع نشت اطلاعات به logcat\n
* رفع باگ‌ها\n
</string>
<string name="ChangeLog_1_04b">
نسخهٔ ۱٫۰۴b\n
* رفع مشکل از کار افتادن برنامه هنگامی که کاربر تکمیل خودکار را روی دستگاه‌های هوآوی فعال می‌کند.\n
</string>
<string name="ChangeLog_1_04">
نسخهٔ ۱٫۰۴\n
* افزودن سرویس تکمیل خودکار برای اندروید ۸٫۰ و بالاتر.\n
* ارتقاء کتابخانه‌ها، ابزارهای ساخت و نسخهٔ SDK هدف.\n
</string>
<string name="ChangeLog_1_03">
نسخهٔ ۱٫۰۳\n
* بنا به درخواست گوگل قابلیت دسترسی برای تکمیل خودکار از برنامه حذف شد. لطفاً تنظیمات «دسترسی به گذرواژه» را ببینید تا از یک افزونه که همان کار را می‌کند استفاده کنید.\n
* اضافه‌شدن برنامه‌های شخص ثالث برای ذخیره‌گاه\n
* افزودن نمایشگر داخلی برای تصاویر پیوست که نیاز نباشد تصویر به برنامهٔ دیگری فرستاده شود\n
* ارتقاء OkHttp برای رفع برخی مشکلات اتصال\n
* پشتیبانی از مدخل‌های KeeTrayTOTP، اکنون مدخل‌های Steam پشتیبانی می‌شود.\n
</string>
<string name="ChangeLog_1_02">
نسخهٔ ۱٫۰۲\n
* بهبودهای امنیتی متعدد. از jean-baptiste.cayrou@thalesgroup.com و vincent.fargues@thalesgroup.com بابت ارسال گزارش‌ها و همکاری‌شان صمیمانه سپاسگزارم!\n
* پشتیبانی از افزونهٔ KeyboardSwapPlugin (تنظیمات دسترسی به گذرواژه را ببینید): امکان تعویض خودکار شیوهٔ ورودی روی دستگاه‌های روت‌نشده. با سپاس از میشال رحمان که این کار را انجام داد (از توسعه‌دهندگان XDA).\n
* رفع مشکلاتی که قابلیت دسترسی با نسخه‌های جدید کروم داشت\n
* رفع مشکل پاک‌سازی غیرضروری اطلاعات اثرانگشت\n
* رفع مشکلات جزئی\n
* به‌روزآوری Dropbox SDK برای اطمینان از سازگاری در آینده\n
* برداشت امکان گزارش خطا از طریق Xamarin Insights\n
* به‌روزآوری ابزارهای ساخت\n
</string>
<string name="ChangeLog_1_01g">
نسخهٔ ۱٫۰۱-g\n
* رفع مشکل توقف ناخواستهٔ برنامه با فعال‌کردن حالت آفلاین\n
* رفع مشکل کدگذاری نادرست اعتبارنامه‌های FTP(S)\n
* رفع مشکل توقف ناخواستهٔ برنامه هنگام استفاده از OneDrive روی نسخه‌های قدیمی‌تر اندروید\n
* نمایش زمان در صفحهٔ نمایش مدخل به ساعت محلی\n
</string>
<string name="ChangeLog_1_01d">
نسخهٔ ۱٫۰۱-d\n
* رفع مشکل برای نمایش لیست فایل‌های OneDrive\n
* امکان نادیده‌گرفتن خطاهای گواهینامه هنگامی که تأیید نام میزبان ناموفق است (برای کاربرد در محصول توصیه نمی‌شود)\n
* رفع مشکل بازنشدن قفل به‌روش زودگشایی با واردکردن رمز درست\n
</string>
<string name="ChangeLog_keptDonate">یادآوری بیشتر برای حمایت</string>
<string-array name="clipboard_timeout_options">
<item>۳۰ ثانیه</item>
<item>۱ دقیقه</item>
<item>۵ دقیقه</item>
<item>۱۰ دقیقه</item>
<item>۱۵ دقیقه</item>
<item>۳۰ دقیقه</item>
<item>۱ ساعت</item>
<item>هرگز</item>
</string-array>
<string-array name="export_fileformat_options">
<item>پایگاه‌دادهٔ Keepass 2 (.kdbx)</item>
<item>Keepass 2 XML (رمزنگاری‌نشده) (.xml)</item>
<item>Keepass CSV (رمزنگاری‌نشده) (.csv)</item>
</string-array>
<string-array name="list_size_options">
<item>کوچک</item>
<item>متوسط</item>
<item>بزرگ</item>
</string-array>
<string-array name="design_options">
<item>روشن</item>
<item>تیره</item>
</string-array>
<string name="design_title">پوسته</string>
<string-array name="ftp_encryption_modes">
<item>بدون رمزگذاری (FTP)</item>
<item>رمزگذاری ضمنی (FTP بر بستر TLS، FTPS)</item>
<item>رمزگذاری صریح (FTP بر بستر TLS، FTPS)</item>
</string-array>
<string-array name="cred_remember_modes">
<item>نام کاربری و گذرواژه را به خاطر نسپار</item>
<item>فقط نام کاربری را به خاطر بسپار</item>
<item>نام کاربری و گذرواژه را به خاطر بسپار</item>
</string-array>
<string-array name="password_modes">
<item>فقط گذرواژه</item>
<item>گذرواژه + فایل کلید</item>
<item>گذرواژه + OTP</item>
<item>گذرواژه + رمزینهٔ OTP (حالت بازیابی)</item>
<item>گذرواژه + چالش-پاسخ</item>
<item>گذرواژه + رمزینهٔ چالش-پاسخ (حالت بازیابی)</item>
<item>گذرواژه + چالش-پاسخ برای Keepass XC</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>شکست‌های اعتبارسنجی گواهینامه را نادیده بگیرد</item>
<item>هنگام شکست اعتبارسنجی هشدار بده</item>
<item>گواهینامه‌های نامعتبر را نپذیر</item>
</string-array>
<string name="ClearClipboardWarning">مطمئن شوید این روش روی سیستم شما کار می‌کند، در غیر این صورت از صفحه‌کلید اصلی استفاده کنید.</string>
<string name="PluginDescription">توضیحات ارائه‌شده با افزونه:</string>
<string name="autofill_hint">برنامهٔ Keepass2Android از قابلیت تکمیل خودکار در اندروید پشتیبانی می‌کند اما ظاهراً هنوز آن را فعال نکرده‌اید.</string>
<string name="autofill_enable">فعال‌سازی تکمیل خودکار</string>
<string name="autofill_enable_failed">شوربختانه دستگاه شما نمی‌تواند تنظیمات را مستقیماً از داخل برنامه باز کند. لطفاً خودتان به تنظیمات سیستم برای تکمیل خودکار بروید و سرویس آن را فعال کنید.</string>
<string name="show_autofill_help">نمایش راهنمای تکمیل خودکار</string>
<string name="autofill_sign_in_prompt">تکمیل با Keepass2Android</string>
<string name="invalid_link_association">پیونددادن دامنهٔ اینترنتی\n
%1$s\n
با برنامهٔ\n
%2$s\n
ناموفق بود</string>
<string name="enable_fingerprint_hint">Keepass2Android سخت‌افزار اثرانگشت را شناسایی کرد. آیا مایلید قفل‌گشایی با اثرانگشت را برای این پایگاه فعال کنید؟</string>
<string name="understand">فهمیدم</string>
<string name="dont_show_again">دوباره نشان نده</string>
<string name="masterkey_infotext_head">آیا شاه‌کلیدتان را به خاطر دارید؟</string>
<string name="masterkey_infotext_main">دقت کنید که بدون شاه‌کلید نمی‌توانید پایگاه‌دادهٔ خود را باز کنید و هیچ راهی هم برای «بازنشانی» شاه‌کلید وجود ندارد.</string>
<string name="masterkey_infotext_fingerprint_note">همچنین توجه بفرمایید که قفل‌گشایی با اثرانگشت طوری است که شاه‌کلید شما در ذخیره‌گاه امن اندروید ذخیره می‌شود. این ذخیره‌گاه ممکن است هر آن توسط سیستم‌عامل اندروید پاک‌سازی شود؛ مثلاً زمانی که اثرانگشت جدیدی در تنظیمات سیستم اضافه کنید. بنابراین به اثرانگشتتان اکتفا نکنید، بلکه شاه‌کلیدتان را به یاد بسپارید، لطفاً!</string>
<string name="backup_infotext_head">آیا از پایگاه‌داده‌تان پشتیبان گرفته شده؟</string>
<string name="backup_infotext_main">برنامهٔ Keepass2Android گذرواژه‌هایتان را در یک فایل و در مکانی به‌انتخاب شما ذخیره می‌کند. اگر دستگاهتان گم یا دزدیده شود، آیا مطمئن هستید که هنوز به فایل دسترسی خواهید داشت؟ اگر فایل خراب یا پاک شود چطور؟ لطفاً اطمینان حاصل کنید که همیشه یک پشتیبان به‌روز در مکانی امن داشته باشید!</string>
<string name="backup_infotext_note">برای اینکه هم‌اکنون یک پشتیبان تهیه کنید، به %1$s &gt; %2$s &gt; %3$s بروید.</string>
<string name="emergency_infotext_head">آیا برای شرایط اضطراری آماده‌اید؟</string>
<string name="emergency_infotext_main">آیا تاکنون تصور کرده‌اید که اگر نتوانید به پایگاه گذرواژه‌هایتان دسترسی داشته باشید چه می‌شود؟ اگر تصادف کنید چه؟ بهتر است برای روز مبادا شاه‌کلید خود را به فردی امین بگویید. در غیر این صورت هیچ‌کس به گذرواژه‌هایتان دسترسی نخواهد داشت.</string>
</resources>

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