Compare commits

..

141 Commits

Author SHA1 Message Date
PhilippC
1abee20c02 New translations strings.xml (Belarusian) 2025-02-11 16:10:19 +01:00
PhilippC
7891760723 New translations strings.xml (Yoruba) 2025-02-11 16:09:50 +01:00
PhilippC
985089c792 New translations strings.xml (Norwegian Bokmal) 2025-02-11 16:09:49 +01:00
PhilippC
486624ca24 New translations strings.xml (Sinhala) 2025-02-11 16:09:48 +01:00
PhilippC
0b7661c80b New translations strings.xml (Malayalam) 2025-02-11 16:09:46 +01:00
PhilippC
a49b80443b New translations strings.xml (Azerbaijani) 2025-02-11 16:09:45 +01:00
PhilippC
78890f741d New translations strings.xml (Norwegian Nynorsk) 2025-02-11 16:09:44 +01:00
PhilippC
7b31b52c6d New translations strings.xml (Croatian) 2025-02-11 16:09:43 +01:00
PhilippC
03d81865a8 New translations strings.xml (Persian) 2025-02-11 16:09:41 +01:00
PhilippC
a1348817b4 New translations strings.xml (Indonesian) 2025-02-11 16:09:40 +01:00
PhilippC
c0f717c737 New translations strings.xml (Portuguese, Brazilian) 2025-02-11 16:09:39 +01:00
PhilippC
fd2a74a297 New translations strings.xml (Galician) 2025-02-11 16:09:38 +01:00
PhilippC
17c0b115b2 New translations strings.xml (Vietnamese) 2025-02-11 16:09:36 +01:00
PhilippC
b764587582 New translations strings.xml (Chinese Traditional) 2025-02-11 16:09:35 +01:00
PhilippC
d163d2e101 New translations strings.xml (Chinese Simplified) 2025-02-11 16:09:34 +01:00
PhilippC
e2071e5bd5 New translations strings.xml (Ukrainian) 2025-02-11 16:09:33 +01:00
PhilippC
d1f880079b New translations strings.xml (Turkish) 2025-02-11 16:09:31 +01:00
PhilippC
299dba0d4e New translations strings.xml (Swedish) 2025-02-11 16:09:30 +01:00
PhilippC
8fddf5fa92 New translations strings.xml (Serbian (Cyrillic)) 2025-02-11 16:09:29 +01:00
PhilippC
152e196d62 New translations strings.xml (Slovenian) 2025-02-11 16:09:27 +01:00
PhilippC
21f58050f8 New translations strings.xml (Slovak) 2025-02-11 16:09:26 +01:00
PhilippC
7906102e43 New translations strings.xml (Russian) 2025-02-11 16:09:24 +01:00
PhilippC
3b2536472a New translations strings.xml (Portuguese) 2025-02-11 16:09:23 +01:00
PhilippC
2a93424365 New translations strings.xml (Polish) 2025-02-11 16:09:22 +01:00
PhilippC
09c7f9fa17 New translations strings.xml (Dutch) 2025-02-11 16:09:20 +01:00
PhilippC
ef93eedc63 New translations strings.xml (Korean) 2025-02-11 16:09:19 +01:00
PhilippC
95e51f9c5d New translations strings.xml (Japanese) 2025-02-11 16:09:18 +01:00
PhilippC
1c0528776b New translations strings.xml (Italian) 2025-02-11 16:09:17 +01:00
PhilippC
91a520e773 New translations strings.xml (Hungarian) 2025-02-11 16:09:15 +01:00
PhilippC
720e8d5a70 New translations strings.xml (Hebrew) 2025-02-11 16:09:14 +01:00
PhilippC
0539c7bb6c New translations strings.xml (Finnish) 2025-02-11 16:09:13 +01:00
PhilippC
a568e24e12 New translations strings.xml (Basque) 2025-02-11 16:09:12 +01:00
PhilippC
9cf33e3612 New translations strings.xml (Greek) 2025-02-11 16:09:10 +01:00
PhilippC
ec62f0b7fe New translations strings.xml (German) 2025-02-11 16:09:09 +01:00
PhilippC
34a3a3751e New translations strings.xml (Danish) 2025-02-11 16:09:07 +01:00
PhilippC
9e0b1b837c New translations strings.xml (Czech) 2025-02-11 16:09:06 +01:00
PhilippC
f44a7997bc New translations strings.xml (Catalan) 2025-02-11 16:09:04 +01:00
PhilippC
0e1b2c3ace New translations strings.xml (Bulgarian) 2025-02-11 16:09:03 +01:00
PhilippC
2d58979051 New translations strings.xml (Belarusian) 2025-02-11 16:09:02 +01:00
PhilippC
d5a3db21e9 New translations strings.xml (Arabic) 2025-02-11 16:09:00 +01:00
PhilippC
d56e9ebfd8 New translations strings.xml (Spanish) 2025-02-11 16:08:59 +01:00
PhilippC
24a22b0281 New translations strings.xml (French) 2025-02-11 16:08:58 +01:00
PhilippC
8582cc11aa New translations strings.xml (Romanian) 2025-02-11 16:08:56 +01:00
Philipp Crocoll
aff92370e5 rename folder back after merging crowdin translation changes 2025-02-11 13:36:45 +01:00
Philipp Crocoll
8ebe1bb0d9 Merge branch 'translation/prepare-crowdin-merge' into l10n_master2 2025-02-11 13:29:52 +01:00
Philipp Crocoll
bef3463a0d keepass2android-app renamed to keepass2android to prepare merging with crowdin updates 2025-02-11 13:27:54 +01:00
PhilippC
7537820d79 New translations strings.xml (Chinese Traditional) 2025-01-13 12:29:52 +01:00
PhilippC
79127ee4ae New translations strings.xml (Persian) 2024-11-23 21:28:30 +01:00
PhilippC
c367f94512 New translations strings.xml (Catalan) 2024-11-13 11:39:23 +01:00
PhilippC
04b455425b New translations strings.xml (Catalan) 2024-11-13 09:48:23 +01:00
PhilippC
130a6eb9bf New translations strings.xml (Vietnamese) 2024-11-04 09:39:34 +01:00
PhilippC
9490731f9a New translations strings.xml (Vietnamese) 2024-11-04 09:39:30 +01:00
PhilippC
8db227477d New translations strings.xml (Vietnamese) 2024-11-04 09:39:29 +01:00
PhilippC
1c720ac3d9 New translations strings.xml (Romanian) 2024-11-03 07:28:27 +01:00
PhilippC
581c897299 New translations strings.xml (Chinese Simplified) 2024-10-30 06:37:37 +01:00
PhilippC
c3936d05cc New translations strings.xml (Chinese Simplified) 2024-10-30 04:28:58 +01:00
PhilippC
7f7844f33e New translations strings.xml (Italian) 2024-10-26 11:24:17 +02:00
PhilippC
ba140b0612 New translations strings.xml (Italian) 2024-10-26 10:28:58 +02:00
PhilippC
9cba21cd7f New translations strings.xml (Italian) 2024-10-25 13:30:21 +02:00
PhilippC
0f3ad02ecb New translations strings.xml (Italian) 2024-10-25 11:30:58 +02:00
PhilippC
2859a53d0e New translations strings.xml (Belarusian) 2024-10-22 11:54:35 +02:00
PhilippC
edb5590dd3 New translations strings.xml (Belarusian) 2024-10-22 09:41:30 +02:00
PhilippC
f385fef48d New translations strings.xml (Belarusian) 2024-10-22 09:41:29 +02:00
PhilippC
05a340aa4d New translations strings.xml (Chinese Simplified) 2024-10-18 00:08:24 +02:00
PhilippC
2191421f62 New translations strings.xml (Spanish) 2024-10-09 17:54:16 +02:00
PhilippC
11f0ac2b4f New translations strings.xml (Spanish) 2024-10-08 12:17:32 +02:00
PhilippC
54ea326d2b New translations strings.xml (Spanish) 2024-10-07 13:50:21 +02:00
PhilippC
d2f2e19c24 New translations strings.xml (Spanish) 2024-10-07 12:21:30 +02:00
PhilippC
741bb4346e New translations strings.xml (Galician) 2024-09-29 01:09:57 +02:00
PhilippC
714e36c14d New translations strings.xml (Galician) 2024-09-29 00:07:56 +02:00
PhilippC
86cba725f8 New translations strings.xml (Spanish) 2024-09-24 14:13:11 +02:00
PhilippC
2207c02064 New translations strings.xml (Yoruba) 2024-09-23 09:09:24 +02:00
PhilippC
0687da9174 New translations strings.xml (Yoruba) 2024-09-23 09:09:22 +02:00
PhilippC
1d2a6d2c15 New translations strings.xml (Yoruba) 2024-09-23 09:09:21 +02:00
PhilippC
47a323dd5c New translations strings.xml (Persian) 2024-09-18 05:16:40 +02:00
PhilippC
5660f8b1d2 New translations strings.xml (Persian) 2024-09-18 00:03:17 +02:00
PhilippC
3ac238cc2b New translations strings.xml (Persian) 2024-09-17 22:55:43 +02:00
PhilippC
57fcfc11c4 New translations strings.xml (Azerbaijani) 2024-09-12 20:53:56 +02:00
PhilippC
c80b61e8f4 New translations strings.xml (Vietnamese) 2024-08-24 03:47:10 +02:00
PhilippC
d38f60e059 New translations strings.xml (Chinese Simplified) 2024-08-18 08:11:16 +02:00
PhilippC
f4197eee5d New translations strings.xml (Chinese Simplified) 2024-08-18 07:06:16 +02:00
PhilippC
271dcfc19c New translations strings.xml (Romanian) 2024-08-07 18:07:37 +02:00
PhilippC
011a939c39 New translations strings.xml (Catalan) 2024-07-24 14:47:54 +02:00
PhilippC
ee2b67a5dd New translations strings.xml (French) 2024-07-13 07:25:39 +02:00
PhilippC
9cf1606064 New translations strings.xml (Slovak) 2024-06-29 14:04:54 +02:00
PhilippC
df5f72262c New translations strings.xml (Slovak) 2024-06-29 12:25:38 +02:00
PhilippC
902f4a8f34 New translations strings.xml (French) 2024-05-21 23:30:15 +02:00
PhilippC
1a2b7c59aa New translations strings.xml (French) 2024-05-21 22:06:58 +02:00
PhilippC
ddced3d7b1 New translations strings.xml (Hebrew) 2024-05-18 07:38:04 +02:00
PhilippC
ecab74bfec New translations strings.xml (Japanese) 2024-05-17 17:09:50 +02:00
PhilippC
82e927cb93 New translations strings.xml (Hebrew) 2024-05-14 12:31:12 +02:00
PhilippC
45abdf4382 New translations strings.xml (Hebrew) 2024-05-14 10:45:39 +02:00
PhilippC
33cc95ff87 New translations strings.xml (Ukrainian) 2024-05-07 10:14:38 +02:00
PhilippC
a977c75b64 New translations strings.xml (Catalan) 2024-05-03 23:04:44 +02:00
PhilippC
3da07765ca New translations strings.xml (Catalan) 2024-05-03 20:48:28 +02:00
PhilippC
7d450865f7 New translations strings.xml (Portuguese) 2024-04-27 03:51:49 +02:00
PhilippC
14b01088ea New translations strings.xml (Portuguese) 2024-04-27 02:11:39 +02:00
PhilippC
4770b99127 New translations strings.xml (Italian) 2024-04-26 16:11:06 +02:00
PhilippC
b556eef642 New translations strings.xml (Spanish) 2024-04-25 17:32:49 +02:00
PhilippC
b31ec9fba0 New translations strings.xml (Spanish) 2024-04-25 15:55:24 +02:00
PhilippC
13e653f45d New translations strings.xml (Spanish) 2024-04-25 04:08:52 +02:00
PhilippC
75df57022a New translations strings.xml (Spanish) 2024-04-25 02:49:52 +02:00
PhilippC
10690ddf84 New translations strings.xml (Spanish) 2024-04-25 01:34:47 +02:00
PhilippC
4f4f85ea9d New translations strings.xml (Ukrainian) 2024-04-22 20:55:39 +02:00
PhilippC
d1da69f7a3 New translations strings.xml (Polish) 2024-04-19 17:36:51 +02:00
PhilippC
93a18a60b0 New translations strings.xml (Polish) 2024-04-19 16:22:39 +02:00
PhilippC
11f8f318da New translations strings.xml (Russian) 2024-04-19 09:29:31 +02:00
PhilippC
ec3b236ac3 New translations strings.xml (Chinese Simplified) 2024-04-04 12:49:30 +02:00
PhilippC
2fc9d2b9cb New translations strings.xml (Spanish) 2024-03-30 19:25:44 +01:00
PhilippC
290623a85c New translations strings.xml (Russian) 2024-03-27 06:36:17 +01:00
PhilippC
0df85ed593 New translations strings.xml (Russian) 2024-03-25 03:06:13 +01:00
PhilippC
3e696437c6 New translations strings.xml (Ukrainian) 2024-03-22 00:10:58 +01:00
PhilippC
b9fb4d127c New translations strings.xml (Ukrainian) 2024-03-21 23:07:21 +01:00
PhilippC
1afc69d715 New translations strings.xml (Russian) 2024-03-21 16:45:13 +01:00
PhilippC
cf06572aef New translations strings.xml (Russian) 2024-03-21 15:12:46 +01:00
PhilippC
0e7522923d New translations strings.xml (Hebrew) 2024-03-19 06:37:42 +01:00
PhilippC
5a2df80101 New translations strings.xml (Hebrew) 2024-03-18 22:22:39 +01:00
PhilippC
a0b80f706e New translations strings.xml (Hebrew) 2024-03-18 20:08:14 +01:00
PhilippC
1119ca31f6 New translations strings.xml (Hebrew) 2024-03-17 19:16:34 +01:00
PhilippC
d817e39c5d New translations strings.xml (Hebrew) 2024-03-17 17:45:30 +01:00
PhilippC
2f0881b917 New translations strings.xml (Japanese) 2024-03-11 10:07:53 +01:00
PhilippC
01666682b0 New translations strings.xml (Vietnamese) 2024-03-09 11:09:48 +01:00
PhilippC
2a56bee949 New translations strings.xml (Vietnamese) 2024-03-09 06:45:51 +01:00
PhilippC
78ed72390f New translations strings.xml (German) 2024-03-05 20:49:51 +01:00
PhilippC
17a83a731a New translations strings.xml (German) 2024-03-05 20:49:50 +01:00
PhilippC
a6a17be1eb New translations strings.xml (Vietnamese) 2024-03-05 16:36:44 +01:00
PhilippC
3d9a29c04b New translations strings.xml (Russian) 2024-03-05 16:36:43 +01:00
PhilippC
ae10cde944 New translations strings.xml (Russian) 2024-03-05 14:53:42 +01:00
PhilippC
8f947d6bd6 New translations strings.xml (Vietnamese) 2024-03-05 02:50:28 +01:00
PhilippC
c950a1d686 New translations strings.xml (Vietnamese) 2024-03-05 01:48:10 +01:00
PhilippC
50ef6f176c New translations strings.xml (Vietnamese) 2024-03-03 18:25:05 +01:00
PhilippC
c65136307d New translations strings.xml (Vietnamese) 2024-03-03 17:10:40 +01:00
PhilippC
2ef38695eb New translations strings.xml (Vietnamese) 2024-03-03 16:07:05 +01:00
PhilippC
bbdc223de3 New translations strings.xml (Italian) 2024-02-29 22:56:08 +01:00
PhilippC
ab4ce573a0 New translations strings.xml (Italian) 2024-02-29 21:48:33 +01:00
PhilippC
5bac055c80 New translations strings.xml (Arabic) 2024-02-29 02:53:39 +01:00
PhilippC
dbb5d402ed New translations strings.xml (Russian) 2024-02-28 10:59:20 +01:00
PhilippC
0a34855fd5 New translations strings.xml (Japanese) 2024-02-27 00:07:49 +01:00
PhilippC
e870f63024 New translations strings.xml (Japanese) 2024-02-26 07:26:49 +01:00
PhilippC
29102af02c New translations strings.xml (Portuguese, Brazilian) 2024-02-22 11:37:09 +01:00
PhilippC
da15c02b29 New translations strings.xml (Japanese) 2024-02-20 11:29:47 +01:00
809 changed files with 31962 additions and 335 deletions

View File

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

View File

@@ -1,48 +0,0 @@
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

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

View File

@@ -1,14 +0,0 @@
<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

@@ -1,13 +0,0 @@
<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

@@ -1,35 +0,0 @@
<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>

View File

@@ -29,8 +29,6 @@ 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
@@ -371,30 +369,6 @@ 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

@@ -730,7 +730,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;
}

View File

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

View File

@@ -41,8 +41,7 @@ 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:7.0.0'
implementation 'com.dropbox.core:dropbox-android-sdk:7.0.0'
implementation 'com.dropbox.core:dropbox-core-sdk:5.4.6'
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,7 +7,6 @@ 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;
@@ -155,7 +154,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,11 +304,6 @@ 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

@@ -356,13 +356,7 @@ 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");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mPluginManager, pFilter, RECEIVER_EXPORTED);
}
else
{
registerReceiver(mPluginManager, pFilter);
}
registerReceiver(mPluginManager, pFilter);
LatinIMEUtil.GCUtils.getInstance().reset();
@@ -381,28 +375,16 @@ public class KP2AKeyboard extends InputMethodService
// register to receive ringer mode changes for silent mode
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mSilentModeReceiver, filter, RECEIVER_EXPORTED);
}
else
{
registerReceiver(mSilentModeReceiver, filter);
}
registerReceiver(mSilentModeReceiver, filter);
prefs.registerOnSharedPreferenceChangeListener(this);
//check if we have KP2A data available:
mHadKp2aData = mShowKp2aKeyboard = KeyboardData.hasData();
mHadKp2aData = mShowKp2aKeyboard = keepass2android.kbbridge.KeyboardData.hasData();
mClearKeyboardReceiver = new ClearKeyboardBroadcastReceiver();
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));
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));
}

View File

@@ -19,7 +19,7 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title for Latin keyboard -->
<string name="english_ime_name">Keepass2Android-Tastatur</string>
<string name="english_ime_name">KeePass2Android-Tastatur</string>
<!-- Title for Latin keyboard settings activity / dialog -->
<string name="english_ime_settings">Android-Tastatureinstellungen</string>
<!-- Title for Latin keyboard input options dialog -->
@@ -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">Autovervollständigung</string>
<string name="auto_complete_dialog_title">Automatische. Vervollstä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">Schnelle Korrektur</string>
<string name="quick_fixes">Schnelle Fixierung</string>
<!-- Description for quick fixes -->
<string name="quick_fixes_summary">Korrigiert gängige Tippfehler</string>
<!-- Option to enable showing suggestions -->
@@ -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 antippen, um fortzufahren.»</string>
<string name="touch_to_continue">Diesen Hinweis berühren, 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">123</string>
<string name="label_phone_key">Nummer</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! -->
@@ -161,7 +161,7 @@
"Swipe across keyboard to speak"). Also shown when enabling settings. -->
<string name="voice_hint_dialog_message">Um die Spracheingabe zu verwenden, drücken Sie die Mikrofontaste oder ziehen Sie Ihren Finger über die Bildschirmtastatur.</string>
<!-- Short message to tell the user the system is ready for them to speak. -->
<string name="voice_listening">Jetzt sprechen</string>
<string name="voice_listening">Sprechen Sie jetzt</string>
<!-- Short message shown after the user finishes speaking. -->
<string name="voice_working">Vorgang läuft</string>
<!-- Short message shown before the user should speak. -->
@@ -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>Versuche beim nächsten Mal, Satzzeichen wie „Punkt“, „Komma“ oder „Fragezeichen“ per Sprachbefehl einzugeben.</string>
<string name="voice_punctuation_hint"><b>Hinweis: </b>Versuchen Sie 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 die Zurück-Taste.</string>
<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ü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

@@ -56,7 +56,7 @@
<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="one">Ordner wählen </item>
<item quantity="other">Verzeichnisse wählen</item>
</plurals>
<plurals name="afc_title_choose_files">
@@ -64,7 +64,7 @@
<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

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Feedback</string>
<string name="AboutText">Keepass2Android ist ein Passwortmanager, der KeePass 2.x-Datenbanken verwalten kann.</string>
<string name="AboutText">Keepass2Android ist ein Passwortmanager mit Lese- und Schreib-Zugriff auf KeePass 2.x Datenbanken.</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 Verwendung der JSch-Bibliothekvmit BSD-Lizenz der Fa. JCraft Inc.</string>
<string name="CreditsTextSFTP">SFTP-Unterstützung ist implementiert unter Nutzung der JSch-Bibliothek (BSD-Lizenz), erstellt durch 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 demselben Namen gibt.</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="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 URI nicht verarbeiten.</string>
<string name="error_can_not_handle_uri">Keepass2Android kann diese Adresse 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">Benutzernamen unter den Eintragstiteln anzeigen. Nützlich für mehrere Konten bei einem Dienst oder für TANs.</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="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">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="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="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,7 +1144,5 @@ 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="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

@@ -681,17 +681,6 @@
<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>
@@ -1175,7 +1164,5 @@
<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="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

@@ -1184,7 +1184,5 @@
<string name="AutofillWarning_Intro">Você esta prestes a inserir credenciais do domínio \"%1$s\" no app \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Se você confia em \"%2$s\" para pertencer \"%1$s\" ou se você confia no app \"%2$s\" a não mal-usar as credenciais (ex. por causa de um app de navegador confiável), é ok para continuar. Se não, por favor cancele.</string>
<string name="AutofillWarning_trustAsBrowser">Aceitar sempre em \"%1$s\"</string>
<string name="kp2a_switch_on_sendgodone">Voltar quando terminar</string>
<string name="kp2a_switch_on_sendgodone_summary">Voltar ao pressionar enviar/ir/concluído</string>
<string name="english_ime_settings">Configurações do teclado Android</string>
</resources>

View File

@@ -151,7 +151,6 @@
<string name="hint_keyfile">fişier cheie</string>
<string name="hint_length">lungime</string>
<string name="hint_pass">parola</string>
<string name="hint_keyfile_path">Calea cheii private SSH</string>
<string name="hint_login_pass">Parolă</string>
<string name="hint_title">nume</string>
<string name="hint_url">URL</string>

View File

@@ -672,26 +672,6 @@
<string name="Continue">Pokračovať</string>
<string name="NoFilenameWarning">Zadaná URI pravdepodobne nie je názvom súboru. Ste si istí, že ide o platný súbor?</string>
<string name="FirstInvalidCompositeKeyError">Neplatný kompozitný kľúč! Prosím skúste to ešte raz.</string>
<string name="RepeatedInvalidCompositeKeyHelp"> Neplatný kompozitný kľúč! Na odomknutie databázy skúste urobiť toto:\n
• Uistite sa, že ste zadali správne heslo. Na zobrazenie zadaného hesla kliknite na ikonu s okom.\n
• Uistite sa, že je vybraný správny typ hesla a že sa zhoduje s typom použitým pri vytváraní databázy.\n
• Uistite sa, že ste vybrali správny databázový súbor.
</string>
<string name="HintLocalBackupInvalidCompositeKey"> \n
• Pomôcka: Ak si myslíte, že je súbor s databázou poškodený alebo si nepamätáte primárny kľúč po jeho úprave, môžete skúsiť použiť poslednú úspešne otvorenú verziu súboru (ťuknite na \"%1$s\") a vybrať lokálnu zálohu.
</string>
<string name="HintLocalBackupOtherError"> \n
• Pomôcka: Keepass2Android uložil poslednú úspešne otvorenú verziu súboru do interného úložiska. Môžete ju otvoriť ťuknutím na \"%1$s\" a výberom lokálnej zálohy.
</string>
<string name="CorruptDatabaseHelp"> Súbor je poškodený. \n
Tu je niekoľko tipov, ktoré vám môžu pomôcť odhaliť problém:\n
• ak ste súbor skopírovali cez USB (režim MTP), skúste to ešte raz s použitím takého nástroja, ako je napr. MyPhoneExplorer. Režim MTP v niektorých prípadoch skracuje súbory.\n
• Ak nemôžete otvoriť súbor z rovnakého umiestnenia vo svojom PC, je veľmi pravdepodobné, že je poškodený. V takom prípade použite zálohu databázy. Ak predpokladáte, že súbor porušila aplikácia Keepass2Android, prosím kontaktujte tím podpory.\n
• Ak sa dá súbor otvoriť v PC, kontaktujte tím podpory. Môžete tiež skúsiť uložiť ho s odlišnými nastaveniami (napríklad nekomprimovane) na PC a potom ho opäť skúsiť otvoriť v aplikácii Keepass2Android.
</string>
<string name="open_other_db">Otvoriť inú databázu…</string>
<string name="select_database">Vybrať databázu</string>
<string name="configure_child_dbs">Konfigurovať sekundárne databázy…</string>
@@ -1184,7 +1164,5 @@
<string name="AutofillWarning_Intro">Chcete vložiť prihlas. údaje pre doménu \"%1$s\" do aplikácie \"%2$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Ak dôverujete aplikácii \"%2$s\", že patrí \"%1$s\" alebo ak dôverujete, že aplikácia \"%2$s\" nezneužíva prihlasovacie údaje (ak je to napríklad dôveryhodný prehliadač), môžete pokračovať. Ak nie, prosím zrušte túto akciu.</string>
<string name="AutofillWarning_trustAsBrowser">Vždy súhlasiť v \"%1$s\"</string>
<string name="kp2a_switch_on_sendgodone">Po dokončení prepnúť späť</string>
<string name="kp2a_switch_on_sendgodone_summary">Po stlačení Odoslať/Prejsť/Hotovo prejsť späť</string>
<string name="english_ime_settings">Nastavenia klávesnice Keepass2Android</string>
</resources>

View File

@@ -1182,7 +1182,5 @@
<string name="AutofillWarning_Intro">V aplikacijo \"%2$s\" vstavite poverilnice za domeno \"%1$s\".</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Če zaupate, da \"%2$s\" pripada \"%1$s\" ali da zaupate aplikaciji \"%2$s\" in ne boste zlorabljali poverilnic (npr. ker gre za zaupanja vredno aplikacijo brskalnika), je v redu, če nadaljujete . V nasprotnem primeru prekličite postopek.</string>
<string name="AutofillWarning_trustAsBrowser">Sprejmi vedno v \"%1$s\"</string>
<string name="kp2a_switch_on_sendgodone">Preklopi nazaj, ko je končano</string>
<string name="kp2a_switch_on_sendgodone_summary">Preklopi nazaj, ko pritisnete gumb za pošiljanje/prehajanje/končano</string>
<string name="english_ime_settings">Nastavitve tipkovnice Keepass2Android</string>
</resources>

View File

@@ -1156,7 +1156,5 @@ Initial public release
<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="kp2a_switch_on_sendgodone">完成后切换回来</string>
<string name="kp2a_switch_on_sendgodone_summary">按下发送/转到/完成时切换回来</string>
<string name="english_ime_settings">键盘设置</string>
</resources>

View File

@@ -14,11 +14,9 @@ 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;
@@ -31,16 +29,7 @@ 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_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, new List<int>{Resource.Array.ChangeLog_1_11,Resource.Array.ChangeLog_1_11_net}, "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"),
@@ -110,28 +99,32 @@ namespace keepass2android
warning = ctx.GetString(Resource.String.PreviewWarning);
}
builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AndroidX.AppCompat.App.AlertDialog)dlgSender).Dismiss(); });
builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((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();
};
wv.SetBackgroundColor(Color.Transparent);
wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, dialog.Context), "text/html", "UTF-8", null);
dialog.Show();
/*TextView message = (TextView)dialog.FindViewById(Android.Resource.Id.Message);
message.TextFormatted = Html.FromHtml(ConcatChangeLog(ctx, changeLog.ToArray()));
message.AutoLinkMask=MatchOptions.WebUrls;*/
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);
@@ -157,44 +150,32 @@ namespace keepass2android
}
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>
private const string HtmlStart = @"<html>
<head>
<style type='text/css'>
a { color:#"+ onSurfaceColor + @" }
a { color:#000000 }
div.title {
color:"+ secondaryColor+@";
color:287AA9;
font-size:1.2em;
font-weight:bold;
margin-top:1em;
margin-bottom:0.5em;
text-align:center }
div.subtitle {
color:"+ secondaryColor+@";
color:287AA9;
font-size:0.8em;
margin-bottom:1em;
text-align:center }
div.freetext { color:#"+ onSurfaceColor + @" }
div.list { color:#"+ onSurfaceColor + @" }
div.freetext { color:#000000 }
div.list { color:#000000 }
</style>
</head>
<body>";
StringBuilder sb = new StringBuilder(HtmlStart);
private const string HtmlEnd = @"</body>
</html>";
private static string GetLog(List<string> changeLog, string warning, Context ctx)
{
StringBuilder sb = new StringBuilder(HtmlStart);
if (!string.IsNullOrEmpty(warning))
{
sb.Append(warning);

View File

@@ -53,7 +53,6 @@ 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;
@@ -492,9 +491,9 @@ namespace keepass2android
App.Kp2a.LastOpenedEntry = new PwEntryOutput(Entry, App.Kp2a.CurrentDb);
_pluginActionReceiver = new PluginActionReceiver(this);
ContextCompat.RegisterReceiver(this, _pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), (int)ReceiverFlags.Exported);
RegisterReceiver(_pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), ReceiverFlags.Exported);
_pluginFieldReceiver = new PluginFieldReceiver(this);
ContextCompat.RegisterReceiver(this, _pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), (int)ReceiverFlags.Exported);
RegisterReceiver(_pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), ReceiverFlags.Exported);
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
notifyPluginsOnOpenThread.Start();

View File

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

View File

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

View File

@@ -18,7 +18,6 @@ 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
@@ -40,7 +39,7 @@ namespace keepass2android
_intentReceiver = new LockCloseActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
}
protected override void OnResume() {

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="202"
android:versionName="1.12-r1"
android:versionCode="200"
android:versionName="1.11-r0"
package="keepass2android.keepass2android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">

View File

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

View File

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

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