Compare commits

..

124 Commits

Author SHA1 Message Date
Philipp Crocoll
345dad5d04 slightly adjust background color to become true gray. closes #2818 2025-04-08 12:34:07 +02:00
Philipp Crocoll
e76f3999b6 reduce logging verbosity of file provider 2025-04-01 15:36:39 +02:00
Philipp Crocoll
0567bfe645 fix wiki links 2025-04-01 12:42:43 +02:00
Philipp Crocoll
6043bdbc48 * restore some files which are link targets from within the app or the web. add links to the corresponding new wiki pages if possible. 2025-04-01 12:38:58 +02:00
Philipp Crocoll
f949e6e389 add an item to the changelog for 1.12 2025-03-26 08:49:57 +01:00
Philipp Crocoll
15bf08f5e6 fix crash in NoSecureDisplayActivity by removing superfluous toolbar creation 2025-03-26 08:49:35 +01:00
Philipp Crocoll
fa69f38ab1 add some more error logging 2025-03-26 08:49:11 +01:00
Philipp Crocoll
d3b06080eb remove docs from repo. has been moved to https://github.com/PhilippC/keepass2android/wiki 2025-03-26 08:36:43 +01:00
PhilippC
749ab330ff Merge pull request #2815 from PhilippC/bugfix/list-onedrive-shares-failing
Improve OneDrive implementation
2025-03-25 17:01:01 +01:00
Philipp Crocoll
677c6555e8 this change fixes an issue with OneDrive: sometimes, the wrong DriveId was used to list the user's shares which was leading to an empty file browser screen. Also, files can be used if they are shared directly (not the parent folder) 2025-03-25 12:31:35 +01:00
PhilippC
c62f6ef139 Merge pull request #2814 from PhilippC/feature/otpauth-uris
Add support for otpauth:// URIs
2025-03-25 12:27:11 +01:00
Philipp Crocoll
0c34625782 Merge remote-tracking branch 'remotes/origin/master' into feature/otpauth-uris 2025-03-25 10:56:42 +01:00
Philipp Crocoll
e86fa6f9fa add support for otpauth:// URIs 2025-03-25 10:56:24 +01:00
PhilippC
e2e975f357 Merge pull request #2805 from PhilippC/feature/debug-improvements
Improve debugging experience
2025-03-25 10:53:02 +01:00
Philipp Crocoll
8eaf6d3f88 add comment in Makefile 2025-03-25 10:52:33 +01:00
PhilippC
a9fed1c203 Merge pull request #2804 from PhilippC/bugfix/gdrive-class-def-not-found
Bugfix/gdrive class def not found
2025-03-18 17:07:33 +01:00
Philipp Crocoll
6d8407676d add a custom "Kp2a debug" icon for distinguishability. remove an Assert we don't use and which should fire during debugging. 2025-03-18 16:43:47 +01:00
Philipp Crocoll
1157716c9c manifest for 1.12-r3 2025-03-18 16:35:58 +01:00
Philipp Crocoll
861615b7a4 update AndroidX packages and add missing dependencies to Guava and PlayServices.Auth. 2025-03-18 16:34:31 +01:00
Philipp Crocoll
e12d11264e switch to testing Google Drive 2025-03-18 16:32:55 +01:00
Philipp Crocoll
6588f40007 manifest for v1.12-r2 2025-03-11 18:31:06 +01:00
PhilippC
67aaba0656 Merge pull request #2787 from PhilippC/l10n_master3
New Crowdin updates
2025-03-11 16:59:24 +01:00
PhilippC
2d8eac4f12 Merge pull request #2796 from PhilippC/feature/improve-help-texts
improve help texts
2025-03-11 16:43:49 +01:00
Philipp Crocoll
00d822ad4b * show a toast when users without Play services are trying to scan a QR code (#2791)
* show a message informing that built-in Google Drive support is more and more restricted by Google (#2788)
2025-03-11 16:43:13 +01:00
PhilippC
5cf15b26b9 Merge pull request #2795 from PhilippC/bugfix/autofill-fixes
Autofill fixes
2025-03-11 16:37:31 +01:00
Philipp Crocoll
07f08a8851 autofill: avoid crash when looking up a null key.
closes https://github.com/PhilippC/keepass2android/issues/2362
2025-03-11 16:11:35 +01:00
Philipp Crocoll
d2e0ae6394 after updating to targetSdkVersion=34, an implicit mutable intent could lead to a crash.
closes https://github.com/PhilippC/keepass2android/issues/2790
2025-03-11 16:10:52 +01:00
PhilippC
cbae7c38cf New translations strings.xml (Romanian) 2025-03-07 12:55:01 +01:00
PhilippC
15656109bc New translations strings.xml (Romanian) 2025-03-07 11:03:36 +01:00
PhilippC
93e415120a New translations strings.xml (Slovak) 2025-03-06 13:19:21 +01:00
PhilippC
c47e7c03f9 New translations strings.xml (Portuguese, Brazilian) 2025-03-06 11:20:24 +01:00
PhilippC
125512d2c3 New translations strings.xml (French) 2025-03-05 23:47:24 +01:00
PhilippC
65b0d31762 New translations strings.xml (French) 2025-03-05 22:50:35 +01:00
PhilippC
9103529b64 New translations strings.xml (Japanese) 2025-03-05 15:46:39 +01:00
PhilippC
349952cb52 New translations strings.xml (Czech) 2025-03-05 15:46:38 +01:00
PhilippC
305cf6b050 New translations strings.xml (Slovenian) 2025-03-05 14:14:47 +01:00
PhilippC
78ff49a6d4 New translations strings.xml (Portuguese, Brazilian) 2025-03-04 15:38:10 +01:00
Philipp Crocoll
9cd8996aeb manifest and changelog for 1.12-r1 2025-03-04 15:01:19 +01:00
PhilippC
25232a4146 New translations strings.xml (Portuguese, Brazilian) 2025-03-04 14:29:54 +01:00
PhilippC
5266d2f985 New translations strings.xml (Romanian) 2025-03-04 13:19:32 +01:00
PhilippC
ae35d5873a Merge pull request #2785 from PhilippC/bugfix/webdav-fileselect-not-working-always
Bugfix: Webdav username and password could got lost during file selection
2025-03-04 12:25:26 +01:00
PhilippC
fe9aaa0d29 Merge pull request #2786 from PhilippC/bugfix/webdav-dialog-crashing
add a theme to SelectStorageLocationActivity
2025-03-04 12:16:08 +01:00
PhilippC
076bde7669 Merge pull request #2784 from PhilippC/l10n_master3
New Crowdin updates
2025-03-04 12:11:29 +01:00
Philipp Crocoll
592bee1ac1 Merge branch 'master' of https://github.com/PhilippC/keepass2android 2025-03-04 11:58:13 +01:00
Philipp Crocoll
c9a7d56da4 Webdav username and password could got lost during file selection (seems to depend on server behavior in PROPFIND request). Fix this for these cases. 2025-03-04 11:55:10 +01:00
PhilippC
2157cc8e4a New translations strings.xml (Romanian) 2025-03-04 11:54:51 +01:00
Philipp Crocoll
2cd11ba50e add a theme to SelectStorageLocationActivity. without, the webdav credential dialog was crashing. 2025-02-25 16:15:45 +01:00
Philipp Crocoll
eddcedd00b manifest and changelog for 1.12-r0. Fix changelog to adhere to theme. 2025-02-25 13:02:29 +01:00
PhilippC
0d4fe11cfb Merge pull request #2772 from PhilippC/l10n_master3
New Crowdin updates
2025-02-25 11:07:18 +01:00
PhilippC
ecbf4e511d New translations strings.xml (Spanish) 2025-02-24 14:24:35 +01:00
PhilippC
16bbae832e New translations strings.xml (Slovenian) 2025-02-17 08:34:55 +01:00
PhilippC
571da788d0 New translations strings.xml (Slovak) 2025-02-14 22:47:24 +01:00
PhilippC
f2eed5ece0 New translations strings.xml (Slovak) 2025-02-14 21:28:37 +01:00
PhilippC
2c5516310f New translations strings.xml (Chinese Simplified) 2025-02-12 12:55:34 +01:00
PhilippC
5550dffab8 New translations strings.xml (Portuguese, Brazilian) 2025-02-11 23:57:51 +01:00
PhilippC
b9744dd6b5 New translations strings.xml (German) 2025-02-11 18:28:15 +01:00
PhilippC
82fedb3526 Merge pull request #2771 from PhilippC/l10n_master3
New Crowdin updates
2025-02-11 17:16:10 +01:00
PhilippC
cc4f0a3dec Merge pull request #2768 from PhilippC/update/upgrade-dropbox-sdk-to-7-0-0
upgrade Dropbox SDK to 7.0.0.
2025-02-11 17:06:30 +01:00
PhilippC
cdfa48d942 New translations strings.xml (German) 2025-02-11 16:48:42 +01:00
PhilippC
c4edc871b3 New translations strings.xml (German) 2025-02-11 16:43:20 +01:00
PhilippC
ed6d1d2aaf New translations strings.xml (German) 2025-02-11 16:43:03 +01:00
PhilippC
b0f56dbb2c New translations strings.xml (German) 2025-02-11 16:42:44 +01:00
PhilippC
c794efe899 New translations strings.xml (Yoruba) 2025-02-11 16:19:20 +01:00
PhilippC
c2fb4f103d New translations strings.xml (Vietnamese) 2025-02-11 16:19:15 +01:00
PhilippC
18b192bc42 New translations strings.xml (Hebrew) 2025-02-11 16:19:08 +01:00
PhilippC
522fc9816d New translations strings.xml (German) 2025-02-11 16:19:06 +01:00
PhilippC
3be4fb8460 New translations strings.xml (Romanian) 2025-02-11 16:19:02 +01:00
PhilippC
7ca07814bb New translations strings.xml (Yoruba) 2025-02-11 16:19:01 +01:00
PhilippC
aaea8ed956 New translations strings.xml (Vietnamese) 2025-02-11 16:18:57 +01:00
PhilippC
822ccdc349 New translations strings.xml (German) 2025-02-11 16:18:49 +01:00
PhilippC
dbc1b9553a New translations strings.xml (Yoruba) 2025-02-11 16:18:45 +01:00
PhilippC
04c5f08f5f New translations strings.xml (Norwegian Bokmal) 2025-02-11 16:18:44 +01:00
PhilippC
5c10385246 New translations strings.xml (Sinhala) 2025-02-11 16:18:43 +01:00
PhilippC
90f9b6f414 New translations strings.xml (Malayalam) 2025-02-11 16:18:42 +01:00
PhilippC
b555194d8e New translations strings.xml (Azerbaijani) 2025-02-11 16:18:41 +01:00
PhilippC
0e7c4eced7 New translations strings.xml (Norwegian Nynorsk) 2025-02-11 16:18:41 +01:00
PhilippC
816a40d0ec New translations strings.xml (Croatian) 2025-02-11 16:18:40 +01:00
PhilippC
75a819b7b4 New translations strings.xml (Persian) 2025-02-11 16:18:39 +01:00
PhilippC
cf0e5be55c New translations strings.xml (Indonesian) 2025-02-11 16:18:38 +01:00
PhilippC
492fb404fe New translations strings.xml (Portuguese, Brazilian) 2025-02-11 16:18:37 +01:00
PhilippC
6453d215eb New translations strings.xml (Galician) 2025-02-11 16:18:36 +01:00
PhilippC
35f13eff53 New translations strings.xml (Vietnamese) 2025-02-11 16:18:34 +01:00
PhilippC
fe2c5185eb New translations strings.xml (Chinese Traditional) 2025-02-11 16:18:33 +01:00
PhilippC
f1429c0d0d New translations strings.xml (Chinese Simplified) 2025-02-11 16:18:32 +01:00
PhilippC
d6e30b805d New translations strings.xml (Ukrainian) 2025-02-11 16:18:31 +01:00
PhilippC
e8aeaf71d4 New translations strings.xml (Turkish) 2025-02-11 16:18:30 +01:00
PhilippC
1500d635e9 New translations strings.xml (Swedish) 2025-02-11 16:18:29 +01:00
PhilippC
27798ea073 New translations strings.xml (Serbian (Cyrillic)) 2025-02-11 16:18:28 +01:00
PhilippC
891918269e New translations strings.xml (Slovenian) 2025-02-11 16:18:28 +01:00
PhilippC
0cf8ec67da New translations strings.xml (Slovak) 2025-02-11 16:18:27 +01:00
PhilippC
217a3d107d New translations strings.xml (Russian) 2025-02-11 16:18:26 +01:00
PhilippC
38a229cb78 New translations strings.xml (Portuguese) 2025-02-11 16:18:24 +01:00
PhilippC
0598d49ba0 New translations strings.xml (Polish) 2025-02-11 16:18:24 +01:00
PhilippC
f8f2dbc7f4 New translations strings.xml (Dutch) 2025-02-11 16:18:22 +01:00
PhilippC
7449d5dbb1 New translations strings.xml (Korean) 2025-02-11 16:18:22 +01:00
PhilippC
a890b0f66e New translations strings.xml (Japanese) 2025-02-11 16:18:21 +01:00
PhilippC
1647ed455e New translations strings.xml (Italian) 2025-02-11 16:18:20 +01:00
PhilippC
a383847d5b New translations strings.xml (Hungarian) 2025-02-11 16:18:19 +01:00
PhilippC
3fb2a824cf New translations strings.xml (Hebrew) 2025-02-11 16:18:18 +01:00
PhilippC
dd7579ce7c New translations strings.xml (Finnish) 2025-02-11 16:18:17 +01:00
PhilippC
49c51ceea4 New translations strings.xml (Basque) 2025-02-11 16:18:16 +01:00
PhilippC
a5370793cb New translations strings.xml (Greek) 2025-02-11 16:18:15 +01:00
PhilippC
6f72020607 New translations strings.xml (German) 2025-02-11 16:18:14 +01:00
PhilippC
6a7c61ea3c New translations strings.xml (Danish) 2025-02-11 16:18:13 +01:00
PhilippC
46c1854481 New translations strings.xml (Czech) 2025-02-11 16:18:12 +01:00
PhilippC
72030a4749 New translations strings.xml (Catalan) 2025-02-11 16:18:11 +01:00
PhilippC
1c18884527 New translations strings.xml (Bulgarian) 2025-02-11 16:18:10 +01:00
PhilippC
1c5c695f4f New translations strings.xml (Belarusian) 2025-02-11 16:18:09 +01:00
PhilippC
a1cef1ccda New translations strings.xml (Arabic) 2025-02-11 16:18:08 +01:00
PhilippC
4dfcbbf62a New translations strings.xml (Spanish) 2025-02-11 16:18:07 +01:00
PhilippC
d0e1a15673 New translations strings.xml (French) 2025-02-11 16:18:06 +01:00
PhilippC
8fc9324be5 New translations strings.xml (Romanian) 2025-02-11 16:18:05 +01:00
PhilippC
4f4724804e Merge pull request #2769 from PhilippC/bugfix/crowdin-config-fix
fix crowdin.yml file: adjust to renamed folder
2025-02-11 16:04:17 +01:00
Philipp Crocoll
533d92509f fix crowdin.yml file: adjust to renamed folder 2025-02-11 16:03:53 +01:00
Philipp Crocoll
96960ef376 upgrade Dropbox SDK to 7.0.0. This is required before 01/2026 as described in https://dropbox.tech/developers/api-server-certificate-changes. 2025-02-11 16:00:59 +01:00
PhilippC
46194317a8 Merge pull request #2766 from PhilippC/bugfix/potential-crashes-when-registering-receivers
fix potential crashes
2025-02-11 13:54:23 +01:00
PhilippC
c4d6e18759 Merge pull request #2765 from PhilippC/bugfix/2371-autofill-not-working-with-compose-apps
Fix autofill with Compose apps
2025-02-11 13:21:11 +01:00
Philipp Crocoll
ee41a600b1 fix potential crashes on old Android versions when registering receivers (after upgrade to support target sdk 34) 2025-02-11 13:18:23 +01:00
PhilippC
07562cc5a9 Merge pull request #2744 from midnight-wonderer/bug/hostname-matching
Fix hostname matching logic. closes #1926
2025-02-11 12:33:49 +01:00
Philipp Crocoll
0f5b411dc7 Fix an issue that autofill didn't work with compose apps as described on #2371. Closes #2371. Closes #2590 which is a prototype for this commit. 2025-02-11 12:33:14 +01:00
PhilippC
7577e3064c Merge pull request #2764 from PhilippC/remove-unused-package
remove no-longer required package from dependencies
2025-02-11 12:07:21 +01:00
Philipp Crocoll
d33e1f266c remove no-longer required package from dependencies 2025-02-11 11:12:25 +01:00
PhilippC
aeda21f163 Merge pull request #2762 from PhilippC/i18n-fix
I18n fix for password hint
2025-02-11 08:19:05 +01:00
Sarun Rattanasiri
980df2b3a7 fix hostname matching logic 2025-01-14 17:24:48 +07:00
127 changed files with 3185 additions and 1368 deletions

View File

@@ -20,6 +20,7 @@
# - nuget: restore NuGet packages
# - msbuild: build the project
# - apk: same as all
# - manifestlink: creates a symlink (to be used in building) to the AndroidManifest corresponding to the selected Flavor
#
# - distclean: run a 'git clean -xdff'. Remove everyhing that is not in the git tree.
# - clean: all clean_* targets below

View File

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

View File

@@ -1,5 +0,0 @@
As of December 2017, Google does not accept the use of Accessibility services for anything except helping people with disabilities. This means that Keepass2Android can no longer provide the accessibility service based AutoFill feature. Otherwise, Google would remove Keepass2Android from Play Store.
If you want to continue using this feature, please [install the Accessibility service based AutoFill plugin](https://github.com/PhilippC/kp2a_accservice_autofill/releases/).
After installation, please enable the accessibility service "KP2A AutoFillPlugin" in the Android system settings. When trying to use the plugin for the first time, KP2A will ask you if the plugin may access the Keepass database. Please accept this to use the plugin.

View File

@@ -1,18 +0,0 @@
# Installing dictionaries
Keepass2Android will load dictionaries for your current language both from AnySoftKeyboard and from Hacker's keyboard.
* For AnySoftKeyboard dictionaries visit: [https://play.google.com/store/search?q=anysoftkeyboard+dictionary&c=apps](https://play.google.com/store/search?q=anysoftkeyboard+dictionary&c=apps)
* For Hacker's Keyboard dictionaries visit: [https://play.google.com/store/search?q=hacker%27s%20keyboard%20dictionary&c=apps](https://play.google.com/store/search?q=hacker%27s%20keyboard%20dictionary&c=apps)
# Automatic keyboard switching (requires ADB)
Starting with Keepass2Android 1.02-pre1, you can use the [KeyboardSwap Plugin](https://play.google.com/store/apps/details?id=keepass2android.plugin.keyboardswap2) to switch to the KP2A keyboard automatically instead of bringing up the Input method selection dialog (e.g. after using the Share URL feature). To setup the plugin please follow the instructions on [the PlayStore website](https://play.google.com/store/apps/details?id=keepass2android.plugin.keyboardswap2)
# Deprecated: Automatic keyboard switching on rooted devices
In order to automatically switch to the KP2A keyboard and back, you need to
* have a rooted device (per Android security policies)
* have at least KP2A version 0.9.3-pre2
* install the Secure Settings app with the "System+" module available in Secure Settings v. 1.3.4 and above. **Note:** This is no longer available for recent Android versions.
* Go to the KP2A keyboard settings. Enable auto-switch on rooted devices.
If you go to a website, select "Share URL" -> Keepass2Android, the keyboard should be switched as soon as you locate the entry or when it's found automatically.

View File

@@ -1,239 +0,0 @@
# How to build Keepass2Android
## Overview
Keepass2Android is a Mono for Android app. This means that you need Xamarin's Mono for Android to build it. However, it also uses several components written in Java, so there are also Android-Studio projects involved. To make things even worse, parts of the keyboard and kdb-library are written in native code.
To build KP2A from scratch, you need:
- Xamarin's Mono for Android (also included in Visual Studio)
- Android SDK & NDK
Prior to building Keepass2Android, you need to build some of its components (from command line). Then you can build the full project either through Visual Studio, or through command line.
By using the command line, you can build on Windows, macOS or Linux.
## Prerequisites
### Common to all architectures
- Install Android SDK & NDK (either manually with Google's [sdkmanager](https://developer.android.com/studio/command-line/sdkmanager), or through Android Studio). Visual Studio also installs a version of it, but in the end the directory must be writable and in a path without spaces (see below) so as to be able to build the components.
- Fetch the main repository of Keepass2Android and all submodules
- Note that VisualStudio can do this for you, otherwise run:
- `git submodule init && git submodule update`
### On Windows or macOS
- Install Visual Studio (for example 2019) with Xamarin.Android (ie. with capability to build Android apps). This should provide the needed tools like
- Xamarin.Android
- MSBuild
- Java JDK
- If you plan to build also from the command line:
- Install the MSVC build tools of visual studio. They provide the `vcvarsall.bat` file which among other things adds MSBuild to the PATH.
- Install [NuGet](https://www.nuget.org/downloads) to build also with "make". Alternatively, on Windows, if you use [chocolatey](https://chocolatey.org), run as administrator:
- `choco install nuget.commandline`
- Check that you have access to 'GNU make'.
- On Windows, it is usually not available by default. But the Android NDK provides it. You can find it in `%ANDROID_NDK_ROOT%\prebuilt\windows-x86_64\bin\make.exe`. Alternatively, on Windows, if you use [chocolatey](https://chocolatey.org), run as administrator:
- `choco install make`
- On macOS, it is usually only installed if you have developer command line tools installed or if you use [homebrew](https://brew.sh) or [macports](https://www.macports.org/). As an alternative it may be available in the Android NDK at `%ANDROID_NDK_ROOT%/prebuilt/darwin-x86_64/bin/make`.
### On Linux
- Install Java's JDK
- On Debian, for example: `apt install default-jdk-headless`.
- Install [Mono](https://www.mono-project.com/)
- This should provide `msbuild` & `xabuild` binary
- On Debian, after having added the repo from above, install with `apt install -t <repo_name> mono-devel msbuild`. A value for `<repo_name>` could be `stable-buster` for example, depending on which one you chose. You could also install the `mono-complete` package if you prefer.
- Install Xamarin.Android
- ~~Option 1: Use the mono-project [CI builds](https://dev.azure.com/xamarin/public/_build/latest?definitionId=48&branchName=main&stageName=Linux)~~ **NOTE:** KP2A now requires Xamarin.Android v13, which is newer than the current CI build; until a more recent CI build is available, this option is unfortunately no longer viable.
- Option 2: [Build it from source](https://github.com/xamarin/xamarin-android/blob/master/Documentation/README.md#building-from-source)
- Install NuGet package of your distribution
- On Debian/Ubuntu: `apt install nuget`
- Install [libzip](https://libzip.org/) for your distribution for some Xamarin.Android versions
- This may not be relevant anymore: for example, with Xamarin.Android 11.4.99. this is not needed.
- Some versions of Xamarin may require `libzip4`. If you are in this case:
- On Debian/Ubuntu, install it with `apt install libzip4`.
- Other distributions ship only `libzip5`. As a dirty workaround, it's possible to symlink `libzip.so.5` to `libzip.so.4`. Luckily, it appears to be working. For example:
- `sudo ln -s /usr/lib/libzip.so.5 /usr/lib/libzip.so.4`
- or `sudo ln -s /usr/lib64/libzip.so.5 /usr/lib/libzip.so.4`
## Building the required components:
This is done on the command line and requires the Android SDK & NDK and Java JDK.
### On Windows
- Setup your environment:
- Set these environment variables for Android's SDK & NDK
- `ANDROID_HOME` (for example `set ANDROID_HOME=C:\PATH\TO\android-sdk`)
- `ANDROID_SDK_ROOT` (for example `set ANDROID_SDK_ROOT=C:\PATH\TO\android-sdk`)
- `ANDROID_NDK_ROOT` (for example `set ANDROID_NDK_ROOT=C:\PATH\TO\android-sdk\ndk\version`)
**Note:** Care must be taken when setting the above variables to **not** include a trailing backslash in the path. A trailing backslash may cause `make` to fail.
**Note**: If the path to the Android SDK contains spaces, you **must** do one of these:
- either put the Android SDK into a path without spaces.
- or create a symlink to that path which doesn't contain spaces. Attention: this requires **administrator** priveleges. For example:
```
IF NOT EXIST C:\Android ( MKDIR C:\Android ) &&
MKLINK /D C:\Android\android-sdk "C:\Program Files (x86)\Android\android-sdk"
```
This is because [Android NDK doesn't support being installed in a path with spaces](https://github.com/android/ndk/issues/1400).
**Note**: The Android SDK path will require to be writeable because during the build, some missing components might be downloaded & installed.
- If you have "GNU make" available on your windows system, you may build by using the Makefile. You can also find a `make` executable in `%ANDROID_NDK_ROOT%\prebuilt\windows-x86_64\bin\make.exe`. To use it, see the instructions for Linux/macOS. Basically, just run `make` or `mingw32-make` depending on which distribution of GNU make for windows you have installed.
- Otherwise proceed as below:
1. Build argon2
```
cd src/java/argon2
%ANDROID_NDK_ROOT%/ndk-build.cmd
```
1. Build the other java components
```
cd src/build-scripts
build-java.bat
```
`build-java.bat` will call `gradlew` for several Java modules.
**Notes:**
- For building the java parts, it is suggested to keep a short name (e.g. "c:\projects\keepass2android") for the root project directory. Otherwise the Windows path length limit might be hit when building.
- Before building the java parts, make sure you have set the ANDROID_HOME variable or create a local.properties file inside the directories with a gradlew file. It is recommended to use the same SDK location as that of the Xamarin build.
- On some environments, `make` can fail to properly use the detected `MSBUILD` tools. This seems to be due to long pathnames and/or spaces in pathnames. It may be required to explicitly set the `MSBUILD` path using 8.3 "short" path notation:
- Determine the location of `MSBUILD` (e.g. `C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe`)
- [Generate the "short" path](https://superuser.com/a/728792) of that location (e.g.: `C:\PROGRA~1\MICROS~2\2022\COMMUN~1\MSBuild\Current\Bin\MSBuild.exe`)
- When running `make` specify the location of ``MSBUILD` explicitly (e.g.: `make MSBUILD="C:\PROGRA~1\MICROS~2\2022\COMMUN~1\MSBuild\Current\Bin\MSBuild.exe`
### On Linux/macOS
- Setup your environment:
- Set these environment variables for Android's SDK & NDK
- `ANDROID_HOME` (for example `export ANDROID_HOME=/path/to/android-sdk/`)
- `ANDROID_SDK_ROOT` (for example `export ANDROID_SDK_ROOT=/path/to/android-sdk/`)
- `ANDROID_NDK_ROOT` (for example `export ANDROID_NDK_ROOT=/path/to/android-sdk/ndk/version`)
- Update your PATH environment variable so that it can access `nuget`, `msbuild` or `xabuild` (for linux):
- On Linux:
- add `xabuild` to your path: `export PATH=/path/to/xamarin.android-oss/bin/Release/bin/:$PATH`
- On macOS:
- you may similarly need to add `msbuild` & `nuget` to your PATH.
- Start the build:
- This will use the Makefile at the root of the project (requires GNU make). To build everything (components & Keepass2Android APK) in a single command simply run:
```
make
```
- Otherwise, if you prefer to do step by step
1. Build argon2
```
make native
```
1. Build the other java components
```
make java
```
## Building Keepass2Android:
These are the basic steps to build Keepass2Android. You can also build Keepass2Android Offline. For this, configure the build by using the [Flavors](#Flavors).
### With Visual Studio
- On windows or on macOS open the src/KeePass.sln file with visual studio, and choose to build the project named 'keepass2android-app'
### Command Line
#### Windows, Macos & Linux
to build the APK, simply run:
```
make
```
or to skip building the APK:
```
make msbuild
```
## Where is the APK ?
The Apk can be installed on a device.
It is located in `src/keepass2android/bin/*/*-Signed.apk`
If you build with Visual Studio, the APK is not produced automatically. You need to perform some extra step. See the documentation of Visual Studio on how to proceed.
## Flavors
Keepass2Android is distributed in two flavors.
- Keepass2Android (aka `net`)
- Keepass2Android Offline (aka `nonet`)
The flavor is set through a MSBuild Property named "`Flavor`". The possible values are '`Net`' and '`NoNet`'.
The value of the Flavor property is used in 2 projects:
- `keepass2android-app` (in `src/keepass2android`)
- `Kp2aBusinessLogic` (in `src/keepass2android`)
Its value is set inside the `*.csproj` file (XML format) of each project in the `Project`/`PropertyGroup`/`Flavor` node.
By default its value is set to an empty string so that development is made with `AndroidManifest_debug.xml` on the '`net`' flavor.
This is the behaviour of the build system depending on the value of Flavor:
| Flavor | What is built | `AndroidManifest.xml` used |
| ----- | ----- | ----- |
| `` (empty string): This is the default value. | Keepass2Android | `AndroidManifest_debug.xml` |
| `Net` | Keepass2Android | `AndroidManifest_net.xml` |
| `NoNet` | Keepass2Android Offline | `AndroidManifest_nonet.xml` |
### Select/Change flavor:
When building, by default, the flavor is not set. So the value used is the value of the Flavor property in *.csproj file. This should result on doing a build of the 'net' flavor.
You can force the Flavor by setting the Flavor property.
Proceed this way:
#### Command line
##### Windows, Macos & Linux
To force building 'net' with `make`, run:
```
make Flavor=Net
```
To build 'nonet' with `make`, run:
```
make Flavor=NoNet
```
##### MSBuild
To build with MSBuild directly on the command line, set the flavor with `-p:Flavor=value` argument. For example:
```
MSBuild src/KeePass.sln ... -p:Flavor=NoNet
```
#### Visual Studio
When building with Visual Studio, edit the `*.csproj` file (XML format) and set the value in the `Project`/`PropertyGroup`/`Flavor` node. This is needed only for the projects that use the flavors.
**Note:** When switching between flavors, be sure to clean the previous build before.
## Makefile
It is possible to override the project's default 'Flavor' (Net, NoNet) and 'Configuration' (Release, Debug) by passing it as argument to `make`. See the header of the Makefile to see what can be done.

View File

@@ -1,118 +0,0 @@
<div class="wikidoc">
<h1>Comparison of Keepass apps for Android</h1>
<p>This page was created to give you a short overview of the features of Keepass2Android vs. Keepass2Android Offline. As Keepass2Android is based on Keepassdroid (by Brian Pellin), there are quite a few similarities here, as well, so we added Keepass2Android
vs. Keepassdroid comparison as well. &quot;Better&quot; properties are highlighted in bold. The page was created in 12/2013. If any information is out of date, please leave a note in the comments section.</p>
<table>
<tbody>
<tr>
<th>&nbsp;</th>
<th>
<h3>Keepass2Android</h3>
</th>
<th>
<h3>Keepass2Android Offline</h3>
</th>
<th>
<h3>Keepassdroid</h3>
</th>
</tr>
<tr>
<td><strong>Play Store link</strong></td>
<td><a href="https://play.google.com/store/apps/details?id=keepass2android.keepass2android">https://play.google.com/store/apps/details?id=keepass2android.keepass2android</a></td>
<td><a href="https://play.google.com/store/apps/details?id=keepass2android.keepass2android_nonet">https://play.google.com/store/apps/details?id=keepass2android.keepass2android_nonet</a></td>
<td><a href="https://play.google.com/store/apps/details?id=com.android.keepass">https://play.google.com/store/apps/details?id=com.android.keepass</a></td>
</tr>
<tr>
<td><strong>Technology</strong></td>
<td>Mono for Android, Java</td>
<td>Mono for Android, Java</td>
<td>Java</td>
</tr>
<tr>
<td><strong>Keepass 2.x (kdbx) support</strong></td>
<td><strong>write and read</strong></td>
<td><strong>write and read</strong></td>
<td>read (write in beta)</td>
</tr>
<tr>
<td><strong>Keepass 2.x feature support</strong></td>
<td><strong>Viewing and editing of tags, attachments, additional fields, TAN support</strong></td>
<td><strong>Viewing and editing of tags, attachments, additional fields, TAN support</strong></td>
<td>Edit standard fields only, no display/edit of attachments</td>
</tr>
<tr>
<td><strong>Keepass 1.x (kdb) support</strong></td>
<td>currently read-only</td>
<td>currently read-only</td>
<td><strong>yes</strong></td>
</tr>
<tr>
<td><strong>Storage locations</strong></td>
<td>SD Card,<strong> Cloud (Dropbox, Google Drive, OneDrive), Web (FTP/HTTP/HTTPS/WebDav), SFTP</strong></td>
<td>SD Card</td>
<td>SD Card</td>
</tr>
<tr>
<td><strong>File choosers</strong></td>
<td><strong>Internal or third party</strong></td>
<td><strong>Internal or third party</strong></td>
<td>Third party</td>
</tr>
<tr>
<td><strong>Required permissions</strong></td>
<td>Internet, SD card, Manage accounts</td>
<td><strong>SD card</strong></td>
<td><strong>SD card</strong></td>
</tr>
<tr>
<td><strong>Android 4.x style</strong></td>
<td><strong>yes</strong></td>
<td><strong>yes</strong></td>
<td>no</td>
</tr>
<tr>
<td><strong>Database locking</strong></td>
<td><strong>QuickUnlock</strong> or full lock</td>
<td><strong>QuickUnlock</strong> or full lock</td>
<td>Full lock only</td>
</tr>
<tr>
<td><strong>Browser integration</strong></td>
<td><strong>yes</strong></td>
<td><strong>yes</strong></td>
<td>no</td>
</tr>
<tr>
<td><strong>Secure keyboard</strong></td>
<td><strong>yes</strong></td>
<td><strong>yes</strong></td>
<td>no</td>
</tr>
<tr>
<td><strong>Database unlocking</strong></td>
<td><strong>password, keyfile, One-Time-Passwords (supports Yubikey NEO with NFC), KeeChallenge</strong></td>
<td><strong>password, keyfile, One-Time-Passwords (supports Yubikey NEO with NFC),&nbsp;KeeChallenge</strong></td>
<td>password, keyfile</td>
</tr>
<tr>
<td><strong>Keepass plugin compatibility</strong></td>
<td><strong>Twofish Cipher, KeeChallenge, TrayTOTP, KeeOTP</strong></td>
<td><strong>Twofish Cipher, KeeChallenge, TrayTOTP, KeeOTP</strong></td>
<td>Twofish Cipher</td>
</tr>
<tr>
<td><strong>Extensible with plugins</strong></td>
<td><strong>yes</strong></td>
<td><strong>yes</strong></td>
<td>no</td>
</tr>
<tr>
<td><strong>Database export</strong></td>
<td><strong>yes</strong></td>
<td><strong>yes</strong></td>
<td>no</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
</div><div class="ClearBoth"></div>

View File

@@ -1,125 +1 @@
**Note:** This is an incomplete and preliminary documentation. More documentation will be added as requests come in or when the app is more feature stable.
If you want, I'd be happy if you contribute texts for this place!
If you think something is missing in the documentation, please create an issue at https://github.com/PhilippC/keepass2android/issues
# What you should know and think about
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 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
## Opening an existing database
Many users are already using Keepass 2 on Windows and thus have their passwords stored in a Keepass database, typically a file with ending .kdbx. For opening such an existing database, there are two main options:
* You can open the file directly if it is located on a webserver or in the cloud. Use "Open Database" on the startscreen. By default, files from the cloud or servers are cached in the application's cache directory after loading them once. This allows to access your files even when you're offline.
* If you don't have your database stored on a webserver or in the cloud (or if you're using KP2A Offline) you need to copy your kdbx-Database to your phone. I suggest to use a sync tool like FolderSync. Such a tool copies your database to your local storage, so you always have it accessible. FolderSync can access your database if you have it on a network share or use any other common storage.
## Creating a new database
Select "Create new database" from the start screen. Tap the integrated help icons for more information. Note that by default, the database is created as a local file. Please consider making backups regularly or select a location in the cloud.
## Getting passwords into password fields
There are many ways how to enter the passwords from your database in the corresponding fields. By default, the clipboard as well as the KP2A keyboard are activated in the settings:
* The KP2A keyboard is the recommended way because it's safe against clipboard loggers: Whenever you select an entry, the KP2A keyboard notification will appear in the notification bar. Click it to activate the keyboard. (The first time you do this, you are required to enable the keyboard in the system settings. This must be done by the user for Android security reasons.) As soon as it's activated, you can tap a field where you want to enter data from the selected entry. The KP2A keyboard will come up. Click the KP2A key (on the bottom left) to select whether you want to enter Username/password etc. When you're done, click the Keyboard key (next to the KP2A key) to switch back to your favorite keyboard.
* You can enable the Keepass2Android Autofill service in the system's Autofill settings (Android 8+) which allows to fill data using Android's accessibility system. This works with many apps including Firefox browser but is not supported for Chrome (when writing this).
* The clipboard based approach can be used as well: Pull the notification bar down and select "Copy username/password to clipboard". Then long-tap the field where you want to paste the data. A small "paste" button should come up. Note, however, that information in the clipboard can be monitored by all apps on your device and clearing the clipboard is not always possible.
These options can be used in different workflows:
### Browser-based workflow
If you are browsing the web and need to enter crendentials for a webpage, a simple and powerful workflow is to use the "Share URL" option from the browser's menu. Then select Keepass2Android (or KP2A Offline). Open your database (if it's not already opened) and select the entry you want to enter (if KP2A did not already select the appropriate entry). Use the built-in keyboard or the clipboard to enter the password.
### Autofill service based workflow
If you have enabled the autofill service and open a (supported) app with a password field, a dropdown appears. Select "Fill with Keepass2Android" to select the appropriate entry. When you return to the app, the password and user field should be filled already.
### KP2A based workflow for websites
Open KP2A, open your database, select your entry (in this step, the notification bar items should show up already). Now click the URL link of the entry to open a browser window with the website. Use one of the methods described above to enter the credentials.
### KP2A Keyboard based workflow
When you are in a text field, you can use the Android icon in the notification bar to switch to the KP2A keyboard. Hit the KP2A key to select an icon. After it's selected, hit the KP2A key again to enter the desired field.
## Creating a new account
Assume you want to create an account on a website. If you do not have a database yet, see above. As soon as you have a database, you may proceed as follows:
* Go to the website you want to create the account for
* Select Share/Share URL from the browser's menu and tap "Keepass2Android"
* Log in to your database (if it's not already unlocked)
* You will see the search result screen with "No search results"
* Tap "Create entry for URL"
* Choose the desired group, then tap the "+"-button to add an entry.
* Tap the "..." button next to the password field to launch the password generator, create your password and then select "Accept"
* Enter a name for the entry
* Enter the username you want to use for the entry
* Tap "Save" on the top
* You should see notifications like "Entry is available through KP2A keyboard" and/or "Copy username/password to clipboard". If not, view the new entry by clicking it.
* Return back to the browser.
* Use the notifications to enter your new credentials. See "Getting passwords into the password fields" for more details.
* If the user name you entered is not available or valid, choose a different one but copy it to clipboard. After creating the account, don't forget to update the new entry.
# Keepass2Android vs Keepass2Android Offline vs Keepassdroid
What's the difference between these apps? There is a short comparison on [Comparison of Keepass apps for Android](Comparison-of-Keepass-apps-for-Android.md) to help you pick the best for you!
# Advanced topics
## YubiKey NEO support for One-Time-Passwords
Please see the [How to use Keepass2Android with YubiKey NEO](How-to-use-Keepass2Android-with-YubiKey-NEO.md) page.
## Advanced usage of the Keepass2Android keyboard
Please see the [Advanced usage of the Keepass2Android keyboard](Advanced-usage-of-the-Keepass2Android-keyboard.md) page.
## Using Keepass2Android like an authenticator app to generate Time-based One-Time-Passwords (TOTPs)
Please see [Generating TOTPs with Keepass2Android](Generating-TOTPs.md)
# FAQ
## Should I use the KP2A keyboard for entering passwords?
The KP2A keyboard is meant to quickly "paste" or "type" values from your database to any text fields by using the KP2A icon. The QUERTY keyboard is just for convenience (if you just have the KP2A keyboard activated and need to enter a few letters). However, every other (trustworthy) keyboard is ok as well to enter sensitive information: Keyboard's aren't unsafe in Android. Only the clipboard is. Thus, the KP2A keyboard allows to get information out of the database without using the clipboard.
**You can use any keyboard when you enter the main database password**
## Is it safe to store my kdbx file in the cloud?
While it may happen that someone gets access to your kdbx file in the cloud, there is still no need to worry: the purpose of encryption is to protect the data even in case someone gets the kdbx file! As long as you are using a safe master key, you're safe! [Key files](https://keepass.info/help/base/keys.html#keyfiles) can help with securing the database even more.
## Doesn't Keepass2Android create automatic backups?
Yes and no. Yes: Keepass2Android stores the last successfully opened file as a read-only backup locally on the phone (unless you disable this is in the settings). This should make sure that even if the file gets destroyed during a save operation or gets deleted by accident, you should always have a version that can be opened. (Don't mix this up with the internal file cache which is not meant as a backup and can easily be overwritten even with a corrupt file. This internal file cache is meant for providing writable access even when the original file is not reachable, e.g. when you're offline.)
No: The local backup has two shortcomings: It is only one backup and does not allow to revert to older versions. So if you deleted an entry from the database, it might be deleted in the local backup soon as well. The even more important shortcoming is that it is just a local backup. It won't help when your phone gets lost or broken. Please create additional backups on seperate storage!
## How do I backup the database?
If you have stored your database on the cloud, you might rely on your cloud storage providers backups. Make sure they allow you to revert to older revisions in case the file gets corrupted for some reason.
If you are working with a local database file, make sure you create regular backups. I suggest you have an aumotated mechanism, e.g. with FolderSync (Lite) which can copy local files from your device to other locations, e.g. your PC in a local network. You can also use USB or tools like MyPhoneExploror to transfer data to your PC. Or, you use a removable storage like an SD card which you keep in a safe place after making the backup.
In all cases, you need to verify that your backup is readable! It's even best to test this on another device (e.g. a PC), so you simulate the case that you may lose your phone.
## I can open my database with fingerprint, but don't remember my master password!
It's time for action! As soon as possible, select Settings - Database - Export and choose unencrypted XML (don't put this on the cloud but on a local file). Transfer this file to a PC and import it to a new kdbx file, e.g. with Keepass2. Choose a new master password and make sure you don't forget this password!
## How can I transfer data from one device to another?
* If you are about to get a new Android device, you should make sure you're not losing your passwords in the transition! The first thing you need to make sure is that you can access your .kdbx file (which stores the passwords) on the new device. If it is already stored in the cloud, you only need to make sure you know how to setup the cloud storage on the new device (it might require a password, so make sure you have access to that!).
* If the .kdbx-file is stored locally on the old device, make sure you have an up-to-date backup (see above). You can then transfer that backup copy to the new device. (Note: transferring via USB causes data corruption in some cases, use MyPhoneExplorer or similar tools to be sure this does not happen.)
* If you are securing your password database with a keyfile, also transfer this key file to the new device.
* If you are opening your database with a fingerprint, make sure you also know the master password because fingerprint will not be available immediately on the new device.
## Why is Keepass2Android's apk so big?
Please see [Keepass2Android Apk](Keepass2Android-Apk.md) for more information.
## I get a message "File is trashed" when reading or writing a file on Google Drive
This happens because ocaml-fuse (I guess you are on Linux  and use that) moves files to trash and then creates a new one instead of correctly updating the file on Google Drive (each file has a unique ID which Keepass2Android uses). Fortunately, this was fixed: https://github.com/astrada/google-drive-ocamlfuse/issues/494. After activating this option, please select "Change database" in KP2A, tap ,"Open file" and browse to the file on Google Drive again. After that, the message should no longer pop up.
## I get a message "The name must not be empty: null" when opening from Google Drive
Please follow these steps:
* select "Change database" on the password screen, then "Open database" and browse to your file again
* go to Android app settings and disable all permissions for the KP2A app. Then try again to open the database file.
* reboot the device
(Before running the following steps, make sure you don't have local changes in your database which have not been synchronized with Google Drive (this can happen if you worked offline). If you have, please open the database from the local cache and go to settings - database settings - export database and make a backup copy of the data.)
* clear KP2A's app cache in the Android settings
* uninstall & reinstall
One of these has helped all users so far, but unfortunately it's not totally clear to me why different steps are required (or nothing for most users).
# For developers
If you are interested in adding new features, you have two options:
Either your features can be implemented as a plug-in. Please see [How to create a plug-in?](How-to-create-a-plug-in_.md) for more information. Or you add the features directly in the source code of the projects and create a pull request.
If you want to build Keepass2Android, check the [build guide](Build.readme.md).
This page has been moved to the [wiki](https://github.com/PhilippC/keepass2android/wiki/Documentation)

View File

@@ -1,53 +1 @@
## TOTP in brief
TOTP stands for [Time-based One-Time Password algorithm](https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm) which is one of the most common way proposed by websites to do a [two-factor authentication (2FA)](https://en.wikipedia.org/wiki/Multi-factor_authentication).
On these websites, this option will often be mentioned in the 2FA configuration menu as things like "_use code generated by an application_", "_use [Google] Authenticator app_".
You're prompted to scan a QR code with the app, which essentially contains a code called "_seed_", usually with a form like "_AZER TYUI OPQS DFGH JKLM_", used to generate TOTPs. The seed can be also directly copied if there is no scanning option on the app.
Most common apps:
- Google Authenticator
- Authy
- Microsoft Authenticator
- FreeOTP
- LastPass Authenticator
## TOTP in KeePass and benefits
In KeePass (by Dominik Reichl) there is are several ways to enable this Authenticator app ability:
- built-in TOTP support: https://keepass.info/help/base/placeholders.html#otp
- [KeePassOTP plugin](https://keepass.info/plugins.html#kpotp)
- [KeeOtp plugin](https://keepass.info/plugins.html#keeotp)
- [KeeTrayTOTP plugin](https://keepass.info/plugins.html#keetraytotp) (note the name "_TrayTOTP_" on this one for later)
KeePassXC also supports TOTP: https://keepassxc.org/docs/KeePassXC_UserGuide#_adding_totp_to_an_entry
The greatest benefits are:
- the seed stays available contrary to the above apps (for which it's more or less hard to backup/restore/switch with another app)
- TOTPs are available wherever the KeePass database is available. But conceptually it's not really 2FA anymore (all things are stored in the same place).
The different implementations use different ways of storing the TOTP seed (or secret, or key) and optional settings (e.g. the length of the TOTP to generate) within an entry inside the kdbx database. Keepass2Android attempts to be able to read the different formats, but can only write one:
## TOTP in Keepass2Android
If you use any of the tools mentioned above, you can set up TOTP entries with them. Keepass2Android can read those entries and generate TOTPs if any of the following styles are used:
* Keepass2 style: used when there are TimeOtp-Secret(-XXX) fields in the entry
* KeeOtpPlugin style: used when there is an otp field containing a query string in the form of key=abc&step=X&size=Y (step and size are optional)
* KeeWebOtp/Key Uri Format style: used when entry contains a URL starting with otpauth://totp/, e.g. otpauth://totp/?secret=abc (https://github.com/google/google-authenticator/wiki/Key-Uri-Format)
* KeeTrayTotp style:
* requires a non-empty seed field (default key is "TOTP seed", can be changed in KP2A settings), value is base32 encoded data
* requires a non-empty settings field (default key is "TOTP Settings", can be changed as well), value is expected to be a csv-separated array with [Duration];Length(;TimeCorrectionURL). Length is either an integer value or "S" to indicate Steam encoding
In order to view the generated TOTP code in KP2A, open the corresponding entry. You can then
* use a dynamically generated field called "_TOTP_" containing the TOTP or
* use the "Copy TOTP" button on the system notification for the selected entry or
* switch to the KP2A keyboard and use the TOTP button to insert the TOTP value into the target app or browser
If you want to configure an entry to contain the TOTP fields, it is suggested to enter edit mode for the entry. Then click the "Configure TOTP" button. You can either enter the data manually or scan a QR code with the information.
### Spaces in otp field
Make sure that the URI doesn't contain spaces, otherwise KeePass2Android will fail to generate TOTPs as a space is an invalid character. If your URIs have spaces, check [this comment](https://github.com/PhilippC/keepass2android/issues/1248#issuecomment-628035961)._
This page has been moved to the [wiki](https://github.com/PhilippC/keepass2android/wiki/Generating-TOTPs)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -1,157 +0,0 @@
# How to create a plug-in or connect from your app
Creating a plug-in for Keepass2Android or enabling your app to query credentials from Keepass2Android is pretty simple. Please follow the steps below to get started. In case you have any questions, please contact me.
## Preparations
First check out the source code and import the Keepass2AndroidPluginSDK from [https://github.com/PhilippC/keepass2android/tree/master/src/java/Keepass2AndroidPluginSDK2](https://github.com/PhilippC/keepass2android/tree/master/src/java/Keepass2AndroidPluginSDK2/) into your workspace. You should be able to build this library project.
Now add a reference to the PluginSDK library from your existing app or add a new plug-in app and then add the reference.
## Authorization
Keepass2Android stores very sensitive user data and therefore implements a plug-in authorization scheme based on broadcasts sent between the plug-in and the host app (=Keepass2Android or Keepass2Android Offline). Before your app/plug-in gets any information from KP2A, the user will have to grant your app/plug-in access to KP2A. As not every app/plug-in requires access to all information, you must specify which scopes are required by your app. The implemented scopes can be found in [https://github.com/PhilippC/keepass2android/tree/master/src/java/Keepass2AndroidPluginSDK2/src/keepass2android/pluginsdk/Strings.java](https://github.com/PhilippC/keepass2android/tree/master/src/java/Keepass2AndroidPluginSDK2/src/keepass2android/pluginsdk/Strings.java).
To tell Kp2a that you're a plug-in, you need to add a simple BroadcastReceiver like this:
```java
public class PluginAAccessReceiver extends keepass2android.pluginsdk.PluginAccessBroadcastReceiver
{
@Override
public ArrayList<String> getScopes() {
ArrayList<String> scopes = new ArrayList<String>();
scopes.add(Strings.SCOPE_DATABASE_ACTIONS);
scopes.add(Strings.SCOPE_CURRENT_ENTRY);
return scopes;
}
}
```
Here, you define the method getScopes where the list of scopes is created which must be granted by the user. The actual logic of the authorization process is implemented by the base class in the sdk.
In order to make this broadcast receiver visible to KP2A, add the following lines (probably with the name adapted to your class name) in the AndroidManifest.xml:
```xml
<receiver android:name="PluginAAccessReceiver" android:exported="true">
<intent-filter>
<action android:name="keepass2android.ACTION_TRIGGER_REQUEST_ACCESS" />
<action android:name="keepass2android.ACTION_RECEIVE_ACCESS" />
<action android:name="keepass2android.ACTION_REVOKE_ACCESS" />
</intent-filter>
</receiver>
```
Please also add a few strings in your resource files (e.g. strings.xml) with the following keys:
```xml
<string name="kp2aplugin_title">The Great PluginA</string>
<string name="kp2aplugin_shortdesc">Test plugin to demonstrate how plugins work</string>
<string name="kp2aplugin_author">[your name here](your-name-here)</string>
```
These strings will be displayed to the user when KP2A asks if access should be granted.
## Modifying the entry view
You can add menu options for the full entry or for individual fields of the entry when displayed to the user. This is done, for example, by the QR plugin ([https://play.google.com/store/apps/details?id=keepass2android.plugin.qr](https://play.google.com/store/apps/details?id=keepass2android.plugin.qr)).
In addition, it is even possible to add new fields or modify existing fields. Please see the sample plugin "PluginA" for a simple example on how to do this:
[https://github.com/PhilippC/keepass2android-sampleplugin/blob/main/src/keepass2android/plugina/PluginAAccessReceiver.java](https://github.com/PhilippC/keepass2android-sampleplugin/blob/main/src/keepass2android/plugina/PluginAAccessReceiver.java)
## Querying credentials
KP2A 0.9.4 adds a great opportunity for third party apps: Instead of prompting the user to enter credentials or a passphrase, the app should try to get the data from KP2A if it is installed: If the user grants (or previously granted) access for the app, KP2A will automatically retrieve the matching entry. User action is only required if the KP2A database is locked (user will usually unlock it with the short QuickUnlock code) or if no matching entry is found (user can then create a new entry or select an existing one. in the latter case KP2A will offer to add entry information so that the entry will be found automatically next time).
To implement this, simply follow the steps descrIbed above in the sections Preparation and Authorization. Then, wherever appropriate in your app, do something like this:
```java
try
{
PlaceholderFragment.this.startActivityForResult(
Kp2aControl.getQueryEntryIntentForOwnPackage(),
1);
}
catch (ActivityNotFoundException e)
{
Toast.makeText(
PlaceholderFragment.this.getActivity(),
"no KP2A host app found",
Toast.LENGTH_SHORT).show();
}
```
(of course you can use `PacketManager` to check if the intent can be started instead of catching the `Exception`).
Instead of querying credentials associated with your own app, you might want to query other credentials as well. instead of `KpControl.getQueryEntryIntentForOwnPackage()` use
`Kp2aControl.getQueryEntryIntent("google.com")`
This requires \{"SCOPE_QUERY_CREDENTIALS (whereas getQueryEntryIntentForOwnPackage() requires SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE)"\}.
The credential data can be retrieved in onActivityResult():
```java
if ((requestCode == 1) //queryEntry for own package
&& (resultCode == RESULT_OK)) // ensure user granted access and selected something
{
HashMap<String, String> credentials = Kp2aControl.getEntryFieldsFromIntent(data);
if (!credentials.isEmpty())
{
//here we go!
Toast.makeText(
getActivity(),
"retrieved credenitals! Username="+credentials.get(KeepassDefs.UserNameField),
Toast.LENGTH_LONG).show();
}
}
```
Note that you get access to all strings (Title, Username, Password, URL, Notes + any user defined strings) in the entry. This may be in intersting in combination with the following section:
## Storing data in KP2A
If you allow the user to set up an account in your app or create a password, e.g. for encryption, please add an option to store this data in the Keepass2Android database, as this will lead to great workflows for the user. It's as simple as
```java
try {
HashMap<String, String> fields = new HashMap<String, String>();
//standard fields
fields.put(KeepassDefs.TitleField, "plugin A");
fields.put(KeepassDefs.UserNameField, "John Doe");
fields.put(KeepassDefs.PasswordField, "top secret");
//associate entry with our app. If we would require the URL field for a web URL,
//this string could be added in any other (e.g. a custom) field
fields.put(KeepassDefs.UrlField, "androidapp://"+getActivity().getPackageName());
//custom field:
fields.put(PLUGIN_A_PASSPHRASE, "some long text");
//mark custom field as protected (i.e. display masked, enable memory protection in Keepass2)
ArrayList<String> protectedFields = new ArrayList<String>();
protectedFields.add(PLUGIN_A_PASSPHRASE);
//add to KP2A
PlaceholderFragment.this.startActivityForResult(
Kp2aControl.getAddEntryIntent(fields, protectedFields),
2);
} catch (ActivityNotFoundException e) {
Toast.makeText(
PlaceholderFragment.this.getActivity(),
"no KP2A host app found",
Toast.LENGTH_SHORT).show();
}
```
Note that this does not even require access authorization because the user will actively save the entry anyways (after selecting the group where to create it.)
## Get information about database actions
With {"SCOPE_DATABASE_ACTIONS"}, you will be informed when the user opens, closes, locks or unlocks the database including the file name information.
PluginA uses this to simply display a toast message in its ActionReceiver:
```java
@Override
protected void dbAction(DatabaseAction db) {
Log.d("PluginA", db.getAction() + " in file " + db.getFileDisplayName() + " ("+db.getFilePath()+")");
}
```
## Sample plugin
Most example code from above is taken from the simple sample plugin "PluginA" as can be found on [https://keepass2android.codeplex.com/SourceControl/latest#src/java/PluginA/](https://keepass2android.codeplex.com/SourceControl/latest#src/java/PluginA/)

View File

@@ -1,31 +0,0 @@
<div class="wikidoc">
<h1>How to use Keepass2Android with YubiKey NEO</h1>
<p>Please refer to the documentation on the Keepass website (<a href="http://keepass.info/help/kb/yubikey.html">http://keepass.info/help/kb/yubikey.html</a>) or the Yubico website (<a href="http://www.yubico.com/applications/password-management/consumer/keepass/">http://www.yubico.com/applications/password-management/consumer/keepass/</a>)
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="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="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="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="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="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="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>

View File

@@ -1,25 +0,0 @@
Keepass2Android's apk is pretty big, e.g. when comparing to Keepassdroid. The main difference is that Keepass2Android is built on Mono for Android. Mono is an open-source implementation of the Microsoft .Net Framework (installed on pretty much every Windows PC). On Windows, the .net framework requires several hundred MB (but only once, not for every application). On Android devices, Mono is not installed globally. Instead, it is packaged into every app. The more features from Mono are required, the bigger the package becomes.
Here's a list of what is contained in the Keepass2Android 0.9.1 application package:
```
Mono for Android
.net dlls 5.0 MB
Runtime 2.5 MB
Google libraries 0.8 MB
(for Drive support)
Resources Strings, Icons.. 2.1 MB
Password Font 0.2 MB
Java Code including Dropbox 1.1 MB
GDrive, SkyDrive
libraries
Keepass library 0.2 MB
Keepass2Android Code 0.3 MB
Java/Mono bindings 0.5 MB
rest 0.3 MB
TOTAL 13 MB
```

View File

@@ -1,20 +0,0 @@
Google has introduced the Android Autofill interface in Android 8. Keepass2Android supports this interface. In most Android apps and all Autofill-enabled browsers, this is the most convenient way of entering passwords. As soon as you focus a field, you will see a popup "Fill with Keepass2Android".
<img src="autofill-facebook.png" />
After clicking this popup, you can unlock your KP2A database. If automatic look up succeeds, KP2A will close automatically, if not you are prompted to select the entry you want to auto-fill. When returning to the target app, the fields should be filled automatically already.
As of January 2018, the following browsers are known to have Android Autofill support:
* Firefox Focus / Firefox Klar
* Opera Mini
These browsers do not (yet) have autofill support:
* Google Chrome
* Firefox for Android ([bugzilla entry](https://bugzilla.mozilla.org/show_bug.cgi?id=1352011))
* Brave-Browser
* Opera
Please use the Share-URL-feature and the built-in KP2A keyboard for these browsers.

View File

@@ -1,25 +1 @@
# Who we are
Philipp Crocoll
Wallonenstr. 4
76297 Stutensee
Germany
is the author of Keepass2Android and Keepass2Android Offline.
# What data is collected?
The contents of your password database is yours and is never collected by us. Keepass2Android stores this data on a location chosen by the user and encrypted in the Keepass database format. The app author does not have any access, neither to the files nor the contents. Depending on the user's choice of the storage location, the files may be stored on third-party servers like Dropbox or Google Drive.
Keepass2Android does not collect personal identifiable information. For debugging purposes, the user may activate creating a debug log. This collects data inside the app and is not accessible to any other app nor the author of the app, unless the user explicitly sends the debug log to the author. Debug logs usually do not contain personal identifiable information, except if such information is part of file or folder names. Debug logs will not be shared with third parties unless explicitly authorized by the sender.
# What Android permissions are required?
* **Internet** (Keepass2Android regular only): Required to allow the user to read/store password databases or key files on remote locations, e.g. Dropbox or via WebDav.
* **Contacts/Accounts** (Keepass2Android regular only): Required by the Google Drive SDK. If you want to access files on Google Drive, you are prompted to select one of the Google Accounts on your phone to use. The permission is required to query the list of Google accounts on the device. Keepass2Android does not access your personal contacts.
* **Storage**: Required to allow the user to read/store password databases or key files on the device locally.
* **Fingerprint/Biometric**: Required if you want to use biometric unlock.
* **Vibrate**: Required by the built-in keyboard (vibrate on key press)
* **Camera**: Required for scanning OTP QR Codes
* **Foreground service**: Required to keep the app alive for QuickUnlock (so you don't need to enter your full master password repeatedly)
This page has been moved to the [wiki](https://github.com/PhilippC/keepass2android/wiki/Privacy-Policy)

View File

@@ -2,8 +2,8 @@
# What is Keepass2Android?
Keepass2Android is a password manager app. It allows to store and retrieve passwords and other sensitive information in a file called "database". This database is secured with a so-called master password. The master password typically is a strong password and can be complemented with a second factor for additional security.
The password database file can be synchronized across different devices. This works best using one of the built-in cloud storage options, but can also be performed with third-party apps. Keepass2Android is compatible with Keepass 1 and Keepass 2 on Windows and KeepassX on Linux.
Keepass2Android is a password manager app. It allows to store and retrieve passwords and other sensitive information in a file called "database", secured with a strong key.
The password database file can be synchronized across different devices. This works best using one of the built-in cloud storage options, but can also be performed with third-party apps. Keepass2Android is compatible with KeePass 2.x and KeepassXC on PCs as well as many other KeePass ports for a variety of platforms.
# Where to get it?
Regular stable releases of Keepass2Android are available on [Google Play](https://play.google.com/store/apps/details?id=keepass2android.keepass2android).
@@ -17,11 +17,7 @@ Beta-releases can be obtained by opting in to the [Beta testing channel](https:/
* [Make a donation](http://philipp.crocoll.net/donate.php)
# How do I learn more?
Please see the [documentation](Documentation.md).
Please see the [wiki](https://github.com/PhilippC/keepass2android/wiki/Documentation) for further information.
# How do I build the project?
If you want to build Keepass2Android, check the [build guide](Build.readme.md).
The project homepage is https://philipp.crocoll.net/keepass2android/index.php
<img src="https://github.com/PhilippC/keepass2android/actions/workflows/build.yml/badge.svg" alt="build status" /> [Build status](https://github.com/PhilippC/keepass2android/actions)

View File

@@ -1,72 +0,0 @@
# SFTP Open/Create Database Credentials Documentation
## Basic Settings
* **Host** -- the hostname or IP address of the SFTP server to connect to
* **Port** -- the listening TCP port of the SFTP server to connect to (default: 22)
* **Username** -- the user/account name on the SFTP server that has access to the database
* **Initial directory** -- The path on the SFTP server that will be used as a starting point when choosing the remote database file
### Authentication Modes
#### Password
Authenticate using a password
* **Password** -- the password associated with **username** used to log into the SFTP server
#### K2A Private/Public Key
Authenticate using a private/public key pair that is generated internally by KP2A
* **SEND PUBLIC KEY...** -- Opens a standard Android "Share" screen containing the KP2A public key content. This allows for the public key to be sent via email, SMS, etc. This public key will need to be added to the SFTP server's user's "authorized keys" to allow private/public key authentication.
#### Custom Private Key
Authenticate using an existing private/public key pair. Use this option instead of *K2A Private/Public Key* if you wish to use a key pair that is already set up for this **username** on the SFTP server.
* **Selected private key** -- a combo-box containing a list of custom private keys that KP2A knows about, and a special `[Add new...]` option.
##### Add A New Private Key
* Select `[Add new...]`
* Enter a name for the new key in **New key name**
* Enter the private key contents (text) into **New key content**. **TIP:** The easiest way to accomplish this is to open the private key file in a text editor on the device, **Select All**, **Copy** to the clipboard, and paste it into **New key content**.
* Tap **SAVE PRIVATE KEY** to add the new key to the known list.
##### Use An Existing Private Key
* To use a private key that has already been imported into KP2A, simply select it from the list of keys.
##### Remove An Existing Key
* To remove a private that has been imported into KP2A, select it from the list and tap **DELETE PRIVATE KEY**.
A **key passphrase** can be supplied (if the key pair requires it)
## Advanced Settings
* **Connection timeout seconds** -- the number of seconds to wait for a connection to the server before giving up and considering the server as unavailable/unreachable
### Key Algorithm Manipulation
**NOTE: It is very rare that these fields need to be (or should be) specified. Use at your own risk!**
* **Key Exchange (KEX) Algorithm(s)** -- Explicitly set or modify the ordered list of Key Exchange algorithms that the SSH/SFTP client library will try to use
* **Server Host Key Algorithm(s)** -- Explicitly set or modify the ordered list of Server Host Key algorithms that the SSH/SFTP client library will try to use
#### How It Works
The SSH/SFTP client has a pre-defined ordered list of algorithm names that it will use to negotiate with the server to handle key exchange. In rare cases there are compatibility issues where Android OS has not properly implemented full support for algorithms listed. This can result in a connection failure, even if there is a suitable algorithm available (of lesser priority in the list).
The fields listed above allow these lists to be manipulated in the following ways to overcome/workaround such problems. The value is a comma-separated list of "algorithm spec" entries. Specs can be one of:
* Direct replacement of values -- Ex: `primary_alg,secondary_alg`
* Prepend to values -- Ex: `+try_first_alg`
* Append to values -- Ex: `try_last_alg+`
* Remove a specific value -- Ex: `-bad_alg`
* Remove values matching prefix -- Ex: `-bad_starting_with*`
* Remove values matching suffix -- Ex: `-*bad_ending_with`
* Remove values matching substring -- Ex: `-*bad_middle*`
* Remove values matching prefix and suffix -- Ex: `-alg_begin*end`
For example, assume the system's KEX algorithm list is:
`ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256`
These are various outcomes (user KEX field -> result):
* Prefix removal: `-ec*` --> `diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256`
* Suffix removal, appending: `-*256,+first_alg,almost_last_alg+,last_alg+` --> `first_alg,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,almost_last_alg,last_alg`
* Direct replacement: `first_alg,middle_alg,last_alg` --> `first_alg,middle_alg,last_alg`
## Selecting A Database
Once all applicable fields have been entered and/or options selected, tapping **OK** will attempt to connect to the SFTP server. First time connections may pop up a dialog window asking to accept the host's authenticity (tap **yes** if the host is trusted), as well as potentially creating a new `known_hosts` file (tap **yes** to do so). If the connection is successful, a remote file browser screen will open. Navigate and select the Keepass database to open.

View File

@@ -1 +0,0 @@
theme: jekyll-theme-slate

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

View File

@@ -0,0 +1,48 @@
Additions allow you to add arbitrary C# to the generated classes
before they are compiled. This can be helpful for providing convenience
methods or adding pure C# classes.
== Adding Methods to Generated Classes ==
Let's say the library being bound has a Rectangle class with a constructor
that takes an x and y position, and a width and length size. It will look like
this:
public partial class Rectangle
{
public Rectangle (int x, int y, int width, int height)
{
// JNI bindings
}
}
Imagine we want to add a constructor to this class that takes a Point and
Size structure instead of 4 ints. We can add a new file called Rectangle.cs
with a partial class containing our new method:
public partial class Rectangle
{
public Rectangle (Point location, Size size) :
this (location.X, location.Y, size.Width, size.Height)
{
}
}
At compile time, the additions class will be added to the generated class
and the final assembly will a Rectangle class with both constructors.
== Adding C# Classes ==
Another thing that can be done is adding fully C# managed classes to the
generated library. In the above example, let's assume that there isn't a
Point class available in Java or our library. The one we create doesn't need
to interact with Java, so we'll create it like a normal class in C#.
By adding a Point.cs file with this class, it will end up in the binding library:
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}

View File

@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,14 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping jni-class="android/support/v4/app/FragmentActivity$FragmentTag" clr-enum-type="Android.Support.V4.App.FragmentTagType">
<field jni-name="Fragment_name" clr-name="Name" value="0" />
<field jni-name="Fragment_id" clr-name="Id" value="1" />
<field jni-name="Fragment_tag" clr-name="Tag" value="2" />
</mapping>
-->
</enum-field-mappings>

View File

@@ -0,0 +1,13 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
-->
</enum-method-mappings>

View File

@@ -0,0 +1,35 @@
<metadata>
<remove-node path="/api/package[@name='com.dropbox.core']" />
<remove-node path="/api/package[@name='com.dropbox.core.http']" />
<remove-node path="/api/package[@name='com.dropbox.core.json']" />
<remove-node path="/api/package[@name='com.dropbox.core.oauth']" />
<remove-node path="/api/package[@name='com.dropbox.core.sdk.android']" />
<remove-node path="/api/package[@name='com.dropbox.core.stone']" />
<remove-node path="/api/package[@name='com.dropbox.core.util']" />
<remove-node path="/api/package[@name='com.dropbox.core.v1']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.account']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.callbacks']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.check']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.seenstate']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.teamcommon']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.secondaryemails']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.async']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.auth']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.common']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.contacts']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.fileproperties']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.filerequests']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.files']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.paper']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.openid']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.sharing']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.team']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.teamlog']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.teampolicies']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.users']" />
<remove-node path="/api/package[@name='com.dropbox.core.v2.userscommon']" />
<remove-node path="/api/package[@name='com.dropbox.android']" />
<remove-node path="/api/package[@name='com.dropbox.core.android']" />
</metadata>

Binary file not shown.

View File

@@ -29,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PCloudBindings", "PCloudBin
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kp2aAutofillParser.Tests", "Kp2aAutofillParser.Tests\Kp2aAutofillParser.Tests.csproj", "{F5A2A8F9-C084-498F-9603-9D927BA5C626}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DropboxBinding", "DropboxBinding\DropboxBinding.csproj", "{2FE6E335-E834-4F86-AB83-2C5D225DA929}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -369,6 +371,30 @@ Global
{F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|Win32.Build.0 = Release|Any CPU
{F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|x64.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Win32.ActiveCfg = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Win32.Build.0 = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|x64.ActiveCfg = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|x64.Build.0 = Debug|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Any CPU.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Win32.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Win32.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|x64.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|x64.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Mixed Platforms.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Mixed Platforms.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Win32.Build.0 = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -35,8 +35,6 @@ namespace KeePassLib.Cryptography
{
get
{
Debug.Assert(m_dicts.Count > 0); // Should be initialized
int iMaxLen = 0;
foreach(int iLen in m_dicts.Keys)
{

View File

@@ -445,6 +445,9 @@ namespace Kp2aAutofillParser
public static string ToCanonicalHint(string hint)
{
//avoid crash when looking up a null key
if (hint == null)
return "";
string canonicalHint;
if (!hintToCanonicalReplacement.TryGetValue(hint, out canonicalHint))
canonicalHint = hint;
@@ -730,7 +733,7 @@ namespace Kp2aAutofillParser
{
public List<TField> InputFields { get; set; } = new List<TField>();
public string PackageId { get; set; } = null;
public string? PackageId { get; set; } = null;
public string WebDomain { get; set; } = null;
}
@@ -841,6 +844,7 @@ namespace Kp2aAutofillParser
continue;
if (viewHints.Where(h => h != null).Select(AutofillHintsHelper.ToCanonicalHint).Intersect(_autofillHintsForLogin).Any())
{
AddFieldToHintMap(viewNode, viewHints.Where(h => h != null).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet().ToArray());
}

View File

@@ -1148,30 +1148,46 @@ namespace keepass2android.Io
});
}
string? driveId = parentPath.DriveId;
if ((string.IsNullOrEmpty(driveId)) && (drives?.Any() == true))
{
driveId = drives.First().Id;
}
if (!CanListShares)
return result;
var sharedWithMeResponse = await client.Drives[driveId].SharedWithMe.GetAsSharedWithMeGetResponseAsync();
foreach (DriveItem i in sharedWithMeResponse?.Value ?? [])
try
{
var oneDrive2ItemLocation = parentPath.BuildShare(i.RemoteItem.Id, i.RemoteItem.Name, i.RemoteItem.WebUrl, i.RemoteItem.ParentReference.DriveId);
FileDescription sharedFileEntry = new FileDescription()
string? driveId = parentPath.DriveId;
if (string.IsNullOrEmpty(driveId))
{
CanWrite = true, CanRead = true, DisplayName = i.Name,
IsDirectory = true,
Path = oneDrive2ItemLocation.ToString()
};
result.Add(sharedFileEntry);
driveId = (await client.Me.Drive.GetAsync()).Id;
}
if ((string.IsNullOrEmpty(driveId)) && (drives?.Any() == true))
{
driveId = drives.First().Id;
}
var sharedWithMeResponse = await client.Drives[driveId].SharedWithMe.GetAsSharedWithMeGetResponseAsync();
foreach (DriveItem i in sharedWithMeResponse?.Value ?? [])
{
var oneDrive2ItemLocation = parentPath.BuildShare(i.RemoteItem.Id, i.RemoteItem.Name, i.RemoteItem.WebUrl, i.RemoteItem.ParentReference.DriveId);
FileDescription sharedFileEntry = new FileDescription()
{
CanWrite = true,
CanRead = true,
DisplayName = i.Name,
IsDirectory = (i.Folder != null) || ((i.RemoteItem != null) && (i.RemoteItem.Folder != null)),
Path = oneDrive2ItemLocation.ToString()
};
result.Add(sharedFileEntry);
}
}
catch (Exception e)
{
logDebug("Failed to list shares: " + e);
}
return result;
}

View File

@@ -12,7 +12,6 @@
<PackageReference Include="FluentFTP" Version="51.1.0" />
<PackageReference Include="MegaApiClient" Version="1.10.4" />
<PackageReference Include="Microsoft.Graph" Version="5.68.0" />
<PackageReference Include="Microsoft.Graph.Auth" Version="1.0.0-preview.7" />
<PackageReference Include="Microsoft.Identity.Client" Version="4.67.1" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.8.0" />
<PackageReference Include="Xamarin.AndroidX.Core" Version="1.13.1.5" />

View File

@@ -138,7 +138,8 @@ namespace keepass2android
{
continue;
}
if (host.IndexOf(otherHost, StringComparison.InvariantCultureIgnoreCase) > -1)
if (string.Equals(host, otherHost, StringComparison.OrdinalIgnoreCase) ||
host.EndsWith("." + otherHost, StringComparison.OrdinalIgnoreCase))
{
pgResults.AddEntry(entry, false);
}

View File

@@ -41,7 +41,8 @@ dependencies {
exclude group: 'com.google.android.google-play-services'
}
implementation 'com.google.apis:google-api-services-drive:v2-rev102-1.16.0-rc'
implementation 'com.dropbox.core:dropbox-core-sdk:5.4.6'
implementation 'com.dropbox.core:dropbox-core-sdk:7.0.0'
implementation 'com.dropbox.core:dropbox-android-sdk:7.0.0'
implementation 'com.google.api-client:google-api-client:1.30.5'
implementation 'com.google.api-client:google-api-client-android:1.30.5'

View File

@@ -7,6 +7,7 @@ import com.dropbox.core.DbxOAuth1Upgrader;
import com.dropbox.core.DbxRequestConfig;
import com.dropbox.core.InvalidAccessTokenException;
import com.dropbox.core.android.Auth;
import com.dropbox.core.json.JsonReadException;
import com.dropbox.core.oauth.DbxCredential;
import com.dropbox.core.v2.DbxClientV2;
@@ -154,7 +155,7 @@ public class DropboxV2Storage extends JavaFileStorageBase
{
if ((previousFileVersion == null) || (previousFileVersion.equals("")))
return false;
path = removeProtocol(path);
path = removeProtocol(path);
try {
Metadata entry = dbxClient.files().getMetadata(path);
return !String.valueOf(entry.hashCode()) .equals(previousFileVersion);

View File

@@ -304,6 +304,11 @@ public class WebDavStorage extends JavaFileStorageBase {
//relative path:
e.path = buildPathFromHref(parentPath, r.href);
}
if ( (parentPath.indexOf("@") != -1) && (e.path.indexOf("@") == -1))
{
//username/password not contained in .href response. Add it back from parentPath:
e.path = parentPath.substring(0, parentPath.indexOf("@")+1) + e.path.substring(e.path.indexOf("://")+3);
}
if ((depth == 1) && e.isDirectory)
{

View File

@@ -113,4 +113,15 @@ extends Activity implements JavaFileStorage.FileStorageSetupActivity {
return state;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
MainActivity.storageToTest.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}
}

View File

@@ -147,6 +147,7 @@ import java.util.List;
//import keepass2android.javafilestorage.DropboxCloudRailStorage;
import keepass2android.javafilestorage.DropboxV2Storage;
import keepass2android.javafilestorage.GoogleDriveAppDataFileStorage;
import keepass2android.javafilestorage.GoogleDriveFullFileStorage;
import keepass2android.javafilestorage.ICertificateErrorHandler;
import keepass2android.javafilestorage.JavaFileStorage;
import keepass2android.javafilestorage.JavaFileStorage.FileEntry;
@@ -547,7 +548,7 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
//storageToTest = new GoogleDriveAppDataFileStorage();
storageToTest = new WebDavStorage(new ICertificateErrorHandler() {
/*storageToTest = new WebDavStorage(new ICertificateErrorHandler() {
@Override
public boolean onValidationError(String error) {
return false;
@@ -558,10 +559,11 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
return false;
}
});
*/
//storageToTest = new DropboxV2Storage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
//storageToTest = new DropboxFileStorage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
//storageToTest = new DropboxAppFolderFileStorage(ctx,"ax0268uydp1ya57", "3s86datjhkihwyc", true);
storageToTest = new GoogleDriveFullFileStorage();
return storageToTest;
@@ -580,6 +582,8 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

View File

@@ -356,7 +356,13 @@ public class KP2AKeyboard extends InputMethodService
pFilter.addAction("android.intent.action.PACKAGE_ADDED");
pFilter.addAction("android.intent.action.PACKAGE_REPLACED");
pFilter.addAction("android.intent.action.PACKAGE_REMOVED");
registerReceiver(mPluginManager, pFilter);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mPluginManager, pFilter, RECEIVER_EXPORTED);
}
else
{
registerReceiver(mPluginManager, pFilter);
}
LatinIMEUtil.GCUtils.getInstance().reset();
@@ -375,16 +381,28 @@ public class KP2AKeyboard extends InputMethodService
// register to receive ringer mode changes for silent mode
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
registerReceiver(mSilentModeReceiver, filter);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mSilentModeReceiver, filter, RECEIVER_EXPORTED);
}
else
{
registerReceiver(mSilentModeReceiver, filter);
}
prefs.registerOnSharedPreferenceChangeListener(this);
//check if we have KP2A data available:
mHadKp2aData = mShowKp2aKeyboard = keepass2android.kbbridge.KeyboardData.hasData();
mHadKp2aData = mShowKp2aKeyboard = KeyboardData.hasData();
mClearKeyboardReceiver = new ClearKeyboardBroadcastReceiver();
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)));
android.util.Log.d("KP2AK", "registered receiver for clear keyboard broadcast: "+get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)), RECEIVER_EXPORTED);
}
else
{
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)));
}
Log.d("KP2AK", "registered receiver for clear keyboard broadcast: "+get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this));
}

View File

@@ -21,7 +21,7 @@
<!-- Title for Latin keyboard -->
<string name="english_ime_name">Keepass2Android-Tastatur</string>
<!-- Title for Latin keyboard settings activity / dialog -->
<string name="english_ime_settings">Keepass2Android-Tastatureinstellungen</string>
<string name="english_ime_settings">Android-Tastatureinstellungen</string>
<!-- Title for Latin keyboard input options dialog -->
<string name="english_ime_input_options">Eingabeoptionen</string>
<!-- Option to provide vibrate/haptic feedback on keypress -->
@@ -49,7 +49,7 @@
<!-- Description for text prediction -->
<string name="prediction_summary">Automatische Vervollständigung während der Eingabe aktivieren</string>
<!-- Dialog title for auto complete choices -->
<string name="auto_complete_dialog_title">Autom. vervollständigen</string>
<string name="auto_complete_dialog_title">Autovervollständigung</string>
<!-- Option to enable text prediction in landscape -->
<string name="prediction_landscape">Textfeld vergrößern</string>
<!-- Description for text prediction -->
@@ -62,7 +62,7 @@
<string name="auto_punctuate">Autom. Zeichensetzung</string>
<!-- Description for auto punctuate -->
<!-- Option to enable quick fixes -->
<string name="quick_fixes">Quick Fixes</string>
<string name="quick_fixes">Schnelle Korrektur</string>
<!-- Description for quick fixes -->
<string name="quick_fixes_summary">Korrigiert gängige Tippfehler</string>
<!-- Option to enable showing suggestions -->
@@ -74,7 +74,7 @@
<!-- Description for auto completion -->
<string name="auto_complete_summary">Leertaste und Interpunktion fügen autom. ein markiertes Wort ein</string>
<!-- Option to show/hide the settings key -->
<string name="prefs_settings_key">Einstellungstaste anz.</string>
<string name="prefs_settings_key">Einstellungs-Schlüssel anzeigen</string>
<!-- Array of the settings key mode values -->
<!-- Option to automatically decide to show/hide the settings key -->
<string name="settings_key_mode_auto_name">Automatisch</string>
@@ -112,7 +112,7 @@
<!-- Tip to long press on typed word to add to dictionary -->
<string name="tip_add_to_dictionary">Lange auf das Wort ganz links außen drücken, um es zum Wörterbuch hinzuzufügen</string>
<!-- Instruction to touch the bubble to continue -->
<string name="touch_to_continue">Diesen Hinweis berühren, um fortzufahren »</string>
<string name="touch_to_continue">Diesen Hinweis antippen, um fortzufahren.»</string>
<!-- Instruction to touch the bubble to start typing -->
<string name="touch_to_finish">Hier berühren, um diesen Hinweis zu schließen und mit dem Tippen zu beginnen!</string>
<!-- Tutorial tip 1 - The keyboard opens any time you touch a text field -->
@@ -138,7 +138,7 @@
<!-- Label for "switch to symbols" key. Must be short to fit on key! -->
<string name="label_symbol_key">\?123</string>
<!-- Label for "switch to numeric" key. Must be short to fit on key! -->
<string name="label_phone_key">Num</string>
<string name="label_phone_key">123</string>
<!-- Label for "switch to alphabetic" key. Must be short to fit on key! -->
<string name="label_alpha_key">ABC</string>
<!-- Label for ALT modifier key. Must be short to fit on key! -->
@@ -186,7 +186,7 @@
<!-- Short hint shown in candidate view to explain voice input. -->
<string name="voice_swipe_hint"><b>„Hinweis:“</b>„ Ziehen Sie zum Sprechen den Finger über die Tastatur.“</string>
<!-- Short hint shown in candidate view to explain that user can speak punctuation. -->
<string name="voice_punctuation_hint"><b>Hinweis:</b>Versuchen Sie beim nächsten Mal, Satzzeichen wie „Punkt“, „Komma“ oder „Fragezeichen“ per Sprachbefehl einzugeben.</string>
<string name="voice_punctuation_hint"><b>Hinweis: </b>Versuche beim nächsten Mal, Satzzeichen wie „Punkt“, „Komma“ oder „Fragezeichen“ per Sprachbefehl einzugeben.</string>
<!-- Label on button to stop recognition. Must be short to fit on button. -->
<string name="cancel">Abbrechen</string>
<!-- Label on button when an error occurs -->
@@ -216,7 +216,7 @@
<!-- appears above image showing the user to click on a TextView to show the IME -->
<string name="open_the_keyboard"><font size="17"><b>„Tastatur öffnen“\n</b></font><font size="3">\n</font>„Berühren Sie ein beliebiges Textfeld.“</string>
<!-- appears above the image showing the back button used to close the keyboard -->
<string name="close_the_keyboard"><font size="17"><b>Tastatur schließen\n</b></font><font size="3">\n</font>Drücken Sie die Zurücktaste.</string>
<string name="close_the_keyboard"><font size="17"><b>Tastatur schließen\n</b></font><font size="3">\n</font>Drücken die Zurück-Taste.</string>
<!-- appears above image showing how to use touch and hold -->
<string name="touch_and_hold"><font size="17"><b>„Für Optionen eine Taste berühren und gedrückt halten“\n</b></font><font size="3">\n</font>„Greifen Sie auf Satzzeichen und Akzente zu.“</string>
<!-- appears above image showing how to access keyboard settings -->

View File

@@ -19,71 +19,124 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title for Latin keyboard -->
<string name="english_ime_name">מקלדת של Keepass2Android</string>
<!-- Title for Latin keyboard settings activity / dialog -->
<string name="english_ime_settings">הגדרות של מקלדת אנדרואיד</string>
<!-- Title for Latin keyboard input options dialog -->
<string name="english_ime_input_options">אפשרויות קלט</string>
<!-- Option to provide vibrate/haptic feedback on keypress -->
<string name="vibrate_on_keypress">רטט בזמן לחיצה על כפתור</string>
<!-- Option to play back sound on keypress in soft keyboard -->
<string name="sound_on_keypress">צליל בזמן לחיצה על כפתור</string>
<!-- Option to pop up the character with a larger font above soft keyboard -->
<string name="popup_on_keypress">אות קופצת בלחיצה על כפתור</string>
<!-- Option to enable using nearby keys when correcting/predicting -->
<string name="hit_correction">תקן שגיאות הקלדה</string>
<!-- Description for hit_correction -->
<string name="hit_correction_summary">אפשר תיקון שגיאות קלט</string>
<!-- Option to enable using nearby keys when correcting/predicting in landscape-->
<string name="hit_correction_land">קלט שגוי במצג אופקי</string>
<!-- Description for hit_correction in landscape -->
<string name="hit_correction_land_summary">אפשר תיקון שגיאות קלט</string>
<!-- Option to automatically correct word on hitting space -->
<string name="auto_correction">הצעות של מילים</string>
<!-- Description for auto_correction -->
<string name="auto_correction_summary">תקן את המילה הקודמת אוטומטית</string>
<!-- Option to enable text prediction -->
<string name="prediction">הצעות של מילים</string>
<!-- Category title for text prediction -->
<string name="prediction_category">הגדרות של הצעות מילים</string>
<!-- Description for text prediction -->
<string name="prediction_summary">אפשר השלמה אוטומטית בזמן הקלדה</string>
<!-- Dialog title for auto complete choices -->
<string name="auto_complete_dialog_title">השלמה אוטומטית</string>
<!-- Option to enable text prediction in landscape -->
<string name="prediction_landscape">הגדל את השדה של הטקסט</string>
<!-- Description for text prediction -->
<string name="prediction_landscape_summary">הסתר הצעות מילים במצג לרוחב</string>
<!-- Option to enable auto capitalization of sentences -->
<string name="auto_cap">אות ראשית גדולה אוטומטיות</string>
<!-- Description for auto cap -->
<string name="auto_cap_summary">הגדל אוטומטית את האות הראשונה במשפט</string>
<!-- Option to enable auto punctuate -->
<string name="auto_punctuate">ניקוד אוטומטי</string>
<!-- Description for auto punctuate -->
<!-- Option to enable quick fixes -->
<string name="quick_fixes">תיקונים מהירים</string>
<!-- Description for quick fixes -->
<string name="quick_fixes_summary">מתקן טעויות נפוצות בהקלדה</string>
<!-- Option to enable showing suggestions -->
<string name="show_suggestions">הצג הצעות</string>
<!-- Description for show suggestions -->
<string name="show_suggestions_summary">הצג מילים מוצעות בזמן הקלדה</string>
<!-- Option to enable auto completion -->
<string name="auto_complete">השלמה אוטומטית</string>
<!-- Description for auto completion -->
<string name="auto_complete_summary">מקש רווח או מקש הניקוד אוטומטית מכניסים את המילה המודגשת</string>
<!-- Option to show/hide the settings key -->
<string name="prefs_settings_key">הצג כפתור הגדרות</string>
<!-- Array of the settings key mode values -->
<!-- Option to automatically decide to show/hide the settings key -->
<string name="settings_key_mode_auto_name">אוטומטי</string>
<!-- Option to always show the settings key -->
<string name="settings_key_mode_always_show_name">הצג תמיד</string>
<!-- Option to always hide the settings key -->
<string name="settings_key_mode_always_hide_name">הסתר תמיד</string>
<!-- Array of the settings key modes -->
<!-- Option to enable bigram completion -->
<string name="bigram_suggestion">הצעות bigram</string>
<!-- Description for auto completion -->
<string name="bigram_suggestion_summary">תשתמש במילה הקודמת כדי לשפר את ההצעה</string>
<!-- Array of prediction modes -->
<string-array name="prediction_modes">
<item>אף אחד</item>
<item>Basic</item>
<item>Advanced</item>
<item>בסיסי</item>
<item>מתקדם</item>
</string-array>
<!-- Don't translate -->
<!-- Don't translate -->
<!-- Don't translate -->
<!-- Indicates that a word has been added to the dictionary -->
<string name="added_word"><xliff:g id="word">%s</xliff:g> : נשמר</string>
<!-- Tip to long press on keys -->
<string name="tip_long_press">החזק כפתור כדי לראות סימנים מיוחדים (ø, ö, וכו\')</string>
<!-- Tip to dismiss keyboard -->
<string name="tip_dismiss">הקש על כפתור חזור \u21B6 כדי לסגור את המקלדת בכל שלב</string>
<!-- Tip to press ?123 to access numbers and symbols -->
<string name="tip_access_symbols">קבל גישה למספר ולסימנים</string>
<!-- Tip to long press on typed word to add to dictionary -->
<string name="tip_add_to_dictionary">גע והשאר את המילה הכי שמאלית לחוצה כדי להוסיף אותה למילון
</string>
<!-- Instruction to touch the bubble to continue -->
<string name="touch_to_continue">גע ברמז זה כדי להמשיך »</string>
<!-- Instruction to touch the bubble to start typing -->
<string name="touch_to_finish">גע פה כדי לסגור את הרמז הזה ותתחיל להקליד!</string>
<!-- Tutorial tip 1 - The keyboard opens any time you touch a text field -->
<string name="tip_to_open_keyboard"><b>המקלדת נפתחת בכל רגע שאתה נוגע בשדה עם טקסט</b></string>
<!-- Tutorial tip 2 - Touch and hold a key to view accents (examples) -->
<string name="tip_to_view_accents">&lt;b&gt;גע והחזק מקש כדי לראות סימנים\n(&lt;, &gt;, =, ; וכך הלאה)&lt;/b&gt;</string>
<!-- Tutorial tip 3 - How to switch to number/symbol keyboard -->
<string name="tip_to_open_symbols"><b>עבור למספרים וסימנים בעזרת לחיצה על מקש זה</b></string>
<!-- Tutorial tip 4 - How to switch back to alphabet keyboard -->
<string name="tip_to_close_symbols"><b>חזור להקליד אותיות בעזרת נגיעה על אותו המקש שוב</b></string>
<!-- Tutorial tip 5 - How to launch keyboard settings -->
<string name="tip_to_launch_settings"><b>גע והחזק מקש זה כדי לשנות את הגדרות המקלדת כגון השלמה אוטומטית</b></string>
<!-- Tutorial tip 6 - Done with the tutorial -->
<string name="tip_to_start_typing"><b>נסה זאת!</b></string>
<!-- Label for soft enter key when it performs GO action. Must be short to fit on key! -->
<string name="label_go_key">המשך</string>
<!-- Label for soft enter key when it performs NEXT action. Must be short to fit on key! -->
<string name="label_next_key">הבא</string>
<!-- Label for soft enter key when it performs DONE action. Must be short to fit on key! -->
<string name="label_done_key">בוצע</string>
<!-- Label for soft enter key when it performs SEND action. Must be short to fit on key! -->
<string name="label_send_key">שלח</string>
<!-- Label for "switch to symbols" key. Must be short to fit on key! -->
<string name="label_symbol_key">\?123</string>
<!-- Label for "switch to numeric" key. Must be short to fit on key! -->
<string name="label_phone_key">123</string>
<!-- Label for "switch to alphabetic" key. Must be short to fit on key! -->
<string name="label_alpha_key">אבג</string>
<!-- Label for ALT modifier key. Must be short to fit on key! -->
<!-- Voice related labels -->
<!-- Title of the warning dialog that shows when a user initiates voice input for

View File

@@ -133,8 +133,11 @@
<!-- Label for "switch to symbols" key. Must be short to fit on key! -->
<string name="label_symbol_key">\?123</string>
<!-- Label for "switch to numeric" key. Must be short to fit on key! -->
<string name="label_phone_key">123</string>
<!-- Label for "switch to alphabetic" key. Must be short to fit on key! -->
<string name="label_alpha_key">ABC</string>
<!-- Label for ALT modifier key. Must be short to fit on key! -->
<string name="label_alt_key">ALT</string>
<!-- Voice related labels -->
<!-- Title of the warning dialog that shows when a user initiates voice input for
the first time. -->
@@ -182,6 +185,7 @@
<!-- Label on button to stop recognition. Must be short to fit on button. -->
<string name="cancel">Anulează</string>
<!-- Label on button when an error occurs -->
<string name="ok">Bine</string>
<!-- Preferences item for enabling speech input -->
<string name="voice_input">Intrare voce</string>
<!-- Array of Voice Input modes -->
@@ -213,10 +217,15 @@
<!-- appears above image showing how to access keyboard settings -->
<string name="keyboard_settings"><font size="17"><b>\"Setările tastaturii\"\n</b></font><font size="3">\n</font>\"Atingeţi şi ţineţi apăsată tasta \"<b>\"?123\"</b>\".\"</string>
<!-- popular web domains for the locale - most popular, displayed on the keyboard -->
<string name="popular_domain_0">".com"</string>
<!-- popular web domains for the locale - item 1, displayed in the popup -->
<string name="popular_domain_1">".net"</string>
<!-- popular web domains for the locale - item 2, displayed in the popup -->
<string name="popular_domain_2">".org"</string>
<!-- popular web domains for the locale - item 3, displayed in the popup -->
<string name="popular_domain_3">".gov"</string>
<!-- popular web domains for the locale - item 4, displayed in the popup -->
<string name="popular_domain_4">".edu"</string>
<!-- Menu item for launching Input method picker -->
<string name="selectInputMethod">Selectaţi metoda de introducere a textului</string>
<!-- Title for input language selection screen -->
@@ -240,4 +249,5 @@
<string name="subtype_mode_keyboard">tastatură</string>
<string name="subtype_mode_voice">voce</string>
<!-- Title for Latin keyboard debug settings activity / dialog -->
<string name="kp2a_nextfields"><![CDATA[>]]></string>
</resources>

View File

@@ -133,8 +133,11 @@
<!-- Label for "switch to symbols" key. Must be short to fit on key! -->
<string name="label_symbol_key">\?123</string>
<!-- Label for "switch to numeric" key. Must be short to fit on key! -->
<string name="label_phone_key">123</string>
<!-- Label for "switch to alphabetic" key. Must be short to fit on key! -->
<string name="label_alpha_key">ABC</string>
<!-- Label for ALT modifier key. Must be short to fit on key! -->
<string name="label_alt_key">ALT</string>
<!-- Voice related labels -->
<!-- Title of the warning dialog that shows when a user initiates voice input for
the first time. -->
@@ -182,6 +185,7 @@
<!-- Label on button to stop recognition. Must be short to fit on button. -->
<string name="cancel">Hủy bỏ</string>
<!-- Label on button when an error occurs -->
<string name="ok">OK</string>
<!-- Preferences item for enabling speech input -->
<string name="voice_input">Nhập liệu bằng giọng nói</string>
<!-- Array of Voice Input modes -->
@@ -213,10 +217,15 @@
<!-- appears above image showing how to access keyboard settings -->
<string name="keyboard_settings"><font size="17"><b>\"Cài đặt bàn phím\"\n</b></font><font size="3">\n</font>\"Chạm &amp; giữ phím \"<b>\"?123\"</b>\".\"</string>
<!-- popular web domains for the locale - most popular, displayed on the keyboard -->
<string name="popular_domain_0">".com"</string>
<!-- popular web domains for the locale - item 1, displayed in the popup -->
<string name="popular_domain_1">".net"</string>
<!-- popular web domains for the locale - item 2, displayed in the popup -->
<string name="popular_domain_2">".org"</string>
<!-- popular web domains for the locale - item 3, displayed in the popup -->
<string name="popular_domain_3">".gov"</string>
<!-- popular web domains for the locale - item 4, displayed in the popup -->
<string name="popular_domain_4">".edu"</string>
<!-- Menu item for launching Input method picker -->
<string name="selectInputMethod">Chọn phương thức nhập</string>
<!-- Title for input language selection screen -->
@@ -240,4 +249,5 @@
<string name="subtype_mode_keyboard">bàn phím</string>
<string name="subtype_mode_voice">thoại</string>
<!-- Title for Latin keyboard debug settings activity / dialog -->
<string name="kp2a_nextfields"><![CDATA[>]]></string>
</resources>

View File

@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2008, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title for Latin keyboard -->
<!-- Title for Latin keyboard settings activity / dialog -->
<!-- Title for Latin keyboard input options dialog -->
<!-- Option to provide vibrate/haptic feedback on keypress -->
<!-- Option to play back sound on keypress in soft keyboard -->
<!-- Option to pop up the character with a larger font above soft keyboard -->
<!-- Option to enable using nearby keys when correcting/predicting -->
<!-- Description for hit_correction -->
<!-- Option to enable using nearby keys when correcting/predicting in landscape-->
<!-- Description for hit_correction in landscape -->
<!-- Option to automatically correct word on hitting space -->
<!-- Description for auto_correction -->
<!-- Option to enable text prediction -->
<!-- Category title for text prediction -->
<!-- Description for text prediction -->
<!-- Dialog title for auto complete choices -->
<!-- Option to enable text prediction in landscape -->
<!-- Description for text prediction -->
<!-- Option to enable auto capitalization of sentences -->
<!-- Description for auto cap -->
<!-- Option to enable auto punctuate -->
<!-- Description for auto punctuate -->
<!-- Option to enable quick fixes -->
<!-- Description for quick fixes -->
<!-- Option to enable showing suggestions -->
<!-- Description for show suggestions -->
<!-- Option to enable auto completion -->
<!-- Description for auto completion -->
<!-- Option to show/hide the settings key -->
<!-- Array of the settings key mode values -->
<!-- Option to automatically decide to show/hide the settings key -->
<!-- Option to always show the settings key -->
<!-- Option to always hide the settings key -->
<!-- Array of the settings key modes -->
<!-- Option to enable bigram completion -->
<!-- Description for auto completion -->
<!-- Array of prediction modes -->
<!-- Don't translate -->
<!-- Don't translate -->
<!-- Don't translate -->
<!-- Indicates that a word has been added to the dictionary -->
<!-- Tip to long press on keys -->
<!-- Tip to dismiss keyboard -->
<!-- Tip to press ?123 to access numbers and symbols -->
<!-- Tip to long press on typed word to add to dictionary -->
<!-- Instruction to touch the bubble to continue -->
<!-- Instruction to touch the bubble to start typing -->
<!-- Tutorial tip 1 - The keyboard opens any time you touch a text field -->
<!-- Tutorial tip 2 - Touch and hold a key to view accents (examples) -->
<!-- Tutorial tip 3 - How to switch to number/symbol keyboard -->
<!-- Tutorial tip 4 - How to switch back to alphabet keyboard -->
<!-- Tutorial tip 5 - How to launch keyboard settings -->
<!-- Tutorial tip 6 - Done with the tutorial -->
<!-- Label for soft enter key when it performs GO action. Must be short to fit on key! -->
<!-- Label for soft enter key when it performs NEXT action. Must be short to fit on key! -->
<!-- Label for soft enter key when it performs DONE action. Must be short to fit on key! -->
<!-- Label for soft enter key when it performs SEND action. Must be short to fit on key! -->
<!-- Label for "switch to symbols" key. Must be short to fit on key! -->
<!-- Label for "switch to numeric" key. Must be short to fit on key! -->
<!-- Label for "switch to alphabetic" key. Must be short to fit on key! -->
<!-- Label for ALT modifier key. Must be short to fit on key! -->
<!-- Voice related labels -->
<!-- Title of the warning dialog that shows when a user initiates voice input for
the first time. -->
<!-- Message that gets put at the top of the warning dialog if the user is attempting to use
voice input in a currently unsupported locale. Voice input will work for such a user,
but it will only recognize them in English. -->
<!-- Message of the warning dialog that shows when a user initiates voice input for
the first time, or turns it on in settings. -->
<!-- An additional part of the warning dialog for voice input that only shows when the user
actually initiates voice input, rather than just turning it on in settings. -->
<!-- Message to show when user clicks the swiping hint (which says
"Swipe across keyboard to speak"). Also shown when enabling settings. -->
<!-- Short message to tell the user the system is ready for them to speak. -->
<!-- Short message shown after the user finishes speaking. -->
<!-- Short message shown before the user should speak. -->
<!-- Short message shown when a generic error occurs. -->
<!-- Short message shown for a network error. -->
<!-- Short message shown for a network error where the utterance was really long,
in which case we should suggest that the user speak less. -->
<!-- Short message shown for an audio error. -->
<!-- Short message shown for an error with the voice server. -->
<!-- Short message shown when no speech is heard. -->
<!-- Short message shown when the server couldn't parse any speech. -->
<!-- Short message shown when the user initiates voice and voice
search is not installed. -->
<!-- Short hint shown in candidate view to explain voice input. -->
<!-- Short hint shown in candidate view to explain that user can speak punctuation. -->
<!-- Label on button to stop recognition. Must be short to fit on button. -->
<!-- Label on button when an error occurs -->
<!-- Preferences item for enabling speech input -->
<!-- Array of Voice Input modes -->
<!-- Don't translate -->
<!-- Don't translate -->
<!-- Don't translate -->
<!-- Array of Voice Input modes summary -->
<!-- Press the "enter" key after the user speaks. Option on settings.-->
<!-- Press the "enter" key after the user speaks. Summary of option in settings.-->
<!-- IME Tutorial screen (ROMAN) -->
<!-- appears above image showing the user to click on a TextView to show the IME -->
<!-- appears above the image showing the back button used to close the keyboard -->
<!-- appears above image showing how to use touch and hold -->
<!-- appears above image showing how to access keyboard settings -->
<!-- popular web domains for the locale - most popular, displayed on the keyboard -->
<!-- popular web domains for the locale - item 1, displayed in the popup -->
<!-- popular web domains for the locale - item 2, displayed in the popup -->
<!-- popular web domains for the locale - item 3, displayed in the popup -->
<!-- popular web domains for the locale - item 4, displayed in the popup -->
<!-- Menu item for launching Input method picker -->
<!-- Title for input language selection screen -->
<!-- Title summary for input language selection screen -->
<!-- Add to dictionary hint -->
<!-- Inform the user that a particular language has an available dictionary -->
<!-- Preferences item for enabling to send user statistics to Google -->
<!-- Description for enabling to send user statistics to Google -->
<!-- Preferences item for enabling to correct suggestions by touching words you have typed -->
<!-- The summary for the preferences item for enabling to correct suggestions by touching words you have typed -->
<!-- Description for keyboard theme switcher -->
<!-- Title for Latin keyboard debug settings activity / dialog -->
</resources>

View File

@@ -64,8 +64,6 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
@Override
public boolean onCreate() {
Log.d("KP2A_FC_P", "onCreate");
BaseFileProviderUtils.registerProviderInfo(_ID,
getAuthority());
@@ -222,12 +220,12 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
try
{
checkConnection(uri);
Log.d("KP2A_FC_P", "checking connection for " + uri + " ok.");
if (Utils.doLog()) Log.d("KP2A_FC_P", "checking connection for " + uri + " ok.");
return null;
}
catch (Exception e)
{
Log.d("KP2A_FC_P","Check connection failed with: " + e.toString());
if (Utils.doLog()) Log.d("KP2A_FC_P","Check connection failed with: " + e.toString());
MatrixCursor matrixCursor = new MatrixCursor(BaseFileProviderUtils.CONNECTION_CHECK_CURSOR_COLUMNS);
RowBuilder newRow = matrixCursor.newRow();
@@ -255,7 +253,7 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
}
catch (FileNotFoundException ex)
{
Log.d("KP2A_FC_P","File not found. Ignore.");
if (Utils.doLog()) Log.d("KP2A_FC_P","File not found. Ignore.");
return;
}
@@ -276,8 +274,8 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
MatrixCursor matrixCursor = null;
String lastPathSegment = uri.getLastPathSegment();
Log.d("KP2A_FC_P", "lastPathSegment:" + lastPathSegment);
if (Utils.doLog()) Log.d("KP2A_FC_P", "lastPathSegment:" + lastPathSegment);
if (BaseFile.CMD_CANCEL.equals(lastPathSegment)) {
int taskId = ProviderUtils.getIntQueryParam(uri,
@@ -361,7 +359,7 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
} else if (BaseFile.CMD_CHECK_CONNECTION.equals(lastPathSegment))
{
Log.d("KP2A_FC_P","Check connection...");
if (Utils.doLog()) Log.d("KP2A_FC_P","Check connection...");
return getCheckConnectionCursor(uri);
}
@@ -470,7 +468,7 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
String displayName = getFileEntryCached(dirName).displayName;
newRow.add(displayName);
Log.d(CLASSNAME, "Returning name " + displayName+" for " +dirName);
if (Utils.doLog()) Log.d(CLASSNAME, "Returning name " + displayName+" for " +dirName);
}
}
@@ -690,7 +688,7 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
}
catch (Exception e)
{
Log.d("KP2A_FC_P", "sortFiles() >> "+e);
if (Utils.doLog()) Log.d("KP2A_FC_P", "sortFiles() >> "+e);
throw e;
}
}// sortFiles()
@@ -777,14 +775,14 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
path = removeTrailingSlash(path);
if (path.indexOf("://") == -1)
{
Log.d("KP2A_FC_P", "invalid path: " + path);
if (Utils.doLog()) Log.d("KP2A_FC_P", "invalid path: " + path);
return null;
}
String pathWithoutProtocol = path.substring(path.indexOf("://") + 3);
int lastSlashPos = path.lastIndexOf("/");
if (pathWithoutProtocol.indexOf("/") == -1)
{
Log.d("KP2A_FC_P", "parent of " + path + " is null");
if (Utils.doLog()) Log.d("KP2A_FC_P", "parent of " + path + " is null");
return null;
}
else
@@ -793,7 +791,7 @@ public abstract class Kp2aFileProvider extends BaseFileProvider {
if (params != null) {
parent += params;
}
Log.d("KP2A_FC_P", "parent of " + path +" is " + parent);
if (Utils.doLog()) Log.d("KP2A_FC_P", "parent of " + path +" is " + parent);
return parent;
}
}

View File

@@ -56,15 +56,15 @@
<string name="afc_title_sort_by">Sortieren nach…</string>
<string name="afc_yesterday">Gestern</string>
<plurals name="afc_title_choose_directories">
<item quantity="one">Ordner wählen </item>
<item quantity="other">Verzeichnisse wählen&#8230;</item>
<item quantity="one">Ordner wählen…</item>
<item quantity="other">Verzeichnisse wählen</item>
</plurals>
<plurals name="afc_title_choose_files">
<item quantity="one">Datei wählen …</item>
<item quantity="other">Dateien wählen …</item>
</plurals>
<plurals name="afc_title_choose_files_directories">
<item quantity="one">Datei/Ordner wählen </item>
<item quantity="one">Datei/Ordner wählen…</item>
<item quantity="other">Dateien/Ordner wählen …</item>
</plurals>
</resources>

View File

@@ -56,12 +56,12 @@
<string name="afc_title_sort_by">Sắp xếp theo…</string>
<string name="afc_yesterday">Hôm qua</string>
<plurals name="afc_title_choose_directories">
<item quantity="other">Chọn thư mục&#8230;</item>
<item quantity="other">Chọn thư mục</item>
</plurals>
<plurals name="afc_title_choose_files">
<item quantity="other">Chọn tập tin&#8230;</item>
<item quantity="other">Chọn tệp…</item>
</plurals>
<plurals name="afc_title_choose_files_directories">
<item quantity="other">Chọn tập tin / thư mục&#8230;</item>
<item quantity="other">Chọn tệp/thư mục…</item>
</plurals>
</resources>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2012 Hai Bison
See the file LICENSE at the root directory of this project for copying
permission.
-->
<resources></resources>

View File

@@ -14,9 +14,11 @@ using Android.Runtime;
using Android.Text;
using Android.Text.Method;
using Android.Text.Util;
using Android.Util;
using Android.Views;
using Android.Webkit;
using Android.Widget;
using AndroidX.Core.Content;
using Google.Android.Material.Dialog;
using keepass2android;
@@ -29,7 +31,16 @@ namespace keepass2android
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ctx);
builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title));
List<string> changeLog = new List<string>{
BuildChangelogString(ctx, new List<int>{Resource.Array.ChangeLog_1_11,Resource.Array.ChangeLog_1_11_net}, "1.11"),
BuildChangelogString(ctx, new List<int>{Resource.Array.ChangeLog_1_12
#if !NoNet
,Resource.Array.ChangeLog_1_12_net
#endif
}, "1.12"),
BuildChangelogString(ctx, new List<int>{Resource.Array.ChangeLog_1_11
#if !NoNet
,Resource.Array.ChangeLog_1_11_net
#endif
}, "1.11"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_10, "1.10"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_09e, "1.09e"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_09d, "1.09d"),
@@ -99,32 +110,28 @@ namespace keepass2android
warning = ctx.GetString(Resource.String.PreviewWarning);
}
builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AlertDialog)dlgSender).Dismiss(); });
builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AndroidX.AppCompat.App.AlertDialog)dlgSender).Dismiss(); });
builder.SetCancelable(false);
WebView wv = new WebView(ctx);
wv.SetBackgroundColor(Color.White);
wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, ctx), "text/html", "UTF-8", null);
//builder.SetMessage("");
builder.SetView(wv);
Dialog dialog = builder.Create();
dialog.DismissEvent += (sender, e) =>
dialog.DismissEvent += (sender, e) =>
{
onDismiss();
};
dialog.Show();
/*TextView message = (TextView)dialog.FindViewById(Android.Resource.Id.Message);
message.TextFormatted = Html.FromHtml(ConcatChangeLog(ctx, changeLog.ToArray()));
message.AutoLinkMask=MatchOptions.WebUrls;*/
wv.SetBackgroundColor(Color.Transparent);
wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, dialog.Context), "text/html", "UTF-8", null);
dialog.Show();
}
private static string BuildChangelogString(Context ctx, int changeLogResId, string version)
private static string BuildChangelogString(Context ctx, int changeLogResId, string version)
{
return BuildChangelogString(ctx, new List<int>() { changeLogResId }, version);
@@ -150,32 +157,44 @@ namespace keepass2android
}
private const string HtmlStart = @"<html>
private const string HtmlEnd = @"</body>
</html>";
private static string GetLog(List<string> changeLog, string warning, Context ctx)
{
string secondaryColor = "31628D";
string onSurfaceColor = "171D1E";
if (((int)ctx.Resources.Configuration.UiMode & (int)UiMode.NightMask) == (int)UiMode.NightYes)
{
secondaryColor = "99CBFF";
onSurfaceColor = "E1E4D6";
}
string HtmlStart = @"<html>
<head>
<style type='text/css'>
a { color:#000000 }
a { color:#"+ onSurfaceColor + @" }
div.title {
color:287AA9;
color:"+ secondaryColor+@";
font-size:1.2em;
font-weight:bold;
margin-top:1em;
margin-bottom:0.5em;
text-align:center }
div.subtitle {
color:287AA9;
color:"+ secondaryColor+@";
font-size:0.8em;
margin-bottom:1em;
text-align:center }
div.freetext { color:#000000 }
div.list { color:#000000 }
div.freetext { color:#"+ onSurfaceColor + @" }
div.list { color:#"+ onSurfaceColor + @" }
</style>
</head>
<body>";
private const string HtmlEnd = @"</body>
</html>";
private static string GetLog(List<string> changeLog, string warning, Context ctx)
{
StringBuilder sb = new StringBuilder(HtmlStart);
StringBuilder sb = new StringBuilder(HtmlStart);
if (!string.IsNullOrEmpty(warning))
{
sb.Append(warning);

View File

@@ -53,6 +53,7 @@ using keepass2android.fileselect;
using KeeTrayTOTP.Libraries;
using Boolean = Java.Lang.Boolean;
using Android.Util;
using AndroidX.Core.Content;
using Google.Android.Material.Dialog;
using keepass2android;
@@ -491,9 +492,9 @@ namespace keepass2android
App.Kp2a.LastOpenedEntry = new PwEntryOutput(Entry, App.Kp2a.CurrentDb);
_pluginActionReceiver = new PluginActionReceiver(this);
RegisterReceiver(_pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), (int)ReceiverFlags.Exported);
_pluginFieldReceiver = new PluginFieldReceiver(this);
RegisterReceiver(_pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), (int)ReceiverFlags.Exported);
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
notifyPluginsOnOpenThread.Start();

View File

@@ -37,6 +37,7 @@ using System.Net;
using System.Text;
using Android.Content.Res;
using Android.Database;
using Android.Gms.Common;
using Android.Gms.Tasks;
using Android.Graphics;
using Android.Graphics.Drawables;
@@ -1155,6 +1156,12 @@ namespace keepass2android
dlgView.FindViewById<Button>(Resource.Id.totp_scan).Click += async (object o, EventArgs args) =>
{
if (GoogleApiAvailability.Instance.IsGooglePlayServicesAvailable(this) != ConnectionResult.Success)
{
Toast.MakeText(this, Resource.String.qr_scanning_error_no_google_play_services, ToastLength.Long);
return;
}
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
.SetBarcodeFormats(Barcode.FormatQrCode)
.Build();

View File

@@ -185,48 +185,56 @@ namespace keepass2android
public override View GetView(int position, View convertView, ViewGroup parent)
{
View currView;
if(convertView == null)
{
LayoutInflater li = (LayoutInflater) _act.GetSystemService(LayoutInflaterService);
currView = li.Inflate(Resource.Layout.icon, null);
}
else
{
currView = convertView;
}
TextView tv = (TextView) currView.FindViewById(Resource.Id.icon_text);
ImageView iv = (ImageView) currView.FindViewById(Resource.Id.icon_image);
if (position < (int)PwIcon.Count)
{
tv.Text = "" + position;
var drawable = App.Kp2a.CurrentDb .DrawableFactory.GetIconDrawable(_act, App.Kp2a.CurrentDb.KpDatabase, (KeePassLib.PwIcon) position, null, false);
drawable = new BitmapDrawable(Util.DrawableToBitmap(drawable));
iv.SetImageDrawable(drawable);
//App.Kp2a.GetDb().DrawableFactory.AssignDrawableTo(iv, _act, App.Kp2a.GetDb().KpDatabase, (KeePassLib.PwIcon) position, null, false);
try
{
View currView;
if (convertView == null)
{
LayoutInflater li = (LayoutInflater)_act.GetSystemService(LayoutInflaterService);
currView = li.Inflate(Resource.Layout.icon, null);
}
else
{
currView = convertView;
}
TextView tv = (TextView)currView.FindViewById(Resource.Id.icon_text);
ImageView iv = (ImageView)currView.FindViewById(Resource.Id.icon_image);
if (
PreferenceManager.GetDefaultSharedPreferences(currView.Context)
.GetString("IconSetKey", currView.Context.PackageName) == currView.Context.PackageName)
{
Android.Graphics.PorterDuff.Mode mMode = Android.Graphics.PorterDuff.Mode.SrcAtop;
Color color = new Color(189, 189, 189);
iv.SetColorFilter(color, mMode);
}
}
else
{
int pos = position - (int)PwIcon.Count;
var icon = _db.CustomIcons[pos];
tv.Text = pos.ToString();
iv.SetColorFilter(null);
iv.SetImageBitmap(icon.Image);
}
if (position < (int)PwIcon.Count)
{
tv.Text = "" + position;
var drawable = App.Kp2a.CurrentDb.DrawableFactory.GetIconDrawable(_act, App.Kp2a.CurrentDb.KpDatabase, (KeePassLib.PwIcon)position, null, false);
drawable = new BitmapDrawable(Util.DrawableToBitmap(drawable));
iv.SetImageDrawable(drawable);
//App.Kp2a.GetDb().DrawableFactory.AssignDrawableTo(iv, _act, App.Kp2a.GetDb().KpDatabase, (KeePassLib.PwIcon) position, null, false);
return currView;
if (PreferenceManager.GetDefaultSharedPreferences(currView.Context)
.GetString("IconSetKey", currView.Context.PackageName) == currView.Context.PackageName)
{
Android.Graphics.PorterDuff.Mode mMode = Android.Graphics.PorterDuff.Mode.SrcAtop;
Color color = new Color(189, 189, 189);
iv.SetColorFilter(color, mMode);
}
}
else
{
int pos = position - (int)PwIcon.Count;
var icon = _db.CustomIcons[pos];
tv.Text = pos.ToString();
iv.SetColorFilter(null);
iv.SetImageBitmap(icon.Image);
}
return currView;
}
catch (System.Exception e)
{
Kp2aLog.LogUnexpectedError(e);
throw;
}
}
public bool IsCustomIcon(int position)

View File

@@ -21,6 +21,7 @@ using Android.OS;
using Android.Preferences;
using Android.Runtime;
using Android.Views;
using AndroidX.Core.Content;
using KeePassLib.Serialization;
namespace keepass2android
@@ -69,7 +70,7 @@ namespace keepass2android
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
filter.AddAction(Intent.ActionScreenOff);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
}
protected override void OnDestroy()

View File

@@ -21,6 +21,7 @@ using Android.OS;
using Android.Preferences;
using Android.Runtime;
using Android.Views;
using AndroidX.Core.Content;
using KeePassLib.Serialization;
namespace keepass2android
@@ -55,7 +56,7 @@ namespace keepass2android
filter.AddAction(Intents.DatabaseLocked);
filter.AddAction(Intent.ActionScreenOff);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
}

View File

@@ -18,6 +18,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using Android.Content;
using Android.OS;
using AndroidX.Core.Content;
using KeePassLib.Serialization;
namespace keepass2android
@@ -39,7 +40,7 @@ namespace keepass2android
_intentReceiver = new LockCloseActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
}
protected override void OnResume() {

View File

@@ -47,8 +47,8 @@
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_notify_locked" android:label="KP2A entry search" android:name="keepass2android.keepass2android_debug.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_debug.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
<application
android:icon="@mipmap/ic_launcher_online"
android:roundIcon="@mipmap/ic_launcher_online_round"
android:icon="@mipmap/ic_launcher_debug"
android:roundIcon="@mipmap/ic_launcher_debug_round"
android:networkSecurityConfig="@xml/network_security_config"
>
<meta-data
@@ -243,6 +243,15 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<action android:name="keepass2android.ACTION_START_WITH_TASK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="otpauth"/>
<data android:host="totp"/>
<data android:host="hotp"/>
</intent-filter>
</activity>
<uses-library android:required="false" android:name="com.sec.android.app.multiwindow" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="200"
android:versionName="1.11-r0"
android:versionCode="204"
android:versionName="1.12-r3"
package="keepass2android.keepass2android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
@@ -255,7 +255,14 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<action android:name="keepass2android.ACTION_START_WITH_TASK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
x
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="otpauth"/>
<data android:host="totp"/>
<data android:host="hotp"/>
</intent-filter>
</activity>
<uses-library android:required="false" android:name="com.sec.android.app.multiwindow" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />

View File

@@ -236,6 +236,14 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<action android:name="keepass2android.ACTION_START_WITH_TASK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="otpauth"/>
<data android:host="totp"/>
<data android:host="hotp"/>
</intent-filter>
</activity>
<uses-library android:required="false" android:name="com.sec.android.app.multiwindow" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />

View File

@@ -48,11 +48,6 @@ namespace keepass2android
Finish();
};
var toolbar = FindViewById<AndroidX.AppCompat.Widget.Toolbar>(Resource.Id.mytoolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = AppNames.AppName;
}
protected override void OnResume()

View File

@@ -0,0 +1,24 @@
using Android.Content.PM;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace keepass2android
{
[Activity(Label = AppNames.AppName,
MainLauncher = false,
Theme = "@style/Kp2aTheme_BlueNoActionBar",
Exported = true)]
///For autofill, we sometimes need to pass an intent to an inline presentation which never gets fired. We use this as a dummy activity.
public class NullActivity: Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
Kp2aLog.Log("NullActivity.OnCreate - this is unexpected.");
base.OnCreate(savedInstanceState);
Finish();
}
}
}

View File

@@ -65,6 +65,7 @@ using Enum = System.Enum;
using Exception = System.Exception;
using String = System.String;
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
using AndroidX.Core.Content;
namespace keepass2android
{
@@ -647,7 +648,7 @@ namespace keepass2android
_intentReceiver = new PasswordActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intent.ActionScreenOff);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
//use FlagSecure to make sure the last (revealed) character of the master password is not visible in recent apps

View File

@@ -34,6 +34,7 @@ using keepass2android;
using KeePassLib;
using KeePassLib.Serialization;
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
using AndroidX.Core.Content;
namespace keepass2android
{
@@ -153,7 +154,7 @@ namespace keepass2android
_intentReceiver = new QuickUnlockBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
Util.SetNoPersonalizedLearning(FindViewById<EditText>(Resource.Id.QuickUnlock_password));

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">التعليقات</string>
<string name="AboutText">Keepass2Android هو مدير كلمات سر يتيح القراءة والكتابة على قواعد بيانات KeePass 2.x على نظام الـAndroid.</string>
@@ -121,6 +121,7 @@
<string name="entry_user_name">اسم المستخدم</string>
<string name="entry_extra_strings">حقول النص الإضافية</string>
<string name="entry_binaries">المرفقات</string>
<string name="entry_history"></string>
<string name="error_can_not_handle_uri">Keepass2Android لا يمكنه التعامل مع هذا الرابط.</string>
<string name="error_could_not_create_group">خطأ في إنشاء المجموعة.</string>
<string name="error_could_not_create_parent">تعذر إنشاء المجلد الأصل.</string>
@@ -150,6 +151,7 @@
<string name="hint_keyfile">ملف المفتاح</string>
<string name="hint_length">الطول</string>
<string name="hint_pass">كلمة السر</string>
<string name="hint_keyfile_path"></string>
<string name="hint_login_pass">كلمة السر</string>
<string name="hint_title">الإسم</string>
<string name="hint_url">الرابط</string>
@@ -752,6 +754,5 @@
<string name="AutofillWarning_Intro">أنت على وشك إدراج بيانات اعتماد للنطاق \"%1$s\" في التطبيق \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">إذا كنت تثق في \"%2$s\" بالانتماء إلى \"%1$s\" أو كنت تثق في التطبيق \"%2$s\" لعدم إساءة استخدام بيانات الاعتماد (e. . لأنه تطبيق متصفح موثوق به)، من المفضل المتابعة. إذا لم يكن الأمر كذلك ، يرجى الإلغاء .</string>
<string name="AutofillWarning_trustAsBrowser">قبول دائمًا في \"%1$s\"</string>
<string name="english_ime_settings">إعدادات لوحة مفاتيح Keepass2Android</string>
</resources>
<string name="english_ime_settings">إعدادات لوحة مفاتيح Keepass2Android</string>
</resources>

View File

@@ -1,6 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Əks əlaqə</string>
<string name="CreditsTextSFTP">SFTP dəstəyi, JCraft, Inc. tərəfindən yaradılmış JSch kitabxanası altında BSD lisenziyası ilə həyata keçirilmişdir.</string>
<string name="accept">Qəbul et</string>
<string name="deny">Rədd et</string>
<string name="add_entry">Qeyd əlavə et</string>
@@ -18,6 +19,7 @@
<string name="app_timeout">Tətbiq istifadə vaxtı</string>
<string name="show_kill_app">Bağla düyməsi</string>
<string name="kill_app_label">Tətbiqi bağla</string>
<string name="show_kill_app_summary">Şifrə ekranında tətbiq prosesini öldürmək üçün bir düymə göstərin (paranoid istifadəçilər üçün).</string>
<string name="application">Tətbiq</string>
<string name="application_settings">Tətbiq tənzimləmələri</string>
<string name="ShowGroupnameInSearchResult_title">Qrup adını axtarış nəticələrində göstər</string>
@@ -82,6 +84,5 @@
<string name="AutofillWarning_title">Təhlükəsizlik xəbərdarlığı: Tanınmayan domen/tətbiq bağlantısı</string>
<string name="AutofillWarning_Intro">\"%2$s\" tətbiqinə \"%1$s\" domeni üçün kimlik məlumatlarını daxil edirsiniz.</string>
<string name="AutofillWarning_trustAsBrowser">\"%1$s\" səyyahında həmişə qəbul et</string>
<string name="english_ime_settings">Android klaviatura tənzimləmələri</string>
</resources>
<string name="english_ime_settings">Android klaviatura tənzimləmələri</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Зваротная сувязь</string>
<string name="AboutText">Keepass2Android - кіраўнік пароляў для Android з паўнавартаснай падтрымкай базаў даных KeePass 2.x.</string>
@@ -401,6 +401,14 @@
<string name="ShowSeparateNotifications_summary">Паказваць асобныя апавяшчэнні для капіявання імя карыстальніка і пароля ў буфер абмену і актывацыі клавіятуры.</string>
<string name="AccServiceAutoFill_prefs">Адмысловая служба аўтазапаўнення</string>
<string name="AutoFill_prefs">Служба аўтазапаўнення</string>
<string name="AutoFillTotp_prefs_ShowNotification_summary">Пры аўтазапаўненні запісу з дапамогай TOTP паказваць апавяшчэнне з кнопкай \"Скапіяваць TOTP\".</string>
<string name="AutoFillTotp_prefs_ShowNotification_title">Паказваць апавяшчэнне пра запіс</string>
<string name="AutoFillTotp_prefs_title">Аўтазапаўненне запісаў TOTP</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_title">Скапіяваць TOTP у буфер абмену</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_summary">Пры аўтазапаўненні запісу з дапамогай TOTP капіяваць TOTP у буфер абмену</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_summary">Пры аўтазапаўненні запісу з дапамогай TOTP актываваць убудаваную клавіятуру. Клавіятура мае кнопку TOTP.</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_title">Актываваць убудаваную клавіятуру</string>
<string name="TotpCopiedToClipboard">TOTP скапіяваны ў буфер абмену</string>
<string name="ShowKp2aKeyboardNotification_title">Апавяшчэнні клавіятуры KP2A </string>
<string name="ShowKp2aKeyboardNotification_summary">Зрабіць увесь запіс даступным праз клавіятуру KP2A (рэкамендуецца).</string>
<string name="OpenKp2aKeyboardAutomatically_title">Пераключыць клавіятуру</string>
@@ -514,7 +522,17 @@
<string name="private_key_info">Каб захаваць, увядзіце назву ключа і змесціва</string>
<string name="private_key_delete">Выдаліць прыватны ключ: %1$s</string>
<string name="private_key_delete_failed">НЕ ЎДАЛОСЯ выдаліць прыватны ключ: %1$s</string>
<string name="save_key">Захаваць прыватны ключ</string>
<string name="delete_key">Выдаліць прыватны ключ</string>
<string name="private_key_select">Абраць прыватны ключ</string>
<string name="private_key_create_new">[Дадаць новы...]</string>
<string name="hint_sftp_key_passphrase">Падпольная фраза ключа (неабавязкова)</string>
<string name="sftp_kex_title">Алгарытм(ы) абмену ключамі (KEX) (неабавязкова)</string>
<string name="hint_sftp_kex">Падзеленыя коскамі значэнні</string>
<string name="sftp_shk_title">Алгарытм(ы) ключа хоста сервера (неабавязкова)</string>
<string name="hint_sftp_shk">Падзеленыя коскамі значэнні</string>
<string name="enter_ftp_login_title">Увядзіце даныя для ўваходу на сервер FTP:</string>
<string name="enter_mega_login_title">Увядзіце даныя для ўваходу ў свой акаўнт MEGA:</string>
<string name="select_storage_type">Абярыце тып сховішча:</string>
<string name="filestoragename_file">Лакальны файл</string>
<string name="filestoragename_androidget">Узяць з іншай праграмы</string>
@@ -528,13 +546,19 @@
<string name="filestoragename_dropboxKP2A">Dropbox (каталог KP2A)</string>
<string name="filestoragehelp_dropboxKP2A">Калі вы хочаце даць KP2A доступ да ўсяго сховішча Dropbox, абярыце гэты параметр. Праграма будзе запытваць доступ толькі да каталога Apps/Keepass2Android. Гэта асабліва пасуе пры стварэнні новай базы даных. Калі ў вас ужо ёсць база даных, абярыце гэты параметр, каб стварыць каталог, перамясціце ў яго файл базы даных, а пасля зноў абярыце гэты параметр, каб адкрыць файл.</string>
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_gdriveKP2A">Google Drive (файлы KP2A)</string>
<string name="filestoragehelp_gdriveKP2A">Калі вы не хочаце даваць KP2A поўны доступ да Google Drive, вы можаце абраць гэты варыянт. Звярніце ўвагу на тое, што спачатку вам трэба стварыць файл базы даных, бо праграма не бачыць наяўныя файлы. Таксама вы можаце абраць гэты параметр на экране \"Стварыць базу даных\" або, калі вы ўжо адкрылі базу даных, вы можаце экспартаваць базу даных, абраўшы гэты параметр.</string>
<string name="filestoragename_pcloud">PCloud (каталог KP2A)</string>
<string name="filestoragehelp_pcloud">Гэты тып сховішча запытвае доступ толькі да каталога pCloud \"Праграмы/Keepass2Android\". Калі вы хочаце выкарыстоўваць наяўную базу даных з акаўнта pCloud, то пераканайцеся, што файл знаходзіцца ў каталозе pCloud.</string>
<string name="filestoragename_pcloudall">PCloud (поўны доступ)</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_onedrive2">OneDrive</string>
<string name="filestoragename_onedrive2_full">Усе файлы і агульныя файлы</string>
<string name="filestoragename_onedrive2_myfiles">Мае файлы</string>
<string name="filestoragename_onedrive2_appfolder">Каталог праграмы Keepass2Android</string>
<string name="filestoragename_sftp">SFTP (перадача файлаў па SSH)</string>
<string name="filestoragename_mega">MEGA</string>
<string name="filestoragehelp_mega">Звярніце ўвагу: каб працаваць належным чынам, Keepass2Android павінен спампаваць спіс усіх файлаў у вашым акаўнце Mega. Па гэтай прычыне апрацоўванне акаўнтаў з вялікай колькасцю файлаў можа быць павольным.</string>
<string name="filestoragename_content">Сістэмны сродак для выбару файлаў</string>
<string name="filestorage_setup_title">Ініцыялізацыя доступу да файла</string>
<string name="database_location">Размяшчэнне базы даных</string>
@@ -572,12 +596,14 @@
<string name="CouldntLoadChalAuxFile_Hint">Усталюйце ўбудову KeeChallenge для KeePass 2.x (PC), каб наладзіць базу даных для працы з запытамі-адказамі!</string>
<string name="ErrorUpdatingChalAuxFile">Не атрымалася абнавіць дапаможны файл OTP (аднаразовых пароляў)!</string>
<string name="TrayTotp_SeedField_title">Назва поля пачатковага значэння TOTP</string>
<string name="TOTP">TOTP</string>
<string name="TrayTotp_SeedField_summary">Калі вы выкарыстоўваеце ўбудову Keepass 2 \"TrayTotp\" са змененымі наладамі, увядзіце назву поля для поля пачатковага значэння ў адпаведнасці з наладамі PC.</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="FtpDebug_title">Журнал адладжвання FTP/SFTP</string>
<string name="DebugLog_summary">Запісваць выходныя даныя праграмы ў лакальны файл журнала</string>
<string name="DebugLog_send">Адправіць журнал адладкі…</string>
<string name="loading">Загрузка…</string>
@@ -663,6 +689,8 @@
<string name="child_db_Enabled_title">Адкрываць аўтаматычна</string>
<string name="database_file_heading">Файл базы даных</string>
<string name="if_device_text">Уключыць для %1$s</string>
<string name="restore_history">Аднавіць гэтую версію</string>
<string name="remove_history">Выдаліць гэтую версію</string>
<string name="DbUnlockedChannel_name">База даных разблакаваная</string>
<string name="DbUnlockedChannel_desc">Апавяшчэнне пра разблакаванне базы даных</string>
<string name="DbQuicklockedChannel_name">Хуткае разблакаванне</string>
@@ -774,8 +802,8 @@
</string-array>
<string-array name="sftp_auth_modes">
<item>Пароль</item>
<item>KP2A Private/Public key</item>
<item>Custom Private key</item>
<item>Прыватны або публічны ключ KP2A</item>
<item>Адвольны прыватны ключ</item>
</string-array>
<string-array name="AcceptAllServerCertificates_options">
<item>Не зважаць на памылкі праверкі сертыфіката</item>
@@ -793,6 +821,11 @@
<string name="autofill_enable_for">Уключыць аўтазапаўненне для %1$s</string>
<string name="invalid_link_association">Не атрымалася звязаць дамен %1$s з праграмай %2$s</string>
<string name="enable_fingerprint_hint">Праграма Keepass2Android выявіла абсталяванне для распазнавання біяметрычных даных. Хочаце ўключыць для гэтай базы даных разблакаванне з дапамогай біяметрычных даных?</string>
<string name="post_notifications_dialog_title">Дазволіць апавяшчэнні</string>
<string name="post_notifications_dialog_message">Keepass2Android можа паказваць апавяшчэнні з кнопкамі для капіявання пароляў і TOTP у буфер абмену або для вываду ўбудаванай клавіятуры. Гэта карысна для перадачы значэнняў у іншыя праграмы без паўторнага пераключэння на Keepass2Android. Хочаце ўключыць такія апавяшчэнні?</string>
<string name="post_notifications_dialog_allow">Дазволіць апавяшчэнні</string>
<string name="post_notifications_dialog_disable">Адключыць гэтую функцыю</string>
<string name="post_notifications_dialog_notnow">Пазней</string>
<string name="understand">Зразумела</string>
<string name="dont_show_again">Больш не паказваць</string>
<string name="masterkey_infotext_head">Вы памятаеце свой галоўны пароль?</string>
@@ -811,6 +844,5 @@
<string name="AutofillWarning_Intro">Вы хочаце ўставіць уліковыя даныя для дамена \"%1$s\" у праграму \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Калі ёсць упэўненасць, што \"%2$s\" належыць \"%1$s\" або вы давяраеце \"%2$s\", не злоўжывайце ўліковымі данымі (напрыклад, гэта давераная праграма браўзера). Калі ўсё добра, можна працягнуць. Калі не, скасуйце.</string>
<string name="AutofillWarning_trustAsBrowser">Заўсёды ўхваляць у \"%1$s\"</string>
<string name="english_ime_settings">Налады клавіятуры Android</string>
</resources>
<string name="english_ime_settings">Налады клавіятуры Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Отзив</string>
<string name="AboutText">Keepass2Android е мениджър за пароли който осигурява достъп четене/записване до KeePass 2.x база данни на Android.</string>
@@ -463,6 +463,5 @@
<item>KP2A Private/Public key</item>
<item>Custom Private key</item>
</string-array>
<string name="english_ime_settings">Настройки на клавиатурата на Keepass2Android</string>
</resources>
<string name="english_ime_settings">Настройки на клавиатурата на Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Suggeriments</string>
<string name="AboutText">Keepass2Android és una implementació per Android de KeePass password manager.</string>
@@ -151,6 +151,7 @@
<string name="hint_keyfile">arxiu clau</string>
<string name="hint_length">longitud</string>
<string name="hint_pass">contrasenya</string>
<string name="hint_keyfile_path">Ubicació de Clau privada SSH</string>
<string name="hint_login_pass">Contrasenya</string>
<string name="hint_title">nom</string>
<string name="hint_url">URL</string>
@@ -171,6 +172,10 @@
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Emmascara contrasenya</string>
<string name="maskpass_summary">Amaga les contrasenyes per defecte</string>
<string name="masktotp_title">Màscara de camp TOTP</string>
<string name="masktotp_summary">Oculta el camp TOTP, per defecte </string>
<string name="NoAutofillDisabling_title">Sense opció per deshabilitar la funció d\'autoomplir</string>
<string name="NoAutofillDisabling_summary">Si s\'activa, l\'aplicació no mostrarà l\'opció per deshabilitar autoomplir d\'algunes entrades específiques.</string>
<string name="menu_about">Sobre</string>
<string name="menu_change_key">Canvia Clau Mestra</string>
<string name="menu_copy_pass">Copia contrasenya</string>
@@ -231,6 +236,7 @@
<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="export_keyfile_successful">Fitxer contrasenya exportat amb èxit!</string>
<string name="space">Espai</string>
<string name="search_label">Cerca</string>
<string name="show_password">Mostra contrasenya</string>
@@ -240,16 +246,24 @@
<string name="sort_moddate">Ordenar per data modificació</string>
<string name="sort_default">Mantenir l\'ordre per defecte</string>
<string name="special">Especial</string>
<string name="special_extended">Afegit especial.</string>
<string name="at_least_one_from_each_group">Almenys un de cada grup</string>
<string name="exclude_lookalike">Exclou lletres paregudes</string>
<string name="password_generation_profile">Perfil</string>
<string name="save_password_generation_profile_text">Introdueix el nom del perfil a desar. Introdueix un nom existent per reemplaçar-ho.</string>
<string name="hint_wordcount">Comptador de paraules de la contrasenya</string>
<string name="hint_wordseparator">Separador de paraules</string>
<string-array name="PasswordGeneratorModes">
<item>Contrasenya</item>
<item>Passphrase</item>
<item>Passphrase + Password</item>
<item>Contrasenya</item>
<item>Frase de contrasenya + Contrasenya</item>
</string-array>
<string-array name="PasswordGeneratorCaseModes">
<item>minúscules</item>
<item>MAJÚSCULES</item>
<item>First Character Uppercase</item>
<item>Primer caràcter en majúscules</item>
</string-array>
<string name="custom_settings">Configuració personalitzada</string>
<string name="search_hint">Trobar el que</string>
<string name="search_results">Resultats de cerca</string>
<string name="search_in">Cerca a</string>
@@ -267,18 +281,23 @@
<string name="author">Keepass2Android és desenvolupat per Philipp Crocoll.</string>
<string name="further_authors">Gràcies a les aportacions de codi de %1$s.</string>
<string name="designers">Gràcies a les aportacions de disseny icona i disseny per %1$s.</string>
<string name="supporters">Gràcies al suport financer de %1$s.</string>
<string name="credit_plugin1">El Plugin de xifratge Twofish per Keepass va ser desenvolupat per Scott Greenberg i està inclòs en KP2A.</string>
<string name="credit_android_filechooser">androide-filechooser va ser desenvolupat per Hai bisó</string>
<string name="credit_keyboard">El teclat de l\'KP2A es basa en el teclat de Gingerbread del projecte de font oberta Android i utilitza el codi del Gesto de Conectors del teclat Hacker per Klaus Weidner.</string>
<string name="please_note">Tingueu en compte</string>
<string name="contributors">Contribuïdors</string>
<string name="regular_expression">Expressió regular</string>
<string name="AlwaysMergeOnConflict_title">Sempre mescla en cas de conflicte</string>
<string name="AlwaysMergeOnConflict_summary">Quan Keepass2Android detecti que el fitxer remot ha sigut modificat, mescla els canvis locals amb els remots.</string>
<string name="TanExpiresOnUse_title">TAN expira en ús</string>
<string name="TanExpiresOnUse_summary">Marca entrades TAN caducades quan siguin utilitzades</string>
<string name="ShowUsernameInList_title">Mostra nom d\'usuari en llista</string>
<string name="ShowUsernameInList_summary">Mostrar noms d\'usuari sota títols d\'entrada. Útil per a comptes múltiples o TANs.</string>
<string name="RememberRecentFiles_title">Recordeu les bases de dades</string>
<string name="RememberRecentFiles_summary">Recordeu les bases de dades recentment obertes i mostrar-les en la pantalla de d\'obrir base de dades.</string>
<string name="InlineSuggestions_title">Integra amb el teclat</string>
<string name="requires_android11">Requereix Android 11 o superior</string>
<string name="kp2a_findUrl">Trobar contrasenya</string>
<string name="excludeExpiredEntries">Excloure les entrades caducats</string>
<string name="search_options">Opcions</string>
@@ -324,6 +343,11 @@
<string name="protection">Camp protegit</string>
<string name="add_binary">Afegir el fitxer adjunt...</string>
<string name="add_extra_string">Afegir la cadena addicional</string>
<string name="configure_totp">Configura TOTP</string>
<string name="totp_secret_key">Clau secreta</string>
<string name="totp_encoding_custom">Configuració personalitzada del testimoni</string>
<string name="totp_length">Longitud del codi</string>
<string name="totp_scan">Escaneja un codi QR</string>
<string name="delete_extra_string">Suprimir la corda addicional</string>
<string name="database_loaded_quickunlock_enabled">%1$s: bloquejat. DesbloqueigRàpid activat.</string>
<string name="database_loaded_unlocked">%1$s: desbloquejat.</string>
@@ -382,6 +406,7 @@
<string name="ShowUnlockedNotification_summary">Mostra una icona de notificació mentre la base de dades està desbloquejada.</string>
<string name="IconVisibilityInfo_Android8_text">Android 8 ha introduït un nou comportament de les notificacions. Si voleu amagar la icona de les notificacions de Keepass2Android, si us plau, s\'ha de fer a través de la configuració del sistema. Estableix la importància de la categoria de les notificacions al Mínim.</string>
<string name="IconVisibilityInfo_Android8_btnSettings">Obrir la configuració</string>
<string name="PostNotificationsPermissionInfo_text">Keepass2Android pot mostrar una notificació mentre la teva base de dades estigui desbloquejada. Perquè açò funcioni, dona permís.</string>
<string name="DontCare">No m\'importa</string>
<string name="DocumentAccessRevoked">L\'arxiu ja no és accessible a Keepass2Android. O ha sigut eliminat o els permisos d\'accés han estat revocats. Si us plau utilitzeu re-obre l\'arxiu, per exemple, utilitzant el canvi de base de dades.</string>
<string name="PreloadDatabaseEnabled_title">Pre-carregar el fitxer de base de dades</string>
@@ -467,6 +492,12 @@
<string name="enter_sftp_login_title">Introduir dades de connexió SFTP:</string>
<string name="sftp_auth_mode">Mode d\'autenticació</string>
<string name="send_public_key">Enviar clau pública...</string>
<string name="save_key">Desa la clau privada</string>
<string name="delete_key">Elimina la clau privada</string>
<string name="private_key_select">Seleccioneu la clau privada</string>
<string name="private_key_create_new">[Afegeix nova...]</string>
<string name="hint_sftp_kex">Noms/Especificacions separats per comes</string>
<string name="hint_sftp_shk">Noms/Especificacions separats per comes</string>
<string name="enter_ftp_login_title">Introduir dades de connexió FTP:</string>
<string name="select_storage_type">Seleccioneu el tipus d\'emmagatzematge:</string>
<string name="filestoragename_file">Fitxer local</string>
@@ -481,12 +512,16 @@
<string name="filestoragename_dropboxKP2A">Dropbox (carpeta de KP2A)</string>
<string name="filestoragehelp_dropboxKP2A">Si no voleu donar accés KP2A al seu Dropbox complet, heu de seleccionar aquesta opció. Es sol·licitarà només l\'accés a la carpeta Apps/Keepass2Android. Això és especialment adequat quan es crea una nova base de dades. Si ja teniu una base de dades, feu clic a aquesta opció per crear la carpeta, a continuació, posar el seu arxiu dins la carpeta (des del seu PC) i llavors seleccioni aquesta opció de nou per obrir l\'arxiu.</string>
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_gdriveKP2A">Google Drive (Fitxers KP2A)</string>
<string name="filestoragename_pcloud">PCloud (Carpeta KP2A)</string>
<string name="filestoragename_pcloudall">PCloud (Accés complet)</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_onedrive2">OneDrive</string>
<string name="filestoragename_onedrive2_full">Tots els fitxers i fitxers compartits</string>
<string name="filestoragename_onedrive2_myfiles">Els meus fitxers</string>
<string name="filestoragename_onedrive2_appfolder">Carpeta de l\'aplicació Keepass2Android</string>
<string name="filestoragename_sftp">SFTP (SSH Transferència de fitxer)</string>
<string name="filestoragename_mega">MEGA</string>
<string name="filestoragename_content">Selector d\'arxiu de sistema</string>
<string name="filestorage_setup_title">Inicialització d\'accés a arxiu</string>
<string name="database_location">Localització de la base de dades</string>
@@ -720,6 +755,5 @@
<string name="switch_ime_text">Si us plau, activa el teclat Keepass2Android.</string>
<string name="switch_ime_reopen">Reintenta</string>
<string name="AutofillWarning_trustAsBrowser">Acceptar sempre en \"%1$s\"</string>
<string name="english_ime_settings">Configuració del teclat d\'Keepass2Android</string>
</resources>
<string name="english_ime_settings">Configuració del teclat d\'Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Zpětná vazba</string>
<string name="AboutText">Keepass2Android je správce hesel pro práci se soubory KeePass 2.x. na platformě Android.</string>
@@ -717,6 +717,19 @@
<string name="EntryChannel_desc">Upozornění pro usnadnění přístupu k momentálně zvolené položce.</string>
<string name="CloseDbAfterFailedAttempts">Zavřít databázi po třech neúspěšných pokusech o odemknutí.</string>
<string name="WarnFingerprintInvalidated">Varování! Biometrické ověření může být zneplatněno Androidem, např. po přidání nového otisku prstu do nastavení zařízení. Ujistěte se, že vždy víte, jak odemknout pomocí hlavního hesla!</string>
<string-array name="ChangeLog_1_12">
<item>Aktualizováno z Xamarin Android na .net 8</item>
<item>Aktualizováno na Target SDK 34</item>
<item>Aktualizováno na uživatelské rozhraní Material 3</item>
<item>Vylepšení automatického vyplňování pro práci s aplikacemi Compose</item>
<item>Oprava přiřazování názvů hostitelů v automatickém vyplňování a vyhledávání</item>
</string-array>
<string-array name="ChangeLog_1_12_net">
<item>Aktualizováno OneDrive SDK na verzi 5.68</item>
<item>Aktualizováno Dropbox SDK na verzi 7.0.0</item>
<item>Aktualizován Gradle, NewtonsoftJson, FluentFTP, MegaApiClient a okhttp</item>
<item>Oprava chyby ve výběru souborů WebDav</item>
</string-array>
<string-array name="ChangeLog_1_11">
<item>Přidána plovoucí akční tlačítka pro vyhledávání a přehled TOTP (pokud jsou přítomny položky TOTP).</item>
<item>Vylepšeno zobrazení polí TOTP přidáním indikátoru časového limitu a jeho výraznějším zobrazením.</item>
@@ -1150,6 +1163,7 @@ První veřejné vydání
<string name="AutofillWarning_Intro">Chystáte se vložit přihlašovací údaje pro doménu \"%1$s\" do aplikace \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Pokud věříte že \"%2$s\" patří k \"%1$s\", nebo důvěřujete \"%2$s\" že nezneužije přihlašovací údaje (např. pokud se jedná o důvěryhodný prohlížeč), můžete pokračovat. Pokud tomu tak není, zrušte prosím tuto akci.</string>
<string name="AutofillWarning_trustAsBrowser">Přijmout vždy v \"%1$s\"</string>
<string name="english_ime_settings">Nastavení klávesnice Keepass2Android</string>
</resources>
<string name="kp2a_switch_on_sendgodone">Přepnout zpět po dokončení</string>
<string name="kp2a_switch_on_sendgodone_summary">Přepnout zpět při stisknutí tlačítka odeslat/pokračovat/ukončit</string>
<string name="english_ime_settings">Nastavení klávesnice Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Tilbagemelding</string>
<string name="AboutText">Keepass2Android er en adgangskodehåndterings-app, der giver læse-/skriveadgang til KeePass 2.x-databaser på Android.</string>
@@ -818,6 +818,5 @@
<string name="AutofillWarning_Intro">Du er ved at indsætte legitimationsoplysninger for domæne \"%1$s\" i appen \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Hvis du stoler på at \"%2$s\" tilhører \"%1$s\", eller du stoler på at app\'en \"%2$s\" ikke misbruger legitimationsoplysningerne (f.eks. fordi det er en betroet browser app), er det ok at fortsætte. Ellers bedes du annullere.</string>
<string name="AutofillWarning_trustAsBrowser">Accepter altid i \"%1$s\"</string>
<string name="english_ime_settings">Indstillinger for Keepass2Android-tastatur</string>
</resources>
<string name="english_ime_settings">Indstillinger for Keepass2Android-tastatur</string>
</resources>

View File

@@ -1,10 +1,10 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Feedback</string>
<string name="AboutText">Keepass2Android ist ein Passwortmanager mit Lese- und Schreib-Zugriff auf KeePass 2.x Datenbanken.</string>
<string name="AboutText">Keepass2Android ist ein Passwortmanager, der KeePass 2.x-Datenbanken verwalten kann.</string>
<string name="CreditsText">Die Benutzeroberfläche basiert auf einem Port von Keepassdroid (entwickelt von Brian Pellin) nach Mono for Android. Der Code für die Datenbank-Operationen nutzt eine angepasste Version einer Bibliothek aus KeePass (entwickelt von Dominik Reichl).
Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die Google durchgeführt und zur Verfügung gestellt hat; er wird nach den Bedingungen der Creative Commons 3.0 Attribution License genutzt.</string>
<string name="CreditsTextSFTP">SFTP-Unterstützung ist implementiert unter Nutzung der JSch-Bibliothek (BSD-Lizenz), erstellt durch JCraft, Inc.</string>
<string name="CreditsTextSFTP">SFTP-Unterstützung ist implementiert unter Verwendung der JSch-Bibliothekvmit BSD-Lizenz der Fa. JCraft Inc.</string>
<string name="CreditsIcons">Das Hammer-Icon wurde von John Caserta (Noun Project) erstellt. Das Pinguin-Icon wurde von Adriano Emerick (Noun Project) erstellt. Das Feder-Icon wurde von Jon Testa (Noun Project) erstellt. Das Apfel-Icon wurde von Ava Rowell (Noun Project) erstellt. Das Bild-Icon stammt von https://icons8.com/icon/5570/Picture.</string>
<string name="accept">Akzeptieren</string>
<string name="deny">Verweigern</string>
@@ -28,7 +28,7 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="application">Anwendung</string>
<string name="application_settings">Anwendungseinstellungen</string>
<string name="ShowGroupnameInSearchResult_title">Gruppennamen im Suchergebnis anzeigen</string>
<string name="ShowGroupnameInSearchResult_resume">Gruppennamen unter den Eintragstiteln im Suchergebnis anzeigen. Nützlich, wenn es mehrere Einträge mit dem selben Namen gibt.</string>
<string name="ShowGroupnameInSearchResult_resume">Gruppennamen unter den Eintragstiteln im Suchergebnis anzeigen. Nützlich, wenn es mehrere Einträge mit demselben Namen gibt.</string>
<string name="NavigationToGroupCompleted_message">Angezeigte Gruppe ist jetzt: %1$s</string>
<string name="AutofillDisabledQueriesPreference_title">Deaktivierte AutoFill-Ziele</string>
<string name="AutofillDisabledQueriesPreference_summary">Zeigt eine Liste von Apps und Webseiten, für die AutoFill deaktiviert ist.</string>
@@ -123,7 +123,7 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="entry_extra_strings">Zusätzliche Felder</string>
<string name="entry_binaries">Datei-Anhänge</string>
<string name="entry_history">Vorherige Versionen</string>
<string name="error_can_not_handle_uri">Keepass2Android kann diese Adresse nicht verarbeiten.</string>
<string name="error_can_not_handle_uri">Keepass2Android kann diese URI nicht verarbeiten.</string>
<string name="error_could_not_create_group">Fehler beim Erstellen der Gruppe.</string>
<string name="error_could_not_create_parent">Verzeichnis konnte nicht erstellt werden.</string>
<string name="error_database_exists">Diese Datei existiert bereits.</string>
@@ -295,7 +295,7 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="TanExpiresOnUse_title">TAN verfällt bei Verwendung</string>
<string name="TanExpiresOnUse_summary">TAN-Einträge als abgelaufen markieren, wenn sie verwendet werden</string>
<string name="ShowUsernameInList_title">Benutzernamen in Liste anzeigen</string>
<string name="ShowUsernameInList_summary">Zeige Benutzernamen unter den Titeln der Einträge. Hilfreich bei mehreren Accounts für einen Dienst oder bei TANs.</string>
<string name="ShowUsernameInList_summary">Benutzernamen unter den Eintragstiteln anzeigen. Nützlich für mehrere Konten bei einem Dienst oder für TANs.</string>
<string name="RememberRecentFiles_title">Datenbanken merken</string>
<string name="RememberRecentFiles_summary">Dateinamen der bisher geöffneten Datenbanken speichern und im Bildschirm zum Öffnen der Datenbank anzeigen.</string>
<string name="NoDalVerification_title">Keine Digital-Asset-Link-Verifikation</string>
@@ -1134,8 +1134,8 @@ Erstes öffentliches Release</string>
<string name="backup_infotext_head">Gibt es eine Sicherung der Datenbank?</string>
<string name="backup_infotext_main">Keepass2Android speichert die Passwörter in einer Datei an einem frei wählbarem Speicherort.Ist sichergestellt, dass die Datei auch dann noch verfügbar ist, wenn das Telefon verloren geht oder gestohlen wird, oder wenn die Datei zerstört oder gelöscht wird? Bitte sicherstellen, dass immer eine aktuelle Kopie an einem sichern Ort aufbewahrt wird!</string>
<string name="backup_infotext_note">Um jetzt eine Sicherung zu erstellen, nach %1$s &gt; %2$s &gt; %3$s gehen.</string>
<string name="emergency_infotext_head">Ist man auf Notfälle vorbereitet?</string>
<string name="emergency_infotext_main">Wurde schon einmal darüber nachgedacht, was passiert, wenn man keinen Zugriff mehr zu seiner Passwortdatenbank hat? Was ist, wenn man einen Unfall hat? Es ist eine vernünftige Maßnahme, den Hauptschlüssel für Notfälle an eine vertrauenswürdige Person weiterzugeben. Andernfalls hat niemand Zugang zu den Passwörtern.</string>
<string name="emergency_infotext_head">Hast du für Notfälle vorgesorgt?</string>
<string name="emergency_infotext_main">Hast du je darüber nachgedacht, was passiert, wenn du nicht mehr auf deine Passwort-Datenbank zugreifen kannst? Was, wenn du einen Unfall hast? Ein bewährtes Verfahren ist, einer vertrauenswürdigen Person dein Masterpasswort für Notfälle mitzuteilen. Ansonsten wird niemand auf deine Passwörter Zugriff haben.</string>
<string name="no_secure_display">Der aktuell gültige Bildschirm ist nicht als sicher eingestuft. Das bedeutet, dass Bildschirmfotos von anderen Anwendungen erstellt werden könnten. Keepass2Android ist so konfiguriert, dass sensible Informationen nur auf sicheren Bildschirmen angezeigt werden. Bitte zu einem sicheren Bildschirm wechseln (z. B. durch Abklemmen eines HDMI-Monitors) oder die App-Einstellungen ändern.</string>
<string name="disable_secure_screen_check">Diese Nachricht deaktivieren</string>
<string name="switch_ime_text">Bitte die Keepass2Android-Tastatur aktivieren.</string>
@@ -1144,6 +1144,7 @@ Erstes öffentliches Release</string>
<string name="AutofillWarning_Intro">Hiermit werden Anmeldeinformationen für die Domäne „%1$s“ in die Anwendung „%2$s“ eingefügt.</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Wenn darauf vertraut wird, dass „%2$s“ zu „%1$s“ gehört, oder wenn darauf vertraut wird, dass die App „%2$s“ die Anmeldeinformationen nicht missbraucht (z. B. weil es sich um eine vertrauenswürdige Browser-App handelt), kann fortgefahren werden. Falls nicht, bitte abbrechen.</string>
<string name="AutofillWarning_trustAsBrowser">Für „%1$s“ immer akzeptieren</string>
<string name="english_ime_settings">Keepass2Android-Tastatureinstellungen</string>
</resources>
<string name="kp2a_switch_on_sendgodone">Tastatur zurückwechseln wenn fertig</string>
<string name="kp2a_switch_on_sendgodone_summary">Beim Drücken von Senden/Los/Fertig zurückschalten</string>
<string name="english_ime_settings">Android-Tastatureinstellungen</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Σχόλια</string>
<string name="AboutText">Το KP2A είναι ένας διαχειριστής συνθηματικών, που παρέχει την δυνατότητα ανάγνωσης/εγγραφής σε βάσεις δεδομένων του KeePass 2.x στο Android.</string>
@@ -865,6 +865,5 @@
<string name="AutofillWarning_Intro">Πρόκειται να εισάγετε διαπιστευτήρια για τον τομέα \"%1$s\" στην εφαρμογή \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Εάν εμπιστεύεστε ότι το \"%2$s\" ανήκει στο \"%1$s\" ή εμπιστεύεστε ότι η εφαρμογή \"%2$s\" δεν καταχράται τα διαπιστευτήρια (πχ. επειδή είναι μια αξιόπιστη εφαρμογή περιήγησης), είναι εντάξει να συνεχίσετε. Αν όχι, ακυρώστε.</string>
<string name="AutofillWarning_trustAsBrowser">Αποδοχή πάντα στο \"%1$s\"</string>
<string name="english_ime_settings">Ρυθμίσεις πληκτρολογίου Android</string>
</resources>
<string name="english_ime_settings">Ρυθμίσεις πληκτρολογίου Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Sugerencias</string>
<string name="AboutText">Keepass2Android es una implementación completa para Android del gestor de contraseñas KeePass 2.x.</string>
@@ -401,6 +401,14 @@
<string name="ShowSeparateNotifications_summary">Mostrar notificaciones por separado para copiar el nombre del usuario y palabra clave al portapapeles y para activar el teclado.</string>
<string name="AccServiceAutoFill_prefs">Servicio de accesibilidad AutoFill</string>
<string name="AutoFill_prefs">Servicio de autocompletado</string>
<string name="AutoFillTotp_prefs_ShowNotification_summary">Al completar automáticamente una entrada con TOTP, muestra la notificación de entrada con un botón \"Copiar TOTP\"</string>
<string name="AutoFillTotp_prefs_ShowNotification_title">Mostrar notificación de entrada</string>
<string name="AutoFillTotp_prefs_title">Autocompletar para entradas TOTP</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_title">Copiar TOTP en el portapapeles</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_summary">Al autorrellenar una entrada con TOTP, copia el TOTP al portapapeles</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_summary">Al autorellenar una entrada con TOTP, activa el teclado incorporado. El teclado tiene un botón TOTP.</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_title">Activar el teclado incorporado</string>
<string name="TotpCopiedToClipboard">Se ha copiado el TOTP en el portapapeles</string>
<string name="ShowKp2aKeyboardNotification_title">Notificación de teclado KP2A</string>
<string name="ShowKp2aKeyboardNotification_summary">Hacer toda la entrada accesible a través del teclado de KP2A (recomendado).</string>
<string name="OpenKp2aKeyboardAutomatically_title">Cambiar Teclado</string>
@@ -588,6 +596,7 @@
<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>
<string name="ErrorUpdatingChalAuxFile">¡Error actualizando el archivo OTP auxiliar!</string>
<string name="TrayTotp_SeedField_title">Nombre del campo TOTP seed</string>
<string name="TOTP">TOTP</string>
<string name="TrayTotp_SeedField_summary">Si está utilizando el plugin \"TrayTotp\" de Keepass2 con configuración no-predeterminada, escriba el nombre del campo del campo \'seed\' aquí según la configuración en el ordenador de escritorio.</string>
<string name="TrayTotp_SettingsField_title">Nombre del campo \'TOTP Ajustes\'</string>
<string name="TrayTotp_SettingsField_summary">Introduzca el nombre del campo del campo de configuración para TrayTotp aquí.</string>
@@ -672,6 +681,17 @@
<string name="HintLocalBackupInvalidCompositeKey"> \n
&#8226; Sugerencia: Si piensas que la Base de Datos está dañada o no recuerdas la contraseña maestra después de cambiarla, inténtalo con la última versión de la Base de Datos abierta con éxito pulsando en \"%1$s\" y seleccionando la copia local.
</string>
<string name="HintLocalBackupOtherError"> \n
• Sugerencia: Keepass2Android ha almacenado la última versión del archivo abierto con éxito en el almacenamiento interno. Puedes abrirlo tocando \"%1$s\" y seleccionando la copia de seguridad local.
</string>
<string name="CorruptDatabaseHelp"> El archivo está corrupto. \n
Aquí hay algunas sugerencias que podrían ayudar a diagnosticar el problema:\n
• Si copiaste el archivo a través de USB ( modo MTP), por favor inténtalo de nuevo usando una herramienta como MyPhoneExplorer. MTP trunca los archivos en ciertos casos.\n
• Si no puedes abrir el archivo desde la misma localización en tu PC, es muy probable que el archivo en realidad esté corrupto. En ese caso, por favor usa una copia de seguridad de la base de datos. Si asumes que Keepass2Android ha corrompido el archivo, por favor contacta con el equipo de soporte.\n
• Si aún puedes abrir el archivo en tu PC, por favor contacta con el equipo de soporte. Podrías intentar guardarlo con una configuración diferente (p.ej. descomprimido) en el PC y volver a intentar abrirlo en Keepass2Android.
</string>
<string name="open_other_db">Abrir otrar base de datos…</string>
<string name="select_database">Seleccione base de datos</string>
<string name="configure_child_dbs">Configure bases de datos hijas…</string>
@@ -699,6 +719,26 @@
<string name="EntryChannel_desc">Notificación para simplificar el acceso a la entrada seleccionada actualmente.</string>
<string name="CloseDbAfterFailedAttempts">Cierre la base de datos después de tres intentos fallidos de desbloqueo biométrico.</string>
<string name="WarnFingerprintInvalidated">¡Atención! La autenticación biométrica puede ser invalidada por Android, p. ej. después de añadir una nueva huella dactilar en los ajustes de su dispositivo. ¡Esté seguro de conocer siempre cómo desbloquear con su contraseña maestra!</string>
<string-array name="ChangeLog_1_11">
<item>Añadidos botones de acción flotante para la búsqueda y vista general de TOTP (si las entradas TOTP están presentes).</item>
<item>Se ha mejorado la visualización de los campos TOTP añadiendo un indicador de tiempo de espera y mostrándolo de forma más destacada.</item>
<item>TOTP ahora se puede ver desde la vista de grupo.</item>
<item>Copiar el valor de texto al portapapeles en la vista de entrada.</item>
<item>Hace que TOTP sea más fácilmente accesible en el teclado incorporado del dispositivo.</item>
<item>Mostrar notificación de entrada al autorrellenar una entrada TOTP. Esto permite copiar el TOTP al portapapeles. Ver preferencias para configurar el comportamiento.</item>
<item>Actualizada la implementación de TOTP para resolver problemas de compatibilidad con KeePass2 y TrayTOTP</item>
<item>Mejoras menores</item>
</string-array>
<string-array name="ChangeLog_1_11_net">
<item>Actualizar pCloud SDK para proporcionar acceso a carpetas compartidas</item>
</string-array>
<string-array name="ChangeLog_1_10">
<item>Añade el soporte para la notificación de permisos en Android 13+</item>
<item>Mejora la implementación FTP y SFTP</item>
<item>Añadir acceso a pCloud completo</item>
<item>Permite seleccionar el idioma del sistema en el diálogo de idioma</item>
<item>Corregir problema con el recordatorio de Keyfile + Frase de desafío</item>
</string-array>
<string-array name="ChangeLog_1_09e">
<item>Corrección de fallos y cierres de sesión inesperados</item>
<item>Cambiar a una nueva implementación de SFTP, compatible con algoritmos modernos de clave pública como rsa-sha2-256.</item>
@@ -764,7 +804,287 @@
<item>Corrección de errores</item>
<item>Correcciones de errores</item>
</string-array>
<string name="ChangeLog_1_07b"> Versión 1.07b\n
* Mejoras de rendimiento de Argon2 usando implementación nativa (Gracias a Chih-Hsuan Yen!)\n
* Permite inhabilitar huella dactilar pulsando en el icono de huella dactilar (evita el problema con los lectores de huella dactilar bajo la pantalla, gracias a marcoDallas!)\n
* Recupera la posición del cursor cuando se alterna la visibilidad de las contraseña (gracias a DDoSolitary!)\n
* Mejoras en la implementación de pCloud (gracias a gilbsgilbs otra vez!)\n
* Añadido soporte para AutoFill para varios navegadores \n
* Nueva implementación para OneDrive: Incluye soporte de OneDrive for Business, archivos compartidos, alcance de acceso seleccionable, múltiples cuentas y arreglos con acceso offline\n
* Corrección de errores
</string>
<string name="ChangeLog_1_07"> Versión 1.07\n
* Correcciones para fallos en dispositivos Android 9 de Samsung\n
* Permite abrir más de una base de datos, compatible con KeeAutoExec\n
* SFTP: Permite autenticación de clave pública, compureba si la clave del anfitrión ha cambiado\n
* Introduce soporte para pCloud - gracias a gilbsgilbs!\n
* Hacer soporte para Nextcloud explícito\n
* Mejora de guardado y actualizado de entradas adjuntas\n
* Más opciones para adaptar el comportamiento a preferencias personales\n
* SSL: Confiar en certificados del usuario\n
* Mejora de autocompletado (ahora funciona con Firefox, permite reducir ventanas emergentes)\n
* correción de errores\n
</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
* Evita 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, permitiendo la configuración a través de los ajustes del sistema\n
* Mostrar el icono de entrada en notificación\n
* Uso de iconos adaptables para Android 8, uso de icono de launcher redondo para Android 7\n
* Permitida activar la búsqueda tras desbloquear (ver ajustes)\n
* Cambiada la manera en que se escriben los archivos a través del Storage Access Framework, lo que soluciona problemas al actualizar archivos en Google Drive abiertos a través de la selección de archivos del sistema\n
* Añadidos algunos textos informativos para evitar algunos malentendidos comunes\n
* Crear copias de seguridad locales de las bases de datos abiertas con éxito para reducir el riesgo de pérdida de datos\n
* JSch actualizado para soportar cifrado SSH más reciente\n
* Permitir editar ajustes de conexión, por ejemplo cuando la contraseña WebDav ha cambiado\n
* Añadido soporte para modo de contraseña estática de Yubikey Neo\n
* Permitir desactivar sugerencia de Autorrelleno\n
* Reparada la filtración de datos a logcat\n
* Arreglo de errores\n
</string>
<string name="ChangeLog_1_04b"> Versión 1.04b\n
* Evitar cierre erróneo cuando el usuario intenta activar Autorrellenado en dispositivos Huawei.\n
</string>
<string name="ChangeLog_1_04"> Versión 1.04\n
*Agregado servicio de Autorellenado para Android 8.0 y superiores.\n
*Liberías actualizadas, herramientas de construcción y versión de SDK objetivo.\n
</string>
<string name="ChangeLog_1_03">Version 1.03\n
* Eliminado servicio de accesibilidad por Autorellenado, tal y como solicitó Google. Por favor, comprueba la configuración de acceso por clave para encontrasr un plugin que replique la funcionalidad anterior.\n
* Añadidas aplicaciones de terceros como opción de almacenamiento otra vez\n
* Integrado visor de imágenes para ver imágenes adjuntadas sin transferirlas a otras apps\n
* Actualizado OkHttp para arreglar problemas con algunas conexiones\n
* Soporte de entradas KeeTrayTOTP, ahora soporta entradas de Steam\n </string>
<string name="ChangeLog_1_02">Versión 1.02\n
* Mejoras de seguridad. ¡Muchas gracias por los reportes de seguridad de jean-baptiste.cayrou@thalesgroup.com y vincent.fargues@thalesgroup.com y por su colaboración!\n
* KeyboardSwap Plugin (ver opciones de acceso con contraseña): Permite cambiar automáticamente el método de entrada en dispositivos sin acceso Root. Gracias a Mishaal Rahman de XDA-Developers por hacer este posible.\n
* Corrección del servicio de accesibilidad con las nuevas versiones de Chrome.\n
* Corrección de limpiar datos de huella dactilar innecesariamente.\n
* Corrección de inestabilidades menores.\n
* Actualizado el SDK de Dropbox para garantizar la compatibilidad.\n
* Eliminado el sistema de reportes de error a través de Xamarin Insights.\n
* Actualizadas las herramientas de desarrollo.\n
</string>
<string name="ChangeLog_1_01g"> Versión 1.01-g\n
* Corrección para fallo cuando se intentaba trabajar offline\n
* Corrección para codificación incorrecta de credenciales de FTP(S)\n
* Corrección para fallos cuando se usa OneDrive y en versiones antiguas de Android\n
* Mostrar horas como hora local en la pantalla de entrada\n
</string>
<string name="ChangeLog_1_01d">Version 1.01-d\n
* Corrección de listado de archivos para OneDrive\n
* Permitir ignorar errores de certificados también cuando la verificación del nombre del anfitrión falla (no recomendado para uso en producción)\n
* Corrección de QuickUnlock a veces fallando, a pesar de introducir el código de desbloqueo correcto\n </string>
<string name="ChangeLog_0_9_8c"> Versión 0.9.8c\n
* Corrección para vulnerabilidad de SSL en Microsoft Live SDK (usado cuando se accede a archivos via OneDrive)\n
* Correccíón de error: Versión anterior contenía dos métodos de entrada (uno fallaba)\n
</string>
<string name="ChangeLog_1_01"> Versión 1.01\n
* Añadido soporte para el nuevo formato KDBX-4 (compatible con Keepass 2.35) incluyendo derivación de clave Argon2 y cifrado ChaCha20. \n
* Reimplementado almacenamiento de archivos WebDav, ahora permite navegación de archivos y soporta cifrado moderno. \n
* Reimplementado almacenamiento de archivos FTP, ahora permite navegación de archivos y soporta protocolo cifrado (FTPS). \n
* Actualizado a SDK de OneDrive (el anteriormente usado SDK Live ya no está actualizado) \n
* Actualizado a SDK de Dropbox versión 2 (la anterior versión usada, versión 1, está obsoleta). \n
* Añadido soporte para OwnCloud.\n
* Aviso de permisos de almacenamiento antes de abrir archivos locales
</string>
<string name="ChangeLog_1_0_0e"> Versión 1.0.0e\n
* Corrección para desbloqueo por huella en dispositivos Samsung viejos con Android 6\n
* Añadido soporte nativo para dispositivos x86\n
* Permite ocultar teclado durante la captura de huella digital\n
* Actualización del sistema de construcción
</string>
<string name="ChangeLog_1_0_0"> Versión 1.0.0\n
* Desbloqueo por huella (requiere Android 6.0+ o un dispositivo Samsung)\n
* Se agregó soporte para el servicio de Autorellenado (requiere Android 5.0+)\n
* Se agregó soporte para plantillas\n
* Se agregó modo sin conexión\n
* Permite copiar entradas\n
* Modo de auto-completar para los campos de nombres\n
* Permite quitar elementos de la lista de archivos recientes\n
* Solicitud de permisos durante ejecución en Android 6.0\n
* Errores corregidos (en teclado incorporado, al seleccionar iconos)\n
* Se incluyó una opción para enviar reportes de error\n
* Se agregaron mensajes de ayuda en varios puntos\n
</string>
<string name="ChangeLog_0_9_9">Versión 0.9.9\n
* Completo rediseño de interfaz gráfica. Muchas gracias a Stefano Pignataro (http://www.spstudio.at) por su ayuda!\n
* Permite agregar íconos personalizados\n
* Soporta modo multi ventanas en dispositivos Samsung\n
* Se incrementó el número rondas de cifrado por defecto para bases de datos nuevas\n
* Verifica claves duplicadas de campos adicionales para evitar perder datos\n
</string>
<string name="ChangeLog_0_9_9c">Text for Translation
Versión 0.9.9c\n
* Regresó el tema oscuro\n
* Puede instalar otros paquetes de íconos (iconos de estilo Windows antiguo están disponible en la Play store)\n
* Se agregó confirmación cuando se borran elementos sin papelera de reciclaje\n
* Errores corregidos (se mostraba de manera incorrecta la codificación secreta OTP, ícono de applicación incorrecto en algunos lugares)\n
</string>
<string name="ChangeLog_0_9_8b"> Versión 0.9.8b\n
* Corrección de errores (Guardar fallaba en algunas bases de datos, exportar a dispositivo local no funcionaba, seleccionar algunas opciones de ajustes hacía que la aplicación se cerrara)\n
</string>
<string name="ChangeLog_0_9_8">Versión 0.9.8\n
* Soporte para framework acceso a almacenamiento (permite escribir a tarjeta SD y Google Drive en KP2A Offline)\n
* Intenta detectar entradas de usuario erróneas cuando se ingresa URLs de WebDAV (directorio en lugar de archivo)\n
* Se cambió el tipo de letra de las contraseñas\n
* Permite cambiar la cuenta de Dropbox\n
* Corregido error: Ahora recuerda contraseñas OTP\n</string>
<string name="ChangeLog_0_9_7b"> Versión 0.9.7b\n
* Traducciones actualizadas\n
* Errores corregidos: Fuente de contraseña no estaba en 0.9.7, ordenar por nombre no ordenaba los grupos\n</string>
<string name="ChangeLog_0_9_7"> Versión 0.9.7\n
* soporte de escritura para bases de datos Keepass 1 (kdb) (¡beta!).\n
* mejor regreso al anterior teclado (tambien funciona en dispositivos no rooteados) \n
* soporte para KeeChallenge con longitud variable de retos\n
* evitar tomar capturas de la pantalla de QuickUnlock y de las pantallas de la contraseña\n
* invertir la forma en la que se ordena por Fecha de Modificación (ahora es descendente)\n
* corrección de errores: visualización de notas ahora actualizada correctamente después de cambios, vistas contraseña ahora ocultando la contraseña correctamente en (esperemos) todos los dispositivos, solucionado el problema que permite agregar una entrada dos veces, solucionado el problema que muestra la advertencia de UUID duplicado incluso después de corregir la base de datos\n</string>
<string name="ChangeLog_0_9_6"> Versión 0.9.6\n
* Permite importar archivos clave y/o archivos de bases de datos locales al directorio interno de la app (ver configuración)\n
* Permite diferentes opciones de ordenación\n
* Preferencias mejoradas para cambio automático de teclado\n
* Actualizado el logotipo de la app y el diseño de notificación, diseñado por Stefano Pignataro (http://www.spstudio.at)\n
* El generador de contraseñas recuerda la última configuración\n
* Establece la visibilidad de notificación para la pantalla de bloqueo para Android 5\n
* Ahora se limpia el campo de contraseña maestra cuando se sale de la app sin pulsar OK\n
* Arreglado un problema con falta de idiomas de entrada en la configuración de teclado en algunos dispositivos\n
* Arreglado un problema con cambio de teclado automático en dispositivos rooteados\n
* Añadida comprobación para bases de datos corruptas (UUIDs duplicadas)\n
* Recarga la base de datos automáticamente cuando se detectan cambios, resuelve preocupaciones de seguridad sobre revelar la contraseña maestra\n
* Mejorada la disposición de teclado polaco pequeño, arreglada configuración de tema del teclado (gracias a Wiktor Ławski)\n
</string>
<string name="ChangeLog_0_9_5"> <b>Versión 0.9.5</b>\n
* Solucionados problemas con la exploración de archivos (especialmente en Android 4.4)\n
* Solucionado un problema con la carga de archivos .kdb (Keepass 1) en Nexus 5 con Android Lollipop\n
* Añadida opción para evitar tomar capturas de pantalla/mostrar la app en la lista de apps recientes\n
* Solucionado un problema con el almacenamiento en Google Drive (edición normal)\n
* Se permite los archivos de clave en tipos de almacenamiento deliberados (edición normal)\n
* Actualizado el SDK de Dropbox para incluir un parche de seguridad oficial (edición normal)\n
* Actualizadas las herramientas de creación --&gt; tamaño de apk incrementado :-(\n
He prometido algunos cambios más. Vendrán con el próximo lanzamiento - lo siento. Quería publicar estas correcciones lo más pronto posible.
</string>
<string name="ChangeLog_0_9_4"> <b>Versión 0.9.4</b>\n
* Añadido soporte para complementos: ¡Ver configuración para saber cómo obtener complementos!\n
* Publicado complemento QR (escanea contraseñas, las muestra como un código QR, transfiere entradas a otros dispositivos KP2A)\n
* Publicado complemento InputStick (transfiere credenciales a tu PC a través de bluetooth - requiere una llave USB InputStick)\n
* Las apps de terceros ahora pueden simplemente implementar consultas a KP2A para las credenciales. ¿Eres desarrollador? ¡Por favor, añade esto a tu app si lo crees conveniente!\n
* Añadido soporte TOTP (compatible con KeeOTP y TrayTotp)\n
* La app ya no debería seguir siendo finalizada por Android cuando la base de datos está abierta\n
* La base de datos ya no seguirá bloqueada cuando se salga de la app con el botón atrás (ver configuración)\n
* Mostrar grupos de nombres en la vista de resultados de búsqueda (*)\n
* Añadido menú contextual en la vista de resultados de búsqueda incluyendo la opción \"Navegar a principal\" (*)\n
* Añadida opción para mostrar un grupo de nombre en la vista de entrada (*)\n
* (*) ¡Gracias a Matthieu por implementar estas características!\n
* Soporte para KeeChallenge (con Yubikey NEO). ¡Gracias a Ben Rush por implementar el conector!\n
* Mejorada la interfaz de usuario\n
* Solucionado un fallo en la interfaz de Google Drive\n
* Añadida opción para desactivar la opción \"donar\"\n
* Icono QuickUnlock ahora oculto de forma predeterminada en dispositivos Android 4.2+\n
</string>
<string name="ChangeLog_0_9_3_r5"> <b>Versión 0.9.3 r5</b>\n
* Incorporadas correcciones desde Xamarin: Keepass2Android ahora es compatible con ART en Android 4.4.2. ¡Por fin!\n
* Corrección de fallos: fallos en sincronización (actualización de pantalla, revisión correcta de cambios en http), fallos en dispositivos Android 2.x, fallos en las implementaciones de almacenamiento de Google Drive y OneDrive, limpieza del portapapeles al cerrar la base de datos, fallo en la apertura de archivos adjuntos, problemas de visualización con el teclado\n
</string>
<string name="ChangeLog_0_9_3"> <b>Versión 0.9.3</b>\n
* Nuevo teclado con muchas mejoras. Ver la configuración para personalizarlo.\n
* Soporte de solo lectura para kdb (archivos Keepass 1). ¡Experimental!\n
* Añadido soporte para SFTP\n
* Añadida solución para el error en ART (Android 4.4.2)\n
* Corrección de errores en general\n
</string>
<string name="ChangeLog_0_9_2"> <b>Versión 0.9.2</b>\n
* Añadido soporte para OTP (compatible con el complemento OtpKeyProv)\n
* Integrado soporte NFC para OTPs de YubiKey NEO \n
* Varias mejoras en la interfaz de usuario\n
* Integrada la biblioteca de Keepass 2.24\n
* Añadida opción para finalizar el proceso de la app (ver configuración)\n
* Mejorada la validación del certificado SSL\n
* Corrección de errores en general\n
</string>
<string name="ChangeLog_0_9_1"> <b>Versión 0.9.1</b>\n
* Integrado soporte para SkyDrive (solo en la edición normal de Keepass2Android)\n
* Corregidos problemas con la integración con Google Drive\n
* Añadido soporte para NTLM
</string>
<string name="ChangeLog_0_9"> <b>Versión 0.9</b>\n
* Integrado soporte para Dropbox y Google Drive (lectura/escritura de bases de datos; solo en la edición normal de Keepass2Android)\n
* Integrado navegador de archivos personalizado (basado en el selector de archivos de Android por HBA)\n
* Mejorada interfaz de usuario para crear nuevas bases de datos\n
* Incluida fuente personalizada DejaVu Sans Mono para visualizar contraseñas\n
* Corrección de errores en general
</string>
<string name="ChangeLog_0_8_6"> <b>Versión 0.8.6</b>\n
* Soporte para cifrado Twofish\n
* Permite la edición de grupos\n
* Permite el desplazamiento de entradas y grupos\n
* El icono de QuickUnlock puede hacerse transparente (ver configuración)\n
* Corrección de errores en general
</string>
<string name="ChangeLog_0_8_5"> <b>Versión 0.8.5</b>\n
* Los archivos remotos son almacenados en la caché local de la app para permitir su uso sin conexión (incluyendo la edición y la posterior sincronización). Ver configuración. \n
* Icono de notificación para visualizar el estado de bloqueo de la base de datos (ver configuración)\n
* Mejorada la determinación del estado de bloqueo en algunas situaciones\n
* Los archivos de la base de datos son cargados a memoria mientras estás escribiendo tu contraseña para una velocidad de carga incrementada (ver configuración)\n
* Las entradas pueden ser añadidas al grupo raíz\n
* Corrección de errores (solucionando campos de referencia y problemas con el teclado en dispositivos italianos y chinos)
</string>
<string name="ChangeLog_0_8_4"><b>Versión 0.8.4</b>\
* Los cambios externos a la base de datos son detectados y añadidos al guardar\n
* Mejorado el rendimiento de carga\n
* Mejorada la barra de búsqueda con sugerencias\n
* ¡Nuevo logo de la aplicación!\n
* Añadido soporte para el formato .kdbp para carga/guardado más veloz\n
* Mejorada la edición de cadenas de texto adicionales y pantalla oculta cuando está protegida\n
¡Gracias a Alex Vallat por sus contribuciones al código!\n
¡Gracias a Niki Hüttner (www.close-cut.de) por el nuevo logo!\n</string>
<string name="ChangeLog_0_8_3"><b>Versión 0.8.3</b>\n
* Nombre de usuario/Índice TAN mostrado en la lista de entradas (ver los ajustes)\n
* Las entradas pueden ser creadas si una búsqueda desde el navegador no devuelve resultados\n
* El teclado KP2A provee la posibilidad de buscar credenciales para la aplicación actual\n
* La aplicación se cierra automáticamente después de seleccionar una entrada para usar en el teclado\n
* El diálogo de selección de teclado se abre automáticamente luego de buscar una URL (Ver la configuración)\n
* Los marcadores de posición en los campos de entradas son reemplazados antes de copiarlos (la mayor parte de los marcadores de posición son soportados)\n
* Corrección de errores menores
  </string>
<string name="ChangeLog_0_8_2"><b>Versión 0.8.2</b>\n
* Soporte para autenticación Digest en WebDAV\n
* Corrección de errores (OI Gestor de Archivos, Abrir URL)</string>
<string name="ChangeLog_0_8_1"><b>Versión 0.8.1</b> \n
* KP2A Offline y \"Online\" pueden instalarse ambos de nuevo\n
* Nuevas traducciones añadidas (gracias a todos los contribuyentes!) </string>
<string name="ChangeLog_0_8"> <b>Versión 0.8</b> \n
*Mejorada la interfaz de usuario, especialmente para dispositivos Android 4.x\n
*Permitido el uso deliberado de gestores de archivos para seleccionar archivos existentes\n
*Añadida una forma más segura para abrir archivos adjuntos (a través del directorio de caché)\n
*Corrección de errores durante la actividad de edición\n
*Probablemente se han introducido nuevos errores :-)</string>
<string name="ChangeLog_keptDonate">Ofrecemos la posibilidad de donarnos una cerveza u otra cosa</string>
<string name="ChangeLog_0_7"><b>Versión 0.7</b> \n
* Aumentada la velocidad de carga: transformaciones de claves ahora son 10 veces más rápidas! \n
* Nuevo teclado Keepass2Android: cambie a este teclado para introducir sus credenciales. Lo protege de sniffers de contraseñas basados en el portapapeles (desactive las notificaciones anteriores del portapapeles en las opciones) \n
* Añadida opción de donar una cerveza u otra cosa (ver menú)</string>
<string name="ChangeLog"><b>Versión 0.6.2</b> \n
* Integración con Google Drive/Dropbox /... : Utilice las Apps oficiales de Google Drive o Dropbox y abra cualquier archivo .kdbx. Esto ahora abrirá KP2A.\n
* Mejorado diálogo de búsqueda \n
* Mejorados resultados de búsqueda para URLs compartidas con subdominios\n
* Opciones para enviar retroalimentación, calificar y traducir la aplicación en el menú\n
\n
<b>Versión 0.6.1</b> \n
* Detecta cuando cambia la base de datos en segundo plano (es decir, debido a la actividad de una aplicación de sincronización) \n
* Mejoradas la búsqueda de URLs desde el navegador\n
* Diálogo de confirmación cuando se descarten cambios\n
\n
<b>Versión 0.6</b> \n
Lanzamiento público inicial
</string>
<string-array name="clipboard_timeout_options">
<item>30 segundos</item>
<item>1 minuto</item>
@@ -855,6 +1175,7 @@
<string name="AutofillWarning_Intro">Está a punto de insertar credenciales para el dominio \"%1$s\" en la aplicación \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Si confía en que \"%2$s\" pertenece a \"%1$s\", o confía en que la aplicación \"%2$s\" no utilizará mal las credenciales (p. e. porque es una aplicación de navegador de confianza), está bien continuar. Si no, por favor cancele.</string>
<string name="AutofillWarning_trustAsBrowser">Aceptar siempre en \"%1$s\"</string>
<string name="english_ime_settings">Ajustes del teclado de Keepass2Android</string>
</resources>
<string name="kp2a_switch_on_sendgodone">Volver cuando termine</string>
<string name="kp2a_switch_on_sendgodone_summary">Volver cuando se presione enviar/ir/finalizado</string>
<string name="english_ime_settings">Ajustes del teclado de Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Iruzkinak</string>
<string name="AboutText">Keepass2Android pasahitz kudeatzaile bat da, Androiden KeePass 2.x datu-baseetan irakurketa/idazketa ahalbideratzen duena. </string>
@@ -435,6 +435,5 @@
<item>Ohartarazi balidazioak huts egitean</item>
<item>Do not accept invalid certificates</item>
</string-array>
<string name="english_ime_settings">Android teklatuaren ezarpenak</string>
</resources>
<string name="english_ime_settings">Android teklatuaren ezarpenak</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">ﺑﺎﺯﺧﻮﺭﺩ</string>
<string name="AboutText">برنامهٔ Keepass2Android یک برنامهٔ مدیریت گذرواژه است که دسترسی خواندنی/نوشتنی به پایگاه‌داده‌های KeePass 2.x را در اندروید فراهم می‌کند.</string>
@@ -154,6 +154,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="hint_keyfile">فایل کلید</string>
<string name="hint_length">طول</string>
<string name="hint_pass">گذرواژه</string>
<string name="hint_keyfile_path">مسیر کلید خصوصی SSH</string>
<string name="hint_login_pass">گذرواژه</string>
<string name="hint_title">نام</string>
<string name="hint_url">URL</string>
@@ -284,6 +285,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="author">توسعه‌دهندهٔ Keepass2Android فیلیپ کُروکُل است.</string>
<string name="further_authors">با سپاس از مشارکت %1$s در کدنویسی.</string>
<string name="designers">با سپاس از مشارکت %1$s در طراحی آیکون و چیدمان.</string>
<string name="supporters">با تشکر از حمایت مالی توسط %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>
@@ -402,6 +404,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="ShowSeparateNotifications_summary">برای کپی‌کردن نام کاربری و گذرواژه در بریده‌دان و فعال‌کردن صفحه‌کلید اعلانات جداگانه‌ای نشان بده.</string>
<string name="AccServiceAutoFill_prefs">سرویس دسترس‌پذیری تکمیل خودکار</string>
<string name="AutoFill_prefs">سرویس تکمیل خودکار</string>
<string name="AutoFillTotp_prefs_ShowNotification_title">نمایش اعلان ورود</string>
<string name="ShowKp2aKeyboardNotification_title">اعلان صفحه‌کلید KP2A</string>
<string name="ShowKp2aKeyboardNotification_summary">مدخل به‌طور کامل از طریق صفحه‌کلید KP2A در دسترس باشد (توصیه می‌شود).</string>
<string name="OpenKp2aKeyboardAutomatically_title">تغییر صفحه‌کلید</string>
@@ -418,6 +421,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</string>
<string name="ShowUnlockedNotification_summary">وقتی قفل پایگاه‌داده باز است یک اعلان نشان بده.</string>
<string name="IconVisibilityInfo_Android8_text">اندروید ۸ رفتار جدیدی را برای اعلان‌ها ارائه کرده است. اگر می‌خواهید آیکون اعلانات Keepass2Android را مخفی کنید، لطفاً آن را از طریق تنظیمات سیستم پیکربندی کنید. اهمیت دستهٔ اعلان را روی کمترین تنظیم کنید.</string>
<string name="IconVisibilityInfo_Android8_btnSettings">بازکردن تنظیمات</string>
<string name="PostNotificationsPermissionInfo_text">زمانی که پایگاه‌دادهٔ شما قفل نیست Keepass2Android می‌تواند یک اعلان سیستمی نشان دهد. برای کارکردن این قابلیت لطفاً درخواست اجازه را تأیید کنید.</string>
<string name="DontCare">مهم نیست</string>
<string name="DocumentAccessRevoked">فایل برای Keepass2Android قابل‌دسترسی نیست. یا حذف شده یا اینکه اجازهٔ دسترسی به آن ستانده شده است. لطفاً آن را مجدداً باز کنید؛ مثلاً از «تغییر پایگاه‌داده» استفاده کنید.</string>
<string name="PreloadDatabaseEnabled_title">پیش‌بارکردن فایل پایگاه‌داده</string>
@@ -493,7 +497,7 @@ JCraft ایجاد شده است. تحت مجوز BSD.</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="synchronize_database_menu">همگام‌سازی پایگاه‌داده…</string>
<string name="CannotMoveGroupHere">نمی‌توان گروه را در این گروه قرار داد.</string>
<string name="donate_question">از Keepass2Android راضی هستید؟ مرا به یک فنجان قهوه مهمان کنید.</string>
<string name="donate_bday_question">دهم ماه می؟ امروز تولدم است!
@@ -511,9 +515,19 @@ mycloud.me.com/webdav/ )</string>
<string name="hint_sftp_host">میزبان (مثال: 192.168.0.1)</string>
<string name="hint_sftp_port">درگاه</string>
<string name="initial_directory">پوشهٔ آغازین (اختیاری):</string>
<string name="connect_timeout">ثانیه‌های مهلت انتظار (اختیاری)</string>
<string name="enter_sftp_login_title">اطلاعات ورود به SFTP را وارد کنید:</string>
<string name="sftp_auth_mode">حالت احراز هویت</string>
<string name="send_public_key">فرستادن کلید عمومی...</string>
<string name="select_private_keyfile">انتخاب کلید خصوصی...</string>
<string name="hint_sftp_key_name">نام کلید جدید</string>
<string name="hint_sftp_key_content">محتوای کلیدی جدید</string>
<string name="private_key_saved">کلید خصوصی ذخیره شد</string>
<string name="private_key_delete_failed">حذف کلید خصوصی ناموفق بود: %1$s</string>
<string name="save_key">ذخیره کلید خصوصی</string>
<string name="delete_key">حذف کلید خصوصی</string>
<string name="private_key_select">کلید خصوصی را انتخاب کنید</string>
<string name="private_key_create_new"></string>
<string name="enter_ftp_login_title">اطلاعات ورود به FTP را وارد کنید:</string>
<string name="enter_mega_login_title">اطلاعات ورود حساب MEGAی خود را وارد کنید:</string>
<string name="select_storage_type">نوع ذخیره‌گاه را مشخص کنید:</string>
@@ -526,17 +540,19 @@ mycloud.me.com/webdav/ )</string>
<string name="filestoragename_owncloud">OwnCloud</string>
<string name="filestoragename_nextcloud">Nextcloud</string>
<string name="filestoragename_dropbox">Dropbox</string>
<string name="filestoragename_dropboxKP2A">Dropbox (پوشه KP2A)</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_gdriveKP2A">گوگل‌درایو (فایل‌های KP2A)</string>
<string name="filestoragehelp_gdriveKP2A">اگر می‌خواهید گوگل‌درایوتان به‌طور کامل در دسترس KP2A نباشد، این گزینه را انتخاب کنید. توجه نمایید که ابتدا باید یک فایل پایگاه‌داده بسازید. برنامه نمی‌تواند فایل‌های موجود را ببیند. این گزینه را یا از صفحهٔ ساخت پایگاه‌داده انتخاب کنید یا اگر هم‌اکنون یک پایگاه‌داده باز کرده‌اید از طریق صادرکردن پایگاه‌داده و انتخاب این گزینه اقدام کنید.</string>
<string name="filestoragename_pcloud"> PCloud (پوشهٔ KP2A)</string>
<string name="filestoragename_pcloudall"> PCloud (دسترسی کامل)</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_onedrive2">OneDrive</string>
<string name="filestoragename_onedrive2_full">همهٔ فایل‌ها و فایل‌های اشتراک‌گذاری‌شده</string>
<string name="filestoragename_onedrive2_myfiles">فایل‌های من</string>
<string name="filestoragename_onedrive2_appfolder">پوشهٔ برنامهٔ Keepass2Android</string>
<string name="filestoragename_sftp">SFTP (انتقال فایل به‌روش SSH)</string>
<string name="filestoragename_sftp"> SFTP (انتقال فایل به‌روش SSH)</string>
<string name="filestoragename_mega">MEGA</string>
<string name="filestoragehelp_mega">لطفاً توجه نمایید: برای اینکه Keepass2Android درست کار کند باید فهرست همهٔ فایل‌های حساب Megaی شما را دانلود کند. در نتیجه دسترسی به حسابی با فایل‌های زیاد ممکن است کند انجام شود.</string>
<string name="filestoragename_content">گزینشگر فایل سیستم</string>
@@ -772,6 +788,5 @@ mycloud.me.com/webdav/ )</string>
<string name="AutofillWarning_Intro">در حال واردکردن اطلاعات شناسایی برای دامنهٔ «%1$s» در برنامهٔ «%2$s» هستید.</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">اگر اعتماد دارید که «%2$s» به «%1$s» تعلق دارد یا اعتماد دارید که برنامهٔ «%2$s» از اطلاعات شناسایی سوءاستفاده نمی‌کند (مثلاً مرورگری قابل‌اعتماد است)، بدون نگرانی ادامه دهید، در غیر این صورت لغو کنید.</string>
<string name="AutofillWarning_trustAsBrowser">در «%1$s» همیشه بپذیر</string>
<string name="english_ime_settings">تنظیمات صفحه کلید Keepass2Android</string>
</resources>
<string name="english_ime_settings">تنظیمات صفحه کلید Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Palaute</string>
<string name="AboutText">Keepass2Android on salasanojen hallintaohjelma, jolla voit katsella ja muokata KeePass 2.x tietokantoja Androidilla.</string>
@@ -763,6 +763,5 @@
<string name="no_secure_display">Nykyistä näyttöä ei ole merkitty turvalliseksi. Tämä tarkoittaa sitä että muut sovellukset voivat tehdä kuvankaappauksen. Keepass2Android on näyttää arkaluontoisia tietoja vain suojatuissa näytöissä. Vaihda suojattuun näyttöön (esimerkiksi irrottamalla HDMI-näyttö) tai muuta sovelluksen asetuksia.</string>
<string name="disable_secure_screen_check">Poista tämä viesti käytöstä</string>
<string name="switch_ime_reopen">Yritä uudelleen</string>
<string name="english_ime_settings">Keepass2Android-näppäimistön asetukset</string>
</resources>
<string name="english_ime_settings">Keepass2Android-näppäimistön asetukset</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Commentaires </string>
<string name="AboutText">Keepass2Android est un gestionnaire de mot de passe pour Android permettant de lire et écrire des bases de données KeePass 2.x.</string>
@@ -401,6 +401,14 @@
<string name="ShowSeparateNotifications_summary">Afficher des notifications séparées pour copier le nom d\'utilisateur et le mot de passe dans le presse-papiers et l\'activer le clavier.</string>
<string name="AccServiceAutoFill_prefs">Service d\'accessibilité pour le remplissage automatique</string>
<string name="AutoFill_prefs">Service de saisie automatique</string>
<string name="AutoFillTotp_prefs_ShowNotification_summary">Lors du remplissage automatique d\'une entrée avec TOTP, afficher la notification de l\'entrée avec un bouton Copier TOTP.</string>
<string name="AutoFillTotp_prefs_ShowNotification_title">Afficher la notification de saisie</string>
<string name="AutoFillTotp_prefs_title">Remplissage automatique des entrées TOTP</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_title">Copier le TOTP dans le presse-papier</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_summary">Lors du remplissage automatique d\'une entrée avec TOTP, copier le TOTP dans le presse-papier.</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_summary">Lorsque vous remplissez automatiquement une entrée avec TOTP, activez le clavier intégré. Le clavier dispose d\'une touche TOTP.</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_title">Activation du clavier intégré</string>
<string name="TotpCopiedToClipboard">Copie du TOTP dans le presse-papier</string>
<string name="ShowKp2aKeyboardNotification_title">Notification du clavier KP2A</string>
<string name="ShowKp2aKeyboardNotification_summary">Rendre l\'entrée pleinement accessible via le clavier KP2A (recommandé).</string>
<string name="OpenKp2aKeyboardAutomatically_title">Changer de clavier</string>
@@ -588,6 +596,7 @@
<string name="CouldntLoadChalAuxFile_Hint">Utiliser le plugin KeeChallenge de KeePass 2.x (version PC) pour configurer votre base de données pour une utilisation avec défi-réponse!</string>
<string name="ErrorUpdatingChalAuxFile">Erreur lors de la mise à jour du fichier OTP auxiliaire !</string>
<string name="TrayTotp_SeedField_title">Nom du champ contenant le \"seed code\" TOTP</string>
<string name="TOTP">TOTP</string>
<string name="TrayTotp_SeedField_summary">Si vous utilisez le plug-in Keepass 2 \"TrayTotp\" avec des paramètres personnalisés, entrez ici le nom du champ contenant le \"seed code\" tel que défini dans les paramètres sur PC.</string>
<string name="TrayTotp_SettingsField_title">Nom du champ contenant les paramètres TOTP</string>
<string name="TrayTotp_SettingsField_summary">Entrer ici le nom du champ contenant les paramètres pour TrayTotp.</string>
@@ -663,6 +672,26 @@
<string name="Continue">Suivant</string>
<string name="NoFilenameWarning">L\'URI que vous avez entré ne ressemble pas à un nom de fichier. Etes-vous sûr qu\'il s\'agit d\'un fichier valide ?</string>
<string name="FirstInvalidCompositeKeyError">Clé composite invalide ! S\'il vous plaît essayez encore.</string>
<string name="RepeatedInvalidCompositeKeyHelp"> Clé composite non valide ! Veuillez essayer les étapes suivantes pour déverrouiller votre base de données :\n
• Assurez-vous que vous avez saisi le bon mot de passe. Utilisez l\'icône en forme d\'œil pour révéler le mot de passe saisi.\n
• Assurez-vous que vous avez sélectionné le bon type de mot de passe et qu\'il correspond à celui utilisé lors de la création de la base de données.\n
• Assurez-vous que vous avez sélectionné le bon fichier de base de données.
</string>
<string name="HintLocalBackupInvalidCompositeKey"> \n
• Indice : si vous pensez que votre fichier de base de données est corrompu ou que vous ne vous souvenez pas de la clé principale après l\'avoir modifiée, vous pouvez essayer avec la dernière version du fichier ouverte avec succès en appuyant sur « %1$s » et en sélectionnant la sauvegarde locale.
</string>
<string name="HintLocalBackupOtherError"> \n
• Indice : Keepass2Android a enregistré la dernière version de fichier ouverte avec succès sur le stockage interne. Vous pouvez l\'ouvrir en appuyant sur « %1$s » et en sélectionnant la sauvegarde locale.
</string>
<string name="CorruptDatabaseHelp"> Le fichier est corrompu.\n
Voici quelques conseils qui pourraient aider à diagnostiquer le problème :\n
• Si vous avez copié le fichier via USB (mode MTP), essayez à nouveau en utilisant un outil comme MyPhoneExplorer. MTP tronque les fichiers dans certains cas.\n
• Si vous ne pouvez pas ouvrir le fichier à partir du même emplacement sur votre PC, il est très probable que le fichier soit corrompu. Veuillez alors utiliser une sauvegarde de la base de données. Si vous pensez que Keepass2Android a corrompu le fichier, veuillez contacter l\'équipe d\'assistance.\n
• Si vous pouvez toujours ouvrir le fichier sur votre PC, essayez de l\'enregistrer avec des paramètres différents (par ex. décompressé) sur le PC et réessayer de l\'ouvrir dans Keepass2Android. Sinon, veuillez contacter l\'équipe d\'assistance.
</string>
<string name="open_other_db">Ouvrir une autre base de données…</string>
<string name="select_database">Sélectionner une base de données</string>
<string name="configure_child_dbs">Configurer les bases de données filles…</string>
@@ -690,6 +719,33 @@
<string name="EntryChannel_desc">Notification pour simplifier l\'accès à l\'entrée actuellement sélectionnée.</string>
<string name="CloseDbAfterFailedAttempts">Fermer la base de données après trois tentatives de déverrouillage biométrique échouées.</string>
<string name="WarnFingerprintInvalidated">Attention ! L\'authentification biométrique peut être invalidée par Android, par ex. après avoir ajouté une nouvelle empreinte digitale dans les paramètres de votre appareil. Assurez-vous de toujours savoir comment déverrouiller avec votre mot de passe maître !</string>
<string-array name="ChangeLog_1_12">
<item>Mise à niveau de Xamarin Android vers. net 8</item>
<item>Mise à niveau vers Target SDK 34</item>
<item>Mise à niveau vers l\'interface utilisateur Material 3</item>
<item>Improve autofill to work with Compose apps</item>
<item>Fix hostname matching in autofill and search</item>
</string-array>
<string-array name="ChangeLog_1_11">
<item>Ajout de boutons d\'action flottants pour la recherche et l\'aperçu TOTP (si des entrées TOTP sont présentes).</item>
<item>Amélioration de l\'affichage des champs TOTP en ajoutant un indicateur de dépassement de délai et en le montrant plus en évidence.</item>
<item>TOTP peut maintenant être vu à partir de la vue de groupe.</item>
<item>Copier la valeur du texte dans le presse-papier lors d\'un appui long dans la vue d\'entrée.</item>
<item>Rendre TOTP plus facilement accessible via le clavier intégré.</item>
<item>Afficher une notification d\'entrée lors du remplissage automatique d\'une entrée TOTP. Cela permet de copier le TOTP dans le presse-papier. Voir les préférences pour configurer le comportement.</item>
<item>Mise à jour de l\'implémentation TOTP pour résoudre les problèmes de compatibilité avec KeePass2 et TrayTOTP</item>
<item>Améliorations mineures</item>
</string-array>
<string-array name="ChangeLog_1_11_net">
<item>Mise à jour du SDK pCloud pour permettre l\'accès aux dossiers partagés</item>
</string-array>
<string-array name="ChangeLog_1_10">
<item>Ajout de la prise en charge des autorisations de notification sur Android 13+</item>
<item>Amélioration de l\'implémentation de FTP et SFTP</item>
<item>Ajouter un accès à pCloud complet</item>
<item>Permet de sélectionner la langue du système dans la boîte de dialogue de langue</item>
<item>Correction d\'un problème de mémorisation du type de mot de passe Keyfile + Challenge</item>
</string-array>
<string-array name="ChangeLog_1_09e">
<item>Correction de bugs pour les plantages et les déconnexions inattendues</item>
<item>Passage à une nouvelle implémentation SFTP, prenant en charge les algorithmes à clé publique modernes tels que rsa-sha2-256</item>
@@ -755,6 +811,15 @@
<item>Corrections de bugs</item>
<item>Corrections de bugs</item>
</string-array>
<string name="ChangeLog_1_07b"> Version 1.07b\n
* Amélioration des performances d\'Argon2 par l\'utilisation de l\'implémentation native (Remerciements à Chih-Hsuan Yen!)\n
* Possibilité de désactiver le verrouillage par empreinte digitale en cliquant sur l\'icône empreinte digitale (évite les problèmes avec les lecteurs d\'empreinte digitale placés sous l\'écran, remerciements à marcoDallas!)\n
* Rétablissement de la position courante du curseur lors de la bascule entre les modes mot de passe visible / caché (Remerciements à DDoSolitary!)\n
* Améliorations de l\'implémentation de pCloud (encore une fois, remerciements à gilbsgilbs)\n
* Ajout de la prise en charge de la saisie automatique à plusieurs autres navigateurs\n
* Nouvelle implémentation pour OneDrive : inclut la prise en charge de OneDrive Entreprise, des fichiers partagés, des périmètres d\'accès sélectionnables, des comptes multiples et des corrections de problèmes d\'accès en mode hors-ligne\n
* Corrections d\'anomalies
</string>
<string name="ChangeLog_keptDonate">Possibilité élargie de faire un don d\'une bière ou autre chose</string>
<string-array name="clipboard_timeout_options">
<item>30 secondes</item>
@@ -846,6 +911,5 @@
<string name="AutofillWarning_Intro">Vous êtes sur le point d\'insérer des identifiants pour le domaine \"%1$s\" dans l\'application \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Si vous faites confiance à \"%2$s\" pour appartenir à \"%1$s\" ou que vous faites confiance à l\'application \"%2$s\" pour ne pas abuser des identifiants (ex. parce que c\'est une application de navigateur de confiance), il est possible de continuer. Si ce n\'est pas le cas, veuillez annuler.</string>
<string name="AutofillWarning_trustAsBrowser">Accepter toujours dans \"%1$s\"</string>
<string name="english_ime_settings">Paramètres du clavier Keepass2Android</string>
</resources>
<string name="english_ime_settings">Paramètres du clavier Keepass2Android</string>
</resources>

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.net-->
<resources>
<string name="about_feedback">Suxestións (feedback)</string>
<string name="AboutText">Keepass2Andoird é un xestor de contrasinais que aporta acceso de lectura/escritura ás bases de datos KeePass 2.x de Android.</string>
@@ -50,6 +49,7 @@
<string name="fingerprint_prefs">Desbloqueo biométrico</string>
<string name="import_db_prefs">Importar base de datos a cartafol interno</string>
<string name="import_keyfile_prefs">Importar arquivo de chave a cartafol interno</string>
<string name="export_keyfile_prefs">Exportar o ficheiro de clave desde o cartafol interno</string>
<string name="keyboardswitch_prefs">Cambio de teclado</string>
<string name="OnlyAvailableForLocalFiles">Só dispoñible para arquivos locais.</string>
<string name="FileIsInInternalDirectory">O arquivo é gardado no directorio interno.</string>
@@ -70,6 +70,7 @@
<string name="copy_password">Seleccione para copiar contrasinal ó portapapeis</string>
<string name="copy_totp">Seleccione para copiar TOTP ó portapapeis</string>
<string name="available_through_keyboard">Entrada dispoñible a través do teclado KP2A</string>
<string name="app_language_pref_title">Idioma da aplicación</string>
<string name="entry_is_available">está dispoñible</string>
<string name="not_possible_im_picker">Non se puido abrir a caixa de diálogo para seleccionar o método de introdución. Active teclado manualmente.</string>
<string name="please_activate_keyboard">Por favor, habilite o teclado Keepass2Android na configuración do seu sistema.</string>
@@ -81,6 +82,7 @@
<string name="disclaimer_formal">Keepass2Android NON TEN GARANTÍA TOTAL: isto é software ceibe, e pode redistribuilo baixo as condicións da versión 2 de GPL ou posterior.</string>
<string name="ellipsis">\u2026</string>
<string name="copy_to_clipboard">Copiar ó portapapeis</string>
<string name="SystemLanguage">Linguaxe do sistema</string>
<string name="fingerprint_description">Debe autenticarse para continuar</string>
<string name="fingerprint_fatal">Non se puido establecer o desbloqueo biométrico:</string>
<string name="fingerprint_not_recognized">Fallou a autenticación biométrica. Tente de novo</string>
@@ -92,6 +94,13 @@
<string name="enable_fingerprint_unlock">Activar desbloqueo biométrico completo</string>
<string name="enable_fingerprint_quickunlock">Activar desbloqueo biométrico para QuickUnlock</string>
<string name="fingerprint_unlock_failed">Fallou o desbloqueo biométrico. A chave de desencriptación foi invalidada polo sistema Android. Isto pode ocorrer se a autenticación ou os axustes de seguridade foron cambiados.</string>
<string name="fingerprint_disabled_wrong_masterkey">Produciuse un erro ao desbloquear a base de datos: chave composta non válida. Desactivouse o desbloqueo biométrico, ao parecer, o contrasinal principal almacenado xa non é válido.</string>
<string name="fingerprint_reenable">Volve activar o desbloqueo biométrico para o novo contrasinal principal.</string>
<string name="fingerprint_reenable2">Desbloquea co teu contrasinal e, a continuación, volve activar o Desbloqueo biométrico na configuración da base de datos.</string>
<string name="FingerprintInitFailed">Produciuse un erro ao inicializar a autenticación biométrica.</string>
<string name="FingerprintSetupFailed">Produciuse un erro ao cifrar os datos. Isto pode ocorrer se engades ou eliminas impresións dixitais na configuración do sistema mentres Keepass2Android escoita a túa impresión dixital.</string>
<string name="enable_fingerprint_unlock_Info">Isto almacenará o teu contrasinal principal neste dispositivo, cifrado co almacén de claves de Android e protexido mediante a autenticación biométrica. Permite desbloquear a súa base de datos só mediante biometría.</string>
<string name="enable_fingerprint_quickunlock_Info">Permite usar a autenticación biométrica en lugar do código QuickUnlock. Non almacena ningunha información relacionada co teu contrasinal principal.</string>
<string name="enter_filename">Introduza o nome do arquivo da súa base de datos</string>
<string name="entry_accessed">Accedido</string>
<string name="entry_cancel">Cancelar</string>
@@ -112,6 +121,8 @@
<string name="entry_user_name">Nome de usuario</string>
<string name="entry_extra_strings">Campos adicionais</string>
<string name="entry_binaries">Arquivos adxuntos</string>
<string name="entry_history">Versións anteriores</string>
<string name="error_can_not_handle_uri">Keepass2Android non pode xestionar este URI.</string>
<string name="error_could_not_create_group">Erro na creación do grupo.</string>
<string name="error_could_not_create_parent">Non se puido crear o directorio pai.</string>
<string name="error_database_exists">Este arquivo xa existe.</string>
@@ -128,6 +139,7 @@
<string name="error_rounds_not_number">A serie debe ser un número.</string>
<string name="error_param_not_number">O parámetro debe ser un número.</string>
<string name="error_title_required">Requírese un título.</string>
<string name="error_wrong_length">Introduza un número enteiro positivo no campo de lonxitude</string>
<string name="FileNotFound">Non se atopou o arquivo.</string>
<string name="file_browser">Explorador de arquivos</string>
<string name="generate_password">Xerar contrasinal</string>
@@ -139,9 +151,11 @@
<string name="hint_keyfile">arquivo chave</string>
<string name="hint_length">lonxitude</string>
<string name="hint_pass">contrasinal</string>
<string name="hint_keyfile_path">Ruta da chave privada SSH</string>
<string name="hint_login_pass">Contrasinal</string>
<string name="hint_title">nome</string>
<string name="hint_url">URL</string>
<string name="hint_override_url">sobreescribir o URL</string>
<string name="hint_tags">etiqueta1, etiqueta2</string>
<string name="hint_username">nome de usuario</string>
<string name="InvalidPassword">Contrasinal ou arquivo chave non válido.</string>
@@ -158,10 +172,15 @@
<string name="MaskedPassword">*****</string>
<string name="maskpass_title">Ocultar contrasinal</string>
<string name="maskpass_summary">Ocultar contrasinais por defecto</string>
<string name="masktotp_title">Máscara de campo TOTP</string>
<string name="masktotp_summary">Ocultar o campo TOTP por defecto</string>
<string name="NoAutofillDisabling_title">Non hai opción para desactivar o enchemento automático</string>
<string name="NoAutofillDisabling_summary">Se está activada, a aplicación non mostrará a opción para desactivar o enchido automático para entradas específicas.</string>
<string name="menu_about">Acerca de</string>
<string name="menu_change_key">Modificar contrasinal mestre</string>
<string name="menu_copy_pass">Copiar contrasinal</string>
<string name="menu_copy_user">Copiar usuario</string>
<string name="menu_copy_totp">Copia TOTP</string>
<string name="menu_create">Crear</string>
<string name="menu_app_settings">Axustes</string>
<string name="menu_db_settings">Axustes da base de datos</string>
@@ -188,6 +207,8 @@
<string name="no">Non</string>
<string name="no_keys">Non hai entradas da base de datos ou grupo.</string>
<string name="no_results">Sen resultados na busca</string>
<string name="no_url_handler">Non hai controlador para este URL.</string>
<string name="open_recent">Abrir base de datos recente (toca para abrir)</string>
<string name="omitbackup_title">Non buscar en entradas de copias de seguridade nin papeleiras de reciclaxe</string>
<string name="omitbackup_summary">Omitir os grupos de \'Copia de seguridade\' e papeleira de reciclaxe nos resultados de busca</string>
<string name="pass_filename">Nome do arquivo da base de datos KeePass</string>
@@ -202,6 +223,8 @@
<string name="edit">Editar</string>
<string name="rijndael">Rijndael (AES)</string>
<string name="root">Root</string>
<string name="AutoReturnFromQuery_title">Volver automaticamente da pantalla de consulta</string>
<string name="AutoReturnFromQuery_summary">Ao buscar unha entrada para unha aplicación ou sitio web: volve automaticamente da pantalla de consulta se só hai unha entrada coincidente na base de datos.</string>
<string name="KeyDerivFunc">Función de derivación de claves</string>
<string name="rounds">Series de encriptación</string>
<string name="rounds_explaination">Maior nivel de encriptación proporciona unha protección adicional contra ataques de forza bruta, pero pode retardar a carga e o gardado.</string>
@@ -213,6 +236,7 @@
<string name="saving_database">Gardando 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="export_keyfile_successful">O ficheiro de chave exportouse correctamente!</string>
<string name="space">Espazo</string>
<string name="search_label">Buscar</string>
<string name="show_password">Mostrar contrasinal</string>
@@ -222,11 +246,25 @@
<string name="sort_moddate">Ordenar pola data de modificación</string>
<string name="sort_default">Manter a orde predeterminada</string>
<string name="special">Especial</string>
<string name="special_extended">Especial ampliado</string>
<string name="at_least_one_from_each_group">Polo menos un de cada grupo</string>
<string name="exclude_lookalike">Excluír caracteres parecidos</string>
<string name="password_generation_profile">Perfil</string>
<string name="save_password_generation_profile_text">Introduza o nome do perfil para gardar. Introduza un nome existente para sobrescribir.</string>
<string name="hint_wordcount">Contador de palabras de frase de contrasinal</string>
<string name="hint_wordseparator">Separador de palabras</string>
<string-array name="PasswordGeneratorModes">
<item>Contrasinal</item>
<item>Passphrase</item>
<item>Passphrase + Password</item>
<item>Frase de contrasinal</item>
<item>Contrasinal + Contrasinal</item>
</string-array>
<string-array name="PasswordGeneratorCaseModes">
<item>minúscula</item>
<item>MAIÚSCULAS</item>
<item>Primeiro carácter en maiúscula</item>
</string-array>
<string name="custom_settings">Configuración personalizada</string>
<string name="passphrase_capitalization">Frases de paso en maiúsculas</string>
<string name="search_hint">Atopar o que</string>
<string name="search_results">Resultados de busca</string>
<string name="search_in">Buscar en</string>
@@ -236,6 +274,7 @@
<string name="twofish">Twofish</string>
<string name="underline">Subliñado</string>
<string name="unsupported_db_version">Versión de base de datos non soportada.</string>
<string name="uppercase">Maiúscula</string>
<string name="warning_read_only">A súa tarxeta SD é actualmente de só lectura. Polo que non poderá gardar cambios na súa base de datos.</string>
<string name="warning_unmounted">Non ten ningúnha tarxeta SD montada no dispositivo. Non vai poder cargar ou crear unha base de datos.</string>
<string name="version_label">Versión</string>
@@ -243,17 +282,27 @@
<string name="author">Keepass2Android foi desenrolado por Philipp Crocoll.</string>
<string name="further_authors">Grazas ás contribucións de código de %1$s.</string>
<string name="designers">Grazas ás contribucións dos deseños de iconas e deseño gráfico de %1$s.</string>
<string name="supporters">Grazas ao apoio financeiro de %1$s.</string>
<string name="credit_plugin1">O plugin de cifrado Twofish foi desenrolado por Scott Greenberg e está incluído en KP2A.</string>
<string name="credit_android_filechooser">o selector de arquivos para Android foi desenrolado por Hai Bison</string>
<string name="credit_keyboard">O teclado KP2A está baseado no teclado Gigerbread do proxecto Android Open Source e usa o código Plugin Manager do Hacker\'s Keyboard de Klaus Weidner.</string>
<string name="please_note">Teña en conta</string>
<string name="contributors">Colaboradores</string>
<string name="regular_expression">Expresión regular</string>
<string name="AlwaysMergeOnConflict_title">Combina sempre en conflito</string>
<string name="AlwaysMergeOnConflict_summary">Cando Keepass2Android detecte que se modificou o ficheiro remoto, combine sempre os cambios locais cos cambios remotos.</string>
<string name="TanExpiresOnUse_title">TAN caduca ao usar</string>
<string name="TanExpiresOnUse_summary">Marcar entradas TAN como expiradas cando usadas</string>
<string name="ShowUsernameInList_title">Amosar nome de usuario na lista</string>
<string name="ShowUsernameInList_summary">Amosar nomes de usuario por debaixo dos títulos. Útil se hai varias contas ou TANs.</string>
<string name="RememberRecentFiles_title">Lembrar bases de datos</string>
<string name="RememberRecentFiles_summary">Lembrar bases de datos abertas recentemente e amosalas na pantalla de inicio da base de datos.</string>
<string name="NoDalVerification_title">Sen verificación DAL</string>
<string name="NoDalVerification_summary">Desactiva a verificación de se o dominio e o paquete da aplicación coinciden</string>
<string name="InlineSuggestions_title">Integrar co teclado</string>
<string name="InlineSuggestions_summary">Mostra as suxestións de enchemento automático como opcións integradas no teclado (se o método de entrada o admite)</string>
<string name="LogAutofillView_title">Vista de recheo automático do rexistro</string>
<string name="LogAutofillView_summary">Escribe detalles sobre a vista de enchemento automático para o rexistro de depuración (se o rexistro de depuración está activado). Estes detalles pódense enviar ao programador se o enchemento automático non funciona como se esperaba.</string>
<string name="excludeExpiredEntries">Exluir entradas expiradas</string>
<string name="search_options">Opcións</string>
<string name="caseSensitive">Distinguir maiúsculas de minúsculas</string>

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.net-->
<resources>
<string name="about_feedback">משוב</string>
<string name="AboutText">Keepass2Android הוא מנהל סיסמאות המאפשר לקרוא/לכתוב מסדי נתונים של KeePass2 באנדרואיד.</string>
@@ -270,4 +269,5 @@
<item>KP2A Private/Public key</item>
<item>Custom Private key</item>
</string-array>
<string name="english_ime_settings">הגדרות של מקלדת אנדרואיד</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Povratna informacija</string>
<string name="AboutText">Keepass2Android je upravitelj lozinki koji pruža pregled i uređivanje KeePass 2.x baza podataka na Android uređajima.</string>
@@ -755,6 +755,5 @@
<string name="switch_ime_reopen">Pokušaj ponovno</string>
<string name="AutofillWarning_title">Upozorenje Sigurnosti: Nepoznata domena/veza aplikacije</string>
<string name="AutofillWarning_trustAsBrowser">Prehvati uvijek u \"%1$s\"</string>
<string name="english_ime_settings">Postavke tipkovnice za Keepass2Android</string>
</resources>
<string name="english_ime_settings">Postavke tipkovnice za Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Visszajelzés</string>
<string name="AboutText">Keepass2Android egy jelszókezelő alkalmazás, amely KeePass 2.x adatbázisokhoz írás-olvasási hozzáférést biztosít Android eszközökön.</string>
@@ -766,6 +766,5 @@
<string name="AutofillWarning_Intro">A(z) \"%1$s\" tartományhoz tartozó azonosítókat készül a(z) \"%2$s\" alkalmazás számára elérhetővé tenni.</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Ha megbízik abban, hogy a(z) \"%1$s\" tartomány a(z) \"%2$s\" alkalmazáshoz tartozik, vagy megbízik abban, hogy az alkalmazás nem él vissza a titkos adatokkal (mert például egy megbízható böngészőprogram), folytassa. Ha nem, szakítsa meg a folyamatot.</string>
<string name="AutofillWarning_trustAsBrowser">Mindig fogadja el itt: \"%1$s\"</string>
<string name="english_ime_settings">Keepass2Android billentyűzetbeállítások</string>
</resources>
<string name="english_ime_settings">Keepass2Android billentyűzetbeállítások</string>
</resources>

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.net-->
<resources>
<string name="about_feedback">Umpan balik</string>
<string name="AboutText">Keepass2Android adalah pengelola sandi yang menyediakan akses baca/tulis ke basis data KeePass 2.x pada Android.</string>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Commenti</string>
<string name="AboutText">Keepass2Android è un gestore di password per Android che supporta l\'accesso in lettura/scrittura ai database di KeePass 2.x.</string>
@@ -151,6 +151,7 @@
<string name="hint_keyfile">file chiave</string>
<string name="hint_length">lunghezza</string>
<string name="hint_pass">password</string>
<string name="hint_keyfile_path">Percorso chiave privata SSH</string>
<string name="hint_login_pass">Password</string>
<string name="hint_title">nome</string>
<string name="hint_url">URL</string>
@@ -400,6 +401,14 @@
<string name="ShowSeparateNotifications_summary">Mostra notifiche separate per la copia di nome utente e password nella clipboard e per l\'attivazione della tastiera.</string>
<string name="AccServiceAutoFill_prefs">Servizio Accessibilità per Compilazione automatica</string>
<string name="AutoFill_prefs">Servizio di Compilazione automatica</string>
<string name="AutoFillTotp_prefs_ShowNotification_summary">Quando si riempie automaticamente (autofill) una voce con TOTP, mostrare la notifica di immissione con un pulsante Copia TOTP</string>
<string name="AutoFillTotp_prefs_ShowNotification_title">Mostra notifica voce</string>
<string name="AutoFillTotp_prefs_title">Riempimento automatico per le voci TOTP</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_title">Copiare TOTP negli Appunti</string>
<string name="AutoFillTotp_prefs_CopyTotpToClipboard_summary">Quando si completa una voce con TOTP, copiare il TOTP negli appunti</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_summary">Quando si riempie una voce con TOTP, attivare la tastiera integrata. La tastiera ha un pulsante TOTP.</string>
<string name="AutoFillTotp_prefs_ActivateKeyboard_title">Attiva tastiera integrata</string>
<string name="TotpCopiedToClipboard">TOTP copiato negli appunti</string>
<string name="ShowKp2aKeyboardNotification_title">Notifica della tastiera KP2A</string>
<string name="ShowKp2aKeyboardNotification_summary">Rendi la voce selezionata accessibile tramite la tastiera KP2A (raccomandato).</string>
<string name="OpenKp2aKeyboardAutomatically_title">Cambia tastiera</string>
@@ -416,6 +425,7 @@
<string name="ShowUnlockedNotification_summary">Visualizza un\'icona di notifica quando il database è sbloccato.</string>
<string name="IconVisibilityInfo_Android8_text">Android 8 ha introdotto un nuovo comportamento per le notifiche. Se vuoi nascondere l\'icona per le notifiche di Keepass2Android, devi configurarlo nelle impostazioni di sistema. Imposta a Minimo l\'importanza della categoria delle notifiche.</string>
<string name="IconVisibilityInfo_Android8_btnSettings">Apri le impostazioni</string>
<string name="PostNotificationsPermissionInfo_text">Keepass2Android può visualizzare una notifica di sistema mentre il database non è bloccato. Per far si che funzioni devi concedergli il permesso.</string>
<string name="DontCare">Non mi importa</string>
<string name="DocumentAccessRevoked">Il file non è più accessibile da Keepass2Android. O è stato rimosso, o sono state revocate le autorizzazioni di accesso. Si prega di riaprire il file, ad esempio utilizzando Cambia database.</string>
<string name="PreloadDatabaseEnabled_title">Precarica il file di database</string>
@@ -500,9 +510,27 @@
<string name="hint_sftp_host">host (es: 192.168.0.1)</string>
<string name="hint_sftp_port">porta</string>
<string name="initial_directory">Cartella iniziale (opzionale):</string>
<string name="connect_timeout">Secondi timeout connessione (opzionale)</string>
<string name="enter_sftp_login_title">Inserisci i dati di accesso SFTP:</string>
<string name="sftp_auth_mode">Modalità di autenticazione</string>
<string name="send_public_key">Invio chiave pubblica...</string>
<string name="select_private_keyfile">Seleziona chiave privata...</string>
<string name="hint_sftp_key_name">Nuovo nome della chiave</string>
<string name="hint_sftp_key_content">Nuovo contenuto chiave</string>
<string name="private_key_saved">Chiave privata salvata</string>
<string name="private_key_save_failed">Fallito il tentativo di salvare la chiave privata: %1$s</string>
<string name="private_key_info">Inserisci il nome e il contenuto della chiave da salvare</string>
<string name="private_key_delete">Chiave privata eliminata: %1$s</string>
<string name="private_key_delete_failed">Fallito il tentativo di salvare la chiave privata: %1$s</string>
<string name="save_key">Salva Chiave Privata</string>
<string name="delete_key">Elimina Chiave Privata</string>
<string name="private_key_select">Seleziona chiave privata</string>
<string name="private_key_create_new">[Aggiungi Nuovo...]</string>
<string name="hint_sftp_key_passphrase">Passphrase chiave (opzionale)</string>
<string name="sftp_kex_title">Algoritmo Di Scambio Di Chiavi (Kex) (Opzionale)</string>
<string name="hint_sftp_kex">Nomi separati da virgole</string>
<string name="sftp_shk_title">Algoritmo Chiave Host Del Server (Opzionale)</string>
<string name="hint_sftp_shk">Nomi separati da virgole</string>
<string name="enter_ftp_login_title">Inserisci i dati di accesso FTP:</string>
<string name="enter_mega_login_title">Inserisci i dati di accesso dell\'account MEGA:</string>
<string name="select_storage_type">Seleziona il tipo di archiviazione:</string>
@@ -520,7 +548,9 @@
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_gdriveKP2A">Google Drive (file KP2A)</string>
<string name="filestoragehelp_gdriveKP2A">Se non vuoi dare a KP2A accesso completo al tuo Google Drive completo, puoi selezionare questa opzione. Nota che è necessario prima creare un file di database, i file esistenti non sono visibili per l\'app. Scegli questa opzione dalla schermata Crea database o, se hai già aperto un database, esportando il database scegliendo questa opzione.</string>
<string name="filestoragename_pcloud">PCloud (KP2A folder)</string>
<string name="filestoragehelp_pcloud">Questo tipo di archiviazione richiederà l\'accesso solo alla cartella pCloud \"Applicazioni/Keepass2Android\". Se desideri utilizzare un database esistente dal tuo account pCloud, assicurati che il file sia posizionato in questa cartella pCloud.</string>
<string name="filestoragename_pcloudall">PCloud (accesso completo)</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_onedrive2">OneDrive</string>
<string name="filestoragename_onedrive2_full">Tutti i file e gli elementi condivisi</string>
@@ -566,12 +596,14 @@
<string name="CouldntLoadChalAuxFile_Hint">Usa il plugin KeeChallenge in KeePass 2.x (PC) per configurare il database per l\'utilizzo del protocollo challenge-response!</string>
<string name="ErrorUpdatingChalAuxFile">Errore nell\'aggiornamento del file OTP ausiliario!</string>
<string name="TrayTotp_SeedField_title">Nome del campo \"Seed TOTP\"</string>
<string name="TOTP">TOTP</string>
<string name="TrayTotp_SeedField_summary">Se stai usando il plugin \"TrayTotp\" di Keepass 2 con impostazioni personalizzate, inserisci qui il nome del campo \" campo seed\" in base a quanto impostato sul PC.</string>
<string name="TrayTotp_SettingsField_title">Nome del campo \"impostazioni TOTP\"</string>
<string name="TrayTotp_SettingsField_summary">Inserisci qui il nome del campo \"campo impostazioni\" per TrayTotp.</string>
<string name="TrayTotp_prefs">TrayTotp</string>
<string name="DebugLog_prefs_prefs">File di log per il debug</string>
<string name="DebugLog_title">Usa il file di log</string>
<string name="FtpDebug_title">FTP/SFTP debug logging</string>
<string name="DebugLog_summary">Scrive l\'output dell\'app in un file di log locale</string>
<string name="DebugLog_send">Invia il log di debug...</string>
<string name="loading">Caricamento…</string>
@@ -667,6 +699,26 @@
<string name="EntryChannel_desc">Notifica per semplificare l\'accesso alla voce attualmente selezionata.</string>
<string name="CloseDbAfterFailedAttempts">Chiudi il database dopo tre tentativi di sblocco biometrici falliti.</string>
<string name="WarnFingerprintInvalidated">Attenzione! L\'autenticazione biometrica può essere invalidata da Android, ad es. dopo aver aggiunto una nuova impronta digitale nelle impostazioni del dispositivo. Assicurati di sapere sempre come sbloccare con la tua password principale!</string>
<string-array name="ChangeLog_1_11">
<item>Aggiunti pulsanti di azione fluttuanti per la ricerca e TOTP panoramica (se sono presenti voci TOTP).</item>
<item>Vista migliorata dei campi TOTP aggiungendo un indicatore di tempo limite e mostrandolo in modo più evidente.</item>
<item>TOTP ora può essere visto dalla vista di gruppo.</item>
<item>Copia il valore del testo negli Appunti premendo a lungo nella vista entrate.</item>
<item>Reso TOTP più facilmente accessibile dalla tastiera integrata.</item>
<item>Mostra le notifiche d\'immissione automatica di una voce TOTP. Questo permette di copiare il TOTP negli appunti. Vedi le preferenze per configurare il comportamento.</item>
<item>Implementazione TOTP aggiornata per risolvere problemi di compatibilità con KeePass2 e TrayTOTP</item>
<item>Miglioramenti minori</item>
</string-array>
<string-array name="ChangeLog_1_11_net">
<item>Aggiorna pCloud SDK per fornire l\'accesso alle cartelle condivise</item>
</string-array>
<string-array name="ChangeLog_1_10">
<item>Aggiungi il supporto per le autorizzazioni di notifica su Android 13+</item>
<item>Migliora l\'implementazione FTP e SFTP</item>
<item>Aggiunto accesso completo a pCloud</item>
<item>Consenti di selezionare la lingua di sistema nella finestra di dialogo della lingua</item>
<item>Risolvi il problema con memorizzazione del file chiave e tipo di password sfidante</item>
</string-array>
<string-array name="ChangeLog_1_09e">
<item>Correzione bug per crash e logout non previsti</item>
<item>Passa alla nuova implementazione SFTP, supportando moderni algoritmi a chiave pubblica come rsa-sha2-256</item>
@@ -732,6 +784,124 @@
<item>Correzioni di bug</item>
<item>Correzioni di bug</item>
</string-array>
<string name="ChangeLog_1_07b"> Versione 1.07b\n
* Migliorata la performance di Argon2 usando l\'implementazione nativa (Grazie a Chih-Hsuan Yen!)\n
* Consentita la disabilitazione dell\'impronta digitale cliccando sull\'icona dell\'impronta (evita problemi con i lettori d\'impronte sottoschermo, grazie a marcoDallas!)\n
* Ripristino della posizione del cursore quando si attiva/disattiva la visibilità della password (grazie a DDoSolitary!)\n
* Miglioramenti nell\'implementazione di pCloud (grazie ancora a gilbsgilbs!)\n
* Aggiunto il supporto della Compilazione automatica per molti altri browser \n
* Nuova implementazione per OneDrive: Include il supporto per OneDrive for Business, elementi condivisi, ambiti d\'accesso selezionabili, account multipli e risolve problemi con l\'accesso offline\n
* Correzione d\'errori
</string>
<string name="ChangeLog_1_07">Versione 1.07\n
* Sistema i crash su Android 9 di Samsung\n
  * Permette di aprire più database, compatibile con KeeAutoExec\n
     * SFTP: Consente l\'autenticazione con chiave pubblica, controlla se la chiave dell\'host è stata modificata\n
     * Introduce il supporto a pCloud - grazie a gilbsgilbs!\n
     * Rende esplicito il supporto per Nextcloud\n
     * Migliora il salvataggio e l\'aggiornamento degli allegati alle voci\n
     * Altre opzioni per adattare il comportamento alle preferenze personali\n
     * SSL: Fiducia ai certificati utente\n
* Migliorato autocompletamento (adesso funziona con Firefox, permette di ridurre i popup)\n
     * Correzioni di bug\n
</string>
<string name="ChangeLog_1_06">Versione 1.06\n
* passato a ykDroid al posto di YubiChallenge come app per Yubikey Challenge-Response.\n
* implementato il supporto per il Challenge-Response di KeepassXC. Nota: Il formato del database deve essere KDBX4!\n
* blocco al caricamento dei file cestinati da Google Drive\n
* scambiato implementazioneTLS per FTPS, aggiunto un rimedio al bug JSch con server che supportano gssapi-with-mic\n
* bugfix\n
</string>
<string name="ChangeLog_1_05"> Versione 1. 5\n
* Usa canali di notifica per Android 8, consentendo la configurazione tramite le impostazioni di sistema\n
* Mostra l\'icona di voce nella notificazione\n
* Usa le icone adattive per Android 8, utilizzare l\'icona round launcher per Android 7\n
* Consenti di attivare la ricerca al momento dello sblocco (vedi impostazioni)\n
* Modificato il modo in cui i file sono scritti attraverso il quadro di accesso all\'archiviazione, corregge i problemi con l\'aggiornamento dei file su Google Drive aperti tramite il selettore di file di sistema\n
* Aggiunti alcuni testi di informazioni per evitare alcuni malintesi comuni\n
* Creare backup locali dei database aperti con successo per ridurre il rischio di perdita di dati\n
* Aggiornato JSch per supportare i cifrari SSH più recenti\n
* Consenti di modificare le impostazioni di connessione, e. . when WebDav password changed\n
* Aggiunto il supporto per la modalità password statica di Yubikey Neo\n
* Consente di disabilitare il suggerimento di Autofill\n
* Risolto la perdita di dati al logcat\n
* correzioni di bug\n
</string>
<string name="ChangeLog_1_04b"> Versione 1.04b\n
* Evita il crash quando l\'utente tenta di abilitare la Compilazione automatica su dispositivi Huawei.\n
</string>
<string name="ChangeLog_1_04"> Versione 1.04\n
* Aggiunto il Servizio di compilazione automatica per Android 8.0 e successivi.\n
* Aggiornati librerie e strumenti di compilazione e versione target SDK.\n
</string>
<string name="ChangeLog_1_03">Versione 1.03\n
* Rimosso il servizio di Accessibilità per la compilazione automatica come richiesto da Google. Vedi le impostazioni di inserimento password per trovare un plugin con le stesse funzionalità precedenti.\n
* Aggiunta di nuovo app di terze parti come opzione di archiviazione\n
* Visualizzatore di immagini integrato per la visione delle immagini allegate senza trasferirle ad altre app\n
* OkHttp aggiornato per risolvere problemi con alcune connessioni\n
* Supporto per le voci KeeTrayTOTP, ora supporta le voci di Steam\n </string>
<string name="ChangeLog_1_02"> Versione 1.02\n
* Diversi miglioramenti di sicurezza. Un sincero ringraziamento per i rapporti di sicurezza di jean-baptiste.cayrou@thalesgroup.com e vincent.fargues@thalesgroup.com e per la loro collaborazione!\n
* Supporto per KeyboardSwapPlugin (vedi le opzioni di accesso per le password): consente il cambio automatico del metodo di input su dispositivi senza permessi di root. Ringrazio Mishaal Rahman di XDA-Developers per averlo reso possibile.\n
* Correzione per il servizio Accessibilità con le versioni recenti di Chrome\n
* Correzione per la pulizia non necessaria dei dati delle impronte digitali\n
* Risolti problemi di instabilità minori\n
* Aggiornamento di Dropbox SDK per assicurare compatibilità futura\n
* Rimosso il sistema di segnalazione di errori tramite Xamarin Insights\n
* Strumenti di sviluppo aggiornati\n
</string>
<string name="ChangeLog_1_01g">Versione 1.01-g\n
* Risolto l\'arresto dell\'app in modalità offline\n
* Correzione della codifica non corretta delle credenziali FTP(S)\n
* Correzione degli arresti dell\'app durante l\'utilizzo di OneDrive e su precedenti versioni di Android\n
* Ore mostrate come ora locale nella schermata di accesso\n
</string>
<string name="ChangeLog_1_01d">Versione 1.01-d\n
* Messa a punto per l\'elenco dei file di OneDrive\n
* Consente di ignorare gli errori dei certificati anche quando la verifica del nome host fallisce (non raccomandato per uso produttivo)\n
* Messa a punto per QuickUnlock che a volte non funziona nonostante il corretto codice di sblocco\n
</string>
<string name="ChangeLog_0_9_8c">Versione 0.9.8c\n
* risolta la vulnerabilità SSL in Microsoft Live SDK (usato per l\'accesso ai file via OneDrive)\n
* Bug risolto: la precedente versione conteneva due metodi di immissione (uno si bloccava)\n </string>
<string name="ChangeLog_1_01"> Versione 1.01\n
* aggiunto il supporto per il nuovo formato KDBX-4 (compatibile con Keepass 2.35) che include la derivazione di chiavi Argon2 e la crittografia ChaCha20.\n
* Riscritta l\'integrazione con l\'archiviazione file WebDav, ora permette di navigare fra i file e supporta crittografia modem.\n
* Riscritta l\'integrazione con l\'archiviazione file FTP, ora permette di navigare fra i file e supporta crittografia (FTPS).\n
* Aggiornato all\'SDK di OneDrive (il Live SDK usato in precedenza non è più aggiornato)\n
* Aggiornato all\'SDK versione 2 di Dropbox (la versione 1 precedentemente usata è sconsigliata).\n
* Aggiunto il supporto a OwnCloud.\n
* Chiede i permessi di archiviazione prima di aprire i file locali
</string>
<string name="ChangeLog_1_0_0e"> Versione 1.0.0e\n
* correzione per Sblocco con Impronta su vecchi dispositivi Samsung con Android 6\n
* aggiunto supporto nativo per dispositivi x86\n
* possibilità di nascondere la tastiera durante la scansione dell\'impronta\n
* aggiornato compilatore
</string>
<string name="ChangeLog_1_0_0">Versione 1.0.0\n
* sblocco con impronta (richiede Android 6.0+ o un dispositivo Samsung)\n
* aggiunto servizio Completamento Automatico (richiede Android 5.0+)\n
* aggiunto supporto per i modelli delle voci\n
* aggiuntamodalità \"non in linea\"\n
* consente di copiare le voci\n
* completamento automatico per i nomi dei campi\n
* consente di rimuovere voci dalla lista dei file recenti\n
* richiede le autorizzazioni in fase di esecuzione in Android 6.0\n
* bug risolti (nella tastiera incorporata, alla selezione di icone)\n
* aggiunta opzione per la segnalazione di errori\n
* aggiunti messaggi di aiuto in vari punti\n </string>
<string name="ChangeLog_0_9_9">Versione 0.9.9\n
* Interfaccia completamente riprogettata. Grazie mille a Stefano Pignataro (http://www.spstudio.at) per l\'assistenza!\n
* Consente di aggiungere icone personalizzate\n
* Supporta la modalità Multi Window sui dispositivi Samsung\n
* Aumentato il numero predefinito di cicli di cifratura per i nuovi database\n
* Controlla la presenza di chiavi duplicate tra i campi aggiuntivi per evitare la perdita di dati\n</string>
<string name="ChangeLog_0_9_9c">Versione 0.9.9c\n
* Il tema scuro è tornato\n
* Puoi installare altri pacchetti di icone (le vecchie icone in stile Windows sono disponibili sul Play Store)\n
* Aggiunta richiesta di conferma prima di eliminare voci senza passare dal cestino\n
* Correzione errori (errata visualizzazione dell\'OTP-secret, icona dell\'app errata in certi posti)\n </string>
<string name="ChangeLog_keptDonate">Estesa la possibilità di donare una birra o qualcos\'altro</string>
<string-array name="clipboard_timeout_options">
<item>30 secondi</item>
@@ -800,6 +970,7 @@
<string name="autofill_enable_for">Attiva Compilazione automatica per %1$s</string>
<string name="invalid_link_association">Non è possibile associare il dominio web %1$s con l\'app %2$s</string>
<string name="enable_fingerprint_hint">Keepass2Android ha rilevato il sensore biometrico. Desideri attivare lo sblocco biometrico per questo database?</string>
<string name="post_notifications_dialog_notnow">Non ora</string>
<string name="understand">Ho capito</string>
<string name="dont_show_again">Non mostrare più</string>
<string name="masterkey_infotext_head">Ricordi la tua password principale?</string>
@@ -818,6 +989,5 @@
<string name="AutofillWarning_Intro">Stai per inserire le credenziali per il dominio \"%1$s\" nell\'app \"%2$s\"</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Se ti fidi di \"%2$s\" ad appartenere a \"%1$s\" o se ti fidi dell\'app \"%2$s\" a non abusare delle credenziali (es. perché si tratta di un\'applicazione sicura), è possibile continuare. Altrimenti si prega di annullare.</string>
<string name="AutofillWarning_trustAsBrowser">Accetta sempre in \"%1$s\"</string>
<string name="english_ime_settings">Impostazioni tastiera Keepass2Android</string>
</resources>
<string name="english_ime_settings">Impostazioni tastiera Keepass2Android</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">フィードバック</string>
<string name="AboutText">Keepass2Android は Android で KeePass 2.x データベースを読み書きするパスワードマネージャーです。</string>
@@ -109,7 +109,7 @@
<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_expires">使用期限</string>
<string name="entry_group_name">グループ名</string>
<string name="entry_keyfile">キーファイル (オプション)</string>
<string name="keyfile_heading">キーファイル</string>
@@ -305,7 +305,7 @@
<string name="LogAutofillView_summary">(デバッグログが有効な場合) 自動入力表示に関する詳細をデバッグログに書き込みます。自動入力が予想に反する動作をした場合、これらの詳細を開発者に送信することができます。</string>
<string name="requires_android11">Android 11 以上が必要</string>
<string name="kp2a_findUrl">パスワードを探す</string>
<string name="excludeExpiredEntries">期限切れのエントリーを除外する</string>
<string name="excludeExpiredEntries">使用期限切れのエントリーを除外する</string>
<string name="search_options">オプション</string>
<string name="caseSensitive">大文字と小文字を区別する</string>
<string name="start_open_file">ファイルを開く...</string>
@@ -468,10 +468,10 @@
<string name="SynchronizingDatabase">変更をマージしています…</string>
<string name="YesSynchronize">はい、マージします</string>
<string name="NoOverwrite">いいえ、上書きします</string>
<string name="UseOfflineMode">内部キャッシュのみで動作</string>
<string name="UseOfflineMode">内部キャッシュのみで使用する</string>
<string name="UseOnlineMode">キャッシュコピーをソースと同期</string>
<string name="UseOfflineMode_Info">データベースは内部キャッシュから読み込まれます。変更は内部キャッシュのみに保存され、キャッシュコピーをソースと同期を選択した場合のみ同期されます。</string>
<string name="InOfflineMode">内部キャッシュのみで動作</string>
<string name="InOfflineMode">内部キャッシュのみで動作</string>
<string name="SynchronizingCachedDatabase">キャッシュされたデータベースを同期しています…</string>
<string name="DownloadingRemoteFile">ソースファイルを読み込んでいます…</string>
<string name="UploadingFile">ファイルを保存しています…</string>
@@ -643,7 +643,7 @@
<string name="ReadOnlyReason_PreKitKat">外部アプリからファイルを開いたようです。ファイルへの書き込みはできません。データベースを編集する場合は、データベースを閉じて「データベースを変更」を選択してください。対応している場合は、いずれかのオプションからファイルを開くことができます。</string>
<string name="ReadOnlyReason_ReadOnlyFlag">読み取り専用フラグが設定されます。データベースを編集する場合は、このフラグを削除してください。</string>
<string name="ReadOnlyReason_ReadOnlyKitKat">Android KitKat で導入された制限のため、書き込みは不可能です。データベースを編集する場合は、データベースを閉じて「データベースを変更」を選択してください。その後、システムのファイル選択を使用してファイルを開いてください。</string>
<string name="ReadOnlyReason_LocalBackup">ローカルバックアップは変更できません。[データベースの設定] > [データベースをエクスポート] から、この自由に開ける場所へエクスポートしてください。その後、再び書き込み可能になります。</string>
<string name="ReadOnlyReason_LocalBackup">ローカルバックアップは変更できません。[データベースの設定] &gt; [データベースをエクスポート] から、この自由に開ける場所へエクスポートしてください。その後、再び書き込み可能になります。</string>
<string name="AddCustomIcon">ファイルからアイコンを追加...</string>
<string name="CopyingFile">ファイルをコピーしています...</string>
<string name="DuplicateTitle">コピー</string>
@@ -718,6 +718,32 @@
<string name="EntryChannel_desc">選択中のエントリーへ簡単にアクセスするための通知</string>
<string name="CloseDbAfterFailedAttempts">生体認証ロック解除に 3 回失敗すると、データベースを閉じます。</string>
<string name="WarnFingerprintInvalidated">警告! 生体認証は、例えば、新たな指紋をデバイスに追加したときなどに Android によって無効にされる可能性があります。常にマスターパスワードによる解除方法を覚えておいてください!</string>
<string-array name="ChangeLog_1_12">
<item>Xamarin Android から .net 8 にアップグレード</item>
<item>ターゲットを SDK 34 にアップグレード</item>
<item>ユーザーインターフェイスを Material 3 にアップグレード</item>
<item>Compose アプリでの自動入力機能を改善</item>
<item>自動入力と検索でホスト名の一致条件を修正</item>
</string-array>
<string-array name="ChangeLog_1_12_net">
<item>OneDrive SDK をバージョン 5.68 にアップグレード</item>
<item>Dropbox SDK をバージョン 7.0.0 にアップグレード</item>
<item>Gradle、NewtonsoftJson、FluentFTP、MegaApiClient、okhttp をアップグレード</item>
<item>WebDav ファイル選択のバグを修正</item>
</string-array>
<string-array name="ChangeLog_1_11">
<item>検索と TOTP 一覧 (TOTP エントリーが存在する場合) のフローティングアクションボタンを追加</item>
<item>タイムアウト表示を追加し、より目立つように TOTP フィールドの表示を改善</item>
<item>グループ表示から TOTP を確認できるように変更</item>
<item>エントリー表示の長押しでテキスト値をクリップボードにコピーできるよう変更</item>
<item>内蔵キーボードで、より簡単に TOTP へアクセスできるように変更</item>
<item>TOTP エントリーの自動入力時にエントリー通知を表示します。これにより、TOTP をクリップボードにコピーできます。動作は、設定でカスタマイズできます。</item>
<item>KeePass2 と TrayTOTP との互換性の問題を解決するためにTOTPの実装を更新</item>
<item>小さな改善</item>
</string-array>
<string-array name="ChangeLog_1_11_net">
<item>共有フォルダへアクセスできるように pCloud SDK を更新</item>
</string-array>
<string-array name="ChangeLog_1_10">
<item>Android 13 以降での通知権限への対応を追加</item>
<item>FTP と SFTP の実装を改善</item>
@@ -1168,6 +1194,5 @@
<string name="AutofillWarning_Intro">ドメイン「%1$s」のアカウント情報をアプリ「%2$s」に挿入しようとしています。</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">「%2$s」が信頼できて「%1$s」に属するか、アプリ「%2$s」を信頼していて、アカウント情報の誤用ではない場合 (信頼できるブラウザアプリなど) であれば続行しても問題ありません。そうでない場合はキャンセルしてください。</string>
<string name="AutofillWarning_trustAsBrowser">常に「%1$s」に同意</string>
<string name="english_ime_settings">Keepass2Android キーボードの設定</string>
</resources>
<string name="english_ime_settings">Keepass2Android キーボードの設定</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">의견 보내기</string>
<string name="AboutText">Keepass2Android는 Android에서 KeePass 2.x 데이터베이스에 대한 읽기/쓰기 액세스를 제공하는 암호 관리자입니다.</string>
@@ -745,6 +745,5 @@ Keepass2Android는 오프라인에서도 데이터베이스 파일의 사용이
<string name="AutofillWarning_Intro">\"%2$s\" 앱을 통해 \"%1$s\" 도메인에 신용 정보를 입력하려고 합니다</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">\"%1$s\"를 통해서 \"%2$s\"를 사용 하는 것에 대해 신뢰하시거나 \"%2$s\" 앱이 신용 정보를 남용하지 않을 것이라고 신뢰하신다면 (예: 검증된 브라우저 앱의 경우), 계속 하셔도 괜찮습니다. 그렇지 않다면 취소해 주십시오.</string>
<string name="AutofillWarning_trustAsBrowser">항상 \"%1$s\" 앱을 쓰는 경우를 제외함</string>
<string name="english_ime_settings">Keepass2Android 키보드 설정</string>
</resources>
<string name="english_ime_settings">Keepass2Android 키보드 설정</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">അഭിപ്രായം</string>
<string name="accept">അംഗീകരിക്കുക</string>
@@ -221,5 +221,5 @@
</string-array>
<string name="understand">എനിക്ക് മനസിലായി</string>
<string name="dont_show_again">വീണ്ടും കാണിക്കരുത്</string>
<string name="english_ime_settings">ആൻഡ്രോയിഡ് കീബോർഡ് ക്രമീകരണങ്ങൾ</string>
</resources>
<string name="english_ime_settings">ആൻഡ്രോയിഡ് കീബോർഡ് ക്രമീകരണങ്ങൾ</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Tilbakemelding</string>
<string name="AboutText">Keepass2Android er en android-utgave av KeePass passordbestyrer.</string>
@@ -589,6 +589,5 @@
<string name="backup_infotext_note">For å opprette en sikkerhetskopi nå, gå til %1$s &gt; %2$s &gt; %3$s.</string>
<string name="emergency_infotext_head">Er du forberedt på nødssituasjoner?</string>
<string name="emergency_infotext_main">Har du noen gang vurdert hva som skjer dersom du ikke lenger har tilgang til passorddatabasen? Hva om du blir utsatt for en ulykke? Det er god praksis å overlate hovednøkkelen til en person du stoler helt på i tilfelle en nødssituasjon. Ellers vil ingen ha tilgang til dine passord.</string>
<string name="english_ime_settings">Innstillinger for Keepass2Android tastatur</string>
</resources>
<string name="english_ime_settings">Innstillinger for Keepass2Android tastatur</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Terugkoppeling</string>
<string name="AboutText">Keepass2Android is een wachtwoordbeheerder die lees-/schrijftoegang biedt tot KeePass 2.x-databases op Android.</string>
@@ -977,6 +977,5 @@ ChangeLog_1_05 </string>
<string name="AutofillWarning_Intro">Je staat op het punt, om inloggegevens voor domein \"%1$s\" in te voegen in de app \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Als je vertrouwt dat \"%2$s\" tot \"%1$s\" behoort, of je vertrouwt dat app \"%2$s\" de inloggegevens niet misbruikt (bijvoorbeeld omdat het een vertrouwde browser-app is), kun je doorgaan. Anders annuleren.</string>
<string name="AutofillWarning_trustAsBrowser">Altijd accepteren in \"%1$s\"</string>
<string name="english_ime_settings">Instellingen voor Keepass2Android-toetsenbord</string>
</resources>
<string name="english_ime_settings">Instellingen voor Keepass2Android-toetsenbord</string>
</resources>

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.net-->
<resources>
<string name="about_feedback">Tilbakemelding</string>
<string name="AboutText">Keepass2Android er ei android-utgåve av KeePass passordstyrar.</string>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Opinie</string>
<string name="AboutText">Keepass2Android to menedżer haseł umożliwiający odczyt i zapis baz danych programu KeePass 2.x w systemie Android.</string>
@@ -718,6 +718,16 @@
<string name="EntryChannel_desc">Powiadomienie ułatwiające dostęp do aktualnie wybranego wpisu.</string>
<string name="CloseDbAfterFailedAttempts">Zamknij bazę danych po trzech nieudanych próbach odblokowania biometrycznego.</string>
<string name="WarnFingerprintInvalidated">Uwaga! Uwierzytelnienie biometryczne może zostać unieważnione przez Androida, np. po dodaniu nowego odcisku palca w ustawieniach urządzenia. Upewnij się, że zawsze wiesz, jak odblokować przy użyciu hasła głównego!</string>
<string-array name="ChangeLog_1_11">
<item>Dodano pływające przyciski szukania i podglądu TOTP (jeśli są wpisy TOTP).</item>
<item>Poprawa wyświetlania pól TOTP na wyraźniejsze i ze wskaźnikiem czasu.</item>
<item>TOTP są widoczne teraz w widoku grupy.</item>
<item>Skopiuj tekst do schowka po długim naciśnięciu w widoku wpisu.</item>
<item>TOTP łatwiej dostępne we wbudowanej klawiaturze.</item>
<item>Show entry notification when autofilling a TOTP entry. This allows to copy the TOTP to clipboard. See preferences to configure the behavior.</item>
<item>Updated TOTP implementation to resolve compatibility issues with KeePass2 and TrayTOTP</item>
<item>Małe poprawki</item>
</string-array>
<string-array name="ChangeLog_1_10">
<item>Dodaj wsparcie dla uprawnień do powiadomień na Androidzie 13+</item>
<item>Poprawia wdrażania FTP i SFTP</item>
@@ -890,6 +900,5 @@
<string name="AutofillWarning_Intro">Zamierzasz wstawić poświadczenia dla domeny \"%1$s\" do aplikacji \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Jeśli ufasz \"%2$s\" należącym do \"%1$s\" lub ufasz aplikacji \"%2$s\", aby nie używać danych logowania (np. ponieważ jest to zaufana aplikacja przeglądarki), jest w porządku, aby kontynuować. Jeśli nie, proszę anulować.</string>
<string name="AutofillWarning_trustAsBrowser">Akceptuj zawsze w \"%1$s\"</string>
<string name="english_ime_settings">Ustawienia klawiatury Keepass2Android</string>
</resources>
<string name="english_ime_settings">Ustawienia klawiatury Keepass2Android</string>
</resources>

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