Merge branch 'master' into auto-backup
This commit is contained in:
commit
67fbed0cca
123 changed files with 3350 additions and 2581 deletions
24
.gitignore
vendored
24
.gitignore
vendored
|
@ -1,11 +1,17 @@
|
|||
*.iml
|
||||
.gradle
|
||||
# Local config files
|
||||
crowdin.properties
|
||||
/local.properties
|
||||
/.idea/workspace.xml
|
||||
/.idea/libraries
|
||||
/.idea/markdown-navigator*
|
||||
/.idea/caches
|
||||
local.properties
|
||||
|
||||
# IntelliJ
|
||||
*.iml
|
||||
.idea
|
||||
|
||||
# Gradle
|
||||
.gradle
|
||||
build
|
||||
|
||||
# Android Studio
|
||||
captures
|
||||
|
||||
# OS files
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WizardSettings">
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorWizard">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorAssetStep">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="assetSourceType" value="FILE" />
|
||||
<entry key="height" value="128" />
|
||||
<entry key="outputName" value="thumb_instagram" />
|
||||
<entry key="overrideSize" value="true" />
|
||||
<entry key="sourceFile" value="$PROJECT_DIR$/../../../downloads/instagram.svg" />
|
||||
<entry key="width" value="128" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
|
@ -1,29 +0,0 @@
|
|||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<Objective-C-extensions>
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" fileNamingConvention="NONE" />
|
||||
<pair source="c" header="h" fileNamingConvention="NONE" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
</code_scheme>
|
||||
</component>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
|
@ -1,14 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CMakeSettings">
|
||||
<configurations>
|
||||
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||
</configurations>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/andOTP.iml" filepath="$PROJECT_DIR$/andOTP.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -1,5 +1,11 @@
|
|||
# Changelog
|
||||
|
||||
#### v0.6.3.1
|
||||
|
||||
* Introduce build flavors:
|
||||
- fdroid: Shows donation links in the About section
|
||||
- play: Doesn't show donation links in the About section
|
||||
|
||||
#### v0.6.3
|
||||
|
||||
* Security: Improved password derivation for the password protected backups
|
||||
|
@ -11,8 +17,10 @@
|
|||
* Bug fix: Always use arabic numerals for the tokens (Issue #359)
|
||||
* Bug fix: Refactor storage access code to allow importing and exporting from cloud storage directly
|
||||
* Bug fix: Hardcode the black background color to avoid strange behaviour on some custom ROMs
|
||||
* Bug fix: Force English locales for saving AuthMethod
|
||||
* Misc: Update donation links (PR #351)
|
||||
* Thumbnails: Lots of new thumbnails
|
||||
* Translations: Hungarian
|
||||
|
||||
#### v0.6.2
|
||||
|
||||
|
|
16
README.md
16
README.md
|
@ -1,7 +1,7 @@
|
|||
# andOTP - Android OTP Authenticator
|
||||
|
||||
[![Build Status](https://travis-ci.org/andOTP/andOTP.svg?branch=master)](https://travis-ci.org/andOTP/andOTP)
|
||||
[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.6.3-beta1/andOTP_v0.6.3-beta1.apk)
|
||||
[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.6.3.1/andOTP_v0.6.3.1.apk)
|
||||
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/andotp/localized.svg)](https://crowdin.com/project/andotp)
|
||||
[![Chat - Telegram](https://img.shields.io/badge/chat-Telegram-blue.svg)](https://t.me/andOTP)
|
||||
[![Chat - Matrix](https://img.shields.io/badge/chat-Matrix-blue.svg)](https://matrix.to/#/#andOTP:privacytools.io)
|
||||
|
@ -61,7 +61,7 @@ key, which renders them useless.
|
|||
|
||||
### Opening the backups on your PC:
|
||||
|
||||
* [OpenPGP](http://openpgp.org/): OpenPGP can be used to easily decrypt the **OpenPGP-encrypted backups** on your PC.
|
||||
* [OpenPGP](https://openpgp.org/): OpenPGP can be used to easily decrypt the **OpenPGP-encrypted backups** on your PC.
|
||||
* [WebDecrypt](https://flocke.shadowice.org/andOTP/decrypt/): JavaScript-based decryption of the **new password-protected backup format** in the browser ([source code](https://github.com/andOTP/WebDecrypt)).
|
||||
* [andOTP-decrypt](https://github.com/asmw/andOTP-decrypt): Python script written by @asmw to decrypt the **old password-protected backup format** on your PC.
|
||||
|
||||
|
@ -89,16 +89,18 @@ So make sure you have a **current backup** before switching!
|
|||
|
||||
* **Translation**: If you want to help translate andOTP into your language head over to the [Crowdin project](https://crowdin.com/project/andotp).
|
||||
* **Bug reports and feature requests**: You can report bugs and request features in the [Issue tracker](https://github.com/andOTP/andOTP/issues) on GitHub.
|
||||
* **Requesting thumbnails**: If you are missing a thumbnail you can request it by editing the [wiki](https://github.com/andOTP/andOTP/wiki/Thumbnails#thumbnail-requests)
|
||||
* **Requesting thumbnails**: If you are missing a thumbnail you can request it by [opening an issue](https://github.com/andOTP/andOTP/issues/new).
|
||||
* **Discussion and support**:
|
||||
- [XDA thread](https://forum.xda-developers.com/android/apps-games/app-andotp-android-otp-authenticator-t3636993) (please keep off-topic to a minimum)
|
||||
- Telegram group [@andOTP](https://t.me/andOTP) (if you just want important updates you can mute the group so you only get notified about pinned messages)
|
||||
- Matrix channel [#andOTP:privacytools.io](https://matrix.to/#/#andOTP:privacytools.io)
|
||||
|
||||
#### Developers:
|
||||
#### Donations:
|
||||
|
||||
* [Jakob Nixdorf](https://github.com/flocke) (Telegram: [@flocke000](https://t.me/flocke000), Reddit: [/u/flocke000](https://www.reddit.com/user/flocke000))
|
||||
* [Richy HBM](https://github.com/RichyHBM)
|
||||
If you want to show your appreciation for our work with a small donation you can do so using the following links:
|
||||
|
||||
* [Donate to Jakob Nixdorf](https://flocke.shadowice.org/donate.html) (Main developer, maintainer)
|
||||
* [Donate to Richy HBM](https://richyhbm.co.uk/donate) (Developer)
|
||||
|
||||
## Screenshots:
|
||||
#### Light theme:
|
||||
|
@ -136,7 +138,7 @@ So make sure you have a **current backup** before switching!
|
|||
|
||||
* [Android-ItemTouchHelper-Demo](https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/tree/master/app/src/main/java/co/paulburke/android/itemtouchhelperdemo/helper)
|
||||
* [Code Parts from Google's Android Samples](https://android.googlesource.com/platform/development/+/master/samples/Vault/src/com/example/android/vault)
|
||||
* [LetterBitmap](http://stackoverflow.com/questions/23122088/colored-boxed-with-letters-a-la-gmail)
|
||||
* [LetterBitmap](https://stackoverflow.com/questions/23122088/colored-boxed-with-letters-a-la-gmail)
|
||||
* [DimensionConverter](https://stackoverflow.com/questions/8343971/how-to-parse-a-dimension-string-and-convert-it-to-a-dimension-value)
|
||||
|
||||
#### Previously used open-source components:
|
||||
|
|
|
@ -8,8 +8,8 @@ android {
|
|||
applicationId "org.shadowice.flocke.andotp"
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 28
|
||||
versionCode 24
|
||||
versionName "0.6.3-beta1"
|
||||
versionCode 26
|
||||
versionName "0.6.3.1"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
}
|
||||
buildTypes {
|
||||
|
@ -29,6 +29,16 @@ android {
|
|||
dataBinding {
|
||||
enabled = true
|
||||
}
|
||||
flavorDimensions 'market'
|
||||
productFlavors {
|
||||
fdroid {
|
||||
dimension = 'market'
|
||||
}
|
||||
play {
|
||||
dimension = 'market'
|
||||
versionNameSuffix = "-play"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
package org.shadowice.flocke.andotp.Fragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import org.shadowice.flocke.andotp.R;
|
||||
|
||||
public class AboutFragment extends BaseAboutFragment {
|
||||
private static final String ABOUT_AUTHOR1_EXTRA_LINK = "https://flocke.shadowice.org/donate.html";
|
||||
private static final String ABOUT_AUTHOR2_EXTRA_LINK = "https://richyhbm.co.uk/donate";
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View v = super.onCreateView(inflater, container, savedInstanceState);
|
||||
|
||||
LinearLayout author1Content = v.findViewById(R.id.aboutLayoutAuthor1Content);
|
||||
LinearLayout author2Content = v.findViewById(R.id.aboutLayoutAuthor2Content);
|
||||
|
||||
View extra1 = inflater.inflate(R.layout.part_author_extra, null);
|
||||
View extra2 = inflater.inflate(R.layout.part_author_extra, null);
|
||||
|
||||
extra1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
try {
|
||||
openURI(ABOUT_AUTHOR1_EXTRA_LINK);
|
||||
} catch (Exception ignored) {
|
||||
copyToClipboard(ABOUT_AUTHOR1_EXTRA_LINK);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
extra2.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
try {
|
||||
openURI(ABOUT_AUTHOR2_EXTRA_LINK);
|
||||
} catch (Exception ignored) {
|
||||
copyToClipboard(ABOUT_AUTHOR2_EXTRA_LINK);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
author1Content.addView(extra1);
|
||||
author2Content.addView(extra2);
|
||||
|
||||
return v;
|
||||
}
|
||||
}
|
10
app/src/fdroid/res/layout/part_author_extra.xml
Normal file
10
app/src/fdroid/res/layout/part_author_extra.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/activity_margin_small"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/about_label_donate" />
|
|
@ -27,6 +27,13 @@
|
|||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="otpauth" android:host="totp" />
|
||||
<data android:scheme="otpauth" android:host="hotp" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="org.shadowice.flocke.andotp.intent.SCAN_QR" />
|
||||
<action android:name="org.shadowice.flocke.andotp.intent.ENTER_DETAILS" />
|
||||
|
|
|
@ -277,17 +277,34 @@ public class MainActivity extends BaseActivity
|
|||
|
||||
setupDrawer();
|
||||
|
||||
Intent callingIntent = getIntent();
|
||||
if (callingIntent != null && callingIntent.getAction() != null) {
|
||||
if (callingIntent.getAction().equals(INTENT_SCAN_QR)) {
|
||||
scanQRCode();
|
||||
} else if (callingIntent.getAction().equals(INTENT_ENTER_DETAILS)) {
|
||||
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
||||
if (savedInstanceState != null){
|
||||
setFilterString(savedInstanceState.getString("filterString", ""));
|
||||
}
|
||||
}
|
||||
|
||||
if (savedInstanceState != null){
|
||||
setFilterString(savedInstanceState.getString("filterString", ""));
|
||||
private void checkIntent() {
|
||||
Intent callingIntent = getIntent();
|
||||
if (callingIntent != null && callingIntent.getAction() != null) {
|
||||
// Cache and reset the action to prevent the same intent from being evaluated multiple times
|
||||
String intentAction = callingIntent.getAction();
|
||||
callingIntent.setAction(null);
|
||||
|
||||
if (intentAction.equals(INTENT_SCAN_QR)) {
|
||||
scanQRCode();
|
||||
} else if (intentAction.equals(INTENT_ENTER_DETAILS)) {
|
||||
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
||||
} else if (intentAction.equals(Intent.ACTION_VIEW)) {
|
||||
try {
|
||||
Entry entry = new Entry(callingIntent.getDataString());
|
||||
entry.updateOTP();
|
||||
entry.setLastUsed(System.currentTimeMillis());
|
||||
adapter.addEntry(entry);
|
||||
adapter.saveEntries();
|
||||
Toast.makeText(this, R.string.toast_intent_creation_succeeded, Toast.LENGTH_LONG).show();
|
||||
} catch (Exception e) {
|
||||
Toast.makeText(this, R.string.toast_intent_creation_failed, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -322,6 +339,7 @@ public class MainActivity extends BaseActivity
|
|||
} else {
|
||||
populateAdapter();
|
||||
}
|
||||
checkIntent();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -330,11 +348,22 @@ public class MainActivity extends BaseActivity
|
|||
setFilterString(this.filterString);
|
||||
}
|
||||
|
||||
View cardList = findViewById(R.id.cardList);
|
||||
if(cardList.getVisibility() == View.INVISIBLE)
|
||||
cardList.setVisibility(View.VISIBLE);
|
||||
|
||||
startUpdater();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if(settings.getAuthMethod() == AuthMethod.DEVICE)
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
findViewById(R.id.cardList).setVisibility(View.INVISIBLE);
|
||||
}
|
||||
});
|
||||
super.onPause();
|
||||
stopUpdater();
|
||||
}
|
||||
|
@ -351,11 +380,14 @@ public class MainActivity extends BaseActivity
|
|||
key.equals(getString(R.string.settings_key_split_group_size)) ||
|
||||
key.equals(getString(R.string.settings_key_thumbnail_size))) {
|
||||
adapter.notifyDataSetChanged();
|
||||
} else if (key.equals(getString(R.string.settings_key_search_includes))) {
|
||||
adapter.clearFilter();
|
||||
} else if (key.equals(getString(R.string.settings_key_tap_to_reveal)) ||
|
||||
key.equals(getString(R.string.settings_key_theme)) ||
|
||||
key.equals(getString(R.string.settings_key_locale)) ||
|
||||
key.equals(getString(R.string.settings_key_enable_screenshot)) ||
|
||||
key.equals(getString(R.string.settings_key_tag_functionality)) ) {
|
||||
key.equals(getString(R.string.settings_key_tag_functionality)) ||
|
||||
key.equals(getString(R.string.settings_key_label_highlight_token))) {
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,10 +24,13 @@ package org.shadowice.flocke.andotp.Activities;
|
|||
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import org.shadowice.flocke.andotp.R;
|
||||
import org.shadowice.flocke.andotp.Utilities.Settings;
|
||||
import org.shadowice.flocke.andotp.Utilities.Tools;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -41,6 +44,11 @@ public abstract class ThemedActivity extends AppCompatActivity {
|
|||
setTheme(settings.getTheme());
|
||||
setLocale();
|
||||
|
||||
//Set navigation bar color
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
getWindow().setNavigationBarColor(Tools.getThemeColor(this,R.attr.navigationBarColor));
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ public class Entry {
|
|||
private static final int DEFAULT_PERIOD = 30;
|
||||
|
||||
private static final String JSON_SECRET = "secret";
|
||||
private static final String JSON_ISSUER = "issuer";
|
||||
private static final String JSON_LABEL = "label";
|
||||
private static final String JSON_PERIOD = "period";
|
||||
private static final String JSON_COUNTER = "counter";
|
||||
|
@ -66,6 +67,7 @@ public class Entry {
|
|||
private TokenCalculator.HashAlgorithm algorithm = TokenCalculator.DEFAULT_ALGORITHM;
|
||||
private byte[] secret;
|
||||
private long counter;
|
||||
private String issuer;
|
||||
private String label;
|
||||
private String currentOTP;
|
||||
private boolean visible = false;
|
||||
|
@ -74,27 +76,35 @@ public class Entry {
|
|||
private long last_used = 0;
|
||||
public List<String> tags = new ArrayList<>();
|
||||
private EntryThumbnail.EntryThumbnails thumbnail = EntryThumbnail.EntryThumbnails.Default;
|
||||
private static final int COLOR_DEFAULT = 0;
|
||||
public static final int COLOR_RED = 1;
|
||||
private static final int EXPIRY_TIME = 8;
|
||||
private int color = COLOR_DEFAULT;
|
||||
|
||||
public Entry(){}
|
||||
|
||||
public Entry(OTPType type, String secret, int period, int digits, String label, TokenCalculator.HashAlgorithm algorithm, List<String> tags) {
|
||||
public Entry(OTPType type, String secret, int period, int digits, String issuer, String label, TokenCalculator.HashAlgorithm algorithm, List<String> tags) {
|
||||
this.type = type;
|
||||
this.secret = new Base32().decode(secret.toUpperCase());
|
||||
this.period = period;
|
||||
this.digits = digits;
|
||||
this.issuer = issuer;
|
||||
this.label = label;
|
||||
this.algorithm = algorithm;
|
||||
this.tags = tags;
|
||||
setThumbnailFromIssuer(issuer);
|
||||
}
|
||||
|
||||
public Entry(OTPType type, String secret, long counter, int digits, String label, TokenCalculator.HashAlgorithm algorithm, List<String> tags) {
|
||||
public Entry(OTPType type, String secret, long counter, int digits, String issuer, String label, TokenCalculator.HashAlgorithm algorithm, List<String> tags) {
|
||||
this.type = type;
|
||||
this.secret = new Base32().decode(secret.toUpperCase());
|
||||
this.counter = counter;
|
||||
this.digits = digits;
|
||||
this.issuer = issuer;
|
||||
this.label = label;
|
||||
this.algorithm = algorithm;
|
||||
this.tags = tags;
|
||||
setThumbnailFromIssuer(issuer);
|
||||
}
|
||||
|
||||
public Entry(String contents) throws Exception {
|
||||
|
@ -124,10 +134,6 @@ public class Entry {
|
|||
String algorithm = uri.getQueryParameter("algorithm");
|
||||
List<String> tags = uri.getQueryParameters("tags");
|
||||
|
||||
if (issuer != null){
|
||||
label = issuer +" - "+label;
|
||||
}
|
||||
|
||||
if (type == OTPType.HOTP) {
|
||||
if (counter != null) {
|
||||
this.counter = Long.parseLong(counter);
|
||||
|
@ -142,6 +148,7 @@ public class Entry {
|
|||
}
|
||||
}
|
||||
|
||||
this.issuer = issuer;
|
||||
this.label = label;
|
||||
this.secret = new Base32().decode(secret.toUpperCase());
|
||||
|
||||
|
@ -162,6 +169,10 @@ public class Entry {
|
|||
} else {
|
||||
this.tags = new ArrayList<>();
|
||||
}
|
||||
|
||||
if (issuer != null) {
|
||||
setThumbnailFromIssuer(issuer);
|
||||
}
|
||||
}
|
||||
|
||||
public Entry (JSONObject jsonObj)
|
||||
|
@ -169,6 +180,13 @@ public class Entry {
|
|||
this.secret = new Base32().decode(jsonObj.getString(JSON_SECRET).toUpperCase());
|
||||
this.label = jsonObj.getString(JSON_LABEL);
|
||||
|
||||
try {
|
||||
this.issuer = jsonObj.getString(JSON_ISSUER);
|
||||
} catch (JSONException e) {
|
||||
// Older backup version did not save issuer and label separately
|
||||
this.issuer = "";
|
||||
}
|
||||
|
||||
try {
|
||||
this.type = OTPType.valueOf(jsonObj.getString(JSON_TYPE));
|
||||
} catch(Exception e) {
|
||||
|
@ -227,6 +245,7 @@ public class Entry {
|
|||
public JSONObject toJSON() throws JSONException {
|
||||
JSONObject jsonObj = new JSONObject();
|
||||
jsonObj.put(JSON_SECRET, new String(new Base32().encode(getSecret())));
|
||||
jsonObj.put(JSON_ISSUER, getIssuer());
|
||||
jsonObj.put(JSON_LABEL, getLabel());
|
||||
jsonObj.put(JSON_DIGITS, getDigits());
|
||||
jsonObj.put(JSON_TYPE, getType().toString());
|
||||
|
@ -252,6 +271,8 @@ public class Entry {
|
|||
return type == OTPType.TOTP || type == OTPType.STEAM;
|
||||
}
|
||||
|
||||
public boolean isCounterBased() { return type == OTPType.HOTP; }
|
||||
|
||||
public OTPType getType() {
|
||||
return type;
|
||||
}
|
||||
|
@ -268,6 +289,14 @@ public class Entry {
|
|||
this.secret = secret;
|
||||
}
|
||||
|
||||
public String getIssuer() {
|
||||
return issuer;
|
||||
}
|
||||
|
||||
public void setIssuer(String issuer) {
|
||||
this.issuer = issuer;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
@ -360,7 +389,8 @@ public class Entry {
|
|||
currentOTP = TokenCalculator.TOTP_Steam(secret, period, digits, algorithm);
|
||||
|
||||
last_update = counter;
|
||||
|
||||
//New OTP. Change color to default color
|
||||
setColor(COLOR_DEFAULT);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
@ -373,6 +403,33 @@ public class Entry {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the OTP is expiring. The color for the entry will be changed to red if the expiry time is less than or equal to 8 seconds
|
||||
* COLOR_DEFAULT indicates that the OTP has not expired. In this case check if the OTP is about to expire. Update color to COLOR_RED if it's about to expire
|
||||
* COLOR_RED indicates that the OTP is already about to expire. Don't check again.
|
||||
* The color will be reset to COLOR_DEFAULT in {@link #updateOTP()} method
|
||||
*
|
||||
* @return Return true only if the color has changed to red to save from unnecessary notifying dataset
|
||||
* */
|
||||
public boolean hasColorChanged() {
|
||||
if(color == COLOR_DEFAULT){
|
||||
long time = System.currentTimeMillis() / 1000;
|
||||
if ((time % getPeriod()) > (getPeriod() - EXPIRY_TIME)) {
|
||||
setColor(COLOR_RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void setThumbnailFromIssuer(String issuer) {
|
||||
try {
|
||||
this.thumbnail = EntryThumbnail.EntryThumbnails.valueOfIgnoreCase(issuer);
|
||||
} catch(Exception e) {
|
||||
this.thumbnail = EntryThumbnail.EntryThumbnails.Default;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
|
@ -391,4 +448,12 @@ public class Entry {
|
|||
public int hashCode() {
|
||||
return Objects.hash(type, period, counter, digits, algorithm, secret, label);
|
||||
}
|
||||
|
||||
public void setColor(int color) {
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
public int getColor() {
|
||||
return color;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,32 +25,27 @@ import org.shadowice.flocke.andotp.R;
|
|||
import org.shadowice.flocke.andotp.Utilities.Settings;
|
||||
import org.shadowice.flocke.andotp.Utilities.Tools;
|
||||
|
||||
public class AboutFragment extends Fragment {
|
||||
public class BaseAboutFragment extends Fragment {
|
||||
private static final String GITHUB_URI = "https://github.com/andOTP/andOTP";
|
||||
private static final String CHANGELOG_URI = GITHUB_URI + "/blob/master/CHANGELOG.md";
|
||||
private static final String MIT_URI = GITHUB_URI + "/blob/master/LICENSE.txt";
|
||||
|
||||
private static final String AUTHOR1_GITHUB = "https://github.com/flocke";
|
||||
private static final String AUTHOR1_EXTRA = "https://flocke.shadowice.org/donate.html";
|
||||
|
||||
private static final String AUTHOR2_GITHUB = "https://github.com/richyhbm";
|
||||
private static final String AUTHOR2_EXTRA = "https://richyhbm.co.uk/donate";
|
||||
|
||||
private static final String AUTHOR_ORIGINAL_GITHUB = "https://github.com/0xbb";
|
||||
private static final String AUTHOR_ORIGINAL_EXTRA = AUTHOR_ORIGINAL_GITHUB + "/otp-authenticator";
|
||||
|
||||
private static final String CONTRIBUTORS_URI = GITHUB_URI + "/blob/master/README.md#contributors";
|
||||
private static final String TRANSLATORS_URI = GITHUB_URI + "/blob/master/README.md#translators";
|
||||
private static final String CONTRIBUTORS_URI = GITHUB_URI + "/graphs/contributors";
|
||||
|
||||
private static final String BUGREPORT_URI = GITHUB_URI + "/issues";
|
||||
private static final String TRANSLATE_URI = "https://crowdin.com/project/andotp";
|
||||
private static final String SUPPORT_URI = GITHUB_URI + "/blob/master/README.md#contribute";
|
||||
|
||||
private Settings settings;
|
||||
|
||||
static final int[] imageResources = {
|
||||
R.id.aboutImgVersion, R.id.aboutImgLicense, R.id.aboutImgChangelog, R.id.aboutImgSource,
|
||||
R.id.aboutImgAuthor2, R.id.aboutImgAuthorOriginal, R.id.aboutImgContributors,
|
||||
R.id.aboutImgTranslators, R.id.aboutImgBugs, R.id.aboutImgTranslate
|
||||
R.id.aboutImgSupport
|
||||
};
|
||||
|
||||
static long lastTap = 0;
|
||||
|
@ -138,43 +133,20 @@ public class AboutFragment extends Fragment {
|
|||
});
|
||||
|
||||
LinearLayout author1Layout = v.findViewById(R.id.aboutLayoutAuthor1);
|
||||
TextView author1Donate = v.findViewById(R.id.about_author1_extra);
|
||||
author1Layout.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openURI(AUTHOR1_GITHUB);
|
||||
}
|
||||
});
|
||||
author1Donate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
try {
|
||||
openURI(AUTHOR1_EXTRA);
|
||||
} catch(Exception ignored) {
|
||||
copyToClipboard(AUTHOR1_EXTRA);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
LinearLayout author2Layout = v.findViewById(R.id.aboutLayoutAuthor2);
|
||||
TextView author2Donate = v.findViewById(R.id.about_author2_extra);
|
||||
author2Layout.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openURI(AUTHOR2_GITHUB);
|
||||
}
|
||||
});
|
||||
author2Donate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
try {
|
||||
openURI(AUTHOR2_EXTRA);
|
||||
} catch(Exception ignored) {
|
||||
copyToClipboard(AUTHOR2_EXTRA);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
LinearLayout authorOrigialLayout = v.findViewById(R.id.aboutLayoutOriginalAuthor);
|
||||
TextView authorOriginalApp = v.findViewById(R.id.about_author_original_extra);
|
||||
|
@ -196,32 +168,18 @@ public class AboutFragment extends Fragment {
|
|||
});
|
||||
|
||||
LinearLayout contributors = v.findViewById(R.id.about_layout_contributors);
|
||||
LinearLayout translators = v.findViewById(R.id.about_layout_translators);
|
||||
contributors.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openURI(CONTRIBUTORS_URI);
|
||||
}
|
||||
});
|
||||
translators.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openURI(TRANSLATORS_URI);
|
||||
}
|
||||
});
|
||||
|
||||
LinearLayout bugReport = v.findViewById(R.id.about_layout_bugs);
|
||||
LinearLayout translate = v.findViewById(R.id.about_layout_translate);
|
||||
bugReport.setOnClickListener(new View.OnClickListener() {
|
||||
LinearLayout supportLayout = v.findViewById(R.id.about_layout_support);
|
||||
supportLayout.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openURI(BUGREPORT_URI);
|
||||
}
|
||||
});
|
||||
translate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openURI(TRANSLATE_URI);
|
||||
openURI(SUPPORT_URI);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -259,5 +217,4 @@ public class AboutFragment extends Fragment {
|
|||
clipboard.setPrimaryClip(clip);
|
||||
Toast.makeText(getActivity(), getString(R.string.about_toast_copied_to_clipboard), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
}
|
|
@ -50,6 +50,7 @@ import org.shadowice.flocke.andotp.Utilities.UIHelper;
|
|||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static android.content.Context.KEYGUARD_SERVICE;
|
||||
import static org.shadowice.flocke.andotp.Utilities.Constants.AuthMethod;
|
||||
|
@ -145,11 +146,11 @@ public class CredentialsPreference extends DialogPreference
|
|||
@Override
|
||||
protected void onSetInitialValue(boolean restorePersistedValue, Object defaultValue) {
|
||||
if (restorePersistedValue) {
|
||||
String stringValue = getPersistedString(DEFAULT_VALUE.name().toLowerCase());
|
||||
value = AuthMethod.valueOf(stringValue.toUpperCase());
|
||||
String stringValue = getPersistedString(DEFAULT_VALUE.name().toLowerCase(Locale.ENGLISH));
|
||||
value = AuthMethod.valueOf(stringValue.toUpperCase(Locale.ENGLISH));
|
||||
} else {
|
||||
value = DEFAULT_VALUE;
|
||||
persistString(value.name().toLowerCase());
|
||||
persistString(value.name().toLowerCase(Locale.ENGLISH));
|
||||
}
|
||||
|
||||
setSummary(entries.get(entryValues.indexOf(value)));
|
||||
|
|
|
@ -52,6 +52,10 @@ public class Constants {
|
|||
BACKUP_FAILED, BACKUP_SUCCESS
|
||||
}
|
||||
|
||||
public enum SearchIncludes {
|
||||
LABEL, ISSUER, TAGS
|
||||
}
|
||||
|
||||
// Intents (Format: A0x with A = parent Activity, x = number of the intent)
|
||||
public final static int INTENT_MAIN_AUTHENTICATE = 100;
|
||||
public final static int INTENT_MAIN_SETTINGS = 101;
|
||||
|
|
|
@ -127,6 +127,7 @@ public class EntryThumbnail {
|
|||
Kraken(R.drawable.thumb_kraken),
|
||||
Kucoin(R.drawable.thumb_kucoin),
|
||||
LastPass(R.drawable.thumb_lastpass),
|
||||
LibreNMS(R.drawable.thumb_librenms),
|
||||
Lichess(R.drawable.thumb_lichess),
|
||||
LinkedIn(R.drawable.thumb_linkedin),
|
||||
Linode(R.drawable.thumb_linode),
|
||||
|
@ -158,6 +159,7 @@ public class EntryThumbnail {
|
|||
Okta(R.drawable.thumb_okta),
|
||||
OnlineNet(R.drawable.thumb_online),
|
||||
OpenVZ(R.drawable.thumb_openvz),
|
||||
OPNsense(R.drawable.thumb_opnsense),
|
||||
Origin(R.drawable.thumb_origin),
|
||||
OVH(R.drawable.thumb_ovh),
|
||||
Packet(R.drawable.thumb_packet),
|
||||
|
@ -170,6 +172,7 @@ public class EntryThumbnail {
|
|||
phpMyAdmin(R.drawable.thumb_phpmyadmin),
|
||||
Plurk(R.drawable.thumb_plurk),
|
||||
Posteo(R.drawable.thumb_posteo),
|
||||
PrivateInternetAccess(R.drawable.thumb_private_internet_access),
|
||||
ProtonMail(R.drawable.thumb_protonmail),
|
||||
Proxmox(R.drawable.thumb_proxmox),
|
||||
PyPI(R.drawable.thumb_pypi),
|
||||
|
@ -239,6 +242,12 @@ public class EntryThumbnail {
|
|||
public AssetType getAssetType() {
|
||||
return assetType;
|
||||
}
|
||||
|
||||
public static EntryThumbnails valueOfIgnoreCase(String thumbnail) {
|
||||
for (EntryThumbnails entryThumbnails : values())
|
||||
if (entryThumbnails.name().equalsIgnoreCase(thumbnail)) return entryThumbnails;
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Bitmap getThumbnailGraphic(Context context, String label, int size, EntryThumbnails thumbnail) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import java.nio.charset.StandardCharsets;
|
|||
import java.security.KeyPair;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.spec.InvalidKeySpecException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
|
@ -216,12 +217,12 @@ public class Settings {
|
|||
}
|
||||
|
||||
public AuthMethod getAuthMethod() {
|
||||
String authString = getString(R.string.settings_key_auth, CredentialsPreference.DEFAULT_VALUE.name().toLowerCase());
|
||||
return AuthMethod.valueOf(authString.toUpperCase());
|
||||
String authString = getString(R.string.settings_key_auth, CredentialsPreference.DEFAULT_VALUE.name().toLowerCase(Locale.ENGLISH));
|
||||
return AuthMethod.valueOf(authString.toUpperCase(Locale.ENGLISH));
|
||||
}
|
||||
|
||||
public void setAuthMethod(AuthMethod authMethod) {
|
||||
setString(R.string.settings_key_auth, authMethod.name().toLowerCase());
|
||||
setString(R.string.settings_key_auth, authMethod.name().toLowerCase(Locale.ENGLISH));
|
||||
}
|
||||
|
||||
public void removeAuthPasswordHash() {
|
||||
|
@ -379,6 +380,18 @@ public class Settings {
|
|||
setString(R.string.settings_key_sort_mode, value.toString());
|
||||
}
|
||||
|
||||
public List<Constants.SearchIncludes> getSearchValues() {
|
||||
Set<String> stringValues = settings.getStringSet(getResString(R.string.settings_key_search_includes), new HashSet<>(Arrays.asList(context.getResources().getStringArray(R.array.settings_defaults_search_includes))));
|
||||
|
||||
List<Constants.SearchIncludes> values = new ArrayList<>();
|
||||
|
||||
for (String value : stringValues) {
|
||||
values.add(Constants.SearchIncludes.valueOf(value.toUpperCase(Locale.ENGLISH)));
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public boolean getBackupAsk() {
|
||||
return getBoolean(R.string.settings_key_backup_ask, true);
|
||||
}
|
||||
|
@ -528,4 +541,8 @@ public class Settings {
|
|||
public boolean getAutoBackupEncryptedPasswordsEnabled() {
|
||||
return getBoolean(R.string.settings_key_auto_backup_password_enc, false);
|
||||
}
|
||||
|
||||
public boolean isHighlightTokenOptionEnabled() {
|
||||
return getBoolean(R.string.settings_key_label_highlight_token,true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -198,7 +198,14 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
for (Entry e : entries) {
|
||||
if (e.isTimeBased()) {
|
||||
boolean item_changed = e.updateOTP();
|
||||
change = change || item_changed || e.hasNonDefaultPeriod();
|
||||
boolean color_changed = false;
|
||||
|
||||
//Check color change only if highlighting token feature is enabled
|
||||
if(settings.isHighlightTokenOptionEnabled()) {
|
||||
color_changed = e.hasColorChanged();
|
||||
}
|
||||
|
||||
change = change || item_changed || e.hasNonDefaultPeriod() || color_changed;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -213,6 +220,9 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
if (!entry.isTimeBased())
|
||||
entry.updateOTP();
|
||||
|
||||
if(settings.isHighlightTokenOptionEnabled())
|
||||
entryViewHolder.updateColor(entry.getColor());
|
||||
|
||||
entryViewHolder.updateValues(entry);
|
||||
|
||||
entryViewHolder.setLabelSize(settings.getLabelSize());
|
||||
|
@ -268,6 +278,9 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
});
|
||||
taskHandler.postDelayed(entries.get(realIndex).getHideTask(), settings.getTapToRevealTimeout() * 1000);
|
||||
|
||||
if (entry.isCounterBased()) {
|
||||
updateEntry(entry, entries.get(realIndex), position);
|
||||
}
|
||||
entry.setVisible(true);
|
||||
notifyItemChanged(position);
|
||||
}
|
||||
|
@ -276,18 +289,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
|
||||
@Override
|
||||
public void onCounterClicked(int position) {
|
||||
Entry entry = displayedEntries.get(position);
|
||||
Entry realEntry = entries.get(getRealIndex(position));
|
||||
|
||||
long counter = entry.getCounter() + 1;
|
||||
|
||||
entry.setCounter(counter);
|
||||
entry.updateOTP();
|
||||
notifyItemChanged(position);
|
||||
|
||||
realEntry.setCounter(counter);
|
||||
realEntry.updateOTP();
|
||||
saveEntries(false);
|
||||
updateEntry(displayedEntries.get(position), entries.get(getRealIndex(position)), position);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -299,6 +301,19 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
return viewHolder;
|
||||
}
|
||||
|
||||
private void updateEntry(Entry entry, Entry realEntry, final int position) {
|
||||
long counter = entry.getCounter() + 1;
|
||||
|
||||
entry.setCounter(counter);
|
||||
entry.updateOTP();
|
||||
notifyItemChanged(position);
|
||||
|
||||
realEntry.setCounter(counter);
|
||||
realEntry.updateOTP();
|
||||
|
||||
saveEntries(false);
|
||||
}
|
||||
|
||||
private void hideEntry(Entry entry) {
|
||||
int pos = displayedEntries.indexOf(entry);
|
||||
int realIndex = entries.indexOf(entry);
|
||||
|
@ -392,6 +407,51 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
return true;
|
||||
}
|
||||
|
||||
public void editEntryIssuer(final int pos) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
|
||||
int marginSmall = context.getResources().getDimensionPixelSize(R.dimen.activity_margin_small);
|
||||
int marginMedium = context.getResources().getDimensionPixelSize(R.dimen.activity_margin_medium);
|
||||
|
||||
final EditText input = new EditText(context);
|
||||
input.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
input.setText(displayedEntries.get(pos).getIssuer());
|
||||
input.setSingleLine();
|
||||
|
||||
FrameLayout container = new FrameLayout(context);
|
||||
container.setPaddingRelative(marginMedium, marginSmall, marginMedium, 0);
|
||||
container.addView(input);
|
||||
|
||||
builder.setTitle(R.string.dialog_title_rename)
|
||||
.setView(container)
|
||||
.setPositiveButton(R.string.button_save, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
int realIndex = getRealIndex(pos);
|
||||
String newIssuer = input.getEditableText().toString();
|
||||
|
||||
displayedEntries.get(pos).setIssuer(newIssuer);
|
||||
if (sortMode == SortMode.LABEL) {
|
||||
displayedEntries = sortEntries(displayedEntries);
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
notifyItemChanged(pos);
|
||||
}
|
||||
|
||||
Entry e = entries.get(realIndex);
|
||||
e.setIssuer(newIssuer);
|
||||
|
||||
DatabaseHelper.saveDatabase(context, entries, encryptionKey);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {}
|
||||
})
|
||||
.create()
|
||||
.show();
|
||||
}
|
||||
|
||||
public void editEntryLabel(final int pos) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
|
||||
|
@ -606,7 +666,10 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
public boolean onMenuItemClick(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == R.id.menu_popup_editLabel) {
|
||||
if (id == R.id.menu_popup_editIssuer) {
|
||||
editEntryIssuer(pos);
|
||||
return true;
|
||||
} else if (id == R.id.menu_popup_editLabel) {
|
||||
editEntryLabel(pos);
|
||||
return true;
|
||||
} else if(id == R.id.menu_popup_changeImage) {
|
||||
|
@ -666,6 +729,11 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
return filter;
|
||||
}
|
||||
|
||||
public void clearFilter() {
|
||||
if (filter != null)
|
||||
filter = null;
|
||||
}
|
||||
|
||||
public List<String> getTags() {
|
||||
HashSet<String> tags = new HashSet<String>();
|
||||
|
||||
|
@ -677,15 +745,28 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
|||
}
|
||||
|
||||
public class EntryFilter extends Filter {
|
||||
private List<Constants.SearchIncludes> filterValues = settings.getSearchValues();
|
||||
|
||||
@Override
|
||||
protected FilterResults performFiltering(CharSequence constraint) {
|
||||
|
||||
final FilterResults filterResults = new FilterResults();
|
||||
|
||||
ArrayList<Entry> filtered = new ArrayList<>();
|
||||
if (constraint != null && constraint.length() != 0){
|
||||
for (int i = 0; i < entries.size(); i++) {
|
||||
if (entries.get(i).getLabel().toLowerCase().contains(constraint.toString().toLowerCase())) {
|
||||
if (filterValues.contains(Constants.SearchIncludes.LABEL) && entries.get(i).getLabel().toLowerCase().contains(constraint.toString().toLowerCase())) {
|
||||
filtered.add(entries.get(i));
|
||||
} else if (filterValues.contains(Constants.SearchIncludes.ISSUER) && entries.get(i).getIssuer().toLowerCase().contains(constraint.toString().toLowerCase())) {
|
||||
filtered.add(entries.get(i));
|
||||
} else if (filterValues.contains(Constants.SearchIncludes.TAGS)) {
|
||||
List<String> tags = entries.get(i).getTags();
|
||||
for (int j = 0; j < tags.size(); j++) {
|
||||
if (tags.get(j).toLowerCase().contains(constraint.toString().toLowerCase())) {
|
||||
filtered.add(entries.get(i));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -64,6 +64,7 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
|||
private ImageView visibleImg;
|
||||
private ImageView thumbnailImg;
|
||||
private TextView value;
|
||||
private TextView issuer;
|
||||
private TextView label;
|
||||
private TextView counter;
|
||||
private TextView tags;
|
||||
|
@ -81,6 +82,7 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
|||
thumbnailFrame = v.findViewById(R.id.thumbnailFrame);
|
||||
thumbnailImg = v.findViewById(R.id.thumbnailImg);
|
||||
coverLayout = v.findViewById(R.id.coverLayout);
|
||||
issuer = v.findViewById(R.id.textViewIssuer);
|
||||
label = v.findViewById(R.id.textViewLabel);
|
||||
tags = v.findViewById(R.id.textViewTags);
|
||||
counterLayout = v.findViewById(R.id.counterLayout);
|
||||
|
@ -149,7 +151,22 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
|||
|
||||
final String tokenFormatted = Tools.formatToken(entry.getCurrentOTP(), settings.getTokenSplitGroupSize());
|
||||
|
||||
String issuerText = entry.getIssuer();
|
||||
if (!TextUtils.isEmpty(issuerText)) {
|
||||
issuer.setText(entry.getIssuer());
|
||||
issuer.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
issuer.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
String labelText = entry.getLabel();
|
||||
if (!TextUtils.isEmpty(labelText)) {
|
||||
label.setText(entry.getLabel());
|
||||
label.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
label.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
value.setText(tokenFormatted);
|
||||
// save the unformatted token to the tag of this TextView for copy/paste
|
||||
value.setTag(entry.getCurrentOTP());
|
||||
|
@ -279,4 +296,19 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
|||
void onCounterClicked(int position);
|
||||
void onCounterLongPressed(int position);
|
||||
}
|
||||
/**
|
||||
* Updates the color of OTP to red (if expiring) or default color (if new OTP)
|
||||
*
|
||||
* @param color will define if the color needs to be changed to red or default
|
||||
* */
|
||||
public void updateColor(int color) {
|
||||
int textColor;
|
||||
if(color == Entry.COLOR_RED) {
|
||||
textColor = Tools.getThemeColor(context, R.attr.colorExpiring);
|
||||
} else {
|
||||
textColor = Tools.getThemeColor(context, android.R.attr.textColorSecondary);
|
||||
}
|
||||
|
||||
value.setTextColor(textColor);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ public class ManualEntryDialog {
|
|||
View inputView = callingActivity.getLayoutInflater().inflate(R.layout.dialog_manual_entry, container, false);
|
||||
|
||||
final Spinner typeInput = inputView.findViewById(R.id.manual_type);
|
||||
final EditText issuerInput = inputView.findViewById(R.id.manual_issuer);
|
||||
final EditText labelInput = inputView.findViewById(R.id.manual_label);
|
||||
final EditText secretInput = inputView.findViewById(R.id.manual_secret);
|
||||
final EditText counterInput = inputView.findViewById(R.id.manual_counter);
|
||||
|
@ -192,6 +193,7 @@ public class ManualEntryDialog {
|
|||
Entry.OTPType type = (Entry.OTPType) typeInput.getSelectedItem();
|
||||
TokenCalculator.HashAlgorithm algorithm = (TokenCalculator.HashAlgorithm) algorithmInput.getSelectedItem();
|
||||
|
||||
String issuer = issuerInput.getText().toString();
|
||||
String label = labelInput.getText().toString();
|
||||
String secret = secretInput.getText().toString();
|
||||
int digits = Integer.parseInt(digitsInput.getText().toString());
|
||||
|
@ -199,7 +201,7 @@ public class ManualEntryDialog {
|
|||
if (type == Entry.OTPType.TOTP || type == Entry.OTPType.STEAM) {
|
||||
int period = Integer.parseInt(periodInput.getText().toString());
|
||||
|
||||
Entry e = new Entry(type, secret, period, digits, label, algorithm, tagsAdapter.getActiveTags());
|
||||
Entry e = new Entry(type, secret, period, digits, issuer, label, algorithm, tagsAdapter.getActiveTags());
|
||||
e.updateOTP();
|
||||
e.setLastUsed(System.currentTimeMillis());
|
||||
adapter.addEntry(e);
|
||||
|
@ -208,7 +210,7 @@ public class ManualEntryDialog {
|
|||
} else if (type == Entry.OTPType.HOTP) {
|
||||
long counter = Long.parseLong(counterInput.getText().toString());
|
||||
|
||||
Entry e = new Entry(type, secret, counter, digits, label, algorithm, tagsAdapter.getActiveTags());
|
||||
Entry e = new Entry(type, secret, counter, digits, issuer, label, algorithm, tagsAdapter.getActiveTags());
|
||||
e.updateOTP();
|
||||
e.setLastUsed(System.currentTimeMillis());
|
||||
adapter.addEntry(e);
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF727272"
|
||||
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
|
||||
</vector>
|
9
app/src/main/res/drawable/ic_heart_gray.xml
Normal file
9
app/src/main/res/drawable/ic_heart_gray.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF727272"
|
||||
android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
|
||||
</vector>
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF727272"
|
||||
android:pathData="M12.87,15.07l-2.54,-2.51 0.03,-0.03c1.74,-1.94 2.98,-4.17 3.71,-6.53L17,6L17,4h-7L10,2L8,2v2L1,4v1.99h11.17C11.5,7.92 10.44,9.75 9,11.35 8.07,10.32 7.3,9.19 6.69,8h-2c0.73,1.63 1.73,3.17 2.98,4.56l-5.09,5.02L4,19l5,-5 3.11,3.11 0.76,-2.04zM18.5,10h-2L12,22h2l1.12,-3h4.75L21,22h2l-4.5,-12zM15.88,17l1.62,-4.33L19.12,17h-3.24z"/>
|
||||
</vector>
|
14
app/src/main/res/drawable/thumb_librenms.xml
Normal file
14
app/src/main/res/drawable/thumb_librenms.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="128dp"
|
||||
android:height="128dp"
|
||||
android:viewportWidth="128"
|
||||
android:viewportHeight="128">
|
||||
<path
|
||||
android:pathData="m71.517,44.187 l12.296,12.296 -4.839,4.879 -12.296,-12.296zM94.007,21.737 L106.303,34.033 101.424,38.912 89.128,26.615zM93.214,65.924 L105.589,78.22 100.71,83.099 88.018,70.803zM115.704,43.473 L128,55.769 123.161,60.648 110.865,47.955zM67.035,34.35 L79.331,22.054 84.249,26.933 71.953,39.229zM88.732,56.166 L101.028,43.87 105.946,48.63 93.65,60.926zM110.468,77.823 L122.764,65.527 127.643,70.366 115.347,82.662zM44.545,56.88 L56.841,44.584 61.759,49.423 49.463,61.719zM66.241,78.537 L78.617,66.241 83.456,71.12 71.16,83.416zM87.978,100.353 L100.274,87.978 105.193,92.856 92.896,105.549z"
|
||||
android:strokeWidth="0.26458332"
|
||||
android:fillColor="#575756"/>
|
||||
<path
|
||||
android:pathData="m26.576,89.088 l12.376,12.296 -4.839,4.918 -12.376,-12.376zM49.066,66.638 L61.362,78.934 56.523,83.813 44.227,71.517zM48.391,110.825 L60.688,123.121 55.809,128 43.513,115.704zM70.802,88.374 L83.098,100.671 78.259,105.549 65.963,93.253zM4.879,67.352 L17.175,79.648 12.296,84.487 0,72.191zM27.369,44.901 L39.665,57.197 34.787,62.076 22.49,49.78zM49.78,22.451 L62.076,34.747 57.316,39.665 45.02,27.369zM72.191,-0 L84.566,12.296 79.687,17.175 66.995,4.879zM45.337,12.693 L57.634,0.397 62.512,5.236 50.216,17.532zM22.847,35.183 L35.143,22.887 40.062,27.766 27.766,40.062zM0.397,57.673 L12.693,45.377 17.572,50.137 5.276,62.513zM22.054,79.331 L34.35,67.034 39.269,71.913 26.972,84.21zM43.79,101.067 L56.087,88.771 60.966,93.61 48.669,105.906zM65.448,122.804 L77.823,110.508 82.702,115.267 70.406,127.643z"
|
||||
android:strokeWidth="0.26458332"
|
||||
android:fillColor="#db202e"/>
|
||||
</vector>
|
31
app/src/main/res/drawable/thumb_opnsense.xml
Normal file
31
app/src/main/res/drawable/thumb_opnsense.xml
Normal file
|
@ -0,0 +1,31 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="128dp"
|
||||
android:height="128dp"
|
||||
android:viewportWidth="128"
|
||||
android:viewportHeight="128">
|
||||
<path
|
||||
android:pathData="m19.747,45.145c-0.04,0.287 -0.109,2.458 -0.155,4.826l-0.083,4.304 4.612,2.237 4.612,2.238 -14.366,0.007L0.001,58.763l0,5.164 0,5.164l14.113,0.031 14.113,0.031 -4.341,2.214 -4.341,2.214 0.014,2.89c0.008,1.59 0.049,3.78 0.092,4.867l0.077,1.977 2.854,-1.463c1.57,-0.805 4.51,-2.285 6.533,-3.289 2.023,-1.004 7.018,-3.535 11.1,-5.623l7.421,-3.797L47.635,63.936 47.635,58.729l-7.928,-4.049c-4.361,-2.227 -9.669,-4.909 -11.797,-5.96 -2.128,-1.052 -3.926,-1.953 -3.996,-2.002 -0.07,-0.05 -1.019,-0.541 -2.11,-1.092l-1.984,-1.002 -0.072,0.521m85.29,1.03c-1.64,0.843 -3.609,1.842 -4.377,2.221 -0.768,0.379 -5.661,2.853 -10.875,5.498l-9.479,4.808 -0.003,5.182 -0.003,5.183 9.038,4.608c4.971,2.534 9.638,4.898 10.371,5.253 0.732,0.355 2.95,1.474 4.927,2.486 1.978,1.012 3.621,1.816 3.652,1.785 0.031,-0.03 0.092,-2.206 0.134,-4.836l0.077,-4.781 -4.32,-2.214 -4.32,-2.214 14.068,-0.031 14.068,-0.031l0,-5.164 0,-5.164l-14.43,-0.007 -14.43,-0.007 4.662,-2.269 4.662,-2.269 -0.017,-2.244c-0.031,-3.973 -0.166,-7.265 -0.3,-7.296 -0.07,-0.017 -1.468,0.659 -3.108,1.502"
|
||||
android:fillColor="#d3732c"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M12.179,0.244C7.005,1.52 2.266,5.764 0.723,10.503 0.044,12.59 0.001,13.097 0.002,19.024l0.001,5.49 13.904,7.194c7.647,3.957 14.397,7.421 15,7.697 0.603,0.277 4.978,2.511 9.722,4.965 4.744,2.454 8.726,4.512 8.848,4.574 0.21,0.106 0.222,-0.16 0.222,-4.796L47.699,39.24L38.39,34.429C33.27,31.783 29.038,29.617 28.986,29.617 28.858,29.617 20.337,25.208 19.849,24.889 19.636,24.75 17.366,23.558 14.803,22.239l-4.66,-2.398 0.035,-2.829c0.045,-3.618 0.52,-4.796 2.279,-5.645l0.66,-0.319l52.366,0 52.366,0l-0.001,4.396 -0.001,4.397 -4.652,2.398c-2.558,1.319 -4.827,2.511 -5.042,2.65 -0.487,0.315 -9.014,4.729 -9.135,4.729 -0.049,0 -4.28,2.167 -9.404,4.816l-9.315,4.816l0,4.902 0,4.902l0.368,-0.185c0.203,-0.102 4.47,-2.303 9.483,-4.893 5.013,-2.589 9.268,-4.763 9.456,-4.83 0.189,-0.067 6.653,-3.387 14.366,-7.377L127.996,24.514 127.997,12.257 127.998,0 70.501,0.02C17.484,0.039 12.939,0.057 12.179,0.244m27.655,82.54c-4.291,2.222 -9.172,4.722 -10.846,5.557 -1.675,0.834 -8.867,4.53 -15.984,8.213L0.065,103.249 0.032,115.625 0,128l58.333,0c57.968,0 58.34,-0.002 59.337,-0.247 4.434,-1.09 8.166,-4.916 9.942,-10.19l0.388,-1.152 -0.033,-6.586 -0.033,-6.586 -13.637,-7.062c-7.5,-3.884 -14.151,-7.299 -14.778,-7.588 -0.628,-0.29 -5.21,-2.632 -10.181,-5.204l-9.04,-4.677 0.033,4.932 0.033,4.932 9.823,5.079c5.403,2.793 9.868,5.079 9.922,5.079 0.124,0 7.728,3.935 7.905,4.091 0.072,0.063 2.3,1.237 4.951,2.609l4.82,2.494l0,3.123 0,3.123l-0.431,0.848c-0.728,1.433 -1.794,2.248 -3.301,2.525 -0.452,0.083 -17.909,0.125 -52.293,0.125L10.147,117.67l0.033,-4.873 0.033,-4.872 4.82,-2.494c2.651,-1.371 4.878,-2.543 4.947,-2.605 0.166,-0.145 7.803,-4.096 7.918,-4.096 0.116,0 19.568,-10.057 19.701,-10.185 0.056,-0.054 0.087,-2.282 0.068,-4.95l-0.033,-4.852 -7.801,4.04"
|
||||
android:fillColor="#939393"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="m20.073,22.631 l0.034,2.36 4.44,2.306 4.44,2.306 35.012,0.002 35.012,0.002 4.44,-2.303 4.44,-2.302 0.034,-2.366 0.035,-2.366L64,20.271 20.039,20.271l0.035,2.36m69.911,21.478 l-9.407,4.877 9.392,0.032 9.392,0.032 5.216,-2.659c9.67,-4.93 13.271,-6.832 13.271,-7.008 0,-0.147 -1.386,-0.171 -9.229,-0.162l-9.229,0.011 -9.407,4.878m-79.933,0.11 l0.029,4.891 0.066,-4.743 0.066,-4.743 3.171,1.648c1.744,0.906 5.871,3.027 9.17,4.713l5.999,3.065 9.442,-0.031 9.442,-0.032 -9.225,-4.796 -9.225,-4.796 -9.483,-0.033 -9.482,-0.033 0.029,4.891m16.145,35.831c-1.465,0.748 -3.72,1.888 -5.011,2.534 -4.706,2.354 -11.163,5.728 -11.163,5.833 0,0.061 4.047,0.108 9.289,0.108l9.289,0l9.422,-4.869c5.182,-2.678 9.422,-4.891 9.422,-4.919 0,-0.028 -4.182,-0.049 -9.292,-0.048l-9.292,0.002 -2.664,1.36m54.427,-1.26c0.067,0.057 4.321,2.271 9.454,4.919l9.333,4.815l9.294,0c7.338,0 9.282,-0.032 9.241,-0.152 -0.051,-0.149 -4.175,-2.331 -8.595,-4.548 -1.221,-0.612 -3.997,-2.019 -6.168,-3.126l-3.949,-2.012l-9.365,0c-5.151,0 -9.31,0.047 -9.244,0.103m-56.678,21.998 l-3.901,2.028l0,2.631 0,2.631L64,108.078 107.955,108.078l0,-2.631 0,-2.631l-3.96,-2.042 -3.96,-2.042 -36.095,0.014 -36.094,0.014 -3.901,2.028"
|
||||
android:fillColor="#3d3d3d"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="m113.092,42.05c-2.581,1.345 -4.722,2.46 -4.757,2.478 -0.035,0.017 -0.047,1.042 -0.026,2.276l0.037,2.244l4.752,0 4.751,0l0,-4.734c0,-2.604 -0.014,-4.729 -0.032,-4.722 -0.017,0.007 -2.144,1.113 -4.725,2.458m-102.942,2.373l0,4.748l4.757,0 4.757,0l0.024,-1.968c0.013,-1.082 0.028,-2.109 0.032,-2.282 0.007,-0.268 -7.835,-4.589 -9.411,-5.186 -0.125,-0.047 -0.158,0.94 -0.158,4.688m98.269,35.462c-0.132,1.927 -0.104,3.474 0.062,3.474 0.08,0 2.226,1.079 4.769,2.398 2.543,1.319 4.647,2.398 4.675,2.398 0.028,0 0.051,-2.131 0.051,-4.735l0,-4.734l-4.738,0 -4.738,0l-0.082,1.199M10.023,83.529l0,4.72l4.815,-2.475 4.815,-2.475 0.005,-1.488c0.003,-0.819 -0.031,-1.829 -0.076,-2.244l-0.081,-0.756l-4.739,0 -4.739,0l0,4.72"
|
||||
android:fillColor="#6b6b6b"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="m12.41,78.778c1.348,0.02 3.517,0.02 4.821,0 1.304,-0.02 0.201,-0.036 -2.45,-0.036 -2.651,0 -3.718,0.016 -2.37,0.036"
|
||||
android:fillColor="#545454"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
155
app/src/main/res/drawable/thumb_private_internet_access.xml
Normal file
155
app/src/main/res/drawable/thumb_private_internet_access.xml
Normal file
|
@ -0,0 +1,155 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="128dp"
|
||||
android:height="128dp"
|
||||
android:viewportWidth="128"
|
||||
android:viewportHeight="128">
|
||||
<path
|
||||
android:pathData="m111.17,46.365l0,0.004L105.973,46.368L105.973,41.724C105.973,18.68 87.179,0 63.993,0 40.81,0 22.016,18.68 22.016,41.724l0,4.644L16.826,46.368C11.375,46.368 6.96,50.755 6.96,56.174l0,38.306c0.011,2.551 0.164,4.406 1.162,5.757 1.036,1.356 2.776,1.84 5.373,1.832l8.35,0l1.274,20.17c0,0.048 -0.004,0.127 -0.004,0.227 0.004,0.536 0.063,1.761 0.741,2.938 0.667,1.188 2.068,2.249 4.333,2.231l21.219,0l11.018,-11.682l8.234,0L79.314,128l0.298,0c0,0 3.856,0 8.13,0 4.266,0 8.95,0 10.6,0l0.004,0c1.639,-0.007 3.141,0.034 4.441,-0.793 1.297,-0.845 2.075,-2.45 2.452,-5.247 0.548,-4.067 0.674,-15.194 0.924,-19.887l8.342,0c2.567,-0.007 4.244,-0.253 5.332,-1.423 1.051,-1.192 1.189,-2.89 1.203,-5.437L121.04,56.174c-0.007,-5.419 -4.423,-9.805 -9.87,-9.809z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#349334"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="m119.826,95.291c0.015,2.511 -0.242,3.915 -0.861,4.563 -0.578,0.674 -1.842,1.002 -4.358,0.995l-9.599,0l-0.034,0.618c-0.231,4.426 -0.388,16.265 -0.943,20.411 -0.362,2.675 -1.059,3.807 -1.868,4.329 -0.813,0.548 -2.062,0.589 -3.724,0.581l-0.004,0c-3.034,0 -16.28,0 -18.442,0L69.336,114.734L59.938,114.734L48.911,126.424L28.247,126.424c-1.883,-0.019 -2.684,-0.741 -3.195,-1.576 -0.492,-0.846 -0.57,-1.881 -0.567,-2.291 0,-0.127 0.004,-0.179 0.004,-0.179l0.004,-0.052 -1.364,-21.48L13.548,100.846c-2.494,-0.004 -3.691,-0.462 -4.324,-1.311 -0.671,-0.857 -0.91,-2.47 -0.902,-4.973L8.322,56.247C8.329,51.549 12.154,47.753 16.881,47.745L23.393,47.745L23.393,41.792C23.431,19.463 41.604,1.399 64.076,1.362 86.544,1.399 104.721,19.463 104.762,41.792l0,5.953l6.516,0c4.723,0.007 8.544,3.804 8.552,8.501l0,39.045z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#4bb749"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M24.511,99.707l78.979,0l0,2.617l-78.979,0z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#118011"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M23.3,100.615l0,-49.475l1.335,0l0,49.475z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#118011"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M103.641,100.615l0,-49.475l1.335,0l0,49.475z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#118011"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M35.102,61.73a5.144,28.293 90,1 0,56.586 0a5.144,28.293 90,1 0,-56.586 0z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:startY="66.862495"
|
||||
android:startX="63.394802"
|
||||
android:endY="57.485966"
|
||||
android:endX="63.394802"
|
||||
android:type="linear">
|
||||
<item android:offset="0" android:color="#FF4BB749"/>
|
||||
<item android:offset="1" android:color="#FF79B481"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="m89.721,48.567l0,-7.545c0,-14.216 -11.547,-25.741 -25.795,-25.741 -14.248,0 -25.799,11.525 -25.799,25.741l0,7.545z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M53.106,40.7l22.998,0l0,2.735l-22.998,0z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:gradientRadius="10.784006"
|
||||
android:centerX="64.86781"
|
||||
android:centerY="42.21012"
|
||||
android:type="radial">
|
||||
<item android:offset="0" android:color="#FF000000"/>
|
||||
<item android:offset="0.1901" android:color="#FF030303"/>
|
||||
<item android:offset="0.3236" android:color="#FF0C0C0C"/>
|
||||
<item android:offset="0.4397" android:color="#FF1C1C1C"/>
|
||||
<item android:offset="0.5461" android:color="#FF323232"/>
|
||||
<item android:offset="0.64559996" android:color="#FF4E4E4E"/>
|
||||
<item android:offset="0.7402" android:color="#FF717171"/>
|
||||
<item android:offset="0.83089995" android:color="#FF9A9A9A"/>
|
||||
<item android:offset="0.9161" android:color="#FFC9C9C9"/>
|
||||
<item android:offset="0.9985" android:color="#FFFEFEFE"/>
|
||||
<item android:offset="1" android:color="#FFFFFFFF"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M55.452,29.277m-4.766,0a4.766,4.766 45,1 1,9.532 0a4.766,4.766 135,1 1,-9.532 0"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#000000"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M72.397,29.277m-4.766,0a4.766,4.766 0,1 1,9.532 0a4.766,4.766 135,1 1,-9.532 0"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#000000"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="M54.771,77.314l17.248,0l0,12.861l-17.248,0z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="m57.433,75.953c0.778,-2.716 3.189,-4.687 6.039,-4.69 2.85,0.004 5.261,1.974 6.043,4.69l2.05,0c-0.826,-3.792 -4.115,-6.657 -8.096,-6.657 -3.981,0.004 -7.267,2.865 -8.093,6.657z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="m115.805,103.307c0.464,-0.004 0.89,-0.015 1.302,-0.034l0,-1.448c-0.752,0.116 -1.616,0.157 -2.622,0.161l-8.374,0c-0.127,2.341 -0.221,6.268 -0.352,10.128l1.365,0c0.112,-3.416 0.198,-6.735 0.31,-8.806z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#118011"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="m117.106,104.053l0,-0.715c-0.408,0.019 -0.834,0.033 -1.302,0.033l-8.374,0c-0.112,2.057 -0.198,5.351 -0.31,8.742l1.941,-0c4.447,0.004 8.045,-3.606 8.045,-8.06z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:startY="97.49953"
|
||||
android:startX="102.2623"
|
||||
android:endY="108.40542"
|
||||
android:endX="112.76872"
|
||||
android:type="linear">
|
||||
<item android:offset="0" android:color="#FF23FF16"/>
|
||||
<item android:offset="1" android:color="#FF189A33"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M21.91,102.073L13.549,102.073c-1.295,0.004 -2.369,-0.115 -3.261,-0.4l0,1.669c0.526,0.063 1.101,0.089 1.731,0.089l8.364,-0.004 0.552,8.686l1.608,0z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#118011"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero"/>
|
||||
<path
|
||||
android:pathData="m12.01,103.427c-0.627,0 -1.199,-0.026 -1.722,-0.089l0,0.722c0,4.447 3.57,8.053 7.975,8.053l2.616,0l-0.549,-8.69z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillType="nonZero">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:startY="93.15896"
|
||||
android:startX="28.748474"
|
||||
android:endY="110.74311"
|
||||
android:endX="12.861952"
|
||||
android:type="linear">
|
||||
<item android:offset="0" android:color="#FF23FF16"/>
|
||||
<item android:offset="1" android:color="#FF189A33"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
|
@ -105,6 +105,15 @@
|
|||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewIssuer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewLabel"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -32,6 +32,27 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<TextView
|
||||
android:layout_weight="3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/label_issuer"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/manual_issuer"
|
||||
android:layout_weight="7"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/label_issuer"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -249,6 +249,7 @@
|
|||
android:src="@mipmap/ic_author_flocke" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/aboutLayoutAuthor1Content"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -266,16 +267,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:text="@string/about_label_main_developer"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/about_author1_extra"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/activity_margin_small"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/about_label_donate" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -306,6 +297,7 @@
|
|||
app:srcCompat="@drawable/ic_account_circle_gray" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/aboutLayoutAuthor2Content"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -323,16 +315,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:text="@string/about_label_developer"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/about_author2_extra"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/activity_margin_small"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/about_label_donate" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -428,34 +410,6 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- translators -->
|
||||
<LinearLayout
|
||||
android:id="@+id/about_layout_translators"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/listPreferredItemHeight"
|
||||
android:paddingTop="@dimen/activity_margin_small"
|
||||
android:paddingBottom="@dimen/activity_margin_small"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/aboutImgTranslators"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/activity_margin"
|
||||
android:layout_marginEnd="@dimen/activity_margin_large"
|
||||
app:srcCompat="@drawable/ic_translate_gray" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/about_label_translators"
|
||||
android:textStyle="bold"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
|
@ -467,34 +421,22 @@
|
|||
style="?attr/cardStyle" >
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/about_title_support"/>
|
||||
|
||||
<!-- bug reports -->
|
||||
<LinearLayout
|
||||
android:id="@+id/about_layout_bugs"
|
||||
android:id="@+id/about_layout_support"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/activity_margin"
|
||||
android:paddingTop="@dimen/activity_margin_small"
|
||||
android:paddingBottom="@dimen/activity_margin_small"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/aboutImgBugs"
|
||||
android:id="@+id/aboutImgSupport"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/activity_margin"
|
||||
android:layout_marginEnd="@dimen/activity_margin_large"
|
||||
app:srcCompat="@drawable/ic_bug_report_gray" />
|
||||
app:srcCompat="@drawable/ic_heart_gray" />
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
|
@ -505,7 +447,7 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/about_label_report_bugs"
|
||||
android:text="@string/about_title_support"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
@ -513,53 +455,11 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:text="@string/about_desc_report_bugs"/>
|
||||
android:text="@string/about_desc_support"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- translate -->
|
||||
<LinearLayout
|
||||
android:id="@+id/about_layout_translate"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/activity_margin_small"
|
||||
android:paddingBottom="@dimen/activity_margin_small"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/aboutImgTranslate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/activity_margin"
|
||||
android:layout_marginEnd="@dimen/activity_margin_large"
|
||||
app:srcCompat="@drawable/ic_translate_gray" />
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/about_label_translate"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:text="@string/about_desc_translate"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<!-- thumbnails -->
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_popup_editIssuer"
|
||||
android:title="@string/menu_popup_edit_issuer" />
|
||||
<item
|
||||
android:id="@+id/menu_popup_editLabel"
|
||||
android:title="@string/menu_popup_edit_label" />
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">مؤلف التطبيق الأصلي</string>
|
||||
<string name="about_label_original_app">التطبيق الأصلي</string>
|
||||
<string name="about_label_website">الموقع الإلكتروني</string>
|
||||
<string name="about_label_donate_paypal">التبرع (Paypal)</string>
|
||||
<string name="about_label_donate_bitcoin">التبرع (Bitcoin)</string>
|
||||
<string name="about_label_donate">التبرع</string>
|
||||
<string name="about_label_contributors">المساهمون</string>
|
||||
<string name="about_label_translators">المترجمون</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">النسخ الاحتياطي (أوبن بي جي بي)</string>
|
||||
<string name="backup_title_import_plain">إسترجاع (نص مجرّد)</string>
|
||||
<string name="backup_title_import_crypt">إسترجاع (مشفّر)</string>
|
||||
<string name="backup_title_import_crypt_old">Restore (encrypted, old encryption)</string>
|
||||
<string name="backup_title_import_openpgp">إسترجاع (أوبن بي جي بي)</string>
|
||||
<string name="backup_title_replace">إستبدال البيانات الموجودة</string>
|
||||
<string name="backup_desc_export_plain">أنسخ إحتياطيا لكافة الحسابات في ملف JSON نص مُجرَّد </string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">أنسخ إحتياطيا لكافة الحسابات في ملف JSON مشفّر بواسطة أوبن بي جي بي</string>
|
||||
<string name="backup_desc_import_plain">استعادة حسابات من ملف JSON نص مجرّد</string>
|
||||
<string name="backup_desc_import_crypt">استعادة حسابات من ملف JSON محمي بكلمة مرور</string>
|
||||
<string name="backup_desc_import_crypt_old">Restore accounts from a password-protected JSON file
|
||||
created with an <b>andOTP version lower than 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">استعادة حسابات من ملف JSON (مشفر بتقنية اوبن بي جي بي)</string>
|
||||
<string name="backup_desc_crypt_setup">فشل في تحميل كلمة مرور النسخ الاحتياطي من الإعدادات، هذا أما يعني إنه لم يتم تعيين أية كلمة مرور أو حدث خطأ ما. سيطلب منك إدخال كلمة المرور يدوياً عند إنشاء أو استيراد نسخة احتياطية.
|
||||
</string>
|
||||
|
@ -34,6 +37,11 @@
|
|||
<string name="backup_receiver_read_permission_failed">الإذن للقراءة لم يمنح. الرجاء تمكينها قبل محاولة النسخ</string>
|
||||
<string name="backup_receiver_write_permission_failed">الإذن للكتابة لم يمنح. الرجاء تمكينها قبل محاولة النسخ</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">التشفير عبر كلمة المرور / PIN غير مدعومة مع البث الإحتياطي</string>
|
||||
<string name="backup_new_format_dialog_title">New encryption method</string>
|
||||
<string name="backup_new_format_dialog_msg">Since version 0.6.3 of andOTP, a <b>new and improved
|
||||
encryption method</b> is used for password-protected backups. The old backups can still be
|
||||
imported, but it is <b>highly recommended to create new backups with the improved
|
||||
encryption</b>.\n\nThis message will not be shown again.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">فشل النسخ التلقائي</string>
|
||||
<string name="notification_channel_name_backup_success">نجح النسخ التلقائي</string>
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<string name="settings_desc_backup_directory">دليل النسخ الإحتياطي (أسماء الملف يعتمدون على نوع النسخ الإحتياطي)</string>
|
||||
<string name="settings_desc_backup_password">إختر كلمة المرور التي سوف تستخدم لتشفير النسخ الإحتياطية</string>
|
||||
<string name="settings_desc_backup_broadcasts">حدد أنواع النسخ الإحتياطي التي يمكن تشغيلها بواسطة تطبيقات البث</string>
|
||||
<string name="settings_desc_openpgp_key_encrypt">البريد الإلكتلتروني التابع الى مفتاح المستخدم لتشفير النسخ</string>
|
||||
<string name="settings_desc_openpgp_key_encrypt">عنوان البريد الإلكتروني للمفتاح المستخدَم لتشفير النسخ الإحتياطية</string>
|
||||
<string name="settings_desc_openpgp_verify">النسخ المشفرة تسترد فقط إذا وقعوا بمفتاح صالح</string>
|
||||
<string name="settings_desc_special_features">قم بإلغاء الخيار لتعطيل الميزات الخاصة مجددا</string>
|
||||
<string name="settings_desc_enable_screenshot">السماح بالتقاط لقطات للشاشة الرئيسية
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Autor de l\'aplicació original</string>
|
||||
<string name="about_label_original_app">Aplicació original</string>
|
||||
<string name="about_label_website">Lloc web</string>
|
||||
<string name="about_label_donate_paypal">Donar (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Donar (Bitcoin)</string>
|
||||
<string name="about_label_donate">Donar</string>
|
||||
<string name="about_label_contributors">Col·laboradors</string>
|
||||
<string name="about_label_translators">Traductors</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
<!-- Buttons -->
|
||||
<string name="auth_button_unlock">Desbloqueja</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="auth_toast_password_missing">Please set a password in the <b>Settings</b>!</string>
|
||||
<string name="auth_toast_pin_missing">Please set a PIN in the <b>Settings</b>!</string>
|
||||
<string name="auth_toast_password_missing">Per favor, establiu una contrasenya a la <b>configuració</b>!</string>
|
||||
<string name="auth_toast_pin_missing">Per favor, establiu un PIN en la <b>configuració</b>!</string>
|
||||
<string name="auth_toast_password_again">Contrasenya incorrecta; per favor, torneu-ho a intentar!</string>
|
||||
<string name="auth_toast_pin_again">PIN incorrecte; per favor, torneu-ho a intentar!</string>
|
||||
</resources>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Còpia de seguretat (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Restaura (text net)</string>
|
||||
<string name="backup_title_import_crypt">Restaura (xifrada)</string>
|
||||
<string name="backup_title_import_crypt_old">Restaura (encriptat, encriptació vella)</string>
|
||||
<string name="backup_title_import_openpgp">Restaura (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Substitueix els comptes existents</string>
|
||||
<string name="backup_desc_export_plain">Fes una còpia de seguretat de tots els comptes en un fitxer de text net JSON</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Fes una còpia de seguretat tots els comptes en un fitxer JSON encriptat amb OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Restaura els comptes d\'un fitxer de text net JSON</string>
|
||||
<string name="backup_desc_import_crypt">Restaura els comptes d\'un fitxer JSON protegit amb contrasenya</string>
|
||||
<string name="backup_desc_import_crypt_old">Restaura el conte desde un ficher JSON protegit amb contrasenya
|
||||
creat amb <b>una versió de andOTP prévia a 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Restaura els comptes d\'un fitxer JSON xifrat amb OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Failed to load the backup password from the <b>Settings</b>,
|
||||
this either means no password was set or something went wrong. You will be asked to enter
|
||||
|
@ -48,6 +51,11 @@
|
|||
this before attempting backup</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Password/PIN based encryption not
|
||||
supported with broadcast backup</string>
|
||||
<string name="backup_new_format_dialog_title">New encryption method</string>
|
||||
<string name="backup_new_format_dialog_msg">Since version 0.6.3 of andOTP, a <b>new and improved
|
||||
encryption method</b> is used for password-protected backups. The old backups can still be
|
||||
imported, but it is <b>highly recommended to create new backups with the improved
|
||||
encryption</b>.\n\nThis message will not be shown again.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Automatic backup failed</string>
|
||||
<string name="notification_channel_name_backup_success">Automatic backup successful</string>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<string name="label_secret">Secret</string>
|
||||
<string name="label_period">Període</string>
|
||||
<string name="label_digits">Dígits</string>
|
||||
<string name="label_counter">Counter</string>
|
||||
<string name="label_counter">Comptador</string>
|
||||
<string name="label_label">Etiqueta</string>
|
||||
<string name="label_algorithm">Algorisme</string>
|
||||
<string name="label_tags">Etiquetes</string>
|
||||
|
@ -54,21 +54,21 @@
|
|||
<string name="dialog_title_manual_entry">Introduïu-ne els detalls</string>
|
||||
<string name="dialog_title_remove">Suprimeix</string>
|
||||
<string name="dialog_title_rename">Canvia el nom</string>
|
||||
<string name="dialog_title_counter">Counter</string>
|
||||
<string name="dialog_title_counter">Comptador</string>
|
||||
<string name="dialog_title_last_used">Últimes utilitzades</string>
|
||||
<string name="dialog_title_keystore_error">Error al magatzem de claus</string>
|
||||
<string name="dialog_title_enter_password">Enter password</string>
|
||||
<string name="dialog_label_enter_password">Enter password</string>
|
||||
<string name="dialog_label_confirm_password">Confirm password</string>
|
||||
<string name="dialog_title_enter_password">Introduïu la contrasenya</string>
|
||||
<string name="dialog_label_enter_password">Introduïu la contrasenya</string>
|
||||
<string name="dialog_label_confirm_password">Confirmeu la contrasenya</string>
|
||||
<string name="dialog_msg_auth">Per favor, introduïu les vostres credencials per a iniciar andOTP.</string>
|
||||
<string name="dialog_msg_confirm_delete">Segur que voleu suprimir el compte \"%1$s\"?</string>
|
||||
<string name="dialog_msg_last_used">Per tal que andOTP reconega quin testimoni va ser l\'últim
|
||||
heu d\'habilitar \"toqueu per a mostrar\" o feu servir el botó de copia.\n\nAquest missatge no tornarà
|
||||
a aparéixer.</string>
|
||||
<string name="dialog_msg_keystore_error">Failed to load the encryption key from the KeyStore.
|
||||
<b>Any entries that are added will get lost.</b>\n\nTo still be able to use andOTP you can go
|
||||
to the <b>Settings</b> and switch the <b>Database encryption</b> to <b>Password / PIN</b>.</string>
|
||||
<string name="dialog_msg_keystore_error">No s\'ha pogut carregar la clau de xifratge del KeyStore.
|
||||
<b>Qualsevol entrada que s\'hi hagin afegit es perdrà.</b>\n\nPer a continuar usant andOTP, podeu
|
||||
anar a la <b>Configuració</b> i canviar el <b>xifratge de la base de dades</b> a <b>Contrasenyes / PIN</b>.</string>
|
||||
<!-- Shortcuts -->
|
||||
<string name="shortcut_name_scan_qr">Escaneja un codi QR</string>
|
||||
<string name="shortcut_name_enter_details">Enter details</string>
|
||||
<string name="shortcut_name_enter_details">Introduïu-ne els detalls</string>
|
||||
</resources>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Autor původní aplikace</string>
|
||||
<string name="about_label_original_app">Původní aplikace</string>
|
||||
<string name="about_label_website">Webová stránka</string>
|
||||
<string name="about_label_donate_paypal">Podpořit přes PayPal</string>
|
||||
<string name="about_label_donate_bitcoin">Podpořit Bitcoinem</string>
|
||||
<string name="about_label_donate">Podpořit</string>
|
||||
<string name="about_label_contributors">K vývoji přispěli</string>
|
||||
<string name="about_label_translators">Překladatelé</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Zálohovat (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Obnovit zálohu (nechráněnou)</string>
|
||||
<string name="backup_title_import_crypt">Obnovit zálohu (šifrovanou)</string>
|
||||
<string name="backup_title_import_crypt_old">Obnova (šifrované, staré šifrování)</string>
|
||||
<string name="backup_title_import_openpgp">Obnovit zálohu (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Nahrazovat předchozí záznamy</string>
|
||||
<string name="backup_desc_export_plain">Zálohovat všechny účty do nechráněného souboru JSON</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Zálohovat všechny účty do souboru JSON šifrovaného OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Obnovit účty z nechráněného souboru JSON</string>
|
||||
<string name="backup_desc_import_crypt">Obnovit účty ze souboru JSON chráněného heslem</string>
|
||||
<string name="backup_desc_import_crypt_old">Obnoví účty z JSON souboru chráněného heslem,
|
||||
který byl vytvořen pomocí <b>verze andOTP nižší než 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Obnovit účty ze souboru JSON šifrovaného OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Nepodařilo se načíst záložní heslo z <b>Nastavení</b>, to buď znamená, že není nastaveno žádné heslo nebo něco se pokazilo. Budete vyzváni k ručnímu zadání hesla při vytváření nebo importu zálohy.
|
||||
</string>
|
||||
|
@ -33,6 +36,10 @@
|
|||
<string name="backup_receiver_read_permission_failed">Nebylo uděleno oprávnění ke čtení, prosím udělte ho před pokusem o zálohování</string>
|
||||
<string name="backup_receiver_write_permission_failed">Nebylo uděleno oprávnění k zápisu, prosím udělte ho před pokusem o zálohování</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Šifrování heslem/PINem není podporováno v kombinaci s automatizovaným zálohováním</string>
|
||||
<string name="backup_new_format_dialog_title">Nová metoda šifrování</string>
|
||||
<string name="backup_new_format_dialog_msg">Od veze 0.6.3 se pro ochranu heslem používá <b>nová a vylepšená metoda šifrování</b>
|
||||
Stále lze importovat staré zálohy, ale <b> velmi se doporučuje vytvořit novou zálohu s vylepšeným šifrováním</b>.
|
||||
\n\nTato zpráva se již nezobrazí.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Automatické zálohování selhalo</string>
|
||||
<string name="notification_channel_name_backup_success">Automatické zálohování proběhlo úspěšně</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Autor der ursprünglichen App</string>
|
||||
<string name="about_label_original_app">Ursprüngliche App</string>
|
||||
<string name="about_label_website">Webseite</string>
|
||||
<string name="about_label_donate_paypal">Spenden (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Spenden (Bitcoin)</string>
|
||||
<string name="about_label_donate">Spenden</string>
|
||||
<string name="about_label_contributors">Mitwirkende</string>
|
||||
<string name="about_label_translators">Übersetzer</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Datensicherung (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Wiederherstellen (Klartext)</string>
|
||||
<string name="backup_title_import_crypt">Wiederherstellen (verschlüsselt)</string>
|
||||
<string name="backup_title_import_crypt_old">Datensicherung (verschlüsselt, alte Verschlüsselungsmethode)</string>
|
||||
<string name="backup_title_import_openpgp">Wiederherstellen (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Vorhandene Einträge ersetzen</string>
|
||||
<string name="backup_desc_export_plain">Alle Konten in einer Klartext-JSON-Datei sichern</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Alle Konten in einer OpenPGP-verschlüsselten JSON-Datei sichern</string>
|
||||
<string name="backup_desc_import_plain">Konten aus einer Klartext-JSON-Datei wiederherstellen</string>
|
||||
<string name="backup_desc_import_crypt">Konten aus einer passwortgeschützten JSON-Datei wiederherstellen</string>
|
||||
<string name="backup_desc_import_crypt_old">Konten aus einer passwortgeschützten JSON-Datei wiederherstellen
|
||||
erstellt mit einer <b>andOTP-Version unter 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Konten aus einer OpenPGP-verschlüsselten JSON-Datei wiederherstellen</string>
|
||||
<string name="backup_desc_crypt_setup">Laden des Backup-Passworts aus den <b>Einstellungen</b> fehlgeschlagen,
|
||||
was bedeutet, dass entweder kein Passwort gesetzt wurde oder etwas schiefgelaufen ist.
|
||||
|
@ -40,6 +43,11 @@
|
|||
zum Sichern benötigt</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Passwort/PIN Verschlüsselung ist nicht
|
||||
unterstützt mit Broadcast Datensicherung</string>
|
||||
<string name="backup_new_format_dialog_title">Neue Verschlüsselungsmethode</string>
|
||||
<string name="backup_new_format_dialog_msg">Seit Version 0.6.3 von andOTP, wird eine <b>neue und verbesserte
|
||||
Verschlüsselungsmethode</b> für passwortgeschützte Datensicherungen benutzt. Alte Datensicherungen
|
||||
können weiterhin importiert werden, aber es wird <b>nachdrücklich empfohlen neue Datensicherungen mit
|
||||
der verbesserten Verschlüsselung zu erstellen</b>.\n\nDiese Nachricht wird nicht erneut angezeigt.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Automatische Sicherung fehlgeschlagen</string>
|
||||
<string name="notification_channel_name_backup_success">Automatische Sicherung erfolgreich</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Autor de la aplicación original</string>
|
||||
<string name="about_label_original_app">Aplicación original</string>
|
||||
<string name="about_label_website">Página web</string>
|
||||
<string name="about_label_donate_paypal">Donar (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Donar (Bitcoin)</string>
|
||||
<string name="about_label_donate">Donar</string>
|
||||
<string name="about_label_contributors">Contribuidores</string>
|
||||
<string name="about_label_translators">Traductores</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Copia de seguridad (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Restaurar (texto plano)</string>
|
||||
<string name="backup_title_import_crypt">Restaurar (cifradas)</string>
|
||||
<string name="backup_title_import_crypt_old">Restaurar (cifrado, antiguo cifrado)</string>
|
||||
<string name="backup_title_import_openpgp">Restaurar (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Reemplazar entradas existentes</string>
|
||||
<string name="backup_desc_export_plain">Hace copia de seguridad de todas las cuentas en un fichero JSON de texto plano</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Hace copia de seguridad de todas las cuentas en un fichero JSON cifrado con OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Restaurar cuentas desde fichero JSON de texto plano</string>
|
||||
<string name="backup_desc_import_crypt">Restaurar cuentas desde fichero JSON con contraseña</string>
|
||||
<string name="backup_desc_import_crypt_old">Restaurar cuentas de un archivo JSON protegido por contraseña
|
||||
creado con una <b>versión de andOTP inferior a 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Restaurar cuentas desde fichero JSON cifrado con OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Error al cargar la contraseña del respaldo de los <b>Ajustes</b>, esto puede deberse a que no se ha establecido una contraseña o a que algo ha salido mal. Se te pedirá que ingreses la contraseña manualmente cuando crees o importes un respaldo. </string>
|
||||
<string name="backup_desc_openpgp_provider">Necesitas instalar un proveedor de OpenPGP y activarlo
|
||||
|
@ -43,6 +46,11 @@
|
|||
hazlo antes de intentar hacer una copia de seguridad</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Cifrado basado en clave/PIN no
|
||||
soportado en la copia de seguridad de difusión</string>
|
||||
<string name="backup_new_format_dialog_title">Nuevo método de cifrado</string>
|
||||
<string name="backup_new_format_dialog_msg">A partir de la versión 0.6.3 de andOTP, se utiliza un <b>nuevo y mejorado
|
||||
método de cifrado</b> para copias de seguridad protegidas por contraseña. Las copias de seguridad antiguas aún pueden ser
|
||||
importadas, pero es <b>sumamente recomendable crear nuevas copias de seguridad con
|
||||
el cifrado mejorado</b>.\n\nEste mensaje no se mostrará nuevamente.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Falló la copia de seguridad automática</string>
|
||||
<string name="notification_channel_name_backup_success">La copia de seguridad automática se realizó con éxito</string>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
\n\nNo te preocupes, siempre podrás modificar la configuración en los <b>Ajustes</b>.</string>
|
||||
<string name="intro_slide2_desc">Para asegurar la seguridad de tus cuentas <b>andOTP</b> solo las almacena
|
||||
en ficheros cifrados. Aquí puedes elegir qué método de cifrado se usará.</string>
|
||||
<string name="intro_slide2_desc_keystore">El almacén de claves es una herramienta de Android que permite almacenar claves criptográficas con seguridad. La ventaja de este método es que las llaves se almacenan apartadas de los archivos y pueden ser respaldadas con criptografía por hardware (si tienes un dispositivo compatible). Sin embargo, ya que las claves no se almacenan en los archivos de la aplicación, <b>este método no es compatible con copias de seguridad externas (como Titanium) </b>. Si eliges este método, te verás limitado a las copias de respaldo de <b>andOTP</b>. \n\n<b>Atención</b>: El almacén de claves suele causar problemas, por favor, evita usarlo a menos que realmente tengas que hacerlo. Si no te importa ingresar una contraseña / PIN cuando inicias <b>andOTP</b>, es <b>altamente recomendable que utilices la encriptación por contraseña</b>.</string>
|
||||
<string name="intro_slide2_desc_keystore">El almacén de claves es una herramienta de Android que permite almacenar claves criptográficas con seguridad. La ventaja de este método es que las llaves se almacenan apartadas de los archivos y pueden ser respaldadas con criptografía por hardware (si tienes un dispositivo compatible). Sin embargo, ya que las claves no se almacenan en los archivos de la aplicación, <b>este método no es compatible con copias de seguridad externas (como Titanium) </b>. Si eliges este método, te verás limitado a las copias de respaldo de <b>andOTP</b>. \n\n<b>Atención</b>: El almacén de claves suele causar problemas, por favor, evita usarlo a menos que realmente tengas que hacerlo. Si no te importa ingresar una contraseña / PIN cuando inicias <b>andOTP</b>, es <b>altamente recomendable que utilices la encriptación por contraseña<b>.</string>
|
||||
<string name="intro_slide2_desc_password">Este método cifrará tus datos con una clave
|
||||
generada desde una contraseña o PIN. La ventaja principal es que funcionará con
|
||||
herramientas de copia de seguridad externas (como Titanium) y da menos problemas que el almacen de claves.
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">سازنده برنامه اصلی</string>
|
||||
<string name="about_label_original_app">برنامه اصلی</string>
|
||||
<string name="about_label_website">وبسایت</string>
|
||||
<string name="about_label_donate_paypal">حمایت مالی (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">حمایت مالی (Bitcoin)</string>
|
||||
<string name="about_label_donate">حمایت مالی</string>
|
||||
<string name="about_label_contributors">مشارکتکنندگان</string>
|
||||
<string name="about_label_translators">مترجمان</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">پشتیبانگیری (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">بازنشانی (متن ساده)</string>
|
||||
<string name="backup_title_import_crypt">بازنشانی (رمزگذاری شده)</string>
|
||||
<string name="backup_title_import_crypt_old">بازگردانی (رمزگذاری شده، رمزگذاری قدیمی)</string>
|
||||
<string name="backup_title_import_openpgp">بازنشانی (OpenPGP)</string>
|
||||
<string name="backup_title_replace">موارد موجود را جایگزین کن</string>
|
||||
<string name="backup_desc_export_plain">پشتیبانگیری از همه حسابها در پرونده JSON متن ساده</string>
|
||||
|
@ -17,6 +18,7 @@
|
|||
<string name="backup_desc_export_openpgp">پشتیبانگیری از همه حسابها در پرونده JSON رمزگذاری شده با OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">بازنشانی از پرونده JSON متن ساده</string>
|
||||
<string name="backup_desc_import_crypt">بازنشانی از پرونده JSON رمز دار</string>
|
||||
<string name="backup_desc_import_crypt_old">بازگردانی حسابخا از پرونده JSON محافظتشده با رمز ساخته شده با یک <b>andOTP با نسخه پایینتر از ۰.۶.۳</b></string>
|
||||
<string name="backup_desc_import_openpgp">بازنشانی از پرونده JSON رمزگذاری شده با OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">شکست در بارگیری رمز عبور پشتیبان از <b>تنظیمات</b>، این به معنای عدم وجود رمز عبور است یا اشکالی پیش آمده. زمانی که شما یک پشتیبان میسازید یا یک پشتیبان وارد میکنید، از شما خواسته خواهد شد تا رمز عبور را به صورت دستی وارد کنید. </string>
|
||||
<string name="backup_desc_openpgp_provider">شما نیاز دارید که یک مهیاکننده OpenPGP نصب کنید و آن را در <b>تنظیمات</b> فعال کنید تا از این قابلیت استفاده کنید. </string>
|
||||
|
@ -32,6 +34,8 @@
|
|||
<string name="backup_receiver_read_permission_failed">اجازه خواندن داده نشده، لطفا قبل از تلاش برای پشتیبانگیری این اجازه را بدهید</string>
|
||||
<string name="backup_receiver_write_permission_failed">اجازه نوشتن داده نشده، لطفا قبل از تلاش برای پشتیبانگیری این اجازه را بدهید</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">رمز عبور / پین بر اساس رمزگذاری، توسط Broadcast Backup پشتیبانی نمیشود</string>
|
||||
<string name="backup_new_format_dialog_title">روش رمزگذاری جدید</string>
|
||||
<string name="backup_new_format_dialog_msg">از نسخهی ۰.۶.۳ ی andOTP، <b>یک روش بهبودیافته و جدید رمزگذاری</b> برای پشتیبانهای محافظتشده با رمز استفاده شده است. پشتیبانهای قدیمی هنوز میتوانند وارد شوند، اما <b>بسیار پیشنهاد میشود که از روش بهبودیافتهی رمزگذاری</b> استفاده کنید.\n\nاین پیام دوباره نشان داده نخواهد شد.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">شکست در پشتیبانگیری خودکار</string>
|
||||
<string name="notification_channel_name_backup_success">پشتیبانگیری خودکار با موفقیت انجام شد</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Auteur de l\'application originale</string>
|
||||
<string name="about_label_original_app">Application originale</string>
|
||||
<string name="about_label_website">Site web</string>
|
||||
<string name="about_label_donate_paypal">Faire un don (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Faire un don (Bitcoin)</string>
|
||||
<string name="about_label_donate">Faire un don</string>
|
||||
<string name="about_label_contributors">Contributeurs</string>
|
||||
<string name="about_label_translators">Traducteurs</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Sauvegarde (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Restauration (en clair)</string>
|
||||
<string name="backup_title_import_crypt">Restauration (chiffrée)</string>
|
||||
<string name="backup_title_import_crypt_old">Restaurer (chiffré, ancien chiffrement)</string>
|
||||
<string name="backup_title_import_openpgp">Restauration (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Remplacer les entrées existantes</string>
|
||||
<string name="backup_desc_export_plain">Sauvegarder tous les comptes en clair dans un fichier JSON</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Sauvegarder tous les comptes dans un fichier JSON chiffré avec OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Restaurer tous les comptes à partir d\'un fichier JSON en clair</string>
|
||||
<string name="backup_desc_import_crypt">Restaurer tous les comptes à partir d\'un fichier JSON protégé par un mot de passe</string>
|
||||
<string name="backup_desc_import_crypt_old">Restaurer les comptes depuis un fichier JSON protégé par un mot de passe
|
||||
créé avec une version <b>andOTP inférieure à 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Restaurer tous les comptes à partir d\'un fichier JSON chiffré avec OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Le mot de passe de sauvegarde n\'a pas été chargé à partir des <b>Réglages</b>,
|
||||
cela signifie soit qu\'aucun mot de passe n\'a été défini, soit que quelque chose n\'a pas fonctionné. Il vous sera demandé d\'entrer
|
||||
|
@ -34,6 +37,12 @@
|
|||
<string name="backup_receiver_read_permission_failed">L\'autorisation de lecture n\'est pas accordée, veuillez le faire avant d’effectuer la sauvegarde</string>
|
||||
<string name="backup_receiver_write_permission_failed">L\'autorisation d\'écriture n\'est pas accordée, veuillez le faire avant d’effectuer la sauvegarde</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Le chiffrement à base de mot de passe ou code PIN n\'est pas supporté par la sauvegarde par diffusion</string>
|
||||
<string name="backup_new_format_dialog_title">Nouvelle méthode de chiffrement</string>
|
||||
<string name="backup_new_format_dialog_msg">Depuis la version 0.6.3 de andOTP, une <b>nouvelle méthode
|
||||
de chiffrement améliorée</b> est utilisée pour les sauvegardres protégées par mot de passe
|
||||
. Les anciennes sauvegardes peuvent jours être importées mais il est <b>hautement
|
||||
recommandé de créer de nouvelles sauvegardes avec le chiffrement amélioré</b>.\n\nCe
|
||||
message ne sera pas affiché une seconde fois.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Échec de la sauvegarde automatique</string>
|
||||
<string name="notification_channel_name_backup_success">Succès de la sauvegarde automatique</string>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!-- Buttons -->
|
||||
<string name="button_cancel">Annuler</string>
|
||||
<string name="button_enter_details">Ajouter les détails</string>
|
||||
<string name="button_scan_qr">Scanner un code QR</string>
|
||||
<string name="button_scan_qr">Scanner un QR-Code</string>
|
||||
<string name="button_save">Enregistrer</string>
|
||||
<string name="button_new_tag">Nouveau tag</string>
|
||||
<string name="button_settings">Paramètres</string>
|
||||
|
@ -47,7 +47,7 @@
|
|||
<string name="toast_auth_failed_fatal">Échec d\'authentification, fermeture d\'andOTP !</string>
|
||||
<string name="toast_copied_to_clipboard">Copié dans le presse-papier</string>
|
||||
<string name="toast_entry_exists">Cette entrée existe déjà</string>
|
||||
<string name="toast_invalid_qr_code">Code QR invalide</string>
|
||||
<string name="toast_invalid_qr_code">QR-Code invalide</string>
|
||||
<string name="toast_encryption_key_empty">Clé de chiffrement non chargée</string>
|
||||
<!-- Dialogs -->
|
||||
<string name="dialog_title_auth">Identifiez-vous</string>
|
||||
|
@ -66,6 +66,6 @@
|
|||
<string name="dialog_msg_keystore_error">Échec du chargement de la clé de chiffrement à partir de l\'armoire à clés.
|
||||
<b>Toute entrée ajoutée sera perdue.</b>\n\nPour continuer à utiliser andOTP, vous pouvez aller dans les <b>paramètres</b> pour passer de <b>Chiffrement de la base de données</b> à <b>Mot de passe / Code PIN</b>.</string>
|
||||
<!-- Shortcuts -->
|
||||
<string name="shortcut_name_scan_qr">Scanner le code QR</string>
|
||||
<string name="shortcut_name_scan_qr">Scanner le QR-code</string>
|
||||
<string name="shortcut_name_enter_details">Ajouter les détails</string>
|
||||
</resources>
|
||||
|
|
|
@ -133,8 +133,7 @@
|
|||
<!-- PasswordPreference -->
|
||||
<string name="settings_hint_password">Saisir le nouveau mot de passe</string>
|
||||
<string name="settings_hint_pin">Saisir le nouveau code PIN</string>
|
||||
<string name="settings_hint_password_confirm">
|
||||
Confirmer le mot de passe
|
||||
<string name="settings_hint_password_confirm"> Confirmer le mot de passe
|
||||
</string>
|
||||
<string name="settings_hint_pin_confirm">Confirmer le code PIN</string>
|
||||
<string name="settings_label_short_password">Le mot de passe doit comporter au moins %1$d caractères !</string>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="about_activity_title">Sobre</string>
|
||||
<string name="about_description">Autenticación de doble-factor de código aberto para Android</string>
|
||||
<string name="about_description">Autenticación de dobre-factor de código aberto para Android</string>
|
||||
<string name="about_tab_about">Sobre</string>
|
||||
<string name="about_tab_libraries">Librerías</string>
|
||||
<!-- Misc -->
|
||||
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Autor do aplicativo orixinal</string>
|
||||
<string name="about_label_original_app">Aplicativo orixinal</string>
|
||||
<string name="about_label_website">Páxina web</string>
|
||||
<string name="about_label_donate_paypal">Doar (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Doar (Bitcoin)</string>
|
||||
<string name="about_label_donate">Doar</string>
|
||||
<string name="about_label_contributors">Colaboradores</string>
|
||||
<string name="about_label_translators">Tradutores/as</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Copia de seguranza (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Restaurar (texto plano)</string>
|
||||
<string name="backup_title_import_crypt">Restaurar (cifrada)</string>
|
||||
<string name="backup_title_import_crypt_old">Restaurar (cifrado, cifrado antigo)</string>
|
||||
<string name="backup_title_import_openpgp">Restaurar (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Substituír as entradas existentes</string>
|
||||
<string name="backup_desc_export_plain">Facer copia de seguranza de todas as contas nun ficheiro de texto plano JSON</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Facer copia de seguranza de todas as contas nun ficheiro JSON cifrado con OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Restaurar contas desde un ficheiro JSON de texto plano</string>
|
||||
<string name="backup_desc_import_crypt">Restaurar contas desde un ficheiro JSON con contrasinal</string>
|
||||
<string name="backup_desc_import_crypt_old">Restuarar contas dun ficheiro JSON protexido por contrasinal
|
||||
creado cunha <b>versión de andOTP inferior a 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Restaurar contas desde un ficheiro JSON cifrado con OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Houbo un erro ao cargar o contrasinal de respaldo desde os <b>Axustes</b>,
|
||||
ou ben non se estableceu o contrasinal ou algo fallou. Pediráselle introducir
|
||||
|
@ -47,6 +50,11 @@
|
|||
arranxe esto ante de intentas o respaldo</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">O cifrado con Contrasinal/PIN non
|
||||
está soportado con respaldo remoto</string>
|
||||
<string name="backup_new_format_dialog_title">Novo método de cifrado</string>
|
||||
<string name="backup_new_format_dialog_msg">Dende a versión 0.6.3 de andOTP, úsase un <b>novo e mellorado
|
||||
método de cifrado</b> para copias de seguridade protexidas por contrasinal. As copias de seguridade antigas
|
||||
aínd poden ser importadas, pero é <b>moi recomendable crear novas copias de seguridade co novo cifrado
|
||||
mellorado</b>.\n\nEsta mensaxe non se mostrará de novo.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Fallo no respaldo automático</string>
|
||||
<string name="notification_channel_name_backup_success">Respaldo automático correcto</string>
|
||||
|
|
45
app/src/main/res/values-hu-rHU/strings_about.xml
Normal file
45
app/src/main/res/values-hu-rHU/strings_about.xml
Normal file
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="about_activity_title">Rólunk</string>
|
||||
<string name="about_description">Nyílt forráskódú kétfaktoros hitelesítő Androidra</string>
|
||||
<string name="about_tab_about">Rólunk</string>
|
||||
<string name="about_tab_libraries">Könyvtárak</string>
|
||||
<!-- Misc -->
|
||||
<string name="about_label_changelog">Újdonságok</string>
|
||||
<string name="about_label_license">Licensz</string>
|
||||
<string name="about_label_MIT">MIT Licensz</string>
|
||||
<string name="about_label_source">Forráskód</string>
|
||||
<string name="about_label_version">Verzió</string>
|
||||
<!-- Authors -->
|
||||
<string name="about_title_authors">Készítő</string>
|
||||
<string name="about_label_main_developer">Fő fejlesztők</string>
|
||||
<string name="about_label_developer">Fejlesztő</string>
|
||||
<string name="about_label_original_author">Az eredeti alkalmazás készítője</string>
|
||||
<string name="about_label_original_app">Az eredeti alkalmazás</string>
|
||||
<string name="about_label_website">Honlap</string>
|
||||
<string name="about_label_donate">Adományozz</string>
|
||||
<string name="about_label_contributors">Közreműködők</string>
|
||||
<string name="about_label_translators">Fordítók</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
<string name="about_title_thumbnail_disclaimer">Bélyegkép vélemény</string>
|
||||
<string name="about_thumbnails_disclaimer_no1"><b>1.</b> Az összes bélyegkép a tulajdonosuk védjegye.</string>
|
||||
<string name="about_thumbnails_disclaimer_no2"><b>2.</b> Ezen védjegyek használata nem
|
||||
jelzi a védjegyjogosultnak az andOTP által történő jóváhagyását, és nem fordítva.</string>
|
||||
<string name="about_thumbnails_disclaimer_no3"><b>3.</b> A bélyegképek csak arra használódnak, hogy
|
||||
képviseljék azt a vállalatot vagy terméket, amelyre vonatkoznak.</string>
|
||||
<string name="about_thumbnails_disclaimer_no4"><b>4. Kérjük, ne használja a bélyegképeket
|
||||
más célra, kivéve az adott márkát vagy szolgáltatást.</b></string>
|
||||
<!-- Support -->
|
||||
<string name="about_title_support">Támogassa a fejlesztést</string>
|
||||
<string name="about_label_report_bugs">Hibajelentés</string>
|
||||
<string name="about_label_translate">Fordítás</string>
|
||||
<string name="about_desc_report_bugs">Hibák bejelentése vagy új funkciók igénylése</string>
|
||||
<string name="about_desc_translate">Segítsen lefordítani az andOTP-t az Ön nyelvére</string>
|
||||
<string name="about_title_special_features">Speciális tulajdonságok</string>
|
||||
<string name="about_dialog_special_features">Biztos benne hogy szeretné engedélyezni a speciális tulajdonságokat? A javuk nem szokványos OTP algoritmus melyek bekerültek különleges kérésre. Ezek <b> nem hivatalosan támogatottak </b> és <b> különböző korlátozásokkal jöhetnek </b> kérem olvassa (és értse meg) az oldalt \"Speciális tulajdonságok\" a Github
|
||||
wiki-n hogy többet tudhasson meg a használatukról.</string>
|
||||
<string name="about_toast_special_features">Speciális tulajdonságok engedélyezve</string>
|
||||
<string name="about_toast_special_features_enabled">A speciális tulajdonságok már engedélyezve</string>
|
||||
<string name="about_toast_copied_to_clipboard">Az adományozó link a vágólapra lett másolva</string>
|
||||
</resources>
|
18
app/src/main/res/values-hu-rHU/strings_auth.xml
Normal file
18
app/src/main/res/values-hu-rHU/strings_auth.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="auth_activity_title">Hitelesítés</string>
|
||||
<!-- Hints -->
|
||||
<string name="auth_hint_password">Jelszó</string>
|
||||
<string name="auth_hint_pin">PIN kód</string>
|
||||
<!-- Messages -->
|
||||
<string name="auth_msg_authenticate">Kérem azonosítsa magát az andOTP indításához!</string>
|
||||
<string name="auth_msg_confirm_encryption">Kérem erősítse meg az azonosítóját az új kulcsfájl létrehozásához!</string>
|
||||
<!-- Buttons -->
|
||||
<string name="auth_button_unlock">Feloldás</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="auth_toast_password_missing">Kérem állítsa be a jelszót a <b>Beállítások</b> -ban!</string>
|
||||
<string name="auth_toast_pin_missing">Kérem állítsa be a PIN kódot a <b>Beállítások</b> -ban!</string>
|
||||
<string name="auth_toast_password_again">Rossz jelszó, kérem, próbálja újra!</string>
|
||||
<string name="auth_toast_pin_again">Hibás PIN kód, kérem próbálja újra!</string>
|
||||
</resources>
|
64
app/src/main/res/values-hu-rHU/strings_backup.xml
Normal file
64
app/src/main/res/values-hu-rHU/strings_backup.xml
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="backup_activity_title">Biztonsági mentések</string>
|
||||
<string name="backup_category_plain">Egyszerű szöveges biztonsági mentések</string>
|
||||
<string name="backup_category_crypt">Titkosított biztonsági mentések</string>
|
||||
<string name="backup_category_openpgp">OpenPGP biztonsági mentések</string>
|
||||
<string name="backup_title_export_plain">Biztonsági mentés (egyszerű szöveges)</string>
|
||||
<string name="backup_title_export_crypt">Biztonsági mentés (titkosított)</string>
|
||||
<string name="backup_title_export_openpgp">Biztonsági mentés (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Visszaállítás (egyszerű szöveges)</string>
|
||||
<string name="backup_title_import_crypt">Visszaállítás (titkosított)</string>
|
||||
<string name="backup_title_import_crypt_old">Visszaállítás (titkosított, régi titkosítás)</string>
|
||||
<string name="backup_title_import_openpgp">Visszaállítás (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Létező bejegyzés lecserélése</string>
|
||||
<string name="backup_desc_export_plain">Minden fiók biztonsági mentése egyszerű szöveges JSON fájlba</string>
|
||||
<string name="backup_desc_export_crypt">Minden fiók biztonsági mentése jelszóval védett JSON fájlba</string>
|
||||
<string name="backup_desc_export_openpgp">Minden fiók biztonsági mentése OpenPGP titkosított JSON fájlba</string>
|
||||
<string name="backup_desc_import_plain">Minden fiók visszaállítása egyszerű szöveges JSON fájlból</string>
|
||||
<string name="backup_desc_import_crypt">Minden fiók visszaállítása jelszóval titkosított JSON fájlból</string>
|
||||
<string name="backup_desc_import_crypt_old">Fiókok visszaállítása jelszóval védett JSON fájlból
|
||||
Létrehozva <b>andOTP 0.6.3 vagy kisebb verzióval</b></string>
|
||||
<string name="backup_desc_import_openpgp">Minden fiók visszaállítása OpenPGP titkosított JSON fájlból</string>
|
||||
<string name="backup_desc_crypt_setup">Nem sikerült betölteni a biztonsági mentés jelszavát a <b>Beállítások</b> -ból,
|
||||
ez azt is jelentheti hogy nem volt jelszó beállítva, vagy valami rosszul sikerült. Ön meg lesz kérve a jelszó újbóli beírására a biztonsági másolat mentésekor vagy visszaállításakor. </string>
|
||||
<string name="backup_desc_openpgp_provider">Telepítenie kell az OpenPGP szolgáltatót és engedélyeznie a <b>Beállítások</b> alatt a funkció használatához.
|
||||
</string>
|
||||
<string name="backup_desc_openpgp_keyid">Ki kell választania az OpenPGP kulcsot a <b>Beállítások</b>
|
||||
alatt, mielőtt létrehozhatna titkosított biztonsági mentéseket. </string>
|
||||
<string name="backup_desc_replace">Ha engedélyezve van, akkor az összes régi bejegyzést helyettesíti, ha egy biztonsági másolatot importál, és csak a biztonsági mentés van jelen. Ha le van tiltva, a régi bejegyzések és a biztonsági mentések tartalma összeolvad.</string>
|
||||
<!-- Dialogs -->
|
||||
<string name="backup_dialog_title_security_warning">Biztonsági figyelmeztetés</string>
|
||||
<string name="backup_dialog_msg_export_warning">Biztosan szeretné exportálni az adatbázist egyszerű szöveges JSON fájlként? Ez a fájl tartalmazza az összes kulcsot, kérem tartsa <b>biztonságban</b>! </string>
|
||||
<string name="backup_receiver_title_backup_failed">Sikertelen mentés</string>
|
||||
<string name="backup_receiver_title_backup_success">A mentés sikerült</string>
|
||||
<string name="backup_receiver_plain_disabled">Az egyszerű szöveges biztonsági mentések nem engedélyezettek, kérem menjen a Beállításokba engedélyezni őket</string>
|
||||
<string name="backup_receiver_encrypted_disabled">A titkosított biztonsági mentések nem engedélyezettek, kérem menjen a Beállításokba engedélyezni őket</string>
|
||||
<string name="backup_receiver_read_permission_failed">Az olvasási engedély nincs jóváhagyva, kérem engedélyezze mielőtt biztonsági mentést hozna létre</string>
|
||||
<string name="backup_receiver_write_permission_failed">Az írási engedély nincs jóváhagyva, kérem engedélyezze mielőtt biztonsági mentést hozna létre</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">A jelszó/PIN kód általi titkosítás nem támogatott közvetítő biztonsági mentéssel</string>
|
||||
<string name="backup_new_format_dialog_title">Új titkosítási mód</string>
|
||||
<string name="backup_new_format_dialog_msg">Az andOTP 0.6.3 verziója óta az<b> új és továbbfejlesztett
|
||||
titkosítási eljárás</b>a jelszók titkosítására használt. A régi mentések továbbra is
|
||||
importálhatóak de <b>erősen ajánlott új biztonsági mentések létrehozására a továbbfejlesztett
|
||||
titkosítással</b>.\n\nEz az üzenet nem jelenik meg újra.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Az automatikus biztonsági mentés sikertelen</string>
|
||||
<string name="notification_channel_name_backup_success">Az automatikus biztonsági mentés sikeres</string>
|
||||
<string name="notification_channel_desc_backup_failed">Ezek az értesítések látszódnak ha a biztonsági mentés nem sikerül valamilyen okból</string>
|
||||
<string name="notification_channel_desc_backup_success">Ezek az értesítések látszódnak ha a biztonsági mentés sikerül</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="backup_toast_mkdir_failed">Nem sikerült létrehozni a mappát</string>
|
||||
<string name="backup_toast_export_success">A memória kártyára történő exportálás sikeres volt</string>
|
||||
<string name="backup_toast_export_failed">A memória kártyára történő exportálás sikertelen volt</string>
|
||||
<string name="backup_toast_import_success">A memória kártyára történő importálás sikeres volt</string>
|
||||
<string name="backup_toast_import_save_failed">Nem sikerült elmenteni a bejegyzéseket</string>
|
||||
<string name="backup_toast_import_decryption_failed">A biztonsági másolat dekódolása sikertelen</string>
|
||||
<string name="backup_toast_import_no_entries">Nem található bejegyzés az importált adatokban</string>
|
||||
<string name="backup_toast_storage_not_accessible">A memória kártya jelenleg nem érhető el</string>
|
||||
<string name="backup_toast_storage_permissions">Nincsenek engedélyezve a tárolók engedélyei</string>
|
||||
<string name="backup_toast_openpgp_error">OpenPGP hiba: %s</string>
|
||||
<string name="backup_toast_openpgp_not_verified">Nem hitelesített aláírás észlelve</string>
|
||||
<string name="backup_toast_crypt_password_not_set">A jelszó nincs beállítva, ellenőrizze a <b>Beállítások</b> alatt</string>
|
||||
</resources>
|
19
app/src/main/res/values-hu-rHU/strings_intro.xml
Normal file
19
app/src/main/res/values-hu-rHU/strings_intro.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="intro_slide1_title">Lássunk neki</string>
|
||||
<string name="intro_slide1_desc">Üdvözöl az <b>andOTP</b>, ez a varázsló végig fog vezetni az általános beállításokon. Kérem olvassa el figyelmesen máskülönben adatot veszíthet!
|
||||
\n\nNe aggódjon, ezeket a beállításokat később megváltoztathatja a <b>Beállítások</b> alatt.</string>
|
||||
<string name="intro_slide2_desc">Hogy biztosítsa önt a fiókjai biztonságáról az <b>andOTP</b> csakis titkosítva tárolja az adatokat. Itt kiválaszthatja melyik módszert kívánja használni.</string>
|
||||
<string name="intro_slide2_desc_keystore">A KeyStore az Android rendszerkomponense a kriptográfiai kulcsok biztonságos tárolásához. Ennek a módszernek az az előnye, hogy a kulcsokat az adatfájloktól elkülönítve tároljuk, és hardveres titkosítással (ha a készülék támogatja). Mivel azonban a kulcsok nem tárolódnak az alkalmazásadatokkal, a <b> ez a módszer megakadályozza a külső biztonsági megoldások (például a Titanium) használatát </b>. Ha ezt a módszert választja, az <b> andOTP </b> által biztosított belső biztonsági mentési funkciókra kell támaszkodnia. n\n\ <b> Figyelmeztetés: </b>: A KeyStore-ról ismert, hogy sok problémát okoz, kérjük, csak akkor használja, ha feltétlenül szükség van rá. Ha nem bánja a jelszót / PIN-kódot minden alkalommal, amikor elindítja az <b> andOTP </b> programot, akkor <b> ajánlott a jelszó alapú titkosítás használata </b>.</string>
|
||||
<string name="intro_slide2_desc_password">Ez a módszer titkosítja az adatokat egy jelszóval vagy PIN-kóddal létrehozott kulccsal. A fő előnye, hogy ez külső biztonsági megoldásokkal (például a Titaniummal) működik, és sokkal kevésbé hajlamos a hibákra mint a KeyStore. Az <b> andOTP </b> elindításakor azonban meg kell adnia hitelesítő adatait.</string>
|
||||
<string name="intro_slide3_desc_keystore">Itt beállíthat egy hitelesítést az <b> andOTP </b> zárolásához. Mivel titkosítási módként a <b> Android KeyStore </b> lehetőséget választotta, ez nem kötelező.</string>
|
||||
<string name="intro_slide3_desc_password">Itt beállíthat egy hitelesítést az <b> andOTP </b> zárolásához. Mivel titkosítási módként a <b> Jelszó / PIN kód </b> lehetőséget választotta, a folytatáshoz jelszót vagy PIN-kódot kell beállítania.</string>
|
||||
<string name="intro_slide3_warn_no_password">Kérem állítsa be a jelszót a folytatáshoz!</string>
|
||||
<string name="intro_slide3_warn_no_pin">Kérem állítsa be PIN kódot a folytatáshoz!</string>
|
||||
<string name="intro_slide3_warn_confirm_password">Kérem erősítse meg a jelszavát a folytatáshoz!</string>
|
||||
<string name="intro_slide3_warn_confirm_pin">Kérem erősítse meg a PIN kódját a folytatáshoz!</string>
|
||||
<string name="intro_slide4_title">Kész</string>
|
||||
<string name="intro_slide4_desc">Az ön beállításai mentésre kerültek, minden be van állítva és elkezdheti az
|
||||
<b>andOTP</b> használatát!</string>
|
||||
</resources>
|
72
app/src/main/res/values-hu-rHU/strings_main.xml
Normal file
72
app/src/main/res/values-hu-rHU/strings_main.xml
Normal file
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<!-- Buttons -->
|
||||
<string name="button_cancel">Mégsem</string>
|
||||
<string name="button_enter_details">Adja meg a részleteket</string>
|
||||
<string name="button_scan_qr">QR kód beolvasása</string>
|
||||
<string name="button_save">Mentés</string>
|
||||
<string name="button_new_tag">Új címke</string>
|
||||
<string name="button_settings">Beállítások</string>
|
||||
<string name="button_all_tags">Összes címke</string>
|
||||
<string name="button_no_tags">Nincs címke</string>
|
||||
<!-- Custom formatting -->
|
||||
<string name="format_custom_period">%d másodperc</string>
|
||||
<!-- Hints -->
|
||||
<string name="hint_label">Címke</string>
|
||||
<string name="hint_secret">Titkos</string>
|
||||
<!-- Labels -->
|
||||
<string name="label_hidden">Rejtett</string>
|
||||
<string name="label_type">Típus</string>
|
||||
<string name="label_secret">Titkos</string>
|
||||
<string name="label_period">Időtartam</string>
|
||||
<string name="label_digits">Számok</string>
|
||||
<string name="label_counter">Számláló</string>
|
||||
<string name="label_label">Cím</string>
|
||||
<string name="label_algorithm">Algoritmus</string>
|
||||
<string name="label_tags">Cimkék</string>
|
||||
<string name="label_advanced">Haladó beállítások</string>
|
||||
<!-- Drawer -->
|
||||
<string name="drawer_open">Cimkék megjelenítése</string>
|
||||
<string name="drawer_close">Címkék elrejtése</string>
|
||||
<!-- Menu -->
|
||||
<string name="menu_main_about">Rólunk</string>
|
||||
<string name="menu_main_backup">Biztonsági mentés</string>
|
||||
<string name="menu_main_search">Keresés</string>
|
||||
<string name="menu_main_settings">Beállítások</string>
|
||||
<string name="menu_main_sort">Rendezés</string>
|
||||
<string name="menu_sort_none">Rendezetlen</string>
|
||||
<string name="menu_sort_label">Cím</string>
|
||||
<string name="menu_sort_last_used">Utoljára használt</string>
|
||||
<string name="menu_popup_edit_label">Cím szerkesztése</string>
|
||||
<string name="menu_popup_change_image">Kép módosítása</string>
|
||||
<string name="menu_popup_edit_tags">Címkék szerkesztése</string>
|
||||
<string name="menu_popup_remove">Eltávolítás</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="toast_auth_failed">A hitelesítés nem sikerült. Kérem próbáld újra!</string>
|
||||
<string name="toast_auth_failed_fatal">A hitelesítés sikertelen, az andOTP bezárul!</string>
|
||||
<string name="toast_copied_to_clipboard">Vágólapra másolva</string>
|
||||
<string name="toast_entry_exists">Ez a bejegyzés már létezik</string>
|
||||
<string name="toast_invalid_qr_code">Hibás QR kód</string>
|
||||
<string name="toast_encryption_key_empty">A titkosítási kulcs nem töltődött be</string>
|
||||
<!-- Dialogs -->
|
||||
<string name="dialog_title_auth">Hitelesítés</string>
|
||||
<string name="dialog_title_manual_entry">Adja meg a részleteket</string>
|
||||
<string name="dialog_title_remove">Eltávolítás</string>
|
||||
<string name="dialog_title_rename">Átnevezés</string>
|
||||
<string name="dialog_title_counter">Számláló</string>
|
||||
<string name="dialog_title_last_used">Utoljára használt</string>
|
||||
<string name="dialog_title_keystore_error">KeyStore hiba</string>
|
||||
<string name="dialog_title_enter_password">Jelszó megadása</string>
|
||||
<string name="dialog_label_enter_password">Jelszó megadása</string>
|
||||
<string name="dialog_label_confirm_password">Jelszó megerősítése</string>
|
||||
<string name="dialog_msg_auth">Kérjük, adja meg a készülék hitelesítő adatait az andOTP indításához.</string>
|
||||
<string name="dialog_msg_confirm_delete">Biztosan törölni szeretné a %1$s\" fiókot?</string>
|
||||
<string name="dialog_msg_last_used">Annak érdekében, hogy az andOTP felismerje, hogy melyik tokent használták utoljára, engedélyeznie kell a \"érintés általi felfedést\", vagy használja a másolás gombot. \n\nEz az üzenet nem jelenik meg újra.</string>
|
||||
<string name="dialog_msg_keystore_error">Nem sikerült betölteni a titkosítási kulcsot a KeyStore-ból.
|
||||
<b> Az újonnan hozzáadott bejegyzések eltűnnek. </b> \n\nHa továbbra is használni szeretné az andOTP-t,
|
||||
akkor a <b> Beállítások </b> alatt, leválthatja <b> Adatbázis-titkosítást </b> <b> Jelszó / PIN kódra</b>.</string>
|
||||
<!-- Shortcuts -->
|
||||
<string name="shortcut_name_scan_qr">QR kód beolvasása</string>
|
||||
<string name="shortcut_name_enter_details">Adja meg a részleteket</string>
|
||||
</resources>
|
129
app/src/main/res/values-hu-rHU/strings_settings.xml
Normal file
129
app/src/main/res/values-hu-rHU/strings_settings.xml
Normal file
|
@ -0,0 +1,129 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="settings_activity_title">Beállítások</string>
|
||||
<!-- Categories -->
|
||||
<string name="settings_category_title_security">Biztonság</string>
|
||||
<string name="settings_category_title_ui">Felhasználói felület</string>
|
||||
<string name="settings_category_title_backup">Biztonsági mentés</string>
|
||||
<!-- Titles -->
|
||||
<string name="settings_title_tap_to_reveal">Érintse meg a felfedéshez</string>
|
||||
<string name="settings_title_tap_to_reveal_timeout">Az Érintse meg a felfedés időtúllépése</string>
|
||||
<string name="settings_title_auth">Hitelesítés</string>
|
||||
<string name="settings_title_auth_password">Jelszó</string>
|
||||
<string name="settings_title_auth_pin">PIN kód</string>
|
||||
<string name="settings_title_encryption">Adatbázis titkosítás</string>
|
||||
<string name="settings_title_panic">Pánik kioldás</string>
|
||||
<string name="settings_title_relock_screen_off">Lezárás a kijelző kikapcsolásakor</string>
|
||||
<string name="settings_title_lang">Nyelv</string>
|
||||
<string name="settings_title_theme">Téma</string>
|
||||
<string name="settings_title_label_size">Cím betűmérete</string>
|
||||
<string name="settings_title_label_scroll">Cím görgetése</string>
|
||||
<string name="settings_title_thumbnail_size_ask">Bélyegkép méret</string>
|
||||
<string name="settings_title_split_group_size">Token elválasztása üres hellyel</string>
|
||||
<string name="settings_title_tag_functionality">Címke kiválasztás viselkedése</string>
|
||||
<string name="settings_title_backup_append_date">Dátum hozzáadása a fájlnévhez</string>
|
||||
<string name="settings_title_backup_ask">Fájlnév kérése</string>
|
||||
<string name="settings_title_backup_directory">Biztonsági mentés mappája</string>
|
||||
<string name="settings_title_backup_password">Biztonsági mentés jelszava</string>
|
||||
<string name="settings_title_backup_broadcasts">Közvetítés biztonsági mentése</string>
|
||||
<string name="settings_title_openpgp_provider">OpenPGP szolgáltató</string>
|
||||
<string name="settings_title_openpgp_key_encrypt">OpenPGP titkosítási kulcs</string>
|
||||
<string name="settings_title_openpgp_key_sign">OpenPGP aláíró kulcs (opcionális)</string>
|
||||
<string name="settings_title_openpgp_verify">Titkosított biztonsági másolatok hitelesítése</string>
|
||||
<string name="settings_title_special_features">Speciális funkciók engedélyezése</string>
|
||||
<string name="settings_title_enable_screenshot">Képernyőmentés engedélyezése</string>
|
||||
<string name="settings_title_enable_android_backup_service">Az Android sync engedélyezése</string>
|
||||
<string name="settings_title_clear_keystore">A KeyStore törlése</string>
|
||||
<!-- Descriptions -->
|
||||
<string name="settings_desc_tap_to_reveal">Az OTP tokenek elrejtése alapértelmezetten, manuálisan fedhetőek fel</string>
|
||||
<string name="settings_desc_tap_to_reveal_timeout">Válassza ki az időt (másodpercekben) miután a felfedett bejegyzések újra eltünnek</string>
|
||||
<string name="settings_desc_panic">Határozza meg hogy mi történik a Pánik kioldáskor</string>
|
||||
<string name="settings_desc_relock_screen_off">Hitelesítés kérése miután a készülék kijelzője kikapcsol</string>
|
||||
<string name="settings_desc_label_scroll">Görgesse a hosszabb címkéket, ne pedig letörje a végüket</string>
|
||||
<string name="settings_desc_backup_append_date">Adja hozzá a jelenlegi időt a javasolt biztonsági mentés nevéhez</string>
|
||||
<string name="settings_desc_backup_ask">Fájl nevének kérése minden alkalommal amikor biztonsági mentés jön létre vagy állítódik vissza</string>
|
||||
<string name="settings_desc_backup_directory">A biztonsági mentések mappája ( a fájlnevek a biztonsági mentés típusától fognak függeni)</string>
|
||||
<string name="settings_desc_backup_password">Állítsa be a jelszót amit a biztonsági mentések titkosításához használ</string>
|
||||
<string name="settings_desc_backup_broadcasts">Jelölje ki, hogy melyik biztonsági másolat típusokat indíthatja el a harmadik féltől származó alkalmazás a Broadcasts segítségével</string>
|
||||
<string name="settings_desc_openpgp_key_encrypt">A biztonsági mentések titkosításához használt OpenPGP-kulcs e-mail címe</string>
|
||||
<string name="settings_desc_openpgp_verify">A titkosított biztonsági másolatokat csak akkor lehet importálni, ha érvényes kulccsal írnak alá</string>
|
||||
<string name="settings_desc_special_features">Törölje a jelölést, hogy ismét kikapcsolja a speciális funkciókat</string>
|
||||
<string name="settings_desc_enable_screenshot">Lehetővé teszi a főképernyőképek készítését (alapértelmezés szerint letiltva biztonsági okokból)</string>
|
||||
<string name="settings_desc_enable_android_backup_service">Lehetővé teszi az andOTP számára az Android beépített biztonsági mentési szolgáltatás használatát a kulcsok és tulajdonságok mentéséhez</string>
|
||||
<string name="settings_desc_clear_keystore">Törölje a titkosítási kulcsot a KeyStore-ból</string>
|
||||
<!-- Toasts -->
|
||||
<string name="settings_toast_auth_device_pre_lollipop">Ehhez a funkcióhoz legalább Android 5.0 (Lollipop) szükséges</string>
|
||||
<string name="settings_toast_auth_device_not_secure">Ezen funkció használatához biztonságos képernyőzár
|
||||
szükséges (Beállítások -> Biztonság -> Képernyőzár)</string>
|
||||
<string name="settings_toast_password_empty">Egy üres jelszó nem engedélyezett, állítsa a Hitelesítést \"Nincs\" értékre, hogy letiltsa!</string>
|
||||
<string name="settings_toast_encryption_changing">Próbáljuk megváltoztatni az adatbázis titkosítását, kérjük várjon!</string>
|
||||
<string name="settings_toast_encryption_change_success">Sikeresen megváltoztatta az adatbázis titkosítását!</string>
|
||||
<string name="settings_toast_encryption_change_failed">Nem sikerült megváltoztatni az adatbázis titkosítását, visszaállt az eredeti állapotba!</string>
|
||||
<string name="settings_toast_encryption_backup_failed">Nem sikerült belső biztonsági mentést létrehozni, megszakítás!</string>
|
||||
<string name="settings_toast_encryption_no_key">Sikertelen a titkosítási kulcs elérése, megszakítás!</string>
|
||||
<string name="settings_toast_encryption_auth_failed">A hitelesítés sikertelen!</string>
|
||||
<string name="settings_toast_auth_upgrade_failed">Nem sikerült a jelszó / PIN-kód frissítése csendesen az új titkosításra, kérjük, kézzel állítsa vissza a beállításokban!</string>
|
||||
<string name="settings_dialog_title_warning">Figyelem</string>
|
||||
<string name="settings_dialog_title_error">Hiba</string>
|
||||
<string name="settings_dialog_title_clear_keystore">A KeyStore törlése?</string>
|
||||
<string name="settings_dialog_title_android_sync">Android sync</string>
|
||||
<string name="settings_dialog_msg_encryption_change">az andOTP most megpróbálja megváltoztatni az adatbázis titkosítását. Meghibásodás esetén a belső biztonsági mentés visszaáll, és a titkosítás változatlan marad \n\n <b> Mindig jó ötlet, ha van egy biztonsági mentés, ha valami váratlan történik! </b></string>
|
||||
<string name="settings_dialog_msg_auth_invalid_with_encryption">Csak akkor használhatja a jelszót vagy a PIN-kódot, amíg az adatbázis-titkosítás beállítása \"Jelszó / PIN kód\"!</string>
|
||||
<string name="settings_dialog_msg_encryption_invalid_with_auth">Először be kell állítania a hitelesítést \"Jelszó\" vagy \"PIN kód\" -ra!</string>
|
||||
<string name="settings_dialog_msg_encryption_invalid_without_credentials">A titkosítás megváltoztatása előtt először be kell állítania egy jelszót vagy a PIN-kódot!</string>
|
||||
<string name="settings_dialog_msg_clear_keystore_password">Egyes esetekben a KeyStore törlése segít megoldani a problémákat. Csak akkor folytassa, ha tudja, hogy mit csinál!\n\nMert az <b> Adatbázis titkosítás </b> beállítása <b> Jelszó / PIN kód </b>, nem szabad elveszíteni ezt az adatot (de egyébként soha nem fáj ha van egybiztonsági mentés.) \n\n <b> Valóban biztos, hogy törölni szeretné a KeyStore-t? </b></string>
|
||||
<string name="settings_dialog_msg_clear_keystore_keystore">Egyes esetekben a KeyStore törlése segít megoldani a problémákat. Csak akkor folytassa, ha tudja, mit csinál!\n\n<b>Figyelem</b>:
|
||||
Mivel az <b> Adatbázis titkosítás</b> <b> Android KeyStore</b> -ra van beállítva, így elveszíti az összes fiókját. Győződjön meg róla, hogy van egy biztonsági mentése!\n\n<b>Biztosan szeretné törölni a KeyStore-t?</b></string>
|
||||
<string name="settings_dialog_msg_android_sync_disabled_encryption">Az Android szinkronizálás nem használható a KeyStore titkosítással, <b> manuális biztonsági mentést kell készítenie! </b></string>
|
||||
<!-- List entries -->
|
||||
<string-array name="settings_entries_auth">
|
||||
<item>Semmi</item>
|
||||
<item>Jelszó</item>
|
||||
<item>PIN kód</item>
|
||||
<item>Készülék adatai</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_encryption">
|
||||
<item>Android KeyStore</item>
|
||||
<item>Jelszó / PIN kód</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_panic">
|
||||
<item>Összes fiók törlése</item>
|
||||
<item>Beállítások visszaállítása</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_theme">
|
||||
<item>Világos téma</item>
|
||||
<item>Sötét téma</item>
|
||||
<item>Fekete téma</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_thumbnail_size">
|
||||
<item>Rejtett</item>
|
||||
<item>Kicsi</item>
|
||||
<item>Alapértelmezett</item>
|
||||
<item>Közepes</item>
|
||||
<item>Nagy</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_split_group_size">
|
||||
<item>Ne válassza szét</item>
|
||||
<item>Két karakter után</item>
|
||||
<item>Három karakter után</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_tag_functionality">
|
||||
<item>A kiválasztott címkéknek <b> bármely </b> megfelelő bejegyzésének megjelenítése (vagy)</item>
|
||||
<item>Csak a kiválasztott címkéknek <b> bármely </b> megfelelő bejegyzésének megjelenítése (vagy)</item>
|
||||
<item>Váltás a címkék között (egyszerre csak egy címkét lehet kiválasztani)</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_backup_broadcasts">
|
||||
<item>Egyszerű szöveges biztonsági mentések</item>
|
||||
<item>Titkosított biztonsági mentések</item>
|
||||
</string-array>
|
||||
<!-- Special -->
|
||||
<string name="settings_lang_sys_default">Rendszer alapértelmezett</string>
|
||||
<!-- PasswordPreference -->
|
||||
<string name="settings_hint_password">Adja meg az új jelszót</string>
|
||||
<string name="settings_hint_pin">Új PIN kód megadása</string>
|
||||
<string name="settings_hint_password_confirm">Jelszó megerősítése</string>
|
||||
<string name="settings_hint_pin_confirm">PIN kód megerősítése</string>
|
||||
<string name="settings_label_short_password">A jelszó legalább %1$d karakter hosszú legyen!</string>
|
||||
<string name="settings_label_short_pin">A PIN kód legalább %1$d karakter hosszú legyen!</string>
|
||||
</resources>
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Autore dell\'app originale</string>
|
||||
<string name="about_label_original_app">App originale</string>
|
||||
<string name="about_label_website">Sito Web</string>
|
||||
<string name="about_label_donate_paypal">Dona (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Dona (Bitcoin)</string>
|
||||
<string name="about_label_donate">Dona</string>
|
||||
<string name="about_label_contributors">Hanno contribuito</string>
|
||||
<string name="about_label_translators">Traduttori</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Backup (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Ripristina (non crittografato)</string>
|
||||
<string name="backup_title_import_crypt">Ripristina (crittografato)</string>
|
||||
<string name="backup_title_import_crypt_old">Ripristina (cifrato, vecchia cifratura)</string>
|
||||
<string name="backup_title_import_openpgp">Ripristina (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Sostituire le voci esistenti</string>
|
||||
<string name="backup_desc_export_plain">Salva tutti gli account in un file JSON non crittografato</string>
|
||||
|
@ -17,6 +18,7 @@
|
|||
<string name="backup_desc_export_openpgp">Salva tutti gli account in un file JSON crittografato on OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Ripristina tutti gli account da file JSON non crittografato</string>
|
||||
<string name="backup_desc_import_crypt">Ripristina tutti gli account da file JSON protetto da password</string>
|
||||
<string name="backup_desc_import_crypt_old">Ripristina account da un file JSON protetto con password. Creato con una versione di anOTP inferiore alla 0.6.3</string>
|
||||
<string name="backup_desc_import_openpgp">Ripristina tutti gli account da file JSON crittografato con OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Impossibile caricare la password di backup dalle <b>Impostazioni</b>,
|
||||
questo significa che nessuna password è stata impostata o qualcosa è andato storto. Ti verrà chiesto di
|
||||
|
@ -48,6 +50,8 @@
|
|||
di autorizzarli prima di tentare il backup</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Crittografia basata su password / PIN
|
||||
non supportata con backup broadcast</string>
|
||||
<string name="backup_new_format_dialog_title">Nuovo metodo di cifratura</string>
|
||||
<string name="backup_new_format_dialog_msg">Dalla versione 0.6.3 di andOTP è stato aggiunto un nuovo e migliore metodo di cifratura, usato per i backup protetti da password. I vecchi backup possono ancora essere importati, ma è altamente consigliata la creazione di nuovi backup con le funzionalità migliorate di cifratura. Questo messaggio non sarà visualizzato nuovamente.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Backup automatico fallito</string>
|
||||
<string name="notification_channel_name_backup_success">Backup automatico eseguito con successo</string>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!-- Buttons -->
|
||||
<string name="button_cancel">Annulla</string>
|
||||
<string name="button_enter_details">Aggiungi dettagli</string>
|
||||
<string name="button_scan_qr">Scansiona il codice QR</string>
|
||||
<string name="button_scan_qr">Scansiona il QR Code</string>
|
||||
<string name="button_save">Salva</string>
|
||||
<string name="button_new_tag">Nuovo tag</string>
|
||||
<string name="button_settings">Impostazioni</string>
|
||||
|
@ -47,7 +47,7 @@
|
|||
<string name="toast_auth_failed_fatal">Autenticazione non riuscita, andOTP verrà chiuso!</string>
|
||||
<string name="toast_copied_to_clipboard">Copiato negli appunti</string>
|
||||
<string name="toast_entry_exists">Questa voce esiste già</string>
|
||||
<string name="toast_invalid_qr_code">Codice QR non valido</string>
|
||||
<string name="toast_invalid_qr_code">QR code non valido</string>
|
||||
<string name="toast_encryption_key_empty">Chiave di crittografia non caricata</string>
|
||||
<!-- Dialogs -->
|
||||
<string name="dialog_title_auth">Autenticazione</string>
|
||||
|
@ -69,6 +69,6 @@
|
|||
<b>Qualsiasi voce aggiunta verrà persa</b>\n\nPer continuare ad utilizzare andOTP, vai nelle
|
||||
<b>Impostazioni</b> e imposta la <b>Crittografia del database</b> su <b>Password / PIN</b>.</string>
|
||||
<!-- Shortcuts -->
|
||||
<string name="shortcut_name_scan_qr">Scansione codice QR</string>
|
||||
<string name="shortcut_name_scan_qr">Scansione QR-Code</string>
|
||||
<string name="shortcut_name_enter_details">Inserisci dettagli</string>
|
||||
</resources>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">元のアプリの作者</string>
|
||||
<string name="about_label_original_app">元のアプリ</string>
|
||||
<string name="about_label_website">ウェブサイト</string>
|
||||
<string name="about_label_donate_paypal">寄付 (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">寄付 (Bitcoin)</string>
|
||||
<string name="about_label_donate">寄付</string>
|
||||
<string name="about_label_contributors">貢献者</string>
|
||||
<string name="about_label_translators">翻訳者</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">バックアップ (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">復元 (非暗号化)</string>
|
||||
<string name="backup_title_import_crypt">復元 (暗号化)</string>
|
||||
<string name="backup_title_import_crypt_old">復元 (暗号化、古い暗号化形式)</string>
|
||||
<string name="backup_title_import_openpgp">復元 (OpenPGP)</string>
|
||||
<string name="backup_title_replace">既存のエントリを置き換える</string>
|
||||
<string name="backup_desc_export_plain">暗号化されていない JSON ファイルにすべてのアカウントをバックアップします</string>
|
||||
|
@ -17,6 +18,7 @@
|
|||
<string name="backup_desc_export_openpgp">OpenPGP で暗号化された JSON ファイルにすべてのアカウントをバックアップします</string>
|
||||
<string name="backup_desc_import_plain">暗号化されていない JSON ファイルからアカウントを復元します</string>
|
||||
<string name="backup_desc_import_crypt">パスワードで暗号化された JSON ファイルからアカウントを復元します</string>
|
||||
<string name="backup_desc_import_crypt_old"><b>andOTP 0.6.3 よりも前のバージョン</b>で作成された、パスワードで暗号化された JSON ファイルからアカウントを復元します</string>
|
||||
<string name="backup_desc_import_openpgp">OpenPGP で暗号化された JSON ファイルからアカウントを復元します</string>
|
||||
<string name="backup_desc_crypt_setup"><b>設定</b> からバックアップパスワードをロードできませんでした、これはパスワードが設定されなかったか何かが間違っていたことを意味します。バックアップを作成またはインポートするときに、パスワードを手動で入力するように求められます。</string>
|
||||
<string name="backup_desc_openpgp_provider">この機能を使用するには OpenPGP プロバイダをインストールし <b>設定</b> で有効にする必要があります。</string>
|
||||
|
@ -32,6 +34,8 @@
|
|||
<string name="backup_receiver_read_permission_failed">読み込み権限が付与されていないため、バックアップを実行する前に許可してください</string>
|
||||
<string name="backup_receiver_write_permission_failed">書き込み権限が付与されていないため、バックアップを実行する前に許可してください</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">パスワード / PIN ベースの暗号化はブロードキャストバックアップでサポートされていません</string>
|
||||
<string name="backup_new_format_dialog_title">新しい暗号化形式</string>
|
||||
<string name="backup_new_format_dialog_msg">andOTP 0.6.3 以降のバージョンでは、パスワードで暗号化されたバックアップに、<b>新しく改良された暗号化形式</b>が利用されます。古い暗号化形式を利用したバックアップは引き続き復元に利用できますが、<b>新しい暗号化形式を利用して新たにバックアップを作成することを強くお勧めします</b>。\n\nこのメッセージは再度表示はされません。</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">自動バックアップに失敗しました</string>
|
||||
<string name="notification_channel_name_backup_success">自動バックアップに成功しました</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Auteur van de oorspronkelijke app</string>
|
||||
<string name="about_label_original_app">Originele App</string>
|
||||
<string name="about_label_website">Website</string>
|
||||
<string name="about_label_donate_paypal">Doneren (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Doneren (Bitcoin)</string>
|
||||
<string name="about_label_donate">Doneer</string>
|
||||
<string name="about_label_contributors">Bijdragers</string>
|
||||
<string name="about_label_translators">Vertalers</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -4,19 +4,22 @@
|
|||
<string name="backup_activity_title">Reservekopieën</string>
|
||||
<string name="backup_category_plain">Reservekopieën zonder tekstopmaak</string>
|
||||
<string name="backup_category_crypt">Versleutelde reservekopieën</string>
|
||||
<string name="backup_category_openpgp">OpenPGP reservekopie</string>
|
||||
<string name="backup_category_openpgp">OpenPGP reservekopieën</string>
|
||||
<string name="backup_title_export_plain">Reservekopie (tekst zonder opmaak)</string>
|
||||
<string name="backup_title_export_crypt">Reservekopie (versleuteld)</string>
|
||||
<string name="backup_title_export_openpgp">Reservekopie (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Herstellen (tekst zonder opmaak)</string>
|
||||
<string name="backup_title_import_crypt">Herstellen (versleuteld)</string>
|
||||
<string name="backup_title_import_crypt_old">Herstellen (versleuteld, oude encryptie)</string>
|
||||
<string name="backup_title_import_openpgp">Herstellen (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Vervang bestaande vermeldingen</string>
|
||||
<string name="backup_desc_export_plain">Back-up JSON bestand van alle accounts in tekst zonder opmaak</string>
|
||||
<string name="backup_title_replace">Bestaande accounts vervangen</string>
|
||||
<string name="backup_desc_export_plain">Maak een reservekopie van alle accounts in een niet-versleuteld JSON-bestand</string>
|
||||
<string name="backup_desc_export_crypt">Maak een reservekopie van alle accounts in een JSON-bestand met wachtwoordbeveiliging</string>
|
||||
<string name="backup_desc_export_openpgp">Maak een reservekopie van alle accounts in een JSON-bestand met OpenPGP versleuteling</string>
|
||||
<string name="backup_desc_import_plain">Herstel accounts vanuit een JSON tekstbestand</string>
|
||||
<string name="backup_desc_import_crypt">Herstel alle accounts vanuit een JSON-bestand met wachtwoordbeveiliging</string>
|
||||
<string name="backup_desc_import_crypt_old">Herstel accounts vanuit een met een wachtwoord beveiligd JSON-bestand
|
||||
gemaakt met een <b>andOTP versie lager dan 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Herstel accounts vanuit een OpenPGP versleuteld JSON-bestand</string>
|
||||
<string name="backup_desc_crypt_setup">Fout bij het laden van het back-wachtwoord van de <b>instellingen</b>,
|
||||
betekent dit ofwel geen wachtwoord is ingesteld of iets misgegaan. U zal worden gevraagd te geven
|
||||
|
@ -33,8 +36,13 @@
|
|||
<string name="backup_receiver_plain_disabled">Niet-versleutelde reservekopieën zijn op dit moment uitgeschakeld, ga naar de Instellingen om deze in te schakelen</string>
|
||||
<string name="backup_receiver_encrypted_disabled">Versleutelde reservekopieën zijn op dit moment uitgeschakeld, ga naar de Instellingen om deze in te schakelen</string>
|
||||
<string name="backup_receiver_read_permission_failed">Verleen eerst toestemming om te lezen voordat je een reservekopie gaat maken</string>
|
||||
<string name="backup_receiver_write_permission_failed">Geen machtiging tot schrijven verleend, gelieve dit te doen voordat u een back-up maakt</string>
|
||||
<string name="backup_receiver_write_permission_failed">Geen machtiging tot schrijven verleend, gelieve dit te doen voordat je een reservekopie maakt</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Versleuteling op basis van wachtwoord/pincode niet ondersteund bij reservekopieën gemaakt op afstand</string>
|
||||
<string name="backup_new_format_dialog_title">Nieuwe versleutelingsmethode</string>
|
||||
<string name="backup_new_format_dialog_msg">Sinds versie 0.6.3 van andOTP, een <b>nieuwe en verbeterde
|
||||
encryptiemethode</b> wordt gebruikt voor wachtwoordbeveiligde back-ups. De oude backups kunnen nog steeds
|
||||
worden geïmporteerd, maar het is <b>aanbevolen om nieuwe backups te maken met de verbeterde
|
||||
encryptie</b>.\n\nDit bericht zal niet meer worden weergegeven.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Automatische reservekopie mislukt</string>
|
||||
<string name="notification_channel_name_backup_success">Automatische reservekopie geslaagd</string>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="about_activity_title">O mnie</string>
|
||||
<string name="about_description">Otwórz kod źródłowy dwu-składnikowgo uwierzytelniania dla Androida</string>
|
||||
<string name="about_tab_about">O programie</string>
|
||||
<string name="about_activity_title">O aplikacji</string>
|
||||
<string name="about_description">Dwuskładnikowe uwierzytelnianie dla systemu Android o otwartych źródłach</string>
|
||||
<string name="about_tab_about">O aplikacji</string>
|
||||
<string name="about_tab_libraries">Biblioteki</string>
|
||||
<!-- Misc -->
|
||||
<string name="about_label_changelog">Dziennik zmian</string>
|
||||
|
@ -18,31 +18,23 @@
|
|||
<string name="about_label_original_author">Autor oryginalnej aplikacji</string>
|
||||
<string name="about_label_original_app">Oryginalna aplikacja</string>
|
||||
<string name="about_label_website">Strona WWW</string>
|
||||
<string name="about_label_donate_paypal">Donate (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Donate (Bitcoin)</string>
|
||||
<string name="about_label_contributors">Współpracownicy</string>
|
||||
<string name="about_label_donate">Wspomóż</string>
|
||||
<string name="about_label_contributors">Współtwórcy</string>
|
||||
<string name="about_label_translators">Tłumacze</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
<string name="about_title_thumbnail_disclaimer">Thumbnail disclaimer</string>
|
||||
<string name="about_title_thumbnail_disclaimer">Zrzeczenie</string>
|
||||
<string name="about_thumbnails_disclaimer_no1"><b>1.</b> Wszystkie miniaturki są znakami towarowymi ich odpowiednich właścicieli.</string>
|
||||
<string name="about_thumbnails_disclaimer_no2"><b>2.</b> The use of these trademarks does not
|
||||
indicate endorsement of the trademark holder by andOTP, nor vice versa.</string>
|
||||
<string name="about_thumbnails_disclaimer_no3"><b>3.</b> Thumbnails should only be used to
|
||||
represent the company or product to which they refer.</string>
|
||||
<string name="about_thumbnails_disclaimer_no4"><b>4. Please do not use thumbnails for any
|
||||
purpose except to represent that particular brand or service.</b></string>
|
||||
<string name="about_thumbnails_disclaimer_no2"><b>2.</b> Użycie tych znaków towarowych nie oznacza wzajemnego poparcia właścicieli tychże znaków i andOTP.</string>
|
||||
<string name="about_thumbnails_disclaimer_no3"><b>3.</b> Miniaturki powinny być używane wyłącznie w celu reprezentacji firmy lub produktu, którego dotyczą.</string>
|
||||
<string name="about_thumbnails_disclaimer_no4"><b>4. Proszę nie używaj tych miniaturek w innym celu, niż reprezentacja określonej marki czy usługi.</b></string>
|
||||
<!-- Support -->
|
||||
<string name="about_title_support">Wesprzyj rozwój</string>
|
||||
<string name="about_label_report_bugs">Zgłoś błąd</string>
|
||||
<string name="about_label_translate">Tłumacz</string>
|
||||
<string name="about_desc_report_bugs">Zgłoś błąd lub poproś o funkcję</string>
|
||||
<string name="about_desc_report_bugs">Zgłoś błąd lub poproś o nową funkcję</string>
|
||||
<string name="about_desc_translate">Pomóż przetłumaczyć andOTP na swój język</string>
|
||||
<string name="about_title_special_features">Specjalne funkcje</string>
|
||||
<string name="about_dialog_special_features">Czy jesteś pewny/a, że chcesz włączyć specjalne
|
||||
funkcje? Większość z tych algorytmów nie jest standardowa i została dodana na prośby użytkowników.
|
||||
Algorytmy te <b>nie są oficjalnie wspierane</b> i zawierają <b> limity </b>,
|
||||
przed włączeniem zapoznaj się z stroną \"Specjalne funkcje\" na stronie projektu w serwisie Github,
|
||||
która opisuje, jak ich używać.</string>
|
||||
<string name="about_dialog_special_features">Czy na pewno chcesz włączyć specjalne funkcje? Większość z nich to niestandardowe algorytmy OTP zaimplementowane na życzenie użytkowników. Algorytmy te <b>nie są oficjalnie wspierane</b> i mogą posiadać <b>pewne ograniczenia</b>. Aby dowiedzieć się więcej, odwiedź stronę projektu pt. „Specjalne funkcje” w serwisie GitHub.</string>
|
||||
<string name="about_toast_special_features">Specjalne funkcje włączone</string>
|
||||
<string name="about_toast_special_features_enabled">Specjalne funkcje są już włączone</string>
|
||||
<string name="about_toast_copied_to_clipboard">Link darowizny skopiowano do schowka</string>
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
<string name="auth_activity_title">Uwierzytelnianie</string>
|
||||
<!-- Hints -->
|
||||
<string name="auth_hint_password">Hasło</string>
|
||||
<string name="auth_hint_pin">PIN</string>
|
||||
<string name="auth_hint_pin">Kod PIN</string>
|
||||
<!-- Messages -->
|
||||
<string name="auth_msg_authenticate">Proszę uwierzytelnij się aby uruchomić andOTP!</string>
|
||||
<string name="auth_msg_confirm_encryption">Potwierdź proszę swoją tożsamość aby wygenerować nowy klucz szyfrujący!</string>
|
||||
<string name="auth_msg_authenticate">Uwierzytelnij się, aby uruchomić andOTP.</string>
|
||||
<string name="auth_msg_confirm_encryption">Potwierdź swoją tożsamość, aby wygenerować nowy klucz szyfrujący.</string>
|
||||
<!-- Buttons -->
|
||||
<string name="auth_button_unlock">Odblokuj</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="auth_toast_password_missing">Ustaw hasło w <b>Ustawienia</b>!</string>
|
||||
<string name="auth_toast_pin_missing">Ustaw kod PIN w <b>Ustawienia</b>!</string>
|
||||
<string name="auth_toast_password_missing">Ustaw hasło w <b>Ustawieniach</b>!</string>
|
||||
<string name="auth_toast_pin_missing">Ustaw kod PIN w <b>Ustawieniach</b>!</string>
|
||||
<string name="auth_toast_password_again">Błędne hasło, spróbuj ponownie!</string>
|
||||
<string name="auth_toast_pin_again">Zły kod PIN, spróbuj ponownie!</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,63 +1,58 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="backup_activity_title">Kopie bezpieczeństwa</string>
|
||||
<string name="backup_category_plain">Kopia tekstowa</string>
|
||||
<string name="backup_category_crypt">Szyfrowana kopia</string>
|
||||
<string name="backup_category_openpgp">Kopia OpenPGP</string>
|
||||
<string name="backup_title_export_plain">Kopia (tekst)</string>
|
||||
<string name="backup_title_export_crypt">Kopia (szyfrowana)</string>
|
||||
<string name="backup_title_export_openpgp">Kopia (OpenPGP)</string>
|
||||
<string name="backup_activity_title">Kopia zapasowa</string>
|
||||
<string name="backup_category_plain">Niezaszyfrowana kopia zapasowa</string>
|
||||
<string name="backup_category_crypt">Zaszyfrowana kopia zapasowa</string>
|
||||
<string name="backup_category_openpgp">Kopia zapasowa OpenPGP</string>
|
||||
<string name="backup_title_export_plain">Kopia zapasowa (niezaszyfrowana)</string>
|
||||
<string name="backup_title_export_crypt">Kopia zapasowa (zaszyfrowana)</string>
|
||||
<string name="backup_title_export_openpgp">Kopia zapasowa (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Przywróc kopię (tekst)</string>
|
||||
<string name="backup_title_import_crypt">Przywróc kopię (szyfrowana)</string>
|
||||
<string name="backup_title_import_openpgp">Przywróć kopię (OpenPGP)</string>
|
||||
<string name="backup_title_import_crypt">Przywróć kopię (szyfrowana)</string>
|
||||
<string name="backup_title_import_crypt_old">Przywróć zaszyfrowaną kopię (stare szyfrowanie)</string>
|
||||
<string name="backup_title_import_openpgp">Przywróć kopię OpenPGP</string>
|
||||
<string name="backup_title_replace">Zastąp istniejące konta</string>
|
||||
<string name="backup_desc_export_plain">Zapisz wszystkie konta do pliku JSON</string>
|
||||
<string name="backup_desc_export_crypt">Zapisz kopie do zabezpieczonego hasłem pliku JSON</string>
|
||||
<string name="backup_desc_export_openpgp">Zapisz wszystkie konta w zaszyfrowanym przez OpenPGP pliku JSON</string>
|
||||
<string name="backup_desc_import_plain">Przywróć konta z pliku JSON</string>
|
||||
<string name="backup_desc_import_crypt">Przywróć konta z pliku JSON zabezpieczonego hasłem</string>
|
||||
<string name="backup_desc_import_openpgp">Przywróć konta z szyfrowanego OpenPGP pliku JSON</string>
|
||||
<string name="backup_desc_crypt_setup">Failed to load the backup password from the <b>Settings</b>,
|
||||
this either means no password was set or something went wrong. You will be asked to enter
|
||||
the password manually when creating or importing a backup.
|
||||
</string>
|
||||
<string name="backup_desc_openpgp_provider">Musisz zainstalować dostawcę OpenPGP i włączyć
|
||||
go w <b>Ustawienia</b> aby użyć tej funkcji.
|
||||
</string>
|
||||
<string name="backup_desc_openpgp_keyid">Musisz wybrać klucz OpenPGP w <b>Ustawienia</b>
|
||||
zanim będziesz mógł stworzyć zaszyfrowane kopie.
|
||||
</string>
|
||||
<string name="backup_desc_replace">Jeśli włączone wszystkie stare konta zostaną zastąpione podczas importowania
|
||||
kopii. Jeśli wyłączone stare konta zostaną
|
||||
scalone.</string>
|
||||
<string name="backup_desc_export_plain">Zapisz kopię zapasową wszystkich kont do niezaszyfrowanego pliku JSON</string>
|
||||
<string name="backup_desc_export_crypt">Zapisz kopię zapasową wszystkich kont do zabezpieczonego hasłem pliku JSON</string>
|
||||
<string name="backup_desc_export_openpgp">Zapisz kopię zapasową wszystkich kont do pliku JSON zaszyfrowanego przy użyciu OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Przywróć konta z niezaszyfrowanego pliku JSON</string>
|
||||
<string name="backup_desc_import_crypt">Przywróć konta z zabezpieczonego hasłem pliku JSON</string>
|
||||
<string name="backup_desc_import_crypt_old">Przywróć konta z chronionego hasłem pliku JSON
|
||||
utworzonego w <b>wersji andOTP niższej niż 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Przywróć konta z pliku JSON zaszyfrowanego przy użyciu OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Nie udało się wczytać hasła kopii zapasowej z <b>Ustawień</b>. Oznacza to, że albo nie ustawiono hasła, albo coś poszło nie tak. Zostaniesz poproszony o ręczne wprowadzenie hasła podczas tworzenia lub importowania kopii zapasowej.</string>
|
||||
<string name="backup_desc_openpgp_provider">Aby móc użyć tej funkcji, należy zainstalować dostawcę OpenPGP i włączyć go w <b>Ustawieniach</b>.</string>
|
||||
<string name="backup_desc_openpgp_keyid">Zanim będzie można tworzyć zaszyfrowane kopie zapasowe, należy wybrać klucz OpenPGP w <b>Ustawieniach</b>.</string>
|
||||
<string name="backup_desc_replace">Jeśli włączone, wszystkie stare konta zostaną zastąpione podczas importowania kopii zapasowej. Jeśli wyłączone, stare konta zostaną scalone z kontami z importowanej kopii zapasowej.</string>
|
||||
<!-- Dialogs -->
|
||||
<string name="backup_dialog_title_security_warning">Ostrzeżenie bezpieczeństwa</string>
|
||||
<string name="backup_dialog_msg_export_warning">Czy na pewno chcesz zapisać kopie bazy w niezaszyfrowanym pliku JSON? Ten plik zawiera prywatne klucze, <b>zachowaj ostrożność</b>!</string>
|
||||
<string name="backup_dialog_msg_export_warning">Czy na pewno chcesz zapisać bazę danych do niezaszyfrowanego pliku JSON? Plik ten zawiera wszystkie twoje klucze prywatne. <b>Przechowuj go w bezpiecznym miejscu!</b></string>
|
||||
<string name="backup_receiver_title_backup_failed">Tworzenie kopii zapasowej nie powiodło się</string>
|
||||
<string name="backup_receiver_title_backup_success">Kopia zapasowa wykonana pomyślnie</string>
|
||||
<string name="backup_receiver_plain_disabled">Tekstowe kopie zapasowe obecnie nie są dozwolone, proszę przejść do ustawień, aby włączyć je</string>
|
||||
<string name="backup_receiver_encrypted_disabled">Zaszyfrowane kopie zapasowe obecnie nie są dozwolone, proszę przejść do ustawień, aby włączyć je</string>
|
||||
<string name="backup_receiver_plain_disabled">Niezaszyfrowane kopie zapasowe nie są obecnie dozwolone, proszę przejść do ustawień, aby je włączyć</string>
|
||||
<string name="backup_receiver_encrypted_disabled">Zaszyfrowane kopie zapasowe nie są obecnie dozwolone, proszę przejść do ustawień, aby je włączyć</string>
|
||||
<string name="backup_receiver_read_permission_failed">Uprawnienia odczytu nie przyznane, proszę
|
||||
nadaj uprawnienia przed rozpoczęciem przywracania kopii</string>
|
||||
<string name="backup_receiver_write_permission_failed">Uprawnienia zapisu nie przyznane, proszę
|
||||
nadaj uprawnienia przed rozpoczęciem tworzenia kopii</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Password/PIN based encryption not
|
||||
supported with broadcast backup</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Szyfrowanie przy pomocy hasła / kodu PIN nie jest obsługiwane przy wywoływaniu kopii zapasowej przez broadcast</string>
|
||||
<string name="backup_new_format_dialog_title">Nowa metoda szyfrowania</string>
|
||||
<string name="backup_new_format_dialog_msg">Poczynając od wersji 0.6.3 andOTP do tworzenia kopii zapasowych chronionych hasłem używana jest <b>nowa i ulepszona metoda szyfrowania</b>. Stare kopie zapasowe nadal mogą być zaimportowane, ale <b>wysoce zalecanym jest, aby tworzyć nowe kopie zapasowe z ulepszonym szyfrowaniem</b>.\n\nTa wiadomość nie zostanie wyświetlona ponownie.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Automatyczne tworzenie kopii zapasowej nie powiodło się</string>
|
||||
<string name="notification_channel_name_backup_success">Automatyczne tworzenie kopii zapasowej powiodło się</string>
|
||||
<string name="notification_channel_desc_backup_failed">Te powiadomienia są wyświetlane, kiedy automatyczna kopia zapasowa nie powiedzie się z jakiegoś powodu</string>
|
||||
<string name="notification_channel_desc_backup_success">Te powiadomienia są wyświetlane, kiedy automatyczna kopia zapasowa powiedzie się</string>
|
||||
<string name="notification_channel_name_backup_failed">Tworzenie automatycznej kopii zapasowej nie powiodło się</string>
|
||||
<string name="notification_channel_name_backup_success">Automatyczna kopia zapasowa wykonana pomyślnie</string>
|
||||
<string name="notification_channel_desc_backup_failed">Te powiadomienia są wyświetlane, gdy automatyczne wykonywanie kopii zapasowej nie powiedzie się z jakiegoś powodu</string>
|
||||
<string name="notification_channel_desc_backup_success">Te powiadomienia są wyświetlane, gdy automatyczne wykonywanie kopii zapasowej powiedzie się</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="backup_toast_mkdir_failed">Próba utworzenia katalogu kopii bezpieczeństwa nie powiodła się</string>
|
||||
<string name="backup_toast_export_success">Poprawnie zapisano kopie w zewnętrznej pamięci</string>
|
||||
<string name="backup_toast_export_failed">Wystąpił problem z zapisaniem pliku w zewnętrznej pamięci</string>
|
||||
<string name="backup_toast_import_success">Poprawnie wczytano kopię z zewnętrznej pamięci</string>
|
||||
<string name="backup_toast_import_save_failed">Zapisywanie odzyskanych wejść zakończone niepowodzeniem</string>
|
||||
<string name="backup_toast_import_decryption_failed">Odszyfrowywanie kopii zapasowej zakończone niepowodzeniem</string>
|
||||
<string name="backup_toast_import_no_entries">Nie znaleziono żadnych wejść w importowanych danych</string>
|
||||
<string name="backup_toast_storage_not_accessible">Zewnętrzna pamięć aktualnie niedostępna</string>
|
||||
<string name="backup_toast_mkdir_failed">Nie udało się utworzyć katalogu kopii zapasowej</string>
|
||||
<string name="backup_toast_export_success">Pomyślnie zapisano w pamięci zewnętrznej</string>
|
||||
<string name="backup_toast_export_failed">Zapis w pamięci zewnętrznej nie powiódł się</string>
|
||||
<string name="backup_toast_import_success">Pomyślnie wczytano z pamięci zewnętrznej</string>
|
||||
<string name="backup_toast_import_save_failed">Zapisywanie odzyskanych kont nie powiodło się</string>
|
||||
<string name="backup_toast_import_decryption_failed">Odszyfrowywanie kopii zapasowej nie powiodło się</string>
|
||||
<string name="backup_toast_import_no_entries">We wczytywanych danych nie znaleziono żadnych kont</string>
|
||||
<string name="backup_toast_storage_not_accessible">Pamięć zewnętrzna jest aktualnie niedostępna</string>
|
||||
<string name="backup_toast_storage_permissions">Brak uprawnień dostępu do pamięci</string>
|
||||
<string name="backup_toast_openpgp_error">Błąd OpenPGP: %s</string>
|
||||
<string name="backup_toast_openpgp_not_verified">Nie znaleziono zweryfikowanej sygnatury</string>
|
||||
|
|
|
@ -2,23 +2,12 @@
|
|||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="intro_slide1_title">Zaczynajmy</string>
|
||||
<string name="intro_slide1_desc">Witaj w <b>andOTP</b>, ten kreator przeprowadzi Cię przez
|
||||
wstępną konfigurację. Proszę zwróć uwagę i czytaj uważnie inaczej możesz stracić swoje dane!
|
||||
\n\nNie martw się, możesz później je zmienić w<b>Ustawienia</b>.</string>
|
||||
<string name="intro_slide2_desc">Aby zapewnić bezpieczeństwo Twoim danym <b>andOTP</b> przechowuje
|
||||
je w zaszyfrowanych plikach. Tutaj możesz wybrać, która metoda szyfrowania będzie
|
||||
użyta.</string>
|
||||
<string name="intro_slide2_desc_keystore">KeyStore jest systemowym komponentem Androida który bezpiecznie przechowuje klucze kryptograficzne. Zaletą tej metody jest to że klucze są przechowywane oddzielnie od danych i mogą być zabezpieczone sprzętowo (jeśli Twoje urządzenie jest kompatybilne). Klucze nie są przechowywane w danych aplikacji, <b>metoda ta uniemożliwia tworzenia zewnętrznych kopii (np. Titanium)</b>. Jeśli wybierzesz tą metodę będziesz musiał polegać na wewnętrznych funkcjach zapewnionych przez <b>andOTP</b>.\n\n<b>Uwaga</b>: KeyStore może stworzyć wiele problemów, proszę użyj go tylko, jeśli koniecznie musisz. Jeśli nie masz nic przeciwko wpisywaniu hasła / kodu PIN za każdym uruchomieniem <b>andOTP</b> zaleca się <b>użyć szyfrowania na podstawie hasła</b>.</string>
|
||||
<string name="intro_slide2_desc_password">Ta metoda zaszyfruje Twoje dane za pomocą klucza
|
||||
wygenerowanego na podstawie hasła lub kodu PIN. Główną zaletą tego rozwiązania jest że możliwe
|
||||
będzie tworzenie zewnętrznych kopii (np. Titanium) i jest znacznie mniej podatne na usterki KeyStore.
|
||||
Ale za każdym razem będziesz musiał wpisać swoje poświadczenia podczas uruchamiania <b>andOTP</b>.</string>
|
||||
<string name="intro_slide3_desc_keystore">Tutaj możesz skonfigurować blokadę
|
||||
<b>andOTP</b>. Ponieważ wybrano szyfrowanie za pomocą <b>Android KeyStore</b> ta metoda jest
|
||||
opcjonalna.</string>
|
||||
<string name="intro_slide3_desc_password">Tutaj możesz skonfigurować blokadę
|
||||
<b>andOTP</b>. Ponieważ wybrano szyfrowanie za pomocą <b>hasła / kodu PIN</b> musisz
|
||||
podać hasło lub kod PIN aby kontynuować.</string>
|
||||
<string name="intro_slide1_desc">Witaj w <b>andOTP</b>. Ten kreator przeprowadzi Cię przez wstępną konfigurację. Zapoznaj się dokładnie z informacjami zawartymi na następnych stronach, w przeciwnym razie istnieje ryzyko utraty danych!\n\nNie martw się, wszystkie opcje będzie można później zmienić w <b>Ustawieniach</b>.</string>
|
||||
<string name="intro_slide2_desc">Aby zapewnić bezpieczeństwo Twoim danym andOTP przechowuje je tylko w zaszyfrowanych plikach. Tutaj możesz wybrać, która metoda szyfrowania będzie użyta.</string>
|
||||
<string name="intro_slide2_desc_keystore">KeyStore jest systemowym komponentem Androida, który służy do bezpiecznego przechowywania kluczy kryptograficznych. Zaletą używania KeyStore jest to, że klucze przechowywane są oddzielnie od danych i mogą – jeśli twoje urządzenie jest kompatybilne – być zabezpieczone sprzętowo. Ponieważ klucze nie są przechowywane wraz z danymi aplikacji, <b>metoda ta uniemożliwia tworzenie kopii zapasowych przy pomocy zewnętrznych aplikacji (np. Titanium Backup)</b>. Jeśli wybierzesz tą metodę, będziesz musiał polegać na wbudowanym w andOTP narzędziu wykonywania kopii zapasowej.\n\n<b>Uwaga</b>: KeyStore może powodować wiele problemów. Używaj go tylko, jeśli musisz. Jeżeli nie masz nic przeciwko wpisywaniu hasła / kodu PIN przy każdym uruchomieniu andOTP, użyj <b>hasła</b> do zaszyfrowania danych.</string>
|
||||
<string name="intro_slide2_desc_password">Ta metoda zaszyfruje twoje dane za pomocą klucza wygenerowanego na podstawie hasła lub kodu PIN. To rozwiązanie umożliwia tworzenie kopii zapasowych przy pomocy zewnętrznych aplikacji (np. Titanium Backup) i jest znacznie mniej podatne na usterki niż KeyStore. Przy każdym uruchomieniu andOTP będziesz musiał wprowadzić swoje poświadczenia.</string>
|
||||
<string name="intro_slide3_desc_keystore">Tutaj możesz skonfigurować uwierzytelnianie w celu zablokowania andOTP. Ponieważ wybrano szyfrowanie za pomocą <b>Android KeyStore</b>, ta metoda jest opcjonalna.</string>
|
||||
<string name="intro_slide3_desc_password">Tutaj możesz skonfigurować uwierzytelnianie w celu zablokowania andOTP. Ponieważ wybrano szyfrowanie za pomocą <b>hasła / kodu PIN</b>, musisz podać hasło lub kod PIN aby kontynuować.</string>
|
||||
<string name="intro_slide3_warn_no_password">Ustaw hasło, aby kontynuować!</string>
|
||||
<string name="intro_slide3_warn_no_pin">Ustaw kod PIN, aby kontynuować!</string>
|
||||
<string name="intro_slide3_warn_confirm_password">Potwierdź hasło, aby kontynuować!</string>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<string name="hint_secret">Sekret</string>
|
||||
<!-- Labels -->
|
||||
<string name="label_hidden">Ukryte</string>
|
||||
<string name="label_type">Napisz</string>
|
||||
<string name="label_type">Typ</string>
|
||||
<string name="label_secret">Sekret</string>
|
||||
<string name="label_period">Okres</string>
|
||||
<string name="label_digits">Cyfry</string>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<string name="drawer_close">Ukryj znaczniki</string>
|
||||
<!-- Menu -->
|
||||
<string name="menu_main_about">O aplikacji</string>
|
||||
<string name="menu_main_backup">Kopia</string>
|
||||
<string name="menu_main_backup">Kopia zapasowa</string>
|
||||
<string name="menu_main_search">Szukaj</string>
|
||||
<string name="menu_main_settings">Ustawienia</string>
|
||||
<string name="menu_main_sort">Sortuj</string>
|
||||
|
@ -43,14 +43,14 @@
|
|||
<string name="menu_popup_edit_tags">Edytuj znaczniki</string>
|
||||
<string name="menu_popup_remove">Usuń</string>
|
||||
<!-- Toast messages -->
|
||||
<string name="toast_auth_failed">Uwierzytelnianie nie powiodło się. Proszę spróbować ponownie!</string>
|
||||
<string name="toast_auth_failed_fatal">Autoryzacja nie powiodła się, zamykam andOTP!</string>
|
||||
<string name="toast_auth_failed">Uwierzytelnianie nie powiodło się, proszę spróbować ponownie</string>
|
||||
<string name="toast_auth_failed_fatal">Uwierzytelnianie nie powiodło się, zamykanie andOTP</string>
|
||||
<string name="toast_copied_to_clipboard">Skopiowano do schowka</string>
|
||||
<string name="toast_entry_exists">Taki rekord już istnieje</string>
|
||||
<string name="toast_entry_exists">Takie konto już istnieje</string>
|
||||
<string name="toast_invalid_qr_code">Nieprawidłowy kod QR</string>
|
||||
<string name="toast_encryption_key_empty">Klucz szyfrowania nie załadowany</string>
|
||||
<string name="toast_encryption_key_empty">Klucz szyfrowania nie jest załadowany</string>
|
||||
<!-- Dialogs -->
|
||||
<string name="dialog_title_auth">Autoryzuj</string>
|
||||
<string name="dialog_title_auth">Uwierzytelnianie</string>
|
||||
<string name="dialog_title_manual_entry">Wprowadź szczegóły</string>
|
||||
<string name="dialog_title_remove">Usuń</string>
|
||||
<string name="dialog_title_rename">Zmień nazwę</string>
|
||||
|
@ -61,13 +61,9 @@
|
|||
<string name="dialog_label_enter_password">Wprowadź hasło</string>
|
||||
<string name="dialog_label_confirm_password">Potwierdź hasło</string>
|
||||
<string name="dialog_msg_auth">Podaj swoje dane uwierzytelniające, aby uruchomić andOTP.</string>
|
||||
<string name="dialog_msg_confirm_delete">Czy na pewno chcesz usunąć konto \"%1$s\"?</string>
|
||||
<string name="dialog_msg_last_used">W celu rozpoznania który token był użyty jako ostatni
|
||||
musisz włączyć \"naciśnij aby odkryć\" lub użyć przycisku kopiuj.\n\nTa wiadomość nie
|
||||
zostanie pokazana ponownie.</string>
|
||||
<string name="dialog_msg_keystore_error">Nie udało się wczytać klucza kryptograficznego z KeyStore.
|
||||
<b>Wszystkie konta zostały stracone.</b>\n\nAby dalej korzystać z andOTP możesz przejść
|
||||
do <b>Ustawienia</b> i zmienić <b>Szyfrowanie bazy danych</b> na <b>Hasło/ kod PIN</b>.</string>
|
||||
<string name="dialog_msg_confirm_delete">Czy na pewno chcesz usunąć konto „%1$s”?</string>
|
||||
<string name="dialog_msg_last_used">W celu rozpoznania, który token był użyty jako ostatni, musisz włączyć opcję „Kliknij, aby odkryć” lub użyć przycisku kopiuj.\n\nTa wiadomość nie zostanie wyświetlona ponownie.</string>
|
||||
<string name="dialog_msg_keystore_error">Nie udało się wczytać klucza szyfrowania z KeyStore. <b>Wszystkie nowo dodane konta zostaną utracone.</b>\n\nAby móc dalej korzystać z andOTP, należy przejść do <b>Ustawień</b> i zmienić opcję <b>Szyfrowanie bazy danych</b> na <b>Hasło / kod PIN</b>.</string>
|
||||
<!-- Shortcuts -->
|
||||
<string name="shortcut_name_scan_qr">Skanuj kod QR</string>
|
||||
<string name="shortcut_name_enter_details">Wprowadź szczegóły</string>
|
||||
|
|
|
@ -5,54 +5,48 @@
|
|||
<!-- Categories -->
|
||||
<string name="settings_category_title_security">Bezpieczeństwo</string>
|
||||
<string name="settings_category_title_ui">Interfejs użytkownika</string>
|
||||
<string name="settings_category_title_backup">Kopia</string>
|
||||
<string name="settings_category_title_backup">Kopia zapasowa</string>
|
||||
<!-- Titles -->
|
||||
<string name="settings_title_tap_to_reveal">Kliknij, aby odkryć</string>
|
||||
<string name="settings_title_tap_to_reveal_timeout">Limit czasu upłynął</string>
|
||||
<string name="settings_title_tap_to_reveal_timeout">Czas wyświetlania</string>
|
||||
<string name="settings_title_auth">Uwierzytelnianie</string>
|
||||
<string name="settings_title_auth_password">Hasło</string>
|
||||
<string name="settings_title_auth_pin">Kod PIN</string>
|
||||
<string name="settings_title_encryption">Szyfrowanie bazy danych</string>
|
||||
<string name="settings_title_panic">Panic Trigger</string>
|
||||
<string name="settings_title_relock_screen_off">Re-lock on screen off</string>
|
||||
<string name="settings_title_relock_screen_off">Zablokuj po wyłączeniu ekranu</string>
|
||||
<string name="settings_title_lang">Język</string>
|
||||
<string name="settings_title_theme">Motyw</string>
|
||||
<string name="settings_title_label_size">Etykieta rozmiaru czcionki</string>
|
||||
<string name="settings_title_label_scroll">Przewiń etykietę</string>
|
||||
<string name="settings_title_thumbnail_size_ask">Rozmiar miniatury</string>
|
||||
<string name="settings_title_split_group_size">Oddzielanie tokenu spacjami</string>
|
||||
<string name="settings_title_tag_functionality">Zachowanie zaznaczenia znacznika</string>
|
||||
<string name="settings_title_label_size">Rozmiar czcionki etykiet</string>
|
||||
<string name="settings_title_label_scroll">Przewijaj etykiety</string>
|
||||
<string name="settings_title_thumbnail_size_ask">Rozmiar miniaturek</string>
|
||||
<string name="settings_title_split_group_size">Rozdzielanie tokenu</string>
|
||||
<string name="settings_title_tag_functionality">Zachowanie znacznika</string>
|
||||
<string name="settings_title_backup_append_date">Dodaj datę do nazwy pliku</string>
|
||||
<string name="settings_title_backup_ask">Pytaj o nazwę pliku</string>
|
||||
<string name="settings_title_backup_directory">Katalog kopii</string>
|
||||
<string name="settings_title_backup_password">Hasło do kopii</string>
|
||||
<string name="settings_title_backup_broadcasts">Backup Broadcasts</string>
|
||||
<string name="settings_title_backup_directory">Katalog kopii zapasowej</string>
|
||||
<string name="settings_title_backup_password">Hasło kopii zapasowej</string>
|
||||
<string name="settings_title_backup_broadcasts">Broadcast kopii zapasowej</string>
|
||||
<string name="settings_title_openpgp_provider">Dostawca OpenPGP</string>
|
||||
<string name="settings_title_openpgp_key_encrypt">Klucz szyfrowania OpenPGP</string>
|
||||
<string name="settings_title_openpgp_key_sign">OpenPGP signing key (optional)</string>
|
||||
<string name="settings_title_openpgp_key_encrypt">Klucz szyfrujący OpenPGP</string>
|
||||
<string name="settings_title_openpgp_key_sign">Klucz podpisujący OpenPGP (opcjonalnie)</string>
|
||||
<string name="settings_title_openpgp_verify">Sprawdź poprawność zaszyfrowanych kopii</string>
|
||||
<string name="settings_title_special_features">Włącz funkcje specjalne</string>
|
||||
<string name="settings_title_special_features">Włącz specjalne funkcje</string>
|
||||
<string name="settings_title_enable_screenshot">Zezwól na zrzuty ekranu</string>
|
||||
<string name="settings_title_enable_android_backup_service">Włącz synchronizację Androida</string>
|
||||
<string name="settings_title_clear_keystore">Wyczyść KeyStore</string>
|
||||
<!-- Descriptions -->
|
||||
<string name="settings_desc_tap_to_reveal">Domyślnie ukrywaj tokeny OTP; wymaga kliknięcia, aby odkryć token</string>
|
||||
<string name="settings_desc_tap_to_reveal_timeout">Wybierz czas (w sekundach) po których
|
||||
ukryty zostanie token</string>
|
||||
<string name="settings_desc_tap_to_reveal_timeout">Wybierz czas (w sekundach), po którym wyświetlane tokeny zostaną ukryte</string>
|
||||
<string name="settings_desc_panic">Zdecyduj, co ma się stać po otrzymaniu sygnału Panic Trigger</string>
|
||||
<string name="settings_desc_relock_screen_off">Require authentication after the devices screen
|
||||
has been turned off</string>
|
||||
<string name="settings_desc_label_scroll">Przewijaj etykiety zamiast ucinać je</string>
|
||||
<string name="settings_desc_backup_append_date">Dodaj bieżącą datę i czas do proponowanej
|
||||
nazwy pliku kopii</string>
|
||||
<string name="settings_desc_backup_ask">Pytaj o nazwę pliku za każdym razem, kiedy kopia jest
|
||||
tworzona lub przywracana</string>
|
||||
<string name="settings_desc_relock_screen_off">Wymagaj uwierzytelnienia po wyłączeniu ekranu urządzenia</string>
|
||||
<string name="settings_desc_label_scroll">Przewijaj etykiety zamiast je ucinać</string>
|
||||
<string name="settings_desc_backup_append_date">Dodaj bieżącą datę i czas do proponowanej nazwy pliku kopii zapasowej</string>
|
||||
<string name="settings_desc_backup_ask">Pytaj o nazwę pliku za każdym razem, gdy kopia zapasowa jest tworzona lub przywracana</string>
|
||||
<string name="settings_desc_backup_directory">Katalog z kopiami (nazwy plików zależą od typu kopii)</string>
|
||||
<string name="settings_desc_backup_password">Ustaw hasło używane do szyfrowania kopii</string>
|
||||
<string name="settings_desc_backup_broadcasts">Select which backup types can be triggered by
|
||||
3rd-party apps using Broadcasts</string>
|
||||
<string name="settings_desc_openpgp_key_encrypt">Mail address of the OpenPGP key used to encrypt
|
||||
the backups</string>
|
||||
<string name="settings_desc_backup_broadcasts">Wybierz typy kopii zapasowych, które mogą być wywoływane przez aplikacje innych firm poprzez Broadcast</string>
|
||||
<string name="settings_desc_openpgp_key_encrypt">Adres e-mail klucza OpenPGP używanego do szyfrowania kopii zapasowych</string>
|
||||
<string name="settings_desc_openpgp_verify">Szyfrowane kopie mogą zostać zaimportowane tylko wtedy, gdy zostały podpisane Twoim kluczem</string>
|
||||
<string name="settings_desc_special_features">Odhacz aby wyłączyć specjalne funkcje</string>
|
||||
<string name="settings_desc_enable_screenshot">Pozwól na wykonanie zrzutu ekranu głównego
|
||||
|
@ -63,46 +57,30 @@
|
|||
<!-- Toasts -->
|
||||
<string name="settings_toast_auth_device_pre_lollipop">Ta funkcja wymaga systemu Android w wersji co najmniej 5.0 (Lolipop)</string>
|
||||
<string name="settings_toast_auth_device_not_secure">Ta funkcja wymaga włączenia blokady ekranu. Sprawdź Ustawienia - > Zabezpieczenia - > Blokada ekranu</string>
|
||||
<string name="settings_toast_password_empty">Puste hasło nie jest dozwolone, skonfiguruj
|
||||
Uwierzytelnianie na \"Brak\" aby je wyłaczyć!</string>
|
||||
<string name="settings_toast_encryption_changing">Próbuję zmienić szyfrowanie bazy danych,
|
||||
proszę czekać!</string>
|
||||
<string name="settings_toast_encryption_change_success">Udało się zmienić szyfrowanie bazy
|
||||
danych!</string>
|
||||
<string name="settings_toast_password_empty">Puste hasło nie jest dozwolone. Zmień uwierzytelnianie na „Brak”, aby je wyłączyć!</string>
|
||||
<string name="settings_toast_encryption_changing">Próba zmiany szyfrowania bazy danych, proszę czekać!</string>
|
||||
<string name="settings_toast_encryption_change_success">Pomyślnie zmieniono szyfrowanie bazy danych!</string>
|
||||
<string name="settings_toast_encryption_change_failed">Nie udało się zmienić szyfrowania bazy danych,
|
||||
przywracanie do poprzedniego stanu!</string>
|
||||
<string name="settings_toast_encryption_backup_failed">Nie udało się utworzyć wewnętrznej
|
||||
kopii, przerywam!</string>
|
||||
<string name="settings_toast_encryption_no_key">Nie można uzyskać klucza szyfrowania, przerywam!</string>
|
||||
<string name="settings_toast_encryption_auth_failed">Uwierzytelnianie nie powiodło się!</string>
|
||||
<string name="settings_toast_auth_upgrade_failed">Nie powiodła się zmiana hasła / kodu PIN,
|
||||
zmień ręcznie w ustawieniach!</string>
|
||||
<string name="settings_toast_auth_upgrade_failed">Zmiana hasła / kodu PIN nie powiodła się. Zmień swoje hasło ręcznie w ustawieniach.</string>
|
||||
<string name="settings_dialog_title_warning">Uwaga</string>
|
||||
<string name="settings_dialog_title_error">Błąd</string>
|
||||
<string name="settings_dialog_title_clear_keystore">Wyczyść KeyStore?</string>
|
||||
<string name="settings_dialog_title_android_sync">Android sync</string>
|
||||
<string name="settings_dialog_title_android_sync">Synchronizacja Android</string>
|
||||
<string name="settings_dialog_msg_encryption_change">andOTP spróbuje teraz zmienić szyfrowanie
|
||||
bazy danych. W razie wypadku wewnętrzna kopia zapasowa zostanie przywrócona i szyfrowanie
|
||||
zostanie niezmienione.\n\n<b>W przypadku gdy wydarzy się coś nieprzewidzianego dobrze
|
||||
jest mieć kopię zapasową</b></string>
|
||||
<string name="settings_dialog_msg_auth_invalid_with_encryption">Możesz użyć tylko hasła lub kodu PIN
|
||||
dopuki szyfrowanie bazy danych jest za pomocą \"Hasło / PIN\"!</string>
|
||||
<string name="settings_dialog_msg_encryption_invalid_with_auth">Najpierw musisz skonfigurować
|
||||
Uwierzytelnianie jako \"Hasło\" lub \"PIN\"!</string>
|
||||
<string name="settings_dialog_msg_encryption_invalid_without_credentials">Najpierw musisz skonfigurować
|
||||
hasło lub PIN zanim zmienisz szyfrowanie!</string>
|
||||
<string name="settings_dialog_msg_clear_keystore_password">W niektórych przypadkach czyszczenie KeyStore
|
||||
może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku gdy wiesz co robisz!\n\nOdkąd
|
||||
<b>Szyfrowanie bazy danych</b> jest ustawione na <b>Hasło / PIN</b> nie powinieneś utracić żadnych
|
||||
danych robiąc to (ale nigdy nie zaszkodzi mieć kopię).\n\n<b>Czy jesteś pewien że chcesz
|
||||
wyczyścić KeyStore?</b></string>
|
||||
<string name="settings_dialog_msg_clear_keystore_keystore">W niektórych przypadkach czyszczenie KeyStore
|
||||
może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku gdy wiesz co robisz!\n\n<b>Uwaga</b>:
|
||||
<b>Szyfrowanie bazy danych</b> jest ustawione na <b>Android KeyStore</b>utracisz wszystkie
|
||||
konta. Miej pewność że masz kopię zapasową!\n\n<b>Czy jesteś pewien że chcesz
|
||||
wyczyścić KeyStore?</b></string>
|
||||
<string name="settings_dialog_msg_android_sync_disabled_encryption">Android sync nie może zostać użyte wraz z
|
||||
szyfrowaniem KeyStore, <b>powinieneś utworzyć własną kopię!</b></string>
|
||||
<string name="settings_dialog_msg_auth_invalid_with_encryption">Dopóki szyfrowanie bazy danych ustawione jest jako „Hasło / kod PIN”, możesz używać tylko hasła lub kodu PIN!</string>
|
||||
<string name="settings_dialog_msg_encryption_invalid_with_auth">Najpierw należy skonfigurować uwierzytelnianie jako hasło lub kod PIN!</string>
|
||||
<string name="settings_dialog_msg_encryption_invalid_without_credentials">Zanim zmienisz szyfrowanie, najpierw musisz skonfigurować hasło lub kod PIN!</string>
|
||||
<string name="settings_dialog_msg_clear_keystore_password">W niektórych przypadkach wyczyszczenie KeyStore może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku, gdy wiesz co robisz!\n\nPonieważ <b>Szyfrowanie bazy danych</b> jest ustawione na <b>Hasło / kod PIN</b>, nie powinieneś utracić żadnych danych (ale i tak nie zaszkodzi posiadać kopię zapasową).\n\n<b>Czy na pewno chcesz wyczyścić KeyStore?</b></string>
|
||||
<string name="settings_dialog_msg_clear_keystore_keystore">W niektórych przypadkach wyczyszczenie KeyStore może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku, gdy wiesz co robisz!\n\n<b>Uwaga</b>: <b>Szyfrowanie bazy danych</b> ustawione jest na <b>Android KeyStore</b>, dlatego utracisz wszystkie konta. Upewnij się, że posiadasz aktualną kopię zapasową!\n\n<b>Czy na pewno chcesz wyczyścić KeyStore?</b></string>
|
||||
<string name="settings_dialog_msg_android_sync_disabled_encryption">Synchronizacja Android nie może być używana wraz z szyfrowaniem KeyStore, <b>zaleca się ręczne tworzenie kopii zapasowej!</b></string>
|
||||
<!-- List entries -->
|
||||
<string-array name="settings_entries_auth">
|
||||
<item>Brak</item>
|
||||
|
@ -112,7 +90,7 @@
|
|||
</string-array>
|
||||
<string-array name="settings_entries_encryption">
|
||||
<item>Android KeyStore</item>
|
||||
<item>Hasło / PIN</item>
|
||||
<item>Hasło / kod PIN</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_panic">
|
||||
<item>Usuń wszystkie konta</item>
|
||||
|
@ -125,9 +103,9 @@
|
|||
</string-array>
|
||||
<string-array name="settings_entries_thumbnail_size">
|
||||
<item>Ukryte</item>
|
||||
<item>Mała</item>
|
||||
<item>Małe</item>
|
||||
<item>Domyślne</item>
|
||||
<item>Średni</item>
|
||||
<item>Średnie</item>
|
||||
<item>Duże</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_split_group_size">
|
||||
|
@ -141,16 +119,16 @@
|
|||
<item>Przełącz między etykietami (pozwól aby tylko jedna etykieta mogła być zaznaczona)</item>
|
||||
</string-array>
|
||||
<string-array name="settings_entries_backup_broadcasts">
|
||||
<item>Kopia tekstowa</item>
|
||||
<item>Szyfrowana kopia</item>
|
||||
<item>Niezaszyfrowana kopia zapasowa</item>
|
||||
<item>Zaszyfrowana kopia zapasowa</item>
|
||||
</string-array>
|
||||
<!-- Special -->
|
||||
<string name="settings_lang_sys_default">Domyślny systemowy</string>
|
||||
<string name="settings_lang_sys_default">Domyślny</string>
|
||||
<!-- PasswordPreference -->
|
||||
<string name="settings_hint_password">Wpisz nowe hasło</string>
|
||||
<string name="settings_hint_pin">Wprowadź nowy kod PIN</string>
|
||||
<string name="settings_hint_password_confirm">Potwierdź hasło</string>
|
||||
<string name="settings_hint_pin_confirm">Potwierdź PIN</string>
|
||||
<string name="settings_label_short_password">Hasło powinno liczyć co najmniej %1$d znaków!</string>
|
||||
<string name="settings_label_short_pin">Kod PIN musi liczyć co najmniej %1$d cyfr!</string>
|
||||
<string name="settings_hint_pin_confirm">Potwierdź kod PIN</string>
|
||||
<string name="settings_label_short_password">Hasło musi mieć co najmniej %1$d znaków!</string>
|
||||
<string name="settings_label_short_pin">Kod PIN musi mieć co najmniej %1$d cyfr!</string>
|
||||
</resources>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Desenvolvedor do aplicativo original</string>
|
||||
<string name="about_label_original_app">Aplicativo original</string>
|
||||
<string name="about_label_website">Site</string>
|
||||
<string name="about_label_donate_paypal">Doar com PayPal</string>
|
||||
<string name="about_label_donate_bitcoin">Doar com Bitcoin</string>
|
||||
<string name="about_label_donate">Doar</string>
|
||||
<string name="about_label_contributors">Colaboradores</string>
|
||||
<string name="about_label_translators">Tradutores</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Fazer backup (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Restaurar backup (texto puro)</string>
|
||||
<string name="backup_title_import_crypt">Restaurar backup (criptografado)</string>
|
||||
<string name="backup_title_import_crypt_old">Restaurar (criptografado, criptografia antiga)</string>
|
||||
<string name="backup_title_import_openpgp">Restaurar backup (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Substituir as contas existentes</string>
|
||||
<string name="backup_desc_export_plain">Fazer o backup de todas as contas em um arquivo JSON desprotegido</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Fazer o backup de todas as contas em um arquivo JSON criptografado com OpenPGP</string>
|
||||
<string name="backup_desc_import_plain">Restaurar contas de um arquivo JSON desprotegido</string>
|
||||
<string name="backup_desc_import_crypt">Restaurar contas de um arquivo JSON protegido por senha</string>
|
||||
<string name="backup_desc_import_crypt_old">Recupere contas de um arquivo JSON protegido por senha
|
||||
criado com uma <b>versão do andOTP menor que a 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Restaurar contas de um arquivo JSON criptografado com OpenPGP</string>
|
||||
<string name="backup_desc_crypt_setup">Falha ao carregar a senha de backup de <b>Configurações</b>,
|
||||
isso pode significar que nenhuma senha foi definida ou que algo deu errado. Será pedido que
|
||||
|
@ -36,6 +39,11 @@ insira
|
|||
<string name="backup_receiver_read_permission_failed">A permissão de leitura não foi concedida. Por favor, conceda-a antes de iniciar um backup</string>
|
||||
<string name="backup_receiver_write_permission_failed">A permissão de escrita não foi concedida. Por favor, conceda-a antes de iniciar um backup</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">A criptografia de senha ou PIN não pode ser usada com o backup de ativação remota</string>
|
||||
<string name="backup_new_format_dialog_title">Novo método de criptografia</string>
|
||||
<string name="backup_new_format_dialog_msg">Desde a versão 0.6.3 do andOTP, um <b>método novo e aprimorado
|
||||
de criptografia</b> é usado para backups protegidos por senha. Os backups antigos ainda podem ser
|
||||
importados, mas é <b>altamente recomendado criar novos backups com o método aprimorado de
|
||||
criptografia</b>.\n\nEsta mensagem não será exibida novamente.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Falha ao realizar o backup automático</string>
|
||||
<string name="notification_channel_name_backup_success">Backup automático concluído</string>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="intro_slide1_title">Vamos começar!</string>
|
||||
<string name="intro_slide1_desc">Bem vindo ao <b>andOTP</b>, este assistente irá guiá-lo pela configuração inicial. Por favor, leia atentamente ou correrá o risco de perder dados! \n\nNão se preocupe, você ainda pode modificar qualquer uma das opções mais tarde nas <b>configurações</b>.</string>
|
||||
<string name="intro_slide1_desc">Bem vindo ao <b>andOTP</b>, este assistente irá guiá-lo pela configuração inicial. Por favor, leia atentamente ou correrá o risco de perder dados! \n\nNão se preocupe, você ainda pode modificar qualquer uma das opções mais tarde nas </b>configurações</b>.</string>
|
||||
<string name="intro_slide2_desc">Para garantir a segurança de suas contas, <b>andOTP</b> somente armazena seus dados em arquivos criptografados. Aqui vocẽ pode escolher qual método de criptografia será usado.</string>
|
||||
<string name="intro_slide2_desc_keystore">O KeyStore é um componente do sistema do Android para armazenar com segurança chaves criptográficas. A vantagem deste método é que as chaves são armazenadas separadas dos arquivos de dados e podem ser backupeadas pela criptografia de hardware (se o seu dispositivo suportar isso). No entanto, como as chaves não são armazenadas com os dados do aplicativo, <b>este método impede que as soluções externas de backup (como o Titanium) funcionem</b>. Se você escolher este método, você terá que confiar nas funções internas de backup fornecidas pelo <b>andOTP</b>. \n\n<b>Atenção</b>: O KeyStore é conhecido por causar muitos problemas, por favor, use-o apenas se for absolutamente necessário. Se você não se importa em digitar uma senha / PIN sempre que iniciar o <b>andOTP</b>, então é<b> altamente recomendável usar a criptografia baseada em senha</b>.</string>
|
||||
<string name="intro_slide2_desc_password">Esse método irá criptografar seus dados com uma chave gerada a partir de uma senha ou PIN. A principal vantagem aqui é que irá funcionar com soluções de backup externas (como Titanium) e é muito menos suscetível a falhas que a KeyStore.
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Автор оригинального приложения</string>
|
||||
<string name="about_label_original_app">Оригинальное приложение</string>
|
||||
<string name="about_label_website">Сайт</string>
|
||||
<string name="about_label_donate_paypal">Сделать пожертвование (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Сделать пожертвование (Bitcoin)</string>
|
||||
<string name="about_label_donate">Пожертвовать</string>
|
||||
<string name="about_label_contributors">Участники проекта</string>
|
||||
<string name="about_label_translators">Переводчики</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Резервная копия (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Восстановление (из текстового файла)</string>
|
||||
<string name="backup_title_import_crypt">Восстановление (зашифрованной копии)</string>
|
||||
<string name="backup_title_import_crypt_old">Восстановление (зашифрованное, старое шифрование)</string>
|
||||
<string name="backup_title_import_openpgp">Восстановление (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Заменить существующие записи</string>
|
||||
<string name="backup_desc_export_plain">Резервное копирование всех учетных записей в текстовый файл JSON</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Резервное копирование всех учетных записей в зашифрованный OpenPGP файл JSON</string>
|
||||
<string name="backup_desc_import_plain">Восстановление учетных записей из текстового файла JSON</string>
|
||||
<string name="backup_desc_import_crypt">Восстановление учетных записей из защищённого паролем файла JSON</string>
|
||||
<string name="backup_desc_import_crypt_old">Восстановление учетных записей из защищенного паролем JSON-файла,
|
||||
созданного в версии <b>andOTP ниже 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Восстановление учетных записей из зашифрованного OpenPGP файла JSON</string>
|
||||
<string name="backup_desc_crypt_setup">Не удалось загрузить пароль для резервной копии из <b>Настроек</b>,
|
||||
это означает, что пароль не был установлен или что-то пошло не так. При создании или импорте
|
||||
|
@ -45,6 +48,11 @@
|
|||
сделайте это перед началом резервного копирования</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Пароль/PIN-код на основе шифрования не
|
||||
поддерживается со сторонними приложениями для создания резервных копий</string>
|
||||
<string name="backup_new_format_dialog_title">Новый метод шифрования</string>
|
||||
<string name="backup_new_format_dialog_msg">Начиная с версии andOTP 0.6.3 <b>используется новый
|
||||
и улучшенный метод</b> шифрования для защищенных паролем резервных копий. Старые резервные копии могут быть
|
||||
импортированы, однако настоятельно рекомендуется создать новые резервные копии с улучшенным
|
||||
шифрованием</b>.\n\nЭто сообщение не будет показано снова.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Автоматическое резервное копирование не удалось</string>
|
||||
<string name="notification_channel_name_backup_success">Автоматическое резервное копирование успешно завершено</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Avtor izvirne aplikacije</string>
|
||||
<string name="about_label_original_app">Originalna aplikacija</string>
|
||||
<string name="about_label_website">Spletna stran</string>
|
||||
<string name="about_label_donate_paypal">Prispevajte (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Prispevajte (Bitcoin)</string>
|
||||
<string name="about_label_donate">Prispevaj</string>
|
||||
<string name="about_label_contributors">Sodelavci</string>
|
||||
<string name="about_label_translators">Prevajalci</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Varnostna kopija (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Obnovi varnostno kopijo (navadna)</string>
|
||||
<string name="backup_title_import_crypt">Obnovi varnostna kopijo (kodirana)</string>
|
||||
<string name="backup_title_import_crypt_old">Obnovi (enkriptirano, stara enkripcija)</string>
|
||||
<string name="backup_title_import_openpgp">Obnovi varnostno kopijo(OpenPGP)</string>
|
||||
<string name="backup_title_replace">Zamenjaj obstoječe račune</string>
|
||||
<string name="backup_desc_export_plain">Naredi varnostno kopijo vseh računov v navadni JSON datoteki</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Naredi varnostno kopijo vseh računov v z OpenPGP zaščiteni JSON datoteki</string>
|
||||
<string name="backup_desc_import_plain">Obnovi varnostno kopijo iz navadne JSON datoteke</string>
|
||||
<string name="backup_desc_import_crypt">Obnovi varnostno kopijo iz z geslom zaščitene JSON datoteke</string>
|
||||
<string name="backup_desc_import_crypt_old">Obnovi račune s pomočjo z geslom zaščitene JSON datoteke,
|
||||
ustvarjene z <b>andOTP verzijo nižjo od 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Obnovi varnostno kopijo iz z OpenPGP zaščitene JSON datoteke</string>
|
||||
<string name="backup_desc_crypt_setup">Pri nalaganju varnostnega gesla iz <b>Nastavitve</b> je prišlo do napake,
|
||||
to bodisi pomeni, da geslo ni bilo določeno ali je pa nekaj šlo narobe. Geslo boste morali
|
||||
|
@ -48,6 +51,10 @@
|
|||
jih odobrite pred varnostnim kopiranjem</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Kodiranje s pomočjo gesla/PIN ni
|
||||
podprto pri varnostnem kopiranju preko zunanjih aplikacij</string>
|
||||
<string name="backup_new_format_dialog_title">Nova enkripcijska metoda</string>
|
||||
<string name="backup_new_format_dialog_msg">Od andOTP verzije 0.6.3 naprej, obstaja <b>nova in izboljšana
|
||||
enkripcijska metoda</b> za varnostne kopije zaščitene z geslom. Prejšnje verzije varnostnih kopij, so še vedno lahko uvožene, ampak je <b>zelo priporočeno, da ustvarite nove varnostne kopije z izboljšano
|
||||
enkripcijo</b>.\n\n To sporočilo ne bo več prikazano.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Samodejno varnostno kopiranje ni uspelo</string>
|
||||
<string name="notification_channel_name_backup_success">Samodejna izdelava varnostne kopije je bila uspešna</string>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<string name="settings_title_backup_broadcasts">Varnostno kopiranje preko zunanjih naprav</string>
|
||||
<string name="settings_title_openpgp_provider">OpenPGP ponudnik</string>
|
||||
<string name="settings_title_openpgp_key_encrypt">OpenPGP kodirni ključ</string>
|
||||
<string name="settings_title_openpgp_key_sign">OpenPGP signing key (optional)</string>
|
||||
<string name="settings_title_openpgp_key_sign">OpenPGP podpisna komponenta (po želji)</string>
|
||||
<string name="settings_title_openpgp_verify">Preveri kodirane varnostne kopije</string>
|
||||
<string name="settings_title_special_features">Omogočite posebne možnosti</string>
|
||||
<string name="settings_title_enable_screenshot">Omogoči zajemanje posnetka zaslona</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Upphovsman till den ursprungliga appen</string>
|
||||
<string name="about_label_original_app">Ursprunglig App</string>
|
||||
<string name="about_label_website">Webbplats</string>
|
||||
<string name="about_label_donate_paypal">Donera (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Donera (Bitcoin)</string>
|
||||
<string name="about_label_donate">Donera</string>
|
||||
<string name="about_label_contributors">Bidragsgivare</string>
|
||||
<string name="about_label_translators">Översättare</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Säkerhetskopia (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Återställ (klartext)</string>
|
||||
<string name="backup_title_import_crypt">Återställ (krypterad)</string>
|
||||
<string name="backup_title_import_crypt_old">Restore (encrypted, old encryption)</string>
|
||||
<string name="backup_title_import_openpgp">Återställ (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Ersätt befintliga poster</string>
|
||||
<string name="backup_desc_export_plain">Säkerhetskopiera alla konton i en fil i klartext i JSON</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Säkerhetskopiera alla konton i en OpenPGP-krypterad JSON-fil</string>
|
||||
<string name="backup_desc_import_plain">Återställa konton från en oformaterad JSON-fil</string>
|
||||
<string name="backup_desc_import_crypt">Återställ konton från en lösenordsskyddad JSON-fil</string>
|
||||
<string name="backup_desc_import_crypt_old">Restore accounts from a password-protected JSON file
|
||||
created with an <b>andOTP version lower than 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Återställ konton från en OpenPGP-krypterad JSON-fil</string>
|
||||
<string name="backup_desc_crypt_setup">Det gick inte att läsa in säkerhetskopieringslösenordet från <b>Inställningar</b>,
|
||||
det betyder antingen att inget lösenord har ställts in eller att något gick fel. Du kommer att bli ombedd att ange
|
||||
|
@ -48,6 +51,11 @@
|
|||
detta innan du försöker säkerhetskopiera</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Lösenord/PIN-baserad kryptering stöds
|
||||
inte med broadcast-säkerhetskopiering</string>
|
||||
<string name="backup_new_format_dialog_title">New encryption method</string>
|
||||
<string name="backup_new_format_dialog_msg">Since version 0.6.3 of andOTP, a <b>new and improved
|
||||
encryption method</b> is used for password-protected backups. The old backups can still be
|
||||
imported, but it is <b>highly recommended to create new backups with the improved
|
||||
encryption</b>.\n\nThis message will not be shown again.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Automatisk säkerhetskopiering misslyckades</string>
|
||||
<string name="notification_channel_name_backup_success">Automatisk säkerhetskopiering lyckades</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Orijinal Uygulamanın Yazarı</string>
|
||||
<string name="about_label_original_app">Orijinal Uygulama</string>
|
||||
<string name="about_label_website">Web sitesi</string>
|
||||
<string name="about_label_donate_paypal">PayPal ile bağış yap</string>
|
||||
<string name="about_label_donate_bitcoin">Bitcoin ile bağış yap</string>
|
||||
<string name="about_label_donate">Bağış Yap</string>
|
||||
<string name="about_label_contributors">Katkıda Bulunanlar</string>
|
||||
<string name="about_label_translators">Çevirmenler</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Yedekler (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Kurtar (düz metin)</string>
|
||||
<string name="backup_title_import_crypt">Kurtar (şifreli)</string>
|
||||
<string name="backup_title_import_crypt_old">Kurtar (şifreli, eski tip şifreleme)</string>
|
||||
<string name="backup_title_import_openpgp">Kurtar (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Mevcut girdiyi değiştir</string>
|
||||
<string name="backup_desc_export_plain">Tüm hesapları düz metin JSON dosyası olarak yedekle</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Tüm hesapları şifreli OpenPGP JSON dosyası olarak yedekle</string>
|
||||
<string name="backup_desc_import_plain">Hesapları düz metin JSON dosyasından geri yükle</string>
|
||||
<string name="backup_desc_import_crypt">Hesapları şifre korumalı JSON dosyasından geri yükle</string>
|
||||
<string name="backup_desc_import_crypt_old">Hesapları, <b>andOTP 0.6.3\'ten daha eski bir sürüm kullanılarak</b>
|
||||
oluşturulmuş ve şifre ile korunmuş JSON dosyasından geri yükle</string>
|
||||
<string name="backup_desc_import_openpgp">Hesapları şifrelendirilmiş OpenPGP JSON dosyasından geri yükle</string>
|
||||
<string name="backup_desc_crypt_setup"><b>Ayarlar</b> kısmından yedek parola yüklenemedi.
|
||||
Bunun sebebi parolanım tanımlanmamış olması, veya başka bir hata olabilir.
|
||||
|
@ -47,6 +50,8 @@ lütfen bu iznin tanımlanmış olduğundan emin olun</string>
|
|||
<string name="backup_receiver_custom_encryption_failed">Şifre/PIN temelli şifreli yedekleme, 3. parti,
|
||||
Tasker gibi ugulamalarla alınmış yedek
|
||||
biçimlerinde desteklenmiyor</string>
|
||||
<string name="backup_new_format_dialog_title">Yeni şifreleme metodu</string>
|
||||
<string name="backup_new_format_dialog_msg">andOTP 0.6.3\'ten beri şifre ile korunmuş yedekler için <b>daha yeni bir şifreleme metodu</b> kullanılmakta. Eski yedekleri halen içeri aktarabilirsiniz, lakin <b>yeni şifreleme metodu ile yeni bir yedek oluşturup onu saklamanızı şiddetle öneririz</b>.\n\nBu mesaj bir daha gözükmeyecek.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Otomatik yedekleme başarısız</string>
|
||||
<string name="notification_channel_name_backup_success">Otomatik yedekleme başarılı</string>
|
||||
|
|
|
@ -10,7 +10,7 @@ Buradan hangi yollarla şifreleme yapılacağını seçebilirsiniz.</string>
|
|||
<string name="intro_slide2_desc_keystore">Keystore, Android\'in kriptografik anahtarları güvenle saklamak için barındırdığı bir bileşendir. Bu alanın avantajı, anahtarların veriden bağımsız bir alanda tutulması ve de bu kısmın eğer cihazınız destekliyorsa kriptografik donanımlar tarafından da desteklenebilmesidir. Bu, anahtarların uygulama alanında barındırılmadığı anlamına geliyor. <b>Bu metod, anahtarlar uygulama alanının dışında saklandığından dolayı, Titanium Backup gibi harici yedekleme çözümlerini bu uygulama için işlevsiz kılar</b>. Eğer bu metodu seçecekseniz, <b>andOTP</b> tarafından sağlanmış dahili yedekleme özelliğini kullanmalısınız. \n\n <b>Dikkat</b>: KeyStore, pek çok kez sorun yaşatmasıyla bilinen bir metod. Bu yolu, mecbur kalmadığınız sürece kullanmamanızı öneririz. <b>andOTP</b>\'yi her başlattığınızda parola/pin kodu girmek işinize geliyorsa <b>KeyStore yerine parola veya pin girmenizi şiddetle öneririz</b>.</string>
|
||||
<string name="intro_slide2_desc_password">Bu metod verinizi parola veya PIN kodundan oluşmuş bir anahtarla şifreleyecek. Bu metodun ana avantajı
|
||||
bu metodun Titanium gibi harici yedekleme çözümleri ile çalışması, ve de KeyStore gibi çözümlere kıyasla
|
||||
çok daha az hata riski teşkil etmesidir. Lakin, <b>andOTP</b>\'yi her açtığınızda şifre veya PIN kodunu girmeniz
|
||||
çok daha az hata riski teşkil etmesidir. Lakin, </b>andOTP</b>\'yi her açtığınızda şifre veya PIN kodunu girmeniz
|
||||
gerekmekte.</string>
|
||||
<string name="intro_slide3_desc_keystore">Buradan <b>andOTP</b>\'yi kilitlemek için bir kimlik tanımlayabilirsiniz. Hali hazırda <b>Android KeyStore</b>
|
||||
seçildiği için bu seçenek isteğe bağlıdır.</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">Автор оригінального додатку</string>
|
||||
<string name="about_label_original_app">Оригінальний додаток</string>
|
||||
<string name="about_label_website">Сайт</string>
|
||||
<string name="about_label_donate_paypal">Фінансово посприяти розробці (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">Фінансово сприяти розробці (Bitcoin)</string>
|
||||
<string name="about_label_donate">Фінансово посприяти розробці</string>
|
||||
<string name="about_label_contributors">Автори</string>
|
||||
<string name="about_label_translators">Перекладачі</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">Резервне копіювання (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">Відновлення (текстові дані)</string>
|
||||
<string name="backup_title_import_crypt">Відновлення (зашифровані дані)</string>
|
||||
<string name="backup_title_import_crypt_old">Restore (encrypted, old encryption)</string>
|
||||
<string name="backup_title_import_openpgp">Відновлення (OpenPGP)</string>
|
||||
<string name="backup_title_replace">Замінити існуючі дані</string>
|
||||
<string name="backup_desc_export_plain">Створити резервну копію усіх облікових записів у текстовому JSON файлі</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">Створити резервну копію усіх облікових записів у зашифрованому OpenPGP JSON файлі</string>
|
||||
<string name="backup_desc_import_plain">Відновити облікові записи з текстового JSON файлу</string>
|
||||
<string name="backup_desc_import_crypt">Відновити облікові записи з захищеного паролем JSON файлу</string>
|
||||
<string name="backup_desc_import_crypt_old">Restore accounts from a password-protected JSON file
|
||||
created with an <b>andOTP version lower than 0.6.3</b></string>
|
||||
<string name="backup_desc_import_openpgp">Відновити облікові записи з зашифрованого за допомогою OpenPGP JSON файлу</string>
|
||||
<string name="backup_desc_crypt_setup">Завантаження паролю резервної копії з <b>Налаштувань</b> завершилося невдало,
|
||||
це означає, що або пароль не було встановлено, або щось пішло не так. Вам буде запропоновано ввести
|
||||
|
@ -39,6 +42,11 @@
|
|||
<string name="backup_receiver_read_permission_failed">Дозволу на читання не надано, будь ласка, надайте доступ на читання перед тим, як почнете створення резервної копії</string>
|
||||
<string name="backup_receiver_write_permission_failed">Дозволу на запис не надано, будь ласка, надайте доступ на запис перед тим, як почнете створення резервної копії</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">Створення резервних копії на основі шифрування за допомогою паролю/PIN-коду не підтримується сторонніми додатками</string>
|
||||
<string name="backup_new_format_dialog_title">New encryption method</string>
|
||||
<string name="backup_new_format_dialog_msg">Since version 0.6.3 of andOTP, a <b>new and improved
|
||||
encryption method</b> is used for password-protected backups. The old backups can still be
|
||||
imported, but it is <b>highly recommended to create new backups with the improved
|
||||
encryption</b>.\n\nThis message will not be shown again.</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">Автоматичне резервне копіювання завершилося невдало</string>
|
||||
<string name="notification_channel_name_backup_success">Автоматичне резервне копіювання завершилося успішно</string>
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
<resources>
|
||||
<!-- Light application theme -->
|
||||
<style name="AppTheme" parent="AppBaseTheme">
|
||||
<item name="android:navigationBarColor">?android:attr/colorBackground</item>
|
||||
<item name="android:windowLightNavigationBar">true</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Dark" parent="AppBaseTheme.Dark">
|
||||
<item name="android:navigationBarColor">?android:attr/colorBackground</item>
|
||||
<item name="android:windowLightNavigationBar">false</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Black" parent="AppBaseTheme.Black">
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:windowLightNavigationBar">false</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">原应用作者</string>
|
||||
<string name="about_label_original_app">原应用</string>
|
||||
<string name="about_label_website">网站</string>
|
||||
<string name="about_label_donate_paypal">捐款 (PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">捐款 (Bitcoin)</string>
|
||||
<string name="about_label_donate">捐赠</string>
|
||||
<string name="about_label_contributors">贡献者</string>
|
||||
<string name="about_label_translators">译者</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">备份 (OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">还原 (纯文本)</string>
|
||||
<string name="backup_title_import_crypt">还原 (已加密)</string>
|
||||
<string name="backup_title_import_crypt_old">恢复 (加密的,旧加密)</string>
|
||||
<string name="backup_title_import_openpgp">还原 (OpenPGP)</string>
|
||||
<string name="backup_title_replace">替换现有条目</string>
|
||||
<string name="backup_desc_export_plain">备份所有帐户到一个纯文本 JSON 文件。</string>
|
||||
|
@ -17,6 +18,8 @@
|
|||
<string name="backup_desc_export_openpgp">备份所有帐户到一个 OpenPGP 加密的 JSON 文件。</string>
|
||||
<string name="backup_desc_import_plain">从纯文本 JSON 文件还原帐户</string>
|
||||
<string name="backup_desc_import_crypt">从受密码保护的 JSON 文件还原帐户</string>
|
||||
<string name="backup_desc_import_crypt_old">从密码保护的 JSON 文件恢复账户
|
||||
(适用于早于 <b>andOTP 0.6.3 版本</b> 所创建的备份)</string>
|
||||
<string name="backup_desc_import_openpgp">从 OpenPGP 加密的 JSON 文件还原帐户</string>
|
||||
<string name="backup_desc_crypt_setup">未能从 <b>设置</b> 中加载备份密码,这可能是您没有设置密码,或者某处发生错误。在创建或导入备份时,系统将要求您手动输入密码。</string>
|
||||
<string name="backup_desc_openpgp_provider">您需要安装 OpenPGP 提供程序,并在 <b>设置</b> 中启用,才能使用此功能。</string>
|
||||
|
@ -32,6 +35,8 @@
|
|||
<string name="backup_receiver_read_permission_failed">没有读取权限,请在执行备份前授予。</string>
|
||||
<string name="backup_receiver_write_permission_failed">没有写入权限,请在执行备份前授予。</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">广播备份不支持基于 密码/PIN 的加密</string>
|
||||
<string name="backup_new_format_dialog_title">新加密方法</string>
|
||||
<string name="backup_new_format_dialog_msg">自 andOTP 0.6.3 版本开始,我们对密码保护的备份<b>采用新的改进型加密方法</b>。旧的备份仍可导入,但我们<b>强烈推荐使用改进后的加密方法创建新的备份</b>。\n\n此消息只显示一次。</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">自动备份失败</string>
|
||||
<string name="notification_channel_name_backup_success">自动备份成功</string>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<string name="about_label_original_author">原始應用程式的作者</string>
|
||||
<string name="about_label_original_app">原始應用程式</string>
|
||||
<string name="about_label_website">網站</string>
|
||||
<string name="about_label_donate_paypal">捐贈(PayPal)</string>
|
||||
<string name="about_label_donate_bitcoin">捐贈(Bitcoin)</string>
|
||||
<string name="about_label_donate">捐獻</string>
|
||||
<string name="about_label_contributors">貢獻者</string>
|
||||
<string name="about_label_translators">譯者</string>
|
||||
<!-- Thumbnail disclaimer -->
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<string name="backup_title_export_openpgp">備份(OpenPGP)</string>
|
||||
<string name="backup_title_import_plain">還原(明碼)</string>
|
||||
<string name="backup_title_import_crypt">還原(加密)</string>
|
||||
<string name="backup_title_import_crypt_old">還原 (已加密,舊的加密方式)</string>
|
||||
<string name="backup_title_import_openpgp">還原(OpenPGP)</string>
|
||||
<string name="backup_title_replace">取代現有的條目</string>
|
||||
<string name="backup_desc_export_plain">備份所有帳戶為明碼 JSON 檔</string>
|
||||
|
@ -17,6 +18,7 @@
|
|||
<string name="backup_desc_export_openpgp">備份所有帳戶為 OpenPGP 加密的 JSON 檔</string>
|
||||
<string name="backup_desc_import_plain">從明碼 JSON 檔中還原帳戶</string>
|
||||
<string name="backup_desc_import_crypt">從密碼 JSON 檔中還原帳戶</string>
|
||||
<string name="backup_desc_import_crypt_old">從以<b>版本低於0.6.3的andOTP</b>所創建之密碼保護的JSON檔案中還原帳戶</string>
|
||||
<string name="backup_desc_import_openpgp">從 OpenPGP 加密的 JSON 檔中還原帳戶</string>
|
||||
<string name="backup_desc_crypt_setup">使用 <b>設定</b> 中的密碼載入備份時失敗,
|
||||
這可能是因為沒有設定密碼或者是密碼錯誤造成的。 當您在建立或匯入備份時
|
||||
|
@ -36,6 +38,10 @@
|
|||
<string name="backup_receiver_read_permission_failed">讀取被拒絕,請在備份前允許此權限</string>
|
||||
<string name="backup_receiver_write_permission_failed">寫入被拒絕,請在備份前允許此權限</string>
|
||||
<string name="backup_receiver_custom_encryption_failed">透過外部程式執行自動備份時,不支援基於 密碼 / PIN 的加密方式</string>
|
||||
<string name="backup_new_format_dialog_title">新加密方法</string>
|
||||
<string name="backup_new_format_dialog_msg">andOTP自0.6.3版開始,<b>全新和改進了的加密方式是用於密碼保護的備份。</b>
|
||||
舊備份的仍然可以導入,但是我們<b>強烈建議你使用改進了的加密方式來創建新的備份。</b>
|
||||
\n\n此消息將不再顯示。</string>
|
||||
<!-- Notification channels -->
|
||||
<string name="notification_channel_name_backup_failed">自動備份失敗</string>
|
||||
<string name="notification_channel_name_backup_success">自動備份成功</string>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!-- Buttons -->
|
||||
<string name="button_cancel">取消</string>
|
||||
<string name="button_enter_details">鍵入詳細資訊</string>
|
||||
<string name="button_scan_qr">掃描 QR code</string>
|
||||
<string name="button_scan_qr">掃描 QR-Code</string>
|
||||
<string name="button_save">儲存</string>
|
||||
<string name="button_new_tag">新標籤</string>
|
||||
<string name="button_settings">設定</string>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
<color name="dark_thumbnail_background">#ffe0e0e0</color> <!-- material_grey_300 -->
|
||||
|
||||
<color name="fab_small_label_background">#212121</color>
|
||||
|
||||
<color name="expiring_red_light">#f05545</color> <!--Light color from https://material.io/resources/color/#!/?view.left=0&view.right=0&primary.color=B71C1C-->
|
||||
<color name="expiring_red_dark">#d50000</color> <!--Dark color from https://material.io/resources/color/#!/?view.left=0&view.right=0&primary.color=D50000-->
|
||||
</resources>
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
<string name="settings_key_thumbnail_size" translatable="false">pref_thumbnail_size</string>
|
||||
<string name="settings_key_split_group_size" translatable="false">pref_split_group_size</string>
|
||||
<string name="settings_key_tag_functionality" translatable="false">pref_tag_functionality</string>
|
||||
<string name="settings_key_search_includes" translatable="false">pref_search_includes</string>
|
||||
<string name="settings_key_label_highlight_token" translatable="false">pref_label_highlight_token</string>
|
||||
|
||||
<string name="settings_key_backup_append_date_time" translatable="false">pref_backup_append_date_time</string>
|
||||
<string name="settings_key_backup_ask" translatable="false">pref_backup_ask</string>
|
||||
|
@ -62,6 +64,10 @@
|
|||
<string name="settings_default_split_group_size" translatable="false">3</string>
|
||||
<string name="settings_default_tag_functionality" translatable="false">or</string>
|
||||
|
||||
<string-array name="settings_defaults_search_includes">
|
||||
<item>label</item>
|
||||
<item>issuer</item>
|
||||
</string-array>
|
||||
|
||||
<!-- All of the possible tile background colors -->
|
||||
<array name="letter_tile_colors">
|
||||
|
@ -86,6 +92,12 @@
|
|||
<item>settings</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="settings_values_search_includes" translatable="false">
|
||||
<item>label</item>
|
||||
<item>issuer</item>
|
||||
<item>tags</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="settings_values_locale" translatable="false">
|
||||
<item>system</item>
|
||||
<item>ca_ES</item>
|
||||
|
@ -94,6 +106,7 @@
|
|||
<item>es_ES</item>
|
||||
<item>fr_FR</item>
|
||||
<item>gl_ES</item>
|
||||
<item>hu_HU</item>
|
||||
<item>it_IT</item>
|
||||
<item>nl_NL</item>
|
||||
<item>pl_PL</item>
|
||||
|
@ -150,6 +163,7 @@
|
|||
<item>Español</item>
|
||||
<item>Français</item>
|
||||
<item>Galego</item>
|
||||
<item>Magyar</item>
|
||||
<item>Italiano</item>
|
||||
<item>Nederlands</item>
|
||||
<item>Polski</item>
|
||||
|
|
|
@ -45,12 +45,7 @@
|
|||
|
||||
<!-- Support -->
|
||||
<string name="about_title_support">Support development</string>
|
||||
|
||||
<string name="about_label_report_bugs">Report Bugs</string>
|
||||
<string name="about_label_translate">Translate</string>
|
||||
|
||||
<string name="about_desc_report_bugs">Report bugs or request new features</string>
|
||||
<string name="about_desc_translate">Help to translate andOTP to your language</string>
|
||||
<string name="about_desc_support">Find out how you can support the development of andOTP</string>
|
||||
|
||||
<string name="about_title_special_features">Special features</string>
|
||||
<string name="about_dialog_special_features">Are you sure you want to enable the special
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue