Compare commits

...

20 Commits

Author SHA1 Message Date
Philipp Crocoll
b7276d1364 remove no-longer-sensible comment 2025-08-19 18:00:38 +02:00
Philipp Crocoll
58429ce0c4 attempt to fix app folder issue by creating it by an upload 2025-08-19 17:40:22 +02:00
Philipp Crocoll
5004a69bff modify release workflow to generate files as it was before on .net8 2025-08-19 11:19:52 +02:00
Philipp Crocoll
9628f2a1b8 manifest for 1.14-pre2 2025-08-12 17:36:03 +02:00
Philipp Crocoll
4cfdcb0f95 fix display issues with edge-to-edge when choosing file location; make file chooser look more modern 2025-08-12 17:23:13 +02:00
Philipp Crocoll
93d1eb9141 revert changes for https://github.com/PhilippC/keepass2android/issues/1617 because GnuTLS is currently not available for Android through FluentFTP 2025-08-12 14:43:37 +02:00
Philipp Crocoll
96f5953ed1 fix built-in keyboard padding on Android SDK 35 2025-08-12 14:04:29 +02:00
Philipp Crocoll
48b21b1006 manifest and changelog for 1.14-pre1 2025-07-29 17:33:10 +02:00
PhilippC
c7cdf5afcb Merge pull request #2948 from PhilippC/l10n_master3
New Crowdin updates
2025-07-29 17:32:45 +02:00
PhilippC
6d19a09c20 Merge pull request #2968 from PhilippC/feature/no-delete-history-element
Don't show delete-entry menu when viewing history elements
2025-07-29 17:32:35 +02:00
PhilippC
079756a2d7 New translations strings.xml (German) 2025-07-29 17:26:04 +02:00
Philipp Crocoll
9c43136e18 don't show some menu items when viewing history elements, closes #2967 2025-07-29 17:19:37 +02:00
PhilippC
38da94e6dd Merge pull request #2965 from PhilippC/feature/update-jsch
Update Jsch and switch to maven dependency. This adds more recent algorithms to the SFTP implementation and improves maintainability.
2025-07-29 17:13:47 +02:00
PhilippC
43c167073e New translations strings.xml (German) 2025-07-26 21:45:33 +02:00
PhilippC
1037e3306c New translations strings.xml (German) 2025-07-26 20:49:48 +02:00
PhilippC
08e818d4dc New translations strings.xml (Russian) 2025-07-23 17:19:06 +02:00
PhilippC
1946837277 New translations strings.xml (Turkish) 2025-07-22 22:10:08 +02:00
PhilippC
4cd91ed228 New translations strings.xml (French) 2025-07-22 08:24:00 +02:00
PhilippC
de4a18dfa1 New translations strings.xml (Czech) 2025-07-17 12:35:51 +02:00
PhilippC
f2c1dc00a1 New translations strings.xml (Portuguese, Brazilian) 2025-07-15 14:49:52 +02:00
43 changed files with 549 additions and 163 deletions

View File

@@ -136,7 +136,23 @@ jobs:
- name: List apks
run: find . -type f -name "*.apk"
shell: bash
- name: Rename apks
# after updating to .net9, the naming scheme of the output apks has changed. rename them to the old scheme
# for consistancy with previous releases
run: |
for apk in src/keepass2android-app/bin/Release/net9.0-android/android-*/publish/*-Signed.apk; do
[ -e "$apk" ] || continue # if glob above doesn't return anything, the loop is still executed once
arch=$(basename "$(dirname "$(dirname "$apk")")") # e.g. "android-arm64"
base=$(basename "$apk" .apk) # e.g. "keepass2android.keepass2android_nonet-Signed"
mv "$apk" "$(dirname "$apk")/${base}-${arch#android-}.apk"
done
shell: bash
- name: List apks
run: find . -type f -name "*.apk"
shell: bash
- name: Upload APK to GitHub Release
uses: softprops/action-gh-release@v2
with:

View File

@@ -8,7 +8,6 @@ using Android.Content;
using Android.OS;
using FluentFTP;
using FluentFTP.Exceptions;
using FluentFTP.GnuTLS;
using KeePass.Util;
using KeePassLib;
using KeePassLib.Serialization;
@@ -141,7 +140,6 @@ namespace keepass2android.Io
var settings = ConnectionSettings.FromIoc(ioc);
FtpClient client = new FtpClient();
client.Config.CustomStream = typeof(GnuTlsStream);
client.Config.RetryAttempts = 3;
if ((settings.Username.Length > 0) || (settings.Password.Length > 0))
client.Credentials = new NetworkCredential(settings.Username, settings.Password);

View File

@@ -1125,9 +1125,57 @@ namespace keepass2android.Io
}
}
public static async Task<DriveItem> GetOrCreateAppRootAsync(GraphServiceClient client, string dummyFileName = "welcome_at_kp2a.txt")
{
private async Task<List<FileDescription>> ListShares(OneDrive2ItemLocation<OneDrive2PrefixContainerType> parentPath, GraphServiceClient client)
try
{
return await client.RequestAdapter.SendAsync(
new Microsoft.Graph.Drives.Item.Items.Item.DriveItemItemRequestBuilder(
new Dictionary<string, object> {
{ "drive%2Did", "me" },
{ "driveItem%2Did", "special/approot" }
},
client.RequestAdapter
).ToGetRequestInformation(),
static (p) => DriveItem.CreateFromDiscriminatorValue(p)
);
}
catch (Microsoft.Kiota.Abstractions.ApiException ex) when (ex.ResponseStatusCode == 404)
{
// App folder doesnt exist yet → create it by uploading a dummy file
using var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes("init"));
var uploadRequest = new RequestInformation
{
HttpMethod = Method.PUT,
UrlTemplate = "{+baseurl}/me/drive/special/approot:/{filename}:/content",
PathParameters = new Dictionary<string, object>
{
{ "baseurl", client.RequestAdapter.BaseUrl },
{ "filename", dummyFileName }
},
Content = stream
};
var uploadedItem = await client.RequestAdapter.SendAsync<DriveItem>(
uploadRequest,
DriveItem.CreateFromDiscriminatorValue
);
var parentId = uploadedItem.ParentReference.Id;
var parentItemRequest = new DriveItemRequestBuilder(
$"{client.RequestAdapter.BaseUrl}/me/drive/items/{parentId}",
client.RequestAdapter
);
return await parentItemRequest.GetAsync();
}
}
protected virtual async Task<List<FileDescription>> ListShares(OneDrive2ItemLocation<OneDrive2PrefixContainerType> parentPath, GraphServiceClient client)
{
List<FileDescription> result = [];
@@ -1345,6 +1393,8 @@ namespace keepass2android.Io
}
}
protected override async Task<string?> GetSpecialFolder(
OneDrive2ItemLocation<OneDrive2AppFolderPrefixContainer> itemLocation, GraphServiceClient client)
@@ -1363,7 +1413,7 @@ namespace keepass2android.Io
Console.WriteLine(e);
throw;
}
}
return _specialFolderIdByDriveId[itemLocation.DriveId];
@@ -1378,8 +1428,55 @@ namespace keepass2android.Io
{
return drive.Name ?? MyOneDriveDisplayName;
}
public static async Task GetOrCreateAppRootAsync(GraphServiceClient client, string dummyFileName = "welcome_at_kp2a_app_folder.txt")
{
try
{
await client.RequestAdapter.SendAsync(
new Microsoft.Graph.Drives.Item.Items.Item.DriveItemItemRequestBuilder(
new Dictionary<string, object> {
{ "drive%2Did", "me" },
{ "driveItem%2Did", "special/approot" }
},
client.RequestAdapter
).ToGetRequestInformation(),
static (p) => DriveItem.CreateFromDiscriminatorValue(p)
);
//if this is successful, approot seems to exist
}
catch (Microsoft.Kiota.Abstractions.ApiException ex) when (ex.ResponseStatusCode == 404)
{
// App folder doesnt exist yet → create it by uploading a dummy file
using var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes("init"));
var uploadRequest = new RequestInformation
{
HttpMethod = Method.PUT,
UrlTemplate = "{+baseurl}/me/drive/special/approot:/{filename}:/content",
PathParameters = new Dictionary<string, object>
{
{ "baseurl", client.RequestAdapter.BaseUrl },
{ "filename", dummyFileName }
},
Content = stream
};
await client.RequestAdapter.SendAsync<DriveItem>(
uploadRequest,
DriveItem.CreateFromDiscriminatorValue
);
}
}
protected override async Task<List<FileDescription>> ListShares(OneDrive2ItemLocation<OneDrive2AppFolderPrefixContainer> parentPath, GraphServiceClient client)
{
await GetOrCreateAppRootAsync(client);
return await base.ListShares(parentPath, client);
}
public override bool CanListShares { get { return false; } }
protected override string MyOneDriveDisplayName => "Keepass2Android App Folder";
}

View File

@@ -10,19 +10,18 @@
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FluentFTP" Version="52.1.0" Condition="'$(Flavor)'!='NoNet'"/>
<PackageReference Include="FluentFTP.GnuTLS" Version="1.0.37" Condition="'$(Flavor)'!='NoNet'"/>
<PackageReference Include="MegaApiClient" Version="1.10.4" Condition="'$(Flavor)'!='NoNet'"/>
<PackageReference Include="Microsoft.Graph" Version="5.68.0" Condition="'$(Flavor)'!='NoNet'"/>
<PackageReference Include="Microsoft.Identity.Client" Version="4.67.1" Condition="'$(Flavor)'!='NoNet'"/>
<PackageReference Include="SMBLibrary" Version="1.5.4" Condition="'$(Flavor)'!='NoNet'"/>
<PackageReference Include="FluentFTP" Version="52.1.0" Condition="'$(Flavor)'!='NoNet'" />
<PackageReference Include="MegaApiClient" Version="1.10.4" Condition="'$(Flavor)'!='NoNet'" />
<PackageReference Include="Microsoft.Graph" Version="5.68.0" Condition="'$(Flavor)'!='NoNet'" />
<PackageReference Include="Microsoft.Identity.Client" Version="4.67.1" Condition="'$(Flavor)'!='NoNet'" />
<PackageReference Include="SMBLibrary" Version="1.5.4" Condition="'$(Flavor)'!='NoNet'" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.8.0" />
<PackageReference Include="Xamarin.AndroidX.Core" Version="1.13.1.5" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.11.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AndroidFileChooserBinding\AndroidFileChooserBinding.csproj" />
<ProjectReference Include="..\JavaFileStorageBindings\JavaFileStorageBindings.csproj" Condition="'$(Flavor)'!='NoNet'" />
<ProjectReference Include="..\JavaFileStorageBindings\JavaFileStorageBindings.csproj" Condition="'$(Flavor)'!='NoNet'" />
<ProjectReference Include="..\KeePassLib2Android\KeePassLib2Android.csproj" />
<ProjectReference Include="..\KP2AKdbLibraryBinding\KP2AKdbLibraryBinding.csproj" />
<ProjectReference Include="..\TwofishCipher\TwofishCipher.csproj" />
@@ -30,7 +29,7 @@
<ItemGroup>
</ItemGroup>
<ItemGroup Condition="'$(Flavor)'=='NoNet'">
<ItemGroup Condition="'$(Flavor)'=='NoNet'">
<None Remove="Io/OneDrive2FileStorage.cs" />
<Compile Remove="Io/OneDrive2FileStorage.cs" />
<Content Remove="Io/OneDrive2FileStorage.cs" />

View File

@@ -6,8 +6,8 @@ android {
defaultConfig {
minSdkVersion 21
targetSdkVersion 33
compileSdk 34
targetSdkVersion 35
compileSdk 35
}
buildTypes {
release {

View File

@@ -1,2 +1,3 @@
org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.jetifier.ignorelist = jsch-2.27.2.jar

View File

@@ -3,12 +3,12 @@ apply plugin: 'com.android.application'
android {
namespace "com.crocoapps.javafilestoragetest2"
compileSdkVersion 33
compileSdkVersion 35
defaultConfig {
applicationId "com.crocoapps.javafilestoragetest2"
minSdkVersion 21
targetSdkVersion 33
targetSdkVersion 35
versionCode 1
versionName "1.0"
multiDexEnabled true
@@ -35,6 +35,7 @@ dependencies {
implementation project(':android-filechooser')
implementation project(':JavaFileStorage')
implementation "androidx.annotation:annotation:1.5.0"
implementation "com.google.android.material:material:1.12.0"
}
configurations {

View File

@@ -547,8 +547,8 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
//storageToTest = new SkyDriveFileStorage("000000004010C234", appContext);
//storageToTest = new GoogleDriveAppDataFileStorage();
storageToTest = new WebDavStorage(new ICertificateErrorHandler() {
storageToTest = new GoogleDriveAppDataFileStorage();
/*storageToTest = new WebDavStorage(new ICertificateErrorHandler() {
@Override
public boolean onValidationError(String error) {
return false;
@@ -558,7 +558,7 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
public boolean alwaysFailOnValidationError() {
return false;
}
}, 64*1024);
}, 64*1024);*/
//storageToTest = new DropboxV2Storage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
//storageToTest = new DropboxFileStorage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);

View File

@@ -19,9 +19,12 @@ package keepass2android.softkeyboard;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.InflateException;
import android.view.View;
import android.view.WindowInsets;
import java.lang.ref.SoftReference;
import java.util.Arrays;
@@ -529,6 +532,28 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
}
}
mInputView.setOnKeyboardActionListener(mInputMethodService);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mInputView.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
// Untere Systembar-Höhe holen
int insetBottom = insets.getSystemWindowInsetBottom();
// Padding nur unten anpassen
v.setPadding(
v.getPaddingLeft(),
v.getPaddingTop(),
v.getPaddingRight(),
insetBottom
);
// Insets normal weiterreichen
return insets;
}
});
}
mLayoutId = newLayout;
}
mInputMethodService.mHandler.post(new Runnable() {

View File

@@ -4,11 +4,11 @@ android {
namespace 'group.pals.android.lib.ui.filechooser'
compileSdkVersion 33
compileSdkVersion 35
defaultConfig {
minSdkVersion 16
targetSdkVersion 33
targetSdkVersion 35
}
buildTypes {
@@ -30,4 +30,5 @@ android {
dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "com.google.android.material:material:1.12.0"
}

View File

@@ -20,6 +20,8 @@ import android.content.Context;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import androidx.core.view.WindowCompat;
import androidx.fragment.app.FragmentActivity;
import android.util.Log;
import android.view.KeyEvent;
@@ -242,6 +244,7 @@ public class FileChooserActivity extends FragmentActivity {
R.style.Afc_Theme_Dark));
super.onCreate(savedInstanceState);
setContentView(R.layout.afc_activity_filechooser);
Ui.adjustDialogSizeForLargeScreen(getWindow());

View File

@@ -49,6 +49,10 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
@@ -324,6 +328,19 @@ public class FragmentFiles extends Fragment implements
* INIT CONTROLS
*/
ViewCompat.setOnApplyWindowInsetsListener(rootView, (v, windowInsets) -> {
Insets systemBarsInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.navigationBars() | WindowInsetsCompat.Type.ime());
v.setPadding(
systemBarsInsets.left,
systemBarsInsets.top,
systemBarsInsets.right,
systemBarsInsets.bottom
);
return WindowInsetsCompat.CONSUMED;
});
return rootView;
}// onCreateView()

View File

@@ -8,8 +8,6 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/afc_ic_button_ok_saveas_light_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/afc_ic_button_ok_saveas_light_focused" android:state_focused="true"/>
<item android:drawable="@drawable/afc_ic_button_ok_saveas_light"/>
<item android:drawable="@drawable/save_icon"/>
</selector>

View File

@@ -8,8 +8,6 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/afc_ic_button_ok_saveas_dark_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/afc_ic_button_ok_saveas_dark_focused" android:state_focused="true"/>
<item android:drawable="@drawable/afc_ic_button_ok_saveas_dark"/>
<item android:drawable="@drawable/save_icon"/>
</selector>

View File

@@ -0,0 +1,16 @@
<?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.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Disabled -->
<item android:state_enabled="false"
android:drawable="@drawable/baseline_chevron_left_24_alpha30" />
<!-- Default -->
<item android:drawable="@drawable/baseline_chevron_left_24" />
</selector>

View File

@@ -1,15 +0,0 @@
<?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.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/afc_main_button_navi_left_pressed_dark" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/afc_main_button_navi_left_disabled_dark" android:state_enabled="false"/> <!-- enabled -->
<item android:drawable="@drawable/afc_main_button_navi_left_dark"/> <!-- default -->
</selector>

View File

@@ -1,15 +0,0 @@
<?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.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/afc_main_button_navi_left_pressed_light" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/afc_main_button_navi_left_disabled_light" android:state_enabled="false"/> <!-- enabled -->
<item android:drawable="@drawable/afc_main_button_navi_left_light"/> <!-- default -->
</selector>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Disabled -->
<item android:state_enabled="false"
android:drawable="@drawable/baseline_chevron_right_24_alpha30" />
<!-- Default -->
<item android:drawable="@drawable/baseline_chevron_right_24" />
</selector>

View File

@@ -1,15 +0,0 @@
<?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.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/afc_main_button_navi_right_pressed_dark" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/afc_main_button_navi_right_disabled_dark" android:state_enabled="false"/> <!-- enabled -->
<item android:drawable="@drawable/afc_main_button_navi_right_dark"/> <!-- default -->
</selector>

View File

@@ -1,15 +0,0 @@
<?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.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/afc_main_button_navi_right_pressed_light" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/afc_main_button_navi_right_disabled_light" android:state_enabled="false"/> <!-- enabled -->
<item android:drawable="@drawable/afc_main_button_navi_right_light"/> <!-- default -->
</selector>

View File

@@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="36dp" android:tint="?attr/colorOnSurface"
android:viewportHeight="24" android:viewportWidth="24"
android:width="36dp">
<path android:fillColor="@android:color/white" android:pathData="M15.41,7.41L14,6l-6,6 6,6 1.41,-1.41L10.83,12z"/>
</vector>

View File

@@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="36dp" android:tint="?attr/colorOnSurface"
android:viewportHeight="24" android:viewportWidth="24"
android:width="36dp">
<path android:fillColor="@android:color/white" android:fillAlpha="0.3" android:pathData="M15.41,7.41L14,6l-6,6 6,6 1.41,-1.41L10.83,12z"/>
</vector>

View File

@@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="36dp" android:tint="?attr/colorOnSurface"
android:viewportHeight="24" android:viewportWidth="24"
android:width="36dp">
<path android:fillColor="@android:color/white" android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"/>
</vector>

View File

@@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="36dp" android:tint="?attr/colorOnSurface"
android:viewportHeight="24" android:viewportWidth="24"
android:width="36dp">
<path android:fillColor="@android:color/white" android:fillAlpha="0.3" android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"/>
</vector>

View File

@@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="36dp" android:tint="?attr/colorOnSurface"
android:viewportHeight="24" android:viewportWidth="24"
android:width="36dp">
<path android:fillColor="@android:color/white" android:pathData="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"/>
</vector>

View File

@@ -42,9 +42,9 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="@dimen/afc_2dp"
android:layout_marginTop="@dimen/afc_5dp"
android:layout_marginBottom="@dimen/afc_5dp"
android:layout_marginRight="@dimen/afc_5dp"
android:layout_marginTop="@dimen/afc_2dp"
android:layout_weight="0.1"
android:orientation="vertical" >
@@ -55,8 +55,8 @@
android:ellipsize="middle"
android:maxLines="3"
android:singleLine="false"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textIsSelectable="false" />
android:textIsSelectable="false"
android:textAppearance="@style/TextAppearance.Material3.BodyLarge"/>
<TextView
android:id="@+id/afc_textview_file_info"
@@ -66,7 +66,8 @@
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:textIsSelectable="false" />
android:textIsSelectable="false"
android:textAppearance="@style/TextAppearance.Material3.BodySmall" />
</LinearLayout>
<CheckBox

View File

@@ -8,7 +8,7 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/afc_viewgroup_header"
@@ -47,21 +47,14 @@
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:orientation="horizontal"
android:showDividers="middle" />
/>
</HorizontalScrollView>
<View
android:id="@+id/afc_header_view_divider"
android:layout_width="match_parent"
android:layout_height="@dimen/afc_viewgroup_button_locations_bottom_divider_height"
android:layout_below="@id/afc_view_locations_container"
android:background="@color/afc_border_line_dark" />
<TextView
android:id="@+id/afc_textview_full_dir_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/afc_header_view_divider"
android:layout_below="@id/afc_view_locations_container"
android:layout_centerHorizontal="true"
android:ellipsize="start"
android:gravity="center"
@@ -122,10 +115,6 @@
android:orientation="vertical"
android:visibility="gone" >
<View
android:id="@+id/afc_footer_view_divider"
android:layout_width="match_parent"
android:layout_height="@dimen/afc_viewgroup_button_locations_bottom_divider_height" />
<LinearLayout
android:id="@+id/afc_viewgroup_footer"

View File

@@ -9,6 +9,8 @@
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:dividerHeight="0dp"
android:fastScrollEnabled="true" >
</ListView>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Afc.BaseTheme.Dark" parent="Theme.Material3.Dark.NoActionBar">
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="Afc.BaseThemeHelper.Dark" parent="Theme.Material3.Dark.NoActionBar">
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="Afc.BaseThemeHelper.Light" parent="Theme.Material3.Light.NoActionBar">
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="Afc.BaseTheme.Light" parent="Theme.Material3.Light.NoActionBar">
<item name="android:windowLightStatusBar">true</item>
</style>
</resources>

View File

@@ -1,63 +1,55 @@
<?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 xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AOSP_DialogWindowTitle">
<style name="AOSP_DialogWindowTitle">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@android:style/TextAppearance.DialogWindowTitle</item>
</style>
<style name="afc_main_button_navi">
<style name="afc_main_button_navi">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:adjustViewBounds">true</item>
<item name="android:scaleType">center</item>
<item name="android:layout_marginLeft">@dimen/afc_5dp</item>
<item name="android:layout_marginTop">@dimen/afc_5dp</item>
<item name="android:layout_gravity">center</item>
<item name="android:layout_gravity">center</item>
<item name="android:minHeight">@dimen/afc_button_navigators_min_height</item>
</style>
<style name="afc_main_button_navi_left" parent="@style/afc_main_button_navi">
<item name="android:src">?attr/afc_selector_main_button_navi_left</item>
</style>
</style>
<style name="afc_main_button_navi_right" parent="@style/afc_main_button_navi">
<item name="android:src">?attr/afc_selector_main_button_navi_right</item>
<item name="android:layout_marginRight">@dimen/afc_5dp</item>
</style>
<style name="afc_action_navi">
<style name="afc_action_navi">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:adjustViewBounds">true</item>
<item name="android:scaleType">center</item>
<item name="android:background">?attr/afc_selector_image_button</item>
<item name="android:background">?attr/afc_selector_image_button</item>
<item name="android:layout_margin">@dimen/afc_2dp</item>
<item name="android:layout_gravity">center</item>
<item name="android:layout_gravity">center</item>
</style>
<style name="afc_action_navi_left" parent="@style/afc_action_navi">
<item name="android:src">?attr/afc_selector_action_navi_left_foreground</item>
</style>
</style>
<style name="afc_action_navi_right" parent="@style/afc_action_navi">
<item name="android:src">?attr/afc_selector_action_navi_right_foreground</item>
</style>
</style>
<style name="afc_base_button_location" parent="@android:style/Widget.TextView"></style>
<style name="afc_button_location" parent="@style/afc_base_button_location">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="android:background">?attr/afc_selector_button_location</item>
<item name="android:layout_margin">@dimen/afc_5dp</item>
<item name="android:ellipsize">end</item>
@@ -65,11 +57,11 @@
<item name="android:minWidth">@dimen/afc_button_location_min_width</item>
<item name="android:padding">@dimen/afc_5dp</item>
<item name="android:singleLine">true</item>
<item name="android:gravity">center</item>
<item name="android:gravity">center</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
<style name="afc_widget_search_view_button_search">
<style name="afc_widget_search_view_button_search">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">?attr/afc_selector_image_button</item>
@@ -80,10 +72,10 @@
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@null</item>
<item name="android:src">?attr/afc_ic_widget_search_view_action_clear</item>
<item name="android:src">?attr/afc_ic_widget_search_view_action_clear</item>
</style>
<style name="afc_button_sort" parent="@android:style/Widget.ImageButton">
<style name="afc_button_sort" parent="@android:style/Widget.ImageButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center</item>
@@ -91,11 +83,11 @@
<item name="android:padding">@dimen/afc_5dp</item>
</style>
<style name="afc_home_button_navigators" parent="@android:style/Widget.TextView">
<style name="afc_home_button_navigators" parent="@android:style/Widget.TextView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">center</item>
<item name="android:background">?attr/afc_selector_button_location</item>
<item name="android:background">?attr/afc_selector_button_location</item>
<item name="android:layout_margin">@dimen/afc_2dp</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>

View File

@@ -16,7 +16,7 @@
- Actual themes which extend BaseThemeHelpers: contain customizations that are the same for all API levels.
-->
<style name="Afc.BaseTheme.Dark" parent="@android:style/Theme"></style>
<style name="Afc.BaseTheme.Dark" parent="Theme.Material3.Dark.NoActionBar"></style>
<style name="Afc.BaseThemeHelper.Dark" parent="@style/Afc.BaseTheme.Dark">
<item name="afc_ic_menu_home">@drawable/afc_ic_menu_home</item>
@@ -39,15 +39,13 @@
<item name="afc_ic_widget_search_view_action_clear">@drawable/afc_ic_action_clear_dark</item>
</style>
<style name="Afc.BaseTheme.Dialog.Dark" parent="@android:style/Theme" />
<style name="Afc.BaseTheme.Dialog.Dark" parent="Theme.Material3.Dark.NoActionBar" />
<style name="Afc.BaseThemeHelper.Dialog.Dark" parent="@style/Afc.BaseTheme.Dialog.Dark">
<!-- AOSP -->
<item name="android:windowFrame">@null</item>
<item name="android:windowTitleStyle">@style/AOSP_DialogWindowTitle</item>
<item name="android:windowBackground">@drawable/aosp_dialog_full_holo_dark</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
@@ -81,10 +79,6 @@
<style name="Afc.Theme.Dark" parent="@style/Afc.BaseThemeHelper.Dark">
<!-- AOSP -->
<item name="android:windowBackground">@drawable/aosp_background_holo_dark</item>
<!-- android-filechooser -->
<item name="afc_theme_dialog">@style/Afc.Theme.Dialog.Dark</item>
@@ -93,9 +87,9 @@
<item name="afc_badge_file_provider_localfile">@drawable/afc_badge_file_provider_localfile_light</item>
<item name="afc_selector_image_button">@drawable/afc_selector_image_button_dark</item>
<item name="afc_selector_button_location">@drawable/afc_selector_button_location_dark</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left_dark</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right_dark</item>
<item name="afc_selector_button_ok_saveas">@drawable/afc_selector_button_ok_saveas_dark</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right</item>
<item name="afc_selector_button_ok_saveas">@drawable/save_icon</item>
<item name="afc_selector_action_navi_left_foreground">@drawable/afc_selector_action_navi_left_dark_foreground</item>
<item name="afc_selector_action_navi_right_foreground">@drawable/afc_selector_action_navi_right_dark_foreground</item>
<item name="afc_color_listview_cache_hint">@color/afc_listview_cache_hint_dark</item>
@@ -109,8 +103,8 @@
<item name="afc_badge_file_provider_localfile">@drawable/afc_badge_file_provider_localfile_light</item>
<item name="afc_selector_image_button">@drawable/afc_selector_image_button_dark</item>
<item name="afc_selector_button_location">@drawable/afc_selector_button_location_dark</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left_dark</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right_dark</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right</item>
<item name="afc_selector_button_ok_saveas">@drawable/afc_selector_button_ok_saveas_dark</item>
<item name="afc_selector_action_navi_left_foreground">@drawable/afc_selector_action_navi_left_dark_foreground</item>
<item name="afc_selector_action_navi_right_foreground">@drawable/afc_selector_action_navi_right_dark_foreground</item>

View File

@@ -16,9 +16,11 @@
- Actual themes which extend BaseThemeHelpers: contain customizations that are the same for all API levels.
-->
<style name="Afc.BaseTheme.Light" parent="@android:style/Theme.Light"></style>
<style name="Afc.BaseTheme.Light" parent="Theme.Material3.Light.NoActionBar">
<style name="Afc.BaseThemeHelper.Light" parent="@style/Afc.BaseTheme.Light">
</style>
<style name="Afc.BaseThemeHelper.Light" parent="Theme.Material3.Light.NoActionBar">
<item name="afc_ic_menu_home">@drawable/afc_ic_menu_home</item>
<item name="afc_ic_menu_gridview">@drawable/afc_ic_menu_gridview</item>
<item name="afc_ic_menu_listview">@drawable/afc_ic_menu_listview</item>
@@ -46,7 +48,6 @@
<item name="android:windowFrame">@null</item>
<item name="android:windowTitleStyle">@style/AOSP_DialogWindowTitle</item>
<item name="android:windowBackground">@drawable/aosp_dialog_full_holo_light</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
@@ -78,11 +79,6 @@
</style>
<style name="Afc.Theme.Light" parent="@style/Afc.BaseThemeHelper.Light">
<!-- AOSP -->
<item name="android:windowBackground">@drawable/aosp_background_holo_light</item>
<!-- android-filechooser -->
<item name="afc_theme_dialog">@style/Afc.Theme.Dialog.Light</item>
@@ -92,8 +88,8 @@
<item name="afc_badge_file_provider_localfile">@drawable/afc_badge_file_provider_localfile_dark</item>
<item name="afc_selector_image_button">@drawable/afc_selector_image_button_light</item>
<item name="afc_selector_button_location">@drawable/afc_selector_button_location_light</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left_light</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right_light</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right</item>
<item name="afc_selector_button_ok_saveas">@drawable/afc_selector_button_ok_saveas_light</item>
<item name="afc_selector_action_navi_left_foreground">@drawable/afc_selector_action_navi_left_light_foreground</item>
<item name="afc_selector_action_navi_right_foreground">@drawable/afc_selector_action_navi_right_light_foreground</item>
@@ -120,8 +116,8 @@
<item name="afc_badge_file_provider_localfile">@drawable/afc_badge_file_provider_localfile_dark</item>
<item name="afc_selector_image_button">@drawable/afc_selector_image_button_light</item>
<item name="afc_selector_button_location">@drawable/afc_selector_button_location_light</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left_light</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right_light</item>
<item name="afc_selector_main_button_navi_left">@drawable/afc_selector_main_button_navi_left</item>
<item name="afc_selector_main_button_navi_right">@drawable/afc_selector_main_button_navi_right</item>
<item name="afc_selector_button_ok_saveas">@drawable/afc_selector_button_ok_saveas_light</item>
<item name="afc_selector_action_navi_left_foreground">@drawable/afc_selector_action_navi_left_light_foreground</item>
<item name="afc_selector_action_navi_right_foreground">@drawable/afc_selector_action_navi_right_light_foreground</item>

View File

@@ -1350,7 +1350,16 @@ namespace keepass2android
public override bool OnPrepareOptionsMenu(IMenu menu)
{
Util.PrepareDonateOptionMenu(menu, this);
return base.OnPrepareOptionsMenu(menu);
// hide the move and delete options if we're viewing a history element. It is not clear
// what the option then means.
foreach (var id in new List<int>{Resource.Id.menu_move, Resource.Id.menu_delete})
{
var menuItem = menu.FindItem(id);
menuItem?.SetVisible(_historyIndex < 0);
}
return base.OnPrepareOptionsMenu(menu);
}
bool isPaused = false;

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="223"
android:versionName="1.14-pre0"
android:versionCode="225"
android:versionName="1.14-pre2"
package="keepass2android.keepass2android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">

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="223"
android:versionName="1.14-pre0"
android:versionCode="225"
android:versionName="1.14-pre2"
package="keepass2android.keepass2android_nonet"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">

View File

@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
android:id="@+id/root"
android:layout_margin="12dip">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

View File

@@ -505,7 +505,11 @@
<string name="ok_donate">Chci vědět víc!</string>
<string name="no_thanks">Ne, tak moc se mi to nelíbí</string>
<string name="enter_http_login_title">Zadejte přihlašovací údaje pro WebDav:</string>
<string name="enter_smb_login_title">Zadejte přihlašovací údaje pro Sambu:</string>
<string name="hint_http_url">URL nebo adresář se souborem (např. mycloud.me.com/webdaw/)</string>
<string name="hint_smb_url">URL složky nebo souboru (např.: 192.168.1.10/share/folder/)</string>
<string name="hint_smb_domain">Doména uživatele Samby</string>
<string name="hint_smb_username">Uživatelské jméno Samby</string>
<string name="enter_owncloud_login_title">Zadejte přihlašovací údaje pro OwnCloud:</string>
<string name="hint_owncloud_url">URL adresa OwnCloud (např. owncloud.me.com)</string>
<string name="enter_nextcloud_login_title">Zadejte údaje pro Nextcloud:</string>
@@ -543,6 +547,7 @@
<string name="filestoragename_ftp">FTP</string>
<string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_smb">Samba (Windows Share)</string>
<string name="filestoragename_owncloud">OwnCloud</string>
<string name="filestoragename_nextcloud">Nextcloud</string>
<string name="filestoragename_dropbox">Dropbox</string>
@@ -720,7 +725,14 @@
<string name="EntryChannel_name">Upozornění položky</string>
<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="hint_smb_credentials">Pokud chcete přistupovat k souborům z vašeho osobního počítače se systémem Windows, použijte jako adresu hostitele název počítače nebo místní IP adresu; jako doménu zadejte název počítače a jako uživatelské jméno a heslo zadejte přihlašovací údaje do systému Windows (často stejné jako pro váš účet Microsoft).</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 name="webdav_chunked_upload_size_title">Velikost bloku pro nahrávání přes WebDav</string>
<string name="webdav_chunked_upload_size_summary">Velikost bloků při nahrávání na servery WebDav v bajtech. Použijte hodnotu 0 pro deaktivaci nahrávání po blocích.</string>
<string-array name="ChangeLog_1_14_net">
<item>Vylepšení WebDav: Oprava chyby při zobrazování seznamu složek; podpora fragmentovaných nahrávání a transakcí</item>
<item>Přidána podpora pro Sambu/síťové sdílení Windows</item>
</string-array>
<string-array name="ChangeLog_1_13">
<item>Vylepšené hodnocení kvality hesel založené na nejčastěji používaných heslech.</item>
<item>Pokud zařízení nemá aktivovaný zámek obrazovky, blokuje se funkce Rychlé odemknutí pomocí hesla (z bezpečnostních důvodů).</item>

View File

@@ -94,6 +94,8 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="disable_fingerprint_unlock">Biometrisches Entsperren deaktivieren</string>
<string name="enable_fingerprint_unlock">Komplettes biometrisches Entsperren aktivieren</string>
<string name="enable_fingerprint_quickunlock">Biometrisches Entsperren für QuickUnlock</string>
<string name="password_based_quick_unlock_not_available">Passwort-basiertes QuickUnlock nicht verfügbar</string>
<string name="password_based_quick_unlock_not_available_text">QuickUnlock mit einem Teil des Passworts wird blockiert, da die Bildschirmsperre auf deinem Gerät nicht aktiviert ist. Dieses Verhalten schützt dich, wenn jemand gesehen hat, wie du den QuickUnlock-Schlüssel eingegeben hast.</string>
<string name="fingerprint_unlock_failed">Biometrisches Entsperren fehlgeschlagen. Entschlüsselungsschlüssel wurde vom Android-System für ungültig erklärt. Das kommt üblicherweise vor, wenn die Biometrische Authentifizierung oder die Sicherheitseinstellungen geändert wurden. </string>
<string name="fingerprint_disabled_wrong_masterkey">Entsperren der Datenbank fehlgeschlagen: Ungültiger zusammengesetzter Schlüssel. Biometrisches Entsperren wurde deaktiviert, da das gespeicherte Hauptpasswort nicht länger gültig ist.</string>
<string name="fingerprint_reenable">Bitte Biometrisches Entsperren für das neue Hauptpasswort erneut aktivieren.</string>
@@ -321,6 +323,7 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="QuickUnlock_label_secure">QuickUnlock-Code eingeben:</string>
<string name="QuickUnlock_button">QuickUnlock!</string>
<string name="QuickUnlock_lockButton">Datenbank schließen</string>
<string name="enable_screen_lock">Bildschirmsperre aktivieren</string>
<string name="QuickUnlockDefaultEnabled_title">QuickUnlock standardmäßig aktiviert</string>
<string name="QuickUnlockDefaultEnabled_summary">Definiert, ob QuickUnlock standardmäßig aktiviert ist oder nicht.</string>
<string name="ViewDatabaseSecure_title">Datenbankanzeige schützen</string>
@@ -504,7 +507,11 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="ok_donate">Warum nicht?</string>
<string name="no_thanks">So gut gefällt\'s mir dann auch nicht</string>
<string name="enter_http_login_title">WebDav-Zugangsdaten eingeben:</string>
<string name="enter_smb_login_title">Samba-Logindaten eingeben:</string>
<string name="hint_http_url">URL des Ordners oder der Datei (z. B. mycloud.me.com/webdav/)</string>
<string name="hint_smb_url">URL des Ordners oder der Datei (z.B.: 192.168.1.10/Freigabe/Ordner/)</string>
<string name="hint_smb_domain">Domain des Samba-Benutzers</string>
<string name="hint_smb_username">Samba-Benutzername</string>
<string name="enter_owncloud_login_title">OwnCloud-Zugangsdaten eingeben:</string>
<string name="hint_owncloud_url">OwnCloud-URL (z.B. owncloud.me.com)</string>
<string name="enter_nextcloud_login_title">Nextcloud Logindaten eingeben:</string>
@@ -542,12 +549,14 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="filestoragename_ftp">FTP</string>
<string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_smb">Samba (Windowsfreigabe)</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-Ordner)</string>
<string name="filestoragehelp_dropboxKP2A">Wenn du Keepass2Android nicht den Zugriff auf die gesamte Dropbox erlauben möchtest, kannst du diese Option wählen. Dann musst du nur Zugriff auf den Ordner Apps/Keepass2Android gewähren. Das ist besonders sinnvoll, wenn du eine neue Datenbank anlegst. Wenn du schon eine Datenbank hast, wähle diese Option aus um den Ordner anzulegen, kopiere die Datei (vom PC aus) in den neuen Ordner und wähle die Option dann erneut zum Laden der Datei.</string>
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragehelp_gdrive">Bitte beachte: Google beschränkt den Zugriff auf Google Drive von Apps für immer mehr Benutzer. Wenn die eingebaute Google Drive-Implementierung nicht funktioniert, verwende bitte stattdessen die System-Dateiauswahl und wähle dort Google Drive aus!</string>
<string name="filestoragename_gdriveKP2A">Google Drive (KP2A-Dateien)</string>
<string name="filestoragehelp_gdriveKP2A">Wenn KP2A keinen Zugriff auf das komplette eigenen Google Drive erhalten soll, kann diese Option gewählte werden. Bitte beachten, dass zuerst eine Datenbankdatei erstellt werden muss; vorhandene Dateien sind für die App nicht sichtbar. Diese Option entweder auf dem Bildschirm „Datenbank erstellen“ auswählen oder, wenn bereits eine Datenbank geöffnet wurde, indem die Datenbank mit dieser Option exportiert wird.</string>
<string name="filestoragename_pcloud">PCloud (KP2A-Ordner)</string>
@@ -716,7 +725,19 @@ Anbei einige Tipps, die bei der Diagnose des Problems helfen können:\n
<string name="EntryChannel_name">Eintrag-Benachrichtigungen</string>
<string name="EntryChannel_desc">Benachrichtigung zum schnellen Zugriff auf den aktuell gewählten Eintrag.</string>
<string name="CloseDbAfterFailedAttempts">Datenbank nach drei fehlgeschlagenen biometrischen Entsperrversuchen schließen.</string>
<string name="hint_smb_credentials">Wenn Sie auf Dateien von Ihrem persönlichen Windows-Computer aus zugreifen möchten, verwenden Sie den Computernamen oder die lokale IP-Adresse als Host-URL; geben Sie den Computernamen als Domäne und das Windows-Login (oft identisch mit Ihrem Microsoft-Konto) als Benutzername und Passwort ein.</string>
<string name="WarnFingerprintInvalidated">Achtung! Die biometrische Authentifizierung kann von Android ungültig gemacht werden, z. B. nach dem Hinzufügen eines neuen Fingerabdrucks in den Geräteeinstellungen. Bitte sicherstellen, dass jederzeit klar ist, wie mit dem eigenen Hauptpasswort entsperrt werden kann!</string>
<string name="webdav_chunked_upload_size_title">Chunk-Größe für den WebDav-Upload</string>
<string name="webdav_chunked_upload_size_summary">Größe der Chunks beim Hochladen auf WebDav-Server in Bytes. Verwende 0, um den Upload in Chunks zu deaktivieren.</string>
<string-array name="ChangeLog_1_14_net">
<item>WebDav-Verbesserungen: Fehlerbehebung für die Ordnerauflistung; Unterstützung für chunked Uploads und Transaktionen</item>
<item>Unterstützung für Samba/Windows-Netzwerkfreigaben hinzugefügt</item>
</string-array>
<string-array name="ChangeLog_1_13">
<item>Verbesserte Einschätzung der Passwortqualität, indem die beliebtesten Passwörter berücksichtigt werden.</item>
<item>Blockieren Sie das passwortbasierte QuickUnlock (aus Sicherheitsgründen) wenn das Gerät keine Bildschirmsperre aktiviert hat.</item>
<item>Netzwerksicherheitskonfiguration aktualisieren, um die Klartext-Übertragung zu deaktivieren.</item>
</string-array>
<string-array name="ChangeLog_1_12">
<item>Von Xamarin Android auf .NET 8 upgegradet</item>
<item>Upgrade auf Target-SDK 34</item>
@@ -1164,4 +1185,7 @@ Erstes öffentliches Release</string>
<string name="qr_scanning_error_no_google_play_services">QR-Code-Scannen erfordert Google Play-Dienste. Bitte installiere oder aktualisiere Google Play-Dienste auf deinem Gerät.</string>
<string name="english_ime_settings">Android-Tastatureinstellungen</string>
<string name="autoswitch_enabled_but_not_setup">Notiz: Du hast Einstellungen - Anwendung - Passwortzugriff - Wechsel der Eingabemethode - Auto-Umschalten der Tastatur eingeschaltet, aber sieht aus als würde es nicht funktionieren</string>
<string name="switch_keyboard_for_totp_enabled">Hinweis: Du hast App - Passwortzugriff - Autofill-Service - Autofill für TOTP-Einträge aktiviert. Dies kann dazu führen, dass dieses Fenster angezeigt wird, wenn du einen Eintrag mit einem TOTP öffnest.</string>
<string name="switch_keyboard_inside_kp2a_enabled">Hinweis: Du hast App - Sicherheit - Verwenden der eingebauten Tastatur in Keepass2Android aktiviert. Dies kann dazu führen, dass dieses Fenster angezeigt wird, wenn du die App öffnest oder einen Eintrag bearbeitest.</string>
<string name="switch_keyboard_on_search_enabled">Hinweis: Du hast App - Sicherheit - Passwortzugriff - Tastaturwechsel - Tastatur wechseln aktiviert. Dies kann dazu führen, dass dieses Fenster angezeigt wird, wenn du aus dem Browser nach einem Eintrag suchst.</string>
</resources>

View File

@@ -93,6 +93,8 @@
<string name="disable_fingerprint_unlock">Désactiver le déverrouillage biométrique</string>
<string name="enable_fingerprint_unlock">Activer le déverrouillage biométrique complet</string>
<string name="enable_fingerprint_quickunlock">Activer le déverrouillage biométrique pour QuickUnlock</string>
<string name="password_based_quick_unlock_not_available">Le déverrouillage rapide par mot de passe n\'est pas disponible</string>
<string name="password_based_quick_unlock_not_available_text">Le déverrouillage rapide utilisant une partie de votre mot de passe est bloqué parce que le verrouillage de l\'écran n\'est pas activé sur votre appareil. Ce comportement vise à vous protéger au cas où quelqu\'un vous verrait entrer votre clé de déverrouillage rapide.</string>
<string name="fingerprint_unlock_failed">Le déverrouillage biométrique a échoué. La clé de déchiffrement a été invalidée par l\'OS Android. Ceci se produit généralement quand l\'authentification biométrique ou les paramètres de sécurité ont été changés. </string>
<string name="fingerprint_disabled_wrong_masterkey">Le déverrouillage de la base de données a échoué: la clé composite est invalide. Le déverrouillage biométrique a été désactivé car apparemment le mot de passe maître stocké n\'est plus valide. </string>
<string name="fingerprint_reenable">Veuillez réactiver le déverrouillage biométrique pour le nouveau mot de passe maître.</string>
@@ -319,6 +321,7 @@
<string name="QuickUnlock_label_secure">Saisir le code QuickUnlock :</string>
<string name="QuickUnlock_button">QuickUnlock !</string>
<string name="QuickUnlock_lockButton">Fermer la base de données</string>
<string name="enable_screen_lock">Activer le verrouillage de l\'écran</string>
<string name="QuickUnlockDefaultEnabled_title">Activer QuickUnlock par défaut</string>
<string name="QuickUnlockDefaultEnabled_summary">Définit si QuickUnlock est activé par défaut ou non.</string>
<string name="ViewDatabaseSecure_title">Protéger affichage base de données</string>
@@ -502,7 +505,11 @@
<string name="ok_donate">En savoir plus !</string>
<string name="no_thanks">Non, je n\'aime pas tant que ça</string>
<string name="enter_http_login_title">Entrez les données de connexion du WebDav :</string>
<string name="enter_smb_login_title">Entrez les données de connexion Samba :</string>
<string name="hint_http_url">URL du dossier ou du fichier (ex : mycloud.me.com/webdav/)</string>
<string name="hint_smb_url">URL du dossier ou du fichier (ex: 192.168.1.10/share/dossier/)</string>
<string name="hint_smb_domain">Domaine de l\'utilisateur Samba</string>
<string name="hint_smb_username">Nom d\'utilisateur Samba</string>
<string name="enter_owncloud_login_title">Entrez le nom d\'utilisateur d\'OwnCloud:</string>
<string name="hint_owncloud_url">URL d\'OwnCloud (ex: owncloud.me.com)</string>
<string name="enter_nextcloud_login_title">Entrez le nom d\'utilisateur NextCloud :</string>
@@ -540,6 +547,7 @@
<string name="filestoragename_ftp">FTP</string>
<string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_smb">Samba (Partage Windows)</string>
<string name="filestoragename_owncloud">OwnCloud</string>
<string name="filestoragename_nextcloud">Nextcloud</string>
<string name="filestoragename_dropbox">Dropbox</string>
@@ -719,13 +727,25 @@
<string name="EntryChannel_name">Notifications d\'entrée</string>
<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="hint_smb_credentials">Si vous voulez accéder aux fichiers depuis votre ordinateur personnel Windows, utilisez le nom de l\'ordinateur ou l\'adresse IP locale comme URL d\'hôte ; entrez le nom de l\'ordinateur en tant que domaine et la connexion Windows (souvent le même que votre compte Microsoft) que le nom d\'utilisateur et le mot de passe.</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 name="webdav_chunked_upload_size_title">Taille du bloc pour le téléchargement WebDav</string>
<string name="webdav_chunked_upload_size_summary">Taille des morceaux lors du téléchargement vers les serveurs WebDav, en octets. Utilisez 0 pour désactiver le téléchargement par morceaux.</string>
<string-array name="ChangeLog_1_14_net">
<item>Améliorations de WebDav : Correction d\'un bogue pour l\'énumération des dossiers ; prise en charge des téléchargements et des transactions par morceaux.</item>
<item>Ajout de la prise en charge des partages réseau Samba/Windows</item>
</string-array>
<string-array name="ChangeLog_1_13">
<item>Estimation de la qualité du mot de passe améliorée en tenant compte des mots de passe les plus populaires.</item>
<item>Bloquer le déverrouillage rapide par mot de passe (pour des raisons de sécurité) si le verrouillage de l\'écran n\'est pas activé sur l\'appareil.</item>
<item>Mettre à jour la configuration de la sécurité du réseau pour désactiver le transfert en clair.</item>
</string-array>
<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>Amélioration de la saisie automatique pour fonctionner avec les applications Compose</item>
<item>Fix hostname matching in autofill and search</item>
<item>Corriger le nom d\'hôte correspondant dans le remplissage automatique et la recherche</item>
<item>Corriger le problème avec le générateur de mot de passe</item>
</string-array>
<string-array name="ChangeLog_1_12_net">
@@ -911,7 +931,138 @@
<string name="ChangeLog_0_9_7b">Version 0.9.7b\n
* traductions actualisées\n
* corrections de bugs : polices de mot de passe était manquant dans 0.9.7, trie par nom ne trie pas les groupes\n</string>
<string name="ChangeLog_0_9_7"> Version 0.9.7
* support en écriture des bases de données Keepass 1 (kdb) (beta !)\n
* Meilleur retour au clavier précédent (fonctionne également sur les appareils non rootés)\n
* Prise en charge de KeeChallenge avec des défis de longueur variable
* Empêche la prise de captures d\'écran depuis le déverrouillage rapide et les écrans de mots de passe
* ordre de tri inversé pour le tri par date de modification (maintenant descendant)\n
* Correction de bugs : L\'affichage des notes est maintenant mis à jour correctement après les changements, l\'affichage des mots de passe cache maintenant le mot de passe correctement sur (espérons-le) tous les appareils, correction du problème qui permettait d\'ajouter une entrée deux fois, correction du problème d\'affichage de l\'avertissement de duplication de l\'UUID même après avoir corrigé la base de données</string>
<string name="ChangeLog_0_9_6"> Version 0.9.6
* Possibilité d\'importer un fichier clé et/ou un fichier de base de données local dans le répertoire interne de l\'application (voir les paramètres)\n
* Permet différentes options de tri.
* Amélioration des préférences pour la commutation automatique du clavier
* Mise à jour du logo de l\'application et du design des notifications, par Stefano Pignataro (http://www.spstudio.at)\n
* Le générateur de mot de passe se souvient des derniers réglages.
* Réglage de la visibilité des notifications pour l\'écran de verrouillage d\'Android 5
* Le champ du mot de passe principal s\'efface désormais lorsque l\'on quitte l\'application sans appuyer sur OK.
* Correction d\'un problème avec les langues d\'entrée manquantes dans les paramètres du clavier sur certains appareils.
* Correction d\'un problème avec la commutation automatique du clavier sur les appareils rootés.
* Ajout d\'une vérification des bases de données corrompues (UUIDs en double)\n
* rechargement automatique de la base de données lorsqu\'un changement est détecté, ce qui résout le problème de sécurité lié à la divulgation du mot de passe principal
* amélioration du polissage de la disposition des petits claviers, correction du thème des paramètres du clavier (merci à Wiktor Ławski)\n</string>
<string name="ChangeLog_0_9_5"> <b>Version 0.9.5</b>\nbsp;* Correction des problèmes de navigation dans les fichiers, en particulier sur Android 4.4.\nbsp;*.
* Correction de problèmes avec la navigation dans les fichiers (en particulier sur Android 4.4)\n
* Correction du problème de chargement des fichiers .kdb (Keepass 1) sur le Nexus 5 avec Android Lollipop.
* Ajout d\'une option pour empêcher les captures d\'écran/afficher l\'application dans la liste des applications récentes
* Correction d\'un problème avec le stockage de fichiers sur Google Drive (édition normale)
* Autoriser les fichiers clés sur les types de stockage délibérés (édition normale)\n
* Mise à jour du SDK Dropbox pour inclure un correctif de sécurité officiel (édition normale)\n
* Mise à jour des outils de construction --&amp;gt ; la taille de l\'apk a augmenté :-(\n)
J\'ai promis d\'autres changements. Ils viendront avec la prochaine version - désolé. Je voulais publier ces correctifs dès que possible.</string>
<string name="ChangeLog_0_9_4"> <b>Version 0.9.4</b>\nbsp;* * ajout d\'un plug-in pour le support de l\'interface utilisateur.
* ajout d\'un support pour les plugins : Voir les paramètres pour savoir comment obtenir les plug-ins!\N- * publié le plug-in QR (scanner les mots de passe sous forme de code QR)
* plugin QR publié (scanner les mots de passe, afficher les mots de passe sous forme de code QR, transférer les entrées vers d\'autres appareils KP2A)\n
* Plugin InputStick publié (transfert des données d\'identification vers votre PC via bluetooth - nécessite la clé USB InputStick)\n
* Les applications tierces peuvent désormais simplement demander des informations d\'identification à KP2A. Vous êtes développeur ? Veuillez l\'ajouter à votre application si vous le souhaitez!\N- * Ajout de la prise en charge du TOTP (compatible avec la clé USB InputStick)
* ajout du support TOTP (compatible avec KeeOTP et TrayTotp)\n
* L\'application ne devrait plus être tuée par Android lorsque la base de données est ouverte.
* la base de données n\'est plus verrouillée lorsque l\'on quitte l\'application avec le bouton retour (voir les paramètres)\n
* affichage des noms de groupes dans la vue des résultats de recherche (*)\n
* ajout d\'un menu contextuel dans la vue des résultats de recherche incluant l\'option \"Naviguer vers le parent\" (*)\n
* ajout d\'une option pour afficher le nom du groupe dans la vue des entrées (*)\n
* (*) merci à Matthieu pour l\'implémentation de ces fonctionnalités !\n
* Prise en charge de KeeChallenge (avec Yubikey NEO). Merci à Ben Rush pour l\'implémentation du connecteur !\n
* Amélioration de l\'interface utilisateur
* Correction d\'un bug dans l\'interface de Google Drive
* Ajout d\'une option pour désactiver l\'option \"don\".
* L\'icône QuickUnlock est désormais cachée par défaut sur les appareils Android 4.2+</string>
<string name="ChangeLog_0_9_3_r5"> <b>Version 0.9.3 r5</b>\nbsp;*.
* Incorporation des corrections de Xamarin : Keepass2Android est maintenant compatible avec ART sur Android 4.4.2. Enfin !
* Corrections de bugs : bugs dans la synchronisation (rafraîchissement de l\'affichage, vérification correcte des changements sur http), bugs sur les appareils Android 2.x, bugs dans les implémentations de stockage Google Drive et OneDrive, effacement du presse-papier lors de la fermeture de la base de données, bug lors de l\'ouverture des pièces jointes, problèmes d\'affichage avec les claviers</string>
<string name="ChangeLog_0_9_3"> <b>Version 0.9.3</b>\nbsp;* Nouveau clavier.
* Nouveau clavier avec de nombreuses améliorations. Voir les paramètres pour le personnaliser.
* Support en lecture seule pour kdb (fichiers Keepass 1). Expérimental !\N
* Ajout du support SFTP
* Ajout d\'une solution de contournement pour un bug dans ART (Android 4.4.2)\n
* Corrections de bugs</string>
<string name="ChangeLog_0_9_2"> <b>Version 0.9.2</b>\N- * Ajout de la prise en charge de l\'OTP (compatible avec le plugin OtpKeyProv).
* Ajout du support OTP (compatible avec le plugin OtpKeyProv)\n
* Support NFC intégré pour les OTPs de YubiKey NEO \n
* Plusieurs améliorations de l\'interface utilisateur
* Intégration de la bibliothèque Keepass 2.24
* Ajout d\'une option pour tuer le processus de l\'application (voir les paramètres)
* Amélioration de la validation des certificats SSL
* Correction de bugs</string>
<string name="ChangeLog_0_9_1"> <b>Version 0.9.1</b>\N- * Prise en charge intégrée de SkyDrive (Keepass2Android regular edition)
* Prise en charge intégrée de SkyDrive (Keepass2Android regular edition seulement)\n
* Correction des problèmes d\'intégration de Google Drive
* Ajout du support NTLM</string>
<string name="ChangeLog_0_9"> <b>Version 0.9</b>\n
* Prise en charge intégrée de Dropbox et Google Drive (bases de données en lecture/écriture ; Keepass2Android édition normale uniquement)\n
* Navigateur de fichiers personnalisé intégré (basé sur android-filechooser de HBA)\n
* Interface utilisateur améliorée pour la création de nouvelles bases de données
* Police personnalisée DejaVu Sans Mono incluse pour l\'affichage des mots de passe
* Corrections de bugs</string>
<string name="ChangeLog_0_8_6"> <b>Version 0.8.6</b>\nbsp;* * Prise en charge du chiffrement Twofish
* Prise en charge du cryptage Twofish
* Permettre l\'édition des groupes
* Permettre le déplacement des entrées et des groupes
* L\'icône de QuickUnlock peut être rendue transparente (voir les réglages)
* Corrections de bugs</string>
<string name="ChangeLog_0_8_5"> <b>Version 0.8.5</b>\nbsp ;
* Les fichiers distants sont stockés dans le cache de l\'application locale pour permettre une utilisation hors ligne (y compris l\'édition et la synchronisation ultérieure). Voir les paramètres. \n
* Icône de notification pour visualiser l\'état de verrouillage de la base de données (voir les paramètres).
* Amélioration de la détermination de l\'état de verrouillage dans certaines situations
* Les fichiers de la base de données sont chargés en mémoire pendant que vous tapez votre mot de passe pour augmenter la vitesse de chargement (voir les paramètres)\n
* Possibilité d\'ajouter des entrées au groupe racine
* Corrections de bugs (résolution des champs de référence, problèmes avec le clavier sur les appareils italiens et chinois)</string>
<string name="ChangeLog_0_8_4"> <b>Version 0.8.4</b>\nbsp;* * Les modifications externes de la base de données sont détectées lors de la sauvegarde.
* Les modifications apportées aux bases de données externes sont détectées et fusionnées lors de la sauvegarde.
* Amélioration des performances de chargement
* Barre d\'outils de recherche améliorée avec suggestions
* Nouveau logo de l\'application !
* Ajout de la prise en charge du format .kdbp pour un chargement et une sauvegarde plus rapides.
* Amélioration de l\'édition des chaînes supplémentaires et de l\'affichage caché lors de la protection
Merci à Alex Vallat pour ses contributions au code!\N- Merci à Niki Hüttner (www.close-cut.de) pour le nouveau logo!</string>
<string name="ChangeLog_0_8_3"> <b>Version 0.8.3</b>\nbsp;* *Index de nom d\'utilisateur/TAN affiché dans la liste d\'entrée (voir les paramètres)
* Index du nom d\'utilisateur/TAN affiché dans la liste des entrées (voir réglages)\n
* Les entrées peuvent être créées si la recherche à partir du navigateur ne renvoie pas de résultats.
* Le clavier KP2A permet de rechercher des informations d\'identification pour l\'application en cours.
* L\'application se ferme automatiquement après avoir sélectionné une entrée à utiliser sur le clavier.
* La boîte de dialogue de sélection du clavier s\'ouvre automatiquement après la recherche d\'une URL (voir les paramètres).
* Les espaces réservés dans les champs de saisie sont remplacés avant la copie (la plupart des espaces réservés sont pris en charge)\n
* Corrections de bogues mineurs</string>
<string name="ChangeLog_0_8_2"> <b>Version 0.8.2</b> * Prise en charge de l\'authentification Digest dans WebDAV
* Prise en charge de l\'authentification Digest dans WebDAV
* Correction de bugs (OI File manager, Open URL)</string>
<string name="ChangeLog_0_8_1"> <b>Version 0.8.1</b>\nbsp;* KP2A Offline et « Online » peut être installé à la fois en ligne et hors ligne.
* KP2A Offline et \"Online\" peuvent être installés tous les deux.
* Ajout de nouvelles traductions (merci à tous les contributeurs !)</string>
<string name="ChangeLog_0_8"> <b>Version 0.8</b>\nbsp;* Amélioration de l\'interface utilisateur, en particulier pour les appareils Android 4.x
* Amélioration de l\'interface utilisateur, en particulier pour les appareils Android 4.x.
* Permettre l\'utilisation de gestionnaires de fichiers délibérés pour la sélection de fichiers existants.
* Ajout d\'un moyen plus sûr d\'ouvrir les pièces jointes (via le répertoire cache).
* Correction de bugs dans l\'activité d\'édition
* Probablement introduit de nouveaux bugs :-)</string>
<string name="ChangeLog_keptDonate">Possibilité élargie de faire un don d\'une bière ou autre chose</string>
<string name="ChangeLog_0_7"> <b>Version 0.7</b>\N- * Amélioration de la vitesse de chargement : les transformations de clés sont désormais plus rapides !
* Augmentation de la vitesse de chargement : les transformations de touches sont maintenant 10x plus rapides!\n
* Ajout du clavier logiciel Keepass2Android : Basculez sur ce clavier pour saisir les informations d\'identification. Vous protège des renifleurs de mots de passe basés sur le presse-papiers (désactivez les anciennes notifications du presse-papiers dans les options)*.
* Ajout d\'une option pour donner une bière ou autre chose (voir le menu)</string>
<string name="ChangeLog"> <b>Version 0.6.2</b>\nbsp;* * Intégration de Google Drive/Dropbox/.../...
* Intégration Google Drive/Dropbox/... : Utilisez l\'application officielle Google Drive ou Dropbox et ouvrez n\'importe quel fichier .kdbx. KP2A s\'affichera alors.
* Amélioration du dialogue de recherche
* Amélioration des résultats de recherche pour les URL de partage avec des sous-domaines
* Ajout d\'options pour donner son avis, évaluer et traduire l\'application dans le menu
<b>Version 0.6.1</b>\n
* Détection des modifications de la base de données en arrière-plan (c\'est-à-dire en raison de l\'activité d\'une application de synchronisation)\n
* Amélioration de la recherche d\'URL dans le navigateur
* Dialogue de confirmation lors de l\'annulation des modifications
\N-
<b>Version 0.6</b>\N-
Version publique initiale</string>
<string-array name="clipboard_timeout_options">
<item>30 secondes</item>
<item>1 minute</item>
@@ -1002,6 +1153,8 @@
<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="kp2a_switch_on_sendgodone">Revenir en arrière lorsque c\'est fait</string>
<string name="kp2a_switch_on_sendgodone_summary">Revenir en arrière en appuyant sur send/go/done</string>
<string name="qr_scanning_error_no_google_play_services">Le scan de QR Code requiert les Services Google Play. Veuillez installer ou mettre à jour les Services Google Play sur votre périphérique.</string>
<string name="english_ime_settings">Paramètres du clavier Keepass2Android</string>
<string name="autoswitch_enabled_but_not_setup">Note : Vous avez activé le changement automatique de clavier, mais il ne semble pas être correctement configuré (Paramètres - Appli - Accès aux mots de passe - Changement de clavier).</string>

View File

@@ -507,7 +507,11 @@
<string name="ok_donate">Conte-me mais!</string>
<string name="no_thanks">Não, não me agrada muito</string>
<string name="enter_http_login_title">Insira os dados de login WebDav:</string>
<string name="enter_smb_login_title">Insira os dados de login do Samba:</string>
<string name="hint_http_url">URL do arquivo ou pasta (ex: mycloud.me.com/webdav/)</string>
<string name="hint_smb_url">URL da pasta ou arquivo (Ex: 192.168.1.10/share/folder/)</string>
<string name="hint_smb_domain">Domínio do usuário do samba</string>
<string name="hint_smb_username">Nome de usuário do Samba</string>
<string name="enter_owncloud_login_title">Insira os dados de login do OwnCloud:</string>
<string name="hint_owncloud_url">OwnCloud URL (ex: owncloud.me.com)</string>
<string name="enter_nextcloud_login_title">Insira os dados de acesso do Nextcloud:</string>
@@ -545,6 +549,7 @@
<string name="filestoragename_ftp">FTP</string>
<string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_smb">Samba (Windows Share)</string>
<string name="filestoragename_owncloud">Nuvem Própria</string>
<string name="filestoragename_nextcloud">Nextcloud</string>
<string name="filestoragename_dropbox">Dropbox</string>
@@ -724,7 +729,14 @@
<string name="EntryChannel_name">Notificações de entrada</string>
<string name="EntryChannel_desc">Notificação para simplificar o acesso à entrada selecionada.</string>
<string name="CloseDbAfterFailedAttempts">Fechar banco de dados após três tentativas de desbloqueio biométrico falhadas.</string>
<string name="hint_smb_credentials">Se você deseja acessar arquivos do seu computador Windows pessoal, use o nome do computador ou o endereço IP local como URL do host; Digite o nome do computador como domínio e o login do Windows (geralmente o mesmo que sua conta da Microsoft) como nome de usuário e senha.</string>
<string name="WarnFingerprintInvalidated">Alerta! Autenticação biométrica pode ser invalidada pelo Android, por exemplo: depois de adicionar uma nova digital nas configurações do seu dispositivo. Esteja certo de sempre saber como desbloquear com sua senha mestra!</string>
<string name="webdav_chunked_upload_size_title">Tamanho do bloco para upload do WebDav</string>
<string name="webdav_chunked_upload_size_summary">Tamanho dos blocos ao fazer upload para servidores WebDav em bytes. Use 0 para desativar o upload em blocos.</string>
<string-array name="ChangeLog_1_14_net">
<item>Melhorias no WebDav: Correção de bug ao listar pastas; Suporte para uploads e transações em blocos</item>
<item>Adicionado suporte para compartilhamentos de rede Samba/Windows</item>
</string-array>
<string-array name="ChangeLog_1_13">
<item>Estimativa aprimorada da qualidade da senha, considerando a maioria das senhas populares.</item>
<item>Bloqueia o desbloqueio rápido baseado em senha (por motivos de segurança) se o dispositivo não tiver uma trava de tela ativada.</item>

View File

@@ -699,6 +699,14 @@
<string name="EntryChannel_desc">Уведомление для упрощенного доступа к выбранной в данный момент записи.</string>
<string name="CloseDbAfterFailedAttempts">Закрыть базу данных после трёх неудачных попыток биометрической разблокировки.</string>
<string name="WarnFingerprintInvalidated">Внимание! Биометрическая аутентификация может быть аннулирована через Android, напр. после добавления нового отпечатка пальца в настройках устройства. Убедитесь, что вы всегда знаете, как разблокировать с помощью мастер-пароля!</string>
<string-array name="ChangeLog_1_12">
<item>Upgraded from Xamarin Android to .net 8</item>
<item>Upgraded to Target SDK 34</item>
<item>Upgraded to Material 3 user interface</item>
<item>Improve autofill to work with Compose apps</item>
<item>Fix hostname matching in autofill and search</item>
<item>Исправлена проблема с генератором паролей</item>
</string-array>
<string-array name="ChangeLog_1_11">
<item>Добавлены плавающие кнопки для поиска и обзора TOTP (если присутствуют записи TOTP).</item>
<item></item>

View File

@@ -319,6 +319,7 @@
<string name="QuickUnlock_label_secure">Hızlı açma kodunu girin:</string>
<string name="QuickUnlock_button">Kilidi ÇabukAç!</string>
<string name="QuickUnlock_lockButton">Veritabanı kapat</string>
<string name="enable_screen_lock">Ekran kilidini etkinleştir</string>
<string name="QuickUnlockDefaultEnabled_title">ÇabukAç varsayılan olarak etkinleştir</string>
<string name="QuickUnlockDefaultEnabled_summary">ÇabukAç varsayılan olarak etkinleştirileceğini tanımlar.</string>
<string name="ViewDatabaseSecure_title">Veri tabanı ekranını koru</string>
@@ -500,6 +501,7 @@
<string name="no_thanks">Hayır, çok hoşuma gitmiyor</string>
<string name="enter_http_login_title">WebDav oturum açma verilerini girin:</string>
<string name="hint_http_url">Klasör veya dosyanın URL (örn: mycloud.me.com/webdav/)</string>
<string name="hint_smb_url">Klasör veya dosyanın URL\'si (örn: 192.168.1.10/share/folder/)</string>
<string name="enter_owncloud_login_title">OwnCloud oturum açma verilerini girin:</string>
<string name="hint_owncloud_url">OwnCloud URL (örn: owncloud.me.com)</string>
<string name="enter_nextcloud_login_title">Nextcloud oturum açma verilerini girin:</string>
@@ -516,6 +518,13 @@
<string name="hint_sftp_key_content">Yeni anahtar içeriği</string>
<string name="private_key_saved">Özel anahtar kaydedildi</string>
<string name="private_key_save_failed">Özel anahtar kayıt edilemedi: %1$s</string>
<string name="private_key_info">Kaydetmek için anahtar adını ve içeriğini girin</string>
<string name="private_key_delete">Silinen özel anahtar: %1$s</string>
<string name="private_key_delete_failed">Özel anahtarı silme işlemi BAŞARISIZ: %1$s</string>
<string name="save_key">Özel Anahtarı Kaydet</string>
<string name="delete_key">Özel Anahtarı Sil</string>
<string name="private_key_select">Özel anahtarı seç</string>
<string name="private_key_create_new">[Yeni Ekle...]</string>
<string name="enter_ftp_login_title">FTP oturum açma verilerini girin:</string>
<string name="enter_mega_login_title">MEGA hesap bilgilerinizi girin:</string>
<string name="select_storage_type">Depolama türünü seçin:</string>
@@ -533,7 +542,9 @@
<string name="filestoragename_gdrive">Google Drive</string>
<string name="filestoragename_gdriveKP2A">Google Drive (KP2A dosyaları)</string>
<string name="filestoragehelp_gdriveKP2A">KP2A\'ya tam Google Drive\'ınıza erişim izni vermek istemiyorsanız, bu seçeneği belirleyebilirsiniz. Önce bir veritabanı dosyası oluşturmanız gerektiğini unutmayın, mevcut dosyalar uygulama tarafından görülmez. Ya veritabanı oluştur ekranından bu seçeneği seçin ya da zaten bir veritabanı açtıysanız, bu seçeneği seçerek veritabanını dışa aktarın.</string>
<string name="filestoragename_pcloud">PCloud (KP2A klasörü)</string>
<string name="filestoragehelp_pcloud">Bu depolama türü yalnızca pCloud \"Applications/Keepass2Android\" klasörüne erişim talep eder. pCloud hesabınızdaki mevcut bir veritabanını kullanmak istiyorsanız, lütfen dosyanın bu pCloud klasörüne yerleştirildiğinden emin olun.</string>
<string name="filestoragename_pcloudall">PCloud (Tam erişim)</string>
<string name="filestoragename_onedrive">OneDrive</string>
<string name="filestoragename_onedrive2">OneDrive</string>
<string name="filestoragename_onedrive2_full">Tüm dosyalar ve paylaşılan dosyalar</string>
@@ -579,6 +590,7 @@
<string name="CouldntLoadChalAuxFile_Hint">Veri tabanını kimlik doğrulma kullanımına ayarlamak için lütfen KeePass 2.x (PC) üzerinde KeeChallenge eklentisini kullanın!</string>
<string name="ErrorUpdatingChalAuxFile">Hata: Yedek tek kullanımlık şifre dosya güncelleştirilemedi!</string>
<string name="TrayTotp_SeedField_title">TOTP seed alan adı</string>
<string name="TOTP">TOTP</string>
<string name="TrayTotp_SeedField_summary">Varsayılan olmayan ayarlarla \"TrayTotp\" adındaki Keepass 2 eklentisini kullanıyorsanız, PC\'deki ayarlara göre seed alanının adını buraya girin.</string>
<string name="TrayTotp_SettingsField_title">TOTP ayarları alan adı</string>
<string name="TrayTotp_SettingsField_summary">TrayTotp için ayarlar alanının adını buraya girin.</string>

View File

@@ -744,7 +744,7 @@
<string-array name="ChangeLog_1_14_net">
<item>WebDav improvements: Bug fix for listing folders; support for chunked uploads and transactions</item>
<item>Added support for Samba/Windows network shares</item>
<item>Updated FluentFTP and enabled support for GnuTLS stream, supporting TLS 1.3 and solving other FTPS issues</item>
<item>Updated JSch to support more modern algorithms in SFTP</item>
</string-array>